diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..c7de605bd8a00869c85a1dfab72e74c8b6158cf1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.map diff --git a/Dockerfile b/Dockerfile index beda8294b3db085356470b5c20252c5b1f42e9ca..6b8cdeddbf4c44b07b0cdec198553fd6ff1af3d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,21 @@ WORKDIR /app # Copy the entire project including node_modules COPY . . +# Remove .env.local if exists +RUN rm -f .env.local + +# Set all environment variables +ENV PORT=7860 +ENV HOST=0.0.0.0 +ENV LILYPOND_DATADIR=/app/node-addon-lilypond/output/share/lilypond/current/ +ENV GUILE_LOAD_PATH=/app/node-addon-lilypond/output/share/guile/1.8 +ENV LD_LIBRARY_PATH=/app/node-addon-lilypond/output +ENV LILYPOND_ADDON=/app/node-addon-lilypond/output/lilypond.node + +ENV TEMP_DIR=./temp/ +ENV LILYPOND_DIR="" +ENV MIDI_FILE_EXTEND=midi + # Expose port EXPOSE 7860 diff --git a/backend/advancedEngraver.ts b/backend/advancedEngraver.ts new file mode 100644 index 0000000000000000000000000000000000000000..3428da1049b0adddf9a60f0fbc36cda8532e642a --- /dev/null +++ b/backend/advancedEngraver.ts @@ -0,0 +1,169 @@ + +import {Writable} from "stream"; +import {MusicNotation} from "@k-l-lambda/music-widgets"; +import {DOMParser} from "xmldom"; + +import {LilyDocument, docLocationSet} from "../inc/lilyParser"; +import {engraveSvg} from "./lilyCommands"; +import {SingleLock} from "../inc/mutex"; +import * as staffSvg from "../inc/staffSvg"; +import * as LilyNotation from "../inc/lilyNotation"; +import LogRecorder from "../inc/logRecorder"; + + + +type StaffArguments = {attributes: staffSvg.StaffAttributes, tieLocations?: Set, briefChordLocations?: Set, lyricLocations?: Set}; + + +interface EngraverOptions { + streamSeparator: string; + + includeFolders: string[]; + withMIDI: boolean; + withNotation: boolean; + withLilyDoc: boolean; + withLilyNotation: boolean; + logger: LogRecorder; + + lilyNotation: LilyNotation.Notation; + staffArgs: StaffArguments; +}; + + +interface GrammarParser { + parse (source: string): any; +}; + + +const STREAM_SEPARATOR = "\n\n\n\n"; + + +const advancedEngrave = async (source: string, lilyParser: GrammarParser, output: Writable, options: Partial = {}) => { + const {streamSeparator = STREAM_SEPARATOR} = options; + + const outputJSON = data => setImmediate(() => { + output.write(JSON.stringify(data)); + output.write(streamSeparator); + }); + + const t0 = Date.now(); + + const notatioinGen = new SingleLock(true); + const argsGen = new SingleLock(true); + + const hashKeys = new Set(); + + const engraving = await engraveSvg(source, { + includeFolders: options.includeFolders, + + // do some work during lilypond process running to save time + onProcStart: () => { + //console.log("tp.0:", Date.now() - t0); + if (options.staffArgs) + argsGen.release(options.staffArgs); + + if (!options.withLilyNotation && !options.withLilyDoc && options.staffArgs) + return; + + const lilyDocument = new LilyDocument(lilyParser.parse(source)); + + if (!options.lilyNotation) { + const interpreter = lilyDocument.interpret(); + options.lilyNotation = interpreter.getNotation(); + + notatioinGen.release(options.lilyNotation); + //console.log("tp.1:", Date.now() - t0); + } + + if (options.withLilyDoc) + outputJSON({lilyDocument: lilyDocument.root}); + + if (!options.staffArgs) { + const attributes = lilyDocument.globalAttributes({readonly: true}) as staffSvg.StaffAttributes; + + const tieLocations = docLocationSet(lilyDocument.getTiedNoteLocations2()); + const briefChordLocations = docLocationSet(lilyDocument.getBriefChordLocations()); + const lyricLocations = docLocationSet(lilyDocument.getLyricLocations()); + + //console.log("tp.2:", Date.now() - t0); + + options.staffArgs = {attributes, tieLocations, briefChordLocations, lyricLocations}; + argsGen.release(options.staffArgs); + //console.log("tp.3:", Date.now() - t0); + } + }, + onMidiRead: async midi => { + //console.log("tm.0:", Date.now() - t0); + if (options.withMIDI) + outputJSON({midi}); + + if (options.withNotation && midi) { + const midiNotation = MusicNotation.Notation.parseMidi(midi); + outputJSON({midiNotation}); + } + + if (options.withLilyNotation && midi) { + const lilyNotation = options.lilyNotation || await notatioinGen.wait(); + //console.log("tm.2:", Date.now() - t0); + await LilyNotation.matchWithExactMIDI(lilyNotation, midi); + //console.log("tm.3:", Date.now() - t0); + + outputJSON({lilyNotation}); + } + + //console.log("tm.4:", Date.now() - t0); + }, + onSvgRead: async (index, svg) => { + //console.log("ts.0:", index, Date.now() - t0); + const args = options.staffArgs || await argsGen.wait(); + //console.log("ts.1:", index, Date.now() - t0); + const page = staffSvg.parseSvgPage(svg, source, {DOMParser, logger: options.logger, ...args}); + + // select incremental keys to send + const hashTable = {}; + Object.entries(page.hashTable).forEach(([key, elem]) => { + if (!hashKeys.has(key)) + hashTable[key] = elem; + }); + + // rectify page data by lilyNotation + const lilyNotation = options.lilyNotation || await notatioinGen.wait(); + //console.log("ts.2:", index, Date.now() - t0); + if (lilyNotation) { + const sheetDocument = new staffSvg.SheetDocument({pages: [page.structure]}, {initialize: true}); + + sheetDocument.alignTokensWithNotation(options.lilyNotation, {partial: true}); + sheetDocument.updateMatchedTokens(options.lilyNotation.idSet); + } + + outputJSON({ + page: index, + structure: page.structure, + hashTable, + }); + + Object.keys(hashTable).forEach(key => hashKeys.add(key)); + + //console.log("ts.3:", index, Date.now() - t0); + }, + }); + + const tn = Date.now(); + //console.log("tn:", tn - t0); + + options.logger.append("advancedEngraver.profile.engraving", {cost: tn - t0}); + + await new Promise(resolve => setImmediate(resolve)); + + output.write(JSON.stringify({ + logs: engraving.logs, + logger: options.logger, + errorLevel: engraving.errorLevel, + })); +}; + + + +export { + advancedEngrave, +}; diff --git a/backend/canvas.ts b/backend/canvas.ts new file mode 100644 index 0000000000000000000000000000000000000000..20452437a897d70f36b36cc7974f572570878922 --- /dev/null +++ b/backend/canvas.ts @@ -0,0 +1,26 @@ + +//import {loadImage, createCanvas} from "canvas"; +import {PNGStream} from "canvas"; + +const {loadImage, createCanvas}: any = !process.env.MOBILE_MODE ? require("canvas") : {}; + + + +const svgToPng = async (sourceURL: string|Buffer): Promise => { + if (process.env.MOBILE_MODE) + return; + + const image = await loadImage(sourceURL); + + const canvas = createCanvas(image.width, image.height); + const ctx = canvas.getContext("2d"); + ctx.drawImage(image, 0, 0, image.width, image.height); + + return canvas.createPNGStream(); +}; + + + +export { + svgToPng, +}; diff --git a/backend/constants.ts b/backend/constants.ts new file mode 100644 index 0000000000000000000000000000000000000000..895c619442aaffcefd21d25ecc37cbebf8472986 --- /dev/null +++ b/backend/constants.ts @@ -0,0 +1,13 @@ + +import path from "path"; + + + +// @ts-ignore +const LY_INCLUDE_FOLDERS = ["../ly"].map(folder => path.resolve(process.env.TEMP_DIR, folder)); + + + +export { + LY_INCLUDE_FOLDERS, +}; diff --git a/backend/dirServer.ts b/backend/dirServer.ts new file mode 100644 index 0000000000000000000000000000000000000000..6154a7f916679a567830378a1b43db233a44954e --- /dev/null +++ b/backend/dirServer.ts @@ -0,0 +1,41 @@ + +import path from "path"; +import serveHandler from "serve-handler"; + + + +const createHandler = (publicDir: string, apiPath: string) => (req, res) => { + req.url = "/" + path.relative(`${apiPath}/`, req.baseUrl); + + // modify link URL origin + const responseProxy = new Proxy(res, { + get (res, prop) { + //console.log("proxy.get:", prop); + switch (prop) { + case "end": + return (content) => { + //console.log("end with:", content); + const html = content && content.replace(/href="/g, `href="${apiPath}`); + + res.end(html); + }; + } + + if (typeof res[prop] === "function") + return res[prop].bind(res); + + return res[prop]; + }, + }); + + serveHandler(req, responseProxy, { + public: publicDir, + //symlinks: true, + }); +}; + + + +export { + createHandler, +}; diff --git a/backend/index.ts b/backend/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..94882346ae43e215d34321d8c40722725d435cdc --- /dev/null +++ b/backend/index.ts @@ -0,0 +1,155 @@ + +import formidable from "formidable"; +import {DOMParser} from "xmldom"; +import {MIDI} from "@k-l-lambda/music-widgets"; + +import * as lilyCommands from "./lilyCommands"; +import * as staffSvg from "../inc/staffSvg"; +import loadLilyParser from "./loadLilyParserNode"; +import {LilyDocument} from "../inc/lilyParser"; +import LogRecorder from "../inc/logRecorder"; +import * as ScoreMaker from "./scoreMaker"; +import * as constants from "./constants"; +import {advancedEngrave} from "./advancedEngraver"; + + + +const formidableHandle = (name, req, res, handle) => + new formidable.IncomingForm().parse(req, async (err, fields, files) => { + try { + if (err) + throw err; + + const result = await handle(fields, files); + + const resultObj = (typeof result === "string" || result instanceof Buffer) ? {body: result} : result; + + res.writeHead(resultObj.body ? 200 : 404, resultObj.header); + res.write(resultObj.body); + res.end(); + } + catch (error) { + console.error(`${name} error:`, error); + + res.writeHead(500); + res.write(error.toString()); + res.end(); + } + }); + + +const service = { + "/musicxml2ly": { + post: (req, res) => formidableHandle("musicxml2ly", req, res, + ({xml, options}) => lilyCommands.xml2ly(xml, options && JSON.parse(options))), + }, + + + "/midi2ly": { + post: (req, res) => formidableHandle("midi2ly", req, res, + ({options}, {midi}) => lilyCommands.midi2ly(midi, options && JSON.parse(options))), + }, + + + "/engrave": { + post: (req, res) => formidableHandle("engrave", req, res, + async ({source, tokenize = false, log = false}) => { + const result = await lilyCommands.engraveSvg(source, {includeFolders: constants.LY_INCLUDE_FOLDERS}); + if (!tokenize) + return JSON.stringify(result); + + const lilyParser = await loadLilyParser(); + const lilyDocument = new LilyDocument(lilyParser.parse(source)); + //const attributes = lilyDocument.globalAttributes({readonly: true}); + //console.log("attributes:", attributes); + + lilyDocument.interpret(); + + const logger = new LogRecorder({enabled: log}); + + const {doc, hashTable} = staffSvg.createSheetDocumentFromSvgs(result.svgs, source, lilyDocument, {logger, DOMParser}); + + return JSON.stringify({ + ...result, + doc, + hashTable, + logger, + }); + }), + }, + + + "/engraveScm": { + post: (req, res) => formidableHandle("engraveScm", req, res, + async ({source}) => { + const result = await lilyCommands.engraveScm(source, {includeFolders: constants.LY_INCLUDE_FOLDERS}); + return JSON.stringify(result); + }), + }, + + + "/engraveMIDI": { + post: (req, res) => formidableHandle("engraveMIDI", req, res, + async ({source, articulate = false}) => { + const lilyParser = await loadLilyParser(); + const midi = await (articulate ? ScoreMaker.makeArticulatedMIDI(source, lilyParser, {includeFolders: constants.LY_INCLUDE_FOLDERS}) + : ScoreMaker.makeMIDI(source, lilyParser, {includeFolders: constants.LY_INCLUDE_FOLDERS})); + const buffer = Buffer.from(MIDI.encodeMidiFile(midi)); + + return { + header: { + "Content-Type": "audio/midi", + }, + body: buffer, + }; + }), + }, + + + "/advanced-engrave": { + post: (req, res) => new formidable.IncomingForm().parse(req, async (err, fields) => { + try { + if (err) + throw err; + + const logger = new LogRecorder({enabled: !!fields.log}); + + const lilyParser = await loadLilyParser(); + + const task = advancedEngrave(fields.source, lilyParser, res, { + includeFolders: constants.LY_INCLUDE_FOLDERS, + withMIDI: !!fields.withMIDI, + withNotation: !!fields.withNotation, + withLilyDoc: !!fields.withLilyDoc, + withLilyNotation: !!fields.withLilyNotation, + logger, + }); + + res.writeHead(200); + + await task; + res.end(); + } + catch (err) { + console.warn("advanced-engrave error:", err); + + res.writeHead(500); + res.write(err.toString()); + res.end(); + } + }), + }, +}; + + +const setEnvironment = env => lilyCommands.setEnvironment(env); + + + +export { + setEnvironment, + service, + lilyCommands, + ScoreMaker, + advancedEngrave, +}; diff --git a/backend/lilyAddon.ts b/backend/lilyAddon.ts new file mode 100644 index 0000000000000000000000000000000000000000..6fd82ef573ae4777545f31a41e14c5df5fb3a4c2 --- /dev/null +++ b/backend/lilyAddon.ts @@ -0,0 +1,104 @@ + +import {Writable} from "stream"; +import {MIDI} from "@k-l-lambda/music-widgets"; + +import {EngraverOptions, EngraverResult, postProcessSvg} from "./lilyCommands"; + + + +let lilypondEx = null; + +const loadAddon = (path: string): boolean => { + lilypondEx = require(path); + + return !!lilypondEx; +}; + + +const engraveSvg = async (source: string, + {onProcStart, onMidiRead, onSvgRead, includeFolders = []}: EngraverOptions = {}): Promise> => { + if (!lilypondEx) + throw new Error("Lilypond addon not loaded."); + + let logs; + const svgs = []; + let midi; + + const engravePromise = lilypondEx.engrave(source, { + includeFolders, + log (message) { + logs = message; + }, + onSVG (filename, content) { + const captures = filename.match(/-(\d+)\.svg$/); + const index = captures ? Number(captures[1]) - 1 : 0; + + const svg = postProcessSvg(content); + svgs[index] = svg; + + onSvgRead && onSvgRead(index, svg); + }, + onMIDI (_, buffer) { + midi = MIDI.parseMidiData(buffer); + + onMidiRead && onMidiRead(midi); + }, + }); + + await onProcStart && onProcStart(); + + const errorLevel = await engravePromise; + + return { + logs, + svgs, + midi, + errorLevel, + }; +}; + + +const engraveSvgWithStream = async (source: string, + output: Writable, {includeFolders = []}: {includeFolders?: string[]} = {}, +): Promise> => { + let logs; + //let midi; + + //const tasks = []; + + const errorLevel = await lilypondEx.engrave(source, { + includeFolders, + log (message) { + logs = message; + }, + onSVG (_, content) { + // Write stream in non-main thread may result in blocking, so post a task to event looping. + //tasks.push(new Promise(resolve => )); + setImmediate(() => { + output.write(content); + output.write("\n\n\n\n"); + }); + }, + //onMIDI (_, buffer) { + // midi = MIDI.parseMidiData(buffer); + //}, + }); + + //await Promise.all(tasks); + await new Promise(resolve => setImmediate(resolve)); + + return { + logs, + //midi, + errorLevel, + }; +}; + + + + +export { + loadAddon, + engraveSvg, + engraveSvgWithStream, +}; diff --git a/backend/lilyCommands.ts b/backend/lilyCommands.ts new file mode 100644 index 0000000000000000000000000000000000000000..9859c1ef77eb5fd4b92dbaa61af9c0b923df7db5 --- /dev/null +++ b/backend/lilyCommands.ts @@ -0,0 +1,438 @@ + + +import fs from "fs"; +import path from "path"; +import child_process from "child-process-promise"; +import {MIDI} from "@k-l-lambda/music-widgets"; +import {Writable} from "stream"; + +import asyncCall from "../inc/asyncCall"; +import {SingleLock} from "../inc/mutex"; +import {preprocessXml} from "./xmlTools"; +import * as lilyAddon from "./lilyAddon"; + + + +let MUSICXML2LY_PATH; +let MIDI2LY_PATH; +let LILYPOND_PATH; + + +let env; // setEnvironment must be called before use commands +const setEnvironment = e => { + env = e; + + MUSICXML2LY_PATH = filePathResolve(env.LILYPOND_DIR, "musicxml2ly"); + MIDI2LY_PATH = filePathResolve(env.LILYPOND_DIR, "midi2ly"); + LILYPOND_PATH = filePathResolve(env.LILYPOND_DIR, "lilypond"); + + emptyCache(); + + if (env.LILYPOND_ADDON) { + if (env.LILYPOND_ADDON_ASSETS_DIR) { + process.env.LILYPOND_PATH = path.join(env.LILYPOND_ADDON_ASSETS_DIR, "bin/lilypond"); + process.env.GUILE_LOAD_PATH = path.join(env.LILYPOND_ADDON_ASSETS_DIR, "share/guile/1.8"); + process.env.FONTCONFIG_PATH = path.join(env.LILYPOND_ADDON_ASSETS_DIR, "share/fonts"); + } + + lilyAddon.loadAddon(env.LILYPOND_ADDON); + } +}; + + +const _WINDOWS = process.platform === "win32"; + + +const genHashString = (len = 8) => Buffer.from(Math.random().toString()).toString("base64").substr(3, 3 + len); + + +const filePathResolve = (...parts: string[]): string => { + const result = path.join(...parts); + return _WINDOWS ? `"${result}"` : result; +}; + + +const emptyCache = async () => { + // empty temporary directory + try { + if (env.TEMP_DIR) { + if (_WINDOWS) + await child_process.exec(`del /q "${env.TEMP_DIR}*"`); + else + await child_process.exec(`rm ${env.TEMP_DIR}*`); + console.log("Temporary directory clear."); + } + } + catch (err) { + if (_WINDOWS) + console.log("emptyCache error:", err); + } +}; + + +export interface LilyProcessOptions { + // xml + language?: string; + removeMeasureImplicit?: boolean; + replaceEncoding?: boolean; + removeNullDynamics?: boolean; + fixHeadMarkup?: boolean; + fixBackSlashes?: boolean; + roundTempo?: boolean; + escapedWordsDoubleQuotation?: boolean; + removeTrivialRests?: boolean; + removeBadMetronome?: boolean; + removeInvalidHarmonies?: boolean; + removeAllHarmonies?: boolean; + fixChordVoice?: boolean; + fixBarlines?: boolean; + removeInvalidClef?: boolean; + + // lilypond + pointClick?: boolean; + midi?: boolean; + removeBreak?: boolean; + removePageBreak?: boolean; + removeInstrumentName?: boolean; + removeTempo?: boolean; + tupletReplace?: boolean; +}; + + + + +const postProcessLy = (ly: string, { + pointClick = true, + midi = true, + removeBreak = false, + removePageBreak = false, + removeInstrumentName = false, + removeTempo = false, + tupletReplace = false, +} = {}): string => { + let result = ly; + + if (pointClick) + result = result.replace(/\\pointAndClickOff\n/g, ""); + + if (midi) + result = result.replace(/% \\midi/g, "\\midi"); + + if (removeBreak) + result = result.replace(/\s\\break\s/g, " "); + + if (removePageBreak) + result = result.replace(/\s\\pageBreak\s/g, " "); + + if (removeInstrumentName) + result = result.replace(/\\set Staff\.instrumentName/g, "% \\set Staff.instrumentName"); + + if (removeTempo) + result = result.replace(/\\tempo /g, "% \\tempo "); + + if (tupletReplace) { + result = result + .replace(/4\*128\/384/g, "8*2/3") + .replace(/4\*64\/384/g, "16*2/3"); + } + + return result; +}; + + +const xml2ly = async (xml: string, {language = "english", ...options}: LilyProcessOptions): Promise => { + xml = preprocessXml(xml, options); + //console.log("xml:", options, xml.substr(0, 100)); + + const hash = genHashString(); + const xmlFileName = `${env.TEMP_DIR}xml2ly-${hash}.xml`; + await asyncCall(fs.writeFile, xmlFileName, xml); + + const lyFileName = `${env.TEMP_DIR}xml2ly-${hash}.ly`; + + if (env.MUSICXML2LY_BY_PYTHON) { + await child_process.spawn(path.resolve(env.LILYPOND_DIR, "python"), [ + path.resolve(env.LILYPOND_DIR, "musicxml2ly.py"), xmlFileName, "-o", lyFileName, + ...(language ? ["-l", language] : []), + ]); + } + else + await child_process.exec(`${MUSICXML2LY_PATH} ${xmlFileName} -o ${lyFileName} ${language ? "-l " + language : ""}`, {maxBuffer: 0x80000}); + //console.log("musicxml2ly:", result.stdout, result.stderr); + + const ly = await asyncCall(fs.readFile, lyFileName); + + return postProcessLy(ly.toString(), options); +}; + + +const midi2ly = async (midi, options: LilyProcessOptions): Promise => { + const hash = genHashString(); + //const midiFileName = `${env.TEMP_DIR}midi2ly-${hash}.midi`; + //await asyncCall(fs.writeFile, midiFileName, midi); + + const lyFileName = `${env.TEMP_DIR}midi2ly-${hash}-midi.ly`; + + let result; + if (env.MUSICXML2LY_BY_PYTHON) { + result = await child_process.spawn(path.resolve(env.LILYPOND_DIR, "python"), + [path.resolve(env.LILYPOND_DIR, "midi2ly.py"), midi.path, "-o", lyFileName]); + } + else + result = await child_process.exec(`${MIDI2LY_PATH} ${midi.path} -o ${lyFileName}`); + console.log("midi2ly:", result.stdout, result.stderr); + + const ly = await asyncCall(fs.readFile, lyFileName); + + return postProcessLy(ly.toString(), options); +}; + + +const postProcessSvg = (svg: string): string => { + return svg.replace(/textedit:[^"]+:(\d+:\d+:\d+)/g, "textedit:$1"); +}; + + +//const nameNumber = name => Number(name.match(/-(\d+)\./)[1]); + + +// lilypond command line output file pattern +const FILE_BORN_OUPUT_PATTERN = /output\sto\s`(.+)'/; + + +export interface EngraverOptions { + onProcStart?: () => void|Promise; + onMidiRead?: (content: MIDI.MidiData, options?: {filePath: string}) => void|Promise; + onSvgRead?: (index: number, content: string, options?: {filePath: string}) => void|Promise; + includeFolders?: string[]; // include folder path should be relative to TEMP_DIR +}; + +export interface EngraverResult { + logs: string; + svgs: string[]; + midi: MIDI.MidiData; + errorLevel: number; +}; + + +const engraveSvgCli = async (source: string, + {onProcStart, onMidiRead, onSvgRead, includeFolders = []}: EngraverOptions = {}, +): Promise> => { + const hash = genHashString(); + const sourceFilename = `${env.TEMP_DIR}engrave-${hash}.ly`; + + await asyncCall(fs.writeFile, sourceFilename, source); + //console.log("ly source written:", sourceFilename); + + let midi = null; + const svgs = []; + + const fileReady = new SingleLock(); + + const loadFile = async filename => { + //console.log("loadFile:", filename); + + // wait for file writing finished + //await new Promise(resolve => setTimeout(resolve, 100)); + + const captures = filename.match(/\.(\w+)$/); + if (!captures) { + console.warn("invalid filename:", filename); + return; + } + const [_, ext] = captures; + + const filePath = path.resolve(env.TEMP_DIR, filename); + //console.log("file output:", filePath, ext); + + switch (ext) { + case env.MIDI_FILE_EXTEND: { + // wait extra time for MIDI file + //await fileReady.lock(); + await new Promise(resolve => setTimeout(resolve, 100)); + + const buffer = await asyncCall(fs.readFile, filePath); + if (!buffer.length) + console.warn("empty MIDI buffer:", filename); + + midi = MIDI.parseMidiData(buffer); + + await onMidiRead && onMidiRead(midi, {filePath}); + } + + break; + case "svg": { + // eslint-disable-next-line + const captures = filename.match(/(\d+)\.svg$/); + const index = captures ? Number(captures[1]) - 1 : 0; + + const buffer = await asyncCall(fs.readFile, filePath); + if (!buffer.length) + console.warn("empty SVG buffer:", filename); + + const svg = postProcessSvg(buffer.toString()); + svgs[index] = svg; + + //console.log("svg load:", filePath); + await onSvgRead && onSvgRead(index, svg, {filePath}); + } + + break; + } + }; + + const loadProcs: Promise[] = []; + + const checkFile = async (line: string) => { + fileReady.release(line); + + // skip error messages in command line output + if (FILE_BORN_OUPUT_PATTERN.test(line)) { + let newLine = await fileReady.lock(); + while (/error|warning/.test(newLine)) + newLine = await fileReady.lock(); + + let captures; + const exp = new RegExp(FILE_BORN_OUPUT_PATTERN.source, "g"); + while (captures = exp.exec(line)) + loadProcs.push(loadFile(captures[1])); + } + }; + + const includeParameters = includeFolders.map(folder => `--include=${folder}`).join(" "); + + const proc: any = child_process.exec(`${LILYPOND_PATH} -dbackend=svg -o ${env.TEMP_DIR} ${includeParameters} ${sourceFilename}`, + {maxBuffer: 0x100000}); + //const proc = child_process.spawn(LILYPOND_PATH, ["-dbackend=svg", `-o ${env.TEMP_DIR}`, sourceFilename]); + proc.childProcess.stdout.on("data", checkFile); + proc.childProcess.stderr.on("data", checkFile); + + const startPromise = onProcStart && onProcStart(); + if (startPromise) + loadProcs.push(startPromise); + + const result = await proc; + + fileReady.release(); + + await Promise.all(loadProcs); + + //console.log("svgs:", svgs.length); + + const validCount = svgs.filter(svg => svg).length; + if (validCount < svgs.length) + console.warn("svg loading incompleted: ", validCount, svgs.length); + + return { + logs: result.stderr, + svgs, + midi, + }; +}; + + +const engraveSvgWithStreamCli = async (source: string, output: Writable, {includeFolders = []}: {includeFolders?: string[]} = {}) => { + const hash = genHashString(); + const sourceFilename = `${env.TEMP_DIR}engrave-${hash}.ly`; + + await asyncCall(fs.writeFile, sourceFilename, source); + + const writing = new SingleLock(); + const fileReady = new SingleLock(); + + const loadFile = async line => { + const [_, filename] = line.match(FILE_BORN_OUPUT_PATTERN); + const [__, ext] = filename.match(/\.(\w+)$/); + + switch (ext) { + case "svg": { + await fileReady.lock(); + await writing.wait(); + + writing.lock(); + + const filePath = path.resolve(env.TEMP_DIR, filename); + const fileStream = fs.createReadStream(filePath); + fileStream.pipe(output, {end: false}); + + fileStream.on("close", () => output.write("\n\n\n\n")); + + writing.release(); + } + + break; + } + }; + + const checkFile = line => { + fileReady.release(); + + if (FILE_BORN_OUPUT_PATTERN.test(line)) + loadFile(line); + }; + + const includeParameters = includeFolders.map(folder => `--include=${folder}`).join(" "); + + const proc: any = child_process.exec(`${LILYPOND_PATH} -dbackend=svg -o ${env.TEMP_DIR} ${includeParameters} ${sourceFilename}`); + proc.childProcess.stdout.on("data", checkFile); + proc.childProcess.stderr.on("data", checkFile); + + proc.then(() => fileReady.release()); + + return proc; +}; + + +const engraveScm = async (source: string, {onProcStart, includeFolders = []}: { + onProcStart?: () => void|Promise, + includeFolders?: string[], // include folder path should be relative to TEMP_DIR +} = {}): Promise<{ + logs: string, + scm: string, +}> => { + const hash = genHashString(); + const sourceFilename = `${env.TEMP_DIR}engrave-${hash}.ly`; + const targetFilename = `${env.TEMP_DIR}engrave-${hash}.scm`; + + await fs.promises.writeFile(sourceFilename, source); + //console.log("ly source written:", sourceFilename); + + const includeParameters = includeFolders.map(folder => `--include=${folder}`).join(" "); + + const proc = child_process.exec(`${LILYPOND_PATH} -dbackend=scm -o ${env.TEMP_DIR} ${includeParameters} ${sourceFilename}`, + {maxBuffer: 0x100000}); + + await onProcStart && onProcStart(); + + const result = await proc; + + const scmBuffer = await fs.promises.readFile(targetFilename); + + return { + logs: result.stderr, + scm: scmBuffer.toString(), + }; +}; + + +const engraveSvg = async (source: string, options: EngraverOptions = {}): Promise> => + (env.LILYPOND_ADDON ? lilyAddon.engraveSvg : engraveSvgCli)(source, options); + + +const engraveSvgWithStream = async (source: string, output: Writable, options: {includeFolders?: string[]} = {}) => + (env.LILYPOND_ADDON ? lilyAddon.engraveSvgWithStream : engraveSvgWithStreamCli)(source, output, options); + + + +export { + xml2ly, + midi2ly, + engraveSvg, + engraveSvgCli, + engraveSvgWithStream, + engraveSvgWithStreamCli, + engraveScm, + setEnvironment, + emptyCache, + postProcessSvg, +}; diff --git a/backend/loadJisonParserNode.ts b/backend/loadJisonParserNode.ts new file mode 100644 index 0000000000000000000000000000000000000000..b7d178e89c8a9d610e1cc3efb7f81e675daa04a7 --- /dev/null +++ b/backend/loadJisonParserNode.ts @@ -0,0 +1,22 @@ + +import fs from "fs"; + +import {Parser} from "../inc/jisonWrapper"; + + + +const parsers = new Map(); + + + +export default async function load (jison): Promise { + if (!parsers.get(jison)) { + const grammar = (await fs.promises.readFile(jison)).toString(); + + //console.log("grammar:", grammar); + + parsers.set(jison, new Parser(grammar)) ; + } + + return parsers.get(jison); +}; diff --git a/backend/loadLilyParserNode.ts b/backend/loadLilyParserNode.ts new file mode 100644 index 0000000000000000000000000000000000000000..10942e3091b676461a1836199245c308851aabf4 --- /dev/null +++ b/backend/loadLilyParserNode.ts @@ -0,0 +1,8 @@ + +import loadJisonParser from "./loadJisonParserNode"; + +import {Parser} from "../inc/jisonWrapper"; + + + +export default (): Promise => loadJisonParser("./jison/lilypond.jison"); diff --git a/backend/scoreMaker.ts b/backend/scoreMaker.ts new file mode 100644 index 0000000000000000000000000000000000000000..f1c30bf2e5e3b7f7c4c94855227b4cf6b8cc05f8 --- /dev/null +++ b/backend/scoreMaker.ts @@ -0,0 +1,359 @@ + +import {DOMParser, XMLSerializer} from "xmldom"; +import {MusicNotation} from "@k-l-lambda/music-widgets"; +import {MIDI} from "@k-l-lambda/music-widgets"; +import {Readable} from "stream"; +import CRC32 from "crc-32"; + +import npmPackage from "../package.json"; +import {xml2ly, engraveSvg, LilyProcessOptions} from "./lilyCommands"; +import {LilyDocument, LilyTerms, docLocationSet} from "../inc/lilyParser"; +import * as staffSvg from "../inc/staffSvg"; +import {SingleLock} from "../inc/mutex"; +import * as LilyNotation from "../inc/lilyNotation"; +import {svgToPng} from "./canvas"; +import LogRecorder from "../inc/logRecorder"; +import ScoreJSON from "../inc/scoreJSON"; +import {LilyDocumentAttributeReadOnly} from "../inc/lilyParser/lilyDocument"; +import {Block} from "../inc/lilyParser/lilyTerms"; + + + +interface GrammarParser { + parse (source: string): any; +}; + + +const markupLily = (source: string, markup: string, lilyParser: GrammarParser): string => { + const docMarkup = new LilyDocument(lilyParser.parse(markup)); + const docSource = new LilyDocument(lilyParser.parse(source)); + + /*// copy attributes + const attrS = docSource.globalAttributes() as LilyDocumentAttribute; + const attrM = docMarkup.globalAttributes({readonly: true}) as LilyDocumentAttributeReadOnly; + + [ + "staffSize", "paperWidth", "paperHeight", + "topMargin", "bottomMargin", "leftMargin", "rightMargin", + "systemSpacing", "topMarkupSpacing", "raggedLast", "raggedBottom", "raggedLastBottom", + "printPageNumber", + ].forEach(field => { + if (attrM[field] !== undefined) { + if (typeof attrS[field].value === "object" && attrS[field].value && (attrS[field].value as any).set) + (attrS[field].value as any).set(attrM[field]); + else + attrS[field].value = attrM[field]; + } + }); + + // execute commands list + const commands = docMarkup.root.getField("LotusCommands"); + const cmdList = commands && commands.value && commands.value.args && commands.value.args[0].body; + if (cmdList && Array.isArray(cmdList)) { + for (const command of cmdList) { + if (command.exp && docSource[command.exp]) + docSource[command.exp](); + else + console.warn("unexpected markup command:", command); + } + } + + // copy LotusOption assignments + const assignments = docMarkup.root.entries.filter(term => term instanceof LilyTerms.Assignment && /^LotusOption\..+/.test(term.key.toString())); + assignments.forEach(assignment => docSource.root.sections.push(assignment.clone()));*/ + docSource.markup(docMarkup); + + return docSource.toString(); +}; + + +const xmlBufferToLy = async (xml: Buffer, options: LilyProcessOptions = {}): Promise => { + const bom = (xml[0] << 8 | xml[1]); + const utf16 = bom === 0xfffe; + const content = xml.toString(utf16 ? "utf16le" : "utf8"); + + return await xml2ly(content, {replaceEncoding: utf16, ...options}); +}; + + +const unescapeStringExp = exp => exp && exp.toString(); + + +interface SheetNotationResult extends Partial { + midi: MIDI.MidiData; + midiNotation: MusicNotation.NotationData; + //sheetNotation: staffSvg.StaffNotation.SheetNotation; + lilyDocument: LilyDocument; + bakingImages?: Readable[]; +}; + + +const makeSheetNotation = async (source: string, lilyParser: GrammarParser, {withNotation = false, logger, lilyDocument, includeFolders, baking}: { + withNotation?: boolean, + logger?: LogRecorder, + lilyDocument?: LilyDocument, + includeFolders?: string[], + baking?: boolean, +} = {}): Promise => { + let midi = null; + let midiNotation = null; + + const pages = []; + const hashTable = {}; + const bakingImages = []; + + const t0 = Date.now(); + + type ParserArguments = { + attributes: LilyDocumentAttributeReadOnly, + tieLocations: Set, + briefChordLocations: Set, + lyricLocations: Set, + }; + + const argsGen = new SingleLock(true); + + const engraving = await engraveSvg(source, { + includeFolders, + // do some work during lilypond process running to save time + onProcStart: () => { + //console.log("tp.0:", Date.now() - t0); + if (!lilyDocument) { + lilyDocument = new LilyDocument(lilyParser.parse(source)); + lilyDocument.interpret(); + } + + const attributes = lilyDocument.globalAttributes({readonly: true}) as LilyDocumentAttributeReadOnly; + + const tieLocations = docLocationSet(lilyDocument.getTiedNoteLocations2()); + const briefChordLocations = docLocationSet(lilyDocument.getBriefChordLocations()); + const lyricLocations = docLocationSet(lilyDocument.getLyricLocations()); + + argsGen.release({attributes, tieLocations, briefChordLocations, lyricLocations}); + //console.log("tp.1:", Date.now() - t0); + }, + onMidiRead: midi_ => { + //console.log("tm.0:", Date.now() - t0); + midi = midi_; + if (withNotation) + midiNotation = midi && MusicNotation.Notation.parseMidi(midi); + //console.log("tm.1:", Date.now() - t0); + }, + onSvgRead: async (index, svg) => { + //console.log("ts.0:", Date.now() - t0); + const args = await argsGen.wait(); + const page = staffSvg.parseSvgPage(svg, source, {DOMParser, logger, ...args}); + pages[index] = page.structure; + Object.assign(hashTable, page.hashTable); + //console.log("ts.1:", Date.now() - t0); + }, + }); + + logger.append("scoreMaker.profile.engraving", {cost: Date.now() - t0}); + logger.append("lilypond.log", engraving.logs); + + const doc = new staffSvg.SheetDocument({pages}); + + staffSvg.postProcessSheetDocument(doc, lilyDocument); + + if (baking) { + await Promise.all(engraving.svgs.map(async (svg, index) => { + const svgText = staffSvg.turnRawSvgWithSheetDocument(svg, pages[index], {DOMParser, XMLSerializer}); + bakingImages[index] = await svgToPng(Buffer.from(svgText)); + })); + } + + const midiMusic = lilyDocument.interpret().midiMusic; + + const {attributes} = await argsGen.wait(); + const meta = { + title: unescapeStringExp(attributes.title), + composer: unescapeStringExp(attributes.composer), + pageSize: doc.pageSize, + pageCount: doc.pages.length, + staffSize: attributes.staffSize as number, + trackInfos: midiMusic && midiMusic.trackContextDicts, + }; + + /*const t00 = Date.now(); + const sheetNotation = staffSvg.StaffNotation.parseNotationFromSheetDocument(doc, {logger}); + + // correct notation time by location-tick table from lily document + const tickTable = lilyDocument.getLocationTickTable(); + staffSvg.StaffNotation.assignTickByLocationTable(sheetNotation, tickTable); + console.log("parseNotationFromSheetDocument cost:", Date.now() - t00);*/ + + return { + midi, + bakingImages: baking ? bakingImages : null, + midiNotation, + //sheetNotation, + meta, + doc, + hashTable, + lilyDocument, + }; +}; + + +interface MakerOptions { + midi: MIDI.MidiData; + logger: LogRecorder; + includeFolders: string[]; + baking: boolean; + ignoreNotation: boolean; +}; + + +interface MakerResult { + bakingImages?: Readable[], + score: Partial, +}; + + +// non-negative crc-32 +const hashString = (str: string): number => { + const value = CRC32.str(str); + return value < 0 ? 0x100000000 + value : value; +}; + + +const makeScore = async ( + source: string, + lilyParser: GrammarParser, + {midi, logger, baking = false, includeFolders, ignoreNotation = false}: Partial = {}, +): Promise => { + const t0 = Date.now(); + + const hash = hashString(source); + + const foldData = await makeSheetNotation(source, lilyParser, {logger, includeFolders, baking}); + const {meta, doc, hashTable, bakingImages, lilyDocument} = foldData; + + midi = midi || foldData.midi; + const lilyNotation = !ignoreNotation && lilyDocument.interpret().getNotation(); + + if (ignoreNotation || !midi || !lilyNotation) { + if (!ignoreNotation) { + if (!midi) + console.warn("Neither lilypond or external arguments did not offer MIDI data, score maker finished incompletely."); + + if (!lilyNotation) + console.warn("lilyNotation parsing failed, score maker finished incompletely."); + } + + return { + score: { + version: npmPackage.version, + hash, + meta, + doc, + hashTable, + }, + }; + } + + const t5 = Date.now(); + + const matcher = await LilyNotation.matchWithExactMIDI(lilyNotation, midi); + + logger.append("scoreMaker.profile.matching", {cost: Date.now() - t5}); + + if (logger && logger.enabled) { + const cis = new Set(Array(matcher.criterion.notes.length).keys()); + matcher.path.forEach(ci => cis.delete(ci)); + + const omitC = cis.size; + const omitS = matcher.path.filter(ci => ci < 0).length; + + const coverage = ((matcher.criterion.notes.length - omitC) / matcher.criterion.notes.length) + * ((matcher.sample.notes.length - omitS) / matcher.sample.notes.length); + + logger.append("makeScore.match", {coverage, omitC, omitS, path: matcher.path}); + } + + doc.updateMatchedTokens(lilyNotation.idSet); + + // idTrackMap is useless in bundled score + delete lilyNotation.idTrackMap; + + if (baking) + doc.pruneForBakingMode(); + + logger.append("scoreMaker.profile.full", {cost: Date.now() - t0}); + + return { + bakingImages, + score: { + version: npmPackage.version, + hash, + meta, + doc, + hashTable: !baking ? hashTable : null, + lilyNotation, + }, + }; +}; + + +const makeMIDI = async (source: string, lilyParser: GrammarParser, {unfoldRepeats = false, fixNestedRepeat = false, includeFolders = undefined} = {}): Promise => { + const lilyDocument = new LilyDocument(lilyParser.parse(source)); + + if (fixNestedRepeat) + lilyDocument.fixNestedRepeat(); + + if (unfoldRepeats) + lilyDocument.unfoldRepeats(); + + const score = lilyDocument.root.getBlock("score"); + if (score) { + // remove layout block to save time + score.body = score.body.filter(term => !(term instanceof LilyTerms.Block && term.head === "\\layout")); + + // remove invalid tempo + const midi: any = score.body.find(term => term instanceof LilyTerms.Block && term.head === "\\midi"); + if (midi) + midi.body = midi.body.filter(term => !(term instanceof LilyTerms.Tempo && term.beatsPerMinute > 200)); + } + + const markupSource = lilyDocument.toString(); + //console.log("markupSource:", markupSource); + + return new Promise((resolve, reject) => engraveSvg(markupSource, { + includeFolders, + onMidiRead: resolve, + }).catch(reject)); +}; + + +const makeArticulatedMIDI = async (source: string, lilyParser: GrammarParser, {ignoreRepeats = true, includeFolders = undefined} = {}): Promise => { + const lilyDocument = new LilyDocument(lilyParser.parse(source)); + + if (ignoreRepeats) + lilyDocument.removeRepeats(); + + lilyDocument.articulateMIDIOutput(); + + // remove layout block to save time + lilyDocument.root.sections = lilyDocument.root.sections.filter(section => !(section instanceof Block) + || !(section.head === "\\score") + || section.isMIDIDedicated); + + const markupSource = lilyDocument.toString(); + //console.log("markupSource:", markupSource); + + return new Promise((resolve, reject) => engraveSvg(markupSource, { + includeFolders, + onMidiRead: resolve, + }).catch(reject)); +}; + + + +export { + markupLily, + xmlBufferToLy, + makeScore, + makeMIDI, + makeArticulatedMIDI, +}; diff --git a/backend/scoreMaker.ts.old b/backend/scoreMaker.ts.old new file mode 100644 index 0000000000000000000000000000000000000000..4cd5fa997fc7dd247c5395fd5f7037fa0c24e16e --- /dev/null +++ b/backend/scoreMaker.ts.old @@ -0,0 +1,665 @@ +// +// OBSOLETE code, only for archive +// + +import _ from "lodash"; +import {DOMParser, XMLSerializer} from "xmldom"; +import {MusicNotation} from "@k-l-lambda/music-widgets"; +import {MIDI} from "@k-l-lambda/music-widgets"; +import {Readable} from "stream"; + +import npmPackage from "../package.json"; +import {xml2ly, engraveSvg, LilyProcessOptions} from "./lilyCommands"; +import {LilyDocument, replaceSourceToken, LilyTerms} from "../inc/lilyParser"; +import * as staffSvg from "../inc/staffSvg"; +import {SingleLock} from "../inc/mutex"; +import {PitchContextTable} from "../inc/pitchContext"; +import * as LilyNotation from "../inc/lilyNotation"; +import {svgToPng} from "./canvas"; +import LogRecorder from "../inc/logRecorder"; +import ScoreJSON, {NoteLinking} from "../inc/scoreJSON"; +import {LilyDocumentAttribute, LilyDocumentAttributeReadOnly} from "../inc/lilyParser/lilyDocument"; +import {Block} from "../inc/lilyParser/lilyTerms"; + + + +interface GrammarParser { + parse (source: string): any; +}; + + +const markupLily = (source: string, markup: string, lilyParser: GrammarParser): string => { + const docMarkup = new LilyDocument(lilyParser.parse(markup)); + const docSource = new LilyDocument(lilyParser.parse(source)); + + // copy attributes + const attrS = docSource.globalAttributes() as LilyDocumentAttribute; + const attrM = docMarkup.globalAttributes({readonly: true}) as LilyDocumentAttributeReadOnly; + + [ + "staffSize", "paperWidth", "paperHeight", + "topMargin", "bottomMargin", "leftMargin", "rightMargin", + "systemSpacing", "topMarkupSpacing", "raggedLast", "raggedBottom", "raggedLastBottom", + "printPageNumber", + ].forEach(field => { + if (attrM[field] !== undefined) { + if (typeof attrS[field].value === "object" && attrS[field].value && (attrS[field].value as any).set) + (attrS[field].value as any).set(attrM[field]); + else + attrS[field].value = attrM[field]; + } + }); + + // execute commands list + const commands = docMarkup.root.getField("LotusCommands"); + const cmdList = commands && commands.value && commands.value.args && commands.value.args[0].body; + if (cmdList && Array.isArray(cmdList)) { + for (const command of cmdList) { + if (command.exp && docSource[command.exp]) + docSource[command.exp](); + else + console.warn("unexpected markup command:", command); + } + } + + // copy LotusOption assignments + const assignments = docMarkup.root.entries.filter(term => term instanceof LilyTerms.Assignment && /^LotusOption\..+/.test(term.key.toString())); + assignments.forEach(assignment => docSource.root.sections.push(assignment.clone())); + + return docSource.toString(); +}; + + +const xmlBufferToLy = async (xml: Buffer, options: LilyProcessOptions = {}): Promise => { + const bom = (xml[0] << 8 | xml[1]); + const utf16 = bom === 0xfffe; + const content = xml.toString(utf16 ? "utf16le" : "utf8"); + + return await xml2ly(content, {replaceEncoding: utf16, ...options}); +}; + + +const unescapeStringExp = exp => exp && exp.toString(); + + +const makeScoreV1 = async (source: string, lilyParser: GrammarParser, {midi, logger}: {midi?: MIDI.MidiData, logger?: LogRecorder} = {}): Promise => { + const t0 = Date.now(); + + const engraving = await engraveSvg(source); + + logger.append("scoreMaker.profile.engraving", {cost: Date.now() - t0}); + logger.append("lilypond.log", engraving.logs); + + const lilyDocument = new LilyDocument(lilyParser.parse(source)); + const {doc, hashTable} = staffSvg.createSheetDocumentFromSvgs(engraving.svgs, source, lilyDocument, {logger, DOMParser}); + + const sheetNotation = staffSvg.StaffNotation.parseNotationFromSheetDocument(doc, {logger}); + + const attributes = lilyDocument.globalAttributes({readonly: true}); + + const meta = { + title: unescapeStringExp(attributes.title), + composer: unescapeStringExp(attributes.composer), + pageSize: doc.pageSize, + pageCount: doc.pages.length, + staffSize: attributes.staffSize as number, + }; + + midi = midi || engraving.midi; + const midiNotation = MusicNotation.Notation.parseMidi(midi); + + const t5 = Date.now(); + + const matcher = await staffSvg.StaffNotation.matchNotations(midiNotation, sheetNotation); + + logger.append("scoreMaker.profile.matching", {cost: Date.now() - t5}); + + if (logger) { + const cis = new Set(Array(matcher.criterion.notes.length).keys()); + matcher.path.forEach(ci => cis.delete(ci)); + + const omitC = cis.size; + const omitS = matcher.path.filter(ci => ci < 0).length; + + const coverage = ((matcher.criterion.notes.length - omitC) / matcher.criterion.notes.length) + * ((matcher.sample.notes.length - omitS) / matcher.sample.notes.length); + + logger.append("makeScore.match", {coverage, omitC, omitS, path: matcher.path}); + } + + const matchedIds: Set = new Set(); + midiNotation.notes.forEach(note => note.ids && note.ids.forEach(id => matchedIds.add(id))); + + doc.updateMatchedTokens(matchedIds); + + const pitchContextGroup = PitchContextTable.createPitchContextGroup(sheetNotation.pitchContexts, midiNotation); + + const noteLinkings = midiNotation.notes.map(note => _.pick(note, ["ids", "staffTrack", "contextIndex"]) as NoteLinking); + + logger.append("scoreMaker.profile.full", {cost: Date.now() - t0}); + + return { + meta, + doc, + midi, + hashTable, + noteLinkings, + pitchContextGroup, + }; +}; + + +interface IncompleteScoreJSON { + meta?: any, + doc?: any; + hashTable?: {[key: string]: any}; + midi?: MIDI.MidiData; + noteLinkings?: NoteLinking; + pitchContextGroup?: any; +}; + + +interface SheetNotationResult extends IncompleteScoreJSON { + midiNotation: MusicNotation.NotationData; + sheetNotation: staffSvg.StaffNotation.SheetNotation; + lilyDocument: LilyDocument; + bakingImages?: Readable[]; +}; + + +const makeScoreV2 = async (source: string, lilyParser: GrammarParser, {midi, logger}: {midi?: MIDI.MidiData, logger?: LogRecorder} = {}): Promise => { + let midiNotation = null; + + const pages = []; + const hashTable = {}; + + const t0 = Date.now(); + + const attrGen = new SingleLock(true); + + const engraving = await engraveSvg(source, { + // do some work during lilypond process running to save time + onProcStart: () => { + //console.log("tp.0:", Date.now() - t0); + const lilyDocument = new LilyDocument(lilyParser.parse(source)); + attrGen.release(lilyDocument.globalAttributes({readonly: true}) as LilyDocumentAttributeReadOnly); + //console.log("tp.1:", Date.now() - t0); + }, + onMidiRead: midi_ => { + //console.log("tm.0:", Date.now() - t0); + if (!midi) { + midi = midi_; + midiNotation = midi && MusicNotation.Notation.parseMidi(midi); + } + //console.log("tm.1:", Date.now() - t0); + }, + onSvgRead: async svg => { + //console.log("ts.0:", Date.now() - t0); + const attributes = await attrGen.wait(); + const page = staffSvg.parseSvgPage(svg, source, {DOMParser, logger, attributes}); + pages.push(page.structure); + Object.assign(hashTable, page.hashTable); + //console.log("ts.1:", Date.now() - t0); + }, + }); + + //console.log("t2:", Date.now() - t0); + + logger.append("scoreMaker.profile.engraving", {cost: Date.now() - t0}); + logger.append("lilypond.log", engraving.logs); + + const doc = new staffSvg.SheetDocument({pages}); + + //console.log("t3:", Date.now() - t0); + + const attributes = await attrGen.wait(); + const meta = { + title: unescapeStringExp(attributes.title), + composer: unescapeStringExp(attributes.composer), + pageSize: doc.pageSize, + pageCount: doc.pages.length, + staffSize: attributes.staffSize, + }; + + if (!midiNotation) { + console.warn("Neither lilypond or external arguments did not offer MIDI data, score maker finish incompletely."); + return { + meta, + doc, + midi, + hashTable, + }; + } + + //console.log("t4:", Date.now() - t0); + + const sheetNotation = staffSvg.StaffNotation.parseNotationFromSheetDocument(doc, {logger}); + + //console.log("t5:", Date.now() - t0); + const t5 = Date.now(); + + const matcher = await staffSvg.StaffNotation.matchNotations(midiNotation, sheetNotation); + + //console.log("t6:", Date.now() - t0); + logger.append("scoreMaker.profile.matching", {cost: Date.now() - t5}); + + if (logger) { + const cis = new Set(Array(matcher.criterion.notes.length).keys()); + matcher.path.forEach(ci => cis.delete(ci)); + + const omitC = cis.size; + const omitS = matcher.path.filter(ci => ci < 0).length; + + const coverage = ((matcher.criterion.notes.length - omitC) / matcher.criterion.notes.length) + * ((matcher.sample.notes.length - omitS) / matcher.sample.notes.length); + + logger.append("markScore.match", {coverage, omitC, omitS, path: matcher.path}); + } + + //console.log("t7:", Date.now() - t0); + + const matchedIds: Set = new Set(); + midiNotation.notes.forEach(note => note.ids && note.ids.forEach(id => matchedIds.add(id))); + + //console.log("t8:", Date.now() - t0); + + doc.updateMatchedTokens(matchedIds); + + //console.log("t9:", Date.now() - t0); + + const pitchContextGroup = PitchContextTable.createPitchContextGroup(sheetNotation.pitchContexts, midiNotation); + + //console.log("t10:", Date.now() - t0); + + const noteLinkings = midiNotation.notes.map(note => _.pick(note, ["ids", "staffTrack", "contextIndex"])); + + //console.log("t11:", Date.now() - t0); + logger.append("scoreMaker.profile.full", {cost: Date.now() - t0}); + + return { + meta, + doc, + midi, + hashTable, + noteLinkings, + pitchContextGroup, + }; +}; + + +const makeSheetNotation = async (source: string, lilyParser: GrammarParser, {withNotation = true, logger, lilyDocument, includeFolders, baking}: { + withNotation?: boolean, + logger?: LogRecorder, + lilyDocument?: LilyDocument, + includeFolders?: string[], + baking?: boolean, +} = {}): Promise => { + let midi = null; + let midiNotation = null; + + const pages = []; + const hashTable = {}; + const bakingImages = []; + + const t0 = Date.now(); + + type ParserArguments = {attributes: LilyDocumentAttributeReadOnly, tieLocations: {[key: string]: boolean}}; + + const argsGen = new SingleLock(true); + + const engraving = await engraveSvg(source, { + includeFolders, + // do some work during lilypond process running to save time + onProcStart: () => { + //console.log("tp.0:", Date.now() - t0); + if (!lilyDocument) { + lilyDocument = new LilyDocument(lilyParser.parse(source)); + lilyDocument.interpret(); + } + + const attributes = lilyDocument.globalAttributes({readonly: true}) as LilyDocumentAttributeReadOnly; + + //const tieLocations = lilyDocument.getTiedNoteLocations(text) + const tieLocations = lilyDocument.getTiedNoteLocations2() + .reduce((table, loc) => ((table[`${loc[0]}:${loc[1]}`] = true), table), {}); + + argsGen.release({attributes, tieLocations}); + //console.log("tp.1:", Date.now() - t0); + }, + onMidiRead: withNotation && (midi_ => { + //console.log("tm.0:", Date.now() - t0); + midi = midi_; + midiNotation = midi && MusicNotation.Notation.parseMidi(midi); + //console.log("tm.1:", Date.now() - t0); + }), + onSvgRead: async (index, svg) => { + //console.log("ts.0:", Date.now() - t0); + const args = await argsGen.wait(); + const page = staffSvg.parseSvgPage(svg, source, {DOMParser, logger, ...args}); + pages[index] = page.structure; + Object.assign(hashTable, page.hashTable); + //console.log("ts.1:", Date.now() - t0); + }, + }); + + logger.append("scoreMaker.profile.engraving", {cost: Date.now() - t0}); + logger.append("lilypond.log", engraving.logs); + + const doc = new staffSvg.SheetDocument({pages}); + + staffSvg.postProcessSheetDocument(doc, lilyDocument); + + if (baking) { + await Promise.all(engraving.svgs.map(async (svg, index) => { + const svgText = staffSvg.turnRawSvgWithSheetDocument(svg, pages[index], {DOMParser, XMLSerializer}); + bakingImages[index] = await svgToPng(Buffer.from(svgText)); + })); + } + + const {attributes} = await argsGen.wait(); + const meta = { + title: unescapeStringExp(attributes.title), + composer: unescapeStringExp(attributes.composer), + pageSize: doc.pageSize, + pageCount: doc.pages.length, + staffSize: attributes.staffSize, + }; + + const sheetNotation = staffSvg.StaffNotation.parseNotationFromSheetDocument(doc, {logger}); + + // correct notation time by location-tick table from lily document + const tickTable = lilyDocument.getLocationTickTable(); + staffSvg.StaffNotation.assignTickByLocationTable(sheetNotation, tickTable); + + return { + midi, + bakingImages: baking ? bakingImages : null, + midiNotation, + sheetNotation, + meta, + doc, + hashTable, + lilyDocument, + }; +}; + + +const makeScoreV3 = async (source: string, lilyParser: GrammarParser, {midi, logger, unfoldRepeats = false, includeFolders}: { + midi?: MIDI.MidiData, + logger?: LogRecorder, + unfoldRepeats?: boolean, + includeFolders?: string[], +} = {}): Promise => { + const t0 = Date.now(); + + let lilyDocument = null; + let unfoldSource = null; + + if (unfoldRepeats) { + lilyDocument = new LilyDocument(lilyParser.parse(source)); + lilyDocument.interpret(); + if (lilyDocument.containsRepeat()) { + lilyDocument.unfoldRepeats(); + unfoldSource = lilyDocument.toString(); + + // keep 2 version lilypond source note href uniform + source = replaceSourceToken(unfoldSource, "\\unfoldRepeats"); + } + } + + const foldData = await makeSheetNotation(source, lilyParser, {logger, lilyDocument, withNotation: !midi && !unfoldSource, includeFolders}); + const {meta, doc, hashTable} = foldData; + + lilyDocument = lilyDocument || foldData.lilyDocument; + let midiNotation = foldData.midiNotation; + let sheetNotation = foldData.sheetNotation; + + if (midi) + midiNotation = MusicNotation.Notation.parseMidi(midi); + + if (unfoldSource) { + const unfoldData = await makeSheetNotation(unfoldSource, lilyParser, {logger, lilyDocument, withNotation: !midi, includeFolders}); + + midi = midi || unfoldData.midi; + midiNotation = unfoldData.midiNotation; + sheetNotation = unfoldData.sheetNotation; + } + + midi = midi || foldData.midi; + if (!midi || !sheetNotation) { + if (!midi) + console.warn("Neither lilypond or external arguments did not offer MIDI data, score maker finished incompletely."); + + if (!sheetNotation) + console.warn("sheetNotation parsing failed, score maker finished incompletely."); + + return { + meta, + doc, + midi, + hashTable, + }; + } + + const t5 = Date.now(); + + const matcher = await staffSvg.StaffNotation.matchNotations(midiNotation, sheetNotation); + + logger.append("scoreMaker.profile.matching", {cost: Date.now() - t5}); + + if (logger && logger.enabled) { + const cis = new Set(Array(matcher.criterion.notes.length).keys()); + matcher.path.forEach(ci => cis.delete(ci)); + + const omitC = cis.size; + const omitS = matcher.path.filter(ci => ci < 0).length; + + const coverage = ((matcher.criterion.notes.length - omitC) / matcher.criterion.notes.length) + * ((matcher.sample.notes.length - omitS) / matcher.sample.notes.length); + + logger.append("makeScore.match", {coverage, omitC, omitS, path: matcher.path}); + } + + const matchedIds: Set = new Set(); + midiNotation.notes.forEach(note => note.ids && note.ids.forEach(id => matchedIds.add(id))); + + doc.updateMatchedTokens(matchedIds); + + const pitchContextGroup = PitchContextTable.createPitchContextGroup(sheetNotation.pitchContexts, midiNotation); + + const noteLinkings = midiNotation.notes.map(note => _.pick(note, ["ids", "staffTrack", "contextIndex"]) as NoteLinking); + + logger.append("scoreMaker.profile.full", {cost: Date.now() - t0}); + + return { + meta, + doc, + midi, + hashTable, + noteLinkings, + pitchContextGroup, + }; +}; + + +const makeScoreV4 = async (source: string, lilyParser: GrammarParser, {midi, logger, unfoldRepeats = false, baking = false, includeFolders}: { + midi?: MIDI.MidiData, + logger?: LogRecorder, + unfoldRepeats?: boolean, + includeFolders?: string[], + baking?: boolean, +} = {}): Promise<{ + bakingImages?: Readable[], + score: ScoreJSON | IncompleteScoreJSON, +}> => { + const t0 = Date.now(); + + let lilyDocument = null; + let unfoldSource = null; + + if (unfoldRepeats) { + lilyDocument = new LilyDocument(lilyParser.parse(source)); + lilyDocument.interpret(); + if (lilyDocument.containsRepeat()) { + lilyDocument.unfoldRepeats(); + unfoldSource = lilyDocument.toString(); + + // keep 2 version lilypond source note href uniform + source = replaceSourceToken(unfoldSource, "\\unfoldRepeats"); + } + } + + const foldData = await makeSheetNotation(source, lilyParser, {logger, lilyDocument, withNotation: !midi && !unfoldSource, includeFolders, baking}); + const {meta, doc, hashTable, bakingImages} = foldData; + + lilyDocument = lilyDocument || foldData.lilyDocument; + //let sheetNotation = foldData.sheetNotation; + + const matchingMidi = midi || foldData.midi; + + if (unfoldSource) { + const unfoldData = await makeSheetNotation(unfoldSource, lilyParser, {logger, lilyDocument, withNotation: !midi, includeFolders}); + + midi = midi || unfoldData.midi; + //sheetNotation = unfoldData.sheetNotation; + } + + midi = midi || foldData.midi; + const lilyNotation = lilyDocument.interpret().getNotation(); + + if (!midi || !lilyNotation) { + if (!midi) + console.warn("Neither lilypond or external arguments did not offer MIDI data, score maker finished incompletely."); + + if (!lilyNotation) + console.warn("sheetNotation parsing failed, score maker finished incompletely."); + + return { + score: { + version: npmPackage.version, + meta, + doc, + midi, + hashTable, + }, + }; + } + + const t5 = Date.now(); + + const matcher = await LilyNotation.matchWithMIDI(lilyNotation, matchingMidi); + + logger.append("scoreMaker.profile.matching", {cost: Date.now() - t5}); + + if (logger && logger.enabled) { + const cis = new Set(Array(matcher.criterion.notes.length).keys()); + matcher.path.forEach(ci => cis.delete(ci)); + + const omitC = cis.size; + const omitS = matcher.path.filter(ci => ci < 0).length; + + const coverage = ((matcher.criterion.notes.length - omitC) / matcher.criterion.notes.length) + * ((matcher.sample.notes.length - omitS) / matcher.sample.notes.length); + + logger.append("makeScore.match", {coverage, omitC, omitS, path: matcher.path}); + } + + const midiNotation = matcher.sample; + + const matchedIds: Set = new Set(); + midiNotation.notes.forEach(note => note.ids && note.ids.forEach(id => matchedIds.add(id))); + + doc.updateMatchedTokens(matchedIds); + + if (baking) + doc.pruneForBakingMode(); + + const pitchContextGroup = PitchContextTable.createPitchContextGroup( + lilyNotation.pitchContextGroup.map(table => table.items.map(item => item.context)), midiNotation); + + const noteLinkings = midiNotation.notes.map(note => _.pick(note, ["ids", "staffTrack", "contextIndex"]) as NoteLinking); + + logger.append("scoreMaker.profile.full", {cost: Date.now() - t0}); + + return { + bakingImages, + score: { + version: npmPackage.version, + meta, + doc, + midi, + hashTable: !baking ? hashTable : null, + noteLinkings, + pitchContextGroup, + }, + }; +}; + + +void makeScoreV1; +void makeScoreV2; +void makeScoreV3; +const makeScore = makeScoreV4; + + +const makeMIDI = async (source: string, lilyParser: GrammarParser, {unfoldRepeats = false, fixNestedRepeat = false, includeFolders = undefined} = {}): Promise => { + const lilyDocument = new LilyDocument(lilyParser.parse(source)); + + if (fixNestedRepeat) + lilyDocument.fixNestedRepeat(); + + if (unfoldRepeats) + lilyDocument.unfoldRepeats(); + + const score = lilyDocument.root.getBlock("score"); + if (score) { + // remove layout block to save time + score.body = score.body.filter(term => !(term instanceof LilyTerms.Block && term.head === "\\layout")); + + // remove invalid tempo + const midi: any = score.body.find(term => term instanceof LilyTerms.Block && term.head === "\\midi"); + if (midi) + midi.body = midi.body.filter(term => !(term instanceof LilyTerms.Tempo && term.beatsPerMinute > 200)); + } + + const markupSource = lilyDocument.toString(); + //console.log("markupSource:", markupSource); + + return new Promise((resolve, reject) => engraveSvg(markupSource, { + includeFolders, + onMidiRead: resolve, + }).catch(reject)); +}; + + +const makeArticulatedMIDI = async (source: string, lilyParser: GrammarParser, {ignoreRepeats = true, includeFolders = undefined} = {}): Promise => { + const lilyDocument = new LilyDocument(lilyParser.parse(source)); + + if (ignoreRepeats) + lilyDocument.removeRepeats(); + + lilyDocument.articulateMIDIOutput(); + + // remove layout block to save time + lilyDocument.root.sections = lilyDocument.root.sections.filter(section => !(section instanceof Block) + || !(section.head === "\\score") + || section.isMIDIDedicated); + + const markupSource = lilyDocument.toString(); + //console.log("markupSource:", markupSource); + + return new Promise((resolve, reject) => engraveSvg(markupSource, { + includeFolders, + onMidiRead: resolve, + }).catch(reject)); +}; + + + +export { + markupLily, + xmlBufferToLy, + makeScore, + makeMIDI, + makeArticulatedMIDI, +}; diff --git a/backend/statStorage.ts b/backend/statStorage.ts new file mode 100644 index 0000000000000000000000000000000000000000..a0202718a9148d856108580ce5ee004164ec2feb --- /dev/null +++ b/backend/statStorage.ts @@ -0,0 +1,34 @@ + +import fs from "fs"; +import path from "path"; +import YAML from "yaml"; + +import asyncCall from "../inc/asyncCall"; + + + +const exists = async (path: string) => new Promise(resolve => fs.access(path, err => resolve(!err))); + + +const appendData = async (filePath: string, data: object) => { + const dir = path.resolve(filePath, ".."); + const filename = path.relative(dir, filePath); + const statPath = path.resolve(dir, ".lotus_stat.yaml"); + + let stat = {}; + if (await exists(statPath)) { + const buffer = await asyncCall(fs.readFile, statPath); + stat = YAML.parse(buffer.toString()) || stat; + } + + stat[filename] = stat[filename] || {}; + Object.assign(stat[filename], data); + + await asyncCall(fs.writeFile, statPath, YAML.stringify(stat)); +}; + + + +export { + appendData, +}; diff --git a/backend/walkDir.ts b/backend/walkDir.ts new file mode 100644 index 0000000000000000000000000000000000000000..bb3de971a17118995ca897d79e5e8ed9393a2968 --- /dev/null +++ b/backend/walkDir.ts @@ -0,0 +1,35 @@ + +import fs from "fs"; +import path from "path"; + + + +const walkDir = (dir, pattern, {recursive = false} = {}) => { + const list = fs.readdirSync(dir); + //console.log("files:", files); + + const subdirs = []; + + const files = list.map(filename => { + const file = path.resolve(dir, filename); + const stat = fs.statSync(file); + + if (stat.isDirectory()) + subdirs.push(file); + + return {file, filename, stat}; + }).filter(({filename, stat}) => !stat.isDirectory() && (!pattern || pattern.test(filename))) + .map(({file}) => file); + + if (recursive) { + subdirs.forEach(subdir => { + files.push(...walkDir(subdir, pattern, {recursive})); + }); + } + + return files; +}; + + + +export default walkDir; diff --git a/backend/xmlTools.ts b/backend/xmlTools.ts new file mode 100644 index 0000000000000000000000000000000000000000..9dbb8eb6df865a826bb693a015d4ea085beb77e9 --- /dev/null +++ b/backend/xmlTools.ts @@ -0,0 +1,214 @@ + +import {DOMParser, XMLSerializer} from "xmldom"; + +import * as domUtils from "../inc/domUtils"; + + + +const isWordDirection = direction => { + const directionTypes = domUtils.childrenWithTag(direction, "direction-type"); + + for (const dt of directionTypes) { + if (domUtils.hasChildrenWithTag(dt, "words")) + return true; + } + + return false; +}; + + +const moveWordDirection = measure => { + //console.log("measure:", measure); + const words = []; + + for (let i = 0; i < measure.childNodes.length; ++i) { + const child = measure.childNodes[i]; + switch (child.tagName) { + case "direction": + if (isWordDirection(child)) { + words.push(child); + measure.removeChild(child); + } + + break; + case "note": + const next = measure.childNodes[i + 1]; + words.forEach(word => { + if (next) + measure.insertBefore(word, next); + else + measure.appendChild(word); + }); + + return; + } + } +}; + + +const preprocessXml = (xml: string, { + removeMeasureImplicit = true, + replaceEncoding = true, + removeNullDynamics = true, + fixHeadMarkup = true, + fixBackSlashes = true, + roundTempo = true, + escapedWordsDoubleQuotation = true, + removeTrivialRests = true, + removeBadMetronome = true, + removeInvalidHarmonies = true, + removeAllHarmonies = false, + fixChordVoice = true, + fixBarlines = true, + removeInvalidClef = true, +} = {}): string => { + if (!removeMeasureImplicit && !replaceEncoding && !removeNullDynamics && !fixHeadMarkup && !fixBackSlashes && !roundTempo + && !escapedWordsDoubleQuotation && !removeTrivialRests && !removeBadMetronome && !removeInvalidHarmonies && !removeAllHarmonies + && !fixChordVoice && !fixBarlines) + return xml; + + // @ts-ignore + const dom = new DOMParser().parseFromString(xml, "text/xml"); + + if (replaceEncoding) { + const headNode = Array.prototype.find.call(dom.childNodes, node => node.tagName === "xml"); + if (headNode) + headNode.data = headNode.data.replace(/UTF-16/, "UTF-8"); + } + + const needTraverse = removeMeasureImplicit || removeNullDynamics || fixHeadMarkup || fixBackSlashes || roundTempo + || escapedWordsDoubleQuotation || removeTrivialRests || removeBadMetronome || removeInvalidHarmonies || removeAllHarmonies + || fixChordVoice || fixBarlines; + if (needTraverse) { + domUtils.traverse(dom, node => { + if (removeMeasureImplicit) { + if (node.tagName === "measure") + node.removeAttribute("implicit"); + } + + if (removeNullDynamics) { + if (node.tagName === "other-dynamics") { + const content = node.textContent; + if (!/\w/.test(content)) + node.parentNode.removeChild(node); + } + } + + if (fixHeadMarkup) { + if (node.tagName === "measure") { + //console.log("measure:", node); + moveWordDirection(node); + } + } + + if (fixBackSlashes) { + if (["words", "credit-words", "text"].includes(node.tagName)) { + if (/^\\+/.test(node.textContent) || /\\+$/.test(node.textContent)) { + console.debug("replaced invalid text:", node.textContent); + node.textContent = node.textContent.replace(/^\\+/, "").replace(/\\+$/, ""); + } + } + } + + if (roundTempo) { + if (node.tagName === "sound") { + const tempo = Number(node.getAttribute("tempo")); + if (Number.isFinite(tempo) && Math.floor(tempo) !== tempo) + node.setAttribute("tempo", Math.round(tempo).toFixed(0)); + } + } + + if (escapedWordsDoubleQuotation) { + if (["words", "credit-words", "text"].includes(node.tagName)) { + if (node.textContent && /"/.test(node.textContent)) + node.textContent = node.textContent.replace(/"/g, "'"); + } + } + + if (removeTrivialRests) { + if (node.tagName === "note") { + if (domUtils.hasChildrenWithTag(node, "rest") && !domUtils.hasChildrenWithTag(node, "type")) { + // append an empty tag: + const type = dom.createElement("type"); + node.appendChild(type); + } + } + } + + if (removeBadMetronome) { + if (node.tagName === "metronome") { + if (!domUtils.hasChildrenWithTag(node, "per-minute")) { + console.debug("metronome without 'per-minute' removed:", node.toString()); + node.parentNode.removeChild(node); + } + } + } + + if (removeInvalidHarmonies || removeAllHarmonies) { + if (node.tagName === "harmony") { + if (removeAllHarmonies) + node.parentNode.removeChild(node); + else { + let next = node.nextSibling; + while (next && !next.tagName) + next = next.nextSibling; + + //console.log("sibling:", next); + if (!next || next.tagName !== "note") { + node.parentNode.removeChild(node); + console.debug("invalid harmony removed:", next && next.tagName); + } + } + } + } + + if (fixChordVoice) { + if (node.tagName === "note" && domUtils.hasChildrenWithTag(node, "chord") && !domUtils.hasChildrenWithTag(node, "voice")) { + //console.log("bad note:", node); + const previousNote = domUtils.findPreviousSibling(node, "note"); + if (previousNote) { + const voice = domUtils.childrenWithTag(previousNote, "voice")[0]; + //console.log("chord voice:", node, voice); + if (voice) + node.appendChild(voice.cloneNode(true)); + } + } + } + + if (fixBarlines) { + if (node.tagName === "barline") { + if ((node.getAttribute("location") === "right" || domUtils.hasChildrenWithTag(node, "bar-style")) + && domUtils.findNextSibling(node, "backup")) { + // move the barline to the end of this measure + node.parentNode.removeChild(node); + node.parentNode.appendChild(node); + } + } + } + + if(removeInvalidClef) { + if (node.tagName === "attributes") { + const clef = domUtils.childrenWithTag(node, "clef")[0]; + if (clef) { + const n = Number(clef.getAttribute("number")); + if (!domUtils.findPreviousSibling(node, "backup") && n > 1) { + node.parentNode.removeChild(node); + console.debug("invalid clef removed:", n); + } + } + } + } + }); + } + + //console.log("dom:", dom); + + // @ts-ignore + return new XMLSerializer().serializeToString(dom); +}; + + + +export { + preprocessXml, +}; diff --git a/dist/e5c1442134f1e7dfb9dd.worker.js b/dist/e5c1442134f1e7dfb9dd.worker.js new file mode 100644 index 0000000000000000000000000000000000000000..ae6a3067eda92c5c425a7732c257d8ebc725621c --- /dev/null +++ b/dist/e5c1442134f1e7dfb9dd.worker.js @@ -0,0 +1,10 @@ +(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="5db3")})({"0067":function(module,exports,__webpack_require__){(function(process){var typal=__webpack_require__("f78c").typal,Set=__webpack_require__("269b").Set,Lexer=__webpack_require__("82be"),ebnfParser=__webpack_require__("63fd"),JSONSelect=__webpack_require__("a95d"),esprima=__webpack_require__("ea78"),escodegen=__webpack_require__("68c0"),version=__webpack_require__("dc00").version,Jison=exports.Jison=exports;Jison.version=version,"undefined"!==typeof console&&console.log?Jison.print=console.log:"undefined"!==typeof puts?Jison.print=function(){puts([].join.call(arguments," "))}:"undefined"!==typeof print?Jison.print=print:Jison.print=function(){},Jison.Parser=function(){function each(e,t){var n;if(e.forEach)e.forEach(t);else for(n in e)e.hasOwnProperty(n)&&t.call(e,e[n],n,e)}var Nonterminal=typal.construct({constructor:function(e){this.symbol=e,this.productions=new Set,this.first=[],this.follows=[],this.nullable=!1},toString:function(){var e=this.symbol+"\n";return e+=this.nullable?"nullable":"not nullable",e+="\nFirsts: "+this.first.join(", "),e+="\nFollows: "+this.first.join(", "),e+="\nProductions:\n "+this.productions.join("\n "),e}}),Production=typal.construct({constructor:function(e,t,n){this.symbol=e,this.handle=t,this.nullable=!1,this.id=n,this.first=[],this.precedence=0},toString:function(){return this.symbol+" -> "+this.handle.join(" ")}}),generator=typal.beget();function processOperators(e){if(!e)return{};for(var t,n,r={},i=0;n=e[i];i++)for(t=1;t=0;a--)!(r.handle[a]in n)&&r.handle[a]in i&&(r.precedence=i[r.handle[a]].precedence);t.push(r),c.push([h[r.symbol],""===r.handle[0]?0:r.handle.length]),n[o].productions.push(r)}this.parseParams&&(y+=", "+this.parseParams.join(", ")),this.performAction="function anonymous("+y+") {\n"+a+"\n}"},generator.createParser=function(){throw new Error("Calling abstract method.")},generator.trace=function(){},generator.warn=function(){var e=Array.prototype.slice.call(arguments,0);Jison.print.call(null,e.join(""))},generator.error=function(e){throw new Error(e)};var generatorDebug={trace:function(){Jison.print.apply(null,arguments)},beforeprocessGrammar:function(){this.trace("Processing grammar.")},afteraugmentGrammar:function(){var e=this.trace;each(this.symbols,(function(t,n){e(t+"("+n+")")}))}},lookaheadMixin={computeLookaheads:function(){this.DEBUG&&this.mix(lookaheadDebug),this.computeLookaheads=function(){},this.nullableSets(),this.firstSets(),this.followSets()},followSets:function(){var e=this.productions,t=this.nonterminals,n=this,r=!0;while(r)r=!1,e.forEach((function(e,i){for(var s,o,a,l=!!n.go_,c=[],u=0;a=e.handle[u];++u)if(t[a]){l&&(s=n.go_(e.symbol,e.handle.slice(0,u)));var h=!l||s===parseInt(n.nterms_[a],10);if(u===e.handle.length+1&&h)c=t[e.symbol].follows;else{var p=e.handle.slice(u+1);c=n.first(p),n.nullable(p)&&h&&c.push.apply(c,t[e.symbol].follows)}o=t[a].follows.length,Set.union(t[a].follows,c),o!==t[a].follows.length&&(r=!0)}}))},first:function(e){if(""===e)return[];if(e instanceof Array){for(var t,n=[],r=0;t=e[r];++r)if(this.nonterminals[t]?Set.union(n,this.nonterminals[t].first):-1===n.indexOf(t)&&n.push(t),!this.nullable(t))break;return n}return this.nonterminals[e]?this.nonterminals[e].first:[e]},firstSets:function(){var e,t,n=this.productions,r=this.nonterminals,i=this,s=!0;while(s)for(e in s=!1,n.forEach((function(e,t){var n=i.first(e.handle);n.length!==e.first.length&&(e.first=n,s=!0)})),r)t=[],r[e].productions.forEach((function(e){Set.union(t,e.first)})),t.length!==r[e].first.length&&(r[e].first=t,s=!0)},nullableSets:function(){this.firsts={};var e=this.nonterminals,t=this,n=!0;while(n)for(var r in n=!1,this.productions.forEach((function(e,r){if(!e.nullable){for(var i,s=0,o=0;i=e.handle[s];++s)t.nullable(i)&&o++;o===s&&(e.nullable=n=!0)}})),e)if(!this.nullable(r))for(var i,s=0;i=e[r].productions.item(s);s++)i.nullable&&(e[r].nullable=n=!0)},nullable:function(e){if(""===e)return!0;if(e instanceof Array){for(var t,n=0;t=e[n];++n)if(!this.nullable(t))return!1;return!0}return!!this.nonterminals[e]&&this.nonterminals[e].nullable}},lookaheadDebug={beforenullableSets:function(){this.trace("Computing Nullable sets.")},beforefirstSets:function(){this.trace("Computing First sets.")},beforefollowSets:function(){this.trace("Computing Follow sets.")},afterfollowSets:function(){var e=this.trace;each(this.nonterminals,(function(t,n){e(t,"\n")}))}},lrGeneratorMixin={buildTable:function(){this.DEBUG&&this.mix(lrGeneratorDebug),this.states=this.canonicalCollection(),this.table=this.parseTable(this.states),this.defaultActions=findDefaults(this.table)}};lrGeneratorMixin.Item=typal.construct({constructor:function(e,t,n,r){this.production=e,this.dotPosition=t||0,this.follows=n||[],this.predecessor=r,this.id=parseInt(e.id+"a"+this.dotPosition,36),this.markedSymbol=this.production.handle[this.dotPosition]},remainingHandle:function(){return this.production.handle.slice(this.dotPosition+1)},eq:function(e){return e.id===this.id},handleToString:function(){var e=this.production.handle.slice(0);return e[this.dotPosition]="."+(e[this.dotPosition]||""),e.join(" ")},toString:function(){var e=this.production.handle.slice(0);return e[this.dotPosition]="."+(e[this.dotPosition]||""),this.production.symbol+" -> "+e.join(" ")+(0===this.follows.length?"":" #lookaheads= "+this.follows.join(" "))}}),lrGeneratorMixin.ItemSet=Set.prototype.construct({afterconstructor:function(){this.reductions=[],this.goes={},this.edges={},this.shifts=!1,this.inadequate=!1,this.hash_={};for(var e=this._items.length-1;e>=0;e--)this.hash_[this._items[e].id]=!0},concat:function(e){for(var t=e._items||e,n=t.length-1;n>=0;n--)this.hash_[t[n].id]=!0;return this._items.push.apply(this._items,t),this},push:function(e){return this.hash_[e.id]=!0,this._items.push(e)},contains:function(e){return this.hash_[e.id]},valueOf:function(){var e=this._items.map((function(e){return e.id})).sort().join("|");return this.valueOf=function(){return e},e}}),lrGeneratorMixin.closureOperation=function(e){var t,n=new this.ItemSet,r=this,i=e,s={};do{t=new Set,n.concat(i),i.forEach((function(e){var i=e.markedSymbol;i&&r.nonterminals[i]?s[i]||(r.nonterminals[i].productions.forEach((function(e){var i=new r.Item(e,0);n.contains(i)||t.push(i)})),s[i]=!0):i?(n.shifts=!0,n.inadequate=n.reductions.length>0):(n.reductions.push(e),n.inadequate=n.reductions.length>1||n.shifts)})),i=t}while(!t.isEmpty());return n},lrGeneratorMixin.gotoOperation=function(e,t){var n=new this.ItemSet,r=this;return e.forEach((function(e,i){e.markedSymbol===t&&n.push(new r.Item(e.production,e.dotPosition+1,e.follows,i))})),n.isEmpty()?n:this.closureOperation(n)},lrGeneratorMixin.canonicalCollection=function(){var e,t=new this.Item(this.productions[0],0,[this.EOF]),n=this.closureOperation(new this.ItemSet(t)),r=new Set(n),i=0,s=this;r.has={},r.has[n]=0;while(i!==r.size())e=r.item(i),i++,e.forEach((function(t){t.markedSymbol&&t.markedSymbol!==s.EOF&&s.canonicalCollectionInsert(t.markedSymbol,e,r,i-1)}));return r},lrGeneratorMixin.canonicalCollectionInsert=function(e,t,n,r){var i=this.gotoOperation(t,e);if(i.predecessors||(i.predecessors={}),!i.isEmpty()){var s=i.valueOf(),o=n.has[s];-1===o||"undefined"===typeof o?(n.has[s]=n.size(),t.edges[e]=n.size(),n.push(i),i.predecessors[e]=[r]):(t.edges[e]=o,n.item(o).predecessors[e].push(r))}};var NONASSOC=0;function findDefaults(e){var t={};return e.forEach((function(e,n){var r=0;for(var i in e)({}).hasOwnProperty.call(e,i)&&r++;1===r&&2===e[i][0]&&(t[n]=e[i])})),t}function resolveConflict(e,t,n,r){var i={production:e,operator:t,r:n,s:r},s=2;return r[0]===s?(i.msg="Resolve R/R conflict (use first production declared in grammar.)",i.action=r[1] .label > .name:val("_token_stack"))',n);return i[0].body=r,escodegen.generate(n).replace(/_token_stack:\s?/,"").replace(/\\\\n/g,"\\n")}catch(s){return t}}function tokenStackLex(){var e;return e=tstack.pop()||lexer.lex()||EOF,"number"!==typeof e&&(e instanceof Array&&(tstack=e,e=tstack.pop()),e=self.symbols_[e]||e),e}function removeErrorRecovery(e){var t=e;try{var n=esprima.parse(t),r=JSONSelect.match(':has(:root > .label > .name:val("_handle_error"))',n),i=r[0].body.consequent.body[3].consequent.body;return i[0]=r[0].body.consequent.body[1],i[4].expression.arguments[1].properties.pop(),r[0].body.consequent.body=i,escodegen.generate(n).replace(/_handle_error:\s?/,"").replace(/\\\\n/g,"\\n")}catch(s){return t}}lrGeneratorMixin.parseTable=function(e){var t=[],n=this.nonterminals,r=this.operators,i={},s=this,o=1,a=2,l=3;return e.forEach((function(e,c){var u,h,p=t[c]={};for(h in e.edges)e.forEach((function(t,r){if(t.markedSymbol==h){var i=e.edges[h];n[h]?p[s.symbols_[h]]=i:p[s.symbols_[h]]=[o,i]}}));e.forEach((function(e,t){e.markedSymbol==s.EOF&&(p[s.symbols_[s.EOF]]=[l])}));var f=!s.lookAheads&&s.terminals;e.reductions.forEach((function(t,n){var o=f||s.lookAheads(e,t);o.forEach((function(e){u=p[s.symbols_[e]];var n=r[e];if(u||u&&u.length){var o=resolveConflict(t.production,n,[a,t.production.id],u[0]instanceof Array?u[0]:u);s.resolutions.push([c,e,o]),o.bydefault?(s.conflicts++,s.DEBUG||(s.warn("Conflict in grammar: multiple actions possible when lookahead token is ",e," in state ",c,"\n- ",printAction(o.r,s),"\n- ",printAction(o.s,s)),i[c]=!0),s.options.noDefaultResolve&&(u[0]instanceof Array||(u=[u]),u.push(o.r))):u=o.action}else u=[a,t.production.id];u&&u.length?p[s.symbols_[e]]=u:u===NONASSOC&&(p[s.symbols_[e]]=void 0)}))}))})),!s.DEBUG&&s.conflicts>0&&(s.warn("\nStates with conflicts:"),each(i,(function(t,n){s.warn("State "+n),s.warn(" ",e.item(n).join("\n "))}))),t},lrGeneratorMixin.generate=function(e){e=typal.mix.call({},this.options,e);var t="";switch(e.moduleName&&e.moduleName.match(/^[A-Za-z_$][A-Za-z0-9_$]*$/)||(e.moduleName="parser"),e.moduleType){case"js":t=this.generateModule(e);break;case"amd":t=this.generateAMDModule(e);break;default:t=this.generateCommonJSModule(e);break}return t},lrGeneratorMixin.generateAMDModule=function(e){e=typal.mix.call({},this.options,e);var t=this.generateModule_(),n="\n\ndefine(function(require){\n"+t.commonCode+"\nvar parser = "+t.moduleCode+"\n"+this.moduleInclude+(this.lexer&&this.lexer.generateModule?"\n"+this.lexer.generateModule()+"\nparser.lexer = lexer;":"")+"\nreturn parser;\n});";return n},lrGeneratorMixin.generateCommonJSModule=function(e){e=typal.mix.call({},this.options,e);var t=e.moduleName||"parser",n=this.generateModule(e)+"\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = "+t+";\nexports.Parser = "+t+".Parser;\nexports.parse = function () { return "+t+".parse.apply("+t+", arguments); };\nexports.main = "+String(e.moduleMain||commonjsMain)+";\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}";return n},lrGeneratorMixin.generateModule=function(e){e=typal.mix.call({},this.options,e);var t=e.moduleName||"parser",n="/* parser generated by jison "+version+" */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\n";return n+=(t.match(/\./)?t:"var "+t)+" = "+this.generateModuleExpr(),n},lrGeneratorMixin.generateModuleExpr=function(){var e="",t=this.generateModule_();return e+="(function(){\n",e+=t.commonCode,e+="\nvar parser = "+t.moduleCode,e+="\n"+this.moduleInclude,this.lexer&&this.lexer.generateModule&&(e+=this.lexer.generateModule(),e+="\nparser.lexer = lexer;"),e+="\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();",e},lrGeneratorMixin.generateModule_=function(){var e=String(parser.parse);this.hasErrorRecovery||(e=removeErrorRecovery(e)),this.options["token-stack"]&&(e=addTokenStack(e)),nextVariableId=0;var t=this.generateTableCode(this.table),n=t.commonCode,r="{";return r+=["trace: "+String(this.trace||parser.trace),"yy: {}","symbols_: "+JSON.stringify(this.symbols_),"terminals_: "+JSON.stringify(this.terminals_).replace(/"([0-9]+)":/g,"$1:"),"productions_: "+JSON.stringify(this.productions_),"performAction: "+String(this.performAction),"table: "+t.moduleCode,"defaultActions: "+JSON.stringify(this.defaultActions).replace(/"([0-9]+)":/g,"$1:"),"parseError: "+String(this.parseError||(this.hasErrorRecovery?traceParseError:parser.parseError)),"parse: "+e].join(",\n"),r+="};",{commonCode:n,moduleCode:r}},lrGeneratorMixin.generateTableCode=function(e){var t,n=JSON.stringify(e),r=[createObjectCode];n=n.replace(/"([0-9]+)"(?=:)/g,"$1"),n=n.replace(/\{\d+:[^\}]+,\d+:[^\}]+\}/g,(function(e){var t,n,r,i,s,o={},a=0,l=[],c=/(\d+):([^:]+)(?=,\d+:|\})/g;while(s=c.exec(e))r=s[1],t=s[2],i=1,t in o?i=o[t].push(r):o[t]=[r],i>a&&(a=i,n=t);if(a>1){for(t in o)if(t!==n)for(var u=o[t],h=0,p=u.length;h0&&(this.resolutions.forEach((function(t,n){t[2].bydefault&&e.warn("Conflict at state: ",t[0],", token: ",t[1],"\n ",printAction(t[2].r,e),"\n ",printAction(t[2].s,e))})),this.trace("\n"+this.conflicts+" Conflict(s) found in grammar.")),this.trace("Done.")},aftercanonicalCollection:function(e){var t=this.trace;t("\nItem sets\n------"),e.forEach((function(e,n){t("\nitem set",n,"\n"+e.join("\n"),"\ntransitions -> ",JSON.stringify(e.edges))}))}},parser=typal.beget();function traceParseError(e,t){this.trace(e)}function parseError(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)}lrGeneratorMixin.createParser=function createParser(){var p=eval(this.generateModuleExpr());p.productions=this.productions;var self=this;function bind(e){return function(){return self.lexer=p.lexer,self[e].apply(self,arguments)}}return p.lexer=this.lexer,p.generate=bind("generate"),p.generateAMDModule=bind("generateAMDModule"),p.generateModule=bind("generateModule"),p.generateCommonJSModule=bind("generateCommonJSModule"),p},parser.trace=generator.trace,parser.warn=generator.warn,parser.error=generator.error,parser.parseError=lrGeneratorMixin.parseError=parseError,parser.parse=function(e){var t=this,n=[0],r=[null],i=[],s=this.table,o="",a=0,l=0,c=0,u=2,h=1,p=i.slice.call(arguments,1),f=Object.create(this.lexer),d={yy:{}};for(var m in this.yy)Object.prototype.hasOwnProperty.call(this.yy,m)&&(d.yy[m]=this.yy[m]);f.setInput(e,d.yy),d.yy.lexer=f,d.yy.parser=this,"undefined"==typeof f.yylloc&&(f.yylloc={});var g=f.yylloc;i.push(g);var y=f.options&&f.options.ranges;function b(e){n.length=n.length-2*e,r.length=r.length-e,i.length=i.length-e}"function"===typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;var v,x,S,k,_,w,E,C,A,I=function(){var e;return e=f.lex()||h,"number"!==typeof e&&(e=t.symbols_[e]||e),e},O={};while(1){if(S=n[n.length-1],this.defaultActions[S]?k=this.defaultActions[S]:(null!==v&&"undefined"!=typeof v||(v=I()),k=s[S]&&s[S][v]),"undefined"===typeof k||!k.length||!k[0]){var L,P="";function $(e){for(var t=n.length-1,r=0;;){if(u.toString()in s[e])return r;if(0===e||t<2)return!1;t-=2,e=n[t],++r}}if(c)x!==h&&(L=$(S));else{for(w in L=$(S),A=[],s[S])this.terminals_[w]&&w>u&&A.push("'"+this.terminals_[w]+"'");P=f.showPosition?"Parse error on line "+(a+1)+":\n"+f.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(a+1)+": Unexpected "+(v==h?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(P,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:g,expected:A,recoverable:!1!==L})}if(3==c){if(v===h||x===h)throw new Error(P||"Parsing halted while starting to recover from another error.");l=f.yyleng,o=f.yytext,a=f.yylineno,g=f.yylloc,v=I()}if(!1===L)throw new Error(P||"Parsing halted. No suitable error recovery rule available.");b(L),x=v==u?null:v,v=u,S=n[n.length-1],k=s[S]&&s[S][u],c=3}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+S+", token: "+v);switch(k[0]){case 1:n.push(v),r.push(f.yytext),i.push(f.yylloc),n.push(k[1]),v=null,x?(v=x,x=null):(l=f.yyleng,o=f.yytext,a=f.yylineno,g=f.yylloc,c>0&&c--);break;case 2:if(E=this.productions_[k[1]][1],O.$=r[r.length-E],O._$={first_line:i[i.length-(E||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(E||1)].first_column,last_column:i[i.length-1].last_column},y&&(O._$.range=[i[i.length-(E||1)].range[0],i[i.length-1].range[1]]),_=this.performAction.apply(O,[o,l,a,d.yy,k[1],r,i].concat(p)),"undefined"!==typeof _)return _;E&&(n=n.slice(0,-1*E*2),r=r.slice(0,-1*E),i=i.slice(0,-1*E)),n.push(this.productions_[k[1]][0]),r.push(O.$),i.push(O._$),C=s[n[n.length-2]][n[n.length-1]],n.push(C);break;case 3:return!0}}return!0},parser.init=function(e){this.table=e.table,this.defaultActions=e.defaultActions,this.performAction=e.performAction,this.productions_=e.productions_,this.symbols_=e.symbols_,this.terminals_=e.terminals_};var lr0=generator.beget(lookaheadMixin,lrGeneratorMixin,{type:"LR(0)",afterconstructor:function(){this.buildTable()}}),LR0Generator=exports.LR0Generator=lr0.construct(),lalr=generator.beget(lookaheadMixin,lrGeneratorMixin,{type:"LALR(1)",afterconstructor:function(e,t){this.DEBUG&&this.mix(lrGeneratorDebug,lalrGeneratorDebug),t=t||{},this.states=this.canonicalCollection(),this.terms_={};var n=this.newg=typal.beget(lookaheadMixin,{oldg:this,trace:this.trace,nterms_:{},DEBUG:!1,go_:function(e,t){return e=e.split(":")[0],t=t.map((function(e){return e.slice(e.indexOf(":")+1)})),this.oldg.go(e,t)}});n.nonterminals={},n.productions=[],this.inadequateStates=[],this.onDemandLookahead=t.onDemandLookahead||!1,this.buildNewGrammar(),n.computeLookaheads(),this.unionLookaheads(),this.table=this.parseTable(this.states),this.defaultActions=findDefaults(this.table)},lookAheads:function(e,t){return this.onDemandLookahead&&!e.inadequate?this.terminals:t.follows},go:function(e,t){for(var n=parseInt(e,10),r=0;r":29,"*":30,",":31,regex_list:32,"|":33,regex_concat:34,regex_base:35,"(":36,")":37,SPECIAL_GROUP:38,"+":39,"?":40,"/":41,"/!":42,name_expansion:43,range_regex:44,any_group_regex:45,".":46,"^":47,$:48,string:49,escape_char:50,NAME_BRACE:51,ANY_GROUP_REGEX:52,ESCAPE_CHAR:53,RANGE_REGEX:54,STRING_LIT:55,CHARACTER_LIT:56,$accept:0,$end:1},terminals_:{2:"error",5:"%%",8:"EOF",9:"CODE",11:"ACTION",12:"NAME",14:"START_INC",16:"START_EXC",18:"START_COND",22:"{",24:"}",26:"ACTION_BODY",27:"<",29:">",30:"*",31:",",33:"|",36:"(",37:")",38:"SPECIAL_GROUP",39:"+",40:"?",41:"/",42:"/!",46:".",47:"^",48:"$",51:"NAME_BRACE",52:"ANY_GROUP_REGEX",53:"ESCAPE_CHAR",54:"RANGE_REGEX",55:"STRING_LIT",56:"CHARACTER_LIT"},productions_:[0,[3,4],[7,1],[7,2],[7,3],[4,2],[4,2],[4,0],[10,2],[10,2],[10,2],[15,1],[15,2],[17,1],[17,2],[6,2],[6,1],[19,3],[21,3],[21,1],[23,0],[23,1],[23,5],[23,4],[25,1],[25,2],[20,3],[20,3],[20,0],[28,1],[28,3],[13,1],[32,3],[32,2],[32,1],[32,0],[34,2],[34,1],[35,3],[35,3],[35,2],[35,2],[35,2],[35,2],[35,2],[35,1],[35,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[43,1],[45,1],[50,1],[44,1],[49,1],[49,1]],performAction:function(e,t,r,i,s,o,a){var l=o.length-1;switch(s){case 1:return this.$={rules:o[l-1]},o[l-3][0]&&(this.$.macros=o[l-3][0]),o[l-3][1]&&(this.$.startConditions=o[l-3][1]),o[l]&&(this.$.moduleInclude=o[l]),i.options&&(this.$.options=i.options),i.actionInclude&&(this.$.actionInclude=i.actionInclude),delete i.options,delete i.actionInclude,this.$;case 2:this.$=null;break;case 3:this.$=null;break;case 4:this.$=o[l-1];break;case 5:if(this.$=o[l],"length"in o[l-1])this.$[0]=this.$[0]||{},this.$[0][o[l-1][0]]=o[l-1][1];else for(var c in this.$[1]=this.$[1]||{},o[l-1])this.$[1][c]=o[l-1][c];break;case 6:i.actionInclude+=o[l-1],this.$=o[l];break;case 7:i.actionInclude="",this.$=[null,null];break;case 8:this.$=[o[l-1],o[l]];break;case 9:this.$=o[l];break;case 10:this.$=o[l];break;case 11:this.$={},this.$[o[l]]=0;break;case 12:this.$=o[l-1],this.$[o[l]]=0;break;case 13:this.$={},this.$[o[l]]=1;break;case 14:this.$=o[l-1],this.$[o[l]]=1;break;case 15:this.$=o[l-1],this.$.push(o[l]);break;case 16:this.$=[o[l]];break;case 17:this.$=o[l-2]?[o[l-2],o[l-1],o[l]]:[o[l-1],o[l]];break;case 18:this.$=o[l-1];break;case 19:this.$=o[l];break;case 20:this.$="";break;case 21:this.$=o[l];break;case 22:this.$=o[l-4]+o[l-3]+o[l-2]+o[l-1]+o[l];break;case 23:this.$=o[l-3]+o[l-2]+o[l-1]+o[l];break;case 24:this.$=e;break;case 25:this.$=o[l-1]+o[l];break;case 26:this.$=o[l-1];break;case 27:this.$=["*"];break;case 29:this.$=[o[l]];break;case 30:this.$=o[l-2],this.$.push(o[l]);break;case 31:this.$=o[l],i.options&&i.options.flex||!this.$.match(/[\w\d]$/)||this.$.match(/\\(r|f|n|t|v|s|b|c[A-Z]|x[0-9A-F]{2}|u[a-fA-F0-9]{4}|[0-7]{1,3})$/)||(this.$+="\\b");break;case 32:this.$=o[l-2]+"|"+o[l];break;case 33:this.$=o[l-1]+"|";break;case 35:this.$="";break;case 36:this.$=o[l-1]+o[l];break;case 38:this.$="("+o[l-1]+")";break;case 39:this.$=o[l-2]+o[l-1]+")";break;case 40:this.$=o[l-1]+"+";break;case 41:this.$=o[l-1]+"*";break;case 42:this.$=o[l-1]+"?";break;case 43:this.$="(?="+o[l]+")";break;case 44:this.$="(?!"+o[l]+")";break;case 46:this.$=o[l-1]+o[l];break;case 48:this.$=".";break;case 49:this.$="^";break;case 50:this.$="$";break;case 54:this.$=e;break;case 55:this.$=e;break;case 56:this.$=e;break;case 57:this.$=n(e.substr(1,e.length-2));break}},table:[{3:1,4:2,5:[2,7],10:3,11:[1,4],12:[1,5],14:[1,6],16:[1,7]},{1:[3]},{5:[1,8]},{4:9,5:[2,7],10:3,11:[1,4],12:[1,5],14:[1,6],16:[1,7]},{4:10,5:[2,7],10:3,11:[1,4],12:[1,5],14:[1,6],16:[1,7]},{5:[2,35],11:[2,35],12:[2,35],13:11,14:[2,35],16:[2,35],32:12,33:[2,35],34:13,35:14,36:[1,15],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{15:31,18:[1,32]},{17:33,18:[1,34]},{6:35,11:[2,28],19:36,20:37,22:[2,28],27:[1,38],33:[2,28],36:[2,28],38:[2,28],41:[2,28],42:[2,28],46:[2,28],47:[2,28],48:[2,28],51:[2,28],52:[2,28],53:[2,28],55:[2,28],56:[2,28]},{5:[2,5]},{5:[2,6]},{5:[2,8],11:[2,8],12:[2,8],14:[2,8],16:[2,8]},{5:[2,31],11:[2,31],12:[2,31],14:[2,31],16:[2,31],22:[2,31],33:[1,39]},{5:[2,34],11:[2,34],12:[2,34],14:[2,34],16:[2,34],22:[2,34],33:[2,34],35:40,36:[1,15],37:[2,34],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{5:[2,37],11:[2,37],12:[2,37],14:[2,37],16:[2,37],22:[2,37],30:[1,42],33:[2,37],36:[2,37],37:[2,37],38:[2,37],39:[1,41],40:[1,43],41:[2,37],42:[2,37],44:44,46:[2,37],47:[2,37],48:[2,37],51:[2,37],52:[2,37],53:[2,37],54:[1,45],55:[2,37],56:[2,37]},{32:46,33:[2,35],34:13,35:14,36:[1,15],37:[2,35],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{32:47,33:[2,35],34:13,35:14,36:[1,15],37:[2,35],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{35:48,36:[1,15],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{35:49,36:[1,15],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{5:[2,45],11:[2,45],12:[2,45],14:[2,45],16:[2,45],22:[2,45],30:[2,45],33:[2,45],36:[2,45],37:[2,45],38:[2,45],39:[2,45],40:[2,45],41:[2,45],42:[2,45],46:[2,45],47:[2,45],48:[2,45],51:[2,45],52:[2,45],53:[2,45],54:[2,45],55:[2,45],56:[2,45]},{5:[2,47],11:[2,47],12:[2,47],14:[2,47],16:[2,47],22:[2,47],30:[2,47],33:[2,47],36:[2,47],37:[2,47],38:[2,47],39:[2,47],40:[2,47],41:[2,47],42:[2,47],46:[2,47],47:[2,47],48:[2,47],51:[2,47],52:[2,47],53:[2,47],54:[2,47],55:[2,47],56:[2,47]},{5:[2,48],11:[2,48],12:[2,48],14:[2,48],16:[2,48],22:[2,48],30:[2,48],33:[2,48],36:[2,48],37:[2,48],38:[2,48],39:[2,48],40:[2,48],41:[2,48],42:[2,48],46:[2,48],47:[2,48],48:[2,48],51:[2,48],52:[2,48],53:[2,48],54:[2,48],55:[2,48],56:[2,48]},{5:[2,49],11:[2,49],12:[2,49],14:[2,49],16:[2,49],22:[2,49],30:[2,49],33:[2,49],36:[2,49],37:[2,49],38:[2,49],39:[2,49],40:[2,49],41:[2,49],42:[2,49],46:[2,49],47:[2,49],48:[2,49],51:[2,49],52:[2,49],53:[2,49],54:[2,49],55:[2,49],56:[2,49]},{5:[2,50],11:[2,50],12:[2,50],14:[2,50],16:[2,50],22:[2,50],30:[2,50],33:[2,50],36:[2,50],37:[2,50],38:[2,50],39:[2,50],40:[2,50],41:[2,50],42:[2,50],46:[2,50],47:[2,50],48:[2,50],51:[2,50],52:[2,50],53:[2,50],54:[2,50],55:[2,50],56:[2,50]},{5:[2,51],11:[2,51],12:[2,51],14:[2,51],16:[2,51],22:[2,51],30:[2,51],33:[2,51],36:[2,51],37:[2,51],38:[2,51],39:[2,51],40:[2,51],41:[2,51],42:[2,51],46:[2,51],47:[2,51],48:[2,51],51:[2,51],52:[2,51],53:[2,51],54:[2,51],55:[2,51],56:[2,51]},{5:[2,52],11:[2,52],12:[2,52],14:[2,52],16:[2,52],22:[2,52],30:[2,52],33:[2,52],36:[2,52],37:[2,52],38:[2,52],39:[2,52],40:[2,52],41:[2,52],42:[2,52],46:[2,52],47:[2,52],48:[2,52],51:[2,52],52:[2,52],53:[2,52],54:[2,52],55:[2,52],56:[2,52]},{5:[2,53],11:[2,53],12:[2,53],14:[2,53],16:[2,53],22:[2,53],30:[2,53],33:[2,53],36:[2,53],37:[2,53],38:[2,53],39:[2,53],40:[2,53],41:[2,53],42:[2,53],46:[2,53],47:[2,53],48:[2,53],51:[2,53],52:[2,53],53:[2,53],54:[2,53],55:[2,53],56:[2,53]},{5:[2,54],11:[2,54],12:[2,54],14:[2,54],16:[2,54],22:[2,54],30:[2,54],33:[2,54],36:[2,54],37:[2,54],38:[2,54],39:[2,54],40:[2,54],41:[2,54],42:[2,54],46:[2,54],47:[2,54],48:[2,54],51:[2,54],52:[2,54],53:[2,54],54:[2,54],55:[2,54],56:[2,54]},{5:[2,57],11:[2,57],12:[2,57],14:[2,57],16:[2,57],22:[2,57],30:[2,57],33:[2,57],36:[2,57],37:[2,57],38:[2,57],39:[2,57],40:[2,57],41:[2,57],42:[2,57],46:[2,57],47:[2,57],48:[2,57],51:[2,57],52:[2,57],53:[2,57],54:[2,57],55:[2,57],56:[2,57]},{5:[2,58],11:[2,58],12:[2,58],14:[2,58],16:[2,58],22:[2,58],30:[2,58],33:[2,58],36:[2,58],37:[2,58],38:[2,58],39:[2,58],40:[2,58],41:[2,58],42:[2,58],46:[2,58],47:[2,58],48:[2,58],51:[2,58],52:[2,58],53:[2,58],54:[2,58],55:[2,58],56:[2,58]},{5:[2,55],11:[2,55],12:[2,55],14:[2,55],16:[2,55],22:[2,55],30:[2,55],33:[2,55],36:[2,55],37:[2,55],38:[2,55],39:[2,55],40:[2,55],41:[2,55],42:[2,55],46:[2,55],47:[2,55],48:[2,55],51:[2,55],52:[2,55],53:[2,55],54:[2,55],55:[2,55],56:[2,55]},{5:[2,9],11:[2,9],12:[2,9],14:[2,9],16:[2,9],18:[1,50]},{5:[2,11],11:[2,11],12:[2,11],14:[2,11],16:[2,11],18:[2,11]},{5:[2,10],11:[2,10],12:[2,10],14:[2,10],16:[2,10],18:[1,51]},{5:[2,13],11:[2,13],12:[2,13],14:[2,13],16:[2,13],18:[2,13]},{5:[1,55],7:52,8:[1,54],11:[2,28],19:53,20:37,22:[2,28],27:[1,38],33:[2,28],36:[2,28],38:[2,28],41:[2,28],42:[2,28],46:[2,28],47:[2,28],48:[2,28],51:[2,28],52:[2,28],53:[2,28],55:[2,28],56:[2,28]},{5:[2,16],8:[2,16],11:[2,16],22:[2,16],27:[2,16],33:[2,16],36:[2,16],38:[2,16],41:[2,16],42:[2,16],46:[2,16],47:[2,16],48:[2,16],51:[2,16],52:[2,16],53:[2,16],55:[2,16],56:[2,16]},{11:[2,35],13:56,22:[2,35],32:12,33:[2,35],34:13,35:14,36:[1,15],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{12:[1,59],28:57,30:[1,58]},{5:[2,33],11:[2,33],12:[2,33],14:[2,33],16:[2,33],22:[2,33],33:[2,33],34:60,35:14,36:[1,15],37:[2,33],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{5:[2,36],11:[2,36],12:[2,36],14:[2,36],16:[2,36],22:[2,36],30:[1,42],33:[2,36],36:[2,36],37:[2,36],38:[2,36],39:[1,41],40:[1,43],41:[2,36],42:[2,36],44:44,46:[2,36],47:[2,36],48:[2,36],51:[2,36],52:[2,36],53:[2,36],54:[1,45],55:[2,36],56:[2,36]},{5:[2,40],11:[2,40],12:[2,40],14:[2,40],16:[2,40],22:[2,40],30:[2,40],33:[2,40],36:[2,40],37:[2,40],38:[2,40],39:[2,40],40:[2,40],41:[2,40],42:[2,40],46:[2,40],47:[2,40],48:[2,40],51:[2,40],52:[2,40],53:[2,40],54:[2,40],55:[2,40],56:[2,40]},{5:[2,41],11:[2,41],12:[2,41],14:[2,41],16:[2,41],22:[2,41],30:[2,41],33:[2,41],36:[2,41],37:[2,41],38:[2,41],39:[2,41],40:[2,41],41:[2,41],42:[2,41],46:[2,41],47:[2,41],48:[2,41],51:[2,41],52:[2,41],53:[2,41],54:[2,41],55:[2,41],56:[2,41]},{5:[2,42],11:[2,42],12:[2,42],14:[2,42],16:[2,42],22:[2,42],30:[2,42],33:[2,42],36:[2,42],37:[2,42],38:[2,42],39:[2,42],40:[2,42],41:[2,42],42:[2,42],46:[2,42],47:[2,42],48:[2,42],51:[2,42],52:[2,42],53:[2,42],54:[2,42],55:[2,42],56:[2,42]},{5:[2,46],11:[2,46],12:[2,46],14:[2,46],16:[2,46],22:[2,46],30:[2,46],33:[2,46],36:[2,46],37:[2,46],38:[2,46],39:[2,46],40:[2,46],41:[2,46],42:[2,46],46:[2,46],47:[2,46],48:[2,46],51:[2,46],52:[2,46],53:[2,46],54:[2,46],55:[2,46],56:[2,46]},{5:[2,56],11:[2,56],12:[2,56],14:[2,56],16:[2,56],22:[2,56],30:[2,56],33:[2,56],36:[2,56],37:[2,56],38:[2,56],39:[2,56],40:[2,56],41:[2,56],42:[2,56],46:[2,56],47:[2,56],48:[2,56],51:[2,56],52:[2,56],53:[2,56],54:[2,56],55:[2,56],56:[2,56]},{33:[1,39],37:[1,61]},{33:[1,39],37:[1,62]},{5:[2,43],11:[2,43],12:[2,43],14:[2,43],16:[2,43],22:[2,43],30:[1,42],33:[2,43],36:[2,43],37:[2,43],38:[2,43],39:[1,41],40:[1,43],41:[2,43],42:[2,43],44:44,46:[2,43],47:[2,43],48:[2,43],51:[2,43],52:[2,43],53:[2,43],54:[1,45],55:[2,43],56:[2,43]},{5:[2,44],11:[2,44],12:[2,44],14:[2,44],16:[2,44],22:[2,44],30:[1,42],33:[2,44],36:[2,44],37:[2,44],38:[2,44],39:[1,41],40:[1,43],41:[2,44],42:[2,44],44:44,46:[2,44],47:[2,44],48:[2,44],51:[2,44],52:[2,44],53:[2,44],54:[1,45],55:[2,44],56:[2,44]},{5:[2,12],11:[2,12],12:[2,12],14:[2,12],16:[2,12],18:[2,12]},{5:[2,14],11:[2,14],12:[2,14],14:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{5:[2,15],8:[2,15],11:[2,15],22:[2,15],27:[2,15],33:[2,15],36:[2,15],38:[2,15],41:[2,15],42:[2,15],46:[2,15],47:[2,15],48:[2,15],51:[2,15],52:[2,15],53:[2,15],55:[2,15],56:[2,15]},{1:[2,2]},{8:[1,63],9:[1,64]},{11:[1,67],21:65,22:[1,66]},{29:[1,68],31:[1,69]},{29:[1,70]},{29:[2,29],31:[2,29]},{5:[2,32],11:[2,32],12:[2,32],14:[2,32],16:[2,32],22:[2,32],33:[2,32],35:40,36:[1,15],37:[2,32],38:[1,16],41:[1,17],42:[1,18],43:19,45:20,46:[1,21],47:[1,22],48:[1,23],49:24,50:25,51:[1,26],52:[1,27],53:[1,30],55:[1,28],56:[1,29]},{5:[2,38],11:[2,38],12:[2,38],14:[2,38],16:[2,38],22:[2,38],30:[2,38],33:[2,38],36:[2,38],37:[2,38],38:[2,38],39:[2,38],40:[2,38],41:[2,38],42:[2,38],46:[2,38],47:[2,38],48:[2,38],51:[2,38],52:[2,38],53:[2,38],54:[2,38],55:[2,38],56:[2,38]},{5:[2,39],11:[2,39],12:[2,39],14:[2,39],16:[2,39],22:[2,39],30:[2,39],33:[2,39],36:[2,39],37:[2,39],38:[2,39],39:[2,39],40:[2,39],41:[2,39],42:[2,39],46:[2,39],47:[2,39],48:[2,39],51:[2,39],52:[2,39],53:[2,39],54:[2,39],55:[2,39],56:[2,39]},{1:[2,3]},{8:[1,71]},{5:[2,17],8:[2,17],11:[2,17],22:[2,17],27:[2,17],33:[2,17],36:[2,17],38:[2,17],41:[2,17],42:[2,17],46:[2,17],47:[2,17],48:[2,17],51:[2,17],52:[2,17],53:[2,17],55:[2,17],56:[2,17]},{22:[2,20],23:72,24:[2,20],25:73,26:[1,74]},{5:[2,19],8:[2,19],11:[2,19],22:[2,19],27:[2,19],33:[2,19],36:[2,19],38:[2,19],41:[2,19],42:[2,19],46:[2,19],47:[2,19],48:[2,19],51:[2,19],52:[2,19],53:[2,19],55:[2,19],56:[2,19]},{11:[2,26],22:[2,26],33:[2,26],36:[2,26],38:[2,26],41:[2,26],42:[2,26],46:[2,26],47:[2,26],48:[2,26],51:[2,26],52:[2,26],53:[2,26],55:[2,26],56:[2,26]},{12:[1,75]},{11:[2,27],22:[2,27],33:[2,27],36:[2,27],38:[2,27],41:[2,27],42:[2,27],46:[2,27],47:[2,27],48:[2,27],51:[2,27],52:[2,27],53:[2,27],55:[2,27],56:[2,27]},{1:[2,4]},{22:[1,77],24:[1,76]},{22:[2,21],24:[2,21],26:[1,78]},{22:[2,24],24:[2,24],26:[2,24]},{29:[2,30],31:[2,30]},{5:[2,18],8:[2,18],11:[2,18],22:[2,18],27:[2,18],33:[2,18],36:[2,18],38:[2,18],41:[2,18],42:[2,18],46:[2,18],47:[2,18],48:[2,18],51:[2,18],52:[2,18],53:[2,18],55:[2,18],56:[2,18]},{22:[2,20],23:79,24:[2,20],25:73,26:[1,74]},{22:[2,25],24:[2,25],26:[2,25]},{22:[1,77],24:[1,80]},{22:[2,23],24:[2,23],25:81,26:[1,74]},{22:[2,22],24:[2,22],26:[1,78]}],defaultActions:{9:[2,5],10:[2,6],52:[2,1],54:[2,2],63:[2,3],71:[2,4]},parseError:function(e,t){if(!t.recoverable)throw new Error(e);this.trace(e)},parse:function(e){var t=this,n=[0],r=[null],i=[],s=this.table,o="",a=0,l=0,c=0,u=2,h=1;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var p=this.lexer.yylloc;i.push(p);var f=this.lexer.options&&this.lexer.options.ranges;function d(){var e;return e=t.lexer.lex()||h,"number"!==typeof e&&(e=t.symbols_[e]||e),e}"function"===typeof this.yy.parseError?this.parseError=this.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;var m,g,y,b,v,x,S,k,_,w={};while(1){if(y=n[n.length-1],this.defaultActions[y]?b=this.defaultActions[y]:(null!==m&&"undefined"!=typeof m||(m=d()),b=s[y]&&s[y][m]),"undefined"===typeof b||!b.length||!b[0]){var E="";for(x in _=[],s[y])this.terminals_[x]&&x>u&&_.push("'"+this.terminals_[x]+"'");E=this.lexer.showPosition?"Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(a+1)+": Unexpected "+(m==h?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:p,expected:_})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+m);switch(b[0]){case 1:n.push(m),r.push(this.lexer.yytext),i.push(this.lexer.yylloc),n.push(b[1]),m=null,g?(m=g,g=null):(l=this.lexer.yyleng,o=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,c>0&&c--);break;case 2:if(S=this.productions_[b[1]][1],w.$=r[r.length-S],w._$={first_line:i[i.length-(S||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(S||1)].first_column,last_column:i[i.length-1].last_column},f&&(w._$.range=[i[i.length-(S||1)].range[0],i[i.length-1].range[1]]),v=this.performAction.call(w,o,l,a,this.yy,b[1],r,i),"undefined"!==typeof v)return v;S&&(n=n.slice(0,-1*S*2),r=r.slice(0,-1*S),i=i.slice(0,-1*S)),n.push(this.productions_[b[1]][0]),r.push(w.$),i.push(w._$),k=s[n[n.length-2]][n[n.length-1]],n.push(k);break;case 3:return!0}}return!0}};function t(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1").replace(/\\\\u([a-fA-F0-9]{4})/g,"\\u$1")}function n(e){return e=e.replace(/\\\\/g,"\\"),e=t(e),e}var r=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);return t?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in i)this[s]=i[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(e=this.test_match(n,i[s]),!1!==e)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),!1!==e&&e):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){var e=this.conditionStack.length-1;return e>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions["INITIAL"].rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:return 26;case 1:return 26;case 2:return 26;case 3:return 26;case 4:return 26;case 5:return 26;case 6:return 26;case 7:return e.depth++,22;case 8:return 0==e.depth?this.begin("trail"):e.depth--,24;case 9:return 12;case 10:return this.popState(),29;case 11:return 31;case 12:return 30;case 13:break;case 14:break;case 15:this.begin("indented");break;case 16:return this.begin("code"),5;case 17:return 56;case 18:e.options[t.yytext]=!0;break;case 19:this.begin("INITIAL");break;case 20:this.begin("INITIAL");break;case 21:break;case 22:return 18;case 23:this.begin("INITIAL");break;case 24:this.begin("INITIAL");break;case 25:break;case 26:this.begin("rules");break;case 27:return e.depth=0,this.begin("action"),22;case 28:return this.begin("trail"),t.yytext=t.yytext.substr(2,t.yytext.length-4),11;case 29:return t.yytext=t.yytext.substr(2,t.yytext.length-4),11;case 30:return this.begin("rules"),11;case 31:break;case 32:break;case 33:break;case 34:break;case 35:return 12;case 36:return t.yytext=t.yytext.replace(/\\"/g,'"'),55;case 37:return t.yytext=t.yytext.replace(/\\'/g,"'"),55;case 38:return 33;case 39:return 52;case 40:return 38;case 41:return 38;case 42:return 38;case 43:return 36;case 44:return 37;case 45:return 39;case 46:return 30;case 47:return 40;case 48:return 47;case 49:return 31;case 50:return 48;case 51:return this.begin("conditions"),27;case 52:return 42;case 53:return 41;case 54:return 53;case 55:return t.yytext=t.yytext.replace(/^\\/g,""),53;case 56:return 48;case 57:return 46;case 58:e.options={},this.begin("options");break;case 59:return this.begin("start_condition"),14;case 60:return this.begin("start_condition"),16;case 61:return this.begin("rules"),5;case 62:return 54;case 63:return 51;case 64:return 22;case 65:return 24;case 66:break;case 67:return 8;case 68:return 9}},rules:[/^(?:\/\*(.|\n|\r)*?\*\/)/,/^(?:\/\/.*)/,/^(?:\/[^ /]*?['"{}'][^ ]*?\/)/,/^(?:"(\\\\|\\"|[^"])*")/,/^(?:'(\\\\|\\'|[^'])*')/,/^(?:[/"'][^{}/"']+)/,/^(?:[^{}/"']+)/,/^(?:\{)/,/^(?:\})/,/^(?:([a-zA-Z_][a-zA-Z0-9_-]*))/,/^(?:>)/,/^(?:,)/,/^(?:\*)/,/^(?:(\r\n|\n|\r)+)/,/^(?:\s+(\r\n|\n|\r)+)/,/^(?:\s+)/,/^(?:%%)/,/^(?:[a-zA-Z0-9_]+)/,/^(?:([a-zA-Z_][a-zA-Z0-9_-]*))/,/^(?:(\r\n|\n|\r)+)/,/^(?:\s+(\r\n|\n|\r)+)/,/^(?:\s+)/,/^(?:([a-zA-Z_][a-zA-Z0-9_-]*))/,/^(?:(\r\n|\n|\r)+)/,/^(?:\s+(\r\n|\n|\r)+)/,/^(?:\s+)/,/^(?:.*(\r\n|\n|\r)+)/,/^(?:\{)/,/^(?:%\{(.|(\r\n|\n|\r))*?%\})/,/^(?:%\{(.|(\r\n|\n|\r))*?%\})/,/^(?:.+)/,/^(?:\/\*(.|\n|\r)*?\*\/)/,/^(?:\/\/.*)/,/^(?:(\r\n|\n|\r)+)/,/^(?:\s+)/,/^(?:([a-zA-Z_][a-zA-Z0-9_-]*))/,/^(?:"(\\\\|\\"|[^"])*")/,/^(?:'(\\\\|\\'|[^'])*')/,/^(?:\|)/,/^(?:\[(\\\\|\\\]|[^\]])*\])/,/^(?:\(\?:)/,/^(?:\(\?=)/,/^(?:\(\?!)/,/^(?:\()/,/^(?:\))/,/^(?:\+)/,/^(?:\*)/,/^(?:\?)/,/^(?:\^)/,/^(?:,)/,/^(?:<>)/,/^(?:<)/,/^(?:\/!)/,/^(?:\/)/,/^(?:\\([0-7]{1,3}|[rfntvsSbBwWdD\\*+()${}|[\]\/.^?]|c[A-Z]|x[0-9A-F]{2}|u[a-fA-F0-9]{4}))/,/^(?:\\.)/,/^(?:\$)/,/^(?:\.)/,/^(?:%options\b)/,/^(?:%s\b)/,/^(?:%x\b)/,/^(?:%%)/,/^(?:\{\d+(,\s?\d+|,)?\})/,/^(?:\{([a-zA-Z_][a-zA-Z0-9_-]*)\})/,/^(?:\{)/,/^(?:\})/,/^(?:.)/,/^(?:$)/,/^(?:(.|(\r\n|\n|\r))+)/],conditions:{code:{rules:[67,68],inclusive:!1},start_condition:{rules:[22,23,24,25,67],inclusive:!1},options:{rules:[18,19,20,21,67],inclusive:!1},conditions:{rules:[9,10,11,12,67],inclusive:!1},action:{rules:[0,1,2,3,4,5,6,7,8,67],inclusive:!1},indented:{rules:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0},trail:{rules:[26,29,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0},rules:{rules:[13,14,15,16,17,29,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0},INITIAL:{rules:[29,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};return e}();function i(){this.yy={}}return e.lexer=r,i.prototype=e,e.Parser=i,new i}();t.parser=i,t.Parser=i.Parser,t.parse=function(){return i.parse.apply(i,arguments)},t.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),e.exit(1));var i=n("3e8f").readFileSync(n("df7c").normalize(r[1]),"utf8");return t.parser.parse(i)},n.c[n.s]===r&&t.main(e.argv.slice(1))}).call(this,n("4362"),n("62e4")(e))},"269b":function(e,t,n){var r=n("f78c").typal,i={constructor:function(e,t){this._items=[],e&&e.constructor===Array?this._items=t?e:e.slice(0):arguments.length&&(this._items=[].slice.call(arguments,0))},concat:function(e){return this._items.push.apply(this._items,e._items||e),this},eq:function(e){return this._items.length===e._items.length&&this.subset(e)},indexOf:function(e){if(e&&e.eq){for(var t=0;t=0;--r)n[e[r]]=!0;for(var i=t.length-1;i>=0;--i)n[t[i]]||e.push(t[i]);return e}});t.Set=s},"2e7a":function(e,t,n){var r=function(){var e=n("7b29"),t=function(e,t,n){var s,o=e[0],a=e[1],l=!1;if("xalias"===o&&(o=e[1],a=e[2],l=e[3],o?e=e.slice(1,2):(e=a,o=e[0],a=e[1])),"symbol"===o)s="\\"===e[1][0]?e[1][1]:"'"===e[1][0]?e[1].substring(1,e[1].length-1):e[1],n(s+(l?"["+l+"]":""));else if("+"===o){l||(l=t.production+"_repetition_plus"+t.repid++),n(l),t=i(l,t.grammar);var c=r([a],t);t.grammar[l]=[[c,"$$ = [$1];"],[l+" "+c,"$1.push($2);"]]}else"*"===o?(l||(l=t.production+"_repetition"+t.repid++),n(l),t=i(l,t.grammar),t.grammar[l]=[["","$$ = [];"],[l+" "+r([a],t),"$1.push($2);"]]):"?"===o?(l||(l=t.production+"_option"+t.optid++),n(l),t=i(l,t.grammar),t.grammar[l]=["",r([a],t)]):"()"===o&&(1==a.length?n(r(a[0],t)):(l||(l=t.production+"_group"+t.groupid++),n(l),t=i(l,t.grammar),t.grammar[l]=a.map((function(e){return r(e,t)}))))},r=function(e,n){return e.reduce((function(e,r){return t(r,n,(function(t){e.push(t)})),e}),[]).join(" ")},i=function(e,t){return{production:e,repid:0,groupid:0,optid:0,grammar:t}},s=function(t,n,s){var o=i(t,s);return n.map((function(t){var n=null,i=null;"string"!==typeof t&&(n=t[1],i=t[2],t=t[0]);var s=e.parse(t);t=r(s,o);var a=[t];return n&&a.push(n),i&&a.push(i),1==a.length?a[0]:a}))},o=function(e){Object.keys(e).forEach((function(t){e[t]=s(t,e[t],e)}))};return{transform:function(e){return o(e),e}}}();t.transform=r.transform},"3e8f":function(e,t){},4362:function(e,t,n){t.nextTick=function(e){var t=Array.prototype.slice.call(arguments);t.shift(),setTimeout((function(){e.apply(null,t)}),0)},t.platform=t.arch=t.execPath=t.title="browser",t.pid=1,t.browser=!0,t.env={},t.argv=[],t.binding=function(e){throw new Error("No such module. (Possibly not yet loaded)")},function(){var e,r="/";t.cwd=function(){return r},t.chdir=function(t){e||(e=n("df7c")),r=e.resolve(t,r)}}(),t.exit=t.kill=t.umask=t.dlopen=t.uptime=t.memoryUsage=t.uvCounters=function(){},t.features={}},"4c66":function(e,t,n){t.SourceMapGenerator=n("65ec").SourceMapGenerator,t.SourceMapConsumer=n("fb98").SourceMapConsumer,t.SourceNode=n("8c12").SourceNode},"5db3":function(e,t,n){"use strict";n.r(t),n.d(t,"Parser",(function(){return N})); +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ +const r=Symbol("Comlink.proxy"),i=Symbol("Comlink.endpoint"),s=Symbol("Comlink.releaseProxy"),o=Symbol("Comlink.finalizer"),a=Symbol("Comlink.thrown"),l=e=>"object"===typeof e&&null!==e||"function"===typeof e,c={canHandle:e=>l(e)&&e[r],serialize(e){const{port1:t,port2:n}=new MessageChannel;return f(e,t),[n,[n]]},deserialize(e){return e.start(),g(e)}},u={canHandle:e=>l(e)&&a in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}},h=new Map([["proxy",c],["throw",u]]);function p(e,t){for(const n of e){if(t===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(t))return!0}return!1}function f(e,t=globalThis,n=["*"]){t.addEventListener("message",(function r(i){if(!i||!i.data)return;if(!p(n,i.origin))return void console.warn(`Invalid origin '${i.origin}' for comlink proxy`);const{id:s,type:l,path:c}=Object.assign({path:[]},i.data),u=(i.data.argumentList||[]).map(L);let h;try{const t=c.slice(0,-1).reduce((e,t)=>e[t],e),n=c.reduce((e,t)=>e[t],e);switch(l){case"GET":h=n;break;case"SET":t[c.slice(-1)[0]]=L(i.data.value),h=!0;break;case"APPLY":h=n.apply(t,u);break;case"CONSTRUCT":{const e=new n(...u);h=I(e)}break;case"ENDPOINT":{const{port1:t,port2:n}=new MessageChannel;f(e,n),h=A(t,[t])}break;case"RELEASE":h=void 0;break;default:return}}catch(d){h={value:d,[a]:0}}Promise.resolve(h).catch(e=>({value:e,[a]:0})).then(n=>{const[i,a]=O(n);t.postMessage(Object.assign(Object.assign({},i),{id:s}),a),"RELEASE"===l&&(t.removeEventListener("message",r),m(t),o in e&&"function"===typeof e[o]&&e[o]())}).catch(e=>{const[n,r]=O({value:new TypeError("Unserializable return value"),[a]:0});t.postMessage(Object.assign(Object.assign({},n),{id:s}),r)})})),t.start&&t.start()}function d(e){return"MessagePort"===e.constructor.name}function m(e){d(e)&&e.close()}function g(e,t){const n=new Map;return e.addEventListener("message",(function(e){const{data:t}=e;if(!t||!t.id)return;const r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}})),_(e,n,[],t)}function y(e){if(e)throw new Error("Proxy has been released and is not useable")}function b(e){return P(e,new Map,{type:"RELEASE"}).then(()=>{m(e)})}const v=new WeakMap,x="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{const t=(v.get(e)||0)-1;v.set(e,t),0===t&&b(e)});function S(e,t){const n=(v.get(t)||0)+1;v.set(t,n),x&&x.register(e,t,e)}function k(e){x&&x.unregister(e)}function _(e,t,n=[],r=function(){}){let o=!1;const a=new Proxy(r,{get(r,i){if(y(o),i===s)return()=>{k(a),b(e),t.clear(),o=!0};if("then"===i){if(0===n.length)return{then:()=>a};const r=P(e,t,{type:"GET",path:n.map(e=>e.toString())}).then(L);return r.then.bind(r)}return _(e,t,[...n,i])},set(r,i,s){y(o);const[a,l]=O(s);return P(e,t,{type:"SET",path:[...n,i].map(e=>e.toString()),value:a},l).then(L)},apply(r,s,a){y(o);const l=n[n.length-1];if(l===i)return P(e,t,{type:"ENDPOINT"}).then(L);if("bind"===l)return _(e,t,n.slice(0,-1));const[c,u]=E(a);return P(e,t,{type:"APPLY",path:n.map(e=>e.toString()),argumentList:c},u).then(L)},construct(r,i){y(o);const[s,a]=E(i);return P(e,t,{type:"CONSTRUCT",path:n.map(e=>e.toString()),argumentList:s},a).then(L)}});return S(a,e),a}function w(e){return Array.prototype.concat.apply([],e)}function E(e){const t=e.map(O);return[t.map(e=>e[0]),w(t.map(e=>e[1]))]}const C=new WeakMap;function A(e,t){return C.set(e,t),e}function I(e){return Object.assign(e,{[r]:!0})}function O(e){for(const[t,n]of h)if(n.canHandle(e)){const[r,i]=n.serialize(e);return[{type:"HANDLER",name:t,value:r},i]}return[{type:"RAW",value:e},C.get(e)||[]]}function L(e){switch(e.type){case"HANDLER":return h.get(e.name).deserialize(e.value);case"RAW":return e.value}}function P(e,t,n,r){return new Promise(i=>{const s=$();t.set(s,i),e.start&&e.start(),e.postMessage(Object.assign({id:s},n),r)})}function $(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var R=n("0067"),M=n.n(R);class N{constructor(e){const t=[];if(M.a.print=e=>t.push(e),this.parser=M.a.Parser(e),!this.parser)throw console.warn("jison logs:",t),new Error("jison parser loading failed");M.a.print=(...e)=>console.log("[JISON]",...e)}parse(e){return this.parser.parse(e)}generate(){return this.parser.generate()}}f(Object.keys(t).reduce((function(e,n){return"__esModule"==n||(e[n]=t[n]),e}),{}))},"62e4":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"63fd":function(e,t,n){var r=n("9a70").parser,i=n("2e7a"),s=n("0812");t.parse=function(e){return r.parse(e)},t.transform=i.transform,r.yy.addDeclaration=function(e,t){if(t.start)e.start=t.start;else if(t.lex)e.lex=o(t.lex);else if(t.operator)e.operators||(e.operators=[]),e.operators.push(t.operator);else if(t.parseParam)e.parseParams||(e.parseParams=[]),e.parseParams=e.parseParams.concat(t.parseParam);else if(t.include)e.moduleInclude||(e.moduleInclude=""),e.moduleInclude+=t.include;else if(t.options){e.options||(e.options={});for(var n=0;n0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},a.prototype._serializeMappings=function(){for(var e,t=0,n=1,s=0,o=0,a=0,l=0,c="",u=this._mappings.toArray(),h=0,p=u.length;h0){if(!i.compareByGeneratedPositions(e,u[h-1]))continue;c+=","}c+=r.encode(e.generatedColumn-t),t=e.generatedColumn,null!=e.source&&(c+=r.encode(this._sources.indexOf(e.source)-l),l=this._sources.indexOf(e.source),c+=r.encode(e.originalLine-1-o),o=e.originalLine-1,c+=r.encode(e.originalColumn-s),s=e.originalColumn,null!=e.name&&(c+=r.encode(this._names.indexOf(e.name)-a),a=this._names.indexOf(e.name)))}return c},a.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=i.relative(t,e));var n=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)},a.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},a.prototype.toString=function(){return JSON.stringify(this)},t.SourceMapGenerator=a}))}).call(this,n("62e4")(e))},"68c0":function(e,t,n){(function(e){(function(){"use strict";var r,i,s,o,a,l,c,u,h,p,f,d,m,g,y,b,v,x,S,k,_,w,E,C,A;function I(){return{indent:null,base:null,parse:null,comment:!1,format:{indent:{style:" ",base:0,adjustMultilineComment:!1},newline:"\n",space:" ",json:!1,renumber:!1,hexadecimal:!1,quotes:"single",escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1},moz:{comprehensionExpressionStartsWithAssignment:!1,starlessGenerator:!1,parenthesizedComprehensionBlock:!1},sourceMap:null,sourceMapRoot:null,sourceMapWithCode:!1,directive:!1,raw:!0,verbatim:null}}function O(e,t){var n="";for(t|=0;t>0;t>>>=1,e+=e)1&t&&(n+=e);return n}function L(e){return/[\r\n]/g.test(e)}function P(e){var t=e.length;return t&&l.code.isLineTerminator(e.charCodeAt(t-1))}function $(e,t){var n,r;function i(e){return"object"===typeof e&&e instanceof Object&&!(e instanceof RegExp)}for(n in t)t.hasOwnProperty(n)&&(r=t[n],i(r)?i(e[n])?$(e[n],r):e[n]=$({},r):e[n]=r);return e}function R(e){var t,n,r,i,s;if(e!==e)throw new Error("Numeric literal whose value is NaN");if(e<0||0===e&&1/e<0)throw new Error("Numeric literal whose value is negative");if(e===1/0)return p?"null":f?"1e400":"1e+400";if(t=""+e,!f||t.length<3)return t;n=t.indexOf("."),p||48!==t.charCodeAt(0)||1!==n||(n=0,t=t.slice(1)),r=t,t=t.replace("e+","e"),i=0,(s=r.indexOf("e"))>0&&(i=+r.slice(s+1),r=r.slice(0,s)),n>=0&&(i-=r.length-n-1,r=+(r.slice(0,n)+r.slice(n+1))+""),s=0;while(48===r.charCodeAt(r.length+s-1))--s;return 0!==s&&(i-=s,r=r.slice(0,s)),0!==i&&(r+="e"+i),(r.length1e12&&Math.floor(e)===e&&(r="0x"+e.toString(16)).length255?r+="u"+"0000".slice(n.length)+n:0!==e||l.code.isDecimalDigit(t)?r+=11===e?"x0B":"x"+"00".slice(n.length)+n:r+="0";break}return r}function T(e){var t="\\";switch(e){case 92:t+="\\";break;case 10:t+="n";break;case 13:t+="r";break;case 8232:t+="u2028";break;case 8233:t+="u2029";break;default:throw new Error("Incorrectly classified character")}return t}function D(e){var t,n,r,i;for(i="double"===m?'"':"'",t=0,n=e.length;t=32&&r<=126)){o+=j(r,e.charCodeAt(t+1));continue}}o+=String.fromCharCode(r)}if(i=!("double"===m||"auto"===m&&c=0;--t)if(l.code.isLineTerminator(e.charCodeAt(t)))break;return e.length-1-t}function J(e,t){var n,r,i,s,o,a,c,h;for(n=e.split(/\r\n|[\r\n]/),a=Number.MAX_VALUE,r=1,i=n.length;ro&&(a=o)}for("undefined"!==typeof t?(c=u,"*"===n[1][a]&&(t+=" "),u=t):(1&a&&--a,c=u),r=1,i=n.length;r0){for(o=t,s=e.leadingComments[0],t=[],S&&e.type===r.Program&&0===e.body.length&&t.push("\n"),t.push(Z(s)),P(z(t).toString())||t.push("\n"),n=1,i=e.leadingComments.length;n")),e.expression?(t.push(b),o=oe(e.body,{precedence:i.Assignment,allowIn:!0,allowCall:!0}),"{"===o.toString().charAt(0)&&(o=["(",o,")"]),t.push(o)):t.push(K(e.body,!1,!0)),t}function ie(e,t,n){var s=["for"+b+"("];return W((function(){t.left.type===r.VariableDeclaration?W((function(){s.push(t.left.kind+B()),s.push(ae(t.left.declarations[0],{allowIn:!1}))})):s.push(oe(t.left,{precedence:i.Call,allowIn:!0,allowCall:!0})),s=U(s,e),s=[U(s,oe(t.right,{precedence:i.Sequence,allowIn:!0,allowCall:!0})),")"]})),s.push(K(t.body,n)),s}function se(e){var t;if(e.hasOwnProperty("raw")&&w&&_.raw)try{if(t=w(e.raw).body[0].expression,t.type===r.Literal&&t.value===e.value)return e.raw}catch(n){}return null===e.value?"null":"string"===typeof e.value?F(e.value):"number"===typeof e.value?R(e.value):"boolean"===typeof e.value?e.value?"true":"false":N(e.value)}function oe(e,t){var n,o,a,c,h,p,f,d,m,g,x,S,k,w,E,C;if(o=t.precedence,S=t.allowIn,k=t.allowCall,a=e.type||t.type,_.verbatim&&e.hasOwnProperty(_.verbatim))return ee(e,t);switch(a){case r.SequenceExpression:for(n=[],S|=i.Sequence0){for(n.push("("),h=0;h=2&&48===f.charCodeAt(0))&&n.push(".")),n.push("."),n.push(te(e.property))),n=Y(n,i.Member,o);break;case r.UnaryExpression:f=oe(e.argument,{precedence:i.Unary,allowIn:!0,allowCall:!0}),""===b?n=U(e.operator,f):(n=[e.operator],e.operator.length>2?n=U(n,f):(g=z(n).toString(),m=g.charCodeAt(g.length-1),x=f.toString().charCodeAt(0),(43===m||45===m)&&m===x||l.code.isIdentifierPart(m)&&l.code.isIdentifierPart(x)?(n.push(B()),n.push(f)):n.push(f))),n=Y(n,i.Unary,o);break;case r.YieldExpression:n=e.delegate?"yield*":"yield",e.argument&&(n=U(n,oe(e.argument,{precedence:i.Yield,allowIn:!0,allowCall:!0}))),n=Y(n,i.Yield,o);break;case r.UpdateExpression:n=e.prefix?Y([e.operator,oe(e.argument,{precedence:i.Unary,allowIn:!0,allowCall:!0})],i.Unary,o):Y([oe(e.argument,{precedence:i.Postfix,allowIn:!0,allowCall:!0}),e.operator],i.Postfix,o);break;case r.FunctionExpression:C=e.generator&&!_.moz.starlessGenerator,n=C?"function*":"function",n=e.id?[n,C?b:B(),te(e.id),re(e)]:[n+b,re(e)];break;case r.ArrayPattern:case r.ArrayExpression:if(!e.elements.length){n="[]";break}d=e.elements.length>1,n=["[",d?y:""],W((function(t){for(h=0,p=e.elements.length;h1,W((function(){f=oe(e.properties[0],{precedence:i.Sequence,allowIn:!0,allowCall:!0,type:r.Property})})),!d&&!L(z(f).toString())){n=["{",b,f,b,"}"];break}W((function(t){if(n=["{",y,t,f],d)for(n.push(","+y),h=1,p=e.properties.length;h0||_.moz.comprehensionExpressionStartsWithAssignment?n=U(n,f):n.push(f)})),e.filter&&(n=U(n,"if"+b),f=oe(e.filter,{precedence:i.Sequence,allowIn:!0,allowCall:!0}),n=_.moz.parenthesizedComprehensionBlock?U(n,["(",f,")"]):U(n,f)),_.moz.comprehensionExpressionStartsWithAssignment||(f=oe(e.body,{precedence:i.Assignment,allowIn:!0,allowCall:!0}),n=U(n,f)),n.push(a===r.GeneratorExpression?")":"]");break;case r.ComprehensionBlock:f=e.left.type===r.VariableDeclaration?[e.left.kind,B(),ae(e.left.declarations[0],{allowIn:!1})]:oe(e.left,{precedence:i.Call,allowIn:!0,allowCall:!0}),f=U(f,e.of?"of":"in"),f=U(f,oe(e.right,{precedence:i.Sequence,allowIn:!0,allowCall:!0})),n=_.moz.parenthesizedComprehensionBlock?["for"+b+"(",f,")"]:U("for"+b,f);break;default:throw new Error("Unknown expression type: "+e.type)}return _.comment&&(n=H(e,n)),z(n,e)}function ae(e,t){var n,s,o,a,l,h,p,f,d,m,g;switch(h=!0,m=";",p=!1,f=!1,t&&(h=void 0===t.allowIn||t.allowIn,x||!0!==t.semicolonOptional||(m=""),p=t.functionBody,f=t.directiveContext),e.type){case r.BlockStatement:o=["{",y],W((function(){for(n=0,s=e.body.length;n=0||k&&f&&e.expression.type===r.Literal&&"string"===typeof e.expression.value?o=["(",o,")"+m]:o.push(m);break;case r.ImportDeclaration:0===e.specifiers.length?o=["import",b,se(e.source)]:("default"===e.kind?o=["import",B(),e.specifiers[0].id.name,B()]:(o=["import",b,"{"],1===e.specifiers.length?(l=e.specifiers[0],o.push(b+l.id.name),l.name&&o.push(B()+"as"+B()+l.name.name),o.push(b+"}"+b)):(W((function(t){var n,r;for(o.push(y),n=0,r=e.specifiers.length;n0?"\n":""],n=0;n":i.Relational,"<=":i.Relational,">=":i.Relational,in:i.Relational,instanceof:i.Relational,"<<":i.BitwiseSHIFT,">>":i.BitwiseSHIFT,">>>":i.BitwiseSHIFT,"+":i.Additive,"-":i.Additive,"*":i.Multiplicative,"%":i.Multiplicative,"/":i.Multiplicative},c=Array.isArray,c||(c=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),C={indent:{style:"",base:0},renumber:!0,hexadecimal:!0,quotes:"auto",escapeless:!0,compact:!0,parentheses:!1,semicolons:!1},A=I().format,t.version=n("871d").version,t.generate=le,t.attachComments=a.attachComments,t.Precedence=$({},i),t.browser=!1,t.FORMAT_MINIFY=C,t.FORMAT_DEFAULTS=A})()}).call(this,n("c8ba"))},"69a4":function(e,t,n){(function(){"use strict";var t=n("c02d");function r(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function i(e,t){return!(!t&&"yield"===e)&&s(e,t)}function s(e,t){if(t&&r(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function o(e){return"eval"===e||"arguments"===e}function a(e){var n,r,i;if(0===e.length)return!1;if(i=e.charCodeAt(0),!t.isIdentifierStart(i)||92===i)return!1;for(n=1,r=e.length;nu&&w.push("'"+this.terminals_[S]+"'");C=this.lexer.showPosition?"Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(a+1)+": Unexpected "+(g==h?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(C,{text:this.lexer.match,token:this.terminals_[g]||g,line:this.lexer.yylineno,loc:f,expected:w})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(v[0]){case 1:n.push(g),r.push(this.lexer.yytext),i.push(this.lexer.yylloc),n.push(v[1]),g=null,y?(g=y,y=null):(l=this.lexer.yyleng,o=this.lexer.yytext,a=this.lexer.yylineno,f=this.lexer.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[v[1]][1],E.$=r[r.length-k],E._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},d&&(E._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),x=this.performAction.apply(E,[o,l,a,this.yy,v[1],r,i].concat(p)),"undefined"!==typeof x)return x;k&&(n=n.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),n.push(this.productions_[v[1]][0]),r.push(E.$),i.push(E._$),_=s[n[n.length-2]][n[n.length-1]],n.push(_);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);return t?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in i)this[s]=i[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(e=this.test_match(n,i[s]),!1!==e)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),!1!==e&&e):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){var e=this.conditionStack.length-1;return e>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions["INITIAL"].rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:break;case 1:return 12;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),11;case 3:return 12;case 4:return 12;case 5:return"bar";case 6:return 13;case 7:return 14;case 8:return 15;case 9:return 16;case 10:return 7;case 11:return 17;case 12:return 5}},rules:[/^(?:\s+)/,/^(?:([a-zA-Z][a-zA-Z0-9_-]*))/,/^(?:\[([a-zA-Z][a-zA-Z0-9_-]*)\])/,/^(?:'[^']*')/,/^(?:\.)/,/^(?:bar\b)/,/^(?:\()/,/^(?:\))/,/^(?:\*)/,/^(?:\?)/,/^(?:\|)/,/^(?:\+)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12],inclusive:!0}}};return e}();function n(){this.yy={}}return e.lexer=t,n.prototype=e,e.Parser=n,new n}();t.parser=i,t.Parser=i.Parser,t.parse=function(){return i.parse.apply(i,arguments)},t.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),e.exit(1));var i=n("3e8f").readFileSync(n("df7c").normalize(r[1]),"utf8");return t.parser.parse(i)},n.c[n.s]===r&&t.main(e.argv.slice(1))}).call(this,n("4362"),n("62e4")(e))},"82be":function(module,exports,__webpack_require__){"use strict";var lexParser=__webpack_require__("0812"),version=__webpack_require__("f265").version;function prepareRules(e,t,n,r,i,s){var o,a,l,c,u,h=[];function p(e,t){return"return "+(r[t]||"'"+t+"'")}for(t&&(t=prepareMacros(t)),n.push("switch($avoiding_name_collisions) {"),a=0;a20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in i)this[s]=i[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(e=this.test_match(n,i[s]),!1!==e)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),!1!==e&&e):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){var e=this.conditionStack.length-1;return e>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions["INITIAL"].rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length}},RegExpLexer.generate=generate,module.exports=RegExpLexer},"871d":function(e){e.exports=JSON.parse('{"name":"escodegen","description":"ECMAScript code generator","homepage":"http://github.com/Constellation/escodegen","main":"escodegen.js","bin":{"esgenerate":"./bin/esgenerate.js","escodegen":"./bin/escodegen.js"},"version":"1.3.3","engines":{"node":">=0.10.0"},"maintainers":[{"name":"Yusuke Suzuki","email":"utatane.tea@gmail.com","web":"http://github.com/Constellation"}],"repository":{"type":"git","url":"http://github.com/Constellation/escodegen.git"},"dependencies":{"esutils":"~1.0.0","estraverse":"~1.5.0","esprima":"~1.1.1"},"optionalDependencies":{"source-map":"~0.1.33"},"devDependencies":{"esprima-moz":"*","semver":"*","chai":"~1.7.2","gulp":"~3.5.0","gulp-mocha":"~0.4.1","gulp-eslint":"~0.1.2","jshint-stylish":"~0.1.5","gulp-jshint":"~1.4.0","commonjs-everywhere":"~0.9.6","bluebird":"~1.2.0","bower-registry-client":"~0.2.0"},"licenses":[{"type":"BSD","url":"http://github.com/Constellation/escodegen/raw/master/LICENSE.BSD"}],"scripts":{"test":"gulp travis","unit-test":"gulp test","lint":"gulp lint","release":"node tools/release.js","build-min":"./node_modules/.bin/cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js","build":"./node_modules/.bin/cjsify -a path: tools/entry-point.js > escodegen.browser.js"}}')},"8c12":function(e,t,n){(function(e){if("function"!==typeof t)var t=n("07d6")(e,n("c2df"));t((function(e,t,n){var r=e("./source-map-generator").SourceMapGenerator,i=e("./util"),s=/(\r?\n)/,o=10,a="$$$isSourceNode$$$";function l(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[a]=!0,null!=r&&this.add(r)}l.fromStringWithSourceMap=function(e,t,n){var r=new l,o=e.split(s),a=function(){var e=o.shift(),t=o.shift()||"";return e+t},c=1,u=0,h=null;return t.eachMapping((function(e){if(null!==h){if(!(c0&&(h&&p(h,a()),r.add(o.join(""))),t.sources.forEach((function(e){var s=t.sourceContentFor(e);null!=s&&(null!=n&&(e=i.join(n,e)),r.setSourceContent(e,s))})),r;function p(e,t){if(null===e||void 0===e.source)r.add(t);else{var s=n?i.join(n,e.source):e.source;r.add(new l(e.originalLine,e.originalColumn,s,t,e.name))}}},l.prototype.add=function(e){if(Array.isArray(e))e.forEach((function(e){this.add(e)}),this);else{if(!e[a]&&"string"!==typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},l.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[a]&&"string"!==typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},l.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n0){for(t=[],n=0;nu&&w.push("'"+this.terminals_[S]+"'");C=this.lexer.showPosition?"Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(a+1)+": Unexpected "+(g==h?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(C,{text:this.lexer.match,token:this.terminals_[g]||g,line:this.lexer.yylineno,loc:f,expected:w})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(v[0]){case 1:n.push(g),r.push(this.lexer.yytext),i.push(this.lexer.yylloc),n.push(v[1]),g=null,y?(g=y,y=null):(l=this.lexer.yyleng,o=this.lexer.yytext,a=this.lexer.yylineno,f=this.lexer.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[v[1]][1],E.$=r[r.length-k],E._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},d&&(E._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),x=this.performAction.apply(E,[o,l,a,this.yy,v[1],r,i].concat(p)),"undefined"!==typeof x)return x;k&&(n=n.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),n.push(this.productions_[v[1]][0]),r.push(E.$),i.push(E._$),_=s[n[n.length-2]][n[n.length-1]],n.push(_);break;case 3:return!0}}return!0}},t=n("2e7a").transform,r=!1;function i(e,n){return e.bnf=r?t(n):n,e}var s=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);return t?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in i)this[s]=i[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;st[0].length)){if(t=n,r=s,this.options.backtrack_lexer){if(e=this.test_match(n,i[s]),!1!==e)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),!1!==e&&e):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){var e=this.conditionStack.length-1;return e>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions["INITIAL"].rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,i){switch(n){case 0:return this.pushState("code"),5;case 1:return 43;case 2:return 44;case 3:return 45;case 4:return 46;case 5:return 47;case 6:break;case 7:break;case 8:break;case 9:return t.yytext=t.yytext.substr(1,t.yyleng-2),40;case 10:return 41;case 11:return t.yytext=t.yytext.substr(1,t.yyleng-2),42;case 12:return t.yytext=t.yytext.substr(1,t.yyleng-2),42;case 13:return 28;case 14:return 30;case 15:return 31;case 16:return this.pushState(r?"ebnf":"bnf"),5;case 17:e.options||(e.options={}),r=e.options.ebnf=!0;break;case 18:return 48;case 19:return 11;case 20:return 22;case 21:return 23;case 22:return 24;case 23:return 20;case 24:return 18;case 25:return 13;case 26:break;case 27:break;case 28:return t.yytext=t.yytext.substr(2,t.yyleng-4),15;case 29:return t.yytext=t.yytext.substr(2,t.yytext.length-4),15;case 30:return e.depth=0,this.pushState("action"),49;case 31:return t.yytext=t.yytext.substr(2,t.yyleng-2),52;case 32:break;case 33:return 8;case 34:return 54;case 35:return 54;case 36:return 54;case 37:return 54;case 38:return 54;case 39:return 54;case 40:return 54;case 41:return e.depth++,49;case 42:return 0==e.depth?this.begin(r?"ebnf":"bnf"):e.depth--,51;case 43:return 9}},rules:[/^(?:%%)/,/^(?:\()/,/^(?:\))/,/^(?:\*)/,/^(?:\?)/,/^(?:\+)/,/^(?:\s+)/,/^(?:\/\/.*)/,/^(?:\/\*(.|\n|\r)*?\*\/)/,/^(?:\[([a-zA-Z][a-zA-Z0-9_-]*)\])/,/^(?:([a-zA-Z][a-zA-Z0-9_-]*))/,/^(?:"[^"]+")/,/^(?:'[^']+')/,/^(?::)/,/^(?:;)/,/^(?:\|)/,/^(?:%%)/,/^(?:%ebnf\b)/,/^(?:%prec\b)/,/^(?:%start\b)/,/^(?:%left\b)/,/^(?:%right\b)/,/^(?:%nonassoc\b)/,/^(?:%parse-param\b)/,/^(?:%options\b)/,/^(?:%lex[\w\W]*?\/lex\b)/,/^(?:%[a-zA-Z]+[^\r\n]*)/,/^(?:<[a-zA-Z]*>)/,/^(?:\{\{[\w\W]*?\}\})/,/^(?:%\{(.|\r|\n)*?%\})/,/^(?:\{)/,/^(?:->.*)/,/^(?:.)/,/^(?:$)/,/^(?:\/\*(.|\n|\r)*?\*\/)/,/^(?:\/\/.*)/,/^(?:\/[^ /]*?['"{}'][^ ]*?\/)/,/^(?:"(\\\\|\\"|[^"])*")/,/^(?:'(\\\\|\\'|[^'])*')/,/^(?:[/"'][^{}/"']+)/,/^(?:[^{}/"']+)/,/^(?:\{)/,/^(?:\})/,/^(?:(.|\n|\r)+)/],conditions:{bnf:{rules:[0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],inclusive:!0},ebnf:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],inclusive:!0},action:{rules:[33,34,35,36,37,38,39,40,41,42],inclusive:!1},code:{rules:[33,43],inclusive:!1},INITIAL:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],inclusive:!0}}};return e}();function o(){this.yy={}}return e.lexer=s,o.prototype=e,e.Parser=o,new o}();t.parser=i,t.Parser=i.Parser,t.parse=function(){return i.parse.apply(i,arguments)},t.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),e.exit(1));var i=n("3e8f").readFileSync(n("df7c").normalize(r[1]),"utf8");return t.parser.parse(i)},n.c[n.s]===r&&t.main(e.argv.slice(1))}).call(this,n("4362"),n("62e4")(e))},a396:function(e,t,n){var r,i,s;(function(n,o){"use strict";i=[t],r=o,s="function"===typeof r?r.apply(t,i):r,void 0===s||(e.exports=s)})(0,(function(e){"use strict";var t,n,r,i,s,o;function a(){}function l(e){var t,n,r={};for(t in e)e.hasOwnProperty(t)&&(n=e[t],r[t]="object"===typeof n&&null!==n?l(n):n);return r}function c(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}function u(e,t){var n,r,i,s;r=e.length,i=0;while(r)n=r>>>1,s=i+n,t(e[s])?r=n:(i=s+1,r-=n+1);return i}function h(e,t){var n,r,i,s;r=e.length,i=0;while(r)n=r>>>1,s=i+n,t(e[s])?(i=s+1,r-=n+1):r=n;return i}function p(e,t){this.parent=e,this.key=t}function f(e,t,n,r){this.node=e,this.path=t,this.wrap=n,this.ref=r}function d(){}function m(e,t){var n=new d;return n.traverse(e,t)}function g(e,t){var n=new d;return n.replace(e,t)}function y(e,t){var n;return n=u(t,(function(t){return t.range[0]>e.range[0]})),e.extendedRange=[e.range[0],e.range[1]],n!==t.length&&(e.extendedRange[1]=t[n].range[0]),n-=1,n>=0&&(e.extendedRange[0]=t[n].range[1]),e}function b(e,t,n){var i,s,o,a,c=[];if(!e.range)throw new Error("attachComments needs range information");if(!n.length){if(t.length){for(o=0,s=t.length;oe.range[0])break;t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),c.splice(a,1)):a+=1}return a===c.length?r.Break:c[a].extendedRange[0]>e.range[1]?r.Skip:void 0}}),a=0,m(e,{leave:function(e){var t;while(ae.range[1]?r.Skip:void 0}}),e}t={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},n=Array.isArray,n||(n=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),a(c),a(h),i={AssignmentExpression:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","defaults","rest","body"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","body","superClass"],ClassExpression:["id","body","superClass"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","defaults","rest","body"],FunctionExpression:["id","params","defaults","rest","body"],Identifier:[],IfStatement:["test","consequent","alternate"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MethodDefinition:["key","value"],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handlers","handler","guardedHandlers","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},s={},o={},r={Break:s,Skip:o},p.prototype.replace=function(e){this.parent[this.key]=e},d.prototype.path=function(){var e,t,r,i,s,o;function a(e,t){if(n(t))for(r=0,i=t.length;r=0)if(d=y[m],b=u[d],b)if(n(b)){g=b.length;while((g-=1)>=0)b[g]&&(c=h!==t.ObjectExpression&&h!==t.ObjectPattern||"properties"!==y[m]?new f(b[g],[d,g],null,null):new f(b[g],[d,g],"Property",null),a.push(c))}else a.push(new f(b,d,null,null))}}else if(c=l.pop(),p=this.__execute(r.leave,c),this.__state===s||p===s)return},d.prototype.replace=function(e,r){var a,l,c,u,h,d,m,g,y,b,v,x,S;this.__initialize(e,r),v={},a=this.__worklist,l=this.__leavelist,x={root:e},d=new f(e,null,null,new p(x,"root")),a.push(d),l.push(d);while(a.length)if(d=a.pop(),d!==v){if(h=this.__execute(r.enter,d),void 0!==h&&h!==s&&h!==o&&(d.ref.replace(h),d.node=h),this.__state===s||h===s)return x.root;if(c=d.node,c&&(a.push(v),l.push(d),this.__state!==o&&h!==o)){u=d.wrap||c.type,y=i[u],m=y.length;while((m-=1)>=0)if(S=y[m],b=c[S],b)if(n(b)){g=b.length;while((g-=1)>=0)b[g]&&(d=u===t.ObjectExpression&&"properties"===y[m]?new f(b[g],[S,g],"Property",new p(b,g)):new f(b[g],[S,g],null,new p(b,g)),a.push(d))}else a.push(new f(b,S,null,new p(c,S)))}}else if(d=l.pop(),h=this.__execute(r.leave,d),void 0!==h&&h!==s&&h!==o&&d.ref.replace(h),this.__state===s||h===s)return x.root;return x.root},e.version="1.5.1-dev",e.Syntax=t,e.traverse=m,e.replace=g,e.attachComments=b,e.VisitorKeys=i,e.VisitorOption=r,e.Controller=d}))},a95d:function(e,t,n){ +/*! Copyright (c) 2011, Lloyd Hilaiel, ISC License */ +(function(e){var t=Object.prototype.toString;function n(e){try{return JSON&&JSON.parse?JSON.parse(e):new Function("return "+e)()}catch(t){i("ijs",t.message)}}var r={bop:"binary operator expected",ee:"expression expected",epex:"closing paren expected ')'",ijs:"invalid json string",mcp:"missing closing paren",mepf:"malformed expression in pseudo-function",mexp:"multiple expressions not allowed",mpc:"multiple pseudo classes (:xxx) not allowed",nmi:"multiple ids not allowed",pex:"opening paren expected '('",se:"selector expected",sex:"string expected",sra:"string required after '.'",uc:"unrecognized char",ucp:"unexpected closing paren",ujs:"unclosed json string",upc:"unrecognized pseudo class"};function i(e,t){throw new Error(r[e]+(t&&" in '"+t+"'"))}var s={psc:1,psf:2,typ:3,str:4,ide:5},o=new RegExp('^(?:([\\r\\n\\t\\ ]+)|([~*,>\\)\\(])|(string|boolean|null|array|object|number)|(:(?:root|first-child|last-child|only-child))|(:(?:nth-child|nth-last-child|has|expr|val|contains))|(:\\w+)|(?:(\\.)?(\\"(?:[^\\\\\\"]|\\\\[^\\"])*\\"))|(\\")|\\.((?:[_a-zA-Z]|[^\\0-\\0177]|\\\\[^\\r\\n\\f0-9a-fA-F])(?:[_a-zA-Z0-9\\-]|[^\\u0000-\\u0177]|(?:\\\\[^\\r\\n\\f0-9a-fA-F]))*))'),a=/^\s*\(\s*(?:([+\-]?)([0-9]*)n\s*(?:([+\-])\s*([0-9]))?|(odd|even)|([+\-]?[0-9]+))\s*\)/;function l(e,t){t||(t=0);var r,a=o.exec(e.substr(t));if(a)return t+=a[0].length,a[1]?r=[t," "]:a[2]?r=[t,a[0]]:a[3]?r=[t,s.typ,a[0]]:a[4]?r=[t,s.psc,a[0]]:a[5]?r=[t,s.psf,a[0]]:a[6]?i("upc",e):a[8]?r=[t,a[7]?s.ide:s.str,n(a[8])]:a[9]?i("ujs",e):a[10]&&(r=[t,s.ide,a[10].replace(/\\([^\r\n\f0-9a-fA-F])/g,"$1")]),r}var c=new RegExp('^\\s*(?:(true|false|null)|(-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)|("(?:[^\\]|\\[^"])*")|(x)|(&&|\\|\\||[\\$\\^<>!\\*]=|[=+\\-*/%<>])|([\\(\\)]))');function u(e,t){return typeof e===t}var h={"*":[9,function(e,t){return e*t}],"/":[9,function(e,t){return e/t}],"%":[9,function(e,t){return e%t}],"+":[7,function(e,t){return e+t}],"-":[7,function(e,t){return e-t}],"<=":[5,function(e,t){return u(e,"number")&&u(t,"number")&&e<=t}],">=":[5,function(e,t){return u(e,"number")&&u(t,"number")&&e>=t}],"$=":[5,function(e,t){return u(e,"string")&&u(t,"string")&&e.lastIndexOf(t)===e.length-t.length}],"^=":[5,function(e,t){return u(e,"string")&&u(t,"string")&&0===e.indexOf(t)}],"*=":[5,function(e,t){return u(e,"string")&&u(t,"string")&&-1!==e.indexOf(t)}],">":[5,function(e,t){return u(e,"number")&&u(t,"number")&&e>t}],"<":[5,function(e,t){return u(e,"number")&&u(t,"number")&&e=h[l[0][1]][0])l=l[0];l[0]=[n,o[1],l[0]]}return[t,a]}function d(e,t){function n(e){return"object"!==typeof e||null===e?e:"("===e[0]?n(e[1]):[n(e[0]),e[1],n(e[2])]}var r=f(e,t||0);return[r[0],n(r[1])]}function m(e,t){if(void 0===e)return t;if(null===e||"object"!==typeof e)return e;var n=m(e[0],t),r=m(e[2],t);return h[e[1]][1](n,r)}function g(e,t,n,r){n||(r={});var s,o,a,c=[];t||(t=0);while(1){var u=v(e,t,r);if(c.push(u[1]),u=l(e,t=u[0]),u&&" "===u[1]&&(u=l(e,t=u[0])),!u)break;if(">"===u[1]||"~"===u[1])"~"===u[1]&&(r.usesSiblingOp=!0),c.push(u[1]),t=u[0];else if(","===u[1])void 0===s?s=[",",c]:s.push(c),c=[],t=u[0];else if(")"===u[1]){n||i("ucp",u[1]),o=1,t=u[0];break}}return n&&!o&&i("mcp",e),s&&s.push(c),a=!n&&r.usesSiblingOp?b(s||c):s||c,[t,a]}function y(e){for(var t,n=[],r=0;r"!=e[r-2])&&(t=e.slice(0,r-1),t=t.concat([{has:[[{pc:":root"},">",e[r-1]]]},">"]),t=t.concat(e.slice(r+1)),n.push(t)),r>1){var i=">"===e[r-2]?r-3:r-2;t=e.slice(0,i);var s={};for(var o in e[i])e[i].hasOwnProperty(o)&&(s[o]=e[i][o]);s.has||(s.has=[]),s.has.push([{pc:":root"},">",e[r-1]]),t=t.concat(s,">",e.slice(r+1)),n.push(t)}break}return r==e.length?e:n.length>1?[","].concat(n):n[0]}function b(e){if(","===e[0]){for(var t=[","],n=n;n"===t[0]?t[1]:t[0],l=!0;if(a.type&&(l=l&&a.type===S(e)),a.id&&(l=l&&a.id===n),l&&a.pf&&(":nth-last-child"===a.pf?r=i-r:r++,0===a.a?l=a.b===r:(s=(r-a.b)%a.a,l=!s&&r*a.a+a.b>=0)),l&&a.has)for(var c=function(){throw 42},u=0;u"!==t[0]&&":root"!==t[0].pc&&o.push(t),l&&(">"===t[0]?t.length>2&&(l=!1,o.push(t.slice(2))):t.length>1&&(l=!1,o.push(t.slice(1)))),[l,o]}function _(e,t,n,r,i,s){var o,a,l=","===e[0]?e.slice(1):[e],c=[],u=!1,h=0,p=0;for(h=0;h=1&&c.unshift(","),x(t))for(h=0;h=48&&e<=57}function r(e){return n(e)||97<=e&&e<=102||65<=e&&e<=70}function i(e){return e>=48&&e<=55}function s(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function o(e){return 10===e||13===e||8232===e||8233===e}function a(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&t.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function l(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&t.NonAsciiIdentifierPart.test(String.fromCharCode(e))}t={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},e.exports={isDecimalDigit:n,isHexDigit:r,isOctalDigit:i,isWhiteSpace:s,isLineTerminator:o,isIdentifierStart:a,isIdentifierPart:l}})()},c2df:function(e,t){function n(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id="c2df"},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}e.exports=n},dc00:function(e){e.exports=JSON.parse('{"author":"Zach Carter (http://zaa.ch)","name":"jison","description":"A parser generator with Bison\'s API","version":"0.4.18","license":"MIT","keywords":["jison","bison","yacc","parser","generator","lexer","flex","tokenizer","compiler"],"preferGlobal":true,"repository":{"type":"git","url":"git://github.com/zaach/jison.git"},"bugs":{"email":"jison@librelist.com","url":"http://github.com/zaach/jison/issues"},"main":"lib/jison","bin":"lib/cli.js","engines":{"node":">=0.4"},"dependencies":{"JSONSelect":"0.4.0","esprima":"1.1.x","escodegen":"1.3.x","jison-lex":"0.3.x","ebnf-parser":"0.1.10","lex-parser":"~0.1.3","nomnom":"1.5.2","cjson":"0.3.0"},"devDependencies":{"test":"0.6.x","jison":"0.4.x","uglify-js":"~2.4.0","browserify":"2.x.x"},"scripts":{"test":"node tests/all-tests.js"},"homepage":"http://jison.org"}')},df7c:function(e,t,n){(function(e){function n(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e){"string"!==typeof e&&(e+="");var t,n=0,r=-1,i=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!i){n=t+1;break}}else-1===r&&(i=!1,r=t+1);return-1===r?"":e.slice(n,r)}function i(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!r;s--){var o=s>=0?arguments[s]:e.cwd();if("string"!==typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(t=o+"/"+t,r="/"===o.charAt(0))}return t=n(i(t.split("/"),(function(e){return!!e})),!r).join("/"),(r?"/":"")+t||"."},t.normalize=function(e){var r=t.isAbsolute(e),o="/"===s(e,-1);return e=n(i(e.split("/"),(function(e){return!!e})),!r).join("/"),e||r||(e="."),e&&o&&(e+="/"),(r?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(i(e,(function(e,t){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t=0;n--)if(""!==e[n])break;return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var i=r(e.split("/")),s=r(n.split("/")),o=Math.min(i.length,s.length),a=o,l=0;l=1;--s)if(t=e.charCodeAt(s),47===t){if(!i){r=s;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=r(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!==typeof e&&(e+="");for(var t=-1,n=0,r=-1,i=!0,s=0,o=e.length-1;o>=0;--o){var a=e.charCodeAt(o);if(47!==a)-1===r&&(i=!1,r=o+1),46===a?-1===t?t=o:1!==s&&(s=1):-1!==t&&(s=-1);else if(!i){n=o+1;break}}return-1===t||-1===r||0===s||1===s&&t===r-1&&t===n+1?"":e.slice(t,r)};var s="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n("4362"))},ea78:function(e,t,n){var r,i,s;(function(n,o){"use strict";i=[t],r=o,s="function"===typeof r?r.apply(t,i):r,void 0===s||(e.exports=s)})(0,(function(e){"use strict";var t,n,r,i,s,o,a,l,c,u,h,p,f,d,m,g,y,b;function v(e,t){if(!e)throw new Error("ASSERT: "+t)}function x(e){return e>=48&&e<=57}function S(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function k(e){return"01234567".indexOf(e)>=0}function _(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function w(e){return 10===e||13===e||8232===e||8233===e}function E(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&a.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function C(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&a.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function A(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}function I(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function O(e){return"eval"===e||"arguments"===e}function L(e){if(u&&I(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function P(e,t,n,r,i){var s,o;v("number"===typeof n,"Comment must have valid position"),y.lastCommentStart>=n||(y.lastCommentStart=n,s={type:e,value:t},b.range&&(s.range=[n,r]),b.loc&&(s.loc=i),b.comments.push(s),b.attachComment&&(o={comment:s,leading:null,trailing:null,range:[n,r]},b.pendingComments.push(o)))}function $(e){var t,n,r,i;t=h-e,n={start:{line:p,column:h-f-e}};while(h=d&&Q({},o.UnexpectedToken,"ILLEGAL");else if(42===n){if(47===c.charCodeAt(h+1))return++h,++h,void(b.comments&&(r=c.slice(e+2,h-2),t.end={line:p,column:h-f},P("Block",r,e,h,t)));++h}else++h;Q({},o.UnexpectedToken,"ILLEGAL")}function M(){var e,t;t=0===h;while(h"===l&&">"===n&&">"===r&&"="===i?(h+=4,{type:t.Punctuator,value:">>>=",lineNumber:p,lineStart:f,range:[s,h]}):">"===l&&">"===n&&">"===r?(h+=3,{type:t.Punctuator,value:">>>",lineNumber:p,lineStart:f,range:[s,h]}):"<"===l&&"<"===n&&"="===r?(h+=3,{type:t.Punctuator,value:"<<=",lineNumber:p,lineStart:f,range:[s,h]}):">"===l&&">"===n&&"="===r?(h+=3,{type:t.Punctuator,value:">>=",lineNumber:p,lineStart:f,range:[s,h]}):l===n&&"+-<>&|".indexOf(l)>=0?(h+=2,{type:t.Punctuator,value:l+n,lineNumber:p,lineStart:f,range:[s,h]}):"<>=!+-*%&|^/".indexOf(l)>=0?(++h,{type:t.Punctuator,value:l,lineNumber:p,lineStart:f,range:[s,h]}):void Q({},o.UnexpectedToken,"ILLEGAL")}function G(e){var n="";while(h=0&&h0&&(r=b.tokens[b.tokens.length-1],r.range[0]===e&&"Punctuator"===r.type&&("/"!==r.value&&"/="!==r.value||b.tokens.pop())),b.tokens.push({type:"RegularExpression",value:n.literal,range:[e,h],loc:t})),n}function V(e){return e.type===t.Identifier||e.type===t.Keyword||e.type===t.BooleanLiteral||e.type===t.NullLiteral}function J(){var e,t;if(e=b.tokens[b.tokens.length-1],!e)return W();if("Punctuator"===e.type){if("]"===e.value)return F();if(")"===e.value)return t=b.tokens[b.openParenToken-1],!t||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?F():W();if("}"===e.value){if(b.tokens[b.openCurlyToken-3]&&"Keyword"===b.tokens[b.openCurlyToken-3].type){if(t=b.tokens[b.openCurlyToken-4],!t)return F()}else{if(!b.tokens[b.openCurlyToken-4]||"Keyword"!==b.tokens[b.openCurlyToken-4].type)return F();if(t=b.tokens[b.openCurlyToken-5],!t)return W()}return r.indexOf(t.value)>=0?F():W()}return W()}return"Keyword"===e.type?W():F()}function Z(){var e;return M(),h>=d?{type:t.EOF,lineNumber:p,lineStart:f,range:[h,h]}:(e=c.charCodeAt(h),40===e||41===e||58===e?F():39===e||34===e?U():E(e)?D():46===e?x(c.charCodeAt(h+1))?B():F():x(e)?B():b.tokenize&&47===e?J():F())}function H(){var e,r,i,s;return M(),h,e={start:{line:p,column:h-f}},r=Z(),e.end={line:p,column:h-f},r.type!==t.EOF&&(i=[r.range[0],r.range[1]],s=c.slice(r.range[0],r.range[1]),b.tokens.push({type:n[r.type],value:s,range:i,loc:e})),r}function Y(){var e;return e=g,h=e.range[1],p=e.lineNumber,f=e.lineStart,g="undefined"!==typeof b.tokens?H():Z(),h=e.range[1],p=e.lineNumber,f=e.lineStart,e}function K(){var e,t,n;e=h,t=p,n=f,g="undefined"!==typeof b.tokens?H():Z(),h=e,p=t,f=n}function X(){var e,t,n,r;return e=h,t=p,n=f,M(),r=p!==t,h=e,p=t,f=n,r}function Q(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(function(e,t){return v(t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function ae(){var e;59!==c.charCodeAt(h)?(e=p,M(),p===e&&(ie(";")?Y():g.type===t.EOF||ie("}")||te(g))):Y()}function le(e){return e.type===i.Identifier||e.type===i.MemberExpression}function ce(){var e=[];ne("[");while(!ie("]"))ie(",")?(Y(),e.push(null)):(e.push(Ie()),ie("]")||ne(","));return ne("]"),m.createArrayExpression(e)}function ue(e,t){var n,r;return n=u,m.markStart(),r=tt(),t&&u&&O(e[0].name)&&ee(t,o.StrictParamName),u=n,m.markEnd(m.createFunctionExpression(null,e,[],r))}function he(){var e;return m.markStart(),e=Y(),e.type===t.StringLiteral||e.type===t.NumericLiteral?(u&&e.octal&&ee(e,o.StrictOctalLiteral),m.markEnd(m.createLiteral(e))):m.markEnd(m.createIdentifier(e.value))}function pe(){var e,n,r,i,s;return e=g,m.markStart(),e.type===t.Identifier?(r=he(),"get"!==e.value||ie(":")?"set"!==e.value||ie(":")?(ne(":"),i=Ie(),m.markEnd(m.createProperty("init",r,i))):(n=he(),ne("("),e=g,e.type!==t.Identifier?(ne(")"),ee(e,o.UnexpectedToken,e.value),i=ue([])):(s=[$e()],ne(")"),i=ue(s,e)),m.markEnd(m.createProperty("set",n,i))):(n=he(),ne("("),ne(")"),i=ue([]),m.markEnd(m.createProperty("get",n,i)))):e.type!==t.EOF&&e.type!==t.Punctuator?(n=he(),ne(":"),i=Ie(),m.markEnd(m.createProperty("init",n,i))):void te(e)}function fe(){var e,t,n,r,a=[],l={},c=String;ne("{");while(!ie("}"))e=pe(),t=e.key.type===i.Identifier?e.key.name:c(e.key.value),r="init"===e.kind?s.Data:"get"===e.kind?s.Get:s.Set,n="$"+t,Object.prototype.hasOwnProperty.call(l,n)?(l[n]===s.Data?u&&r===s.Data?ee({},o.StrictDuplicateProperty):r!==s.Data&&ee({},o.AccessorDataProperty):r===s.Data?ee({},o.AccessorDataProperty):l[n]&r&&ee({},o.AccessorGetSet),l[n]|=r):l[n]=r,a.push(e),ie("}")||ne(",");return ne("}"),m.createObjectExpression(a)}function de(){var e;return ne("("),e=Oe(),ne(")"),e}function me(){var e,n,r;return ie("(")?de():(e=g.type,m.markStart(),e===t.Identifier?r=m.createIdentifier(Y().value):e===t.StringLiteral||e===t.NumericLiteral?(u&&g.octal&&ee(g,o.StrictOctalLiteral),r=m.createLiteral(Y())):e===t.Keyword?se("this")?(Y(),r=m.createThisExpression()):se("function")&&(r=it()):e===t.BooleanLiteral?(n=Y(),n.value="true"===n.value,r=m.createLiteral(n)):e===t.NullLiteral?(n=Y(),n.value=null,r=m.createLiteral(n)):ie("[")?r=ce():ie("{")?r=fe():(ie("/")||ie("/="))&&(r="undefined"!==typeof b.tokens?m.createLiteral(W()):m.createLiteral(q()),K()),r?m.markEnd(r):void te(Y()))}function ge(){var e=[];if(ne("("),!ie(")"))while(h":case"<=":case">=":case"instanceof":r=7;break;case"in":r=n?7:0;break;case"<<":case">>":case">>>":r=8;break;case"+":case"-":r=9;break;case"*":case"/":case"%":r=11;break;default:break}return r}function Ce(){var e,t,n,r,i,s,o,a,l,c;if(e=ht(),l=we(),r=g,i=Ee(r,y.allowIn),0===i)return l;r.prec=i,Y(),t=[e,ht()],o=we(),s=[l,r,o];while((i=Ee(g,y.allowIn))>0){while(s.length>2&&i<=s[s.length-2].prec)o=s.pop(),a=s.pop().value,l=s.pop(),n=m.createBinaryExpression(a,l,o),t.pop(),e=t.pop(),e&&e.apply(n),s.push(n),t.push(e);r=Y(),r.prec=i,s.push(r),t.push(ht()),n=we(),s.push(n)}c=s.length-1,n=s[c],t.pop();while(c>1)n=m.createBinaryExpression(s[c-1].value,s[c-2],n),c-=2,e=t.pop(),e&&e.apply(n);return n}function Ae(){var e,t,n,r;return m.markStart(),e=Ce(),ie("?")?(Y(),t=y.allowIn,y.allowIn=!0,n=Ie(),y.allowIn=t,ne(":"),r=Ie(),e=m.markEnd(m.createConditionalExpression(e,n,r))):m.markEnd({}),e}function Ie(){var e,t,n,r;return e=g,m.markStart(),r=t=Ae(),oe()&&(le(t)||ee({},o.InvalidLHSInAssignment),u&&t.type===i.Identifier&&O(t.name)&&ee(e,o.StrictLHSAssignment),e=Y(),n=Ie(),r=m.createAssignmentExpression(e.value,t,n)),m.markEndIf(r)}function Oe(){var e;if(m.markStart(),e=Ie(),ie(",")){e=m.createSequenceExpression([e]);while(h0?1:0,f=0,d=c.length,g=null,y={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},b={},n=n||{},n.tokens=!0,b.tokens=[],b.tokenize=!0,b.openParenToken=-1,b.openCurlyToken=-1,b.range="boolean"===typeof n.range&&n.range,b.loc="boolean"===typeof n.loc&&n.loc,"boolean"===typeof n.comment&&n.comment&&(b.comments=[]),"boolean"===typeof n.tolerant&&n.tolerant&&(b.errors=[]),d>0&&"undefined"===typeof c[0]&&e instanceof String&&(c=e.valueOf());try{if(K(),g.type===t.EOF)return b.tokens;Y();while(g.type!==t.EOF)try{Y()}catch(s){if(g,b.errors){b.errors.push(s);break}throw s}ct(),i=b.tokens,"undefined"!==typeof b.comments&&(i.comments=b.comments),"undefined"!==typeof b.errors&&(i.errors=b.errors)}catch(o){throw o}finally{b={}}return i}function ft(e,t){var n,r;r=String,"string"===typeof e||e instanceof String||(e=r(e)),m=l,c=e,h=0,p=c.length>0?1:0,f=0,d=c.length,g=null,y={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,markerStack:[]},b={},"undefined"!==typeof t&&(b.range="boolean"===typeof t.range&&t.range,b.loc="boolean"===typeof t.loc&&t.loc,b.attachComment="boolean"===typeof t.attachComment&&t.attachComment,b.loc&&null!==t.source&&void 0!==t.source&&(b.source=r(t.source)),"boolean"===typeof t.tokens&&t.tokens&&(b.tokens=[]),"boolean"===typeof t.comment&&t.comment&&(b.comments=[]),"boolean"===typeof t.tolerant&&t.tolerant&&(b.errors=[]),b.attachComment&&(b.range=!0,b.pendingComments=[],b.comments=[])),d>0&&"undefined"===typeof c[0]&&e instanceof String&&(c=e.valueOf());try{n=at(),"undefined"!==typeof b.comments&&(n.comments=b.comments),"undefined"!==typeof b.tokens&&(ct(),n.tokens=b.tokens),"undefined"!==typeof b.errors&&(n.errors=b.errors),b.attachComment&<()}catch(i){throw i}finally{b={}}return n}t={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9},n={},n[t.BooleanLiteral]="Boolean",n[t.EOF]="",n[t.Identifier]="Identifier",n[t.Keyword]="Keyword",n[t.NullLiteral]="Null",n[t.NumericLiteral]="Numeric",n[t.Punctuator]="Punctuator",n[t.StringLiteral]="String",n[t.RegularExpression]="RegularExpression",r=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],i={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},s={Data:1,Get:2,Set:4},o={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},a={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},l={name:"SyntaxTree",markStart:function(){M(),b.loc&&(y.markerStack.push(h-f),y.markerStack.push(p)),b.range&&y.markerStack.push(h)},processComment:function(e){var t,n,r,s,o;if("undefined"!==typeof e.type&&e.type!==i.Program)for(K(),t=0;t=n.comment.range[1]&&(o=n.leading,o?(r=o.range[0],s=o.range[1]-r,e.range[0]<=r&&e.range[1]-e.range[0]>=s&&(n.leading=e)):n.leading=e),e.range[1]<=n.comment.range[0]&&(o=n.trailing,o?(r=o.range[0],s=o.range[1]-r,e.range[0]<=r&&e.range[1]-e.range[0]>=s&&(n.trailing=e)):n.trailing=e)},markEnd:function(e){return b.range&&(e.range=[y.markerStack.pop(),h]),b.loc&&(e.loc={start:{line:y.markerStack.pop(),column:y.markerStack.pop()},end:{line:p,column:h-f}},this.postProcess(e)),b.attachComment&&this.processComment(e),e},markEndIf:function(e){return e.range||e.loc?(b.loc&&(y.markerStack.pop(),y.markerStack.pop()),b.range&&y.markerStack.pop()):this.markEnd(e),e},postProcess:function(e){return b.source&&(e.loc.source=b.source),e},createArrayExpression:function(e){return{type:i.ArrayExpression,elements:e}},createAssignmentExpression:function(e,t,n){return{type:i.AssignmentExpression,operator:e,left:t,right:n}},createBinaryExpression:function(e,t,n){var r="||"===e||"&&"===e?i.LogicalExpression:i.BinaryExpression;return{type:r,operator:e,left:t,right:n}},createBlockStatement:function(e){return{type:i.BlockStatement,body:e}},createBreakStatement:function(e){return{type:i.BreakStatement,label:e}},createCallExpression:function(e,t){return{type:i.CallExpression,callee:e,arguments:t}},createCatchClause:function(e,t){return{type:i.CatchClause,param:e,body:t}},createConditionalExpression:function(e,t,n){return{type:i.ConditionalExpression,test:e,consequent:t,alternate:n}},createContinueStatement:function(e){return{type:i.ContinueStatement,label:e}},createDebuggerStatement:function(){return{type:i.DebuggerStatement}},createDoWhileStatement:function(e,t){return{type:i.DoWhileStatement,body:e,test:t}},createEmptyStatement:function(){return{type:i.EmptyStatement}},createExpressionStatement:function(e){return{type:i.ExpressionStatement,expression:e}},createForStatement:function(e,t,n,r){return{type:i.ForStatement,init:e,test:t,update:n,body:r}},createForInStatement:function(e,t,n){return{type:i.ForInStatement,left:e,right:t,body:n,each:!1}},createFunctionDeclaration:function(e,t,n,r){return{type:i.FunctionDeclaration,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(e,t,n,r){return{type:i.FunctionExpression,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createIdentifier:function(e){return{type:i.Identifier,name:e}},createIfStatement:function(e,t,n){return{type:i.IfStatement,test:e,consequent:t,alternate:n}},createLabeledStatement:function(e,t){return{type:i.LabeledStatement,label:e,body:t}},createLiteral:function(e){return{type:i.Literal,value:e.value,raw:c.slice(e.range[0],e.range[1])}},createMemberExpression:function(e,t,n){return{type:i.MemberExpression,computed:"["===e,object:t,property:n}},createNewExpression:function(e,t){return{type:i.NewExpression,callee:e,arguments:t}},createObjectExpression:function(e){return{type:i.ObjectExpression,properties:e}},createPostfixExpression:function(e,t){return{type:i.UpdateExpression,operator:e,argument:t,prefix:!1}},createProgram:function(e){return{type:i.Program,body:e}},createProperty:function(e,t,n){return{type:i.Property,key:t,value:n,kind:e}},createReturnStatement:function(e){return{type:i.ReturnStatement,argument:e}},createSequenceExpression:function(e){return{type:i.SequenceExpression,expressions:e}},createSwitchCase:function(e,t){return{type:i.SwitchCase,test:e,consequent:t}},createSwitchStatement:function(e,t){return{type:i.SwitchStatement,discriminant:e,cases:t}},createThisExpression:function(){return{type:i.ThisExpression}},createThrowStatement:function(e){return{type:i.ThrowStatement,argument:e}},createTryStatement:function(e,t,n,r){return{type:i.TryStatement,block:e,guardedHandlers:t,handlers:n,finalizer:r}},createUnaryExpression:function(e,t){return"++"===e||"--"===e?{type:i.UpdateExpression,operator:e,argument:t,prefix:!0}:{type:i.UnaryExpression,operator:e,argument:t,prefix:!0}},createVariableDeclaration:function(e,t){return{type:i.VariableDeclaration,declarations:e,kind:t}},createVariableDeclarator:function(e,t){return{type:i.VariableDeclarator,id:e,init:t}},createWhileStatement:function(e,t){return{type:i.WhileStatement,test:e,body:t}},createWithStatement:function(e,t){return{type:i.WithStatement,object:e,body:t}}},ut.prototype={constructor:ut,apply:function(e){b.range&&(e.range=[this.startIndex,h]),b.loc&&(e.loc={start:{line:this.startLine,column:this.startColumn},end:{line:p,column:h-f}},e=m.postProcess(e)),b.attachComment&&m.processComment(e)}},e.version="1.1.1",e.tokenize=pt,e.parse=ft,e.Syntax=function(){var e,t={};for(e in"function"===typeof Object.create&&(t=Object.create(null)),i)i.hasOwnProperty(e)&&(t[e]=i[e]);return"function"===typeof Object.freeze&&Object.freeze(t),t}()}))},f265:function(e){e.exports=JSON.parse('{"author":"Zach Carter (http://zaa.ch)","name":"jison-lex","description":"lexical analyzer generator used by jison","version":"0.3.4","keywords":["jison","parser","generator","lexer","flex","tokenizer"],"repository":{"type":"git","url":"git://github.com/zaach/jison-lex.git"},"bugs":{"email":"jison@librelist.com","url":"http://github.com/zaach/jison-lex/issues"},"main":"regexp-lexer","bin":"cli.js","engines":{"node":">=0.4"},"dependencies":{"lex-parser":"0.1.x","nomnom":"1.5.2"},"devDependencies":{"test":"0.4.4"},"scripts":{"test":"node tests/all-tests.js"},"directories":{"lib":"lib","tests":"tests"},"homepage":"http://jison.org"}')},f78c:function(e,t,n){var r=function(){var e=Object.create||function(e){function t(){}return t.prototype=e,new t},t=/^(before|after)/;function n(e,n){var r=e.match(t)[0],i=e.replace(t,""),s=this[i];"after"===r?this[i]=function(){var e=s.apply(this,arguments),t=[].slice.call(arguments);return t.splice(0,0,e),n.apply(this,t),e}:"before"===r&&(this[i]=function(){n.apply(this,arguments);var e=s.apply(this,arguments);return e})}function r(){for(var e,r,i=0;i0)if(";"===h.charAt(0))i++,h=h.slice(1),s=0;else if(","===h.charAt(0))h=h.slice(1);else{if(n={},n.generatedLine=i,o.decode(h,p),n.generatedColumn=s+p.value,s=n.generatedColumn,h=p.rest,h.length>0&&!this._nextCharIsMappingSeparator(h)){if(o.decode(h,p),n.source=this._sources.at(c+p.value),c+=p.value,h=p.rest,0===h.length||this._nextCharIsMappingSeparator(h))throw new Error("Found a source, but no line and column");if(o.decode(h,p),n.originalLine=a+p.value,a=n.originalLine,n.originalLine+=1,h=p.rest,0===h.length||this._nextCharIsMappingSeparator(h))throw new Error("Found a source and line, but no column");o.decode(h,p),n.originalColumn=l+p.value,l=n.originalColumn,h=p.rest,h.length>0&&!this._nextCharIsMappingSeparator(h)&&(o.decode(h,p),n.name=this._names.at(u+p.value),u+=p.value,h=p.rest)}this.__generatedMappings.push(n),"number"===typeof n.originalLine&&this.__originalMappings.push(n)}this.__generatedMappings.sort(r.compareByGeneratedPositions),this.__originalMappings.sort(r.compareByOriginalPositions)},a.prototype._findMapping=function(e,t,n,r,s){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return i.search(e,t,s)},a.prototype.computeColumnSpans=function(){for(var e=0;e=0){var i=this._generatedMappings[n];if(i.generatedLine===t.generatedLine){var s=r.getArg(i,"source",null);return null!=s&&null!=this.sourceRoot&&(s=r.join(this.sourceRoot,s)),{source:s,line:r.getArg(i,"originalLine",null),column:r.getArg(i,"originalColumn",null),name:r.getArg(i,"name",null)}}}return{source:null,line:null,column:null,name:null}},a.prototype.sourceContentFor=function(e){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=r.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var t;if(null!=this.sourceRoot&&(t=r.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==t.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!t.path||"/"==t.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}throw new Error('"'+e+'" is not in the SourceMap.')},a.prototype.generatedPositionFor=function(e){var t={source:r.getArg(e,"source"),originalLine:r.getArg(e,"line"),originalColumn:r.getArg(e,"column")};null!=this.sourceRoot&&(t.source=r.relative(this.sourceRoot,t.source));var n=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",r.compareByOriginalPositions);if(n>=0){var i=this._originalMappings[n];return{line:r.getArg(i,"generatedLine",null),column:r.getArg(i,"generatedColumn",null),lastColumn:r.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},a.prototype.allGeneratedPositionsFor=function(e){var t={source:r.getArg(e,"source"),originalLine:r.getArg(e,"line"),originalColumn:1/0};null!=this.sourceRoot&&(t.source=r.relative(this.sourceRoot,t.source));var n=[],i=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",r.compareByOriginalPositions);if(i>=0){var s=this._originalMappings[i];while(s&&s.originalLine===t.originalLine)n.push({line:r.getArg(s,"generatedLine",null),column:r.getArg(s,"generatedColumn",null),lastColumn:r.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[--i]}return n.reverse()},a.GENERATED_ORDER=1,a.ORIGINAL_ORDER=2,a.prototype.eachMapping=function(e,t,n){var i,s=t||null,o=n||a.GENERATED_ORDER;switch(o){case a.GENERATED_ORDER:i=this._generatedMappings;break;case a.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var l=this.sourceRoot;i.map((function(e){var t=e.source;return null!=t&&null!=l&&(t=r.join(l,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name}})).forEach(e,s)},t.SourceMapConsumer=a}))}).call(this,n("62e4")(e))}}); +//# sourceMappingURL=e5c1442134f1e7dfb9dd.worker.js.map \ No newline at end of file diff --git a/dist/favicon.ico b/dist/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a407691f199c50f68547b1f7b4536eb9dd9ab18c Binary files /dev/null and b/dist/favicon.ico differ diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000000000000000000000000000000000000..55e98eed47c404a292067c47bd19fb6b601c043d --- /dev/null +++ b/dist/index.html @@ -0,0 +1 @@ +Lotus \ No newline at end of file diff --git a/dist/js/chunk-04395031.dbff2f6b.js b/dist/js/chunk-04395031.dbff2f6b.js new file mode 100644 index 0000000000000000000000000000000000000000..6edb48c7f3c0d862948b264ca77f178040e71c6c --- /dev/null +++ b/dist/js/chunk-04395031.dbff2f6b.js @@ -0,0 +1,54 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-04395031"],{"0f75":function(e,n,t){"use strict";t("5ed3")},"0f97":function(e,n,t){"use strict";t("a073")},1140:function(e,n,t){"use strict";t.r(n);var r=function(){var e=this,n=e._self._c;return n("div",{staticClass:"playground",class:{"drag-hover":e.dragHover},attrs:{"data-hover-type":e.dragHover},on:{dragover:function(n){return n.preventDefault(),e.onDragOver.apply(null,arguments)},dragleave:function(n){e.dragHover=null},drop:function(n){return n.preventDefault(),e.onDropFile.apply(null,arguments)}}},[n("header",{staticClass:"controls",class:{buzy:e.operating}},[n("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-lilySource"},model:{value:e.lilySource,callback:function(n){e.lilySource=n},expression:"lilySource"}}),n("fieldset",[e.title?n("span",{staticClass:"title"},[e._v(e._s(e.title))]):e._e()]),n("fieldset",[n("button",{attrs:{title:"save source"},on:{click:e.saveSource}},[e._v("💾")]),n("button",{on:{click:function(n){e.settingPanelVisible=!0}}},[e._v("⚙")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.lilyMarkups.enabled,expression:"lilyMarkups.enabled"}],attrs:{title:"markup lilypond source",disabled:e.loadingLilyParser},on:{click:e.markupSource}},[e._v("{}")])]),n("fieldset",[n("span",[n("BoolStoreInput",{attrs:{sessionKey:"lotus-autoEngrave"},model:{value:e.autoEngrave,callback:function(n){e.autoEngrave=n},expression:"autoEngrave"}}),e._v("auto ")],1),n("span",{staticClass:"dirty-badge",class:{dirty:e.engraverDirty}}),n("button",{class:{working:e.engraving},staticStyle:{zoom:"160%"},attrs:{title:"engrave (F8)"},on:{click:e.engrave}},[e._v("🎼")]),n("button",{attrs:{disabled:!e.sheetDocument},on:{click:e.exportScore}},[e._v("📦")])]),n("fieldset",[n("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-tokenizeStaff"},model:{value:e.tokenizeStaff,callback:function(n){e.tokenizeStaff=n},expression:"tokenizeStaff"}}),n("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-rollVisible"},model:{value:e.rollVisible,callback:function(n){e.rollVisible=n},expression:"rollVisible"}}),n("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-showNotationsMatcher"},model:{value:e.showNotationsMatcher,callback:function(n){e.showNotationsMatcher=n},expression:"showNotationsMatcher"}}),n("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-enabledMidiAudio"},model:{value:e.enabledMidiAudio,callback:function(n){e.enabledMidiAudio=n},expression:"enabledMidiAudio"}}),n("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-playground.showCursor"},model:{value:e.showCursor,callback:function(n){e.showCursor=n},expression:"showCursor"}}),n("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-playground.chromaticMode"},model:{value:e.chromaticMode,callback:function(n){e.chromaticMode=n},expression:"chromaticMode"}}),n("CheckButton",{attrs:{content:"🎹",title:"live staff"},model:{value:e.tokenizeStaff,callback:function(n){e.tokenizeStaff=n},expression:"tokenizeStaff"}}),n("fieldset",{directives:[{name:"show",rawName:"v-show",value:e.tokenizeStaff,expression:"tokenizeStaff"}]},[n("CheckButton",{attrs:{content:"🎨",disabled:!e.sheetDocument,title:"chromatic mode"},model:{value:e.enabledChromatic,callback:function(n){e.enabledChromatic=n},expression:"enabledChromatic"}}),n("select",{directives:[{name:"show",rawName:"v-show",value:e.enabledChromatic,expression:"enabledChromatic"},{name:"model",rawName:"v-model",value:e.chromaticMode,expression:"chromaticMode"}],on:{change:function(n){var t=Array.prototype.filter.call(n.target.options,(function(e){return e.selected})).map((function(e){var n="_value"in e?e._value:e.value;return n}));e.chromaticMode=n.target.multiple?t:t[0]}}},[n("option",{attrs:{value:"symbols"}},[e._v("symbols")]),n("option",{attrs:{value:"pitch"}},[e._v("pitch")]),n("option",{attrs:{value:"track"}},[e._v("track")])]),n("CheckButton",{attrs:{content:"☳",disabled:!e.midiPlayer,title:"show MIDI roll"},model:{value:e.rollVisible,callback:function(n){e.rollVisible=n},expression:"rollVisible"}}),n("CheckButton",{attrs:{content:"c|s",disabled:!e.matcherNotations,title:"show notations matcher"},model:{value:e.showNotationsMatcher,callback:function(n){e.showNotationsMatcher=n},expression:"showNotationsMatcher"}}),n("CheckButton",{attrs:{content:"🔊",title:"MIDI Audio"},model:{value:e.enabledMidiAudio,callback:function(n){e.enabledMidiAudio=n},expression:"enabledMidiAudio"}}),n("CheckButton",{attrs:{content:"ꕯ",title:"show cursor"},model:{value:e.showCursor,callback:function(n){e.showCursor=n},expression:"showCursor"}}),n("button",{attrs:{disabled:!e.midiPlayer},on:{click:e.togglePlayer}},[e._v(e._s(e.midiPlayer&&e.midiPlayer.isPlaying?"⏸":"▶"))])],1)],1),n("fieldset",{directives:[{name:"show",rawName:"v-show",value:e.tokenizeStaff,expression:"tokenizeStaff"}]},[n("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-bakingSheet"},model:{value:e.bakingSheet,callback:function(n){e.bakingSheet=n},expression:"bakingSheet"}}),n("CheckButton",{attrs:{content:"字",title:"enabled music font"},model:{value:e.enabledMusicFont,callback:function(n){e.enabledMusicFont=n},expression:"enabledMusicFont"}}),n("CheckButton",{attrs:{content:"🍞",title:"baking sheet"},model:{value:e.bakingSheet,callback:function(n){e.bakingSheet=n},expression:"bakingSheet"}}),n("CheckButton",{directives:[{name:"show",rawName:"v-show",value:e.bakingSheet,expression:"bakingSheet"}],attrs:{content:"🦲",title:"hide baking images"},model:{value:e.hideBakingImages,callback:function(n){e.hideBakingImages=n},expression:"hideBakingImages"}})],1),n("fieldset",{directives:[{name:"show",rawName:"v-show",value:e.tokenizeStaff,expression:"tokenizeStaff"}]},[n("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-enabledPointer"},model:{value:e.enabledPointer,callback:function(n){e.enabledPointer=n},expression:"enabledPointer"}}),n("CheckButton",{attrs:{content:"↖"},model:{value:e.enabledPointer,callback:function(n){e.enabledPointer=n},expression:"enabledPointer"}}),e.enabledPointer?n("span",{staticClass:"pointer-info"},[e.pointerData?n("span",[n("span",[e._v("m: "),n("em",[e._v(e._s(e.pointerData.measureIndex))])]),Number.isFinite(e.pointerData.tick)?n("span",[e._v("t: "),n("em",[e._v(e._s(Math.round(e.pointerData.tick)))])]):e._e()]):e._e()]):e._e()],1),n("fieldset",[n("button",{attrs:{title:"update measure layout code",disabled:e.loadingLilyParser},on:{click:e.updateMeasureLayoutCode}},[e._v("*[]")]),e.measureLayoutCode||""===e.measureLayoutCode?n("input",{directives:[{name:"model",rawName:"v-model",value:e.measureLayoutCode,expression:"measureLayoutCode"}],staticClass:"measure-layout-code",class:{error:e.measureLayoutCodeError,dirty:e.measureLayoutCodeDirty},attrs:{type:"text",title:e.measureLayoutCodeError},domProps:{value:e.measureLayoutCode},on:{input:[function(n){n.target.composing||(e.measureLayoutCode=n.target.value)},e.validateMeasureLayoutCode],change:function(n){e.measureLayoutCodeDirty=!0}}}):e._e(),e.measureLayoutCodeDirty&&!e.measureLayoutCodeError?n("button",{staticClass:"apply",attrs:{disabled:e.loadingLilyParser},on:{click:e.applyUpdateMeasureLayoutCode}},[e._v("apply")]):e._e()]),n("fieldset",[n("input",{directives:[{name:"model",rawName:"v-model",value:e.highlightSymbol,expression:"highlightSymbol"}],staticClass:"hightlight-symbol",attrs:{type:"text",title:"hight symbol"},domProps:{value:e.highlightSymbol},on:{input:function(n){n.target.composing||(e.highlightSymbol=n.target.value)}}})])],1),n("main",[n("div",{staticClass:"source-container",class:{loading:e.sourceIsLoading,"drag-hover":e.sourceDragHover,connected:e.sourceEditorConnected},on:{dragover:function(n){n.preventDefault(),e.sourceDragHover=!0},dragleave:function(n){e.sourceDragHover=null},drop:function(n){return n.preventDefault(),n.stopPropagation(),e.onDropFile(n,{source:!0})},focusin:function(n){e.showSourceDir=!1}}},[n("SourceEditor",{ref:"sourceEditor",attrs:{source:e.lilySource,disabled:e.sourceIsLoading},on:{"update:source":function(n){e.lilySource=n}}}),n("span",{staticClass:"corner"},[n("button",{staticClass:"inspect",on:{click:e.inspectLily}},[e._v("📕")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.engraverLogStatus,expression:"engraverLogStatus"}],staticClass:"log",class:e.engraverLogStatus,attrs:{title:e.engraverLogs},on:{click:e.showEngraverLog}}),n("Loading",{directives:[{name:"show",rawName:"v-show",value:e.loadingLilyParser,expression:"loadingLilyParser"}]})],1),n("Loading",{directives:[{name:"show",rawName:"v-show",value:e.sourceIsLoading,expression:"sourceIsLoading"}]})],1),n("div",{ref:"buildContainer",staticClass:"build-container",class:{loading:e.engraving,dirty:e.engraverDirty,chromatic:e.enabledChromatic,inspecting:e.showNotationsMatcher},attrs:{"data-chromatic":e.chromaticMode}},[e.tokenizeStaff&&e.midiPlayer?n("MidiRoll",{directives:[{name:"show",rawName:"v-show",value:e.rollVisible,expression:"rollVisible"}],attrs:{player:e.midiPlayer,timeScale:.016,height:120,width:e.buildContainerSize.width}}):e._e(),e.showNotationsMatcher&&e.matcherNotations?n("NotationsMatcher",{attrs:{criterion:e.matcherNotations&&e.matcherNotations.criterion,sample:e.matcherNotations&&e.matcherNotations.sample,path:e.matcherNotations&&e.matcherNotations.path,softIndexAsX:e.enabledSheetNotation},on:{clickCNote:e.onClickMatcherNote,clickSNote:e.onClickMatcherNote}}):e._e(),n("div",{directives:[{name:"resize",rawName:"v-resize",value:e.onResize,expression:"onResize"}],ref:"sheetContainer",staticClass:"sheet-container",style:{"--music-font-family":"Emmentaler-26","--music-font-size":"4px"}},[e.svgDocuments&&!e.tokenizeStaff?n("SheetSimple",{attrs:{documents:e.svgDocuments},on:{linkClick:e.onSheetLink}}):e._e(),e.svgHashTable?n("SheetSigns",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{hashTable:e.svgHashTable,enabledFont:e.enabledMusicFont}}):e._e(),e.tokenizeStaff&&e.sheetDocument?n("SheetLive",{ref:"sheet",attrs:{doc:e.sheetDocument,midiNotation:e.midiNotation,pitchContextGroup:e.pitchContextGroup,midiPlayer:e.midiPlayer,showMark:!0,enablePointer:e.enabledPointer,showCursor:e.showCursor,bakingMode:e.bakingSheet,backgroundImages:e.hideBakingImages?null:e.bakingImages,scheduler:e.scheduler,enabledFont:e.enabledMusicFont,highlightSymbol:e.highlightSymbol&&e.highlightSymbol.toUpperCase()},on:{"update:midiPlayer":function(n){e.midiPlayer=n},"update:midi-player":function(n){e.midiPlayer=n},"update:scheduler":function(n){e.scheduler=n},midi:e.onMidi,cursorPageShift:e.onCursorPageShift,pointerUpdate:e.onPointerUpdate,pointerClick:e.onPointerClick,"click-token":e.onClickToken},scopedSlots:e._u([{key:"system",fn:function(t){return[e.enabledChromatic?n("g",e._l(t.system.staves,(function(r,i){return n("g",{key:i,staticClass:"staff",attrs:{transform:`translate(${r.x}, ${r.y})`}},["symbols"===e.chromaticMode?n("g",{staticClass:"locator"},[n("rect",{staticClass:"head",attrs:{x:0,y:-2,width:r.headWidth,height:4}}),n("circle"),Number.isFinite(r.top)?n("line",{attrs:{x1:0,y1:r.top,x2:t.system.width,y2:r.top}}):e._e(),e._l(r.measures,(function(t,r){return n("g",{key:r,staticClass:"measure",class:t.class},[n("rect",{attrs:{x:t.lineX,y:-2,width:t.noteRange.end-t.lineX,height:4}}),n("text",{attrs:{x:t.headX}},[e._v("'"+e._s(t.index))])])}))],2):e._e(),"pitch"===e.chromaticMode&&e.pitchContextMarks[t.system.index]&&e.pitchContextMarks[t.system.index][i]?n("g",{staticClass:"pitch-context"},e._l(e.pitchContextMarks[t.system.index][i],(function(t,r){return n("g",{key:r,attrs:{transform:`translate(${t.x}, 0)`}},[n("line",{staticClass:"base-line",attrs:{x1:"0",x2:"0",y1:"-3",y2:"3"}}),n("g",{attrs:{transform:"translate(0.2, 0.5)"}},e._l(t.names[0],(function(t,r){return n("g",{key:r,staticClass:"pitch",class:{sharp:t.alter>0,flat:t.alter<0},attrs:{transform:`translate(0, ${t.y})`}},[n("rect",{staticClass:"bg"}),n("text",[e._v(e._s(t.name))])])})),0),n("g",{attrs:{transform:"translate(1.6, 0.5)"}},e._l(t.names[1],(function(t,r){return n("g",{key:r,staticClass:"pitch",class:{sharp:t.alter>0,flat:t.alter<0},attrs:{transform:`translate(0, ${t.y})`}},[n("rect",{staticClass:"bg"}),n("text",[e._v(e._s(t.name))])])})),0)])})),0):e._e()])})),0):e._e()]}},{key:"staff",fn:function(t){return[e.enabledChromatic&&"symbols"===e.chromaticMode?n("g",[e.staffTopToken(t.staff)?n("g",[n("g",{staticClass:"staff-peak",attrs:{transform:`translate(${e.staffTopToken(t.staff).x}, ${e.staffTopToken(t.staff).y})`}},[n("path",{attrs:{d:"M-1.2,0 L1.2,0 M-0.9,0.6 L0,0 L0.9,0.6"}}),n("line",{attrs:{x1:0,x2:0,y1:0,y2:-e.staffTopToken(t.staff).y}}),n("circle")]),n("g",{staticClass:"staff-peak",attrs:{transform:`translate(${e.staffBottomToken(t.staff).x}, ${e.staffBottomToken(t.staff).y})`}},[n("path",{attrs:{d:"M-1.2,0 L1.2,0 M-0.9,-0.6 L0,0 L0.9,-0.6"}}),n("line",{attrs:{x1:0,x2:0,y1:0,y2:-e.staffBottomToken(t.staff).y}}),n("circle")])]):e._e()]):e._e()]}}],null,!1,1814916654)}):e._e()],1),n("Loading",{directives:[{name:"show",rawName:"v-show",value:e.engraving,expression:"engraving"}]})],1),e.sourceEditorEnabled?n("div",{staticClass:"source-editor-controls"},[n("button",{staticClass:"folder",on:{click:function(n){e.showSourceDir=!e.showSourceDir,e.$refs.sourceDir.reload()}}},[e._v(e._s("📁"))]),n("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-sourceEditorHost"},model:{value:e.sourceEditorHost,callback:function(n){e.sourceEditorHost=n},expression:"sourceEditorHost"}}),n("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-sourceEditorFilePath"},model:{value:e.sourceEditorFilePath,callback:function(n){e.sourceEditorFilePath=n},expression:"sourceEditorFilePath"}}),n("RemoteFile",{directives:[{name:"show",rawName:"v-show",value:e.sourceEditorFilePath,expression:"sourceEditorFilePath"}],ref:"remoteFile",attrs:{host:e.sourceEditorHost,filePath:e.sourceEditorFilePath,filePathReadOnly:!0,content:e.lilySource,connected:e.sourceEditorConnected,loading:e.sourceEditorLoading},on:{"update:content":function(n){e.lilySource=n},"update:connected":function(n){e.sourceEditorConnected=n},"update:loading":function(n){e.sourceEditorLoading=n}}}),n("DirBrowser",{ref:"sourceDir",attrs:{homeURL:"/source-dir/",shown:e.showSourceDir,handlePattern:/\.ly$/,compactFolders:!0},on:{"update:shown":function(n){e.showSourceDir=n},pickFile:e.onSourceDirPick}})],1):e._e()]),n("Dialog",{attrs:{visible:e.settingPanelVisible},on:{"update:visible":function(n){e.settingPanelVisible=n}}},[n("datalist",{attrs:{id:"lily-markups"}},e._l(e.lilyMarkupMethods,(function(e,t){return n("option",{key:t,domProps:{value:e}})})),0),n("table",{staticClass:"settings"},[n("tbody",[n("tr",[n("th",[e._v("MusicXML to Lilypond")]),n("td",[n("hr")])]),n("tr",[n("td",[e._v("Remove Breaks")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-xml2lyOptions.removeBreaks"},model:{value:e.xml2lyOptions.removeBreaks,callback:function(n){e.$set(e.xml2lyOptions,"removeBreaks",n)},expression:"xml2lyOptions.removeBreaks"}})],1)]),n("tr",[n("td",[e._v("Remove Staff Group")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-xml2lyOptions.removeStaffGroup"},model:{value:e.xml2lyOptions.removeStaffGroup,callback:function(n){e.$set(e.xml2lyOptions,"removeStaffGroup",n)},expression:"xml2lyOptions.removeStaffGroup"}})],1)]),n("tr",[n("td",[e._v("Merge Continuous Graces")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-xml2lyOptions.mergeContinuousGraces"},model:{value:e.xml2lyOptions.mergeContinuousGraces,callback:function(n){e.$set(e.xml2lyOptions,"mergeContinuousGraces",n)},expression:"xml2lyOptions.mergeContinuousGraces"}})],1)]),n("tr",[n("td",[e._v("Exclude Chord Tracks from MIDI")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-xml2lyOptions.excludeChordTracksFromMIDI"},model:{value:e.xml2lyOptions.excludeChordTracksFromMIDI,callback:function(n){e.$set(e.xml2lyOptions,"excludeChordTracksFromMIDI",n)},expression:"xml2lyOptions.excludeChordTracksFromMIDI"}})],1)]),n("tr",[n("td",[e._v("Use MIDI Instrument as Channel Mapping")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-xml2lyOptions.midiChannelMapping"},model:{value:e.xml2lyOptions.midiChannelMapping,callback:function(n){e.$set(e.xml2lyOptions,"midiChannelMapping",n)},expression:"xml2lyOptions.midiChannelMapping"}})],1)]),n("tr",[n("td",[e._v("Remove Trill Spans")]),n("td",[n("button",{attrs:{disabled:e.loadingLilyParser},on:{click:e.removeTrillSpans}},[e._v("remove")])])]),n("tr",[n("td",[e._v("Prune Stem Directions")]),n("td",[n("button",{attrs:{disabled:e.loadingLilyParser},on:{click:function(n){return e.executeMarkup("pruneStemDirections")}}},[e._v("prune")])])]),n("tr",[n("td",[e._v("Redivide Measures")]),n("td",[n("button",{attrs:{disabled:e.loadingLilyParser},on:{click:e.redivideLilyDocument}},[e._v("redivide")])])]),n("tr",[n("th",[e._v("Engrave")]),n("td",[n("hr")])]),n("tr",[n("td",[e._v("Logger Recorder")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-engraveWithLogs"},model:{value:e.engraveWithLogs,callback:function(n){e.engraveWithLogs=n},expression:"engraveWithLogs"}})],1)]),n("tr",[n("td",[e._v("Use Sheet Notation")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-enabledSheetNot"},model:{value:e.enabledSheetNotation,callback:function(n){e.enabledSheetNotation=n},expression:"enabledSheetNotation"}})],1)]),n("tr",{directives:[{name:"show",rawName:"v-show",value:e.enabledSheetNotation,expression:"enabledSheetNotation"}]},[n("td",[e._v("Fuzzy Notation Matcher")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-enabledFuzzyMatcher"},model:{value:e.enabledFuzzyMatcher,callback:function(n){e.enabledFuzzyMatcher=n},expression:"enabledFuzzyMatcher"}})],1)]),n("tr",[n("td",[e._v("Measure Repeat Type")]),n("td",[n("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-measureLayoutType"},model:{value:e.measureLayoutType,callback:function(n){e.measureLayoutType=n},expression:"measureLayoutType"}}),n("select",{directives:[{name:"model",rawName:"v-model",value:e.measureLayoutType,expression:"measureLayoutType"}],on:{change:function(n){var t=Array.prototype.filter.call(n.target.options,(function(e){return e.selected})).map((function(e){var n="_value"in e?e._value:e.value;return n}));e.measureLayoutType=n.target.multiple?t:t[0]}}},[n("option",{attrs:{value:"ordinary"}},[e._v("Ordinary")]),n("option",{attrs:{value:"full"}},[e._v("Full")]),n("option",{attrs:{value:"conservative"}},[e._v("Conservative")]),n("option",{attrs:{value:"once"}},[e._v("Once")])])],1)]),n("tr",[n("td",[e._v("Articulate MIDI")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-articulateMIDI"},model:{value:e.articulateMIDI,callback:function(n){e.articulateMIDI=n},expression:"articulateMIDI"}})],1)]),n("tr",[n("th",[e._v("Lilypond Markups")]),n("td",[n("hr")])]),n("tr",[n("td",[e._v("Enabled")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-lilyMarkups.enabled"},model:{value:e.lilyMarkups.enabled,callback:function(n){e.$set(e.lilyMarkups,"enabled",n)},expression:"lilyMarkups.enabled"}})],1)]),n("tr",[n("td",[e._v("Staff Size")]),n("td",[n("StoreInput",{attrs:{type:"number",localKey:"lotus-lilyMarkups.staffSize"},model:{value:e.lilyMarkups.staffSize,callback:function(n){e.$set(e.lilyMarkups,"staffSize",e._n(n))},expression:"lilyMarkups.staffSize"}})],1)]),n("tr",[n("td",[e._v("Auto Paper Size")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-lilyMarkups.autoPaperSize"},model:{value:e.lilyMarkups.autoPaperSize,callback:function(n){e.$set(e.lilyMarkups,"autoPaperSize",n)},expression:"lilyMarkups.autoPaperSize"}})],1)]),n("tr",[n("td",[e._v("Page Count")]),n("td",[n("StoreInput",{attrs:{type:"number",localKey:"lotus-lilyMarkups.pageCount"},model:{value:e.lilyMarkups.pageCount,callback:function(n){e.$set(e.lilyMarkups,"pageCount",e._n(n))},expression:"lilyMarkups.pageCount"}})],1)]),n("tr",[n("td",[e._v("System-System Spacing")]),n("td",[n("StoreInput",{attrs:{type:"number",localKey:"lotus-lilyMarkups.systemSpacing"},model:{value:e.lilyMarkups.systemSpacing,callback:function(n){e.$set(e.lilyMarkups,"systemSpacing",e._n(n))},expression:"lilyMarkups.systemSpacing"}})],1)]),n("tr",[n("td",[e._v("Top Markup Spacing")]),n("td",[n("StoreInput",{attrs:{type:"number",localKey:"lotus-lilyMarkups.topMarkupSpacing"},model:{value:e.lilyMarkups.topMarkupSpacing,callback:function(n){e.$set(e.lilyMarkups,"topMarkupSpacing",e._n(n))},expression:"lilyMarkups.topMarkupSpacing"}})],1)]),n("tr",[n("td",[e._v("Ragged Last")]),n("td",[n("BoolStoreInput",{attrs:{localKey:"lotus-lilyMarkups.raggedLast"},model:{value:e.lilyMarkups.raggedLast,callback:function(n){e.$set(e.lilyMarkups,"raggedLast",n)},expression:"lilyMarkups.raggedLast"}})],1)]),n("tr",[n("td",[e._v("Export a Markup File")]),n("td",[n("button",{on:{click:e.exportMarkupLily}},[e._v("export .ly")])])]),n("tr",[n("td",[e._v("Execute Function")]),n("td",[n("input",{directives:[{name:"model",rawName:"v-model",value:e.chosenLilyMarkupMethod,expression:"chosenLilyMarkupMethod"}],attrs:{type:"text",list:"lily-markups"},domProps:{value:e.chosenLilyMarkupMethod},on:{input:function(n){n.target.composing||(e.chosenLilyMarkupMethod=n.target.value)}}}),n("button",{attrs:{disabled:!e.chosenLilyMarkupMethod},on:{click:function(n){e.executeMarkup(e.chosenLilyMarkupMethod),e.chosenLilyMarkupMethod=null}}},[e._v(" "+e._s(e.chosenLilyMarkupMethod?"Call":"Done")+" ")])])])])])]),n("canvas",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],ref:"canvas"})],1)},i=[],o=t("428d"),a=t.n(o),s=t("4b63"),l=t("8701"),c=t("5027"),u=t("f634"),f=t("d57e"),h=t("4fde"),d=t("a31e"),p=t("a6bf"),m=t("8745"),g=t("010e"),y=t("bc9f"),v=t("ee7e"),b=t("1f25"),w=t("16d8"),x=t("1c3a"),k=t("1151"),S=t("46f9"),A=t("9224"),L=function(){var e=this,n=e._self._c;return n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:e.viewBox,height:e.height},on:{click:e.onClickCanvas,mousewheel:e.onMouseWheel}},[n("g",{attrs:{transform:`translate(${-e.xScroll}, 0)`}},[e.progressTime?n("g",{staticClass:"progress"},[n("rect",{attrs:{x:0,y:-120,height:121-e.notation.keyRange.low,width:e.progressTime*e.timeScale}}),n("line",{attrs:{x1:e.progressTime*e.timeScale,x2:e.progressTime*e.timeScale,y1:1-e.notation.keyRange.low,y2:"-120"}})]):e._e(),e.notation?n("g",[e._l(e.notation.bars,(function(t,r){return n("g",{key:r,staticClass:"bar measure"},[0===t.index?n("line",{attrs:{x1:t.time*e.timeScale,x2:t.time*e.timeScale,y1:1-e.notation.keyRange.low,y2:"-120"}}):e._e()])})),e._l(e.pitchScales,(function(t){return n("g",{key:"p-"+t,staticClass:"bar pitch-group"},[n("line",{attrs:{x1:0,x2:e.timeScale*e.notation.endTime,y1:1-t,y2:1-t}})])}))],2):e._e(),e.notation?n("SvgPianoRoll",{attrs:{notation:e.notation,timeScale:e.timeScale,pitchScale:1}}):e._e()],1),e.notation?n("g",{staticClass:"scales"},[n("rect",{staticClass:"pitch-padding",attrs:{x:-10,y:-120,width:10,height:121-e.notation.keyRange.low}}),n("line",{attrs:{x1:"0",x2:"0",y1:1-e.notation.keyRange.low,y2:"-120"}}),n("line",{attrs:{x1:"0",x2:e.timeScale*e.notation.endTime-e.xScroll,y1:1-e.notation.keyRange.low,y2:1-e.notation.keyRange.low}}),e._l(e.pitchScales,(function(t){return n("g",{key:"p-"+t,staticClass:"pitch-bar"},[n("line",{attrs:{x1:"-.8",x2:"0",y1:.5-t,y2:.5-t}}),n("text",{attrs:{x:"-2",y:1-t}},[e._v(e._s(t))])])})),n("g",{attrs:{transform:`translate(${-e.xScroll}, 0)`}},e._l(e.timeScales,(function(t){return n("g",{key:"t-"+t,staticClass:"time-bar"},[n("line",{attrs:{x1:t*e.timeScale,x2:t*e.timeScale,y1:1-e.notation.keyRange.low,y2:1.8-e.notation.keyRange.low}}),n("text",{attrs:{x:t*e.timeScale,y:4-e.notation.keyRange.low}},[e._v(e._s(.001*t)+"s")])])})),0)],2):e._e()])},E=[],C=t("2b0e"),B=function(){var e=this,n=e._self._c;return n("g",{staticClass:"piano-roll-root"},e._l(e.notationObj.notes,(function(t,r){return n("g",{key:r,staticClass:"note",attrs:{transform:`translate(${t.start*e.timeScale}, ${-t.pitch*e.pitchScale})`}},[n("rect",{class:{focus:t.index===e.focusNoteIndex,...t.classes||{},on:t.on},attrs:{width:t.duration*e.timeScale,height:e.pitchScale},on:{click:function(n){return e.onClickNote(t)}}}),n("line",{attrs:{x1:0,x2:0,y1:0,y2:e.pitchScale}}),e.tooltips?n("title",[e._v(" p: "+e._s(t.pitch)+" "),t.id?n("tspan",[e._v(" id: "+e._s(t.id)+" ")]):e._e()]):e._e()])})),0)},I=[],O={name:"svg-piano-roll",props:{notation:Object,timeScale:{type:Number,default:.001},pitchScale:{type:Number,default:1},focusNoteIndex:Number,tooltips:{type:Boolean,default:!1}},computed:{notationObj(){return this.notation?this.notation:(console.warn("property of 'notation' is required."),null)}},methods:{onClickNote(e){this.$emit("clickNote",e)}}},T=O,P=(t("7b9a"),t("2877")),R=Object(P["a"])(T,B,I,!1,null,"a15b0344",null),N=R.exports;const{parseMidiData:M}=s["MIDI"],{Notation:D}=s["MusicNotation"],F={left:3,right:1};var j={name:"midi-roll",props:{midiURL:String,player:Object,height:{type:Number,default:200},width:Number,timeScale:{type:Number,default:.001}},components:{SvgPianoRoll:N},data(){return{notation:null,timeScroll:0}},computed:{widthLimited(){return Number.isFinite(this.width)},aspectRatio(){return this.widthLimited?this.width/this.height:1.6},viewHeight(){if(this.notation){const{low:e,high:n}=this.notation.keyRange;return n-e+5}return 90},justifyWidth(){const e=this.notation?this.notation.endTime:this.height*this.aspectRatio;return e*this.timeScale+F.left+F.right},viewWidth(){return this.widthLimited?this.width*this.viewHeight/this.height:this.justifyWidth},viewBox(){return`-${F.left} ${this.notation?-this.notation.keyRange.high-1:0} ${this.viewWidth} ${this.viewHeight}`},pitchScales(){return this.notation?Array(9).fill().map((e,n)=>12*n).filter(e=>e>=this.notation.keyRange.low):[]},timeScales(){return this.notation?Array(Math.ceil(this.notation.endTime/15e3)).fill().map((e,n)=>15e3*n):[]},progressTime(){return this.player?this.player.progressTime:null},visibleTimeSpan(){return this.widthLimited?(this.viewWidth-(F.left+F.right))/this.timeScale:1/0},xScroll(){return this.timeScroll*this.timeScale}},created(){this.load()},methods:{async load(){if(this.notation=null,this.player)this.notation=this.player.notation,this.updateNoteStatus(),this.$forceUpdate();else if(this.midiURL){const e=await(await fetch(this.midiURL)).arrayBuffer(),n=M(e);this.notation=D.parseMidi(n)}},updateNoteStatus(){if(!this.notation)return;const e=Number.isFinite(this.progressTime);for(const n of this.notation.notes)C["a"].set(n,"on",e&&n.startthis.progressTime)},onClickCanvas(e){if(this.player){const n=(this.notation.keyRange.high-this.notation.keyRange.low+5)/this.height,t=e.offsetX*n-F.left+this.xScroll,r=t/this.timeScale;r>=0&&r.6*this.visibleTimeSpan?this.timeScroll=Math.max(Math.min(this.progressTime-.6*this.visibleTimeSpan,this.notation.endTime-this.visibleTimeSpan),0):this.progressTime-this.timeScroll<.4*this.visibleTimeSpan&&(this.timeScroll=Math.max(this.progressTime-.4*this.visibleTimeSpan,0))}},watch:{midiURL:"load",player:"load",progressTime(){this.updateNoteStatus(),this.widthLimited&&this.adjustTimeScroll()}}},_=j,H=(t("2447"),Object(P["a"])(_,L,E,!1,null,"fd24ee10",null)),U=H.exports,W=t("3122"),z=t("94c1"),q=t("a139"),G=t("f7ce"),J=t("488d"),Y=t("cdaf"),K=t("4e72"),X=t("ddcc"),Z=function(){var e=this,n=e._self._c;return n("div",{staticClass:"notations-matcher"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",height:"480",viewBox:`-20 -20 ${e.width+40} 160`}},[n("g",{staticClass:"criterion",attrs:{transform:`translate(${e.positionC.x}, ${e.positionC.y})`}},[e.innerCriterion?n("PinaoRoll",{attrs:{notation:e.innerCriterion,timeScale:e.timeScale,pitchScale:1,tooltips:!0},on:{clickNote:e.onClickCNote}}):e._e()],1),n("g",{staticClass:"sample",attrs:{transform:`translate(${e.positionS.x}, ${e.positionS.y})`}},[e.innerSample?n("PinaoRoll",{attrs:{notation:e.innerSample,timeScale:e.timeScale,pitchScale:1,tooltips:!0},on:{clickNote:e.onClickSNote}}):e._e()],1),e.links?n("g",{staticClass:"links"},e._l(e.links,(function(t){return n("line",{key:t.s.index,class:{oblique:t.s.start!==t.c.start,"heavy-oblique":Math.abs(t.s.start-t.c.start)>128},attrs:{x1:e.positionS.x+t.s.start*e.timeScale,x2:e.positionC.x+t.c.start*e.timeScale,y1:e.positionS.y-t.s.pitch+.5,y2:e.positionC.y-t.c.pitch+.5}})})),0):e._e()])])},V=[],Q=t("12b4");const $=e=>({notes:e.notes.map(e=>Object(Q["a"])(e,["startTick","endTick","softIndex","duration","classes","pitch","index","id"]))});var ee={name:"notations-matcher",props:{criterion:Object,sample:Object,path:Array,softIndexAsX:{type:Boolean,default:!1},timeFactorC:{type:Number,default:1}},components:{PinaoRoll:s["SvgPianoRoll"]},data(){return{timeScale:.001,positionC:{x:0,y:90},positionS:{x:0,y:160}}},computed:{links(){return this.path&&this.path.map((e,n)=>({ci:e,si:n})).filter(({ci:e})=>e>=0).map(({ci:e,si:n})=>({c:this.innerCriterion.notes[e],s:this.innerSample.notes[n]}))},linkIndices(){return this.path&&this.path.map((e,n)=>({c:e,s:n}))},width(){const e=this.innerCriterion&&this.innerCriterion.notes[this.innerCriterion.notes.length-1],n=this.innerSample&&this.innerSample.notes[this.innerSample.notes.length-1],t=e?e.start+e.duration:0,r=n?n.start+n.duration:0;return Math.max(t,r,1)*this.timeScale},innerCriterion(){if(!this.criterion)return null;const e=$(this.criterion);return this.satisfyNotation(e,"c"),e},innerSample(){if(!this.sample)return null;const e=$(this.sample);return this.satisfyNotation(e,"s"),e}},methods:{satisfyNotation(e,n){e&&e.notes.forEach(e=>{this.softIndexAsX?(e.start=4e3*e.softIndex,e.duration=2e3):(e.start=32*e.startTick*("s"===n?this.timeFactorC:1),e.duration=2e3),e.classes=e.classes||{};const t=this.linkIndices.some(t=>t[n]===e.index);e.classes.missed=!t})},onClickCNote(e){const n=this.criterion.notes[e.index];this.$emit("clickCNote",n)},onClickSNote(e){const n=this.sample.notes[e.index];this.$emit("clickSNote",n)}}},ne=ee,te=(t("6aab"),t("8020"),Object(P["a"])(ne,Z,V,!1,null,"60750789",null)),re=te.exports,ie=function(){var e=this,n=e._self._c;return n("dialog",{attrs:{open:e.visible},on:{click:e.close}},[n("main",{on:{click:function(e){e.stopPropagation()}}},[e._t("default")],2)])},oe=[],ae={name:"popup-dialog",props:{visible:Boolean},methods:{close(){this.$emit("update:visible",!1)}}},se=ae,le=(t("0f75"),Object(P["a"])(se,ie,oe,!1,null,"2ce9a878",null)),ce=le.exports,ue=function(){var e=this,n=e._self._c;return n("span",{class:{connected:e.remoteFile.connected}},[n("button",{staticClass:"link",class:{on:e.remoteFile.connected},attrs:{disabled:!e.host||!e.filePath},on:{click:e.onLink}},[e._v("🔗")]),n("input",{directives:[{name:"model",rawName:"v-model",value:e.filePath,expression:"filePath"}],staticClass:"file-path",attrs:{type:"text",readonly:e.filePathReadOnly},domProps:{value:e.filePath},on:{input:function(n){n.target.composing||(e.filePath=n.target.value)}}})])},fe=[],he=t("b047"),de=t.n(he),pe=t("7888"),me={props:{host:String,filePath:String,content:String,filePathReadOnly:Boolean},data(){return{remoteFile:new pe["a"],loading:!1}},created(){this.remoteFile.on("sync",({timestamp:e})=>{const n=this.remoteFile.content.replace(/\r\n/g,"\n");this.$emit("update:content",n),this.$nextTick(()=>this.loading=!1),console.debug("remote file synchronized:",new Date(e))}),this.remoteFile.on("connected",()=>this.$emit("update:connected",!0)),this.remoteFile.on("disconnected",()=>{this.loading=!1,this.$emit("update:connected",!1)})},methods:{onLink(){this.remoteFile.connected?this.disconnect():this.connect()},connect(){this.loading=!0,this.remoteFile.connect(this.host,this.filePath)},disconnect(){this.remoteFile.close()}},watch:{content:de()((function(e){this.remoteFile.connected&&e!==this.remoteFile.content&&(this.remoteFile.content=e)}),1e3),loading(e){this.$emit("update:loading",e)}}},ge=me,ye=Object(P["a"])(ge,ue,fe,!1,null,null,null),ve=ye.exports,be=function(){var e=this,n=e._self._c;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.shown,expression:"shown"}],staticClass:"dir-browser",on:{mouseenter:function(n){e.hover=!0},mouseleave:function(n){e.hover=!1}}},[n("iframe",{ref:"frame",attrs:{src:e.homeURL},on:{load:e.onFrameLoad}}),n("div",{staticClass:"controls"},[n("button",{on:{click:function(n){e.$refs.frame.contentWindow.location.href=e.homeURL}}},[e._v(e._s("🏠"))]),n("button",{on:{click:function(n){return e.$refs.frame.contentWindow.history.back()}}},[e._v("⇦")])])])},we=[],xe={name:"dir-browser",props:{homeURL:String,shown:Boolean,handlePattern:RegExp,autoHide:Boolean,compactFolders:Boolean},data(){return{href:this.homeURL,hover:!1}},methods:{onFrameLoad(){this.href=this.$refs.frame.contentWindow.location.href},hide(){this.$emit("update:shown",!1)},reload(){this.$refs.frame.contentWindow.location.reload()}},watch:{href(){if(this.handlePattern&&this.handlePattern.test(this.href)){this.$refs.frame.contentWindow.history.back(),this.hide();const e=Math.max(this.href.indexOf(this.homeURL),0),n=decodeURI(this.href.substr(e+this.homeURL.length));this.$emit("pickFile",n)}else if(this.compactFolders){const e=this.$refs.frame.contentDocument.querySelectorAll("#files li"),n=this.$refs.frame.contentDocument.querySelectorAll("#files .folder");if(2===e.length&&1===n.length){const e=this.$refs.frame.contentDocument.querySelector("#files .folder");e.click()}}},hover(e){!e&&this.autoHide&&de()(()=>{this.hover||this.hide()},1e3)()}}},ke=xe,Se=(t("0f97"),Object(P["a"])(ke,be,we,!1,null,"61843fd4",null)),Ae=Se.exports,Le={created(){this.quitCleaner=new Promise(e=>this.quitClear=e)},methods:{async appendCleaner(e){"pending"!==await Promise.race([this.quitCleaner,"pending"])?e():this.quitCleaner=this.quitCleaner.then(e)}},beforeDestroy(){this.quitClear()}},Ee={name:"playground",directives:{resize:a.a},mixins:[Le],components:{SourceEditor:W["a"],SheetSimple:z["a"],SheetLive:q["a"],SheetSigns:G["a"],Loading:J["a"],StoreInput:Y["a"],BoolStoreInput:K["a"],CheckButton:X["a"],MidiRoll:U,NotationsMatcher:re,Dialog:ce,RemoteFile:ve,DirBrowser:Ae},data(){return{buildContainerSize:{width:100,height:100},sheetContainerSize:{width:100,height:100},dragHover:null,sourceDragHover:!1,lilySource:"",converting:!1,engraving:!1,svgDocuments:null,engraverLogs:null,engraverDirty:!1,autoEngrave:!0,tokenizeStaff:!0,sheetDocument:null,title:null,svgHashTable:null,midi:null,midiNotation:null,scheduler:null,pitchContextGroup:null,enabledChromatic:!1,chromaticMode:"symbols",midiPlayer:null,rollVisible:!1,matcherNotations:null,showNotationsMatcher:!1,enabledMidiAudio:!0,showCursor:!0,settingPanelVisible:!1,xml2lyOptions:{removeBreaks:!0,removeStaffGroup:!0,mergeContinuousGraces:!0,excludeChordTracksFromMIDI:!0,midiChannelMapping:!1},engraveWithLogs:!1,enabledFuzzyMatcher:!0,enabledSheetNotation:!1,lilyMarkups:{enabled:!0,staffSize:null,autoPaperSize:!0,pageCount:2,systemSpacing:-1,topMarkupSpacing:-1,raggedLast:!0},lilyParser:null,measuresParser:null,lilyDocumentDirty:!1,lilyTextSourceDirty:!1,bakingSheet:!1,bakingImages:null,enabledMusicFont:!1,hideBakingImages:!1,lilyMarkupMethods:Object.getOwnPropertyNames(y["a"].prototype),chosenLilyMarkupMethod:null,operating:!1,loadingLilyParser:!1,enabledPointer:!1,pointerData:null,sourceEditorEnabled:!!Object({NODE_ENV:"production",BASE_URL:""}).VUE_APP_USE_SOURCE_EDITOR,showSourceDir:!1,sourceEditorHost:"ws://"+location.host,sourceEditorFilePath:null,sourceEditorConnected:!1,sourceEditorLoading:!1,measureLayoutType:"ordinary",measureLayoutCode:null,measureLayoutCodeDirty:!1,measureLayoutCodeError:null,articulateMIDI:!1,highlightSymbol:null}},computed:{markupValueHash(){const{enabled:e,...n}=this.lilyMarkups;return JSON.stringify(n)},autoPageSize(){return{width:this.sheetContainerSize.width/this.lilyMarkups.pageCount-34,height:this.sheetContainerSize.height-38}},engraverLogStatus(){return this.engraverLogs?/error:/i.test(this.engraverLogs)?"error":/warning:/i.test(this.engraverLogs)?"warning":"info":null},sourceIsLoading(){return this.converting||this.sourceEditorLoading},pitchContextMarks(){return this.pitchContextGroup&&this.scheduler?this.pitchContextGroup.map(e=>e.items.map(e=>{const n=e.context,t=e=>({y:e,alter:n.alterOnNote(n.yToNote(e)),name:n.yToPitchName(e)}),{system:r,x:i}=this.scheduler.lookupPosition(e.tick),o=[[-2,-1,0,1,2].map(t),[-1.5,-.5,.5,1.5].map(t)];return{system:r,x:i,names:o}})).reduce((e,n,t)=>(n.forEach(({system:n,...r})=>{e[n]=e[n]||[],e[n][t]=e[n][t]||[],e[n][t].push(r)}),e),[]):[]}},async created(){window.$main=this,s["MidiAudio"].WebAudio.empty()&&s["MidiAudio"].loadPlugin({soundfontUrl:"/soundfont/",api:"webaudio"}).then(()=>console.log("Soundfont loaded.")),Object(g["a"])(t.e("chunk-2d0c53c7").then(t.t.bind(null,"3ddd",7))).then(e=>{this.measuresParser=e,console.debug("measureLayout parser loaded.")}),this.loadingLilyParser=!0,this.lilyParser=await Object(g["a"])(t.e("chunk-2d0db258").then(t.t.bind(null,"6f2d",7))),this.loadingLilyParser=!1,console.debug("lily parser loaded."),this.updateLilyDocument()},async mounted(){const e=e=>{switch(e.code){case"F8":this.engrave(),e.preventDefault();break}};document.addEventListener("keydown",e),this.appendCleaner(()=>document.removeEventListener("keydown",e)),await this.$nextTick(),this.watchEngrave()},methods:{onResize(){this.buildContainerSize.width=this.$refs.buildContainer.clientWidth,this.buildContainerSize.height=this.$refs.buildContainer.clientHeight,this.sheetContainerSize.width=this.$refs.sheetContainer.clientWidth,this.sheetContainerSize.height=this.$refs.sheetContainer.clientHeight},onDragOver(e){const n=e.dataTransfer.items[0];n&&(this.dragHover=n.type)},async onDropFile(e,{source:n}={}){if(this.dragHover=null,this.sourceDragHover=!1,this.sourceEditorConnected){if(!window.confirm("Break the edidtor file connection and continue loading?"))return;this.$refs.remoteFile.disconnect()}const t=e.dataTransfer.files[0];if(t)switch(t.type){case"text/x-lilypond":case"text/lilypond-source":case"":this.lilySource=await t.readAs("Text"),this.engraverLogs=null,this.clearSheet(),await this.updateLilyDocument(),this.engrave();break;case"text/xml":this.converting=!0;try{const e=await t.readAs("Text");this.lilySource=await this.musicxml2ly(e),this.engraverLogs=null}catch(r){console.warn("musicxml2ly failed:",r)}this.converting=!1,this.clearSheet(),await this.updateLilyDocument(),this.lilySource&&this.engrave();break;case"audio/midi":case"audio/mid":if(n){this.converting=!0;try{this.lilySource=await this.midi2ly(t),this.engraverLogs=null}catch(r){console.warn("musicxml2ly failed:",r)}this.converting=!1,this.clearSheet(),await this.updateLilyDocument(),this.lilySource&&this.engrave()}else{const e=await t.readAs("ArrayBuffer");this.midi=s["MIDI"].parseMidiData(e)}break;default:console.warn("unsupported file type:",t.type)}},onMidi(e,n){if(this.enabledMidiAudio)switch(e.subtype){case"noteOn":s["MidiAudio"].noteOn(e.channel,e.noteNumber,e.velocity,n);break;case"noteOff":s["MidiAudio"].noteOff(e.channel,e.noteNumber,n);break}},onCursorPageShift(e){console.log("onCursorPageShift:",e)},onPointerUpdate(e){this.pointerData=e},async onPointerClick(e,n){if(!n.ctrlKey&&Number.isFinite(e.tick)){const n=this.midiPlayer.isPlaying;n&&(this.midiPlayer.pause(),await Object(c["a"])()),this.midiPlayer.progressTicks=e.tick,n&&this.midiPlayer.play()}},clearSheet(){this.title=null,this.sheetDocument=null,this.sheetNotation=null,this.svgHashTable=null,this.lilyNotation=null,this.midi=null,this.midiNotation=null,this.scheduler=null,this.pitchContextGroup=null,this.midiPlayer=null,this.matcherNotations=null,this.bakingImages=null},async musicxml2ly(e){const n=new FormData;n.append("xml",e),n.append("options",JSON.stringify({removeBreak:this.xml2lyOptions.removeBreaks,removePageBreak:this.xml2lyOptions.removeBreaks}));const t=await fetch("/musicxml2ly",{method:"POST",body:n});if(t.ok){const e=await t.text();return console.debug("musicxml2ly accomplished."),this.postProcessSource(e)}{const e=await t.text();throw console.warn("musicxml2ly failed:",e),new Error(e)}},async midi2ly(e){const n=new FormData;n.append("midi",e),n.append("options",JSON.stringify({removeInstrumentName:!0,tupletReplace:!0}));const t=await fetch("/midi2ly",{method:"POST",body:n});if(t.ok)return t.text();console.warn("MIDI to ly failed:",await t.text())},async engrave(){if(this.engraving)return void console.warn("already engraving, cancelled.");if(this.engraving=!0,await this.$nextTick(),await Object(c["a"])(),await Object(c["a"])(),this.tokenizeStaff)try{await this.updateLilyDocument(),this.lilyDocument&&this.lilyDocument.interpret({useCached:!1})}catch(t){console.warn("lilydocument parsing failed:",t)}const e=new FormData;e.append("source",this.lilySource),this.engraveWithLogs&&e.append("log",this.engraveWithLogs),this.tokenizeStaff&&e.append("tokenize",this.tokenizeStaff);const n=await fetch("/engrave",{method:"POST",body:e});if(n.ok){const e=await n.json();console.log("Engraving accomplished."),this.engraverLogs=e.logs,this.engraverLogger=e.logger,this.svgDocuments=e.svgs,this.tokenizeStaff?(this.sheetDocument=Object(u["b"])(e.doc,{StaffToken:f["a"],SheetDocument:h["e"]}),this.svgHashTable=e.hashTable,this.sheetDocument.assignFlagsTrack(),this.articulateMIDI?this.midi=await this.engraveMIDI():this.midi=e.midi,this.enabledSheetNotation&&this.updateSheetNotation(),this.midi&&this.matchNotations(this.midi)):this.clearSheet(),this.engraving=!1}else this.engraverLogs=await n.text(),this.clearSheet(),this.svgDocuments=null;this.engraverDirty=!1,this.engraving=!1},async engraveScm(){const e=new FormData;e.append("source",this.lilySource);const n=await fetch("/engraveScm",{method:"POST",body:e});if(!n.ok)return void console.warn("engraveScm error:",await n.text());const r=await n.json();this.engraverLogs=r.logs;const i=await t.e("chunk-a06ef50c").then(t.bind(null,"f587")),o=i.S(r.scm);console.log("SCM:",o)},async engraveMIDI({articulate:e=!0}={}){const n=new FormData;n.append("source",this.lilySource),e&&n.append("articulate","1");const t=await fetch("/engraveMIDI",{method:"POST",body:n});if(!t.ok)return void console.warn("engraveMIDI error:",await t.text());const r=await t.arrayBuffer();return s["MIDI"].parseMidiData(r)},saveSource(){const e=new Blob([this.lilySource],{type:"text/x-lilypond"}),n=document.createElement("a");n.href=URL.createObjectURL(e);const t=prompt("Input your file name:",(this.title||"lotus-editor")+".ly");t&&(n.download=/\.\w+/.test(t)?t:t+".ly",n.click())},watchEngrave(){this.autoEngrave&&this.engraverDirty&&!this.engraving&&this.engrave()},togglePlayer(){this.midiPlayer&&(this.midiPlayer.isPlaying?this.midiPlayer.pause():this.midiPlayer.play())},async sliceSource(e,n){if(!this.midi)return null;const t=s["MidiUtils"].sliceMidi(this.midi,e,n);console.log("partMidi:",t);const r=new Blob([s["MIDI"].encodeMidiFile(t)],{type:"audio/midi"}),i=this.midi2ly(r);console.log("ly:",i)},updateSheetNotation(){if(this.sheetNotation=null,this.matcherNotations=null,this.sheetDocument){const e=new p["a"]({enabled:!0});if(this.sheetNotation=m["parseNotationFromSheetDocument"](this.sheetDocument,{logger:e}),this.lilyDocument){const e=this.lilyDocument.getLocationTickTable();m["assignTickByLocationTable"](this.sheetNotation,e)}else console.warn("lilyDocument is null, assignTickByLocationTable skipped.");console.log("sheet notation parsed:",e.toJSON())}},async matchNotations(e){if(console.assert(e,"midi is null."),this.enabledSheetNotation){console.assert(this.sheetNotation,"sheetNotation is null.");const n=s["MusicNotation"].Notation.parseMidi(e);this.matcherNotations=await m["matchNotations"](n,this.sheetNotation,{enableFuzzy:this.enabledFuzzyMatcher}),this.midiNotation=n,this.pitchContextGroup=k["b"].createPitchContextGroup(this.sheetNotation.pitchContexts,this.midiNotation),this.matchedIds=new Set,this.midiNotation.notes.forEach(e=>e.ids&&e.ids.forEach(e=>this.matchedIds.add(e)))}else{this.lilyNotation=this.lilyDocument.interpret().getNotation(),this.matcherNotations=await d["h"](this.lilyNotation,e);const n=this.lilyNotation.getMeasureIndices(this.measureLayoutType);this.midiNotation=this.lilyNotation.toPerformingNotationWithEvents(n),this.pitchContextGroup=this.lilyNotation.getContextGroup(n),this.matchedIds=this.lilyNotation.idSet,this.scheduler=d["e"].createFromNotation(this.lilyNotation.toPerformingNotation(n,{withRestTied:!0}),this.sheetDocument.getTokenMap())}this.sheetDocument.updateMatchedTokens(this.matchedIds),this.bakingSheet&&this.bakeSheet()},async exportScore(){console.assert(this.sheetDocument,"sheetDocument is null."),console.assert(this.pitchContextGroup,"pitchContextGroup is null."),console.assert(this.midiNotation,"midiNotation is null."),await this.updateLilyDocument();const e=this.lilyDocument.globalAttributes({readonly:!0}),n=this.lilyDocument.interpret().midiMusic,r={title:e.title&&e.title.toString(),composer:e.composer&&e.composer.toString(),pageSize:this.sheetDocument.pageSize,pageCount:this.sheetDocument.pages.length,staffSize:e.staffSize,trackInfos:n&&n.trackContextDicts},i={version:A.version+" -playground",meta:r,doc:this.sheetDocument,hashTable:this.bakingSheet?null:this.svgHashTable,lilyNotation:this.lilyNotation},o=new Blob([JSON.stringify(i)],{type:"application/json"}),{default:a}=await t.e("chunk-48b5b2a0").then(t.t.bind(null,"c4e3",7)),s=new a;s.file("score.json",o),this.bakingSheet&&this.bakingImages&&await Promise.all(this.bakingImages.map(async(e,n)=>{const t=await(await fetch(e)).blob();s.file(`baking${n}.png`,t),console.log("img:",t)}));const c=await s.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:5}});Object(l["a"])(URL.createObjectURL(c),(this.title||"")+".zip")},async updateLilyDocument(){if((!this.lilyDocument||this.lilyDocumentDirty)&&this.lilyParser){const e=await this.lilyParser.parse(this.lilySource);this.lilyDocument=new y["a"](e);const n=this.lilyDocument.globalAttributes({readonly:!0}).title;this.title=n&&n.toString(),this.lilyDocumentDirty=!1}},updateLilyTextSource(){this.lilyTextSourceDirty&&(this.lilyTextSource=new w["a"](this.lilySource),this.lilyTextSourceDirty=!1)},markupLilyDocument(e){e.formalize();const n=e.globalAttributes();this.lilyMarkups.staffSize&&(n.staffSize.value=this.lilyMarkups.staffSize),this.lilyMarkups.autoPaperSize&&(n.paperWidth.value.set({number:this.autoPageSize.width/b["a"],unit:"\\cm"}),n.paperHeight.value.set({number:this.autoPageSize.height/b["a"],unit:"\\cm"})),this.lilyMarkups.systemSpacing>=0&&(n.systemSpacing.value=this.lilyMarkups.systemSpacing),this.lilyMarkups.topMarkupSpacing>=0&&(n.topMarkupSpacing.value=this.lilyMarkups.topMarkupSpacing),"boolean"===typeof this.lilyMarkups.raggedLast&&(n.raggedLast.value=this.lilyMarkups.raggedLast)},async markupSource(){await this.updateLilyDocument(),console.assert(this.lilyDocument,"lilyDocument is null."),this.markupLilyDocument(this.lilyDocument),this.lilySource=this.lilyDocument.toString(),await this.$nextTick(),this.engraverLogs=null},async postProcessSource(e){const n=new y["a"](await this.lilyParser.parse(e));return this.xml2lyOptions.removeStaffGroup&&n.removeStaffGroup(),this.xml2lyOptions.mergeContinuousGraces&&n.mergeContinuousGraces(),this.xml2lyOptions.excludeChordTracksFromMIDI&&n.excludeChordTracksFromMIDI(),this.xml2lyOptions.midiChannelMapping&&n.useMidiInstrumentChannelMapping(),n.toString()},removeTrillSpans(){return this.executeMarkup("removeTrillSpans")},async exportMarkupLily(){const e=new y["a"](await this.lilyParser.parse('\\version "2.20.0"'));this.markupLilyDocument(e);const n=new Blob([e.toString()]);return Object(l["a"])(URL.createObjectURL(n),"markup.ly")},async bakeSheet(){console.assert(this.svgDocuments,"svgDocuments is null."),console.assert(this.matchedIds,"matchedIds is null."),this.bakingImages=await x["b"](this.svgDocuments,this.matchedIds,this.$refs.canvas)},async inspectLily(){await this.updateLilyDocument(),this.updateLilyTextSource(),console.log(this.lilyDocument)},showEngraverLog(){console.log(this.engraverLogs)},async executeMarkup(e){await this.updateLilyDocument(),this.lilyDocument||console.log("lilyDocument parsing failed."),this.lilyDocument[e]||console.warn("Markup function not found:",e,this.lilyDocument),this.lilyDocument[e](),this.lilySource=this.lilyDocument.toString()},async unfoldRepeats(){this.operating=!0;try{if(await this.updateLilyDocument(),!this.lilyDocument)throw new Error("lilyDocument is null.");this.lilyDocument.unfoldRepeats(),this.lilySource=this.lilyDocument.toString(),await this.engrave(),this.lilySource=Object(y["e"])(this.lilySource,"\\unfoldRepeats"),this.engraving=!0;const e=new FormData;e.append("source",this.lilySource),this.engraveWithLogs&&e.append("log",this.engraveWithLogs),e.append("tokenize",!0);const n=await fetch("/engrave",{method:"POST",body:e});if(!n.ok){const e=await n.text();throw new Error(e)}{const e=await n.json();this.engraverLogs=e.logs,this.svgDocuments=e.svgs,this.sheetDocument=Object(u["b"])(e.doc,{StaffToken:f["a"],SheetDocument:h["e"]}),this.svgHashTable=e.hashTable,this.sheetDocument.updateMatchedTokens(this.matchedIds),this.$refs.sheet.preparePlayer()}}catch(e){console.warn("unfoldRepeats failed:",e)}this.engraverDirty=!1,this.engraving=!1,this.operating=!1},async redivideLilyDocument({reconstruct:e=!1}={}){await this.updateLilyDocument();const n=this.lilyDocument.interpret({useCached:!1});e?(n.layoutMusic.musicTracks.forEach(e=>e.redivide()),this.lilyDocument=n.toDocument(),this.lilySource=this.lilyDocument.toString()):(this.lilyDocument.root.forEachTopTerm(y["b"].Assignment,e=>{if(e.value&&"object"===typeof e.value&&e.value.isMusic){const t=e.key.toString(),r=n.layoutMusic.musicTracks.find(e=>e.contextDict.Voice===t),i=e.value.findFirst(y["b"].MusicBlock);i.redivide({measureHeads:r.measureHeads})}}),this.lilySource=this.lilyDocument.toString())},async sliceMeasures(e,n){await this.updateLilyDocument();const t=this.lilyDocument.interpret({useCached:!1});t.sliceMeasures(e,n),this.lilyDocument=t.toDocument(),this.lilySource=this.lilyDocument.toString()},async createPianoRhythm(e){await this.updateLilyDocument();const n=this.lilyDocument.interpret({useCached:!1});Object(y["c"])(n,e),this.lilyDocument=n.toDocument(),this.lilySource=this.lilyDocument.toString(),await this.$nextTick(),this.lilyDocumentDirty=!1},async testInterpreter({flatten:e=!1}={}){await this.updateLilyDocument();const n=this.lilyDocument.interpret({useCached:!1}),t=n.getNotation();e&&n.layoutMusic.musicTracks.forEach(e=>e.flatten({spreadRepeats:!0}));const r=n.toDocument();console.log("INTERPRETER:",n),console.log("DOC:",r),console.log("NOTATION:",t)},onSourceDirPick(e){this.sourceEditorFilePath=e,this.$nextTick(()=>{this.$refs.remoteFile&&this.$refs.remoteFile.connect()})},highlightSourcePosition(e){if(this.updateLilyTextSource(),e.length>=2){const n=this.$el.querySelector(".prism-editor__textarea");if(!n)return void console.warn(".prism-editor__textarea is not found.");const t=this.lilyTextSource.positionToChars([e[0],e[1]]),r=e.length>=3?this.lilyTextSource.positionToChars([e[0],e[2]]):t;n.setSelectionRange(t,r),n.focus();const i=this.$el.querySelector(".prism-editor-wrapper"),o={left:9.7*e[1],right:9.7*((e[2]||e[1])+2),top:19*(e[0]-1),bottom:19*(e[0]+2)};i.scrollLeft=Math.max(o.right+50-i.clientWidth,i.scrollLeft),i.scrollLeft=Math.min(o.left,i.scrollLeft),i.scrollTop=Math.max(o.bottom-i.clientHeight,i.scrollTop),i.scrollTop=Math.min(o.top,i.scrollTop)}},onSheetLink(e,n){e.preventDefault();const t=n.match(/\d+/g);t&&this.highlightSourcePosition(t.map(Number))},onClickToken(e,n){if(n.ctrlKey&&e.href){const n=e.href.match(/\d+/g);n&&this.highlightSourcePosition(n.map(Number))}else console.log("token:",e)},onClickMatcherNote(e){if(console.log("matcher note:",{...e}),e.id){const n=e.id.match(/\d+/g);n&&this.highlightSourcePosition(n.map(Number))}},async updateMeasureLayoutCode(){await this.updateLilyDocument(),this.measureLayoutCode=this.lilyDocument.interpret().layoutMusic.measureLayoutCode,this.measureLayoutCodeDirty=!1},async validateMeasureLayoutCode(){if(this.measureLayoutCodeError=null,this.measureLayoutCode)try{await this.measuresParser.parse(this.measureLayoutCode)}catch(e){this.measureLayoutCodeError=e}},async applyUpdateMeasureLayoutCode(){if(this.measureLayoutCode)try{const e=await this.measuresParser.parse(this.measureLayoutCode),n=Object(u["b"])(e.data,S);await this.updateLilyDocument(),this.lilyDocument.interpret(),this.applyMeasureLayout(n),this.measureLayoutCodeDirty=!1}catch(e){this.measureLayoutCodeError=e,console.error(e)}},applyMeasureLayout(e){const n=this.lilyDocument.root.sections.filter(e=>e instanceof y["b"].Assignment&&e.value instanceof y["b"].Relative&&e.value.measureLayout).map(e=>e.value.args).map(e=>v["a"].fromBlockAnchor(e[1],e[0]));n.forEach(n=>n.applyMeasureLayout(e)),this.lilySource=this.lilyDocument.toString()},async flattenTracks(){await this.updateLilyDocument(),this.lilyDocument.interpret();const e=this.lilyDocument.root.sections.filter(e=>e instanceof y["b"].Assignment&&e.value instanceof y["b"].Relative&&e.value.measureLayout).map(e=>e.value.args).map(e=>v["a"].fromBlockAnchor(e[1],e[0]));e.forEach(e=>e.flatten({spreadRepeats:!0})),this.lilySource=this.lilyDocument.toString()},async mergeSingleVoltaMLayout(){await this.updateLilyDocument();const e=this.lilyDocument.interpret(),n=e.layoutMusic.mainTrack.block.measureLayout;let t=1;for(;te.tokens));return n.reduce((e,n)=>!e||n.ye.tokens));return n.reduce((e,n)=>!e||n.y>e.y?n:e,null)}},watch:{lilySource(){this.engraverDirty=!0,this.lilyDocumentDirty=!0,this.lilyTextSourceDirty=!0,this.engraverLogs=null,this.measureLayoutCode=null,this.measureLayoutCodeError=null,this.sourceEditorConnected||(this.sourceEditorFilePath=null)},markupValueHash(){this.lilyParser&&this.lilyMarkups.enabled&&this.markupSource()},engraverDirty(e){e&&this.autoEngrave&&Object(c["b"])("autoEngrave",5e3).then(e=>!e||this.watchEngrave())},autoEngrave:"watchEngrave",tokenizeStaff(e){e&&this.lilySource&&!this.sheetDocument&&(this.engraverDirty=!0)},bakingSheet(e){e?this.svgDocuments&&this.matchedIds&&this.bakeSheet():this.bakingImages=null}}},Ce=Ee,Be=(t("b3e0"),Object(P["a"])(Ce,r,i,!1,null,null,null));n["default"]=Be.exports},"1e74":function(e,n,t){var r=t("24fb");n=r(!1),n.push([e.i,".note[data-v-a15b0344]{cursor:pointer;opacity:.6}.note[data-v-a15b0344]:hover{opacity:.9;stroke:orange;stroke-width:.08px}.note.on[data-v-a15b0344]{fill:#2a2}.note rect[data-v-a15b0344]{fill:#555}.note line[data-v-a15b0344]{stroke:#111;stroke-width:.12px}",""]),e.exports=n},2447:function(e,n,t){"use strict";t("7579")},"28b4":function(e,n,t){var r=t("24fb");n=r(!1),n.push([e.i,"dialog[data-v-2ce9a878]{position:fixed;top:0;height:100%;left:0;width:100%;background-color:hsla(0,0%,80%,.6666666666666666);cursor:pointer;margin:0;padding:0;border:0}dialog main[data-v-2ce9a878]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fff;border-radius:2em;cursor:default;text-align:center;padding:2em}",""]),e.exports=n},"2ad6":function(e,n,t){"use strict";var r,i;(function(o,a){r=a,i="function"===typeof r?r.call(n,t,n,e):r,void 0===i||(e.exports=i)})("undefined"!==typeof window&&window,(function(){if("undefined"===typeof window)return null;var e="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),n=e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||function(n){return e.setTimeout(n,20)},t=e.cancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelAnimationFrame||function(n){e.clearTimeout(n)};function r(e,n){var t=Object.prototype.toString.call(e),r="[object Array]"===t||"[object NodeList]"===t||"[object HTMLCollection]"===t||"[object Object]"===t||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements,i=0,o=e.length;if(r)for(;i0?r:t)(e)}},function(e,n,t){var r=t(23),i=t(6);e.exports=function(e){return r(i(e))}},function(e,n,t){var r,i,o;!function(t,a){i=[],r=a,o="function"==typeof r?r.apply(n,i):r,void 0===o||(e.exports=o)}(0,(function(){"use strict";Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(e){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),t=n.length>>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var r=arguments[1],i=0;iu;)if(s=l[u++],s!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===t)return e||u||0;return!e&&-1}}},function(e,n){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},function(e,n,t){var r=t(12);e.exports=function(e,n,t){if(r(e),void 0===n)return e;switch(t){case 1:return function(t){return e.call(n,t)};case 2:return function(t,r){return e.call(n,t,r)};case 3:return function(t,r,i){return e.call(n,t,r,i)}}return function(){return e.apply(n,arguments)}}},function(e,n,t){var r=t(5),i=t(4).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,n){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,n,t){var r=t(4),i=t(1),o=t(16),a=t(21),s="prototype",l=function(e,n,t){var c,u,f,h=e&l.F,d=e&l.G,p=e&l.S,m=e&l.P,g=e&l.B,y=e&l.W,v=d?i:i[n]||(i[n]={}),b=v[s],w=d?r:p?r[n]:(r[n]||{})[s];for(c in d&&(t=n),t)u=!h&&w&&void 0!==w[c],u&&c in v||(f=u?w[c]:t[c],v[c]=d&&"function"!=typeof w[c]?t[c]:g&&u?o(f,r):y&&w[c]==f?function(e){var n=function(n,t,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(n);case 2:return new e(n,t)}return new e(n,t,r)}return e.apply(this,arguments)};return n[s]=e[s],n}(f):m&&"function"==typeof f?o(Function.call,f):f,m&&((v.virtual||(v.virtual={}))[c]=f,e&l.R&&b&&!b[c]&&a(b,c,f)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,n){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},function(e,n,t){var r=t(24),i=t(28);e.exports=t(2)?function(e,n,t){return r.f(e,n,i(1,t))}:function(e,n,t){return e[n]=t,e}},function(e,n,t){e.exports=!t(2)&&!t(3)((function(){return 7!=Object.defineProperty(t(17)("div"),"a",{get:function(){return 7}}).a}))},function(e,n,t){var r=t(15);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,n,t){var r=t(13),i=t(22),o=t(34),a=Object.defineProperty;n.f=t(2)?Object.defineProperty:function(e,n,t){if(r(e),n=o(n,!0),r(t),i)try{return a(e,n,t)}catch(e){}if("get"in t||"set"in t)throw TypeError("Accessors not supported!");return"value"in t&&(e[n]=t.value),e}},function(e,n,t){var r=t(20),i=t(8),o=t(14)(!1),a=t(29)("IE_PROTO");e.exports=function(e,n){var t,s=i(e),l=0,c=[];for(t in s)t!=a&&r(s,t)&&c.push(t);for(;n.length>l;)r(s,t=n[l++])&&(~o(c,t)||c.push(t));return c}},function(e,n,t){var r=t(25),i=t(18);e.exports=Object.keys||function(e){return r(e,i)}},function(e,n,t){var r=t(19),i=t(1),o=t(3);e.exports=function(e,n){var t=(i.Object||{})[e]||Object[e],a={};a[e]=n(t),r(r.S+r.F*o((function(){t(1)})),"Object",a)}},function(e,n){e.exports=function(e,n){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:n}}},function(e,n,t){var r=t(30)("keys"),i=t(35);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,n,t){var r=t(4),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,n,t){var r=t(7),i=Math.max,o=Math.min;e.exports=function(e,n){return e=r(e),e<0?i(e+n,0):o(e,n)}},function(e,n,t){var r=t(7),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,n,t){var r=t(6);e.exports=function(e){return Object(r(e))}},function(e,n,t){var r=t(5);e.exports=function(e,n){if(!r(e))return e;var t,i;if(n&&"function"==typeof(t=e.toString)&&!r(i=t.call(e)))return i;if("function"==typeof(t=e.valueOf)&&!r(i=t.call(e)))return i;if(!n&&"function"==typeof(t=e.toString)&&!r(i=t.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,n){var t=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+r).toString(36))}},function(e,n,t){var r=t(33),i=t(26);t(27)("keys",(function(){return function(e){return i(r(e))}}))},function(e,n){!function(e,n){"use strict";function t(e){this.time=e.time,this.target=e.target,this.rootBounds=e.rootBounds,this.boundingClientRect=e.boundingClientRect,this.intersectionRect=e.intersectionRect||u(),this.isIntersecting=!!e.intersectionRect;var n=this.boundingClientRect,t=n.width*n.height,r=this.intersectionRect,i=r.width*r.height;this.intersectionRatio=t?i/t:this.isIntersecting?1:0}function r(e,n){var t=n||{};if("function"!=typeof e)throw new Error("callback must be a function");if(t.root&&1!=t.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=o(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=e,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(t.rootMargin),this.thresholds=this._initThresholds(t.threshold),this.root=t.root||null,this.rootMargin=this._rootMarginValues.map((function(e){return e.value+e.unit})).join(" ")}function i(){return e.performance&&performance.now&&performance.now()}function o(e,n){var t=null;return function(){t||(t=setTimeout((function(){e(),t=null}),n))}}function a(e,n,t,r){"function"==typeof e.addEventListener?e.addEventListener(n,t,r||!1):"function"==typeof e.attachEvent&&e.attachEvent("on"+n,t)}function s(e,n,t,r){"function"==typeof e.removeEventListener?e.removeEventListener(n,t,r||!1):"function"==typeof e.detatchEvent&&e.detatchEvent("on"+n,t)}function l(e,n){var t=Math.max(e.top,n.top),r=Math.min(e.bottom,n.bottom),i=Math.max(e.left,n.left),o=Math.min(e.right,n.right),a=o-i,s=r-t;return a>=0&&s>=0&&{top:t,bottom:r,left:i,right:o,width:a,height:s}}function c(e){var n;try{n=e.getBoundingClientRect()}catch(e){}return n?(n.width&&n.height||(n={top:n.top,right:n.right,bottom:n.bottom,left:n.left,width:n.right-n.left,height:n.bottom-n.top}),n):u()}function u(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function f(e,n){for(var t=n;t;){if(t==e)return!0;t=h(t)}return!1}function h(e){var n=e.parentNode;return n&&11==n.nodeType&&n.host?n.host:n}if("IntersectionObserver"in e&&"IntersectionObserverEntry"in e&&"intersectionRatio"in e.IntersectionObserverEntry.prototype)"isIntersecting"in e.IntersectionObserverEntry.prototype||Object.defineProperty(e.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var d=[];r.prototype.THROTTLE_TIMEOUT=100,r.prototype.POLL_INTERVAL=null,r.prototype.USE_MUTATION_OBSERVER=!0,r.prototype.observe=function(e){var n=this._observationTargets.some((function(n){return n.element==e}));if(!n){if(!e||1!=e.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:e,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},r.prototype.unobserve=function(e){this._observationTargets=this._observationTargets.filter((function(n){return n.element!=e})),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},r.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},r.prototype.takeRecords=function(){var e=this._queuedEntries.slice();return this._queuedEntries=[],e},r.prototype._initThresholds=function(e){var n=e||[0];return Array.isArray(n)||(n=[n]),n.sort().filter((function(e,n,t){if("number"!=typeof e||isNaN(e)||e<0||e>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return e!==t[n-1]}))},r.prototype._parseRootMargin=function(e){var n=e||"0px",t=n.split(/\s+/).map((function(e){var n=/^(-?\d*\.?\d+)(px|%)$/.exec(e);if(!n)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(n[1]),unit:n[2]}}));return t[1]=t[1]||t[0],t[2]=t[2]||t[0],t[3]=t[3]||t[1],t},r.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(a(e,"resize",this._checkForIntersections,!0),a(n,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in e&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(n,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},r.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,s(e,"resize",this._checkForIntersections,!0),s(n,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},r.prototype._checkForIntersections=function(){var e=this._rootIsInDom(),n=e?this._getRootRect():u();this._observationTargets.forEach((function(r){var o=r.element,a=c(o),s=this._rootContainsTarget(o),l=r.entry,u=e&&s&&this._computeTargetAndRootIntersection(o,n),f=r.entry=new t({time:i(),target:o,boundingClientRect:a,rootBounds:n,intersectionRect:u});l?e&&s?this._hasCrossedThreshold(l,f)&&this._queuedEntries.push(f):l&&l.isIntersecting&&this._queuedEntries.push(f):this._queuedEntries.push(f)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},r.prototype._computeTargetAndRootIntersection=function(t,r){if("none"!=e.getComputedStyle(t).display){for(var i=c(t),o=i,a=h(t),s=!1;!s;){var u=null,f=1==a.nodeType?e.getComputedStyle(a):{};if("none"==f.display)return;if(a==this.root||a==n?(s=!0,u=r):a!=n.body&&a!=n.documentElement&&"visible"!=f.overflow&&(u=c(a)),u&&(o=l(u,o),!o))break;a=h(a)}return o}},r.prototype._getRootRect=function(){var e;if(this.root)e=c(this.root);else{var t=n.documentElement,r=n.body;e={top:0,left:0,right:t.clientWidth||r.clientWidth,width:t.clientWidth||r.clientWidth,bottom:t.clientHeight||r.clientHeight,height:t.clientHeight||r.clientHeight}}return this._expandRectByRootMargin(e)},r.prototype._expandRectByRootMargin=function(e){var n=this._rootMarginValues.map((function(n,t){return"px"==n.unit?n.value:n.value*(t%2?e.width:e.height)/100})),t={top:e.top-n[0],right:e.right+n[1],bottom:e.bottom+n[2],left:e.left-n[3]};return t.width=t.right-t.left,t.height=t.bottom-t.top,t},r.prototype._hasCrossedThreshold=function(e,n){var t=e&&e.isIntersecting?e.intersectionRatio||0:-1,r=n.isIntersecting?n.intersectionRatio||0:-1;if(t!==r)for(var i=0;i 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n//# sourceURL=webpack://LIB/./node_modules/base64-js/index.js?")},"./node_modules/buffer/index.js": +/*!**************************************!*\ + !*** ./node_modules/buffer/index.js ***! + \**************************************/ +/*! no static exports found */function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://LIB/./node_modules/buffer/index.js?")},"./node_modules/charenc/charenc.js": +/*!*****************************************!*\ + !*** ./node_modules/charenc/charenc.js ***! + \*****************************************/ +/*! no static exports found */function(module,exports){eval("var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n\n\n//# sourceURL=webpack://LIB/./node_modules/charenc/charenc.js?")},"./node_modules/crypt/crypt.js": +/*!*************************************!*\ + !*** ./node_modules/crypt/crypt.js ***! + \*************************************/ +/*! no static exports found */function(module,exports){eval("(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n\n\n//# sourceURL=webpack://LIB/./node_modules/crypt/crypt.js?")},"./node_modules/diff/dist/diff.js": +/*!****************************************!*\ + !*** ./node_modules/diff/dist/diff.js ***! + \****************************************/ +/*! no static exports found */function(module,exports,__webpack_require__){eval("/*!\n\n diff v4.0.1\n\nSoftware License Agreement (BSD License)\n\nCopyright (c) 2009-2015, Kevin Decker \n\nAll rights reserved.\n\nRedistribution and use of this software in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above\n copyright notice, this list of conditions and the\n following disclaimer.\n\n* Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the\n following disclaimer in the documentation and/or other\n materials provided with the distribution.\n\n* Neither the name of Kevin Decker nor the names of its\n contributors may be used to endorse or promote products\n derived from this software without specific prior\n written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\nIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\nOF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n@license\n*/\n(function (global, factory) {\n true ? factory(exports) :\n undefined;\n}(this, function (exports) { 'use strict';\n\n function Diff() {}\n Diff.prototype = {\n diff: function diff(oldString, newString) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = options.callback;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = options;\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n } // Allow subclasses to massage the input prior to running\n\n\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{\n value: this.join(newString),\n count: newString.length\n }]);\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath = void 0;\n\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced.\n\n\n if (callback) {\n (function exec() {\n setTimeout(function () {\n // This should not happen, but we want to be safe.\n\n /* istanbul ignore next */\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n }\n },\n pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n equals: function equals(left, right) {\n if (this.options.comparator) {\n return this.options.comparator(left, right);\n } else {\n return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n removeEmpty: function removeEmpty(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n\n return ret;\n },\n castInput: function castInput(value) {\n return value;\n },\n tokenize: function tokenize(value) {\n return value.split('');\n },\n join: function join(chars) {\n return chars.join('');\n }\n };\n\n function buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = diff.join(value);\n } else {\n component.value = diff.join(newString.slice(newPos, newPos + component.count));\n }\n\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n } // Special case handle for when one terminal is ignored (i.e. whitespace).\n // For this case we merge the terminal into the prior string and drop the change.\n // This is only available for string mode.\n\n\n var lastComponent = components[componentLen - 1];\n\n if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n }\n\n function clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n }\n\n var characterDiff = new Diff();\n function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n }\n\n function generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n\n return defaults;\n }\n\n //\n // Ranges and exceptions:\n // Latin-1 Supplement, 0080–00FF\n // - U+00D7 × Multiplication sign\n // - U+00F7 ÷ Division sign\n // Latin Extended-A, 0100–017F\n // Latin Extended-B, 0180–024F\n // IPA Extensions, 0250–02AF\n // Spacing Modifier Letters, 02B0–02FF\n // - U+02C7 ˇ ˇ Caron\n // - U+02D8 ˘ ˘ Breve\n // - U+02D9 ˙ ˙ Dot Above\n // - U+02DA ˚ ˚ Ring Above\n // - U+02DB ˛ ˛ Ogonek\n // - U+02DC ˜ ˜ Small Tilde\n // - U+02DD ˝ ˝ Double Acute Accent\n // Latin Extended Additional, 1E00–1EFF\n\n var extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\n var reWhitespace = /\\S/;\n var wordDiff = new Diff();\n\n wordDiff.equals = function (left, right) {\n if (this.options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n };\n\n wordDiff.tokenize = function (value) {\n var tokens = value.split(/(\\s+|[()[\\]{}'\"]|\\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n };\n\n function diffWords(oldStr, newStr, options) {\n options = generateOptions(options, {\n ignoreWhitespace: true\n });\n return wordDiff.diff(oldStr, newStr, options);\n }\n function diffWordsWithSpace(oldStr, newStr, options) {\n return wordDiff.diff(oldStr, newStr, options);\n }\n\n var lineDiff = new Diff();\n\n lineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/); // Ignore the final empty token that occurs if the string ends with a new line\n\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n } // Merge the content and line separators into single tokens\n\n\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n\n retLines.push(line);\n }\n }\n\n return retLines;\n };\n\n function diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n }\n function diffTrimmedLines(oldStr, newStr, callback) {\n var options = generateOptions(callback, {\n ignoreWhitespace: true\n });\n return lineDiff.diff(oldStr, newStr, options);\n }\n\n var sentenceDiff = new Diff();\n\n sentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n };\n\n function diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n }\n\n var cssDiff = new Diff();\n\n cssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n };\n\n function diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n }\n\n function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }\n\n var objectPrototypeToString = Object.prototype.toString;\n var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n\n jsonDiff.useLongestToken = true;\n jsonDiff.tokenize = lineDiff.tokenize;\n\n jsonDiff.castInput = function (value) {\n var _this$options = this.options,\n undefinedReplacement = _this$options.undefinedReplacement,\n _this$options$stringi = _this$options.stringifyReplacer,\n stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {\n return typeof v === 'undefined' ? undefinedReplacement : v;\n } : _this$options$stringi;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');\n };\n\n jsonDiff.equals = function (left, right) {\n return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'));\n };\n\n function diffJson(oldObj, newObj, options) {\n return jsonDiff.diff(oldObj, newObj, options);\n } // This function handles the presence of circular references by bailing out when encountering an\n // object that is already on the \"stack\" of items being processed. Accepts an optional replacer\n\n function canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n if (replacer) {\n obj = replacer(key, obj);\n }\n\n var i;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n }\n\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if (_typeof(obj) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n\n var sortedKeys = [],\n _key;\n\n for (_key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(_key)) {\n sortedKeys.push(_key);\n }\n }\n\n sortedKeys.sort();\n\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);\n }\n\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n\n return canonicalizedObj;\n }\n\n var arrayDiff = new Diff();\n\n arrayDiff.tokenize = function (value) {\n return value.slice();\n };\n\n arrayDiff.join = arrayDiff.removeEmpty = function (value) {\n return value;\n };\n\n function diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n }\n\n function parsePatch(uniDiff) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var diffstr = uniDiff.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = uniDiff.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index); // Parse diff metadata\n\n while (i < diffstr.length) {\n var line = diffstr[i]; // File header found, end parsing diff metadata\n\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n } // Diff index\n\n\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n\n if (header) {\n index.index = header[1];\n }\n\n i++;\n } // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n\n\n parseFileHeader(index);\n parseFileHeader(index); // Parse hunks\n\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n } // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n\n\n function parseFileHeader(index) {\n var fileHeader = /^(---|\\+\\+\\+)\\s+(.*)$/.exec(diffstr[i]);\n\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n var data = fileHeader[2].split('\\t', 2);\n var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n\n if (/^\".*\"$/.test(fileName)) {\n fileName = fileName.substr(1, fileName.length - 2);\n }\n\n index[keyPrefix + 'FileName'] = fileName;\n index[keyPrefix + 'Header'] = (data[1] || '').trim();\n i++;\n }\n } // Parses a hunk\n // This assumes that we are at the start of a hunk.\n\n\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: +chunkHeader[2] || 1,\n newStart: +chunkHeader[3],\n newLines: +chunkHeader[4] || 1,\n lines: [],\n linedelimiters: []\n };\n var addCount = 0,\n removeCount = 0;\n\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n\n var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n hunk.linedelimiters.push(delimiters[i] || '\\n');\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n } // Handle the empty block count case\n\n\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n } // Perform optional sanity checking\n\n\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n }\n\n // Iterator that traverses in the range of [min, max], stepping\n // by distance from a given start position. I.e. for [0, 4], with\n // start of 2, this will iterate 2, 3, 1, 4, 0.\n function distanceIterator (start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n } // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n\n\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n } // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n\n\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n } // We tried to fit hunk before text beginning and beyond text length, then\n // hunk can't fit on the text. Return undefined\n\n };\n }\n\n function applyPatch(source, uniDiff) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n } // Apply the diff to the input\n\n\n var lines = source.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = source.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {\n return line === patchContent;\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL,\n addEOFNL;\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n\n\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line;\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n\n toPos++;\n }\n }\n\n return true;\n } // Search best fit offsets for each hunk based on the previous ones\n\n\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n var iterator = distanceIterator(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n } // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n\n\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n } // Apply patch hunks\n\n\n var diffOffset = 0;\n\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;\n\n diffOffset += _hunk.newLines - _hunk.oldLines;\n\n if (_toPos < 0) {\n // Creating a new file\n _toPos = 0;\n }\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line,\n delimiter = _hunk.linedelimiters[j];\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n delimiters.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n delimiters.splice(_toPos, 0, delimiter);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n } // Handle EOFNL insertion/removal\n\n\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n delimiters.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n delimiters.push('\\n');\n }\n\n for (var _k = 0; _k < lines.length - 1; _k++) {\n lines[_k] = lines[_k] + delimiters[_k];\n }\n\n return lines.join('');\n } // Wrapper that supports multiple file patches via callbacks.\n\n function applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n var currentIndex = 0;\n\n function processIndex() {\n var index = uniDiff[currentIndex++];\n\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n\n processIndex();\n }\n\n function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.context === 'undefined') {\n options.context = 4;\n }\n\n var diff = diffLines(oldStr, newStr, options);\n diff.push({\n value: '',\n lines: []\n }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n\n var _loop = function _loop(i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n var _curRange;\n\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n } // Output our changes\n\n\n (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n }))); // Track the updated file position\n\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n var _curRange2;\n\n // Overlapping\n (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));\n } else {\n var _curRange3;\n\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n\n (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;\n\n if (!oldEOFNewline && noNlBeforeAdds) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n }\n\n if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n _loop(i);\n }\n\n return {\n oldFileName: oldFileName,\n newFileName: newFileName,\n oldHeader: oldHeader,\n newHeader: newHeader,\n hunks: hunks\n };\n }\n function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n var ret = [];\n\n if (oldFileName == newFileName) {\n ret.push('Index: ' + oldFileName);\n }\n\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i];\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n }\n function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n }\n\n function arrayEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n return arrayStartsWith(a, b);\n }\n function arrayStartsWith(array, start) {\n if (start.length > array.length) {\n return false;\n }\n\n for (var i = 0; i < start.length; i++) {\n if (start[i] !== array[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function calcLineCount(hunk) {\n var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),\n oldLines = _calcOldNewLineCount.oldLines,\n newLines = _calcOldNewLineCount.newLines;\n\n if (oldLines !== undefined) {\n hunk.oldLines = oldLines;\n } else {\n delete hunk.oldLines;\n }\n\n if (newLines !== undefined) {\n hunk.newLines = newLines;\n } else {\n delete hunk.newLines;\n }\n }\n function merge(mine, theirs, base) {\n mine = loadPatch(mine, base);\n theirs = loadPatch(theirs, base);\n var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.\n // Leaving sanity checks on this to the API consumer that may know more about the\n // meaning in their own context.\n\n if (mine.index || theirs.index) {\n ret.index = mine.index || theirs.index;\n }\n\n if (mine.newFileName || theirs.newFileName) {\n if (!fileNameChanged(mine)) {\n // No header or no change in ours, use theirs (and ours if theirs does not exist)\n ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n ret.newFileName = theirs.newFileName || mine.newFileName;\n ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n ret.newHeader = theirs.newHeader || mine.newHeader;\n } else if (!fileNameChanged(theirs)) {\n // No header or no change in theirs, use ours\n ret.oldFileName = mine.oldFileName;\n ret.newFileName = mine.newFileName;\n ret.oldHeader = mine.oldHeader;\n ret.newHeader = mine.newHeader;\n } else {\n // Both changed... figure it out\n ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n }\n }\n\n ret.hunks = [];\n var mineIndex = 0,\n theirsIndex = 0,\n mineOffset = 0,\n theirsOffset = 0;\n\n while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n var mineCurrent = mine.hunks[mineIndex] || {\n oldStart: Infinity\n },\n theirsCurrent = theirs.hunks[theirsIndex] || {\n oldStart: Infinity\n };\n\n if (hunkBefore(mineCurrent, theirsCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n mineIndex++;\n theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n theirsIndex++;\n mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n } else {\n // Overlap, merge as best we can\n var mergedHunk = {\n oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n oldLines: 0,\n newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n newLines: 0,\n lines: []\n };\n mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n theirsIndex++;\n mineIndex++;\n ret.hunks.push(mergedHunk);\n }\n }\n\n return ret;\n }\n\n function loadPatch(param, base) {\n if (typeof param === 'string') {\n if (/^@@/m.test(param) || /^Index:/m.test(param)) {\n return parsePatch(param)[0];\n }\n\n if (!base) {\n throw new Error('Must provide a base reference or pass in a patch');\n }\n\n return structuredPatch(undefined, undefined, base, param);\n }\n\n return param;\n }\n\n function fileNameChanged(patch) {\n return patch.newFileName && patch.newFileName !== patch.oldFileName;\n }\n\n function selectField(index, mine, theirs) {\n if (mine === theirs) {\n return mine;\n } else {\n index.conflict = true;\n return {\n mine: mine,\n theirs: theirs\n };\n }\n }\n\n function hunkBefore(test, check) {\n return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;\n }\n\n function cloneHunk(hunk, offset) {\n return {\n oldStart: hunk.oldStart,\n oldLines: hunk.oldLines,\n newStart: hunk.newStart + offset,\n newLines: hunk.newLines,\n lines: hunk.lines\n };\n }\n\n function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n // This will generally result in a conflicted hunk, but there are cases where the context\n // is the only overlap where we can successfully merge the content here.\n var mine = {\n offset: mineOffset,\n lines: mineLines,\n index: 0\n },\n their = {\n offset: theirOffset,\n lines: theirLines,\n index: 0\n }; // Handle any leading content\n\n insertLeading(hunk, mine, their);\n insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.\n\n while (mine.index < mine.lines.length && their.index < their.lines.length) {\n var mineCurrent = mine.lines[mine.index],\n theirCurrent = their.lines[their.index];\n\n if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n // Both modified ...\n mutualChange(hunk, mine, their);\n } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n var _hunk$lines;\n\n // Mine inserted\n (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));\n } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n var _hunk$lines2;\n\n // Theirs inserted\n (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));\n } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n // Mine removed or edited\n removal(hunk, mine, their);\n } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n // Their removed or edited\n removal(hunk, their, mine, true);\n } else if (mineCurrent === theirCurrent) {\n // Context identity\n hunk.lines.push(mineCurrent);\n mine.index++;\n their.index++;\n } else {\n // Context mismatch\n conflict(hunk, collectChange(mine), collectChange(their));\n }\n } // Now push anything that may be remaining\n\n\n insertTrailing(hunk, mine);\n insertTrailing(hunk, their);\n calcLineCount(hunk);\n }\n\n function mutualChange(hunk, mine, their) {\n var myChanges = collectChange(mine),\n theirChanges = collectChange(their);\n\n if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n // Special case for remove changes that are supersets of one another\n if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n var _hunk$lines3;\n\n (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));\n\n return;\n } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n var _hunk$lines4;\n\n (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));\n\n return;\n }\n } else if (arrayEqual(myChanges, theirChanges)) {\n var _hunk$lines5;\n\n (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));\n\n return;\n }\n\n conflict(hunk, myChanges, theirChanges);\n }\n\n function removal(hunk, mine, their, swap) {\n var myChanges = collectChange(mine),\n theirChanges = collectContext(their, myChanges);\n\n if (theirChanges.merged) {\n var _hunk$lines6;\n\n (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));\n } else {\n conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n }\n }\n\n function conflict(hunk, mine, their) {\n hunk.conflict = true;\n hunk.lines.push({\n conflict: true,\n mine: mine,\n theirs: their\n });\n }\n\n function insertLeading(hunk, insert, their) {\n while (insert.offset < their.offset && insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n insert.offset++;\n }\n }\n\n function insertTrailing(hunk, insert) {\n while (insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n }\n }\n\n function collectChange(state) {\n var ret = [],\n operation = state.lines[state.index][0];\n\n while (state.index < state.lines.length) {\n var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n\n if (operation === '-' && line[0] === '+') {\n operation = '+';\n }\n\n if (operation === line[0]) {\n ret.push(line);\n state.index++;\n } else {\n break;\n }\n }\n\n return ret;\n }\n\n function collectContext(state, matchChanges) {\n var changes = [],\n merged = [],\n matchIndex = 0,\n contextChanges = false,\n conflicted = false;\n\n while (matchIndex < matchChanges.length && state.index < state.lines.length) {\n var change = state.lines[state.index],\n match = matchChanges[matchIndex]; // Once we've hit our add, then we are done\n\n if (match[0] === '+') {\n break;\n }\n\n contextChanges = contextChanges || change[0] !== ' ';\n merged.push(match);\n matchIndex++; // Consume any additions in the other block as a conflict to attempt\n // to pull in the remaining context after this\n\n if (change[0] === '+') {\n conflicted = true;\n\n while (change[0] === '+') {\n changes.push(change);\n change = state.lines[++state.index];\n }\n }\n\n if (match.substr(1) === change.substr(1)) {\n changes.push(change);\n state.index++;\n } else {\n conflicted = true;\n }\n }\n\n if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {\n conflicted = true;\n }\n\n if (conflicted) {\n return changes;\n }\n\n while (matchIndex < matchChanges.length) {\n merged.push(matchChanges[matchIndex++]);\n }\n\n return {\n merged: merged,\n changes: changes\n };\n }\n\n function allRemoves(changes) {\n return changes.reduce(function (prev, change) {\n return prev && change[0] === '-';\n }, true);\n }\n\n function skipRemoveSuperset(state, removeChanges, delta) {\n for (var i = 0; i < delta; i++) {\n var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n\n if (state.lines[state.index + i] !== ' ' + changeContent) {\n return false;\n }\n }\n\n state.index += delta;\n return true;\n }\n\n function calcOldNewLineCount(lines) {\n var oldLines = 0;\n var newLines = 0;\n lines.forEach(function (line) {\n if (typeof line !== 'string') {\n var myCount = calcOldNewLineCount(line.mine);\n var theirCount = calcOldNewLineCount(line.theirs);\n\n if (oldLines !== undefined) {\n if (myCount.oldLines === theirCount.oldLines) {\n oldLines += myCount.oldLines;\n } else {\n oldLines = undefined;\n }\n }\n\n if (newLines !== undefined) {\n if (myCount.newLines === theirCount.newLines) {\n newLines += myCount.newLines;\n } else {\n newLines = undefined;\n }\n }\n } else {\n if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n newLines++;\n }\n\n if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n oldLines++;\n }\n }\n });\n return {\n oldLines: oldLines,\n newLines: newLines\n };\n }\n\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\n function convertChangesToDMP(changes) {\n var ret = [],\n change,\n operation;\n\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n\n return ret;\n }\n\n function convertChangesToXML(changes) {\n var ret = [];\n\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n\n if (change.added) {\n ret.push('');\n } else if (change.removed) {\n ret.push('');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('');\n } else if (change.removed) {\n ret.push('');\n }\n }\n\n return ret.join('');\n }\n\n function escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&');\n n = n.replace(//g, '>');\n n = n.replace(/\"/g, '"');\n return n;\n }\n\n /* See LICENSE file for terms of use */\n\n exports.Diff = Diff;\n exports.diffChars = diffChars;\n exports.diffWords = diffWords;\n exports.diffWordsWithSpace = diffWordsWithSpace;\n exports.diffLines = diffLines;\n exports.diffTrimmedLines = diffTrimmedLines;\n exports.diffSentences = diffSentences;\n exports.diffCss = diffCss;\n exports.diffJson = diffJson;\n exports.diffArrays = diffArrays;\n exports.structuredPatch = structuredPatch;\n exports.createTwoFilesPatch = createTwoFilesPatch;\n exports.createPatch = createPatch;\n exports.applyPatch = applyPatch;\n exports.applyPatches = applyPatches;\n exports.parsePatch = parsePatch;\n exports.merge = merge;\n exports.convertChangesToDMP = convertChangesToDMP;\n exports.convertChangesToXML = convertChangesToXML;\n exports.canonicalize = canonicalize;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n\n\n//# sourceURL=webpack://LIB/./node_modules/diff/dist/diff.js?")},"./node_modules/events/events.js": +/*!***************************************!*\ + !*** ./node_modules/events/events.js ***! + \***************************************/ +/*! no static exports found */function(module,exports,__webpack_require__){eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n\n\n//# sourceURL=webpack://LIB/./node_modules/events/events.js?")},"./node_modules/ieee754/index.js": +/*!***************************************!*\ + !*** ./node_modules/ieee754/index.js ***! + \***************************************/ +/*! no static exports found */function(module,exports){eval("exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack://LIB/./node_modules/ieee754/index.js?")},"./node_modules/isarray/index.js": +/*!***************************************!*\ + !*** ./node_modules/isarray/index.js ***! + \***************************************/ +/*! no static exports found */function(module,exports){eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack://LIB/./node_modules/isarray/index.js?")},"./node_modules/sha1/sha1.js": +/*!***********************************!*\ + !*** ./node_modules/sha1/sha1.js ***! + \***********************************/ +/*! no static exports found */function(module,exports,__webpack_require__){eval('/* WEBPACK VAR INJECTION */(function(Buffer) {(function() {\n var crypt = __webpack_require__(/*! crypt */ "./node_modules/crypt/crypt.js"),\n utf8 = __webpack_require__(/*! charenc */ "./node_modules/charenc/charenc.js").utf8,\n bin = __webpack_require__(/*! charenc */ "./node_modules/charenc/charenc.js").bin,\n\n // The core\n sha1 = function (message) {\n // Convert to byte array\n if (message.constructor == String)\n message = utf8.stringToBytes(message);\n else if (typeof Buffer !== \'undefined\' && typeof Buffer.isBuffer == \'function\' && Buffer.isBuffer(message))\n message = Array.prototype.slice.call(message, 0);\n else if (!Array.isArray(message))\n message = message.toString();\n\n // otherwise assume byte array\n\n var m = crypt.bytesToWords(message),\n l = message.length * 8,\n w = [],\n H0 = 1732584193,\n H1 = -271733879,\n H2 = -1732584194,\n H3 = 271733878,\n H4 = -1009589776;\n\n // Padding\n m[l >> 5] |= 0x80 << (24 - l % 32);\n m[((l + 64 >>> 9) << 4) + 15] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n var a = H0,\n b = H1,\n c = H2,\n d = H3,\n e = H4;\n\n for (var j = 0; j < 80; j++) {\n\n if (j < 16)\n w[j] = m[i + j];\n else {\n var n = w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16];\n w[j] = (n << 1) | (n >>> 31);\n }\n\n var t = ((H0 << 5) | (H0 >>> 27)) + H4 + (w[j] >>> 0) + (\n j < 20 ? (H1 & H2 | ~H1 & H3) + 1518500249 :\n j < 40 ? (H1 ^ H2 ^ H3) + 1859775393 :\n j < 60 ? (H1 & H2 | H1 & H3 | H2 & H3) - 1894007588 :\n (H1 ^ H2 ^ H3) - 899497514);\n\n H4 = H3;\n H3 = H2;\n H2 = (H1 << 30) | (H1 >>> 2);\n H1 = H0;\n H0 = t;\n }\n\n H0 += a;\n H1 += b;\n H2 += c;\n H3 += d;\n H4 += e;\n }\n\n return [H0, H1, H2, H3, H4];\n },\n\n // Public API\n api = function (message, options) {\n var digestbytes = crypt.wordsToBytes(sha1(message));\n return options && options.asBytes ? digestbytes :\n options && options.asString ? bin.bytesToString(digestbytes) :\n crypt.bytesToHex(digestbytes);\n };\n\n api._blocksize = 16;\n api._digestsize = 20;\n\n module.exports = api;\n})();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://LIB/./node_modules/sha1/sha1.js?')},"./node_modules/tslib/tslib.es6.js": +/*!*****************************************!*\ + !*** ./node_modules/tslib/tslib.es6.js ***! + \*****************************************/ +/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */function(module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__createBinding", function() { return __createBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n 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 return extendStatics(d, b);\r\n};\r\n\r\nfunction __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\nvar __assign = function() {\r\n __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 return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __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++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __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\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __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 = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, 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\nfunction __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === "number") 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 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");\r\n}\r\n\r\nfunction __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\nfunction __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\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __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\nfunction __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) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __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\nfunction __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\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError("attempted to get private field on non-instance");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError("attempted to set private field on non-instance");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n//# sourceURL=webpack://LIB/./node_modules/tslib/tslib.es6.js?')},"./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */function(module,exports){eval('var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function("return this")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === "object") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it\'s\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack://LIB/(webpack)/buildin/global.js?')}});const _LIB$RemoteFile=LIB["RemoteFile"]},"7b9a":function(e,n,t){"use strict";t("d592")},8020:function(e,n,t){"use strict";t("6d06")},"927d":function(e,n,t){var r=t("77f8");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var i=t("499e").default;i("200c1d02",r,!0,{sourceMap:!1,shadowMode:!1})},a073:function(e,n,t){var r=t("4cd7");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var i=t("499e").default;i("c2c6d708",r,!0,{sourceMap:!1,shadowMode:!1})},b3e0:function(e,n,t){"use strict";t("66db")},c82f:function(e,n,t){var r=t("24fb");n=r(!1),n.push([e.i,'button.working{background-color:#dfd;font-weight:700}button.on{background-color:#efe;font-weight:700;box-shadow:0 0 4px #000}button.off{opacity:.7;filter:grayscale(100%)}button[disabled]{box-shadow:none;cursor:not-allowed!important}.controls fieldset{border:0;padding:0 1em}.controls fieldset,.controls fieldset>span{display:inline-block}.controls fieldset>*{margin:0 .2em}.controls>*,.controls fieldset>*{vertical-align:middle}header.controls{padding:1em;text-align:center;background-color:hsla(0,0%,100%,.6666666666666666)}header.controls button{font-size:24px}header.controls .dirty-badge{width:1em}header.controls .dirty-badge.dirty:before{content:"*"}.chromatic .sheet.live .page{background:#fff!important;border:1px solid #000}.chromatic .sheet.live .mark{visibility:visible;opacity:1}.chromatic[data-chromatic=symbols] .sheet.live .staff-line{stroke:#dcdcdc}.chromatic[data-chromatic=symbols] .sheet.live .measure-separator{fill:#00008b}.chromatic[data-chromatic=symbols] .sheet.live .additional-line{fill:#d2691e}.chromatic[data-chromatic=symbols] .sheet.live .brace,.chromatic[data-chromatic=symbols] .sheet.live .vertical-line{fill:#f5f5f5}.chromatic[data-chromatic=symbols] .sheet.live .note-stem{fill:#66a}.chromatic[data-chromatic=symbols] .sheet.live .note-stem.bald,.chromatic[data-chromatic=symbols] .sheet.live .note-stem.suspended{stroke:red;stroke-width:.1px}.chromatic[data-chromatic=symbols] .sheet.live .notetail{fill:#c0d0e0}.chromatic[data-chromatic=symbols] .sheet.live .tremolo-beam{fill:#ffa07a}.chromatic[data-chromatic=symbols] .sheet.live .glissando{stroke:#e6e6fa;fill:#e6e6fa}.chromatic[data-chromatic=symbols] .sheet.live .staves-connection{fill:#1e90ff;stroke:#1e90ff;stroke-width:.6px}.chromatic[data-chromatic=symbols] .sheet.live .clef{fill:#f0f}.chromatic[data-chromatic=symbols] .sheet.live .notehead{fill:#00bfff}.chromatic[data-chromatic=symbols] .sheet.live .attached .notehead{fill:#4682b4}.chromatic[data-chromatic=symbols] .sheet.live .rest{fill:#add8e6}.chromatic[data-chromatic=symbols] .sheet.live .number{fill:#789}.chromatic[data-chromatic=symbols] .sheet.live .time-sig,.chromatic[data-chromatic=symbols] .sheet.live .time-sig.number{fill:#2e8b57}.chromatic[data-chromatic=symbols] .sheet.live .number.alternative{fill:orchid}.chromatic[data-chromatic=symbols] .sheet.live .tempo-notehead{fill:#90ee90}.chromatic[data-chromatic=symbols] .sheet.live .dot{fill:orange}.chromatic[data-chromatic=symbols] .sheet.live .dot.volta{fill:#00008b}.chromatic[data-chromatic=symbols] .sheet.live .alter{fill:#006400}.chromatic[data-chromatic=symbols] .sheet.live .attached .alter{fill:#90ee90}.chromatic[data-chromatic=symbols] .sheet.live .octave{fill:violet}.chromatic[data-chromatic=symbols] .sheet.live .octave.line{stroke:violet}.chromatic[data-chromatic=symbols] .sheet.live .slur{fill:pink;stroke:pink}.chromatic[data-chromatic=symbols] .sheet.live .arpeggio,.chromatic[data-chromatic=symbols] .sheet.live .attached,.chromatic[data-chromatic=symbols] .sheet.live .expressive,.chromatic[data-chromatic=symbols] .sheet.live .sustain,.chromatic[data-chromatic=symbols] .sheet.live .tr,.chromatic[data-chromatic=symbols] .sheet.live .tr-wave{fill:wheat}.chromatic[data-chromatic=symbols] .sheet.live .wedge{stroke:wheat}.chromatic[data-chromatic=symbols] .sheet.live .chord-text,.chromatic[data-chromatic=symbols] .sheet.live .text.chord-text{fill:#87cefa!important}.chromatic[data-chromatic=symbols] .sheet.live .repeat-sign{fill:#ffb6c1}.chromatic[data-chromatic=symbols] .sheet.live .notice{stroke:red;stroke-width:1}.chromatic[data-chromatic=symbols] .sheet.live .notice.alter{stroke-width:60}.chromatic[data-chromatic=symbols] .sheet.live .mark .system>rect{fill:rgba(255,255,0,.03137254901960784);stroke:rgba(255,255,0,.6666666666666666);stroke-width:.3}.chromatic[data-chromatic=symbols] .sheet.live .mark .staff circle{r:1;fill:rgba(68,0,136,.4)}.chromatic[data-chromatic=symbols] .sheet.live .mark .staff line{stroke:#000;stroke-width:.1;stroke-dasharray:.5,.5}.chromatic[data-chromatic=symbols] .sheet.live .mark .staff rect.head{fill:rgba(0,0,0,.13333333333333333)}.chromatic[data-chromatic=symbols] .sheet.live .mark .measure text{fill:rgba(0,0,68,.4)}.chromatic[data-chromatic=symbols] .sheet.live .measure .text{fill:#cce}.chromatic[data-chromatic=symbols] .sheet.live .page-tokens .text{fill:#eee}.chromatic[data-chromatic=pitch] .sheet.live .page use{fill:rgba(0,0,0,.2)}.chromatic[data-chromatic=pitch] .sheet.live .page use.slur{stroke:transparent}.chromatic[data-chromatic=pitch] .sheet.live .mark .pitch-context .base-line{stroke-width:.1px;stroke:#000}.chromatic[data-chromatic=pitch] .sheet.live .mark .pitch-context .pitch text{fill:rgba(0,0,0,.8);font-size:1px;pointer-events:none;font-weight:700}.chromatic[data-chromatic=pitch] .sheet.live .mark .pitch-context .pitch:hover text{fill:#000;transform:scale(1.6)}.chromatic[data-chromatic=pitch] .sheet.live .mark .pitch-context .pitch .bg{x:0;y:-1px;width:1.6px;height:1px;fill:hsla(0,0%,100%,.13333333333333333)}.chromatic[data-chromatic=pitch] .sheet.live .mark .pitch-context .pitch.sharp .bg{fill:orange}.chromatic[data-chromatic=pitch] .sheet.live .mark .pitch-context .pitch.flat .bg{fill:#aaf}.chromatic[data-chromatic=track] .sheet.live .page use{fill:rgba(0,0,0,.6666666666666666)}.chromatic[data-chromatic=track] .sheet.live .page use.slur{stroke:0a}.chromatic[data-chromatic=track] .sheet.live .token[data-track="1"] use{fill:#0d0}.chromatic[data-chromatic=track] .sheet.live .token[data-track="2"] use{fill:#f0a}.chromatic[data-chromatic=track] .sheet.live .token[data-track="3"] use{fill:#04f}.chromatic[data-chromatic=track] .sheet.live .token[data-track="4"] use{fill:#eb0}.chromatic[data-chromatic=track] .sheet.live .token[data-track="5"] use{fill:#6cc}.chromatic[data-chromatic=track] .sheet.live .token[data-track="6"] use{fill:#c8a}.chromatic[data-chromatic=track] .sheet.live .token[data-track="7"] use{fill:#82f}.chromatic[data-chromatic=track] .sheet.live .token[data-track="8"] use{fill:#bf6}.chromatic[data-chromatic=track] .sheet.live .token[data-track="9"] use{fill:#8df}.chromatic[data-chromatic=track] .sheet.live .token[data-track="10"] use{fill:#f8e}.chromatic[data-chromatic=track] .sheet.live .token[data-track="11"] use{fill:#b6f}.chromatic[data-chromatic=track] .sheet.live .token[data-track="12"] use{fill:#bfa}@font-face{font-family:Emmentaler-26;font-weight:400;font-style:normal;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}.drag-hover[data-hover-type="text/lilypond-source"],.drag-hover[data-hover-type="text/x-lilypond"]{background-color:#cfc}.drag-hover[data-hover-type="text/xml"]{background-color:#ffc}.drag-hover[data-hover-type="audio/mid"],.drag-hover[data-hover-type="audio/midi"]{background-color:#cff}.playground{position:absolute;display:flex;flex-direction:column;top:0;left:0;width:100%;height:100%;overflow:hidden}.playground header .title{font-weight:700}.playground header.buzy{background-color:#ffc}.playground header .pointer-info{display:inline-block;width:8em}.playground header .pointer-info>span>span+span{display:inline-block;margin-left:.6em}.playground header .measure-layout-code{width:22em;font-size:20px}.playground header .measure-layout-code.error{border:1px solid red;background-color:#fcc}.playground header .measure-layout-code.dirty{outline:2px solid #000}.playground header .apply{font-size:70%}.playground header .hightlight-symbol{border:1px solid rgba(68,68,68,.06666666666666667)}.playground>main{flex:1 1 0;min-height:0;position:relative;width:100%;display:flex;flex-direction:row}.playground>main>*{height:100%;position:relative}.playground>main .source-container>div{height:100%}.playground>main .source-container.drag-hover{outline:4px dashed #4f4}.playground>main .source-container .corner{position:absolute;top:.2em;right:.2em}.playground>main .source-container .corner button{border:0;outline:0;cursor:pointer;vertical-align:top}.playground>main .source-container .corner .inspect{background:transparent;font-size:200%;opacity:.01}.playground>main .source-container .corner .inspect:hover{opacity:1}.playground>main .source-container .corner .log{border-radius:1em;font-weight:700}.playground>main .source-container .corner .log.info{color:green}.playground>main .source-container .corner .log.info:before{content:"\\24d8"}.playground>main .source-container .corner .log.warning{font-size:160%;color:#ff8c00;background:#ffffe0}.playground>main .source-container .corner .log.warning:before{content:"\\26a0"}.playground>main .source-container .corner .log.error{font-size:160%;color:red;background:pink}.playground>main .source-container .corner .log.error:before{content:"\\24d4"}.playground>main .source-container.connected .source-editor{outline:2px solid rgba(0,0,0,.4)}.playground>main .source-container.connected .source-editor .prism-editor-wrapper{background-color:#f0f6f0}.playground>main .build-container{flex-grow:1;display:flex;flex-direction:column;min-width:0}.playground>main .build-container.loading>.sheet-container{filter:blur(8px)}.playground>main .build-container.dirty{outline:1px solid rgba(255,204,0,.6666666666666666);background-color:rgba(255,204,0,.06666666666666667)}.playground>main .build-container .sheet-container{flex:1 1 0;overflow:auto;width:100%}.playground>main .build-container .sheet.live{white-space:nowrap;display:inline-block}.playground>main .build-container .sheet.live .page{display:inline-block;margin:1em;background:#f6fffa;border-radius:1em}.playground>main .build-container .sheet.live .cursor{fill:#add8e6}.playground>main .build-container .sheet.live .token.tied text,.playground>main .build-container .sheet.live .token.tied use{fill-opacity:.6}.playground>main .build-container .sheet.live .token.highlight{stroke-width:.4}.playground>main .build-container .sheet.live .token.highlight use{stroke:#c70!important;fill:#c70!important}.playground>main .build-container .sheet.live .staff-peak{pointer-events:none}.playground>main .build-container .sheet.live .staff-peak path{stroke-width:.1;stroke:rgba(255,0,0,.6666666666666666);fill:none}.playground>main .build-container .sheet.live .staff-peak line{stroke-width:.1;stroke:rgba(255,0,0,.6666666666666666);stroke-dasharray:.2 .2}.playground>main .build-container .sheet.live .staff-peak circle{r:.6;fill:rgba(255,0,0,.26666666666666666)}.playground>main .build-container.inspecting .token.mismatched use{fill:red}.playground>main .build-container.inspecting .token.tied use{fill:#daa520}.playground>main .source-editor-controls{position:absolute;top:0;left:0;height:unset;transform:translateY(-100%)}.playground>main .source-editor-controls .folder{font-size:140%;width:2em;margin-right:1em}.playground>main .source-editor-controls .dir-browser{position:absolute;left:0;top:100%;height:calc(100vh - 8em);width:600px;border:0;box-shadow:10px 10px 20px rgba(0,0,0,.4);background-color:hsla(0,0%,100%,.6666666666666666)}.playground>main .source-editor-controls .file-path{width:40em;color:#777;font-style:italic;border:0}.playground>main .source-editor-controls .connected .file-path{font-weight:700}.playground .settings{font-family:Verdana,Arial;font-size:20px}.playground .settings hr{border-width:.2px}.playground .settings th{text-transform:uppercase;padding:1em;font-size:120%}.playground .settings td{text-align:left;padding:.2em 1em;white-space:nowrap}.playground .settings td:first-child{text-align:right}',""]),e.exports=n},d592:function(e,n,t){var r=t("1e74");r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);var i=t("499e").default;i("48b9c433",r,!0,{sourceMap:!1,shadowMode:!1})},da8a:function(e,n,t){var r=t("24fb");n=r(!1),n.push([e.i,".scales line[data-v-fd24ee10]{stroke:#000;stroke-width:.1}.scales text[data-v-fd24ee10]{font-size:2px;text-anchor:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bar line[data-v-fd24ee10]{stroke:#000;stroke-width:.01}.pitch-bar line[data-v-fd24ee10],.time-bar line[data-v-fd24ee10]{stroke:#000;stroke-width:.06}.pitch-padding[data-v-fd24ee10]{fill:hsla(0,0%,100%,.8)}.progress rect[data-v-fd24ee10]{fill:rgba(170,255,170,.06666666666666667)}.progress line[data-v-fd24ee10]{stroke:#0a0;stroke-width:.04}",""]),e.exports=n},f7fe:function(e,n,t){(function(n){var t="Expected a function",r=NaN,i="[object Symbol]",o=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt,u="object"==typeof n&&n&&n.Object===Object&&n,f="object"==typeof self&&self&&self.Object===Object&&self,h=u||f||Function("return this")(),d=Object.prototype,p=d.toString,m=Math.max,g=Math.min,y=function(){return h.Date.now()};function v(e,n,r){var i,o,a,s,l,c,u=0,f=!1,h=!1,d=!0;if("function"!=typeof e)throw new TypeError(t);function p(n){var t=i,r=o;return i=o=void 0,u=n,s=e.apply(r,t),s}function v(e){return u=e,l=setTimeout(S,n),f?p(e):s}function w(e){var t=e-c,r=e-u,i=n-t;return h?g(i,a-r):i}function x(e){var t=e-c,r=e-u;return void 0===c||t>=n||t<0||h&&r>=a}function S(){var e=y();if(x(e))return A(e);l=setTimeout(S,w(e))}function A(e){return l=void 0,d&&i?p(e):(i=o=void 0,s)}function L(){void 0!==l&&clearTimeout(l),u=0,i=c=o=l=void 0}function E(){return void 0===l?s:A(y())}function C(){var e=y(),t=x(e);if(i=arguments,o=this,c=e,t){if(void 0===l)return v(c);if(h)return l=setTimeout(S,n),p(c)}return void 0===l&&(l=setTimeout(S,n)),s}return n=k(n)||0,b(r)&&(f=!!r.leading,h="maxWait"in r,a=h?m(k(r.maxWait)||0,n):a,d="trailing"in r?!!r.trailing:d),C.cancel=L,C.flush=E,C}function b(e){var n=typeof e;return!!e&&("object"==n||"function"==n)}function w(e){return!!e&&"object"==typeof e}function x(e){return"symbol"==typeof e||w(e)&&p.call(e)==i}function k(e){if("number"==typeof e)return e;if(x(e))return r;if(b(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=b(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var t=s.test(e);return t||l.test(e)?c(e.slice(2),t?2:8):a.test(e)?r:+e}e.exports=v}).call(this,t("c8ba"))},ff5e:function(e,n,t){var r=t("24fb");n=r(!1),n.push([e.i,".criterion .note{fill:#00008b}.sample .note{fill:#2f4f4f}.note.missed{stroke:red;stroke-width:.2}.notations-matcher{overflow:auto}",""]),e.exports=n}}]); +//# sourceMappingURL=chunk-04395031.dbff2f6b.js.map \ No newline at end of file diff --git a/dist/js/chunk-0c4e36c8.95d70738.js b/dist/js/chunk-0c4e36c8.95d70738.js new file mode 100644 index 0000000000000000000000000000000000000000..64666a2891715f6fa595fdbeadffe664fbc7cc2c --- /dev/null +++ b/dist/js/chunk-0c4e36c8.95d70738.js @@ -0,0 +1,16 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0c4e36c8"],{"010e":function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n("9e5c"),i=n.n(a);const r=new Map;async function s(e){if(!r.get(e)){const t=performance.now(),{default:n}=await e,a=await(await fetch(n)).text(),s=performance.now(),o=new i.a;r.set(e,await new o.Parser(a));const l=performance.now();console.debug("Jison parser loading cost:",s-t,l-s)}return r.get(e)}},"0794":function(e,t,n){e.exports=function(){return new Worker(n.p+"e5c1442134f1e7dfb9dd.worker.js")}},"0e06":function(e,t,n){var a=n("7407");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var i=n("499e").default;i("b061a5c4",a,!0,{sourceMap:!1,shadowMode:!1})},"13c4":function(e,t,n){var a=n("b437");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var i=n("499e").default;i("155344be",a,!0,{sourceMap:!1,shadowMode:!1})},"1c08":function(e,t){(function(e){for(var t=/\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|)*\)/.source,n=5,a=0;a/g,(function(){return t}));t=t.replace(//g,/[^\s\S]/.source);var i=e.languages.lilypond={comment:/%(?:(?!\{).*|\{[\s\S]*?%\})/,"embedded-scheme":{pattern:RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|))/.source.replace(//g,(function(){return t})),"m"),lookbehind:!0,greedy:!0,inside:{scheme:{pattern:/^(#)[\s\S]+$/,lookbehind:!0,alias:"language-scheme",inside:{"embedded-lilypond":{pattern:/#\{[\s\S]*?#\}/,greedy:!0,inside:{punctuation:/^#\{|#\}$/,lilypond:{pattern:/[\s\S]+/,alias:"language-lilypond",inside:null}}},rest:e.languages.scheme}},punctuation:/#/}},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":{pattern:/(\\new\s+)[\w-]+/,lookbehind:!0},keyword:{pattern:/\\[a-z][-\w]*/i,inside:{punctuation:/^\\/}},operator:/[=|]|<<|>>/,punctuation:{pattern:/(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,lookbehind:!0},number:/\b\d+(?:\/\d+)?\b/};i["embedded-scheme"].inside["scheme"].inside["embedded-lilypond"].inside["lilypond"].inside=i,e.languages.ly=i})(Prism)},2669:function(e,t,n){var a=n("24fb");t=a(!1),t.push([e.i,".source-editor[data-v-d4e36058]{display:inline-block}.prism-editor-wrapper[data-v-d4e36058]{background-color:#f4f2f0;resize:horizontal;width:50em;height:100%;font-family:monospace;font-size:16px;line-height:19px;overflow:auto}",""]),e.exports=t},3122:function(e,t,n){"use strict";var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"source-editor",on:{click:e.onClick}},[t("PrismEditor",{attrs:{lineNumbers:!0,highlight:e.highlighter,readonly:e.disabled,tabSize:4},model:{value:e.editText,callback:function(t){e.editText=t},expression:"editText"}})],1)},i=[],r=(n("cabf"),n("13c4"),n("c197")),s=(n("1c08"),n("2b0e"));function o(){return o=Object.assign||function(e){for(var t=1;t";return e},lineNumbersCount:function(){var e=this.codeData.split(/\r\n|\n/).length;return e}},mounted:function(){this._recordCurrentState(),this.styleLineNumbers()},methods:{setLineNumbersHeight:function(){this.lineNumbersHeight=getComputedStyle(this.$refs.pre).height},styleLineNumbers:function(){if(this.lineNumbers&&this.autoStyleLineNumbers){var e=this.$refs.pre,t=this.$el.querySelector(".prism-editor__line-numbers"),n=window.getComputedStyle(e);this.$nextTick((function(){var a="border-top-left-radius",i="border-bottom-left-radius";if(t){t.style[a]=n[a],t.style[i]=n[i],e.style[a]="0",e.style[i]="0";var r=["background-color","margin-top","padding-top","font-family","font-size","line-height"];r.forEach((function(e){t.style[e]=n[e]})),t.style["margin-bottom"]="-"+n["padding-top"]}}))}},_recordCurrentState:function(){var e=this.$refs.textarea;if(e){var t=e.value,n=e.selectionStart,a=e.selectionEnd;this._recordChange({value:t,selectionStart:n,selectionEnd:a})}},_getLines:function(e,t){return e.substring(0,t).split("\n")},_applyEdits:function(e){var t=this.$refs.textarea,n=this.history.stack[this.history.offset];n&&t&&(this.history.stack[this.history.offset]=o({},n,{selectionStart:t.selectionStart,selectionEnd:t.selectionEnd})),this._recordChange(e),this._updateInput(e)},_recordChange:function(e,t){void 0===t&&(t=!1);var n=this.history,a=n.stack,i=n.offset;if(a.length&&i>-1){this.history.stack=a.slice(0,i+1);var r=this.history.stack.length;if(r>b){var s=r-b;this.history.stack=a.slice(s,r),this.history.offset=Math.max(this.history.offset-s,0)}}var l=Date.now();if(t){var u=this.history.stack[this.history.offset];if(u&&l-u.timestamp=_&&t<=E&&e.startsWith(b)?e.substring(b.length):e})).join("\n");if(r!==F){var A=k[_];this._applyEdits({value:F,selectionStart:A.startsWith(b)?s-b.length:s,selectionEnd:o-(r.length-F.length)})}}else if(s!==o){var S=this._getLines(r,s),$=S.length-1,C=this._getLines(r,o).length-1,z=S[$];this._applyEdits({value:r.split("\n").map((function(e,t){return t>=$&&t<=C?b+e:e})).join("\n"),selectionStart:/\S/.test(z)?s+b.length:s,selectionEnd:o+b.length*(C-$+1)})}else{var M=s+b.length;this._applyEdits({value:r.substring(0,s)+b+r.substring(o),selectionStart:M,selectionEnd:M})}else if(e.keyCode===c){var L=s!==o,T=r.substring(0,s);if(T.endsWith(b)&&!L){e.preventDefault();var j=s-b.length;this._applyEdits({value:r.substring(0,s-b.length)+r.substring(o),selectionStart:j,selectionEnd:j})}}else if(e.keyCode===l){if(s===o){var P=this._getLines(r,s).pop(),N=null===P||void 0===P?void 0:P.match(/^\s+/);if(N&&N[0]){e.preventDefault();var O="\n"+N[0],D=s+O.length;this._applyEdits({value:r.substring(0,s)+O+r.substring(o),selectionStart:D,selectionEnd:D})}}}else if(e.keyCode===h||e.keyCode===f||e.keyCode===m||e.keyCode===y){var R;e.keyCode===h&&e.shiftKey?R=["(",")"]:e.keyCode===f?R=e.shiftKey?["{","}"]:["[","]"]:e.keyCode===m?R=e.shiftKey?['"','"']:["'","'"]:e.keyCode!==y||e.shiftKey||(R=["`","`"]),s!==o&&R&&(e.preventDefault(),this._applyEdits({value:r.substring(0,s)+R[0]+r.substring(s,o)+R[1]+r.substring(o),selectionStart:s,selectionEnd:o+2}))}else!(x?e.metaKey&&e.keyCode===p:e.ctrlKey&&e.keyCode===p)||e.shiftKey||e.altKey?(x?e.metaKey&&e.keyCode===p&&e.shiftKey:w?e.ctrlKey&&e.keyCode===d:e.ctrlKey&&e.keyCode===p&&e.shiftKey)&&!e.altKey?(e.preventDefault(),this._redoEdit()):e.keyCode!==g||!e.ctrlKey||x&&!e.shiftKey||(e.preventDefault(),this.capture=!this.capture):(e.preventDefault(),this._undoEdit())}}},render:function(e){var t=this,n=e("div",{attrs:{class:"prism-editor__line-width-calc",style:"height: 0px; visibility: hidden; pointer-events: none;"}},"999"),a=e("div",{staticClass:"prism-editor__line-numbers",style:{"min-height":this.lineNumbersHeight},attrs:{"aria-hidden":"true"}},[n,Array.from(Array(this.lineNumbersCount).keys()).map((function(t,n){return e("div",{attrs:{class:"prism-editor__line-number token comment"}},""+ ++n)}))]),i=e("textarea",{ref:"textarea",on:{input:this.handleChange,keydown:this.handleKeyDown,click:function(e){t.$emit("click",e)},keyup:function(e){t.$emit("keyup",e)},focus:function(e){t.$emit("focus",e)},blur:function(e){t.$emit("blur",e)}},staticClass:"prism-editor__textarea",class:{"prism-editor__textarea--empty":this.isEmpty},attrs:{spellCheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off","data-gramm":"false",placeholder:this.placeholder,"data-testid":"textarea",readonly:this.readonly},domProps:{value:this.codeData}}),r=e("pre",{ref:"pre",staticClass:"prism-editor__editor",attrs:{"data-testid":"preview"},domProps:{innerHTML:this.content}}),s=e("div",{staticClass:"prism-editor__container"},[i,r]);return e("div",{staticClass:"prism-editor-wrapper"},[this.lineNumbers&&a,s])}}),E={name:"source-editor",props:{source:String,disabled:Boolean},components:{PrismEditor:_},data(){return{editText:this.source}},methods:{highlighter(e){return Object(r["highlight"])(e,r["languages"].lilypond)},onClick(){document.activeElement&&"TEXTAREA"===document.activeElement.tagName||this.$el.querySelector("textarea").focus()}},watch:{editText(e){this.source!==e&&this.$emit("update:source",e)},source(e){this.editText=e}}},F=E,A=(n("afdd"),n("b2c1"),n("2877")),S=Object(A["a"])(F,a,i,!1,null,"d4e36058",null);t["a"]=S.exports},"3d15":function(e,t,n){"use strict";n.r(t),n.d(t,"createEndpoint",(function(){return i})),n.d(t,"expose",(function(){return g})),n.d(t,"finalizer",(function(){return s})),n.d(t,"proxy",(function(){return $})),n.d(t,"proxyMarker",(function(){return a})),n.d(t,"releaseProxy",(function(){return r})),n.d(t,"transfer",(function(){return S})),n.d(t,"transferHandlers",(function(){return d})),n.d(t,"windowEndpoint",(function(){return C})),n.d(t,"wrap",(function(){return m})); +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ +const a=Symbol("Comlink.proxy"),i=Symbol("Comlink.endpoint"),r=Symbol("Comlink.releaseProxy"),s=Symbol("Comlink.finalizer"),o=Symbol("Comlink.thrown"),l=e=>"object"===typeof e&&null!==e||"function"===typeof e,u={canHandle:e=>l(e)&&e[a],serialize(e){const{port1:t,port2:n}=new MessageChannel;return g(e,t),[n,[n]]},deserialize(e){return e.start(),m(e)}},c={canHandle:e=>l(e)&&o in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}},d=new Map([["proxy",u],["throw",c]]);function p(e,t){for(const n of e){if(t===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(t))return!0}return!1}function g(e,t=globalThis,n=["*"]){t.addEventListener("message",(function a(i){if(!i||!i.data)return;if(!p(n,i.origin))return void console.warn(`Invalid origin '${i.origin}' for comlink proxy`);const{id:r,type:l,path:u}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(M);let d;try{const t=u.slice(0,-1).reduce((e,t)=>e[t],e),n=u.reduce((e,t)=>e[t],e);switch(l){case"GET":d=n;break;case"SET":t[u.slice(-1)[0]]=M(i.data.value),d=!0;break;case"APPLY":d=n.apply(t,c);break;case"CONSTRUCT":{const e=new n(...c);d=$(e)}break;case"ENDPOINT":{const{port1:t,port2:n}=new MessageChannel;g(e,n),d=S(t,[t])}break;case"RELEASE":d=void 0;break;default:return}}catch(h){d={value:h,[o]:0}}Promise.resolve(d).catch(e=>({value:e,[o]:0})).then(n=>{const[i,o]=z(n);t.postMessage(Object.assign(Object.assign({},i),{id:r}),o),"RELEASE"===l&&(t.removeEventListener("message",a),f(t),s in e&&"function"===typeof e[s]&&e[s]())}).catch(e=>{const[n,a]=z({value:new TypeError("Unserializable return value"),[o]:0});t.postMessage(Object.assign(Object.assign({},n),{id:r}),a)})})),t.start&&t.start()}function h(e){return"MessagePort"===e.constructor.name}function f(e){h(e)&&e.close()}function m(e,t){const n=new Map;return e.addEventListener("message",(function(e){const{data:t}=e;if(!t||!t.id)return;const a=n.get(t.id);if(a)try{a(t)}finally{n.delete(t.id)}})),_(e,n,[],t)}function y(e){if(e)throw new Error("Proxy has been released and is not useable")}function v(e){return L(e,new Map,{type:"RELEASE"}).then(()=>{f(e)})}const b=new WeakMap,k="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{const t=(b.get(e)||0)-1;b.set(e,t),0===t&&v(e)});function w(e,t){const n=(b.get(t)||0)+1;b.set(t,n),k&&k.register(e,t,e)}function x(e){k&&k.unregister(e)}function _(e,t,n=[],a=function(){}){let s=!1;const o=new Proxy(a,{get(a,i){if(y(s),i===r)return()=>{x(o),v(e),t.clear(),s=!0};if("then"===i){if(0===n.length)return{then:()=>o};const a=L(e,t,{type:"GET",path:n.map(e=>e.toString())}).then(M);return a.then.bind(a)}return _(e,t,[...n,i])},set(a,i,r){y(s);const[o,l]=z(r);return L(e,t,{type:"SET",path:[...n,i].map(e=>e.toString()),value:o},l).then(M)},apply(a,r,o){y(s);const l=n[n.length-1];if(l===i)return L(e,t,{type:"ENDPOINT"}).then(M);if("bind"===l)return _(e,t,n.slice(0,-1));const[u,c]=F(o);return L(e,t,{type:"APPLY",path:n.map(e=>e.toString()),argumentList:u},c).then(M)},construct(a,i){y(s);const[r,o]=F(i);return L(e,t,{type:"CONSTRUCT",path:n.map(e=>e.toString()),argumentList:r},o).then(M)}});return w(o,e),o}function E(e){return Array.prototype.concat.apply([],e)}function F(e){const t=e.map(z);return[t.map(e=>e[0]),E(t.map(e=>e[1]))]}const A=new WeakMap;function S(e,t){return A.set(e,t),e}function $(e){return Object.assign(e,{[a]:!0})}function C(e,t=globalThis,n="*"){return{postMessage:(t,a)=>e.postMessage(t,n,a),addEventListener:t.addEventListener.bind(t),removeEventListener:t.removeEventListener.bind(t)}}function z(e){for(const[t,n]of d)if(n.canHandle(e)){const[a,i]=n.serialize(e);return[{type:"HANDLER",name:t,value:a},i]}return[{type:"RAW",value:e},A.get(e)||[]]}function M(e){switch(e.type){case"HANDLER":return d.get(e.name).deserialize(e.value);case"RAW":return e.value}}function L(e,t,n,a){return new Promise(i=>{const r=T();t.set(r,i),e.start&&e.start(),e.postMessage(Object.assign({id:r},n),a)})}function T(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}},"3f8a":function(e,t,n){"use strict";n("9e2c")},"488d":function(e,t,n){"use strict";var a=function(){var e=this;e._self._c;return e._m(0)},i=[function(){var e=this,t=e._self._c;return t("div",{staticClass:"loading-dots"},[t("div",{staticClass:"ellipsis"},[t("div"),t("div"),t("div"),t("div")])])}],r={name:"loading-dots"},s=r,o=(n("b214"),n("2877")),l=Object(o["a"])(s,a,i,!1,null,"077207e4",null);t["a"]=l.exports},"563b":function(e,t,n){var a=n("6eaa");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var i=n("499e").default;i("069f7faa",a,!0,{sourceMap:!1,shadowMode:!1})},"6eaa":function(e,t,n){var a=n("24fb");t=a(!1),t.push([e.i,".loading-dots[data-v-077207e4]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.26666666666666666)}.ellipsis[data-v-077207e4]{display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px}.ellipsis div[data-v-077207e4]{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:hsla(0,0%,40%,.8);animation-timing-function:cubic-bezier(0,1,1,0)}.ellipsis div[data-v-077207e4]:first-child{left:8px;animation:ellipsis1-077207e4 .6s infinite}.ellipsis div[data-v-077207e4]:nth-child(2){left:8px;animation:ellipsis2-077207e4 .6s infinite}.ellipsis div[data-v-077207e4]:nth-child(3){left:32px;animation:ellipsis2-077207e4 .6s infinite}.ellipsis div[data-v-077207e4]:nth-child(4){left:56px;animation:ellipsis3-077207e4 .6s infinite}@keyframes ellipsis1-077207e4{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes ellipsis3-077207e4{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes ellipsis2-077207e4{0%{transform:translate(0)}to{transform:translate(24px)}}",""]),e.exports=t},7407:function(e,t,n){var a=n("24fb");t=a(!1),t.push([e.i,".prism-editor-wrapper pre,.prism-editor-wrapper textarea{white-space:pre!important}.prism-editor-wrapper textarea:focus{outline:0}.prism-editor__line-numbers{-webkit-user-select:none;-moz-user-select:none;user-select:none}.prism-editor__container{overflow:unset!important;width:1000%!important}",""]),e.exports=t},8661:function(e,t,n){var a=n("2669");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var i=n("499e").default;i("769f8f1d",a,!0,{sourceMap:!1,shadowMode:!1})},"919f":function(e,t,n){var a=n("24fb");t=a(!1),t.push([e.i,".sheet[data-v-682d3448]{white-space:nowrap}.page[data-v-682d3448],.sheet[data-v-682d3448]{display:inline-block}.page[data-v-682d3448]{margin:0 1em;background-color:#f6faff}",""]),e.exports=t},"94c1":function(e,t,n){"use strict";var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"sheet"},e._l(e.documents,(function(n,a){return t("span",{key:a,staticClass:"page",domProps:{innerHTML:e._s(n)}})})),0)},i=[],r={name:"sheet-simple",props:{documents:Array},mounted(){this.bindLinks()},updated(){this.$nextTick(()=>this.bindLinks())},methods:{bindLinks(){const e=this.$el.querySelectorAll("a");for(const t of e)t.onclick=e=>this.$emit("linkClick",e,t.href.baseVal)}}},s=r,o=(n("3f8a"),n("2877")),l=Object(o["a"])(s,a,i,!1,null,"682d3448",null);t["a"]=l.exports},"9e2c":function(e,t,n){var a=n("919f");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var i=n("499e").default;i("3136d68c",a,!0,{sourceMap:!1,shadowMode:!1})},"9e5c":function(e,t,n){var a,i=n("3d15").wrap,r=n("0794");e.exports=function e(){return this instanceof e?i(r()):a||(a=i(r()))}},ac16:function(e,t,n){var a=n("24fb");t=a(!1),t.push([e.i,".prism-editor-wrapper{width:100%;height:100%;display:flex;align-items:flex-start;overflow:auto;-o-tab-size:1.5em;tab-size:1.5em;-moz-tab-size:1.5em}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.prism-editor-wrapper .prism-editor__textarea{color:transparent!important}.prism-editor-wrapper .prism-editor__textarea::-moz-selection{background-color:#accef7!important;color:transparent!important}.prism-editor-wrapper .prism-editor__textarea::selection{background-color:#accef7!important;color:transparent!important}}.prism-editor-wrapper .prism-editor__container{position:relative;text-align:left;box-sizing:border-box;padding:0;overflow:hidden;width:100%}.prism-editor-wrapper .prism-editor__line-numbers{height:100%;overflow:hidden;flex-shrink:0;padding-top:4px;margin-top:0;margin-right:10px}.prism-editor-wrapper .prism-editor__line-number{text-align:right;white-space:nowrap}.prism-editor-wrapper .prism-editor__textarea{position:absolute;top:0;left:0;height:100%;width:100%;resize:none;color:inherit;overflow:hidden;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-text-fill-color:transparent}.prism-editor-wrapper .prism-editor__editor,.prism-editor-wrapper .prism-editor__textarea{margin:0;border:0;background:none;box-sizing:inherit;display:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-variant-ligatures:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;-moz-tab-size:inherit;-o-tab-size:inherit;tab-size:inherit;text-indent:inherit;text-rendering:inherit;text-transform:inherit;white-space:pre-wrap;word-wrap:keep-all;overflow-wrap:break-word;padding:0}.prism-editor-wrapper .prism-editor__textarea--empty{-webkit-text-fill-color:inherit!important}.prism-editor-wrapper .prism-editor__editor{position:relative;pointer-events:none}",""]),e.exports=t},afdd:function(e,t,n){"use strict";n("8661")},b214:function(e,t,n){"use strict";n("563b")},b2c1:function(e,t,n){"use strict";n("0e06")},b437:function(e,t,n){var a=n("24fb");t=a(!1),t.push([e.i,"code[class*=language-],pre[class*=language-]{color:#657b83;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection{background:#073642}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{background:#073642}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdf6e3}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#93a1a1}.token.punctuation{color:#586e75}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#268bd2}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string,.token.url{color:#2aa198}.token.entity{color:#657b83;background:#eee8d5}.token.atrule,.token.attr-value,.token.keyword{color:#859900}.token.class-name,.token.function{color:#b58900}.token.important,.token.regex,.token.variable{color:#cb4b16}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}",""]),e.exports=t},c197:function(e,t,n){(function(t){var n="undefined"!==typeof window?window:"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},a=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,a={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof r?new r(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach)break;var E=x.value;if(t.length>e.length)return;if(!(E instanceof r)){var F,A=1;if(v){if(F=s(w,_,e,y),!F||F.index>=e.length)break;var S=F.index,$=F.index+F[0].length,C=_;C+=x.value.length;while(S>=C)x=x.next,C+=x.value.length;if(C-=x.value.length,_=C,x.value instanceof r)continue;for(var z=x;z!==t.tail&&(C<$||"string"===typeof z.value);z=z.next)A++,C+=z.value.length;A--,E=e.slice(_,C),F.index-=_}else if(F=s(w,0,E,y),!F)continue;S=F.index;var M=F[0],L=E.slice(0,S),T=E.slice(S+M.length),j=_+E.length;d&&j>d.reach&&(d.reach=j);var P=x.prev;L&&(P=u(t,P,L),_+=L.length),c(t,P,A);var N=new r(p,m?i.tokenize(M,m):M,b,M);if(x=u(t,P,N),T&&u(t,x,T),A>1){var O={cause:p+","+h,reach:j};o(e,t,n,x.prev,_,O),d&&O.reach>d.reach&&(d.reach=O.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function u(e,t,n){var a=t.next,i={value:n,prev:t,next:a};return t.next=i,a.prev=i,e.length++,i}function c(e,t,n){for(var a=t.next,i=0;i"+r.content+""},!e.document)return e.addEventListener?(i.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),a=n.language,r=n.code,s=n.immediateClose;e.postMessage(i.highlight(r,i.languages[a],a)),s&&e.close()}),!1),i):i;var p=i.util.currentScript();function g(){i.manual||i.highlightAll()}if(p&&(i.filename=p.src,p.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var h=document.readyState;"loading"===h||"interactive"===h&&p&&p.defer?document.addEventListener("DOMContentLoaded",g):window.requestAnimationFrame?window.requestAnimationFrame(g):window.setTimeout(g,16)}return i}(n); +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */e.exports&&(e.exports=a),"undefined"!==typeof t&&(t.Prism=a),a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup["tag"].inside["attr-value"].inside["entity"]=a.languages.markup["entity"],a.languages.markup["doctype"].inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes["title"]=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n["cdata"]=/^$/i;var i={"included-cdata":{pattern://i,inside:n}};i["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var r={};r[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:i},a.languages.insertBefore("markup","cdata",r)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css["atrule"].inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(){if("undefined"!==typeof a&&"undefined"!==typeof document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e="Loading…",t=function(e,t){return"✖ Error "+e+" while fetching file: "+t},n="✖ Error: File does not exist or is empty",i={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},r="data-src-status",s="loading",o="loaded",l="failed",u="pre[data-src]:not(["+r+'="'+o+'"]):not(['+r+'="'+s+'"])';a.hooks.add("before-highlightall",(function(e){e.selector+=", "+u})),a.hooks.add("before-sanity-check",(function(t){var n=t.element;if(n.matches(u)){t.code="",n.setAttribute(r,s);var c=n.appendChild(document.createElement("CODE"));c.textContent=e;var g=n.getAttribute("data-src"),h=t.language;if("none"===h){var f=(/\.(\w+)$/.exec(g)||[,"none"])[1];h=i[f]||f}a.util.setLanguage(c,h),a.util.setLanguage(n,h);var m=a.plugins.autoloader;m&&m.loadLanguages(h),d(g,(function(e){n.setAttribute(r,o);var t=p(n.getAttribute("data-range"));if(t){var i=e.split(/\r\n?|\n/g),s=t[0],l=null==t[1]?i.length:t[1];s<0&&(s+=i.length),s=Math.max(0,Math.min(s-1,i.length)),l<0&&(l+=i.length),l=Math.max(0,Math.min(l,i.length)),e=i.slice(s,l).join("\n"),n.hasAttribute("data-start")||n.setAttribute("data-start",String(s+1))}c.textContent=e,a.highlightElement(c)}),(function(e){n.setAttribute(r,l),c.textContent=e}))}})),a.plugins.fileHighlight={highlight:function(e){for(var t,n=(e||document).querySelectorAll(u),i=0;t=n[i++];)a.highlightElement(t)}};var c=!1;a.fileHighlight=function(){c||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),c=!0),a.plugins.fileHighlight.highlight.apply(this,arguments)}}function d(e,a,i){var r=new XMLHttpRequest;r.open("GET",e,!0),r.onreadystatechange=function(){4==r.readyState&&(r.status<400&&r.responseText?a(r.responseText):r.status>=400?i(t(r.status,r.statusText)):i(n))},r.send(null)}function p(e){var t=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||"");if(t){var n=Number(t[1]),a=t[2],i=t[3];return a?i?[n,Number(i)]:[n,void 0]:[n,n]}}}()}).call(this,n("c8ba"))},cabf:function(e,t,n){var a=n("ac16");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);var i=n("499e").default;i("3072be6e",a,!0,{sourceMap:!1,shadowMode:!1})}}]); +//# sourceMappingURL=chunk-0c4e36c8.95d70738.js.map \ No newline at end of file diff --git a/dist/js/chunk-0cbfe13e.73856287.js b/dist/js/chunk-0cbfe13e.73856287.js new file mode 100644 index 0000000000000000000000000000000000000000..fa9d9ba478e6f8d712e689a88416fc7420a99bac --- /dev/null +++ b/dist/js/chunk-0cbfe13e.73856287.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0cbfe13e"],{"00ce":function(e,t,r){"use strict";var o,n=r("a645"),i=r("417f"),a=r("dc99"),s=r("1409"),l=r("67ee"),c=r("0d25"),u=r("67d9"),p=Function,f=function(e){try{return p('"use strict"; return ('+e+").constructor;")()}catch(t){}},h=Object.getOwnPropertyDescriptor;if(h)try{h({},"")}catch(L){h=null}var y=function(){throw new c},d=h?function(){try{return y}catch(e){try{return h(arguments,"callee").get}catch(t){return y}}}():y,m=r("5156")(),g=r("0a36")(),b=Object.getPrototypeOf||(g?function(e){return e.__proto__}:null),v={},w="undefined"!==typeof Uint8Array&&b?b(Uint8Array):o,S={__proto__:null,"%AggregateError%":"undefined"===typeof AggregateError?o:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?o:ArrayBuffer,"%ArrayIteratorPrototype%":m&&b?b([][Symbol.iterator]()):o,"%AsyncFromSyncIteratorPrototype%":o,"%AsyncFunction%":v,"%AsyncGenerator%":v,"%AsyncGeneratorFunction%":v,"%AsyncIteratorPrototype%":v,"%Atomics%":"undefined"===typeof Atomics?o:Atomics,"%BigInt%":"undefined"===typeof BigInt?o:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?o:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?o:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?o:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":n,"%eval%":eval,"%EvalError%":i,"%Float32Array%":"undefined"===typeof Float32Array?o:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?o:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?o:FinalizationRegistry,"%Function%":p,"%GeneratorFunction%":v,"%Int8Array%":"undefined"===typeof Int8Array?o:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?o:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?o:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":m&&b?b(b([][Symbol.iterator]())):o,"%JSON%":"object"===typeof JSON?JSON:o,"%Map%":"undefined"===typeof Map?o:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&m&&b?b((new Map)[Symbol.iterator]()):o,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?o:Promise,"%Proxy%":"undefined"===typeof Proxy?o:Proxy,"%RangeError%":a,"%ReferenceError%":s,"%Reflect%":"undefined"===typeof Reflect?o:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?o:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&m&&b?b((new Set)[Symbol.iterator]()):o,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?o:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":m&&b?b(""[Symbol.iterator]()):o,"%Symbol%":m?Symbol:o,"%SyntaxError%":l,"%ThrowTypeError%":d,"%TypedArray%":w,"%TypeError%":c,"%Uint8Array%":"undefined"===typeof Uint8Array?o:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?o:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?o:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?o:Uint32Array,"%URIError%":u,"%WeakMap%":"undefined"===typeof WeakMap?o:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?o:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?o:WeakSet};if(b)try{null.error}catch(L){var x=b(b(L));S["%Error.prototype%"]=x}var O=function e(t){var r;if("%AsyncFunction%"===t)r=f("async function () {}");else if("%GeneratorFunction%"===t)r=f("function* () {}");else if("%AsyncGeneratorFunction%"===t)r=f("async function* () {}");else if("%AsyncGenerator%"===t){var o=e("%AsyncGeneratorFunction%");o&&(r=o.prototype)}else if("%AsyncIteratorPrototype%"===t){var n=e("%AsyncGenerator%");n&&b&&(r=b(n.prototype))}return S[t]=r,r},j={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},A=r("0f7c"),P=r("9671"),k=A.call(Function.call,Array.prototype.concat),E=A.call(Function.apply,Array.prototype.splice),I=A.call(Function.call,String.prototype.replace),_=A.call(Function.call,String.prototype.slice),T=A.call(Function.call,RegExp.prototype.exec),N=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,C=/\\(\\)?/g,F=function(e){var t=_(e,0,1),r=_(e,-1);if("%"===t&&"%"!==r)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==t)throw new l("invalid intrinsic syntax, expected opening `%`");var o=[];return I(e,N,(function(e,t,r,n){o[o.length]=r?I(n,C,"$1"):t||e})),o},R=function(e,t){var r,o=e;if(P(j,o)&&(r=j[o],o="%"+r[0]+"%"),P(S,o)){var n=S[o];if(n===v&&(n=O(o)),"undefined"===typeof n&&!t)throw new c("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:r,name:o,value:n}}throw new l("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new c('"allowMissing" argument must be a boolean');if(null===T(/^%?[^%]*%?$/,e))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=F(e),o=r.length>0?r[0]:"",n=R("%"+o+"%",t),i=n.name,a=n.value,s=!1,u=n.alias;u&&(o=u[0],E(r,k([0,1],u)));for(var p=1,f=!0;p=r.length){var g=h(a,y);f=!!g,a=f&&"get"in g&&!("originalValue"in g.get)?g.get:a[y]}else f=P(a,y),a=a[y];f&&!s&&(S[i]=a)}}return a}},"0a36":function(e,t,r){"use strict";var o={__proto__:null,foo:{}},n=Object;e.exports=function(){return{__proto__:o}.foo===o.foo&&!(o instanceof n)}},"0b16":function(e,t,r){"use strict";var o=r("9d88");function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var i=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,l=["<",">",'"',"`"," ","\r","\n","\t"],c=["{","}","|","\\","^","`"].concat(l),u=["'"].concat(c),p=["%","/","?",";","#"].concat(u),f=["/","?","#"],h=255,y=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=r("184d");function w(e,t,r){if(e&&"object"===typeof e&&e instanceof n)return e;var o=new n;return o.parse(e,t,r),o}function S(e){return"string"===typeof e&&(e=w(e)),e instanceof n?e.format():n.prototype.format.call(e)}function x(e,t){return w(e,!1,!0).resolve(t)}function O(e,t){return e?w(e,!1,!0).resolveObject(t):t}n.prototype.parse=function(e,t,r){if("string"!==typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e.indexOf("?"),a=-1!==n&&n127?F+="x":F+=C[R];if(!F.match(y)){var D=T.slice(0,E),M=T.slice(E+1),U=C.match(d);U&&(D.push(U[1]),M.unshift(U[2])),M.length&&(w="/"+M.join(".")+w),this.hostname=D.join(".");break}}}this.hostname.length>h?this.hostname="":this.hostname=this.hostname.toLowerCase(),_||(this.hostname=o.toASCII(this.hostname));var B=this.port?":"+this.port:"",W=this.hostname||"";this.host=W+B,this.href+=this.host,_&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==w[0]&&(w="/"+w))}if(!m[O])for(E=0,N=u.length;E0)&&r.host.split("@");j&&(r.auth=j.shift(),r.hostname=j.shift(),r.host=r.hostname)}return r.search=e.search,r.query=e.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!x.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=x.slice(-1)[0],P=(r.host||e.host||x.length>1)&&("."===A||".."===A)||""===A,k=0,E=x.length;E>=0;E--)A=x[E],"."===A?x.splice(E,1):".."===A?(x.splice(E,1),k++):k&&(x.splice(E,1),k--);if(!w&&!S)for(;k--;k)x.unshift("..");!w||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),P&&"/"!==x.join("/").substr(-1)&&x.push("");var I=""===x[0]||x[0]&&"/"===x[0].charAt(0);if(O){r.hostname=I?"":x.length?x.shift():"",r.host=r.hostname;j=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");j&&(r.auth=j.shift(),r.hostname=j.shift(),r.host=r.hostname)}return w=w||r.host&&x.length,w&&!I&&x.unshift(""),x.length>0?r.pathname=x.join("/"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var e=this.host,t=a.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.parse=w,t.resolve=x,t.resolveObject=O,t.format=S,t.Url=n},"0d25":function(e,t,r){"use strict";e.exports=TypeError},"0f7c":function(e,t,r){"use strict";var o=r("688e");e.exports=Function.prototype.bind||o},1:function(e,t){},1409:function(e,t,r){"use strict";e.exports=ReferenceError},1696:function(e,t,r){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;var o=42;for(t in e[t]=o,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(i.value!==o||!0!==i.enumerable)return!1}return!0}},"184d":function(e,t,r){"use strict";var o=r("f177"),n=r("2500"),i=r("bbc7");e.exports={formats:i,parse:n,stringify:o}},2500:function(e,t,r){"use strict";var o=r("a29f"),n=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:o.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},l=function(e,t){return e&&"string"===typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},c="utf8=%26%2310003%3B",u="utf8=%E2%9C%93",p=function(e,t){var r={__proto__:null},p=t.ignoreQueryPrefix?e.replace(/^\?/,""):e;p=p.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var f,h=t.parameterLimit===1/0?void 0:t.parameterLimit,y=p.split(t.delimiter,h),d=-1,m=t.charset;if(t.charsetSentinel)for(f=0;f-1&&(b=i(b)?[b]:b);var x=n.call(r,g);x&&"combine"===t.duplicates?r[g]=o.combine(r[g],b):x&&"last"!==t.duplicates||(r[g]=b)}return r},f=function(e,t,r,o){for(var n=o?t:l(t,r),i=e.length-1;i>=0;--i){var a,s=e[i];if("[]"===s&&r.parseArrays)a=r.allowEmptyArrays&&(""===n||r.strictNullHandling&&null===n)?[]:[].concat(n);else{a=r.plainObjects?{__proto__:null}:{};var c="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,u=r.decodeDotInKeys?c.replace(/%2E/g,"."):c,p=parseInt(u,10);r.parseArrays||""!==u?!isNaN(p)&&s!==u&&String(p)===u&&p>=0&&r.parseArrays&&p<=r.arrayLimit?(a=[],a[p]=n):"__proto__"!==u&&(a[u]=n):a={0:n}}n=a}return n},h=function(e,t,r,o){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,l=r.depth>0&&a.exec(i),c=l?i.slice(0,l.index):i,u=[];if(c){if(!r.plainObjects&&n.call(Object.prototype,c)&&!r.allowPrototypes)return;u.push(c)}var p=0;while(r.depth>0&&null!==(l=s.exec(i))&&p-1e3&&e<1e3||A.call(/e/,t))return t;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var o=e<0?-I(-e):I(e);if(o!==e){var n=String(o),i=S.call(t,n.length+1);return x.call(n,r,"$&_")+"."+x.call(x.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return x.call(t,r,"$&_")}var M=r(1),U=M.custom,B=X(U)?U:null,W={__proto__:null,double:'"',single:"'"},q={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};function $(e,t,r){var o=r.quoteStyle||t,n=W[o];return n+e+n}function H(e){return x.call(String(e),/"/g,""")}function G(e){return"[object Array]"===re(e)&&(!F||!("object"===typeof e&&F in e))}function J(e){return"[object Date]"===re(e)&&(!F||!("object"===typeof e&&F in e))}function K(e){return"[object RegExp]"===re(e)&&(!F||!("object"===typeof e&&F in e))}function z(e){return"[object Error]"===re(e)&&(!F||!("object"===typeof e&&F in e))}function V(e){return"[object String]"===re(e)&&(!F||!("object"===typeof e&&F in e))}function Q(e){return"[object Number]"===re(e)&&(!F||!("object"===typeof e&&F in e))}function Z(e){return"[object Boolean]"===re(e)&&(!F||!("object"===typeof e&&F in e))}function X(e){if(C)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!N)return!1;try{return N.call(e),!0}catch(t){}return!1}function Y(e){if(!e||"object"!==typeof e||!_)return!1;try{return _.call(e),!0}catch(t){}return!1}e.exports=function e(r,o,n,s){var l=o||{};if(te(l,"quoteStyle")&&!te(W,l.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(te(l,"maxStringLength")&&("number"===typeof l.maxStringLength?l.maxStringLength<0&&l.maxStringLength!==1/0:null!==l.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var p=!te(l,"customInspect")||l.customInspect;if("boolean"!==typeof p&&"symbol"!==p)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(te(l,"indent")&&null!==l.indent&&"\t"!==l.indent&&!(parseInt(l.indent,10)===l.indent&&l.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(te(l,"numericSeparator")&&"boolean"!==typeof l.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var f=l.numericSeparator;if("undefined"===typeof r)return"undefined";if(null===r)return"null";if("boolean"===typeof r)return r?"true":"false";if("string"===typeof r)return pe(r,l);if("number"===typeof r){if(0===r)return 1/0/r>0?"0":"-0";var h=String(r);return f?D(r,h):h}if("bigint"===typeof r){var y=String(r)+"n";return f?D(r,y):y}var d="undefined"===typeof l.depth?5:l.depth;if("undefined"===typeof n&&(n=0),n>=d&&d>0&&"object"===typeof r)return G(r)?"[Array]":"[Object]";var m=ge(l,n);if("undefined"===typeof s)s=[];else if(ne(s,r)>=0)return"[Circular]";function b(t,r,o){if(r&&(s=E.call(s),s.push(r)),o){var i={depth:l.depth};return te(l,"quoteStyle")&&(i.quoteStyle=l.quoteStyle),e(t,i,n+1,s)}return e(t,l,n+1,s)}if("function"===typeof r&&!K(r)){var v=oe(r),w=ve(r,b);return"[Function"+(v?": "+v:" (anonymous)")+"]"+(w.length>0?" { "+k.call(w,", ")+" }":"")}if(X(r)){var O=C?x.call(String(r),/^(Symbol\(.*\))_[^)]*$/,"$1"):N.call(r);return"object"!==typeof r||C?O:he(O)}if(ue(r)){for(var A="<"+j.call(String(r.nodeName)),I=r.attributes||[],T=0;T",A}if(G(r)){if(0===r.length)return"[]";var U=ve(r,b);return m&&!me(U)?"["+be(U,m)+"]":"[ "+k.call(U,", ")+" ]"}if(z(r)){var q=ve(r,b);return"cause"in Error.prototype||!("cause"in r)||R.call(r,"cause")?0===q.length?"["+String(r)+"]":"{ ["+String(r)+"] "+k.call(q,", ")+" }":"{ ["+String(r)+"] "+k.call(P.call("[cause]: "+b(r.cause),q),", ")+" }"}if("object"===typeof r&&p){if(B&&"function"===typeof r[B]&&M)return M(r,{depth:d-n});if("symbol"!==p&&"function"===typeof r.inspect)return r.inspect()}if(ie(r)){var ee=[];return a&&a.call(r,(function(e,t){ee.push(b(t,r,!0)+" => "+b(e,r))})),de("Map",i.call(r),ee,m)}if(le(r)){var fe=[];return u&&u.call(r,(function(e){fe.push(b(e,r))})),de("Set",c.call(r),fe,m)}if(ae(r))return ye("WeakMap");if(ce(r))return ye("WeakSet");if(se(r))return ye("WeakRef");if(Q(r))return he(b(Number(r)));if(Y(r))return he(b(_.call(r)));if(Z(r))return he(g.call(r));if(V(r))return he(b(String(r)));if("undefined"!==typeof window&&r===window)return"{ [object Window] }";if("undefined"!==typeof globalThis&&r===globalThis||"undefined"!==typeof t&&r===t)return"{ [object globalThis] }";if(!J(r)&&!K(r)){var we=ve(r,b),Se=L?L(r)===Object.prototype:r instanceof Object||r.constructor===Object,xe=r instanceof Object?"":"null prototype",Oe=!Se&&F&&Object(r)===r&&F in r?S.call(re(r),8,-1):xe?"Object":"",je=Se||"function"!==typeof r.constructor?"":r.constructor.name?r.constructor.name+" ":"",Ae=je+(Oe||xe?"["+k.call(P.call([],Oe||[],xe||[]),": ")+"] ":"");return 0===we.length?Ae+"{}":m?Ae+"{"+be(we,m)+"}":Ae+"{ "+k.call(we,", ")+" }"}return String(r)};var ee=Object.prototype.hasOwnProperty||function(e){return e in this};function te(e,t){return ee.call(e,t)}function re(e){return b.call(e)}function oe(e){if(e.name)return e.name;var t=w.call(v.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function ne(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,o=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,o="... "+r+" more character"+(r>1?"s":"");return pe(S.call(e,0,t.maxStringLength),t)+o}var n=q[t.quoteStyle||"single"];n.lastIndex=0;var i=x.call(x.call(e,n,"\\$1"),/[\x00-\x1f]/g,fe);return $(i,"single",t)}function fe(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+O.call(t.toString(16))}function he(e){return"Object("+e+")"}function ye(e){return e+" { ? }"}function de(e,t,r,o){var n=o?be(r,o):k.call(r,", ");return e+" ("+t+") {"+n+"}"}function me(e){for(var t=0;t=0)return!1;return!0}function ge(e,t){var r;if("\t"===e.indent)r="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;r=k.call(Array(e.indent+1)," ")}return{base:r,prev:k.call(Array(t+1),r)}}function be(e,t){if(0===e.length)return"";var r="\n"+t.prev+t.base;return r+k.call(e,","+r)+"\n"+t.prev}function ve(e,t){var r=G(e),o=[];if(r){o.length=e.length;for(var n=0;n-1?n(r):r}},5748:function(e,t,r){"use strict";r.r(t);var o=function(){var e=this,t=e._self._c;return t("div",[t("meta",{attrs:{name:"viewport",content:"width=device-width, initial-scale=0.5, maximum-scale=0.5"}}),t("header",{staticClass:"controls"},[e.disableStore?e._e():t("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-profilerSourceText"},model:{value:e.sourceText,callback:function(t){e.sourceText=t},expression:"sourceText"}}),e.disableStore?e._e():t("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{sessionKey:"lotus-profilerBakingSheet"},model:{value:e.bakingSheet,callback:function(t){e.bakingSheet=t},expression:"bakingSheet"}}),t("input",{attrs:{type:"file"},on:{change:e.onScoreChange}}),t("button",{on:{click:e.homePlayer}},[e._v("⏮")]),t("button",{attrs:{disabled:!e.midiPlayer},on:{click:e.togglePlayer}},[e._v(e._s(e.midiPlayer&&e.midiPlayer.isPlaying?"⏸":"▶"))]),t("CheckButton",{attrs:{content:"ꕯ"},model:{value:e.showCursor,callback:function(t){e.showCursor=t},expression:"showCursor"}}),t("CheckButton",{attrs:{content:"♩"},model:{value:e.noteHighlight,callback:function(t){e.noteHighlight=t},expression:"noteHighlight"}}),t("CheckButton",{attrs:{content:"🍞"},model:{value:e.bakingSheet,callback:function(t){e.bakingSheet=t},expression:"bakingSheet"}}),e.fps?t("span",{staticClass:"fps"},[t("em",[e._v(e._s(e.fps.toFixed(1)))]),e._v("fps")]):e._e()],1),t("main",{on:{scroll:e.onScroll}},[!e.bakingSheet&&e.svgHashTable?t("SheetSigns",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],ref:"signs",attrs:{hashTable:e.svgHashTable}}):e._e(),e.sheetDocument?t("SheetLive",{ref:"sheet",attrs:{doc:e.sheetDocument,midiNotation:e.midiNotation,pitchContextGroup:e.pitchContextGroup,midiPlayer:e.midiPlayer,scheduler:e.scheduler,showCursor:e.showCursor,noteHighlight:e.noteHighlight,bakingMode:e.bakingSheet,backgroundImages:e.bakingSheet?e.bakingImages:null,showPagesProgressively:e.showPagesProgressively},on:{"update:midiPlayer":function(t){e.midiPlayer=t},"update:midi-player":function(t){e.midiPlayer=t},midi:e.onMidi}}):e._e()],1),t("canvas",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],ref:"canvas"})])},n=[],i=r("0b16"),a=r.n(i),s=r("b047"),l=r.n(s),c=(r("8701"),r("5027")),u=r("9224"),p=r("f634"),f=r("32c1"),h=r("1151"),y=r("a31e"),d=r("1c3a"),m=r("c0d2");const g=e=>{if(e){const t=e.match(/\d+/g);if(t){const e=t.map(Number).reverse();return e.reduce((e,t,r)=>e+t*1e3**r,0)}}return-1};class b{constructor({onStatus:e=((...e)=>e)}={}){this.onStatus=e}static fromJSON(e,{measureLayout:t=y["b"].Full,onStatus:r=((...e)=>e),jsonHandle:o=(e=>e)}={}){const n=new b({onStatus:r});return n.scoreJSON=o(Object(p["b"])(e,b.classDict)),n.checkVersion(),n.onStatus("json loaded"),n.scoreJSON.lilyNotation&&(n.matchedIds=n.scoreJSON.lilyNotation.idSet,n.scoreJSON.doc.updateMatchedTokens(n.matchedIds)),t&&n.loadNotation(t),n}loadNotation(e,t){const r=this.scoreJSON.lilyNotation;if(r){const o=r.getMeasureIndices(e);this.midiNotation=r.toPerformingNotationWithEvents(o,{trackList:t}),this.pitchContextGroup=r.getContextGroup(o);const n=r.toPerformingNotation(o,{withRestTied:!0});this.scheduler=y["e"].createFromNotation(n,this.scoreJSON.doc.getTokenMap()),this.onStatus("notation loaded")}}bakeSheet(e){return console.assert(!!this.scoreJSON.doc,"sheetDocument is null."),console.assert(!!this.scoreJSON.hashTable,"hashTable is null."),console.assert(!!this.matchedIds,"matchedIds is null."),this.onStatus("baking sheet"),d["a"]({sheetDocument:this.scoreJSON.doc,hashTable:this.scoreJSON.hashTable,matchedIds:this.matchedIds,canvas:e})}checkVersion(){const e=g(u.version),t=g(this.scoreJSON.version);te&&console.warn(`The current Lotus API version[${u.version}] is behind this score bundle[${this.scoreJSON.version}]. If any score problem encountered, try to upgrade Lotus API.`),t>=0&&te.systems=e.rows)}}b.classDict={StaffToken:f["StaffToken"],SheetDocument:f["SheetDocument"],LilyNotation:y["d"],...y["c"],DictArray:m["a"],PitchContextTable:h["b"],PitchContext:h["a"]};var v=r("faa1");class w extends v["EventEmitter"]{constructor(e,{separator:t="\n\n\n\n"}={}){super(),this.reader=e,this.separator=t}async read(){let e="";while(1){const{done:t,value:r}=await this.reader.read();if(r){const t=new TextDecoder("utf-8").decode(r);e+=t;while(1){const t=e.indexOf(this.separator);if(!(t>=0))break;{const r=e.substr(0,t);this.emit("data",r),e=e.substr(t+this.separator.length)}}}if(t)break}e&&this.emit("data",e)}}var S=r("a139"),x=r("f7ce"),O=r("cdaf"),j=r("4e72"),A=r("ddcc"),P={name:"profiler",components:{SheetLive:S["a"],SheetSigns:x["a"],StoreInput:O["a"],BoolStoreInput:j["a"],CheckButton:A["a"]},data(){return{sourceText:null,sheetDocument:null,svgHashTable:null,midiNotation:null,scheduler:null,pitchContextGroup:null,midiPlayer:null,showCursor:!0,noteHighlight:!0,bakingSheet:!0,bakingImages:null,sourceBakingImages:null,fps:null,disableStore:!1,showPagesProgressively:!0}},async created(){this.logTime("created"),window.$main=this,this.watchFps();const e=a.a.parse(location.hash.substr(1),!0);e.query.score&&(this.disableStore=!0,this.loadScoreFromURL(e.query.score)),e.query.nobake&&(this.bakingSheet=!1)},methods:{logTime(e){console.log("[PROFILER]",e,performance.now())},onScoreChange(e){const t=e.target.files[0];if(t)return this.loadScoreFile(t)},onScroll:l()((function(){this.$refs.sheet.updatePageVisibility()}),60,{leading:!0}),async loadScoreFile(e){switch(this.logTime("file loading begin"),e.type){case"application/json":this.sourceText=await e.readAs("Text");break;case"application/zip":case"application/x-zip-compressed":{this.sourceText=null,await this.$nextTick();const{default:t}=await r.e("chunk-48b5b2a0").then(r.t.bind(null,"c4e3",7)),o=await t.loadAsync(e);this.sourceBakingImages=null;for(let e=0;1;++e){const t=o.file(`baking${e}.png`);if(!t)break;const r=await t.async("blob"),n=URL.createObjectURL(r);this.sourceBakingImages=this.sourceBakingImages||[],this.sourceBakingImages.push(n)}this.sourceBakingImages&&this.logTime(`baking images loaded [${this.sourceBakingImages.length}]`),this.sourceText=await o.file("score.json").async("text"),this.logTime("sourceText loaded.")}break;case"text/x-lilypond":case"text/lilypond-source":{const t=await e.readAs("Text"),r=new FormData;r.append("source",t),r.append("withLilyNotation",1);const o=await fetch("/advanced-engrave",{method:"POST",body:r});if(!o.ok)return this.error=await o.text(),void console.warn("advanced-engrave failed:",this.error);const n=new w(o.body.getReader());this.constructSheetFromStream(n)}break;default:console.log("unsupported type:",e.type)}},async loadScoreFromURL(e){this.logTime("URL fetching begin");const t=await fetch(e);if(!t.ok)return void console.warn("URL load failed:",await t.text());this.logTime("network responsed");const r=await t.blob();return this.loadScoreFile(r)},async loadSheet(){if(this.sheetDocument=null,this.midiNotation=null,this.scheduler=null,this.pitchContextGroup=null,this.bakingImages=null,this.sourceText){this.showPagesProgressively=!0;const e=b.fromJSON(this.sourceText,{onStatus:e=>this.logTime(e)});if(this.sheetDocument=e.scoreJSON.doc,this.pitchContextGroup=e.pitchContextGroup,this.midiNotation=e.midiNotation,this.scheduler=e.scheduler,this.svgHashTable=e.scoreJSON.hashTable,this.logTime("bundle parsed"),await this.$nextTick(),this.logTime("rendering initialized"),this.sourceBakingImages)this.bakingImages=this.sourceBakingImages,this.sourceBakingImages=null;else if(this.bakingSheet){this.bakingImages=[];const t=e.bakeSheet(this.$refs.canvas);this.logTime("baker loaded");for await(const e of t)this.bakingImages.push(e);this.logTime("baking finished")}await this.$nextTick(),this.logTime("rendering finished"),this.$refs.sheet.updatePageVisibility()}},async constructSheetFromStream(e){this.sheetDocument=null,this.midiNotation=null,this.scheduler=null,this.pitchContextGroup=null,this.bakingImages=null,this.svgHashTable={},this.showPagesProgressively=!1,this.bakingSheet=!1;const t=[];e.on("data",e=>{const r=Object(p["b"])(e,{...f,LilyNotation:y["d"],...y["c"]});if(console.log("data:",r),void 0!==r.page&&(t[r.page]=r.structure,this.svgHashTable={...this.svgHashTable,...r.hashTable},this.sheetDocument=new f["SheetDocument"]({pages:t})),r.lilyNotation){const e=r.lilyNotation,t=e.getMeasureIndices(y["b"].Full);this.midiNotation=e.toPerformingNotationWithEvents(t),this.pitchContextGroup=e.getContextGroup(t);const o=e.toPerformingNotation(t,{withRestTied:!0});this.scheduler=y["e"].createFromNotation(o,this.sheetDocument.getTokenMap())}}),await e.read()},onMidi(){},homePlayer(){this.midiPlayer&&this.midiPlayer.turnCursor(0)},togglePlayer(){this.midiPlayer&&(this.midiPlayer.isPlaying?this.midiPlayer.pause():this.midiPlayer.play())},async watchFps(){let e=performance.now(),t=0;while(1){await Object(c["a"])(),++t;const r=performance.now();r-e>1e3&&(this.fps=1e3*t/(r-e),t=0,e=r)}}},watch:{sourceText:"loadSheet"}},k=P,E=(r("ae16"),r("2877")),I=Object(E["a"])(k,o,n,!1,null,null,null);t["default"]=I.exports},"62e4":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"64b0":function(e,t,r){"use strict";var o=r("71c9"),n=function(){return!!o};n.hasArrayLengthDefineBug=function(){if(!o)return null;try{return 1!==o([],"length",{value:1}).length}catch(e){return!0}},e.exports=n},"67d9":function(e,t,r){"use strict";e.exports=URIError},"67ee":function(e,t,r){"use strict";e.exports=SyntaxError},"688e":function(e,t,r){"use strict";var o="Function.prototype.bind called on incompatible ",n=Object.prototype.toString,i=Math.max,a="[object Function]",s=function(e,t){for(var r=[],o=0;o3&&"boolean"!==typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!==typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!==typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!==typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,u=arguments.length>6&&arguments[6],p=!!a&&a(e,t);if(o)o(e,t,{configurable:null===c&&p?p.configurable:!c,enumerable:null===s&&p?p.enumerable:!s,value:r,writable:null===l&&p?p.writable:!l});else{if(!u&&(s||l||c))throw new n("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=r}}},9671:function(e,t,r){"use strict";var o=Function.prototype.call,n=Object.prototype.hasOwnProperty,i=r("0f7c");e.exports=i.call(o,n)},"9d88":function(e,t,r){(function(e,o){var n;/*! https://mths.be/punycode v1.4.1 by @mathias */(function(i){t&&t.nodeType,e&&e.nodeType;var a="object"==typeof o&&o;a.global!==a&&a.window!==a&&a.self;var s,l=2147483647,c=36,u=1,p=26,f=38,h=700,y=72,d=128,m="-",g=/^xn--/,b=/[^\x20-\x7E]/,v=/[\x2E\u3002\uFF0E\uFF61]/g,w={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},S=c-u,x=Math.floor,O=String.fromCharCode;function j(e){throw new RangeError(w[e])}function A(e,t){var r=e.length,o=[];while(r--)o[r]=t(e[r]);return o}function P(e,t){var r=e.split("@"),o="";r.length>1&&(o=r[0]+"@",e=r[1]),e=e.replace(v,".");var n=e.split("."),i=A(n,t).join(".");return o+i}function k(e){var t,r,o=[],n=0,i=e.length;while(n=55296&&t<=56319&&n65535&&(e-=65536,t+=O(e>>>10&1023|55296),e=56320|1023&e),t+=O(e),t})).join("")}function I(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:c}function _(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function T(e,t,r){var o=0;for(e=r?x(e/h):e>>1,e+=x(e/t);e>S*p>>1;o+=c)e=x(e/S);return x(o+(S+1)*e/(e+f))}function N(e){var t,r,o,n,i,a,s,f,h,g,b=[],v=e.length,w=0,S=d,O=y;for(r=e.lastIndexOf(m),r<0&&(r=0),o=0;o=128&&j("not-basic"),b.push(e.charCodeAt(o));for(n=r>0?r+1:0;n=v&&j("invalid-input"),f=I(e.charCodeAt(n++)),(f>=c||f>x((l-w)/a))&&j("overflow"),w+=f*a,h=s<=O?u:s>=O+p?p:s-O,fx(l/g)&&j("overflow"),a*=g}t=b.length+1,O=T(w-i,t,0==i),x(w/t)>l-S&&j("overflow"),S+=x(w/t),w%=t,b.splice(w++,0,S)}return E(b)}function C(e){var t,r,o,n,i,a,s,f,h,g,b,v,w,S,A,P=[];for(e=k(e),v=e.length,t=d,r=0,i=y,a=0;a=t&&bx((l-r)/w)&&j("overflow"),r+=(s-t)*w,t=s,a=0;al&&j("overflow"),b==t){for(f=r,h=c;;h+=c){if(g=h<=i?u:h>=i+p?p:h-i,f1){var t=e.pop(),r=t.obj[t.prop];if(i(r)){for(var o=[],n=0;n=f?s.slice(c,c+f):s,p=[],h=0;h=48&&y<=57||y>=65&&y<=90||y>=97&&y<=122||i===o.RFC1738&&(40===y||41===y)?p[p.length]=u.charAt(h):y<128?p[p.length]=a[y]:y<2048?p[p.length]=a[192|y>>6]+a[128|63&y]:y<55296||y>=57344?p[p.length]=a[224|y>>12]+a[128|y>>6&63]+a[128|63&y]:(h+=1,y=65536+((1023&y)<<10|1023&u.charCodeAt(h)),p[p.length]=a[240|y>>18]+a[128|y>>12&63]+a[128|y>>6&63]+a[128|63&y])}l+=p.join("")}return l},y=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],o=0;ospan{display:inline-block}.controls fieldset>*{margin:0 .2em}.controls>*,.controls fieldset>*{vertical-align:middle}header.controls{padding:1em;text-align:center;background-color:hsla(0,0%,100%,.6666666666666666)}header.controls button{font-size:24px}header.controls .dirty-badge{width:1em}header.controls .dirty-badge.dirty:before{content:"*"}header .fps{display:inline-block;margin:0 1em;color:#aaa}header .fps em{color:#000;display:inline-block;margin:0 .2em}main{width:100%;overflow:auto}main .sheet.live{white-space:nowrap;display:inline-block}main .sheet.live .page{display:inline-block;margin:1em;background-size:100%}main .sheet.live .cursor{fill:#add8e6}',""]),e.exports=t},bbc7:function(e,t,r){"use strict";var o=String.prototype.replace,n=/%20/g,i={RFC1738:"RFC1738",RFC3986:"RFC3986"};e.exports={default:i.RFC3986,formatters:{RFC1738:function(e){return o.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:i.RFC1738,RFC3986:i.RFC3986}},d009:function(e,t,r){"use strict";var o=r("00ce"),n=r("7992"),i=r("64b0")(),a=r("2aa9"),s=r("0d25"),l=o("%Math.floor%");e.exports=function(e,t){if("function"!==typeof e)throw new s("`fn` is not a function");if("number"!==typeof t||t<0||t>4294967295||l(t)!==t)throw new s("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],o=!0,c=!0;if("length"in e&&a){var u=a(e,"length");u&&!u.configurable&&(o=!1),u&&!u.writable&&(c=!1)}return(o||c||!r)&&(i?n(e,"length",t,!0,!0):n(e,"length",t)),e}},dc99:function(e,t,r){"use strict";e.exports=RangeError},f177:function(e,t,r){"use strict";var o=r("5402"),n=r("a29f"),i=r("bbc7"),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},l=Array.isArray,c=Array.prototype.push,u=function(e,t){c.apply(e,l(t)?t:[t])},p=Date.prototype.toISOString,f=i["default"],h={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:n.encode,encodeValuesOnly:!1,filter:void 0,format:f,formatter:i.formatters[f],indices:!1,serializeDate:function(e){return p.call(e)},skipNulls:!1,strictNullHandling:!1},y=function(e){return"string"===typeof e||"number"===typeof e||"boolean"===typeof e||"symbol"===typeof e||"bigint"===typeof e},d={},m=function e(t,r,i,a,s,c,p,f,m,g,b,v,w,S,x,O,j,A){var P=t,k=A,E=0,I=!1;while(void 0!==(k=k.get(d))&&!I){var _=k.get(t);if(E+=1,"undefined"!==typeof _){if(_===E)throw new RangeError("Cyclic object value");I=!0}"undefined"===typeof k.get(d)&&(E=0)}if("function"===typeof g?P=g(r,P):P instanceof Date?P=w(P):"comma"===i&&l(P)&&(P=n.maybeMap(P,(function(e){return e instanceof Date?w(e):e}))),null===P){if(c)return m&&!O?m(r,h.encoder,j,"key",S):r;P=""}if(y(P)||n.isBuffer(P)){if(m){var T=O?r:m(r,h.encoder,j,"key",S);return[x(T)+"="+x(m(P,h.encoder,j,"value",S))]}return[x(r)+"="+x(String(P))]}var N,C=[];if("undefined"===typeof P)return C;if("comma"===i&&l(P))O&&m&&(P=n.maybeMap(P,m)),N=[{value:P.length>0?P.join(",")||null:void 0}];else if(l(g))N=g;else{var F=Object.keys(P);N=b?F.sort(b):F}var R=f?String(r).replace(/\./g,"%2E"):String(r),L=a&&l(P)&&1===P.length?R+"[]":R;if(s&&l(P)&&0===P.length)return L+"[]";for(var D=0;D0?w+v:""}},faa1:function(e,t,r){"use strict";var o,n="object"===typeof Reflect?Reflect:null,i=n&&"function"===typeof n.apply?n.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};function a(e){console&&console.warn&&console.warn(e)}o=n&&"function"===typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!==e};function l(){l.init.call(this)}e.exports=l,e.exports.once=w,l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var c=10;function u(e){if("function"!==typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function p(e){return void 0===e._maxListeners?l.defaultMaxListeners:e._maxListeners}function f(e,t,r,o){var n,i,s;if(u(r),i=e._events,void 0===i?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),s=i[t]),void 0===s)s=i[t]=r,++e._eventsCount;else if("function"===typeof s?s=i[t]=o?[r,s]:[s,r]:o?s.unshift(r):s.push(r),n=p(e),n>0&&s.length>n&&!s.warned){s.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=s.length,a(l)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function y(e,t,r){var o={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},n=h.bind(o);return n.listener=r,o.wrapFn=n,n}function d(e,t,r){var o=e._events;if(void 0===o)return[];var n=o[t];return void 0===n?[]:"function"===typeof n?r?[n.listener||n]:[n]:r?v(n):g(n,n.length)}function m(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"===typeof r)return 1;if(void 0!==r)return r.length}return 0}function g(e,t){for(var r=new Array(t),o=0;o0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=n[e];if(void 0===l)return!1;if("function"===typeof l)i(l,this,t);else{var c=l.length,u=g(l,c);for(r=0;r=0;i--)if(r[i]===t||r[i].listener===t){a=r[i].listener,n=i;break}if(n<0)return this;0===n?r.shift():b(r,n),1===r.length&&(o[e]=r[0]),void 0!==o.removeListener&&this.emit("removeListener",e,a||t)}return this},l.prototype.off=l.prototype.removeListener,l.prototype.removeAllListeners=function(e){var t,r,o;if(r=this._events,void 0===r)return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var n,i=Object.keys(r);for(o=0;o=0;o--)this.removeListener(e,t[o]);return this},l.prototype.listeners=function(e){return d(this,e,!0)},l.prototype.rawListeners=function(e){return d(this,e,!1)},l.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},l.prototype.listenerCount=m,l.prototype.eventNames=function(){return this._eventsCount>0?o(this._events):[]}}}]); +//# sourceMappingURL=chunk-0cbfe13e.73856287.js.map \ No newline at end of file diff --git a/dist/js/chunk-117382e0.d47336d3.js b/dist/js/chunk-117382e0.d47336d3.js new file mode 100644 index 0000000000000000000000000000000000000000..318b99d3062c4f6e4b5a878aa1a413c6e4e451ba --- /dev/null +++ b/dist/js/chunk-117382e0.d47336d3.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-117382e0"],{"1e1a":function(e,t,a){"use strict";a("6b05")},"326e":function(e,t,a){var i=a("24fb");t=i(!1),t.push([e.i,".flex-engraver{width:100%;height:100vh}.flex-engraver header{position:absolute;width:100%;height:200px;background:#fafafa;display:flex;flex-direction:row;align-items:center;font-size:36px;overflow:hidden}.flex-engraver header>*{display:inline-block;font-size:inherit;margin:0 .5em}.flex-engraver header .source-list{min-width:8em}.flex-engraver header .gauge-view{height:100%}.flex-engraver header .dirty{font-weight:700;color:orange;cursor:pointer}.flex-engraver main{padding-top:200px;height:100%;background:#eee;white-space:nowrap}.flex-engraver main em{font-weight:700}.flex-engraver main .source-editor{height:calc(100% - 200px);vertical-align:top}.flex-engraver main .viewer{display:inline-block;position:relative;font-size:36px}.flex-engraver main .viewer .sheet-container{display:inline-block;resize:both;margin:2em;outline:1px solid #ccc;overflow:scroll;background:#fff}.flex-engraver main .viewer .sheet-container .sheet .page{margin:0}.flex-engraver main .viewer .sheet-container .loading-dots{background-color:transparent}.flex-engraver main .viewer .sheet-container .loading-dots .ellipsis{zoom:200%}.flex-engraver main .viewer .sheet-container .loading-dots .ellipsis>div{background-color:#4682b4}.flex-engraver main .viewer .container-size{display:inline-block;position:absolute;bottom:0;right:2em}.flex-engraver main .viewer .staff-size{display:inline-block;position:absolute;bottom:0;left:2em}.flex-engraver main .viewer .staff-size input{font-size:inherit}.flex-engraver main .viewer .staff-size .fit-staff-size{border:0}.flex-engraver main .viewer .staff-size .adjuster{display:inline-block;position:relative;margin:0 .6em;zoom:1.5}.flex-engraver main .viewer .staff-size .adjuster .slider{width:200px}.flex-engraver main .viewer .staff-size .adjuster .max,.flex-engraver main .viewer .staff-size .adjuster .min{display:inline-block;position:absolute;font-size:16px;top:3em;text-align:center}.flex-engraver main .viewer .staff-size .adjuster .max input,.flex-engraver main .viewer .staff-size .adjuster .min input{width:2em}.flex-engraver main .viewer .staff-size .adjuster .max .sheet,.flex-engraver main .viewer .staff-size .adjuster .min .sheet{position:absolute;top:120%;left:50%;transform:translate(-50%)}.flex-engraver main .viewer .staff-size .adjuster .min{left:0}.flex-engraver main .viewer .staff-size .adjuster .max{right:-2em}.flex-engraver main .staff-size-viewer{position:absolute;right:0;bottom:0}.flex-engraver main .staff-size-viewer input{width:4em}.flex-engraver.drag-hover header{background-color:#cfc;outline:4px dashed #4f4}",""]),e.exports=t},"6b05":function(e,t,a){var i=a("326e");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);var n=a("499e").default;n("44bd81af",i,!0,{sourceMap:!1,shadowMode:!1})},e168:function(e,t,a){"use strict";a.r(t);var i=function(){var e=this,t=e._self._c;return t("div",{staticClass:"flex-engraver",class:{"drag-hover":e.dragHover},on:{dragover:function(t){t.preventDefault(),e.dragHover=!0},dragleave:function(t){e.dragHover=!1},drop:function(t){return t.preventDefault(),e.onDropFile.apply(null,arguments)}}},[t("header",[t("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-flexEngraverContainerWidth"},model:{value:e.containerSize.offsetWidth,callback:function(t){e.$set(e.containerSize,"offsetWidth",t)},expression:"containerSize.offsetWidth"}}),t("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-flexEngraverContainerHeight"},model:{value:e.containerSize.offsetHeight,callback:function(t){e.$set(e.containerSize,"offsetHeight",t)},expression:"containerSize.offsetHeight"}}),t("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-flexEngraverChosenSourceIndex"},model:{value:e.chosenSourceIndex,callback:function(t){e.chosenSourceIndex=t},expression:"chosenSourceIndex"}}),t("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-flexEngraverStaffSizeRangeMin"},model:{value:e.staffSizeRange.min,callback:function(t){e.$set(e.staffSizeRange,"min",t)},expression:"staffSizeRange.min"}}),t("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-flexEngraverStaffSizeRangeMaX"},model:{value:e.staffSizeRange.max,callback:function(t){e.$set(e.staffSizeRange,"max",t)},expression:"staffSizeRange.max"}}),t("StoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-flexEngraverFitStaffSize"},model:{value:e.fitStaffSize,callback:function(t){e.fitStaffSize=t},expression:"fitStaffSize"}}),t("BoolStoreInput",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{localKey:"lotus-flexEngraverFixStaffSize"},model:{value:e.fixStaffSize,callback:function(t){e.fixStaffSize=t},expression:"fixStaffSize"}}),t("select",{directives:[{name:"model",rawName:"v-model",value:e.chosenSourceIndex,expression:"chosenSourceIndex"}],staticClass:"source-list",on:{change:function(t){var a=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.chosenSourceIndex=t.target.multiple?a:a[0]}}},e._l(e.sourceList,(function(a,i){return t("option",{key:i,domProps:{value:i}},[e._v(e._s(a.name))])})),0),t("span",{staticClass:"dirty",on:{click:e.saveSource}},[e._v(e._s(e.sourceDirty?"*":" "))]),t("button",{on:{click:e.removeCurrentSource}},[e._v("🗑")]),t("button",{on:{click:e.gauge}},[e._v("📏")]),t("button",{on:{click:e.renderSheet}},[e._v("🎼")]),t("button",{attrs:{title:"copy lilypond source"},on:{click:e.copySource}},[e._v("⎘")]),t("button",{attrs:{title:"export scores json"},on:{click:e.exportSourceList}},[e._v("⤓")]),e.gaugeSvgDoc?t("div",{staticClass:"gauge-view"},[e.gaugeSvgDoc?t("SheetSimple",{attrs:{documents:[e.gaugeSvgDoc]}}):e._e()],1):e._e()],1),t("main",[e.currentSource?t("SourceEditor",{attrs:{source:e.currentSource.content},on:{"update:source":function(t){return e.$set(e.currentSource,"content",t)}}}):e._e(),t("div",{staticClass:"viewer"},[t("div",{ref:"sheetContainer",staticClass:"sheet-container",style:{width:e.containerSize.offsetWidth+"px",height:e.containerSize.offsetHeight+"px"},on:{mousemove:e.updateContainerSize}},[e.containerSvgs?t("SheetSimple",{attrs:{documents:e.containerSvgs}}):e._e(),t("Loading",{directives:[{name:"show",rawName:"v-show",value:e.containerEngraving,expression:"containerEngraving"}]})],1),t("div",{staticClass:"container-size"},[t("span",[e._v(e._s(e.containerSize.width))]),e._v(" × "),t("span",[e._v(e._s(e.containerSize.height))])]),e.fitStaffSize?t("div",{staticClass:"staff-size"},[t("em",[e._v(e._s(e.fitStaffSize.toFixed(2)))]),e._v(" pt "),t("span",{staticClass:"adjuster"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.fixStaffSize,expression:"fixStaffSize"}],attrs:{type:"checkbox",title:"fix staff size"},domProps:{checked:Array.isArray(e.fixStaffSize)?e._i(e.fixStaffSize,null)>-1:e.fixStaffSize},on:{change:function(t){var a=e.fixStaffSize,i=t.target,n=!!i.checked;if(Array.isArray(a)){var r=null,s=e._i(a,r);i.checked?s<0&&(e.fixStaffSize=a.concat([r])):s>-1&&(e.fixStaffSize=a.slice(0,s).concat(a.slice(s+1)))}else e.fixStaffSize=n}}}),t("input",{directives:[{name:"model",rawName:"v-model.number",value:e.fitStaffSize,expression:"fitStaffSize",modifiers:{number:!0}}],staticClass:"slider",attrs:{type:"range",disabled:!e.fixStaffSize,min:e.staffSizeRange.min,max:e.staffSizeRange.max,step:"any"},domProps:{value:e.fitStaffSize},on:{change:e.delayRenderSheet,__r:function(t){e.fitStaffSize=e._n(t.target.value)},blur:function(t){return e.$forceUpdate()}}}),t("span",{staticClass:"min"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.staffSizeRange.min,expression:"staffSizeRange.min"}],attrs:{type:"number"},domProps:{value:e.staffSizeRange.min},on:{change:e.updateStaffSampleMin,input:function(t){t.target.composing||e.$set(e.staffSizeRange,"min",t.target.value)}}}),e.staffSampleSvgMin?t("SheetSimple",{attrs:{documents:[e.staffSampleSvgMin]}}):e._e()],1),t("span",{staticClass:"max"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.staffSizeRange.max,expression:"staffSizeRange.max"}],attrs:{type:"number"},domProps:{value:e.staffSizeRange.max},on:{change:e.updateStaffSampleMax,input:function(t){t.target.composing||e.$set(e.staffSizeRange,"max",t.target.value)}}}),e.staffSampleSvgMax?t("SheetSimple",{attrs:{documents:[e.staffSampleSvgMax]}}):e._e()],1)])]):e._e()])],1)])},n=[],r=a("8701"),s=a("5027"),o=a("010e"),c=a("bc9f"),l=a("f634"),f=a("32c1"),u=a("1f25"),h=a("3122"),g=a("cdaf"),S=a("4e72"),d=a("94c1"),v=a("488d");const m=e=>`\n\t\t#(set-global-staff-size ${e})\n\t\t\\paper {\n\t\t\tpaper-width = ${.16*e}\\cm\n\t\t\tpaper-height = ${.08*e}\\cm\n\t\t\ttop-margin = 0\n\t\t\tbottom-margin = 0\n\t\t\tleft-margin = 0.2\\cm\n\t\t\tright-margin = 0\n\t\t}\n\t\t\\layout\n\t\t{\n\t\t\tindent = 0\n\t\t}\n\t\t{c'1}\n\t`,p=e=>e.replace(/(?:>)[^<>]+lilypond.org(?=<)/g,"");var x={name:"flex-engraver",components:{SourceEditor:h["a"],StoreInput:g["a"],BoolStoreInput:S["a"],SheetSimple:d["a"],Loading:v["a"]},data(){return{containerSize:{width:100,height:100,offsetWidth:1215,offsetHeight:495},dragHover:!1,sourceList:[],chosenSourceIndex:0,sourceDirty:!1,gaugeSvgDoc:null,staffSizeRange:{min:10,max:40},containerSvgs:null,containerEngraving:!1,staffSampleSvgMin:null,staffSampleSvgMax:null,fitStaffSize:24,fixStaffSize:!1}},computed:{currentSource(){return this.sourceList[this.chosenSourceIndex]},currentSourceContent(){return this.currentSource&&this.currentSource.content},containerSizeHash(){return`${this.containerSize.width},${this.containerSize.height}`}},async created(){window.$main=this,this.loadSource(),this.lilyParser=await Object(o["a"])(a.e("chunk-2d0db258").then(a.t.bind(null,"6f2d",7))),console.log("Lilypond parser loaded."),this.updateStaffSamples()},async mounted(){await this.$nextTick(),this.updateContainerSize()},beforeDestroy(){this.checkAndSaveSource()},methods:{updateContainerSize({widthOffset:e=!0}={}){this.containerSize.width=this.$refs.sheetContainer.clientWidth,this.containerSize.height=this.$refs.sheetContainer.clientHeight,e&&(this.containerSize.offsetWidth=this.$refs.sheetContainer.offsetWidth,this.containerSize.offsetHeight=this.$refs.sheetContainer.offsetHeight)},async onDropFile(e){this.dragHover=!1;const t=e.dataTransfer.files[0];if(t)switch(t.type){case"text/x-lilypond":case"text/lilypond-source":const e=await t.readAs("Text"),a=t.name.replace(/\.ly$/,"");this.sourceList.push({name:a,content:e}),this.sourceDirty=!0;break}},removeCurrentSource(){this.sourceList.splice(this.chosenSourceIndex,1),this.chosenSourceIndex=Math.min(this.chosenSourceIndex,this.sourceList.length-1)},loadSource(){localStorage.lotusFlexEngraverSources&&(this.sourceList=JSON.parse(localStorage.lotusFlexEngraverSources),console.log("Source list loaded.")),this.sourceDirty=!1},saveSource(){localStorage.lotusFlexEngraverSources=JSON.stringify(this.sourceList),console.log("Source list saved."),this.sourceDirty=!1},checkAndSaveSource(){this.sourceDirty&&this.saveSource()},async gauge(){const e=20,t=1e4,a=2,i=new c["a"](await this.lilyParser.parse(this.currentSourceContent)),n=i.globalAttributes();n.staffSize.value=e,n.paperWidth.value.number=t,n.paperHeight.value.number=1e3,n.raggedLast.value=!0,n.topMargin.value=0,n.leftMargin.value=0;const r=i.toString();try{const s=await this.engrave(r,{tokenize:!0});this.gaugeSvgDoc=s.svgs[0],console.assert(1===s.svgs.length,"invalid page count:",s);const o=Object(l["b"])(s.doc,{StaffToken:f["StaffToken"],SheetDocument:f["SheetDocument"]}),u=o.pages[0].systems[0],h=t/o.pages[0].viewBox.width/e,g=u.width*h,S=(u.bottom-u.top)*h;n.paperWidth.value.number=a;const d=await this.engrave(i.toString(),{tokenize:!0});console.assert(1===d.svgs.length,"invalid page count:",d);const v=Object(l["b"])(d.doc,{StaffToken:f["StaffToken"],SheetDocument:f["SheetDocument"]}),m=v.pages[0].systems,p=Array(m.length-1).fill(null).map((e,t)=>m[t+1].y-m[t].y),x=Math.max(u.bottom-u.top,...p)*h-S,w=new c["a"](await this.lilyParser.parse(this.currentSourceContent));w.root.appendAssignment("naturalWidth",g),w.root.appendAssignment("naturalHeight",S),w.root.appendAssignment("systemSpacing",x),this.currentSource.content=w.toString(),this.checkAndSaveSource()}catch(s){console.warn("Engraving failed:",s)}},async engrave(e,{tokenize:t}={}){const a=new FormData;a.append("source",e),t&&a.append("tokenize",t);const i=await fetch("/engrave",{method:"POST",body:a});if(!i.ok)throw new Error(await i.text());return i.json()},async fitContainer(){if(!this.lilyParser||!this.currentSourceContent)return null;const e=new c["a"](await this.lilyParser.parse(this.currentSourceContent)),t=e.root.getField("naturalWidth"),a=e.root.getField("naturalHeight"),i=e.root.getField("systemSpacing");if(!t||!a||!i)return console.log("natural size is not set.",t,a),null;const n=t.value,r=a.value,s=i.value+.04,o=e.globalAttributes(),l=this.containerSize.width/u["a"],f=(this.containerSize.height-9)/u["a"],h=e=>o[e].value?o[e].value.number:null,g=h("leftMargin")||u["d"],S=h("rightMargin")||u["d"],d=h("topMargin")||u["f"],v=h("bottomMargin")||u["c"],m=f-d-v,p=l-g-S;let x=1,w=null;if(this.fixStaffSize){w=this.fitStaffSize;const e=(n-u["g"])*w/(p-u["g"]*w);x=Math.ceil(e-.2)}else{for(;x<1e3;++x){const e=m/(r*x+s*(x-1));if(e1&&(o.leftMargin.value={proto:"NumberUnit",number:t,unit:"\\cm"},o.rightMargin.value={proto:"NumberUnit",number:t,unit:"\\cm"})}return o.staffSize.value=w,o.paperWidth.value={proto:"NumberUnit",number:l,unit:"\\cm"},o.paperHeight.value={proto:"NumberUnit",number:f,unit:"\\cm"},o.raggedLast.value=x<=1&&z<.8,this.fixStaffSize||(this.fitStaffSize=w),e.toString()},async renderSheet(){const e=await this.fitContainer();if(!e)return;this.containerEngraving=!0;const t=await this.engrave(e,{tokenize:!1});this.containerSvgs=t.svgs,this.containerSvgs=this.containerSvgs.map(p),this.containerEngraving=!1},async exportScore(){const e=await this.fitContainer();if(!e)return void console.warn("no source.");const t=await this.engrave(e,{tokenize:!0}),a={doc:Object(l["b"])(t.doc,{StaffToken:f["StaffToken"],SheetDocument:f["SheetDocument"]}),midi:t.midi,hashTable:t.hashTable},i=new Blob([JSON.stringify(a)]);Object(r["a"])(URL.createObjectURL(i),"score.json")},async copySource(){const e=await this.fitContainer();navigator.clipboard.writeText(e),console.log("Source copyed.")},async exportSourceList(){const e=JSON.stringify(this.sourceList),t=new Blob([e],{type:"text/plain"});Object(r["a"])(URL.createObjectURL(t),"FlexEngraverSources.json")},async delayRenderSheet(){await Object(s["b"])("renderSheet",500)&&this.renderSheet()},async engraveSample(e){const t=m(e),a=await this.engrave(t);return a.svgs[0]},async updateStaffSampleMin(){this.staffSampleSvgMin=p(await this.engraveSample(this.staffSizeRange.min))},async updateStaffSampleMax(){this.staffSampleSvgMax=p(await this.engraveSample(this.staffSizeRange.max))},updateStaffSamples(){this.updateStaffSampleMin(),this.updateStaffSampleMax()}},watch:{currentSourceContent(e,t){e&&void 0!==t&&(this.sourceDirty=!0)},async chosenSourceIndex(){this.gaugeSvgDoc=null,this.checkAndSaveSource(),await this.$nextTick(),this.sourceDirty=!1,this.renderSheet()},containerSizeHash:"delayRenderSheet",fixStaffSize(e){e||this.delayRenderSheet()}}},w=x,z=(a("1e1a"),a("2877")),b=Object(z["a"])(w,i,n,!1,null,null,null);t["default"]=b.exports}}]); +//# sourceMappingURL=chunk-117382e0.d47336d3.js.map \ No newline at end of file diff --git a/dist/js/chunk-2d0c53c7.d24941b8.js b/dist/js/chunk-2d0c53c7.d24941b8.js new file mode 100644 index 0000000000000000000000000000000000000000..71f7f35507da4692de965ba828c160734ff08aef --- /dev/null +++ b/dist/js/chunk-2d0c53c7.d24941b8.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0c53c7"],{"3ddd":function(C,J){C.exports="data:;base64,CiV7Cgljb25zdCByb290ID0gKHR5cGUsIGRhdGEpID0+ICh7X19wcm90b3R5cGU6ICJNZXNhdXJlTGF5b3V0IiwgdHlwZSwgZGF0YX0pOwoKCWNvbnN0IHNpbmdsZUxheW91dCA9IG4gPT4gKHtfX3Byb3RvdHlwZTogIlNpbmdsZU1MYXlvdXQiLCBtZWFzdXJlOiBOdW1iZXIobil9KTsKCWNvbnN0IGJsb2NrTGF5b3V0ID0gc2VxID0+ICh7X19wcm90b3R5cGU6ICJCbG9ja01MYXlvdXQiLCBzZXF9KTsKCWNvbnN0IHZvbHRhQmxvY2sgPSAodGltZXMsIGJvZHksIGFsdGVybmF0ZXMpID0+ICh7X19wcm90b3R5cGU6ICJWb2x0YU1MYXlvdXQiLCB0aW1lczogTnVtYmVyKHRpbWVzKSwgYm9keSwgYWx0ZXJuYXRlc30pOwoJY29uc3QgYWJhQmxvY2sgPSAobWFpbiwgcmVzdCkgPT4gKHtfX3Byb3RvdHlwZTogIkFCQU1MYXlvdXQiLCBtYWluLCByZXN0fSk7CgoJY29uc3Qgc2VnbWVudCA9IG4gPT4gKHtzZWdtZW50OiB0cnVlLCBsZW5ndGg6IE51bWJlcihuKX0pOwoKCWNvbnN0IGFsdGVybmF0ZXMgPSBpdGVtcyA9PiBpdGVtcy5tYXAoaXRlbSA9PiB7CgkJaWYgKGl0ZW0uX19wcm90b3R5cGUgPT09ICJCbG9ja01MYXlvdXQiKQoJCQlyZXR1cm4gaXRlbS5zZXE7CgoJCXJldHVybiBbaXRlbV07Cgl9KTsKCgljb25zdCByYW5nZSA9IChzdGFydCwgZW5kKSA9PiB7CgkJc3RhcnQgPSBOdW1iZXIoc3RhcnQpOwoJCWVuZCA9IE51bWJlcihlbmQpOwoKCQlpZiAoIShlbmQgPj0gc3RhcnQpKQoJCQl0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbWVhc3VyZSByYW5nZTogJHtzdGFydH0uLiR7ZW5kfWApOwoKCQlyZXR1cm4gQXJyYXkoZW5kICsgMSAtIHN0YXJ0KS5maWxsKDApLm1hcCgoXywgaSkgPT4gc2luZ2xlTGF5b3V0KHN0YXJ0ICsgaSkpOwoJfTsKCgoJY29uc3Qgc2VyaWFsaXplU2VxID0gKGl0ZW0sIG9wdGlvbnMpID0+IHsKCQlpZiAoaXRlbS5zZWdtZW50KSB7CgkJCWNvbnN0IGluZGV4ID0gb3B0aW9ucy5pbmRleDsKCQkJb3B0aW9ucy5pbmRleCArPSBpdGVtLmxlbmd0aDsKCgkJCXJldHVybiBBcnJheShpdGVtLmxlbmd0aCkuZmlsbCgwKS5tYXAoKF8sIGkpID0+IHNpbmdsZUxheW91dChpbmRleCArIGkpKTsKCQl9CgoJCXJldHVybiBbc2VyaWFsaXplKGl0ZW0sIG9wdGlvbnMpXTsKCX07CgoJY29uc3Qgc2VyaWFsaXplID0gKGl0ZW0sIG9wdGlvbnMgPSB7aW5kZXg6IDF9KSA9PiB7CgkJY29uc3Qgc3BlYXJkID0gc2VxID0+IFtdLmNvbmNhdCguLi5zZXEubWFwKGl0ID0+IHNlcmlhbGl6ZVNlcShpdCwgb3B0aW9ucykpKTsKCgkJc3dpdGNoIChpdGVtLl9fcHJvdG90eXBlKSB7CgkJY2FzZSAiQmxvY2tNTGF5b3V0IjoKCQkJaXRlbS5zZXEgPSBzcGVhcmQoaXRlbS5zZXEpOwoKCQkJYnJlYWs7CgkJY2FzZSAiVm9sdGFNTGF5b3V0IjoKCQkJaXRlbS5ib2R5ID0gc3BlYXJkKGl0ZW0uYm9keSk7CgkJCWl0ZW0uYWx0ZXJuYXRlcyA9IGl0ZW0uYWx0ZXJuYXRlcyAmJiBpdGVtLmFsdGVybmF0ZXMubWFwKHNwZWFyZCk7CgoJCQlicmVhazsKCQljYXNlICJBQkFNTGF5b3V0IjoKCQkJaXRlbS5tYWluID0gc2VyaWFsaXplKGl0ZW0ubWFpbiwgb3B0aW9ucyk7CgkJCWl0ZW0ucmVzdCA9IHNwZWFyZChpdGVtLnJlc3QpOwoKCQkJYnJlYWs7CgkJfQoKCQlyZXR1cm4gaXRlbTsKCX07CiV9CgoKJWxleAoKJW9wdGlvbiBmbGV4IHVuaWNvZGUKCkEJCQkJCVthLXpdCk4JCQkJCVsxLTldCk4wCQkJCQlbMC05XQpVTlNJR05FRAkJCXtOfXtOMH0qCldPUkQJCQkJe0F9KwoKU1BFQ0lBTAkJCQlbKixcW1xdPD57fV0KCgolJQoKXHMrCQkJCQkJCQkJe30JLy8gc3BhY2VzCgp7U1BFQ0lBTH0JCQkJCQkJcmV0dXJuIHl5dGV4dDsKCntVTlNJR05FRH0JCQkJCQkJcmV0dXJuICdVTlNJR05FRCcKe1dPUkR9IjoiCQkJCQkJCXJldHVybiB5eXRleHQKIi4uIgkJCQkJCQkJcmV0dXJuIHl5dGV4dAoKPDxFT0Y+PgkJCQkJCQkJcmV0dXJuICdFT0YnOwoKCi9sZXgKCiVzdGFydCBzdGFydF9zeW1ib2wKCiUlCgpzdGFydF9zeW1ib2wKCTogbWVhc3VyZV9sYXlvdXQgRU9GCgkJewoJCQlyZXR1cm4gJDE7CgkJfQoJOwoKbWVhc3VyZV9sYXlvdXQKCTogaW5kZXhfd2lzZV9tZWFzdXJlX2xheW91dAoJCXskJCA9IHJvb3QobnVsbCwgJDEpO30KCXwgJ2k6JyBpbmRleF93aXNlX21lYXN1cmVfbGF5b3V0CgkJeyQkID0gcm9vdCgiaW5kZXgtd2lzZSIsICQyKTt9Cgl8ICdzOicgc2VnbWVudF93aXNlX21lYXN1cmVfbGF5b3V0CgkJeyQkID0gcm9vdCgic2VnbWVudC13aXNlIiwgc2VyaWFsaXplKCQyKSk7fQoJOwoKCmluZGV4X3dpc2VfbWVhc3VyZV9sYXlvdXQKCTogaXdfc2VxdWVuY2UKCQl7CgkJCWlmICgkMS5sZW5ndGggPT09IDEgJiYgJDFbMF0uX19wcm90b3R5cGUgPT09ICJCbG9ja01MYXlvdXQiKQoJCQkJJCQgPSAkMVswXTsKCQkJZWxzZQoJCQkJJCQgPSBibG9ja0xheW91dCgkMSk7CgkJfQoJOwoKaXdfc2VxdWVuY2UKCTogaXdfaXRlbQoJCXskJCA9IFskMV07fQoJfCByYW5nZQoJCXskJCA9ICQxO30KCXwgaXdfc2VxdWVuY2UgJywnIGl3X2l0ZW0KCQl7JCQgPSBbLi4uJDEsICQzXTt9Cgl8IGl3X3NlcXVlbmNlICcsJyByYW5nZQoJCXskJCA9IFsuLi4kMSwgLi4uJDNdO30KCTsKCnJhbmdlCgk6IFVOU0lHTkVEICcuLicgVU5TSUdORUQKCQl7JCQgPSByYW5nZSgkMSwgJDMpO30KCTsKCml3X2l0ZW0KCTogc2luZ2xlCgkJeyQkID0gJDE7fQoJfCBpd19ibG9ja19pdGVtCgkJeyQkID0gJDE7fQoJfCBpd192b2x0YQoJCXskJCA9ICQxO30KCXwgaXdfYWJhCgkJeyQkID0gJDE7fQoJOwoKc2luZ2xlCgk6IFVOU0lHTkVECgkJeyQkID0gc2luZ2xlTGF5b3V0KCQxKTt9Cgk7Cgppd19ibG9ja19pdGVtCgk6IGl3X2Jsb2NrCgkJeyQkID0gYmxvY2tMYXlvdXQoJDEpO30KCTsKCml3X2Jsb2NrCgk6ICdbJyBpd19zZXF1ZW5jZSAnXScKCQl7JCQgPSAkMjt9Cgk7Cgppd192b2x0YQoJOiBVTlNJR05FRCAnKicgaXdfYmxvY2sgaXdfb3B0aW9uYWxfYWx0ZXJuYXRlcwoJCXskJCA9IHZvbHRhQmxvY2soJDEsICQzLCAkNCk7fQoJOwoKaXdfb3B0aW9uYWxfYWx0ZXJuYXRlcwoJOiAlZW1wdHkKCQl7JCQgPSBudWxsO30KCXwgaXdfYWx0ZXJuYXRlcwoJCXskJCA9ICQxO30KCTsKCml3X2FsdGVybmF0ZXMKCTogJ3snIGl3X3NlcXVlbmNlICd9JwoJCXskJCA9IGFsdGVybmF0ZXMoJDIpO30KCTsKCml3X2FiYQoJOiAnPCcgaXdfaXRlbSAnLCcgaXdfc2VxdWVuY2UgJz4nCgkJeyQkID0gYWJhQmxvY2soJDIsICQ0KTt9Cgk7CgoKc2VnbWVudF93aXNlX21lYXN1cmVfbGF5b3V0Cgk6IHN3X3NlcXVlbmNlCgkJewoJCQlpZiAoJDEubGVuZ3RoID09PSAxICYmICQxWzBdLl9fcHJvdG90eXBlID09PSAiQmxvY2tNTGF5b3V0IikKCQkJCSQkID0gJDFbMF07CgkJCWVsc2UKCQkJCSQkID0gYmxvY2tMYXlvdXQoJDEpOwoJCX0KCTsKCnN3X3NlcXVlbmNlCgk6IHN3X2l0ZW0KCQl7JCQgPSBbJDFdO30KCXwgc3dfc2VxdWVuY2Ugc3dfaXRlbQoJCXskJCA9IFsuLi4kMSwgJDJdO30KCTsKCnN3X2l0ZW0KCTogc2VnbWVudAoJCXskJCA9IGJsb2NrTGF5b3V0KFskMV0pO30KCXwgc3dfYmxvY2tfaXRlbQoJCXskJCA9ICQxO30KCXwgc3dfdm9sdGEKCQl7JCQgPSAkMTt9Cgl8IHN3X2FiYQoJCXskJCA9ICQxO30KCTsKCnNlZ21lbnQKCTogVU5TSUdORUQKCQl7JCQgPSBzZWdtZW50KCQxKTt9Cgk7Cgpzd19ibG9ja19pdGVtCgk6IHN3X2Jsb2NrCgkJeyQkID0gYmxvY2tMYXlvdXQoJDEpO30KCTsKCnN3X2Jsb2NrCgk6ICdbJyBzd19zZXF1ZW5jZSAnXScKCQl7JCQgPSAkMjt9Cgk7Cgpzd192b2x0YQoJOiBVTlNJR05FRCAnKicgc3dfYmxvY2sgc3dfb3B0aW9uYWxfYWx0ZXJuYXRlcwoJCXskJCA9IHZvbHRhQmxvY2soJDEsICQzLCAkNCk7fQoJOwoKc3dfb3B0aW9uYWxfYWx0ZXJuYXRlcwoJOiAlZW1wdHkKCQl7JCQgPSBudWxsO30KCXwgc3dfYWx0ZXJuYXRlcwoJCXskJCA9ICQxO30KCTsKCnN3X2FsdGVybmF0ZXMKCTogJ3snIHN3X3NlcXVlbmNlICd9JwoJCXskJCA9IGFsdGVybmF0ZXMoJDIpO30KCTsKCnN3X2FiYQoJOiAnPCcgc3dfaXRlbSBzd19zZXF1ZW5jZSAnPicKCQl7JCQgPSBhYmFCbG9jaygkMiwgJDMpO30KCTsK"}}]); +//# sourceMappingURL=chunk-2d0c53c7.d24941b8.js.map \ No newline at end of file diff --git a/dist/js/chunk-2d0db258.a4804a7a.js b/dist/js/chunk-2d0db258.a4804a7a.js new file mode 100644 index 0000000000000000000000000000000000000000..a75c5dda62b68f2fdc74924e0c6687d1af6a5552 --- /dev/null +++ b/dist/js/chunk-2d0db258.a4804a7a.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0db258"],{"6f2d":function(C,J){C.exports="data:;base64,CiV7Cgljb25zdCBwcmVmZXJOdW1iZXIgPSB4ID0+IE51bWJlci5pc0Zpbml0ZShOdW1iZXIoeCkpID8gTnVtYmVyKHgpIDogeDsKCgljb25zdCBsb2NhdGlvbiA9IChiZWdpbiwgZW5kKSA9PiAoe3Byb3RvOiAiX1BMQUlOIiwgbGluZXM6IFtiZWdpbi5maXJzdF9saW5lLCBlbmQubGFzdF9saW5lXSwgY29sdW1uczogW2JlZ2luLmZpcnN0X2NvbHVtbiwgZW5kLmxhc3RfY29sdW1uXX0pOwoKCWNvbnN0IGNvbW1hbmRTdWJQcm90b3MgPSB7CgkJbWFya3VwOiAiTWFya3VwQ29tbWFuZCIsCgkJcmVwZWF0OiAiUmVwZWF0IiwKCQlyZWxhdGl2ZTogIlJlbGF0aXZlIiwKCQlwYXJhbGxlbE11c2ljOiAiUGFyYWxsZWxNdXNpYyIsCgkJdGltZTogIlRpbWVTaWduYXR1cmUiLAoJCXBhcnRpYWw6ICJQYXJ0aWFsIiwKCQl0aW1lczogIlRpbWVzIiwKCQl0dXBsZXQ6ICJUdXBsZXQiLAoJCWNsZWY6ICJDbGVmIiwKCQlrZXk6ICJLZXlTaWduYXR1cmUiLAoJCW90dGF2YTogIk9jdGF2ZVNoaWZ0IiwKCQlpbmNsdWRlOiAiSW5jbHVkZSIsCgkJdmVyc2lvbjogIlZlcnNpb24iLAoJCWx5cmljbW9kZTogIkx5cmljTW9kZSIsCgkJY2hvcmRtb2RlOiAiQ2hvcmRNb2RlIiwKCQlncmFjZTogIkdyYWNlIiwKCQlhY2NpYWNjYXR1cmE6ICJHcmFjZSIsCgkJYXBwb2dnaWF0dXJhOiAiR3JhY2UiLAoJCXNsYXNoZWRHcmFjZTogIkdyYWNlIiwKCQlhZnRlckdyYWNlOiAiQWZ0ZXJHcmFjZSIsCgkJbGFuZ3VhZ2U6ICJMYW5ndWFnZSIsCgkJdHJhbnNwb3NpdGlvbjogIlRyYW5zcG9zaXRpb24iLAoJCXN0ZW1VcDogIlN0ZW1EaXJlY3Rpb24iLAoJCXN0ZW1Eb3duOiAiU3RlbURpcmVjdGlvbiIsCgkJc3RlbU5ldXRyYWw6ICJTdGVtRGlyZWN0aW9uIiwKCQljaGFuZ2U6ICJDaGFuZ2UiLAoJfTsKCgoJY29uc3Qgcm9vdCA9IChzZWN0aW9ucyA9IFtdKSA9PiAoe3Byb3RvOiAiUm9vdCIsIHNlY3Rpb25zfSk7CgoJY29uc3QgYXBwZW5kU2VjdGlvbiA9IChsaXN0LCBpdGVtKSA9PiB7CgkJbGlzdC5zZWN0aW9ucy5wdXNoKGl0ZW0pOwoKCQlyZXR1cm4gbGlzdDsKCX07CgoJY29uc3Qgc3RyaW5nID0gZXhwID0+ICh7cHJvdG86ICJMaXRlcmFsU3RyaW5nIiwgZXhwfSk7CgoJY29uc3QgY29tbWFuZCA9IChjbWQsIC4uLmFyZ3MpID0+ICh7cHJvdG86IGNvbW1hbmRTdWJQcm90b3NbY21kLnN1YnN0cigxKV0gfHwgIkNvbW1hbmQiLCBjbWQ6IGNtZC5zdWJzdHIoMSksIGFyZ3N9KTsKCgljb25zdCB2YXJpYWJsZSA9IG5hbWUgPT4gKHtwcm90bzogIlZhcmlhYmxlIiwgbmFtZTogbmFtZS5zdWJzdHIoMSl9KTsKCgljb25zdCBjaG9yZCA9IChwaXRjaGVzLCBkdXJhdGlvbiwge2xvY2F0aW9ucywgcG9zdF9ldmVudHMsIC4uLm9wdGlvbnN9ID0ge30pID0+ICh7cHJvdG86ICJDaG9yZCIsIHBpdGNoZXMsIGR1cmF0aW9uLCBwb3N0X2V2ZW50cywgX2xvY2F0aW9uOiBsb2NhdGlvbiguLi5sb2NhdGlvbnMpLCBvcHRpb25zOiB7Li4ub3B0aW9ucywgcHJvdG86ICJfUExBSU4ifX0pOwoKCWNvbnN0IHJlc3QgPSAoe25hbWUsIGR1cmF0aW9uLCBwb3N0X2V2ZW50cyA9IG51bGwsIGxvY2F0aW9uc30pID0+ICh7cHJvdG86ICJSZXN0IiwgbmFtZSwgZHVyYXRpb24sIHBvc3RfZXZlbnRzLCBfbG9jYXRpb246IGxvY2F0aW9uKC4uLmxvY2F0aW9ucyl9KTsKCgljb25zdCBjaG9yZEVsZW0gPSAocGl0Y2gsIHtsb2NhdGlvbnMsIC4uLm9wdGlvbnN9KSA9PiAoe3Byb3RvOiAiQ2hvcmRFbGVtZW50IiwgcGl0Y2gsIF9sb2NhdGlvbjogbG9jYXRpb24oLi4ubG9jYXRpb25zKSwgb3B0aW9uczogey4uLm9wdGlvbnMsIHByb3RvOiAiX1BMQUlOIn19KTsKCgljb25zdCBicmllZkNob3JkID0gKGJvZHksIHtsb2NhdGlvbnMsIHBvc3RfZXZlbnRzID0gbnVsbH0gPSB7fSkgPT4gKHtwcm90bzogIkJyaWVmQ2hvcmQiLCBib2R5OiB7Li4uYm9keSwgcHJvdG86ICJfUExBSU4ifSwgcG9zdF9ldmVudHMsIF9sb2NhdGlvbjogbG9jYXRpb24oLi4ubG9jYXRpb25zKX0pOwoKCWNvbnN0IGJsb2NrID0gKGJsb2NrLCBoZWFkLCBib2R5ID0gW10pID0+ICh7cHJvdG86ICJCbG9jayIsIGJsb2NrLCBoZWFkLCBib2R5fSk7CgoJY29uc3QgaW5saW5lQmxvY2sgPSBib2R5ID0+ICh7cHJvdG86ICJJbmxpbmVCbG9jayIsIGJvZHl9KTsKCgljb25zdCBzY2hlbWUgPSBleHAgPT4gKHtwcm90bzogIlNjaGVtZSIsIGV4cH0pOwoKCWNvbnN0IHNjaGVtZUZ1bmN0aW9uID0gKGZ1bmMsIGFyZ3MpID0+ICh7cHJvdG86ICJTY2hlbWVGdW5jdGlvbiIsIGZ1bmMsIGFyZ3N9KTsKCgljb25zdCBzY2hlbWVQYWlyID0gKGxlZnQsIHJpZ2h0KSA9PiAoe3Byb3RvOiAiU2NoZW1lUGFpciIsIGxlZnQsIHJpZ2h0fSk7CgoJY29uc3Qgc2NoZW1lUG9pbnRlciA9IHZhbHVlID0+ICh7cHJvdG86ICJTY2hlbWVQb2ludGVyIiwgdmFsdWV9KTsKCgljb25zdCBzY2hlbWVFbWJlZCA9IHZhbHVlID0+ICh7cHJvdG86ICJTY2hlbWVFbWJlZCIsIHZhbHVlfSk7CgoJY29uc3QgYXNzaWdubWVudCA9IChrZXksIHZhbHVlKSA9PiAoe3Byb3RvOiAiQXNzaWdubWVudCIsIGtleSwgdmFsdWV9KTsKCgljb25zdCBudW1iZXJVbml0ID0gKG51bWJlciwgdW5pdCkgPT4gKHtwcm90bzogIk51bWJlclVuaXQiLCBudW1iZXI6IHByZWZlck51bWJlcihudW1iZXIpLCB1bml0fSk7CgoJY29uc3QgbXVzaWNCbG9jayA9IGJvZHkgPT4gKHtwcm90bzogIk11c2ljQmxvY2siLCBib2R5fSk7CgoJY29uc3Qgc2ltdWx0YW5lb3VzTGlzdCA9IGxpc3QgPT4gKHtwcm90bzogIlNpbXVsdGFuZW91c0xpc3QiLCBsaXN0fSk7CgoJY29uc3QgY29udGV4dGVkTXVzaWMgPSAoaGVhZCwgYm9keSwgbHlyaWNzKSA9PiAoe3Byb3RvOiAiQ29udGV4dGVkTXVzaWMiLCBoZWFkLCBib2R5LCBseXJpY3N9KTsKCgljb25zdCB0ZW1wbyA9IChiZWF0c1Blck1pbnV0ZSwgdW5pdCwgdGV4dCkgPT4gKHtwcm90bzogIlRlbXBvIiwgYmVhdHNQZXJNaW51dGU6IHByZWZlck51bWJlcihiZWF0c1Blck1pbnV0ZSksIHVuaXQ6IHByZWZlck51bWJlcih1bml0KSwgdGV4dH0pOwoKCWNvbnN0IHBvc3RFdmVudCA9IChkaXJlY3Rpb24sIGFyZykgPT4gKHtwcm90bzogIlBvc3RFdmVudCIsIGRpcmVjdGlvbiwgYXJnfSk7CgoJY29uc3QgZmluZ2VyaW5nID0gdmFsdWUgPT4gKHtwcm90bzogIkZpbmdlcmluZyIsIHZhbHVlOiBwcmVmZXJOdW1iZXIodmFsdWUpfSk7CgoJY29uc3QgbWFya3VwID0gKGhlYWQsIGJvZHkpID0+ICh7cHJvdG86ICJNYXJrdXAiLCBoZWFkLCBib2R5fSk7CgoJY29uc3QgbHlyaWMgPSAoY29udGVudCwge2xvY2F0aW9ucywgLi4ub3B0aW9uc30pID0+ICh7cHJvdG86ICJMeXJpYyIsIGNvbnRlbnQsIF9sb2NhdGlvbjogbG9jYXRpb24oLi4ubG9jYXRpb25zKSwgLi4ub3B0aW9uc30pOwoKCWNvbnN0IGR1cmF0aW9uID0gKHtudW1iZXIsIGRvdHMsIG11bHRpcGxpZXJzfSkgPT4gKHtwcm90bzogIkR1cmF0aW9uIiwgbnVtYmVyLCBkb3RzLCBtdWx0aXBsaWVyc30pOwoKCWNvbnN0IGNvbW1lbnQgPSAoe2xvYywgLi4uZGF0YX0pID0+ICh7cHJvdG86ICJDb21tZW50IiwgX2xvY2F0aW9uOiBsb2NhdGlvbihsb2MsIGxvYyksIC4uLmRhdGF9KTsKCgoJbGV0IGxpbmVIZWFkVGFibGUgPSB7fTsKCWxldCBsaW5lVGFpbFRhYmxlID0ge307CgoJY29uc3QgbGluZUhlYWQgPSAobG9jLCB0ZXJtKSA9PiB7CgkJaWYgKCF0ZXJtIHx8IHR5cGVvZiB0ZXJtICE9PSAib2JqZWN0IikKCQkJcmV0dXJuOwoKCQlpZiAoIWxpbmVIZWFkVGFibGVbbG9jLmZpcnN0X2xpbmVdIHx8IGxpbmVIZWFkVGFibGVbbG9jLmZpcnN0X2xpbmVdLmNvbHVtbiA+IGxvYy5maXJzdF9jb2x1bW4pCgkJCWxpbmVIZWFkVGFibGVbbG9jLmZpcnN0X2xpbmVdID0ge2NvbHVtbjogbG9jLmZpcnN0X2NvbHVtbiwgdGVybX07Cgl9OwoKCWNvbnN0IGxpbmVUYWlsID0gKGxvYywgdGVybSkgPT4gewoJCWlmICghdGVybSB8fCB0eXBlb2YgdGVybSAhPT0gIm9iamVjdCIpCgkJCXJldHVybjsKCgkJaWYgKCFsaW5lVGFpbFRhYmxlW2xvYy5sYXN0X2xpbmVdIHx8IGxpbmVUYWlsVGFibGVbbG9jLmxhc3RfbGluZV0uY29sdW1uIDwgbG9jLmxhc3RfY29sdW1uKQoJCQlsaW5lVGFpbFRhYmxlW2xvYy5sYXN0X2xpbmVdID0ge2NvbHVtbjogbG9jLmxhc3RfY29sdW1uLCB0ZXJtfTsKCX07CgoJY29uc3QgbGluZVJlZ2lzdGVyID0gKGxvYywgdGVybSkgPT4gewoJCWxpbmVIZWFkKGxvYywgdGVybSk7CgkJbGluZVRhaWwobG9jLCB0ZXJtKTsKCX07CgoKCWNvbnN0IGF0dGFjaENvbW1lbnRzID0geXkgPT4gewoJCWlmICh5eS4kbG90dXNDb21tZW50cyAmJiB5eS4kbG90dXNDb21tZW50cy5sZW5ndGggPiAwKSB7CgkJCS8vY29uc29sZS5sb2coImF0dGFjaENvbW1lbnRzOiIsIHl5LiRsb3R1c0NvbW1lbnRzLCBsaW5lVGFibGUpOwoJCQljb25zdCBoZWFkTGluZU51bWJlcnMgPSBPYmplY3Qua2V5cyhsaW5lSGVhZFRhYmxlKS5tYXAoTnVtYmVyKTsKCgkJCXl5LiRsb3R1c0NvbW1lbnRzLmZvckVhY2goZGF0YSA9PiB7CgkJCQljb25zdCBjb21tID0gY29tbWVudChkYXRhKTsKCgkJCQljb25zdCB0YWlsTGluZSA9IGxpbmVUYWlsVGFibGVbZGF0YS5sb2MuZmlyc3RfbGluZV07CgkJCQlpZiAodGFpbExpbmUpIHsKCQkJCQl0YWlsTGluZS50ZXJtLl90YWlsQ29tbWVudCA9IGNvbW07CgkJCQkJcmV0dXJuOwoJCQkJfQoKCQkJCWNvbnN0IGxpbmUgPSBoZWFkTGluZU51bWJlcnMuZmluZChsaW5lID0+IGxpbmUgPj0gZGF0YS5sb2MubGFzdF9saW5lKTsKCQkJCWlmIChOdW1iZXIuaXNGaW5pdGUobGluZSkgJiYgbGluZUhlYWRUYWJsZVtsaW5lXSkgewoJCQkJCWxpbmVIZWFkVGFibGVbbGluZV0udGVybS5faGVhZENvbW1lbnQgPSBjb21tOwoJCQkJCXJldHVybjsKCQkJCX0KCgkJCQkvLyBUT0RPOiBhdHRhY2ggb24gcm9vdCdzIHRhaWwKCQkJfSk7CgkJfQoKCQkvLyByZXNldCBwYXJzZXIgc3RhdGVzCgkJbGluZUhlYWRUYWJsZSA9IHt9OwoJCWxpbmVUYWlsVGFibGUgPSB7fTsKCX07CiV9CgoKJWxleAoKJW9wdGlvbiBmbGV4IHVuaWNvZGUKCkEJCQkJCVthLXpBLVpcMjAwLVwzNzddCkFBCQkJCQl7QX18XwpOCQkJCQlbMC05XQpBTllfQ0hBUgkJCSgufFxuKQpTWU1CT0wJCQkJe0F9KFstX117QX18e0F9KSoKQ09NTUFORAkJCQlcXHtTWU1CT0x9Ci8qIFNQRUNJQUwgY2F0ZWdvcnkgaXMgZm9yIGV2ZXJ5IGxldHRlciB0aGF0IG5lZWRzIHRvIGdldCBwYXNzZWQgdG8KICogdGhlIHBhcnNlciByYXRoZXIgdGhhbiBiZWluZyByZWRlZmluYWJsZSBieSB0aGUgdXNlciAqLwpTUEVDSUFMCQkJCVstKyovPTw+e30hP19eJycsLjpdClNIT1JUSEFORAkJCSgufFxcLikKVU5TSUdORUQJCQl7Tn0rCkVfVU5TSUdORUQJCQlcXHtOfSsKRlJBQ1RJT04JCQl7Tn0rXC97Tn0rCi8vSU5UCQkJCQlbLV0/e1VOU0lHTkVEfQovL1JFQUwJCQkJKHtJTlR9XC57Tn0qKXwoWy1dP1wue059KykKU1RSSUNUUkVBTAkJCXtVTlNJR05FRH1cLntVTlNJR05FRH0KV0hJVEUJCQkJWyBcblx0XGZccl0KSE9SSVpPTlRBTFdISVRFCQlbIFx0XQpCTEFDSwkJCQlbXiBcblx0XGZccl0KUkVTVE5BTUUJCQlbclJzXSg/PVtcV1xkX10pCkVTQ0FQRUQJCQkJW250XFwnJyIiXQovL0VYVEVOREVSCQkJXF9cXwovL0hZUEhFTgkJCQlcLVwtClBSRV9FWFRFTkRFUgkJXF8oPz1cXykKUFJFX0hZUEhFTgkJCVwtKD89XC0pCkJPTV9VVEY4CQkJXDM1N1wyNzNcMjc3CgpQSE9ORVQJCQkJW2FiY2RlZmdxaF0KUElUQ0gJCQkJe1BIT05FVH0oKFtpXVtzXSkqfChbZV1bc10pKnxbc11bZV1bc118W3NdKnxbZl0qKSg/PVtcV1xkX10pCi8vUExBQ0VIT0xERVJfUElUQ0gJW3NdKD89W1xXXGRfXi1dKQovL0RVUkFUSU9OCQkJIjEifCIyInwiNCJ8IjgifCIxNiJ8IjMyInwiNjQifCIxMjgifCIyNTYiCgovL1VOSUNPREVfSEFOCQkJW1xwe1NjcmlwdD1IYW59XQoKJSUKCi8vIGV4dHJhIGxleAovLyBUT0RPOiBwYXJzZSB0aGUgZG9sbGFyIGV4cHJlc3Npb24gZGV0YWlscwpbJF1bKF1bXigpXSpbKV0JCQkJCQlyZXR1cm4gJ0RPTExBUl9TQ0hFTUVfRVhQUkVTU0lPTicKClxzKwkJCQkJCQkJCXt9CS8vIHNwYWNlcwpcJVx7KC58XG4pKj9cJVx9CQkJCQl5eS4kbG90dXNDb21tZW50cyA9IHl5LiRsb3R1c0NvbW1lbnRzIHx8IFtdOyB5eS4kbG90dXNDb21tZW50cy5wdXNoKHt0ZXh0OiB5eXRleHQsIGxvYzogeXlsbG9jLCBzY29wZWQ6IHRydWV9KTsJLy8gc2NvcGVkIGNvbW1lbnRzClwlLioJCQkJCQkJCXl5LiRsb3R1c0NvbW1lbnRzID0geXkuJGxvdHVzQ29tbWVudHMgfHwgW107IHl5LiRsb3R1c0NvbW1lbnRzLnB1c2goe3RleHQ6IHl5dGV4dCwgbG9jOiB5eWxsb2N9KTsJLy8gc2NvcGVkIGNvbW1lbnRzClwiKFxcXCJ8W14iXSkqXCIJCQkJCXJldHVybiAnU1RSSU5HJzsKCi8ve0VYVEVOREVSfQkJCQkJCQlyZXR1cm4gJ0VYVEVOREVSJzsKLy97SFlQSEVOfQkJCQkJCQlyZXR1cm4gJ0hZUEhFTic7CntQUkVfRVhURU5ERVJ9CQkJCQkJcmV0dXJuICdQUkVfRVhURU5ERVInOwp7UFJFX0hZUEhFTn0JCQkJCQlyZXR1cm4gJ1BSRV9IWVBIRU4nOwoKLy8iLysiCQkJCQkJCQlyZXR1cm4gQ0hPUkRfQkFTUzsKLy8iXiIJCQkJCQkJCXJldHVybiBDSE9SRF9DQVJFVDsKLy8iOiIJCQkJCQkJCXJldHVybiBDSE9SRF9DT0xPTjsKLy8iLSIJCQkJCQkJCXJldHVybiBDSE9SRF9NSU5VUzsKLy8iLyIJCQkJCQkJCXJldHVybiBDSE9SRF9TTEFTSDsKCi8vIjwiCQkJCQkJCQlyZXR1cm4gJ0FOR0xFX09QRU4nOwovLyI+IgkJCQkJCQkJcmV0dXJuICdBTkdMRV9DTE9TRSc7CiI8PCIJCQkJCQkJCXJldHVybiAnRE9VQkxFX0FOR0xFX09QRU4nOwoiPj4iCQkJCQkJCQlyZXR1cm4gJ0RPVUJMRV9BTkdMRV9DTE9TRSc7CgoiXFxcXCIJCQkJCQkJCXJldHVybiAnRV9CQUNLU0xBU0gnOwoKe0VfVU5TSUdORUR9CQkJCQkJcmV0dXJuICdFX1VOU0lHTkVEJzsKCiJcXG5ldyIJCQkJCQkJCXJldHVybiAnTkVXQ09OVEVYVCc7CgoiXFxjbSIJCQkJCQkJCXJldHVybiAnQ0VOVElNRVRFUic7CiJcXG1tIgkJCQkJCQkJcmV0dXJuICdNSUxMSU1FVEVSJzsKCiJcXG92ZXJyaWRlUHJvcGVydHkiCQkJCXJldHVybiAnT1ZFUlJJREVQUk9QRVJUWSc7CgovLyBiaW5hcnkgY29tbWFuZHMKIlxccmVsYXRpdmUiCQkJCQkJcmV0dXJuICdDTURfUkVMQVRJVkUnOwoiXFx0d2VhayIJCQkJCQkJcmV0dXJuICdDTURfVFdFQUsnOwoiXFxrZXkiCQkJCQkJCQlyZXR1cm4gJ0NNRF9LRVknOwovLyJcXHRpbWVzIgkJCQkJCQlyZXR1cm4gJ0NNRF9USU1FUyc7CltcXF1bdF1baV1bbV1bZV1bc10JCQkJCXJldHVybiAnQ01EX1RJTUVTJzsKIlxcYWZ0ZXJHcmFjZSIJCQkJCQlyZXR1cm4gJ0NNRF9BRlRFUkdSQUNFJzsKIlxccGFyYWxsZWxNdXNpYyIJCQkJCXJldHVybiAnQ01EX1BBUkFMTEVMTVVTSUMnOwoiXFxzaGFwZSIJCQkJCQkJcmV0dXJuICdDTURfU0hBUEUnOwoiXFx0YWciCQkJCQkJCQlyZXR1cm4gJ0NNRF9UQUcnOwoiXFxzY2FsZUR1cmF0aW9ucyIJCQkJCXJldHVybiAnQ01EX1NDQUxFRFVSQVRJT05TJzsKCi8vIHVuaXRhcnkgY29tbWFuZHMKIlxcY2xlZiIJCQkJCQkJcmV0dXJuICdDTURfQ0xFRic7CiJcXHRpbWUiCQkJCQkJCXJldHVybiAnQ01EX1RJTUUnOwoiXFxzdGVtVXAiCQkJCQkJCXJldHVybiAnQ01EX1NURU1VUCc7CiJcXHN0ZW1Eb3duIgkJCQkJCXJldHVybiAnQ01EX1NURU1ET1dOJzsKIlxcc3RlbU5ldXRyYWwiCQkJCQkJcmV0dXJuICdDTURfU1RFTU5FVVRSQUwnOwoiXFxiYXIiCQkJCQkJCQlyZXR1cm4gJ0NNRF9CQVInOwoiXFxvbWl0IgkJCQkJCQlyZXR1cm4gJ0NNRF9PTUlUJzsKIlxcb3R0YXZhIgkJCQkJCQlyZXR1cm4gJ0NNRF9PVFRBVkEnOwoiXFxiYXJOdW1iZXJDaGVjayIJCQkJCXJldHVybiAnQ01EX0JBUk5VTUJFUkNIRUNLJzsKIlxccGFydGlhbCIJCQkJCQkJcmV0dXJuICdDTURfUEFSVElBTCc7CiJcXG1hcmsiCQkJCQkJCXJldHVybiAnQ01EX01BUksnOwoiXFxpbmNsdWRlIgkJCQkJCQlyZXR1cm4gJ0NNRF9JTkNMVURFJzsKIlxcdHVwbGV0U3BhbiIJCQkJCQlyZXR1cm4gJ0NNRF9UVVBMRVRTUEFOJzsKIlxcdHVwbGV0IgkJCQkJCQlyZXR1cm4gJ0NNRF9UVVBMRVQnOwoiXFx0dXBsZXROZXV0cmFsIgkJCQkJcmV0dXJuICdDTURfVFVQTEVUTkVVVFJBTCc7CiJcXHNraXAiCQkJCQkJCXJldHVybiAnQ01EX1NLSVAnOwoiXFxza2lwIig/PVxkKQkJCQkJCXJldHVybiAnQ01EX1NLSVAnOwoiXFxwYXJlbnRoZXNpemUiCQkJCQlyZXR1cm4gJ0NNRF9QQVJFTlRIRVNJWkUnOwoiXFx1bmZvbGRSZXBlYXRzIgkJCQkJcmV0dXJuICdDTURfVU5GT0xEUkVQRUFUUyc7CiJcXGdyYWNlIgkJCQkJCQlyZXR1cm4gJ0NNRF9HUkFDRSc7CiJcXGFjY2lhY2NhdHVyYSIJCQkJCXJldHVybiAnQ01EX0FDQ0lBQ0NBVFVSQSc7CiJcXGFwcG9nZ2lhdHVyYSIJCQkJCXJldHVybiAnQ01EX0FQUE9HR0lBVFVSQSc7CiJcXHNsYXNoZWRHcmFjZSIJCQkJCXJldHVybiAnQ01EX1NMQVNIRURHUkFDRSc7CiJcXGxhbmd1YWdlIgkJCQkJCXJldHVybiAnQ01EX0xBTkdVQUdFJzsKIlxcb25jZSIJCQkJCQkJcmV0dXJuICdDTURfT05DRSc7CiJcXGFjY2lkZW50YWxTdHlsZSIJCQkJCXJldHVybiAnQ01EX0FDQ0lERU5UQUxTVFlMRSc7CiJcXG51bWVyaWNUaW1lU2lnbmF0dXJlIgkJCXJldHVybiAnQ01EX05VTUVSSUNUSU1FU0lHTkFUVVJFJzsKIlxcZGVmYXVsdFRpbWVTaWduYXR1cmUiCQkJcmV0dXJuICdDTURfREVGQVVMVFRJTUVTSUdOQVRVUkUnOwoiXFxiZW5kQWZ0ZXIiCQkJCQkJcmV0dXJuICdDTURfQkVOREFGVEVSJzsKIlxcY29tcG91bmRNZXRlciIJCQkJCXJldHVybiAnQ01EX0NPTVBPVU5ETUVURVInOwoiXFx0cmFuc3Bvc2l0aW9uIgkJCQkJcmV0dXJuICdDTURfVFJBTlNQT1NJVElPTic7CiJcXGFic29sdXRlIgkJCQkJCXJldHVybiAnQ01EX0FCU09MVVRFJzsKIlxcaGlkZSIJCQkJCQkJcmV0dXJuICdDTURfSElERSc7CiJcXGNyb3NzU3RhZmYiCQkJCQkJcmV0dXJuICdDTURfQ1JPU1NTVEFGRic7CiJcXGtlZXBXaXRoVGFnIgkJCQkJCXJldHVybiAnQ01EX0tFRVBXSVRIVEFHJzsKIlxcYXJ0aWN1bGF0ZSIJCQkJCQlyZXR1cm4gJ0NNRF9BUlRJQ1VMQVRFJzsKCi8vIHplcm8gY29tbWFuZHMKIlxcdGVtcG9MZWdlbmQiCQkJCQkJcmV0dXJuICdDTURfVEVNUE9MRUdFTkQnOwoiXFxmZXJtYXRhIgkJCQkJCQlyZXR1cm4gJ0NNRF9GRVJNQVRBJzsKIlxcbWVyZ2VEaWZmZXJlbnRseURvdHRlZE9uIgkJcmV0dXJuICdDTURfTUVSR0VESUZGRVJFTlRMWURPVFRFRE9OJzsKIlxcbWVyZ2VEaWZmZXJlbnRseUhlYWRlZE9uIgkJcmV0dXJuICdDTURfTUVSR0VESUZGRVJFTlRMWUhFQURFRE9OJzsKIlxcdm9pY2VPbmUiCQkJCQkJcmV0dXJuICdDTURfVk9JQ0VfTlVNQkVSJzsKIlxcdm9pY2VUd28iCQkJCQkJcmV0dXJuICdDTURfVk9JQ0VfTlVNQkVSJzsKIlxcdm9pY2VUaHJlZSIJCQkJCQlyZXR1cm4gJ0NNRF9WT0lDRV9OVU1CRVInOwoiXFx2b2ljZUZvdXIiCQkJCQkJcmV0dXJuICdDTURfVk9JQ0VfTlVNQkVSJzsKLy8iXFx2b2ljZUZpdmUiCQkJCQkJcmV0dXJuICdDTURfVk9JQ0VfTlVNQkVSJzsKIlxcU2NvcmUiCQkJCQkJCXJldHVybiAnQ01EX1NDT1JFJzsKIlxcVm9pY2UiCQkJCQkJCXJldHVybiAnQ01EX1ZPSUNFJzsKIlxcU3RhZmYiCQkJCQkJCXJldHVybiAnQ01EX1NUQUZGJzsKIlxcUGlhbm9TdGFmZiIJCQkJCQlyZXR1cm4gJ0NNRF9QSUFOT1NUQUZGJzsKIlxcYXJwZWdnaW8iCQkJCQkJcmV0dXJuICdDTURfQVJQRUdHSU8nOwoiXFxhcnBlZ2dpb0Fycm93RG93biIJCQkJcmV0dXJuICdDTURfQVJQRUdHSU9BUlJPV0RPV04nOwoiXFxhcnBlZ2dpb0Fycm93VXAiCQkJCQlyZXR1cm4gJ0NNRF9BUlBFR0dJT0FSUk9XVVAnOwoiXFxhcnBlZ2dpb05vcm1hbCIJCQkJCXJldHVybiAnQ01EX0FSUEVHR0lPTk9STUFMJzsKIlxcYXJwZWdnaW9CcmFja2V0IgkJCQkJcmV0dXJuICdDTURfQVJQRUdHSU9CUkFDS0VUJzsKIlxcYXJwZWdnaW9QYXJlbnRoZXNpcyIJCQkJcmV0dXJuICdDTURfQVJQRUdHSU9QQVJFTlRIRVNJUyc7CiJcXGFycGVnZ2lvUGFyZW50aGVzaXNEYXNoZWQiCQlyZXR1cm4gJ0NNRF9BUlBFR0dJT1BBUkVOVEhFU0lTREFTSEVEJzsKIlxcZ2xpc3NhbmRvIgkJCQkJCXJldHVybiAnQ01EX0dMSVNTQU5ETyc7CiJcXG1vcmRlbnQiCQkJCQkJCXJldHVybiAnQ01EX01PUkRFTlQnOwoiXFxtdXNpY2dseXBoIgkJCQkJCXJldHVybiAnQ01EX01VU0lDR0xZUEgnOwoiXFxwb3dlckNob3JkcyIJCQkJCQlyZXR1cm4gJ0NNRF9QT1dFUkNIT1JEUyc7CiJcXHByYWxsIgkJCQkJCQlyZXR1cm4gJ0NNRF9QUkFMTCc7CiJcXHN1c3RhaW5PZmYiCQkJCQkJcmV0dXJuICdDTURfU1VTVEFJTk9GRic7CiJcXHN1c3RhaW5PbiIJCQkJCQlyZXR1cm4gJ0NNRF9TVVNUQUlOT04nOwoiXFx0cmlsbCIJCQkJCQkJcmV0dXJuICdDTURfVFJJTEwnOwoiXFx0dXJuIgkJCQkJCQlyZXR1cm4gJ0NNRF9UVVJOJzsKIlxccG9pbnRBbmRDbGlja09mZiIJCQkJcmV0dXJuICdDTURfUE9JTlRBTkRDTElDS09GRic7CiJcXHVwYm93IgkJCQkJCQlyZXR1cm4gJ0NNRF9VUEJPVyc7CiJcXGRvd25ib3ciCQkJCQkJCXJldHVybiAnQ01EX0RPV05CT1cnOwoiXFxicmVhdGhlIgkJCQkJCQlyZXR1cm4gJ0NNRF9CUkVBVEhFJzsKIlxcc3RhcnRUZXh0U3BhbiIJCQkJCXJldHVybiAnQ01EX1NUQVJUVEVYVFNQQU4nOwoiXFxzdG9wVGV4dFNwYW4iCQkJCQlyZXR1cm4gJ0NNRF9TVE9QVEVYVFNQQU4nOwoiXFxmbGFnZW9sZXQiCQkJCQkJcmV0dXJuICdDTURfRkxBR0VPTEVUJzsKIlxcc2x1ckRhc2hlZCIJCQkJCQlyZXR1cm4gJ0NNRF9TTFVSREFTSEVEJzsKIlxcc2x1clNvbGlkIgkJCQkJCXJldHVybiAnQ01EX1NMVVJTT0xJRCc7CiJcXGJyZWFrIgkJCQkJCQlyZXR1cm4gJ0NNRF9CUkVBSyc7CiJcXHBhZ2VCcmVhayIJCQkJCQlyZXR1cm4gJ0NNRF9QQUdFQlJFQUsnOwoiXFxzdGFydFRyaWxsU3BhbiIJCQkJCXJldHVybiAnQ01EX1NUQVJUVFJJTExTUEFOJzsKIlxcc3RvcFRyaWxsU3BhbiIJCQkJCXJldHVybiAnQ01EX1NUT1BUUklMTFNQQU4nOwoiXFxjYWRlbnphT24iCQkJCQkJcmV0dXJuICdDTURfQ0FERU5aQU9OJzsKIlxcY2FkZW56YU9mZiIJCQkJCQlyZXR1cm4gJ0NNRF9DQURFTlpBT0ZGJzsKIlxcY3Jlc2MiCQkJCQkJCXJldHVybiAnQ01EX0NSRVNDJzsKIlxcY3Jlc2NUZXh0Q3Jlc2MiCQkJCQlyZXR1cm4gJ0NNRF9DUkVTQ1RFWFRDUkVTQyc7CiJcXGNyZXNjSGFpcnBpbiIJCQkJCXJldHVybiAnQ01EX0NSRVNDSEFJUlBJTic7CiJcXGRpbSIoPz1bXFddKQkJCQkJCXJldHVybiAnQ01EX0RJTSc7CiJcXGRpbVRleHREaW0iCQkJCQkJcmV0dXJuICdDTURfRElNVEVYVERJTSc7CiJcXGR5bmFtaWNVcCIJCQkJCQlyZXR1cm4gJ0NNRF9EWU5BTUlDVVAnOwoiXFxoaWRlTm90ZXMiCQkJCQkJcmV0dXJuICdDTURfSElERU5PVEVTJzsKIlxcdW5IaWRlTm90ZXMiCQkJCQkJcmV0dXJuICdDTURfVU5ISURFTk9URVMnOwoiXFxuZXdTcGFjaW5nU2VjdGlvbiIJCQkJcmV0dXJuICdDTURfTkVXU1BBQ0lOR1NFQ1RJT04nOwoiXFxub0JlYW0iCQkJCQkJCXJldHVybiAnQ01EX05PQkVBTSc7CiJcXG9uZVZvaWNlIgkJCQkJCXJldHVybiAnQ01EX09ORVZPSUNFJzsKIlxccGhyYXNpbmdTbHVyRG93biIJCQkJcmV0dXJuICdDTURfUEhSQVNJTkdTTFVSRE9XTic7CiJcXHBocmFzaW5nU2x1ck5ldXRyYWwiCQkJCXJldHVybiAnQ01EX1BIUkFTSU5HU0xVUk5FVVRSQUwnOwoiXFxwaHJhc2luZ1NsdXJVcCIJCQkJCXJldHVybiAnQ01EX1BIUkFTSU5HU0xVUlVQJzsKIlxcc2x1ckRvd24iCQkJCQkJcmV0dXJuICdDTURfU0xVUkRPV04nOwoiXFxzbHVyTmV1dHJhbCIJCQkJCQlyZXR1cm4gJ0NNRF9TTFVSTkVVVFJBTCc7CiJcXHNsdXJVcCIJCQkJCQkJcmV0dXJuICdDTURfU0xVUlVQJzsKIlxcdGllRG93biIJCQkJCQkJcmV0dXJuICdDTURfVElFRE9XTic7CiJcXHRpZU5ldXRyYWwiCQkJCQkJcmV0dXJuICdDTURfVElFTkVVVFJBTCc7CiJcXHRpZVVwIgkJCQkJCQlyZXR1cm4gJ0NNRF9USUVVUCc7CiJcXHR1cGxldFVwIgkJCQkJCXJldHVybiAnQ01EX1RVUExFVFVQJzsKIlxcdHVwbGV0RG93biIJCQkJCQlyZXR1cm4gJ0NNRF9UVVBMRVRET1dOJzsKIlxcc2hpZnRPbiIJCQkJCQkJcmV0dXJuICdDTURfU0hJRlRPTic7CiJcXHJlcGVhdFRpZSIJCQkJCQlyZXR1cm4gJ0NNRF9SRVBFQVRUSUUnOwoiXFxtYXJjYXRvIgkJCQkJCQlyZXR1cm4gJ0NNRF9NQVJDQVRPJzsKIlxcc3RvcHBlZCIJCQkJCQkJcmV0dXJuICdDTURfU1RPUFBFRCc7CiJcXHRlbnV0byIJCQkJCQkJcmV0dXJuICdDTURfVEVOVVRPJzsKIlxcc3RhY2NhdGlzc2ltbyIJCQkJCXJldHVybiAnQ01EX1NUQUNDQVRJU1NJTU8nOwoiXFxhY2NlbnQiCQkJCQkJCXJldHVybiAnQ01EX0FDQ0VOVCc7CiJcXHN0YWNjYXRvIgkJCQkJCXJldHVybiAnQ01EX1NUQUNDQVRPJzsKIlxccG9ydGF0byIJCQkJCQkJcmV0dXJuICdDTURfUE9SVEFUTyc7CgoiXFxtcCIoPz1bXFddKQkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUNfTUFSS0lOR1MnOwoiXFxtZiIoPz1bXFddKQkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUNfTUFSS0lOR1MnOwoiXFwiW3BdKyg/PVtcV10pCQkJCQlyZXR1cm4gJ0NNRF9EWU5BTUlDX01BUktJTkdTJzsKIlxcIltmXSsoPz1bXFddKQkJCQkJcmV0dXJuICdDTURfRFlOQU1JQ19NQVJLSU5HUyc7CiJcXHNmIig/PVtcV10pCQkJCQkJcmV0dXJuICdDTURfRFlOQU1JQ19NQVJLSU5HUyc7CiJcXHNmZiIoPz1bXFddKQkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUNfTUFSS0lOR1MnOwoiXFxzZnAiKD89W1xXXSkJCQkJCQlyZXR1cm4gJ0NNRF9EWU5BTUlDX01BUktJTkdTJzsKIlxcc2ZwcCIoPz1bXFddKQkJCQkJcmV0dXJuICdDTURfRFlOQU1JQ19NQVJLSU5HUyc7CiJcXGZwIig/PVtcV10pCQkJCQkJcmV0dXJuICdDTURfRFlOQU1JQ19NQVJLSU5HUyc7CiJcXG1mcCIoPz1bXFddKQkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUNfTUFSS0lOR1MnOwoiXFxyZiIoPz1bXFddKQkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUNfTUFSS0lOR1MnOwoiXFxyZnoiKD89W1xXXSkJCQkJCQlyZXR1cm4gJ0NNRF9EWU5BTUlDX01BUktJTkdTJzsKIlxcc2Z6Iig/PVtcV10pCQkJCQkJcmV0dXJuICdDTURfRFlOQU1JQ19NQVJLSU5HUyc7CiJcXHNmZnoiKD89W1xXXSkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUNfTUFSS0lOR1MnOwoiXFxmeiIoPz1bXFddKQkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUNfTUFSS0lOR1MnOwoiXFxmenAiKD89W1xXXSkJCQkJCQlyZXR1cm4gJ0NNRF9EWU5BTUlDX01BUktJTkdTJzsKIlxcZmZ6Iig/PVtcV10pCQkJCQkJcmV0dXJuICdDTURfRFlOQU1JQ19NQVJLSU5HUyc7CiJcXHBweiIoPz1bXFddKQkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUNfTUFSS0lOR1MnOwoKIlxcYnJldmUiCQkJCQkJCXJldHVybiAnQ01EX0JSRVZFJzsKIlxcbG9uZ2EiCQkJCQkJCXJldHVybiAnQ01EX0xPTkdBJzsKCi8vIG1hcmt1cCBjb21tYW5kcwkJCiJcXHZlcnNpb24iCQkJCQkJCXJldHVybiAnQ01EX1ZFUlNJT04nOwoiXFxjb2x1bW4iCQkJCQkJCXJldHVybiAnQ01EX0NPTFVNTic7CiJcXGxpbmUiCQkJCQkJCXJldHVybiAnQ01EX0xJTkUnOwoiXFxib2xkIgkJCQkJCQlyZXR1cm4gJ0NNRF9CT0xEJzsKIlxcaXRhbGljIgkJCQkJCQlyZXR1cm4gJ0NNRF9JVEFMSUMnOwoiXFxib3giCQkJCQkJCQlyZXR1cm4gJ0NNRF9CT1gnOwoiXFx3aGl0ZW91dCIJCQkJCQlyZXR1cm4gJ0NNRF9XSElURU9VVCc7CiJcXGR5bmFtaWMiCQkJCQkJCXJldHVybiAnQ01EX0RZTkFNSUMnOwoiXFxhYnMtZm9udHNpemUiCQkJCQlyZXR1cm4gJ0NNRF9BQlNfRk9OVFNJWkUnOwoiXFx3aXRoLWNvbG9yIgkJCQkJCXJldHVybiAnQ01EX1dJVEhfQ09MT1InOwoiXFxjaGFyIgkJCQkJCQlyZXR1cm4gJ0NNRF9DSEFSJzsKIlxcY2VudGVyLWNvbHVtbiIJCQkJCXJldHVybiAnQ01EX0NFTlRFUl9DT0xVTU4nOwoiXFxyaWdodC1jb2x1bW4iCQkJCQlyZXR1cm4gJ0NNRF9SSUdIVF9DT0xVTU4nOwoiXFx3aXRoLXVybCIJCQkJCQlyZXR1cm4gJ0NNRF9XSVRIX1VSTCc7CiJcXHNhbnMiCQkJCQkJCXJldHVybiAnQ01EX1NBTlMnOwoiXFxjb25jYXQiCQkJCQkJCXJldHVybiAnQ01EX0NPTkNBVCc7CiJcXG1haW50YWluZXIiCQkJCQkJcmV0dXJuICdDTURfTUFJTlRBSU5FUic7CiJcXGZvb3Rub3RlIgkJCQkJCXJldHVybiAnQ01EX0ZPT1ROT1RFJzsKIlxcbmF0dXJhbCIJCQkJCQkJcmV0dXJuICdDTURfTkFUVVJBTCc7CiJcXGZsYXQiCQkJCQkJCXJldHVybiAnQ01EX0ZMQVQnOwoiXFxzaGFycCIJCQkJCQkJcmV0dXJuICdDTURfU0hBUlAnOwoiXFxoc3BhY2UiCQkJCQkJCXJldHVybiAnQ01EX0hTUEFDRSc7CiJcXGZvb3RlciIJCQkJCQkJcmV0dXJuICdDTURfRk9PVEVSJzsKIlxcY2VudGVyLWFsaWduIgkJCQkJcmV0dXJuICdDTURfQ0VOVEVSX0FMSUdOJzsKIlxccmlnaHQtYWxpZ24iCQkJCQkJcmV0dXJuICdDTURfUklHSFRfQUxJR04nOwoiXFxnZW5lcmFsLWFsaWduIgkJCQkJcmV0dXJuICdDTURfR0VORVJBTF9BTElHTic7CiJcXGxvd2VyIgkJCQkJCQlyZXR1cm4gJ0NNRF9MT1dFUic7CiJcXGZpbmdlciIJCQkJCQkJcmV0dXJuICdDTURfRklOR0VSJzsKIlxcZm9udHNpemUiCQkJCQkJcmV0dXJuICdDTURfRk9OVFNJWkUnOwoiXFxyYWlzZSIJCQkJCQkJcmV0dXJuICdDTURfUkFJU0UnOwoiXFxub3RlIgkJCQkJCQlyZXR1cm4gJ0NNRF9OT1RFJzsKIlxcY2lyY2xlIgkJCQkJCQlyZXR1cm4gJ0NNRF9DSVJDTEUnOwoiXFxwYWQtbWFya3VwIgkJCQkJCXJldHVybiAnQ01EX1BBRF9NQVJLVVAnOwoiXFxzbWFsbGVyIgkJCQkJCQlyZXR1cm4gJ0NNRF9TTUFMTEVSJzsKIlxcbm9ybWFsLXRleHQiCQkJCQkJcmV0dXJuICdDTURfTk9STUFMX1RFWFQnOwoKIlxcaHVnZSIJCQkJCQkJcmV0dXJuICdDTURfSFVHRSc7CiJcXGxhcmdlIgkJCQkJCQlyZXR1cm4gJ0NNRF9MQVJHRSc7CiJcXG5vcm1hbHNpemUiCQkJCQkJcmV0dXJuICdDTURfTk9STUFMU0laRSc7CiJcXHNtYWxsIgkJCQkJCQlyZXR1cm4gJ0NNRF9TTUFMTCc7CiJcXHRpbnkiCQkJCQkJCXJldHVybiAnQ01EX1RJTlknOwoiXFx0ZWVueSIJCQkJCQkJcmV0dXJuICdDTURfVEVFTlknOwoiXFxtZWRpdW0iCQkJCQkJCXJldHVybiAnQ01EX01FRElVTSc7CgovLyBzeW50YXggY29tbWFuZHMJCQoiXFxoZWFkZXIiCQkJCQkJCXJldHVybiAnSEVBREVSJzsKIlxcbWFya3VwIgkJCQkJCQlyZXR1cm4gJ01BUktVUCc7CiJcXG1hcmt1cGxpc3QiCQkJCQkJcmV0dXJuICdNQVJLVVBMSVNUJzsKIlxccmVwZWF0IgkJCQkJCQlyZXR1cm4gJ1JFUEVBVCc7CiJcXGNvbnRleHQiCQkJCQkJCXJldHVybiAnQ09OVEVYVCc7CiJcXGFjY2VwdHMiCQkJCQkJCXJldHVybiAnQUNDRVBUUyc7CiJcXGFkZGx5cmljcyIJCQkJCQlyZXR1cm4gJ0FERExZUklDUyc7CiJcXGFsaWFzIgkJCQkJCQlyZXR1cm4gJ0FMSUFTJzsKIlxcYWx0ZXJuYXRpdmUiCQkJCQkJcmV0dXJuICdBTFRFUk5BVElWRSc7CiJcXGJvb2siCQkJCQkJCXJldHVybiAnQk9PSyc7CiJcXGJvb2twYXJ0IgkJCQkJCXJldHVybiAnQk9PS1BBUlQnOwoiXFxjaGFuZ2UiCQkJCQkJCXJldHVybiAnQ0hBTkdFJzsKIlxcY2hvcmRtb2RlIgkJCQkJCXJldHVybiAnQ0hPUkRNT0RFJzsKIlxcY2hvcmRzIgkJCQkJCQlyZXR1cm4gJ0NIT1JEUyc7CiJcXGNvbnNpc3RzIgkJCQkJCXJldHVybiAnQ09OU0lTVFMnOwoiXFxkZWZhdWx0IgkJCQkJCQlyZXR1cm4gJ0RFRkFVTFQnOwoiXFxkZWZhdWx0Y2hpbGQiCQkJCQlyZXR1cm4gJ0RFRkFVTFRDSElMRCc7CiJcXGRlbmllcyIJCQkJCQkJcmV0dXJuICdERU5JRVMnOwoiXFxkZXNjcmlwdGlvbiIJCQkJCQlyZXR1cm4gJ0RFU0NSSVBUSU9OJzsKIlxcZHJ1bW1vZGUiCQkJCQkJcmV0dXJuICdEUlVNTU9ERSc7CiJcXGRydW1zIgkJCQkJCQlyZXR1cm4gJ0RSVU1TJzsKIlxcZXRjIgkJCQkJCQkJcmV0dXJuICdFVEMnOwoiXFxmaWd1cmVtb2RlIgkJCQkJCXJldHVybiAnRklHVVJFTU9ERSc7CiJcXGZpZ3VyZXMiCQkJCQkJCXJldHVybiAnRklHVVJFUyc7CiJcXHZlcnNpb24tZXJyb3IiCQkJCQlyZXR1cm4gJ0lOVkFMSUQnOwoiXFxsYXlvdXQiCQkJCQkJCXJldHVybiAnTEFZT1VUJzsKIlxcbHlyaWNtb2RlIgkJCQkJCXJldHVybiAnTFlSSUNNT0RFJzsKIlxcbHlyaWNzIgkJCQkJCQlyZXR1cm4gJ0xZUklDUyc7CiJcXGx5cmljc3RvIgkJCQkJCXJldHVybiAnTFlSSUNTVE8nOwoiXFxtaWRpIgkJCQkJCQlyZXR1cm4gJ01JREknOwoiXFxuYW1lIgkJCQkJCQlyZXR1cm4gJ05BTUUnOwoiXFxub3RlbW9kZSIJCQkJCQlyZXR1cm4gJ05PVEVNT0RFJzsKIlxcb3ZlcnJpZGUiCQkJCQkJcmV0dXJuICdPVkVSUklERSc7CiJcXHBhcGVyIgkJCQkJCQlyZXR1cm4gJ1BBUEVSJzsKIlxccmVtb3ZlIgkJCQkJCQlyZXR1cm4gJ1JFTU9WRSc7CiJcXHJlc3QiCQkJCQkJCXJldHVybiAnUkVTVCc7CiJcXHJldmVydCIJCQkJCQkJcmV0dXJuICdSRVZFUlQnOwoiXFxzY29yZSIJCQkJCQkJcmV0dXJuICdTQ09SRSc7CiJcXHNjb3JlLWxpbmVzIgkJCQkJCXJldHVybiAnU0NPUkVMSU5FUyc7CiJcXHNlcXVlbnRpYWwiCQkJCQkJcmV0dXJuICdTRVFVRU5USUFMJzsKIlxcc2V0IgkJCQkJCQkJcmV0dXJuICdTRVQnOwoiXFxzaW11bHRhbmVvdXMiCQkJCQlyZXR1cm4gJ1NJTVVMVEFORU9VUyc7CiJcXHRlbXBvIgkJCQkJCQlyZXR1cm4gJ1RFTVBPJzsKIlxcdHlwZSIJCQkJCQkJcmV0dXJuICdUWVBFJzsKIlxcdW5zZXQiCQkJCQkJCXJldHVybiAnVU5TRVQnOwoiXFx3aXRoIgkJCQkJCQlyZXR1cm4gJ1dJVEgnOwoKLy8gc2ltcGxlIGNvbW1hbmRzCiJcXDwiCQkJCQkJCQlyZXR1cm4gJ0NNRF9DUkVTQ0VORE9fQkVHSU4nOwoiXFw+IgkJCQkJCQkJcmV0dXJuICdDTURfREVDUkVTQ0VORE9fQkVHSU4nOwoiXFwhIgkJCQkJCQkJcmV0dXJuICdDTURfRFlOQU1JQ1NfRU5EJzsKCntDT01NQU5EfQkJCQkJCQlyZXR1cm4gJ0NPTU1BTkQnOwoKe1BJVENIfQkJCQkJCQkJcmV0dXJuICdQSVRDSCc7Ci8ve1BMQUNFSE9MREVSX1BJVENIfQkJCQkJcmV0dXJuICdQTEFDRUhPTERFUl9QSVRDSCc7Ci8ve1VOU0lHTkVEfQkJCQkJCXJldHVybiAnUE9TVF9VTlNJR05FRCc7CntSRVNUTkFNRX0JCQkJCQkJcmV0dXJuICdSRVNUTkFNRSc7Cgp7RlJBQ1RJT059CQkJCQkJCXJldHVybiAnRlJBQ1RJT04nOwovL3tSRUFMfQkJCQkJCQlyZXR1cm4gJ1JFQUwnOwp7VU5TSUdORUR9CQkJCQkJCXJldHVybiAnVU5TSUdORUQnOwoKLy97SU5UfQkJCQkJCQkJcmV0dXJuICdJTlQnOwoKLy8gQ0hPUkRfTU9ESUZJRVIKW21dW2FdW2pdKD89W1xXXGRdKQkJCQkJcmV0dXJuICdDSE9SRF9NT0RJRklFUl9XT1JEJzsKbSg/PVtcV1xkXSkJCQkJCQkJcmV0dXJuICdDSE9SRF9NT0RJRklFUl9XT1JEJzsKW2FdW3VdW2ddKD89W1xXXGRdKQkJCQkJcmV0dXJuICdDSE9SRF9NT0RJRklFUl9XT1JEJzsKW2RdW2ldW21dKD89W1xXXGRdKQkJCQkJcmV0dXJuICdDSE9SRF9NT0RJRklFUl9XT1JEJzsKW3NdW3VdW3NdKD89W1xXXGRdKQkJCQkJcmV0dXJuICdDSE9SRF9NT0RJRklFUl9XT1JEJzsKCiJpbmYuMCIJCQkJCQkJCXJldHVybiB5eXRleHQ7Cgp7U1lNQk9MfQkJCQkJCQlyZXR1cm4gJ1NZTUJPTCc7CgoiI2YiCQkJCQkJCQlyZXR1cm4gJ1NDTV9GQUxTRSc7CiIjdCIJCQkJCQkJCXJldHVybiAnU0NNX1RSVUUnOwoKIiN4IltcZGEtZkEtRl0rCQkJCQkJcmV0dXJuICdTQ01fSEVYJzsKCiIjOiJ7U1lNQk9MfQkJCQkJCXJldHVybiAnU0NNX0NPTE9OJzsKCiJcXCgiCQkJCQkJCQlyZXR1cm4geXl0ZXh0OwoiXFwpIgkJCQkJCQkJcmV0dXJuIHl5dGV4dDsKClwuKD89XGQpCQkJCQkJCXJldHVybiAnRE9UX05VTUJFUl9SJzsKLy8oPzw9XGQpXC4JCQkJCQkJcmV0dXJuICdET1RfTlVNQkVSX0wnOwoKe1NQRUNJQUx9CQkJCQkJCXJldHVybiB5eXRleHQ7Clx8CQkJCQkJCQkJcmV0dXJuICdESVZJREUnOwoKWygpXQkJCQkJCQkJcmV0dXJuIHl5dGV4dDsKCiJbIgkJCQkJCQkJCXJldHVybiB5eXRleHQ7CiJdIgkJCQkJCQkJCXJldHVybiB5eXRleHQ7CgoiIyIJCQkJCQkJCQlyZXR1cm4geXl0ZXh0OwoifiIJCQkJCQkJCQlyZXR1cm4geXl0ZXh0OwoiYCIJCQkJCQkJCQlyZXR1cm4geXl0ZXh0OwoKLgkJCQkJCQkJCXJldHVybiAnVU5LTk9XTl9DSEFSJzsKCjw8RU9GPj4JCQkJCQkJCXJldHVybiAnRU9GJzsKCgovbGV4Cgolc3RhcnQgc3RhcnRfc3ltYm9sCgolJQoKc3RhcnRfc3ltYm9sCgk6IGxpbHlwb25kIEVPRgoJCXsKCQkJYXR0YWNoQ29tbWVudHMoeXkpOwoJCQlyZXR1cm4gJDE7CgkJfQoJLy98IGVtYmVkZGVkX2xpbHlwb25kCgk7CgpsaWx5cG9uZAoJOiAlZW1wdHkKCQl7JCQgPSByb290KCk7fQoJfCB2ZXJzaW9uCgkJeyQkID0gcm9vdChbJDFdKTsgbGluZVJlZ2lzdGVyKEAxLCAkMSk7fQoJfCBsaWx5cG9uZCB0b3BsZXZlbF9leHByZXNzaW9uCgkJeyQkID0gYXBwZW5kU2VjdGlvbigkMSwgJDIpOyBsaW5lUmVnaXN0ZXIoQDIsICQyKTt9Cgl8IGxpbHlwb25kIGFzc2lnbm1lbnQKCQl7JCQgPSBhcHBlbmRTZWN0aW9uKCQxLCAkMik7IGxpbmVSZWdpc3RlcihAMiwgJDIpO30KCTsKCnZlcnNpb24KCTogQ01EX1ZFUlNJT04gbGl0ZXJhbF9zdHJpbmcKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJOwoKdG9wbGV2ZWxfZXhwcmVzc2lvbgoJOiBoZWFkZXJfYmxvY2sKCQl7JCQgPSAkMTt9Cgl8IGNvbXBvc2l0ZV9tdXNpYwoJCXskJCA9ICQxO30KCXwgZnVsbF9tYXJrdXAKCQl7JCQgPSAkMTt9Cgl8IG91dHB1dF9kZWYKCQl7JCQgPSAkMTt9Cgl8IHNjb3JlX2Jsb2NrCgkJeyQkID0gJDE7fQoJfCBib29rX2Jsb2NrCgkJeyQkID0gJDE7fQoJfCBzY21faWRlbnRpZmllcgoJCXskJCA9ICQxO30KCS8vfCBmdWxsX21hcmt1cF9saXN0CgkvLwl7JCQgPSAkMTt9CgkvL3wgYm9va3BhcnRfYmxvY2sKCS8vfCBCT09LX0lERU5USUZJRVIKCS8vfCBTQ01fVE9LRU4KCS8vfCBlbWJlZGRlZF9zY21fYWN0aXZlCgk7CgpzY29yZV9ibG9jawoJOiBTQ09SRSAneycgc2NvcmVfYm9keSAnfScKCQl7JCQgPSBibG9jaygic2NvcmUiLCAkMSwgJDMpO30KCTsKCmJvb2tfYmxvY2sKCTogQk9PSyAneycgYm9va19ib2R5ICd9JwoJCXskJCA9IGJsb2NrKCJib29rIiwgJDEsICQzKTt9Cgk7Cgpib29rX2JvZHkKCTogJWVtcHR5CgkJeyQkID0gW107fQoJLy98IEJPT0tfSURFTlRJRklFUgoJfCBib29rX2JvZHkgcGFwZXJfYmxvY2sKCQl7JCQucHVzaCgkMik7fQoJLy98IGJvb2tfYm9keSBib29rcGFydF9ibG9jawoJLy8JeyQkLnB1c2goJDIpO30KCXwgYm9va19ib2R5IHNjb3JlX2Jsb2NrCgkJeyQkLnB1c2goJDIpO30KCXwgYm9va19ib2R5IGNvbXBvc2l0ZV9tdXNpYwoJCXskJC5wdXNoKCQyKTt9Cgl8IGJvb2tfYm9keSBmdWxsX21hcmt1cAoJCXskJC5wdXNoKCQyKTt9Cgl8IGJvb2tfYm9keSBmdWxsX21hcmt1cF9saXN0CgkJeyQkLnB1c2goJDIpO30KCS8vfCBib29rX2JvZHkgU0NNX1RPS0VOCgl8IGJvb2tfYm9keSBlbWJlZGRlZF9zY21fYWN0aXZlCgkJeyQkLnB1c2goJDIpO30KCXwgYm9va19ib2R5IGxpbHlwb25kX2hlYWRlcgoJCXskJC5wdXNoKCQyKTt9CgkvL3wgYm9va19ib2R5IGVycm9yCgk7CgpwYXBlcl9ibG9jawoJOiBvdXRwdXRfZGVmCgkJeyQkID0gJDE7fQoJOwoKaGVhZGVyX2Jsb2NrCgk6IGxpbHlwb25kX2hlYWRlcgoJCXskJCA9ICQxO30KCTsKCmxpbHlwb25kX2hlYWRlcgoJOiBIRUFERVIgJ3snIGxpbHlwb25kX2hlYWRlcl9ib2R5ICd9JwoJCXskJCA9IGJsb2NrKCJoZWFkZXIiLCAkMSwgJDMpO30KCTsKCmxpbHlwb25kX2hlYWRlcl9ib2R5Cgk6ICVlbXB0eQoJCXskJCA9IFtdO30KCXwgbGlseXBvbmRfaGVhZGVyX2JvZHkgYXNzaWdubWVudAoJCXskJC5wdXNoKCQyKTsgbGluZVJlZ2lzdGVyKEAyLCAkMik7fQoJLy98IGxpbHlwb25kX2hlYWRlcl9ib2R5IFNDTV9UT0tFTgoJLy98IGxpbHlwb25kX2hlYWRlcl9ib2R5IGVtYmVkZGVkX3NjbV9hY3RpdmUKCTsKCmFzc2lnbm1lbnQKCTogYXNzaWdubWVudF9pZCAnPScgaWRlbnRpZmllcl9pbml0CgkJeyQkID0gYXNzaWdubWVudCgkMSwgJDMpO30KCXwgYXNzaWdubWVudF9pZCAnLicgcHJvcGVydHlfcGF0aCAnPScgaWRlbnRpZmllcl9pbml0CgkJeyQkID0gYXNzaWdubWVudCgkMSArICIuIiArICQzLCAkNSk7fQoJLy98IG1hcmt1cF9tb2RlX3dvcmQgJz0nIGlkZW50aWZpZXJfaW5pdAoJOwoKYXNzaWdubWVudF9pZAoJOiBsaXRlcmFsX3N0cmluZwoJCXskJCA9ICQxO30KCXwgU1lNQk9MCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBQSVRDSAoJCXskJCA9ICQxO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ0hPUkRfTU9ESUZJRVJfV09SRAoJCXskJCA9ICQxO30KCTsKCnByb3BlcnR5X3BhdGgKCTogc3ltYm9sX2xpc3RfcmV2CgkJeyQkID0gJDE7fQoJOwoKc3ltYm9sX2xpc3RfcmV2Cgk6IHN5bWJvbF9saXN0X3BhcnQKCQl7JCQgPSAkMTt9Cgl8IHN5bWJvbF9saXN0X3JldiAnLicgc3ltYm9sX2xpc3RfcGFydAoJCXskJCA9ICQxICsgIi4iICsgJDM7fQoJfCBzeW1ib2xfbGlzdF9yZXYgJywnIHN5bWJvbF9saXN0X3BhcnQKCQl7JCQgPSAkMSArICIsIiArICQzO30KCTsKCnN5bWJvbF9saXN0X3BhcnQKCTogc3ltYm9sX2xpc3RfcGFydF9iYXJlCgkJeyQkID0gJDE7fQoJfCBlbWJlZGRlZF9zY21fYmFyZQoJCXskJCA9ICQxO30KCTsKCnN5bWJvbF9saXN0X3BhcnRfYmFyZQoJOiBTWU1CT0wKCQl7JCQgPSAkMTt9Cgl8IHN5bWJvbF9saXN0X2VsZW1lbnQKCQl7JCQgPSAkMTt9Cgk7CgpzeW1ib2xfbGlzdF9lbGVtZW50Cgk6IGxpdGVyYWxfc3RyaW5nCgkJeyQkID0gJDE7fQoJfCBVTlNJR05FRAoJCXskJCA9ICQxO30KCTsKCmlkZW50aWZpZXJfaW5pdAoJOiBpZGVudGlmaWVyX2luaXRfbm9udW1iZXIKCQl7JCQgPSAkMTt9Cgl8IG51bWJlcl9leHByZXNzaW9uCgkJeyQkID0gJDE7fQoJLy98IHN5bWJvbF9saXN0X3BhcnRfYmFyZSAnLicgcHJvcGVydHlfcGF0aAoJLy8JeyQkID0gJDEgKyAiLiIgKyAkMzt9CgkvL3wgc3ltYm9sX2xpc3RfcGFydF9iYXJlICcsJyBwcm9wZXJ0eV9wYXRoCgkvLwl7JCQgPSAkMSArICIsIiArICQzO30KCXwgcG9zdF9ldmVudF9ub2ZpbmdlciBwb3N0X2V2ZW50cwoJCXskJCA9IFskMSwgJDJdO30KCTsKCm51bWJlcl9leHByZXNzaW9uCgk6IG51bWJlcl9leHByZXNzaW9uICcrJyBudW1iZXJfdGVybQoJfCBudW1iZXJfZXhwcmVzc2lvbiAnLScgbnVtYmVyX3Rlcm0KCXwgbnVtYmVyX3Rlcm0KCTsKCm51bWJlcl90ZXJtCgk6IG51bWJlcl9mYWN0b3IKCXwgbnVtYmVyX2ZhY3RvciAnKicgbnVtYmVyX2ZhY3RvcgoJfCBudW1iZXJfZmFjdG9yICcvJyBudW1iZXJfZmFjdG9yCgk7CgpudW1iZXJfZmFjdG9yCgk6ICctJyAgbnVtYmVyX2ZhY3RvcgoJfCBiYXJlX251bWJlcgoJOwoKaWRlbnRpZmllcl9pbml0X25vbnVtYmVyCgk6IGhlYWRlcl9ibG9jawoJCXskJCA9ICQxO30KCXwgbXVzaWNfYXNzaWduCgkJeyQkID0gJDE7fQoJLy98IGZ1bGxfbWFya3VwX2xpc3QKCS8vCXskJCA9ICQxO30KCXwgc3RyaW5nCgkJeyQkID0gJDE7fQoJfCBwaXRjaF9vcl9tdXNpYwoJCXskJCA9ICQxO30KCXwgRlJBQ1RJT04KCQl7JCQgPSAkMTt9Cgl8IGVtYmVkZGVkX3NjbQoJCXskJCA9ICQxO30KCXwgc2NvcmVfYmxvY2sKCQl7JCQgPSAkMTt9Cgl8IG91dHB1dF9kZWYKCQl7JCQgPSAkMTt9Cgl8IGNvbnRleHRfbW9kaWZpY2F0aW9uCgkJeyQkID0gJDE7fQoJfCBib29rX2Jsb2NrCgkJeyQkID0gJDE7fQoJLy98IGJvb2twYXJ0X2Jsb2NrCgkvL3wgY29udGV4dF9kZWZfc3BlY19ibG9jawoJLy98IHBhcnRpYWxfbWFya3VwCgkvL3wgcGFydGlhbF9mdW5jdGlvbiBFVEMKCTsKCnN0cmluZwoJOiBsaXRlcmFsX3N0cmluZwoJCXskJCA9ICQxO30KCXwgU1lNQk9MCgkJeyQkID0gJDE7fQoJfCBmdWxsX21hcmt1cAoJCXskJCA9ICQxO30KCTsKCnRleHQKCTogbGl0ZXJhbF9zdHJpbmcKCQl7JCQgPSAkMTt9Cgl8IFNZTUJPTAoJCXskJCA9ICQxO30KCXwgZnVsbF9tYXJrdXAKCQl7JCQgPSAkMTt9Cgl8IGVtYmVkZGVkX3NjbV9iYXJlCgkJeyQkID0gJDE7fQoJOwoKZnVsbF9tYXJrdXBfbGlzdAoJOiBNQVJLVVBMSVNUCgkJeyQkID0gJDE7fQoJfCBtYXJrdXBfbGlzdAoJCXskJCA9ICQxO30KCTsKCm1hcmt1cF9saXN0Cgk6IG1hcmt1cF9jb21wb3NlZF9saXN0CgkJeyQkID0gJDE7fQoJfCBtYXJrdXBfdW5jb21wb3NlZF9saXN0CgkJeyQkID0gWyQxXTt9Cgk7CgptYXJrdXBfY29tcG9zZWRfbGlzdAoJOiBtYXJrdXBfaGVhZF8xX2xpc3QgbWFya3VwX3VuY29tcG9zZWRfbGlzdAoJCS8veyQkID0gYmxvY2soIm1hcmt1cCIsICQxLCAkMik7fQoJCXskJCA9IFsuLi4kMSwgJDJdO30KCTsKCm1hcmt1cF9oZWFkXzFfbGlzdAoJOiBtYXJrdXBfaGVhZF8xX2l0ZW0KCQl7JCQgPSBbJDFdO30KCXwgbWFya3VwX2hlYWRfMV9saXN0IG1hcmt1cF9oZWFkXzFfaXRlbQoJCXskJCA9ICQxLmNvbmNhdChbJDJdKTt9Cgk7CgptYXJrdXBfaGVhZF8xX2l0ZW0KCS8vOiBtYXJrdXBfZnVuY3Rpb24gRVhQRUNUX01BUktVUCBtYXJrdXBfY29tbWFuZF9saXN0X2FyZ3VtZW50cwoJLy86IG1hcmt1cF9mdW5jdGlvbiBtYXJrdXBfY29tbWFuZF9saXN0X2FyZ3VtZW50cwoJLy8JeyQkID0ge2Z1bmM6ICQxLCBhcmdzOiAkMn07fQoJOiBtYXJrdXBfZnVuY3Rpb24KCQkvL3skJCA9IHtmdW5jOiAkMX07fQoJCXskJCA9ICQxO30KCTsKCi8vIGVxdWl2YWxlbnQgZm9yIE1BUktVUF9GVU5DVElPTiBpbiBsaWx5cG9uZCdzIHBhcnNlci55eQptYXJrdXBfZnVuY3Rpb24KCS8vOiBDTURfQ09MVU1OCgkvLwl7JCQgPSAkMTt9Cgk6IENNRF9MSU5FCgkJeyQkID0gJDE7fQoJLy98IENNRF9CT0xECgkvLwl7JCQgPSAkMTt9CgkvL3wgQ01EX0lUQUxJQwoJLy8JeyQkID0gJDE7fQoJLy98IG1hcmt1cF9mb250X3NpemUKCS8vCXskJCA9ICQxO30KCXwgQ01EX0JPWAoJCXskJCA9ICQxO30KCXwgQ01EX1dISVRFT1VUCgkJeyQkID0gJDE7fQoJfCBDTURfRFlOQU1JQwoJCXskJCA9ICQxO30KCS8vfCBDTURfQ0VOVEVSX0NPTFVNTgoJLy8JeyQkID0gJDE7fQoJLy98IENNRF9XSVRIX1VSTAoJLy8JeyQkID0gJDE7fQoJLy98IENNRF9TQU5TCgkvLwl7JCQgPSAkMTt9CgkvL3wgQ01EX0NPTkNBVAoJLy8JeyQkID0gJDE7fQoJfCBDTURfTUFJTlRBSU5FUgoJCXskJCA9ICQxO30KCTsKCi8vIGV4dHJhIHN5bnRheAptYXJrdXBfZm9udF9zaXplCgk6IENNRF9IVUdFCgkJeyQkID0gJDE7fQoJfCBDTURfTEFSR0UKCQl7JCQgPSAkMTt9Cgl8IENNRF9OT1JNQUxTSVpFCgkJeyQkID0gJDE7fQoJfCBDTURfU01BTEwKCQl7JCQgPSAkMTt9Cgl8IENNRF9USU5ZCgkJeyQkID0gJDE7fQoJfCBDTURfVEVFTlkKCQl7JCQgPSAkMTt9Cgl8IENNRF9NRURJVU0KCQl7JCQgPSAkMTt9Cgk7CgptYXJrdXBfdW5jb21wb3NlZF9saXN0Cgk6IG1hcmt1cF9icmFjZWRfbGlzdAoJCXskJCA9ICQxO30KCS8vfCBtYXJrdXBfY29tbWFuZF9saXN0CgkvL3wgbWFya3VwX3NjbSBNQVJLVVBMSVNUX0lERU5USUZJRVIKCS8vfCBTQ09SRUxJTkVTICd7JyBzY29yZV9ib2R5ICd9JwoJOwoKbWFya3VwX2JyYWNlZF9saXN0Cgk6ICd7JyBtYXJrdXBfYnJhY2VkX2xpc3RfYm9keSAnfScKCQl7JCQgPSBpbmxpbmVCbG9jaygkMik7fQoJOwoKbWFya3VwX2JyYWNlZF9saXN0X2JvZHkKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBtYXJrdXBfYnJhY2VkX2xpc3RfYm9keSBtYXJrdXAKCQl7JCQgPSAkMS5jb25jYXQoWyQyXSk7fQoJfCBtYXJrdXBfYnJhY2VkX2xpc3RfYm9keSBtYXJrdXBfbGlzdAoJCXskJCA9ICQxLmNvbmNhdCgkMik7fQoJOwoKbWFya3VwCgk6IG1hcmt1cF9oZWFkXzFfbGlzdCBzaW1wbGVfbWFya3VwCgkJLy97JCQgPSAkMS5jb25jYXQoWyQyXSk7fQoJCXskJCA9IG1hcmt1cCgkMSwgJDIpO30KCXwgc2ltcGxlX21hcmt1cAoJCXskJCA9ICQxO30KCTsKCnNpbXBsZV9tYXJrdXAKCTogbWFya3VwX3dvcmQKCQl7JCQgPSAkMTt9Cgl8IHNpbXBsZV9tYXJrdXBfbm93b3JkCgkJeyQkID0gJDE7fQoJOwoKbWFya3VwX3dvcmQKCTogbGl0ZXJhbF9zdHJpbmcKCQl7JCQgPSAkMTt9Cgl8IFNZTUJPTAoJCXskJCA9ICQxO30KCXwgdW5zaWduZWRfbnVtYmVyCgkJeyQkID0gJDE7fQoJfCBDTURfTVVTSUNHTFlQSAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX05BVFVSQUwKCQl7JCQgPSAkMTt9Cgl8IENNRF9GTEFUCgkJeyQkID0gJDE7fQoJfCBDTURfU0hBUlAKCQl7JCQgPSAkMTt9Cgl8IENNRF9GT09URVIKCQl7JCQgPSAkMTt9Cgl8IHNjbV9pZGVudGlmaWVyCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBtdXNpY19wcm9wZXJ0eV9kZWYKCQl7JCQgPSAkMTt9Cgl8IGNvbnRleHRfY2hhbmdlCgkJeyQkID0gJDE7fQoJfCBwaXRjaF9tb2RlX211c2ljCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBQSVRDSAoJCXskJCA9ICQxO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgUkVBTAoJCXskJCA9ICQxO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgSU5UCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBnZW5lcmFsX3RleHQKCQl7JCQgPSAkMTt9Cgk7CgovLyBleHRyYSBzeW50YXgKbG9uZ19leHRlbmRlcgoJOiBQUkVfRVhURU5ERVIgIl8iCgkJeyQkID0gJDEgKyAkMn0KCXwgUFJFX0VYVEVOREVSIGxvbmdfZXh0ZW5kZXIKCQl7JCQgPSAkMSArICQyfQoJOwoKLy8gZXh0cmEgc3ludGF4CmdlbmVyYWxfdGV4dAoJOiBDSE9SRF9NT0RJRklFUl9XT1JECgkJeyQkID0gJDE7fQoJfCAiLiIKCQl7JCQgPSAkMTt9Cgl8ICItIgoJCXskJCA9ICQxO30KCXwgIl8iCgkJeyQkID0gJDE7fQoJfCBQUkVfSFlQSEVOCgkJeyQkID0gJDE7fQoJfCBsb25nX2V4dGVuZGVyCgkJeyQkID0gJDE7fQoJfCAiPSIKCQl7JCQgPSAkMTt9Cgl8ICInIgoJCXskJCA9ICQxO30KCXwgIiwiCgkJeyQkID0gJDE7fQoJfCAiOiIKCQl7JCQgPSAkMTt9Cgl8ICIvIgoJCXskJCA9ICQxO30KCXwgIigiCgkJeyQkID0gJDE7fQoJfCAiKSIKCQl7JCQgPSAkMTt9Cgl8ICIqIgoJCXskJCA9ICQxO30KCXwgIn4iCgkJeyQkID0gJDE7fQoJfCAiISIKCQl7JCQgPSAkMTt9Cgl8ICI/IgoJCXskJCA9ICQxO30KCXwgVU5LTk9XTl9DSEFSCgkJeyQkID0gJDE7fQoJLy98IFBMQUNFSE9MREVSX1BJVENICgkvLwl7JCQgPSAkMTt9Cgl8IFJFU1ROQU1FCgkJeyQkID0gJDE7fQoJOwoKc2ltcGxlX21hcmt1cF9ub3dvcmQKCTogU0NPUkUgJ3snIHNjb3JlX2JvZHkgJ30nCgkJLy97JCQgPSB7c2NvcmU6ICQzfTt9CgkJeyQkID0gYmxvY2soInNjb3JlIiwgJDEsICQzKTt9Cgl8IG1hcmt1cF9mdW5jdGlvbiBtYXJrdXBfY29tbWFuZF9iYXNpY19hcmd1bWVudHMKCQkvL3skJCA9IHtmdW5jOiAkMSwgYXJnczogJDJ9O30KCQl7JCQgPSBjb21tYW5kKCQxLCAuLi4kMik7fQoJLy98IG1hcmt1cF9zY20gTUFSS1VQX0lERU5USUZJRVIKCS8vIGV4dHJhIGZvcm11bGEKCXwgT1ZFUlJJREUgc2NtX2lkZW50aWZpZXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfQUJTX0ZPTlRTSVpFIHNjbV9pZGVudGlmaWVyIG1hcmt1cAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfQUJTX0ZPTlRTSVpFIHNjbV9pZGVudGlmaWVyIG1hcmt1cF9saXN0CgkJeyQkID0gY29tbWFuZCgkMSwgJDIsIC4uLiQzKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9XSVRIX0NPTE9SIHNjbV9pZGVudGlmaWVyIG1hcmt1cAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfQ0hBUiBzY21faWRlbnRpZmllcgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9IU1BBQ0Ugc2NtX2lkZW50aWZpZXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfU0FOUyBtYXJrdXAKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfU0FOUyBtYXJrdXBfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsIC4uLiQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9DT05DQVQgbWFya3VwX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQxLCAuLi4kMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfQ09MVU1OIG1hcmt1cF9saXN0CgkJeyQkID0gY29tbWFuZCgkMSwgLi4uJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX0NFTlRFUl9DT0xVTU4gbWFya3VwX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQxLCAuLi4kMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfUklHSFRfQ09MVU1OIG1hcmt1cF9saXN0CgkJeyQkID0gY29tbWFuZCgkMSwgLi4uJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX0ZPT1ROT1RFIHN0cmluZyBzdHJpbmcKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX1dJVEhfVVJMIHNjYWxhciBzdHJpbmcKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX1dJVEhfVVJMIHNjYWxhciBtYXJrdXBfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAuLi4kMyk7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfQk9MRCBtYXJrdXBfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsIC4uLiQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9CT0xEIG1hcmt1cAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IG1hcmt1cF9mb250X3NpemUgbWFya3VwCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgbWFya3VwX2ZvbnRfc2l6ZSBtYXJrdXBfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsIC4uLiQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9JVEFMSUMgbWFya3VwCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX0lUQUxJQyBtYXJrdXBfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsIC4uLiQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9DRU5URVJfQUxJR04gbWFya3VwX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQxLCAuLi4kMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfQ0VOVEVSX0FMSUdOIG1hcmt1cAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9SSUdIVF9BTElHTiBtYXJrdXBfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsIC4uLiQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9SSUdIVF9BTElHTiBtYXJrdXAKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfR0VORVJBTF9BTElHTiBzY21faWRlbnRpZmllciBzY21faWRlbnRpZmllciBtYXJrdXAKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMsICQ0KTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9MT1dFUiBzY21faWRlbnRpZmllcgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9GSU5HRVIgc3RyaW5nCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX0ZPTlRTSVpFIHNjbV9pZGVudGlmaWVyIG1hcmt1cAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfRk9OVFNJWkUgc2NtX2lkZW50aWZpZXIgbWFya3VwX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX1JBSVNFIHNjbV9pZGVudGlmaWVyCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX05PVEUgc2NtX2lkZW50aWZpZXIgc2NtX2lkZW50aWZpZXIgbWFya3VwCgkJeyQkID0gY29tbWFuZCgkMSwgJDIsICQzLCAkNCk7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfQ0lSQ0xFIG1hcmt1cF9saXN0CgkJeyQkID0gY29tbWFuZCgkMSwgLi4uJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ01EX0NJUkNMRSBtYXJrdXAKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfUEFEX01BUktVUCBzY21faWRlbnRpZmllcgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9TTUFMTEVSIG1hcmt1cAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IENNRF9OT1JNQUxfVEVYVCBtYXJrdXAKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJOwoKbWFya3VwX2NvbW1hbmRfYmFzaWNfYXJndW1lbnRzCgk6ICVlbXRweQoJCXskJCA9IFtdO30KCXwgLypFWFBFQ1RfTUFSS1VQX0xJU1QqLyBtYXJrdXBfY29tbWFuZF9saXN0X2FyZ3VtZW50cyBtYXJrdXBfbGlzdAoJCXskJCA9ICQxLmNvbmNhdCgkMik7fQoJfCAvKkVYUEVDVF9TQ00qLyBtYXJrdXBfY29tbWFuZF9saXN0X2FyZ3VtZW50cyBtYXJrdXBfY29tbWFuZF9lbWJlZGRlZF9saWx5cG9uZAoJCXskJCA9ICQxLmNvbmNhdCgkMik7fQoJLy98IEVYUEVDVF9TQ00gbWFya3VwX2NvbW1hbmRfbGlzdF9hcmd1bWVudHMgZW1iZWRkZWRfc2NtCgkvL3wgRVhQRUNUX1NDTSBtYXJrdXBfY29tbWFuZF9saXN0X2FyZ3VtZW50cyBtb2RlX2NoYW5nZWRfbXVzaWMKCS8vfCBFWFBFQ1RfU0NNIG1hcmt1cF9jb21tYW5kX2xpc3RfYXJndW1lbnRzIE1VU0lDX0lERU5USUZJRVIKCS8vfCBFWFBFQ1RfU0NNIG1hcmt1cF9jb21tYW5kX2xpc3RfYXJndW1lbnRzIGxpdGVyYWxfc3RyaW5nCgkvL3wgRVhQRUNUX05PX01PUkVfQVJHUwoJOwoKbWFya3VwX2NvbW1hbmRfbGlzdF9hcmd1bWVudHMKCTogbWFya3VwX2NvbW1hbmRfYmFzaWNfYXJndW1lbnRzCgkJeyQkID0gWyQxXTt9Cgl8IC8qRVhQRUNUX01BUktVUCovIG1hcmt1cF9jb21tYW5kX2xpc3RfYXJndW1lbnRzIG1hcmt1cAoJCXskJCA9ICQxLmNvbmNhdCgkMik7fQoJOwoKbWFya3VwX2NvbW1hbmRfZW1iZWRkZWRfbGlseXBvbmQKCTogJ3snIGVtYmVkZGVkX2xpbHlwb25kICd9JwoJCXskJCA9ICQyO30KCTsKCmVtYmVkZGVkX2xpbHlwb25kCgk6ICVlbXB0eQoJCXskJCA9ICQxO30KCXwgaWRlbnRpZmllcl9pbml0X25vbnVtYmVyCgkJeyQkID0gJDE7fQoJfCBlbWJlZGRlZF9saWx5cG9uZF9udW1iZXIKCQl7JCQgPSAkMTt9Cgl8IHBvc3RfZXZlbnQKCQl7JCQgPSAkMTt9CgkvL3wgZHVyYXRpb24gcG9zdF9ldmVudHMgJXByZWMgJzonCgl8IG11c2ljX2VtYmVkZGVkIG11c2ljX2VtYmVkZGVkIG11c2ljX2xpc3QKCQl7JCQgPSBbJDEsICQyLCAkM107fQoJLy98IGVycm9yCgkvL3wgSU5WQUxJRCBlbWJlZGRlZF9saWx5cG9uZAoJOwoKZW1iZWRkZWRfbGlseXBvbmRfbnVtYmVyCgk6ICctJyBlbWJlZGRlZF9saWx5cG9uZF9udW1iZXIKCQl7JCQgPSAtJDE7fQoJfCBiYXJlX251bWJlcl9jb21tb24KCQl7JCQgPSAkMTt9CgkvL3wgVU5TSUdORUQgTlVNQkVSX0lERU5USUZJRVIKCTsKCmJhcmVfbnVtYmVyX2NvbW1vbgoJOiBSRUFMCgkJeyQkID0gTnVtYmVyKCQxKTt9CgkvL3wgTlVNQkVSX0lERU5USUZJRVIKCS8vfCBSRUFMIE5VTUJFUl9JREVOVElGSUVSCgl8IG51bWJlcl9pZGVudGlmaWVyCgkJeyQkID0gJDE7fQoJfCBGUkFDVElPTgoJCXskJCA9ICQxO30KCTsKCi8vIGV4dHJhIHN5bnRheApkb3QKCTogIi4iCgkJeyQkID0gJDE7fQoJfCBET1RfTlVNQkVSX1IKCQl7JCQgPSAkMTt9Cgk7CgpJTlQKCTogVU5TSUdORUQKCQl7JCQgPSBOdW1iZXIoJDEpO30KCXwgIi0iIFVOU0lHTkVECgkJeyQkID0gLU51bWJlcigkMik7fQoJOwoKLy8gZXh0cmEgc3ludGF4CnBvc2l0aXZlX3JlYWwKCTogVU5TSUdORUQgRE9UX05VTUJFUl9SIFVOU0lHTkVECgkJeyQkID0gTnVtYmVyKCQxICsgJDIgKyAkMyk7fQoJLy98IFVOU0lHTkVEIERPVF9OVU1CRVJfTAoJLy8JeyQkID0gTnVtYmVyKCQxICsgJDIpO30KCXwgRE9UX05VTUJFUl9SIFVOU0lHTkVECgkJeyQkID0gTnVtYmVyKCQxICsgJDIpO30KCTsKClJFQUwKCTogcG9zaXRpdmVfcmVhbAoJCXskJCA9ICQxO30KCXwgIi0iIHBvc2l0aXZlX3JlYWwKCQl7JCQgPSAtJDI7fQoJOwoKLy8gZXF1aXZhbGVudCBmb3IgTlVNQkVSX0lERU5USUZJRVIgaW4gbGlseXBvbmQncyBwYXJzZXIueXkKbnVtYmVyX2lkZW50aWZpZXIKCTogUkVBTCBudW1iZXJfdW5pdAoJCXskJCA9IG51bWJlclVuaXQoJDEsICQyKTt9CgkvL3wgSU5UIG51bWJlcl91bml0CgkvLwl7JCQgPSBudW1iZXJVbml0KCQxLCAkMik7fQoJfCBVTlNJR05FRCBudW1iZXJfdW5pdAoJCXskJCA9IG51bWJlclVuaXQoJDEsICQyKTt9Cgk7CgovLyBhZGRvbiB0ZXJtIHRvIGNvbnN0cnVjdCBudW1iZXJfaWRlbnRpZmllcgpudW1iZXJfdW5pdAoJOiBDRU5USU1FVEVSCgkJeyQkID0gJDE7fQoJfCBNSUxMSU1FVEVSCgkJeyQkID0gJDE7fQoJOwoKc2NvcmVfYm9keQoJOiBzY29yZV9pdGVtcwoJCXskJCA9ICQxO30KCS8vfCBzY29yZV9ib2R5IGVycm9yCgk7CgpzY29yZV9pdGVtcwoJOiAlZW1wdHkKCQl7JCQgPSBbXTt9Cgl8IHNjb3JlX2l0ZW1zIHNjb3JlX2l0ZW0KCQl7JCQgPSAkMS5jb25jYXQoWyQyXSk7IGxpbmVIZWFkKEAyLCAkMik7fQoJfCBzY29yZV9pdGVtcyBsaWx5cG9uZF9oZWFkZXIKCQl7JCQgPSAkMS5jb25jYXQoWyQyXSk7IGxpbmVIZWFkKEAyLCAkMik7fQoJOwoKc2NvcmVfaXRlbQoJOiBtdXNpYwoJCXskJCA9ICQxO30KCXwgb3V0cHV0X2RlZgoJCXskJCA9ICQxO30KCS8vOiBlbWJlZGRlZF9zY20KCTsKCi8vbWFya3VwX2NvbW1hbmRfbGlzdAovLwk6IE1BUktVUF9MSVNUX0ZVTkNUSU9OIG1hcmt1cF9jb21tYW5kX2xpc3RfYXJndW1lbnRzCi8vCTsKCm1hcmt1cF9zY20KCTogZW1iZWRkZWRfc2NtCgkJeyQkID0gJDE7fQoJOwoKZW1iZWRkZWRfc2NtCgk6IGVtYmVkZGVkX3NjbV9iYXJlCgkJeyQkID0gJDE7fQoJLy98IHNjbV9mdW5jdGlvbl9jYWxsCgkvL3wgbG9va3VwCgk7CgpzY21fZnVuY3Rpb25fY2FsbAoJOiBTQ01fRlVOQ1RJT04gZnVuY3Rpb25fYXJnbGlzdAoJOwoKZnVuY3Rpb25fYXJnbGlzdAoJOiBmdW5jdGlvbl9hcmdsaXN0X25vbmJhY2t1cAoJCXskJCA9ICQxO30KCS8vfCBFWFBFQ1RfT1BUSU9OQUwgRVhQRUNUX1NDTSBmdW5jdGlvbl9hcmdsaXN0X3NraXBfbm9uYmFja3VwIERFRkFVTFQKCTsKCmZ1bmN0aW9uX2FyZ2xpc3Rfbm9uYmFja3VwCgk6IGZ1bmN0aW9uX2FyZ2xpc3RfY29tbW9uCgkvL3wgRVhQRUNUX09QVElPTkFMIEVYUEVDVF9TQ00gZnVuY3Rpb25fYXJnbGlzdF9ub25iYWNrdXAgcG9zdF9ldmVudF9ub2ZpbmdlcgoJLy98IEVYUEVDVF9PUFRJT05BTCBFWFBFQ1RfU0NNIGZ1bmN0aW9uX2FyZ2xpc3Rfbm9uYmFja3VwICctJyBVTlNJR05FRAoJLy98IEVYUEVDVF9PUFRJT05BTCBFWFBFQ1RfU0NNIGZ1bmN0aW9uX2FyZ2xpc3Rfbm9uYmFja3VwICctJyBSRUFMCgkvL3wgRVhQRUNUX09QVElPTkFMIEVYUEVDVF9TQ00gZnVuY3Rpb25fYXJnbGlzdF9ub25iYWNrdXAgJy0nIE5VTUJFUl9JREVOVElGSUVSCgkvL3wgRVhQRUNUX09QVElPTkFMIEVYUEVDVF9TQ00gZnVuY3Rpb25fYXJnbGlzdF9ub25iYWNrdXAgZW1iZWRkZWRfc2NtX2FyZwoJLy98IEVYUEVDVF9PUFRJT05BTCBFWFBFQ1RfU0NNIGZ1bmN0aW9uX2FyZ2xpc3Rfbm9uYmFja3VwIGJhcmVfbnVtYmVyX2NvbW1vbgoJfCBmdW5jdGlvbl9hcmdsaXN0X25vbmJhY2t1cF9yZXBhcnNlIFJFUEFSU0UgcGl0Y2hfb3JfbXVzaWMKCXwgZnVuY3Rpb25fYXJnbGlzdF9ub25iYWNrdXBfcmVwYXJzZSBSRVBBUlNFIGR1cmF0aW9uCgl8IGZ1bmN0aW9uX2FyZ2xpc3Rfbm9uYmFja3VwX3JlcGFyc2UgUkVQQVJTRSByZXBhcnNlZF9yaHl0aG0KCXwgZnVuY3Rpb25fYXJnbGlzdF9ub25iYWNrdXBfcmVwYXJzZSBSRVBBUlNFIGJhcmVfbnVtYmVyX2NvbW1vbgoJfCBmdW5jdGlvbl9hcmdsaXN0X25vbmJhY2t1cF9yZXBhcnNlIFJFUEFSU0UgU0NNX0FSRwoJfCBmdW5jdGlvbl9hcmdsaXN0X25vbmJhY2t1cF9yZXBhcnNlIFJFUEFSU0UgbHlyaWNfZWxlbWVudF9tdXNpYwoJfCBmdW5jdGlvbl9hcmdsaXN0X25vbmJhY2t1cF9yZXBhcnNlIFJFUEFSU0Ugc3ltYm9sX2xpc3RfYXJnCgk7CgpmdW5jdGlvbl9hcmdsaXN0X2NvbW1vbgoJLy86IEVYUEVDVF9OT19NT1JFX0FSR1MKCTogJWVtcHR5CgkvL3wgRVhQRUNUX1NDTSBmdW5jdGlvbl9hcmdsaXN0X29wdGlvbmFsIGVtYmVkZGVkX3NjbV9hcmcKCS8vfCBFWFBFQ1RfU0NNIGZ1bmN0aW9uX2FyZ2xpc3Rfb3B0aW9uYWwgYmFyZV9udW1iZXJfY29tbW9uCgkvL3wgRVhQRUNUX1NDTSBmdW5jdGlvbl9hcmdsaXN0X29wdGlvbmFsIHBvc3RfZXZlbnRfbm9maW5nZXIKCS8vfCBFWFBFQ1RfU0NNIGZ1bmN0aW9uX2FyZ2xpc3Rfb3B0aW9uYWwgJy0nIE5VTUJFUl9JREVOVElGSUVSCgl8IGZ1bmN0aW9uX2FyZ2xpc3RfY29tbW9uX3JlcGFyc2UgUkVQQVJTRSBTQ01fQVJHCgl8IGZ1bmN0aW9uX2FyZ2xpc3RfY29tbW9uX3JlcGFyc2UgUkVQQVJTRSBseXJpY19lbGVtZW50X211c2ljCgl8IGZ1bmN0aW9uX2FyZ2xpc3RfY29tbW9uX3JlcGFyc2UgUkVQQVJTRSBwaXRjaF9vcl9tdXNpYwoJfCBmdW5jdGlvbl9hcmdsaXN0X2NvbW1vbl9yZXBhcnNlIFJFUEFSU0UgYmFyZV9udW1iZXJfY29tbW9uCgl8IGZ1bmN0aW9uX2FyZ2xpc3RfY29tbW9uX3JlcGFyc2UgUkVQQVJTRSBkdXJhdGlvbgoJfCBmdW5jdGlvbl9hcmdsaXN0X2NvbW1vbl9yZXBhcnNlIFJFUEFSU0UgcmVwYXJzZWRfcmh5dGhtCgl8IGZ1bmN0aW9uX2FyZ2xpc3RfY29tbW9uX3JlcGFyc2UgUkVQQVJTRSBzeW1ib2xfbGlzdF9hcmcKCTsKCmxvb2t1cAoJOiBMT09LVVBfSURFTlRJRklFUgoJCXskJCA9ICQxO30KCXwgTE9PS1VQX0lERU5USUZJRVIgJy4nIHN5bWJvbF9saXN0X3JldgoJCXskJCA9ICQxICsgIi4iICsgJDI7fQoJOwoKc3ltYm9sX2xpc3RfcGFydAoJOiBzeW1ib2xfbGlzdF9wYXJ0X2JhcmUKCQl7JCQgPSAkMTt9Cgl8IGVtYmVkZGVkX3NjbV9iYXJlCgkJeyQkID0gJDE7fQoJOwoKZW1iZWRkZWRfc2NtX2JhcmUKCS8vOiBTQ01fVE9LRU4KCS8vfCBTQ01fSURFTlRJRklFUgoJOiBzY21faWRlbnRpZmllcgoJCXskJCA9ICQxO30KCTsKCi8vIGVxdWl2YWxlbnQgZm9yIFNDTV9JREVOVElGSUVSIGluIGxpbHlwb25kIHBhcnNlci55eQpzY21faWRlbnRpZmllcgoJLy86IFNDTV9GQUxTRQoJLy8JeyQkID0gc2NoZW1lKGZhbHNlKTt9CgkvL3wgU0NNX1RSVUUKCS8vCXskJCA9IHNjaGVtZSh0cnVlKTt9CgkvL3wgU0NNX0lOVAoJLy8JeyQkID0gc2NoZW1lKCQxLnN1YnN0cigxKSk7fQoJLy98ICIjIiAiJyIgU1lNQk9MCgkvLwl7JCQgPSBzY2hlbWUoIiciICsgJDMpO30KCTogIiMiIHNjaGVtZV9leHByZXNzaW9uCgkJeyQkID0gc2NoZW1lKCQyKTt9Cgl8IERPTExBUl9TQ0hFTUVfRVhQUkVTU0lPTgoJCXskJCA9ICQxO30KCTsKCmNvbXBvc2l0ZV9tdXNpYwoJOiBiYXNpY19tdXNpYwoJCXskJCA9ICQxO30KCXwgY29udGV4dGVkX2Jhc2ljX211c2ljCgkJeyQkID0gJDE7fQoJLy98IGJhc2ljX211c2ljIG5ld19seXJpY3MKCTsKCmNvbnRleHRlZF9iYXNpY19tdXNpYwoJOiBjb250ZXh0X3ByZWZpeCBjb250ZXh0YWJsZV9tdXNpYyBuZXdfbHlyaWNzCgkJeyQkID0gY29udGV4dGVkTXVzaWMoJDEsICQyLCAkMyk7fQoJfCBjb250ZXh0X3ByZWZpeCBjb250ZXh0YWJsZV9tdXNpYwoJCXskJCA9IGNvbnRleHRlZE11c2ljKCQxLCAkMik7fQoJfCBjb250ZXh0X3ByZWZpeCBjb250ZXh0ZWRfYmFzaWNfbXVzaWMKCQl7JCQgPSBjb250ZXh0ZWRNdXNpYygkMSwgJDIpO30KCTsKCmNvbnRleHRhYmxlX211c2ljCgk6IGJhc2ljX211c2ljCgkJeyQkID0gJDE7fQoJfCBwaXRjaF9hc19tdXNpYwoJCXskJCA9ICQxO30KCXwgZXZlbnRfY2hvcmQKCQl7JCQgPSAkMTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IHZhcmlhYmxlX2NvbW1hbmQKCQl7JCQgPSAkMTt9Cgk7CgpuZXdfbHlyaWNzCgk6IEFERExZUklDUyBvcHRpb25hbF9jb250ZXh0X21vZHMgbHlyaWNfbW9kZV9tdXNpYwoJCXskJCA9IFt7YWRkTHlyaWNzOiAkMywgbW9kczogJDJ9XTt9Cgl8IG5ld19seXJpY3MgQURETFlSSUNTIG9wdGlvbmFsX2NvbnRleHRfbW9kcyBseXJpY19tb2RlX211c2ljCgkJeyQkID0gJDEuY29uY2F0KFt7YWRkTHlyaWNzOiAkNCwgbW9kczogJDN9XSk7fQoJOwoKbHlyaWNfbW9kZV9tdXNpYwoJOiBncm91cGVkX211c2ljX2xpc3QKCQl7JCQgPSAkMTt9CgkvL3wgTVVTSUNfSURFTlRJRklFUgoJfCBtdXNpY19pZGVudGlmaWVyCgkJeyQkID0gJDE7fQoJOwoKY29udGV4dF9wcmVmaXgKCTogQ09OVEVYVCBzeW1ib2wgb3B0aW9uYWxfaWQgb3B0aW9uYWxfY29udGV4dF9tb2RzCgkJLy97JCQgPSB7Y29udGV4dDogJDIsIGFzc2lnbjogJDMsIG1vZHM6ICQ0fTt9CgkJeyQkID0gY29tbWFuZCgkMSwgJDIsICQzLCAuLi4kNCk7fQoJfCBORVdDT05URVhUIHN5bWJvbCBvcHRpb25hbF9pZCBvcHRpb25hbF9jb250ZXh0X21vZHMKCQkvL3skJCA9IHtjb250ZXh0OiAkMiwgbmV3OiB0cnVlLCBhc3NpZ246ICQzLCBtb2RzOiAkNH07fQoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMywgLi4uJDQpO30KCTsKCm9wdGlvbmFsX2lkCgk6ICVlbXB0eQoJCXskJCA9IG51bGw7fQoJfCAnPScgc2ltcGxlX3N0cmluZwoJCXskJCA9IGFzc2lnbm1lbnQobnVsbCwgJDIpO30KCTsKCm9wdGlvbmFsX2NvbnRleHRfbW9kcwoJOiBjb250ZXh0X21vZGlmaWNhdGlvbl9tb2RzX2xpc3QKCQl7JCQgPSAkMTt9Cgk7Cgpjb250ZXh0X21vZGlmaWNhdGlvbl9tb2RzX2xpc3QKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBjb250ZXh0X21vZGlmaWNhdGlvbl9tb2RzX2xpc3QgY29udGV4dF9tb2RpZmljYXRpb24KCQl7JCQgPSAkMS5jb25jYXQoJDIpO30KCTsKCmJhc2ljX211c2ljCgk6IHJlcGVhdGVkX211c2ljCgkJeyQkID0gJDE7fQoJfCBtdXNpY19iYXJlCgkJeyQkID0gJDE7fQoJfCBMWVJJQ1NUTyBzaW1wbGVfc3RyaW5nIGx5cmljX21vZGVfbXVzaWMKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCXwgTFlSSUNTVE8gc3ltYm9sICc9JyBzaW1wbGVfc3RyaW5nIGx5cmljX21vZGVfbXVzaWMKCQl7JCQgPSBjb21tYW5kKCQxLCBhc3NpZ25tZW50KCQyLCAkNCksICQ1KTt9Cgk7CgptdXNpY19iYXJlCgk6IGdyb3VwZWRfbXVzaWNfbGlzdAoJCXskJCA9ICQxO30KCXwgbXVzaWNfaWRlbnRpZmllcgoJCXskJCA9ICQxO30KCXwgbW9kZV9jaGFuZ2VkX211c2ljCgkJeyQkID0gJDE7fQoJOwoKbW9kZV9jaGFuZ2VkX211c2ljCgk6IG1vZGVfY2hhbmdpbmdfaGVhZCBncm91cGVkX211c2ljX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBtb2RlX2NoYW5naW5nX2hlYWRfd2l0aF9jb250ZXh0IG9wdGlvbmFsX2NvbnRleHRfbW9kcyBncm91cGVkX211c2ljX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQxLCAuLi4kMiwgJDMpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ0hPUkRNT0RFIGNob3JkbW9kZV9icmFjZWRfbXVzaWNfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IExZUklDTU9ERSBseXJpY21vZGVfYnJhY2VkX211c2ljX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJOwoKLy8gZXh0cmEgc3ludGF4Cmx5cmljbW9kZV9icmFjZWRfbXVzaWNfbGlzdAoJOiAneycgbHlyaWNtb2RlX211c2ljX2xpc3QgJ30nCgkJeyQkID0gbXVzaWNCbG9jaygkMik7fQoJOwoKLy8gZXh0cmEgc3ludGF4Cmx5cmljbW9kZV9tdXNpY19saXN0Cgk6ICVlbXB0eQoJCXskJCA9IFtdO30KCXwgbHlyaWNtb2RlX211c2ljX2xpc3QgbHlyaWNtb2RlX211c2ljCgkJeyQkID0gJDEuY29uY2F0KFskMl0pO30KCTsKCi8vIGV4dHJhIHN5bnRheApseXJpY21vZGVfbXVzaWMKCTogbHlyaWNfZWxlbWVudF9tdXNpYwoJCXskJCA9ICQxO30KCS8vfCBtdXNpY19hc3NpZ24KCS8vCXskJCA9ICQxO30KCXwgbXVzaWNfcHJvcGVydHlfZGVmCgkJeyQkID0gJDE7fQoJfCBseXJpY21vZGVfbXVzaWNfaWRlbnRpZmllcgoJCXskJCA9ICQxO30KCXwgbHlyaWNtb2RlX3JlcGVhdGVkX211c2ljCgkJeyQkID0gJDE7fQoJfCBseXJpY21vZGVfYnJhY2VkX211c2ljX2xpc3QKCQl7JCQgPSAkMTt9Cgk7CgovLyBleHRyYSBzeW50YXgKbHlyaWNtb2RlX211c2ljX2lkZW50aWZpZXIKCTogemVyb19jb21tYW5kCgkJeyQkID0gJDE7fQoJfCBDTURfVElNRSBGUkFDVElPTgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9CQVIgc3RyaW5nCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX09NSVQgcHJvcGVydHlfcGF0aAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9PVFRBVkEgcHJvcGVydHlfcGF0aAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9CQVJOVU1CRVJDSEVDSyBzY21faWRlbnRpZmllcgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9CQVJOVU1CRVJDSEVDSyB1bnNpZ25lZF9udW1iZXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfTUFSSyBmdWxsX21hcmt1cAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9TS0lQIGR1cmF0aW9uCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX1VORk9MRFJFUEVBVFMgbHlyaWNtb2RlX211c2ljCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX09OQ0UgbXVzaWNfYXNzaWduCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX1BBUlRJQUwgZHVyYXRpb24KCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfVFVQTEVUU1BBTiBkdXJhdGlvbgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9UVVBMRVRTUEFOIERFRkFVTFQKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfVFVQTEVUIEZSQUNUSU9OIGx5cmljbW9kZV9tdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJfCBDTURfVFVQTEVUIEZSQUNUSU9OIGR1cmF0aW9uIGx5cmljbW9kZV9tdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMywgJDQpO30KCXwgQ01EX1RXRUFLIHByb3BlcnR5X3BhdGggc2NhbGFyCgkJeyQkID0gY29tbWFuZCgkMSwgJDIsICQzKTt9Cgl8IENNRF9USU1FUyBGUkFDVElPTiBseXJpY21vZGVfbXVzaWMKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCXwgQ01EX1NIQVBFIHNjbV9pZGVudGlmaWVyIHN5bWJvbAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJfCBDTURfQUNDSURFTlRBTFNUWUxFIGdyb2JfcHJvcF9zcGVjCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX05VTUVSSUNUSU1FU0lHTkFUVVJFIGx5cmljbW9kZV9tdXNpY19pZGVudGlmaWVyCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX0RFRkFVTFRUSU1FU0lHTkFUVVJFCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfQkVOREFGVEVSIHNjbV9pZGVudGlmaWVyCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX0NPTVBPVU5ETUVURVIgc2NtX2lkZW50aWZpZXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJOwoKLy8gZXh0cmEgc3ludGF4Cmx5cmljbW9kZV9yZXBlYXRlZF9tdXNpYwoJOiBSRVBFQVQgc2ltcGxlX3N0cmluZyB1bnNpZ25lZF9udW1iZXIgbHlyaWNtb2RlX2JyYWNlZF9tdXNpY19saXN0CgkJeyQkID0gY29tbWFuZCgkMSwgJDIsICQzLCAkNCk7fQoJfCBSRVBFQVQgc2ltcGxlX3N0cmluZyB1bnNpZ25lZF9udW1iZXIgbHlyaWNtb2RlX2JyYWNlZF9tdXNpY19saXN0IEFMVEVSTkFUSVZFIGx5cmljbW9kZV9icmFjZWRfbXVzaWNfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMywgJDQsIGNvbW1hbmQoJDUsICQ2KSk7fQoJOwoKLy8gZXh0cmEgc3ludGF4CmNob3JkbW9kZV9icmFjZWRfbXVzaWNfbGlzdAoJOiAneycgY2hvcmRtb2RlX211c2ljX2xpc3QgJ30nCgkJeyQkID0gbXVzaWNCbG9jaygkMik7fQoJOwoKLy8gZXh0cmEgc3ludGF4CmNob3JkbW9kZV9tdXNpY19saXN0Cgk6ICVlbXB0eQoJCXskJCA9IFtdO30KCXwgY2hvcmRtb2RlX211c2ljX2xpc3QgY2hvcmRtb2RlX211c2ljCgkJeyQkID0gJDEuY29uY2F0KFskMl0pO30KCTsKCi8vIGV4dHJhIHN5bnRheApjaG9yZG1vZGVfbXVzaWMKCTogbmV3X2Nob3JkIHBvc3RfZXZlbnRzCgkJeyQkID0gYnJpZWZDaG9yZCgkMSwge3Bvc3RfZXZlbnRzOiAkMiwgbG9jYXRpb25zOiBbQDEsIEAyXX0pO30KCXwgbXVzaWNfYXNzaWduCgkJeyQkID0gJDE7fQoJfCBjaG9yZG1vZGVfcmVwZWF0ZWRfbXVzaWMKCQl7JCQgPSAkMTt9Cgl8IGNob3JkbW9kZV9icmFjZWRfbXVzaWNfbGlzdAoJCXskJCA9ICQxO30KCTsKCi8vIGV4dHJhIHN5bnRheApjaG9yZG1vZGVfcmVwZWF0ZWRfbXVzaWMKCTogUkVQRUFUIHNpbXBsZV9zdHJpbmcgdW5zaWduZWRfbnVtYmVyIGNob3JkbW9kZV9icmFjZWRfbXVzaWNfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMywgJDQpO30KCXwgUkVQRUFUIHNpbXBsZV9zdHJpbmcgdW5zaWduZWRfbnVtYmVyIGNob3JkbW9kZV9icmFjZWRfbXVzaWNfbGlzdCBBTFRFUk5BVElWRSBjaG9yZG1vZGVfYnJhY2VkX211c2ljX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMsICQ0LCBjb21tYW5kKCQ1LCAkNikpO30KCTsKCm1vZGVfY2hhbmdpbmdfaGVhZF93aXRoX2NvbnRleHQKCTogRFJVTVMKCQl7JCQgPSAkMTt9Cgl8IEZJR1VSRVMKCQl7JCQgPSAkMTt9Cgl8IENIT1JEUwoJCXskJCA9ICQxO30KCXwgTFlSSUNTCgkJeyQkID0gJDE7fQoJOwoKbW9kZV9jaGFuZ2luZ19oZWFkCgk6IE5PVEVNT0RFCgkJeyQkID0gJDE7fQoJfCBEUlVNTU9ERQoJCXskJCA9ICQxO30KCXwgRklHVVJFTU9ERQoJCXskJCA9ICQxO30KCS8vfCBDSE9SRE1PREUKCS8vCXskJCA9ICQxO30KCS8vfCBMWVJJQ01PREUKCS8vCXskJCA9ICQxO30KCTsKCmdyb3VwZWRfbXVzaWNfbGlzdAoJOiBzZXF1ZW50aWFsX211c2ljCgkJeyQkID0gJDE7fQoJfCBzaW11bHRhbmVvdXNfbXVzaWMKCQl7JCQgPSAkMTt9Cgk7CgpzaW11bHRhbmVvdXNfbXVzaWMKCTogU0lNVUxUQU5FT1VTIGJyYWNlZF9tdXNpY19saXN0CgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCS8vfCBET1VCTEVfQU5HTEVfT1BFTiBtdXNpY19saXN0IERPVUJMRV9BTkdMRV9DTE9TRQoJLy8JeyQkID0gc2ltdWx0YW5lb3VzTGlzdCgkMik7fQoJfCBET1VCTEVfQU5HTEVfT1BFTiBtdWx0aXBsZV92b2ljZXNfbXVzaWNfbGlzdCBET1VCTEVfQU5HTEVfQ0xPU0UKCQl7JCQgPSBzaW11bHRhbmVvdXNMaXN0KCQyKTt9Cgk7CgovLyBleHRyYSBzeW50YXgKbXVsdGlwbGVfdm9pY2VzX211c2ljX2xpc3QKCTogbXVzaWNfbGlzdAoJCXskJCA9ICQxO30KCXwgbXVsdGlwbGVfdm9pY2VzX211c2ljX2xpc3QgRV9CQUNLU0xBU0ggbXVzaWNfbGlzdAoJCXskJCA9IFsuLi4kMSwgJDIsIC4uLiQzXTt9Cgk7CgpzZXF1ZW50aWFsX211c2ljCgk6IFNFUVVFTlRJQUwgYnJhY2VkX211c2ljX2xpc3QKCQl7JCQgPSBjb21tYW5kKCQyKTt9Cgl8IGJyYWNlZF9tdXNpY19saXN0CgkJeyQkID0gJDE7fQoJOwoKYnJhY2VkX211c2ljX2xpc3QKCTogJ3snIG11c2ljX2xpc3QgJ30nCgkJeyQkID0gbXVzaWNCbG9jaygkMik7fQoJOwoKbXVzaWNfbGlzdAoJOiAlZW1wdHkKCQl7JCQgPSBbXTt9Cgl8IG11c2ljX2xpc3QgbXVzaWNfZW1iZWRkZWQKCQl7JCQgPSAkMS5jb25jYXQoWyQyXSk7IGxpbmVSZWdpc3RlcihAMiwgJDIpO30KCTsKCm11c2ljX2VtYmVkZGVkCgk6IG11c2ljCgkJeyQkID0gJDE7fQoJfCBwb3N0X2V2ZW50CgkJeyQkID0gJDE7fQoJfCBtdXNpY19lbWJlZGRlZF9iYWNrdXAKCQl7JCQgPSAkMTt9CgkvL3wgbXVzaWNfZW1iZWRkZWRfYmFja3VwIEJBQ0tVUCBseXJpY19lbGVtZW50X211c2ljCgkvL3wgZHVyYXRpb24gcG9zdF9ldmVudHMgJXByZWMgJzonCgk7CgptdXNpY19lbWJlZGRlZF9iYWNrdXAKCTogZW1iZWRkZWRfc2NtCgkJeyQkID0gJDE7fQoJOwoKbXVzaWMKCTogbXVzaWNfYXNzaWduCgkJeyQkID0gJDE7fQoJfCBwaXRjaF9hc19tdXNpYwoJCXskJCA9ICQxO30KCS8vfCBseXJpY19lbGVtZW50X211c2ljCgk7CgovLyBleHRyYSBzeW50YXgKdmFyaWFibGVfY29tbWFuZAoJOiBDT01NQU5ECgkJeyQkID0gdmFyaWFibGUoJDEpO30KCS8vIHNvbWUgdGVzdCBjYXNlIHVzZSBcbG93ZXIgYXMgYSB2YXJpYWJsZSBuYW1lIT8KCXwgQ01EX0xPV0VSCgkJeyQkID0gdmFyaWFibGUoJDEpO30KCTsKCmx5cmljX2VsZW1lbnRfbXVzaWMKCTogbHlyaWNfZWxlbWVudCBvcHRpb25hbF9ub3RlbW9kZV9kdXJhdGlvbiBwb3N0X2V2ZW50cwoJCXskJCA9IGx5cmljKCQxLCB7ZHVyYXRpb246ICQyLCBwb3N0X2V2ZW50czogJDMsIGxvY2F0aW9uczogW0AxLCBAM119KTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IHZhcmlhYmxlX2NvbW1hbmQgb3B0aW9uYWxfbm90ZW1vZGVfZHVyYXRpb24gcG9zdF9ldmVudHMKCQl7JCQgPSBseXJpYygkMSwge2R1cmF0aW9uOiAkMiwgcG9zdF9ldmVudHM6ICQzLCBsb2NhdGlvbnM6IFtAMSwgQDNdfSk7fQoJOwoKbHlyaWNfZWxlbWVudAoJOiBmdWxsX21hcmt1cAoJCXskJCA9ICQxO30KCXwgU1lNQk9MCgkJeyQkID0gJDE7fQoJfCBsaXRlcmFsX3N0cmluZwoJCXskJCA9ICQxO30KCS8vfCBMWVJJQ19FTEVNRU5UCgkvLyBleHRyYSBmb3JtdWxhCgl8IGdlbmVyYWxfdGV4dAoJCXskJCA9ICQxO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgIiciCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBVTlNJR05FRAoJCXskJCA9ICQxO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgUElUQ0gKCQl7JCQgPSAkMTt9Cgl8IFVOS05PV05fQ0hBUgoJCXskJCA9ICQxO30KCTsKCnBpdGNoX2FzX211c2ljCgk6IHBpdGNoX29yX211c2ljCgkJeyQkID0gJDE7fQoJOwoKbXVzaWNfYXNzaWduCgk6IHNpbXBsZV9tdXNpYwoJCXskJCA9ICQxO30KCXwgY29tcG9zaXRlX211c2ljCgkJeyQkID0gJDE7fQoJOwoKc2ltcGxlX211c2ljCgk6IGV2ZW50X2Nob3JkCgkJeyQkID0gJDE7fQoJfCBtdXNpY19wcm9wZXJ0eV9kZWYKCQl7JCQgPSAkMTt9Cgl8IGNvbnRleHRfY2hhbmdlCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCB2YXJpYWJsZV9jb21tYW5kCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDT01NQU5EIGZ1bGxfbWFya3VwCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCTsKCmNvbnRleHRfY2hhbmdlCgk6IENIQU5HRSBzeW1ib2wgJz0nIHNpbXBsZV9zdHJpbmcKCQl7JCQgPSBjb21tYW5kKCQxLCBhc3NpZ25tZW50KCQyLCAkNCkpO30KCTsKCm11c2ljX3Byb3BlcnR5X2RlZgoJOiBPVkVSUklERSBncm9iX3Byb3BfcGF0aCAnPScgc2NhbGFyCgkJeyQkID0gY29tbWFuZCgkMSwgYXNzaWdubWVudCgkMiwgJDQpKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IE9WRVJSSURFUFJPUEVSVFkgZ3JvYl9wcm9wX3NwZWMgc2NtX2lkZW50aWZpZXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCS8vfCBSRVZFUlQgc2ltcGxlX3JldmVydF9jb250ZXh0IHJldmVydF9hcmcKCS8vCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJfCBSRVZFUlQgcmV2ZXJ0X2FyZwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IFNFVCBjb250ZXh0X3Byb3Bfc3BlYyAnPScgc2NhbGFyCgkJeyQkID0gY29tbWFuZCgkMSwgYXNzaWdubWVudCgkMiwgJDQpKTt9Cgl8IFVOU0VUIGNvbnRleHRfcHJvcF9zcGVjCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCTsKCnJldmVydF9hcmcKCS8vOiByZXZlcnRfYXJnX2JhY2t1cCBCQUNLVVAgc3ltYm9sX2xpc3RfYXJnCgk6IHJldmVydF9hcmdfYmFja3VwCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCByZXZlcnRfYXJnX2JhY2t1cCBzeW1ib2xfbGlzdF9hcmcKCQl7JCQgPSBbJDEsICQyXTt9Cgk7CgpyZXZlcnRfYXJnX2JhY2t1cAoJOiByZXZlcnRfYXJnX3BhcnQKCQl7JCQgPSAkMTt9Cgk7CgpyZXZlcnRfYXJnX3BhcnQKCTogc3ltYm9sX2xpc3RfcGFydAoJCXskJCA9ICQxO30KCXwgcmV2ZXJ0X2FyZ19iYWNrdXAgJy4nIHN5bWJvbF9saXN0X3BhcnQKCQl7JCQgPSAkMSArICIuIiArICQzO30KCS8vfCByZXZlcnRfYXJnX2JhY2t1cCBCQUNLVVAgU0NNX0FSRyAnLicgc3ltYm9sX2xpc3RfcGFydAoJLy98IHJldmVydF9hcmdfYmFja3VwIEJBQ0tVUCBTQ01fQVJHICcsJyBzeW1ib2xfbGlzdF9wYXJ0CgkvL3wgcmV2ZXJ0X2FyZ19iYWNrdXAgQkFDS1VQIFNDTV9BUkcgc3ltYm9sX2xpc3RfcGFydAoJOwoKc3ltYm9sX2xpc3RfYXJnCgk6IFNZTUJPTF9MSVNUCgkJeyQkID0gJDE7fQoJfCBTWU1CT0xfTElTVCAnLicgc3ltYm9sX2xpc3RfcmV2CgkJeyQkID0gJDEudG9TdHJpbmcoKSArICQyICsgJDMudG9TdHJpbmcoKTt9Cgl8IFNZTUJPTF9MSVNUICcsJyBzeW1ib2xfbGlzdF9yZXYKCQl7JCQgPSAkMS50b1N0cmluZygpICsgJDIgKyAkMy50b1N0cmluZygpO30KCTsKCi8vIGV4dHJhIHN5bnRheApTWU1CT0xfTElTVAoJOiBzeW1ib2xfbGlzdF9wYXJ0CgkJeyQkID0gJDE7fQoJOwoKc2ltcGxlX3JldmVydF9jb250ZXh0Cgk6IHN5bWJvbF9saXN0X3BhcnQKCQl7JCQgPSAkMTt9Cgk7Cgpncm9iX3Byb3BfcGF0aAoJOiBncm9iX3Byb3Bfc3BlYwoJCXskJCA9IFskMV07fQoJfCBncm9iX3Byb3Bfc3BlYyBwcm9wZXJ0eV9wYXRoCgkJeyQkID0gWyQxLCAkMl07fQoJOwoKZ3JvYl9wcm9wX3NwZWMKCTogc3ltYm9sX2xpc3RfcmV2CgkJeyQkID0gJDE7fQoJOwoKY29udGV4dF9wcm9wX3NwZWMKCTogc3ltYm9sX2xpc3RfcmV2CgkJeyQkID0gJDE7fQoJOwoKZXZlbnRfY2hvcmQKCTogbm90ZV9jaG9yZF9lbGVtZW50CgkJeyQkID0gJDE7fQoJfCB0ZW1wb19ldmVudAoJCXskJCA9ICQxO30KCXwgc2ltcGxlX2VsZW1lbnQgcG9zdF9ldmVudHMKCQl7JCQgPSByZXN0KHsuLi4kMSwgcG9zdF9ldmVudHM6ICQyLCBsb2NhdGlvbnM6IFtAMSwgQDJdfSk7fQoJLy98IENIT1JEX1JFUEVUSVRJT04gb3B0aW9uYWxfbm90ZW1vZGVfZHVyYXRpb24gcG9zdF9ldmVudHMKCS8vfCBNVUxUSV9NRUFTVVJFX1JFU1Qgb3B0aW9uYWxfbm90ZW1vZGVfZHVyYXRpb24gcG9zdF9ldmVudHMKCTsKCnRlbXBvX2V2ZW50Cgk6IFRFTVBPIHN0ZW5vX2R1cmF0aW9uICc9JyB0ZW1wb19yYW5nZQoJCS8veyQkID0ge3RlbXBvOiAkNCwgdW5pdDogJDJ9O30KCQl7JCQgPSB0ZW1wbygkNCwgJDIpO30KCXwgVEVNUE8gdGV4dCBzdGVub19kdXJhdGlvbiAnPScgdGVtcG9fcmFuZ2UKCQkvL3skJCA9IHt0ZW1wbzogJDUsIHVuaXQ6ICQzLCB0ZXh0OiAkMn07fQoJCXskJCA9IHRlbXBvKCQ1LCAkMywgJDIpO30KCXwgVEVNUE8gdGV4dAoJCXskJCA9IHRlbXBvKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAkMik7fQoJfCBURU1QTyBDTURfVEVNUE9MRUdFTkQKCQl7JCQgPSB0ZW1wbyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgJDIpO30KCTsKCnRlbXBvX3JhbmdlCgk6IHVuc2lnbmVkX251bWJlcgoJCXskJCA9ICQxO30KCXwgdW5zaWduZWRfbnVtYmVyICctJyB1bnNpZ25lZF9udW1iZXIKCQl7JCQgPSB7ZnJvbTogJDEsIHRvOiAkMn07fQoJOwoKc2ltcGxlX2VsZW1lbnQKCS8vOiBEUlVNX1BJVENIIG9wdGlvbmFsX25vdGVtb2RlX2R1cmF0aW9uCgk6IFJFU1ROQU1FIG9wdGlvbmFsX25vdGVtb2RlX2R1cmF0aW9uCgkJeyQkID0ge25hbWU6ICQxLCBkdXJhdGlvbjogJDJ9O30KCTsKCm9wdGlvbmFsX25vdGVtb2RlX2R1cmF0aW9uCgk6ICVlbXB0eQoJCXskJCA9IG51bGw7fQoJfCBkdXJhdGlvbgoJCXskJCA9ICQxO30KCTsKCmR1cmF0aW9uCgk6IHN0ZW5vX2R1cmF0aW9uIG11bHRpcGxpZXJzCgkJLy97JCQgPSAkMSArICQyO30KCQl7JCQgPSBkdXJhdGlvbih7Li4uJDEsIG11bHRpcGxpZXJzOiAkMn0pO30KCTsKCnN0ZW5vX2R1cmF0aW9uCgk6IHVuc2lnbmVkX251bWJlciBkb3RzCgkJLy97JCQgPSAkMSArICQyO30KCQl7JCQgPSBkdXJhdGlvbih7bnVtYmVyOiAkMSwgZG90czogJDIubGVuZ3RofSk7fQoJfCBEVVJBVElPTl9JREVOVElGSUVSIGRvdHMKCQl7JCQgPSBkdXJhdGlvbih7bnVtYmVyOiAkMSwgZG90czogJDIubGVuZ3RofSk7fQoJOwoKRFVSQVRJT05fSURFTlRJRklFUgoJOiBDTURfQlJFVkUKCQl7JCQgPSAkMTt9Cgl8IENNRF9MT05HQQoJCXskJCA9ICQxO30KCTsKCmRvdHMKCTogJWVtcHR5CgkJeyQkID0gIiI7fQoJfCBkb3RzIGRvdAoJCXskJCA9ICQxICsgJDI7fQoJOwoKbXVsdGlwbGllcnMKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBtdWx0aXBsaWVycyAnKicgdW5zaWduZWRfbnVtYmVyCgkJeyQkID0gWy4uLiQxLCAkM107fQoJfCBtdWx0aXBsaWVycyAnKicgRlJBQ1RJT04KCQl7JCQgPSBbLi4uJDEsICQzXTt9CgkvL3wgbXVsdGlwbGllcnMgJyonIG11bHRpcGxpZXJfc2NtCgk7CgpyZXBlYXRlZF9tdXNpYwoJOiBSRVBFQVQgc2ltcGxlX3N0cmluZyB1bnNpZ25lZF9udW1iZXIgbXVzaWMKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMsICQ0KTt9Cgl8IFJFUEVBVCBzaW1wbGVfc3RyaW5nIHVuc2lnbmVkX251bWJlciBtdXNpYyBBTFRFUk5BVElWRSBicmFjZWRfbXVzaWNfbGlzdAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMywgJDQsIGNvbW1hbmQoJDUsICQ2KSk7fQoJOwoKdW5zaWduZWRfbnVtYmVyCgk6IFVOU0lHTkVECgkJeyQkID0gJDE7fQoJLy98IFBPU1RfVU5TSUdORUQKCS8vCXskJCA9ICQxO30KCS8vfCBOVU1CRVJfSURFTlRJRklFUgoJLy98IGVtYmVkZGVkX3NjbQoJOwoKc2ltcGxlX3N0cmluZwoJOiBsaXRlcmFsX3N0cmluZwoJCXskJCA9ICQxO30KCXwgU1lNQk9MCgkJeyQkID0gJDE7fQoJOwoKLy8gYWxsIGtpbmRzIGNvbW1hbmRzIGluIG11c2ljIGxpc3QsIHNlZW1zIG5hbWVkIGFzIE1VU0lDX0lERU5USUZJRVIgaW4gbGlseXBvbmQncyBwYXJzZXIueXkKbXVzaWNfaWRlbnRpZmllcgoJOiB6ZXJvX2NvbW1hbmQKCQl7JCQgPSAkMTt9Cgl8IENNRF9DTEVGIHN0cmluZwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9USU1FIEZSQUNUSU9OCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX0JBUiBzdHJpbmcKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfT01JVCBwcm9wZXJ0eV9wYXRoCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX09UVEFWQSBwcm9wZXJ0eV9wYXRoCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX0JBUk5VTUJFUkNIRUNLIHNjbV9pZGVudGlmaWVyCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX0JBUk5VTUJFUkNIRUNLIHVuc2lnbmVkX251bWJlcgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9NQVJLIGZ1bGxfbWFya3VwCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCS8vIFRPRE86Cgl8IENNRF9JTkNMVURFIHN0cmluZwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9TS0lQIGR1cmF0aW9uCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCS8vfCBDTURfUEFSRU5USEVTSVpFIHByb3BlcnR5X3BhdGgKCS8vCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9VTkZPTERSRVBFQVRTIG11c2ljCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX0dSQUNFIG11c2ljCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX0FDQ0lBQ0NBVFVSQSBtdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9BUFBPR0dJQVRVUkEgbXVzaWMKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfU0xBU0hFREdSQUNFIG11c2ljCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX0xBTkdVQUdFIHN0cmluZwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9PTkNFIG11c2ljX2Fzc2lnbgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9QQVJUSUFMIGR1cmF0aW9uCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX1RVUExFVFNQQU4gZHVyYXRpb24KCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfVFVQTEVUU1BBTiBERUZBVUxUCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX1RVUExFVCBGUkFDVElPTiBtdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJfCBDTURfVFVQTEVUIEZSQUNUSU9OIGR1cmF0aW9uIG11c2ljCgkJeyQkID0gY29tbWFuZCgkMSwgJDIsICQzLCAkNCk7fQoJfCBDTURfVFdFQUsgcHJvcGVydHlfcGF0aCBzY2FsYXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCXwgQ01EX0tFWSBQSVRDSCBDT01NQU5ECgkJeyQkID0gY29tbWFuZCgkMSwgJDIsICQzKTt9Cgl8IENNRF9USU1FUyBGUkFDVElPTiBtdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJfCBDTURfQUZURVJHUkFDRSBtdXNpYyBtdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJfCBDTURfUEFSQUxMRUxNVVNJQyBzY21faWRlbnRpZmllciBjb21wb3NpdGVfbXVzaWMKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCXwgQ01EX1NIQVBFIHNjbV9pZGVudGlmaWVyIHN5bWJvbAoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJfCBDTURfQUNDSURFTlRBTFNUWUxFIGdyb2JfcHJvcF9zcGVjCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgQ01EX05VTUVSSUNUSU1FU0lHTkFUVVJFIG11c2ljX2lkZW50aWZpZXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfREVGQVVMVFRJTUVTSUdOQVRVUkUKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9CRU5EQUZURVIgc2NtX2lkZW50aWZpZXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfQ09NUE9VTkRNRVRFUiBzY21faWRlbnRpZmllcgoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9UUkFOU1BPU0lUSU9OIHBpdGNoCgkJeyQkID0gY29tbWFuZCgkMSwgY2hvcmRFbGVtKCQyLCB7bG9jYXRpb25zOiBbQDIsIEAyXX0pKTt9Cgl8IENNRF9BQlNPTFVURSBtdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9ISURFIHN5bWJvbAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9DUk9TU1NUQUZGIGNvbXBvc2l0ZV9tdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9LRUVQV0lUSFRBRyBzeW1ib2wKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfVEFHIHN5bWJvbCBjb21wb3NpdGVfbXVzaWMKCQl7JCQgPSBjb21tYW5kKCQxLCAkMiwgJDMpO30KCXwgQ01EX1NDQUxFRFVSQVRJT05TIEZSQUNUSU9OIGNvbXBvc2l0ZV9tdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyLCAkMyk7fQoJfCBDTURfVFVQTEVUTkVVVFJBTCBtdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IENNRF9BUlRJQ1VMQVRFIG11c2ljCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCXwgbWFya3VwX2ZvbnRfc2l6ZSBtdXNpYwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgl8IHBpdGNoX21vZGVfbXVzaWMKCQl7JCQgPSAkMTt9Cgl8ICIoIgoJCXskJCA9ICQxO30KCXwgIikiCgkJeyQkID0gJDE7fQoJfCAiWyIKCQl7JCQgPSAkMTt9Cgl8ICJdIgoJCXskJCA9ICQxO30KCXwgRElWSURFCgkJeyQkID0ge3Byb3RvOiAiRGl2aWRlIn07fQoJfCBleHByZXNzaXZlX21hcmsKCQl7JCQgPSAkMTt9Cgk7CgovLyBleHRyYSBzeW50YXgKemVyb19jb21tYW5kCgk6IENNRF9GRVJNQVRBCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU1RFTVVQCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU1RFTURPV04KCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9TVEVNTkVVVFJBTAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX01FUkdFRElGRkVSRU5UTFlET1RURURPTgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX01FUkdFRElGRkVSRU5UTFlIRUFERURPTgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1ZPSUNFX05VTUJFUgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1NDT1JFCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfVk9JQ0UKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9TVEFGRgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1BJQU5PU1RBRkYKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9BUlBFR0dJTwoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX0FSUEVHR0lPQVJST1dET1dOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfQVJQRUdHSU9BUlJPV1VQCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfQVJQRUdHSU9OT1JNQUwKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9BUlBFR0dJT0JSQUNLRVQKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9BUlBFR0dJT1BBUkVOVEhFU0lTCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfQVJQRUdHSU9QQVJFTlRIRVNJU0RBU0hFRAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX0dMSVNTQU5ETwoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX01PUkRFTlQKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9QT1dFUkNIT1JEUwoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1BSQUxMCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJLy98IENNRF9TVVNUQUlOT0ZGCgkvLwl7JCQgPSBjb21tYW5kKCQxKTt9CgkvL3wgQ01EX1NVU1RBSU5PTgoJLy8JeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfVFJJTEwKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9UVVJOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfUE9JTlRBTkRDTElDS09GRgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1VQQk9XCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfRE9XTkJPVwoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX0JSRUFUSEUKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9TVEFSVFRFWFRTUEFOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU1RPUFRFWFRTUEFOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfRkxBR0VPTEVUCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU0xVUkRBU0hFRAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1NMVVJTT0xJRAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX0JSRUFLCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfUEFHRUJSRUFLCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU1RBUlRUUklMTFNQQU4KCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9TVE9QVFJJTExTUEFOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfQ0FERU5aQU9OCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfQ0FERU5aQU9GRgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX0NSRVNDCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfQ1JFU0NURVhUQ1JFU0MKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9DUkVTQ0hBSVJQSU4KCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9ESU0KCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9ESU1URVhURElNCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfRFlOQU1JQ1VQCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfSElERU5PVEVTCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfVU5ISURFTk9URVMKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9ORVdTUEFDSU5HU0VDVElPTgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX05PQkVBTQoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX09ORVZPSUNFCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfUEhSQVNJTkdTTFVSRE9XTgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1BIUkFTSU5HU0xVUk5FVVRSQUwKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9QSFJBU0lOR1NMVVJVUAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1NMVVJET1dOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU0xVUk5FVVRSQUwKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9TTFVSVVAKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9USUVET1dOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfVElFTkVVVFJBTAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1RJRVVQCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfUEFSRU5USEVTSVpFCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfVFVQTEVUVVAKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9UVVBMRVRET1dOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU0hJRlRPTgoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1JFUEVBVFRJRQoJCXskJCA9IGNvbW1hbmQoJDEpO30KCTsKCi8vIGV4dHJhIHN5bnRheApleHByZXNzaXZlX21hcmsKCTogQ01EX0NSRVNDRU5ET19CRUdJTgoJCXskJCA9ICQxO30KCXwgQ01EX0RFQ1JFU0NFTkRPX0JFR0lOCgkJeyQkID0gJDE7fQoJfCBDTURfRFlOQU1JQ1NfRU5ECgkJeyQkID0gJDE7fQoJfCBDTURfRkVSTUFUQQoJCXskJCA9ICQxO30KCXwgQ01EX1RXRUFLIHByb3BlcnR5X3BhdGggc2NhbGFyCgkJeyQkID0gY29tbWFuZCgkMSwgJDIsICQzKTt9Cgl8IENNRF9CRU5EQUZURVIgc2NtX2lkZW50aWZpZXIKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBDTURfRFlOQU1JQ19NQVJLSU5HUwoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX01BUkNBVE8KCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9TVE9QUEVECgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfVEVOVVRPCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU1RBQ0NBVElTU0lNTwoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX0FDQ0VOVAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1NUQUNDQVRPCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfUE9SVEFUTwoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX01PUkRFTlQKCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9QUkFMTAoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1RVUk4KCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9BUlBFR0dJTwoJCXskJCA9IGNvbW1hbmQoJDEpO30KCXwgQ01EX1RSSUxMCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCBDTURfU1RBUlRUUklMTFNQQU4KCQl7JCQgPSBjb21tYW5kKCQxKTt9Cgl8IENNRF9TVE9QVFJJTExTUEFOCgkJeyQkID0gY29tbWFuZCgkMSk7fQoJfCAifiIKCQl7JCQgPSAkMTt9Cgl8ICIoIgoJCXskJCA9ICQxO30KCXwgIikiCgkJeyQkID0gJDE7fQoJfCAiXCgiCgkJeyQkID0gJDE7fQoJfCAiXCkiCgkJeyQkID0gJDE7fQoJOwoKLy8gZXh0cmEgc3ludGF4CnBpdGNoX21vZGVfbXVzaWMKCTogQ01EX1JFTEFUSVZFIHBpdGNoIG11c2ljCgkJeyQkID0gY29tbWFuZCgkMSwgY2hvcmRFbGVtKCQyLCB7bG9jYXRpb25zOiBbQDIsIEAyXX0pLCAkMyk7fQoJfCBDTURfUkVMQVRJVkUgbXVzaWMKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJOwoKcGl0Y2hfb3JfbXVzaWMKCS8vOiBwaXRjaCBleGNsYW1hdGlvbnMgcXVlc3Rpb25zIG9jdGF2ZV9jaGVjayBtYXliZV9ub3RlbW9kZV9kdXJhdGlvbiBlcnJvbmVvdXNfcXVvdGVzIG9wdGlvbmFsX3Jlc3QgcG9zdF9ldmVudHMKCTogcGl0Y2ggZXhjbGFtYXRpb25zIHF1ZXN0aW9ucyBvcHRpb25hbF9ub3RlbW9kZV9kdXJhdGlvbiBvcHRpb25hbF9yZXN0IHBvc3RfZXZlbnRzCgkJeyQkID0gY2hvcmQoW2Nob3JkRWxlbSgkMSwge2xvY2F0aW9uczogW0AxLCBAMV19KV0sICQ0LCB7ZXhjbGFtYXRpb25zOiAkMiwgcXVlc3Rpb25zOiAkMywgcmVzdDogJDUsIHBvc3RfZXZlbnRzOiAkNiwgbG9jYXRpb25zOiBbQDEsIEA2XX0pO30KCS8vfCBuZXdfY2hvcmQgcG9zdF9ldmVudHMKCS8vCXskJCA9IGJyaWVmQ2hvcmQoJDEsIHtwb3N0X2V2ZW50czogJDJ9KTt9Cgk7CgpuZXdfY2hvcmQKCS8vOiBzdGVub190b25pY19waXRjaCBtYXliZV9ub3RlbW9kZV9kdXJhdGlvbgoJOiBwaXRjaCBvcHRpb25hbF9ub3RlbW9kZV9kdXJhdGlvbgoJCXskJCA9IHtwaXRjaDogJDEsIGR1cmF0aW9uOiAkMn07fQoJLy98IHN0ZW5vX3RvbmljX3BpdGNoIG9wdGlvbmFsX25vdGVtb2RlX2R1cmF0aW9uIGNob3JkX3NlcGFyYXRvciBjaG9yZF9pdGVtcwoJfCBwaXRjaCBvcHRpb25hbF9ub3RlbW9kZV9kdXJhdGlvbiBjaG9yZF9zZXBhcmF0b3IgY2hvcmRfaXRlbXMKCQl7JCQgPSB7cGl0Y2g6ICQxLCBkdXJhdGlvbjogJDIsIHNlcGFyYXRvcjogJDMsIGl0ZW1zOiAkNH07fQoJOwoKY2hvcmRfaXRlbXMKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBjaG9yZF9pdGVtcyBjaG9yZF9pdGVtCgkJeyQkID0gJDEuY29uY2F0KCQyKTt9Cgk7CgpjaG9yZF9pdGVtCgk6IGNob3JkX3NlcGFyYXRvcgoJCXskJCA9ICQxO30KCXwgc3RlcF9udW1iZXJzCgkJeyQkID0gJDE7fQoJfCBDSE9SRF9NT0RJRklFUgoJCXskJCA9ICQxO30KCTsKCi8vIG0sIG03LCBkaW0sIGRpbTcsIGF1ZywgbWFqLCBtYWo3CkNIT1JEX01PRElGSUVSCgk6IENIT1JEX01PRElGSUVSX1dPUkQKCQl7JCQgPSAkMTt9CgkvL3wgQ0hPUkRfTU9ESUZJRVJfV09SRCBVTlNJR05FRAoJLy8JeyQkID0gJDEgKyAkMjt9Cgk7CgpzdGVwX251bWJlcnMKCTogc3RlcF9udW1iZXIKCQl7JCQgPSAkMTt9Cgl8IHN0ZXBfbnVtYmVycyBkb3Qgc3RlcF9udW1iZXIKCQl7JCQgPSAkMSArICQyICsgJDM7fQoJOwoKc3RlcF9udW1iZXIKCTogVU5TSUdORUQKCQl7JCQgPSAkMTt9Cgl8IFVOU0lHTkVEICcrJwoJCXskJCA9ICQxICsgJDI7fQoJfCBVTlNJR05FRCBDSE9SRF9NSU5VUwoJCXskJCA9ICQxICsgJDI7fQoJOwoKbWF5YmVfbm90ZW1vZGVfZHVyYXRpb24KCTogJWVtcHR5CgkJeyQkID0gbnVsbDt9Cgl8IGR1cmF0aW9uCgkJeyQkID0gJDE7fQoJOwoKc3Rlbm9fdG9uaWNfcGl0Y2gKCTogVE9OSUNOQU1FX1BJVENIIHF1b3RlcwoJCXskJCA9ICQxICsgJDI7fQoJOwoKQ0hPUkRfQkFTUwoJOiAiLyIgIisiCgkJeyQkID0gJDEgKyAkMjt9Cgk7CgpDSE9SRF9DQVJFVAoJOiAiXiIKCQl7JCQgPSAkMTt9Cgk7CgpDSE9SRF9DT0xPTgoJOiAiOiIKCQl7JCQgPSAkMTt9Cgk7CgpDSE9SRF9NSU5VUwoJOiAiLSIKCQl7JCQgPSAkMTt9Cgk7CgpDSE9SRF9TTEFTSAoJOiAiLyIKCQl7JCQgPSAkMTt9Cgk7CgpjaG9yZF9zZXBhcmF0b3IKCTogQ0hPUkRfQ09MT04KCQl7JCQgPSAkMTt9Cgl8IENIT1JEX0NBUkVUCgkJeyQkID0gJDE7fQoJLy98IENIT1JEX1NMQVNIIHN0ZW5vX3RvbmljX3BpdGNoCgl8IENIT1JEX1NMQVNIIHBpdGNoCgkJeyQkID0gJDEgKyAkMjt9CgkvL3wgQ0hPUkRfQkFTUyBzdGVub190b25pY19waXRjaAoJfCBDSE9SRF9CQVNTIHBpdGNoCgkJeyQkID0gJDEgKyAkMjt9Cgk7CgpleGNsYW1hdGlvbnMKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBleGNsYW1hdGlvbnMgJyEnCgkJeyQkID0gJDEuY29uY2F0KCQyKTt9Cgk7CgpxdWVzdGlvbnMKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBxdWVzdGlvbnMgJz8nCgkJeyQkID0gJDEuY29uY2F0KCQyKTt9Cgk7Cgpwb3N0X2V2ZW50cwoJOiAlZW1wdHkKCQl7JCQgPSBbXTt9Cgl8IHBvc3RfZXZlbnRzIHBvc3RfZXZlbnQKCQl7JCQgPSAkMS5jb25jYXQoJDIpO30KCTsKCm5vdGVfY2hvcmRfZWxlbWVudAoJOiBjaG9yZF9ib2R5IG9wdGlvbmFsX25vdGVtb2RlX2R1cmF0aW9uIHBvc3RfZXZlbnRzCgkJeyQkID0gY2hvcmQoJDEsICQyLCB7d2l0aEFuZ2xlOiB0cnVlLCBwb3N0X2V2ZW50czogJDMsIGxvY2F0aW9uczogW0AxLCBAMl19KTt9Cgk7CgpjaG9yZF9ib2R5Cgk6ICI8IiBjaG9yZF9ib2R5X2VsZW1lbnRzICI+IgoJCXskJCA9ICQyO30KCS8vfCBGSUdVUkVfT1BFTiBmaWd1cmVfbGlzdCBGSUdVUkVfQ0xPU0UKCTsKCmNob3JkX2JvZHlfZWxlbWVudHMKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBjaG9yZF9ib2R5X2VsZW1lbnRzIGNob3JkX2JvZHlfZWxlbWVudAoJCXskJCA9ICQxLmNvbmNhdChbJDJdKTt9Cgk7CgpjaG9yZF9ib2R5X2VsZW1lbnQKCS8vOiBwaXRjaF9vcl90b25pY19waXRjaCBleGNsYW1hdGlvbnMgcXVlc3Rpb25zIG9jdGF2ZV9jaGVjayBwb3N0X2V2ZW50cyAlcHJlYyAnOicKCTogcGl0Y2hfb3JfdG9uaWNfcGl0Y2ggZXhjbGFtYXRpb25zIHF1ZXN0aW9ucyBwb3N0X2V2ZW50cwoJCS8veyQkID0gJDEgKyAkMiArICQzICsgJDQ7fQoJCXskJCA9IGNob3JkRWxlbSgkMSwge2xvY2F0aW9uczogW0AxLCBANF0sIGV4Y2xhbWF0aW9uczogJDIsIHF1ZXN0aW9uczogJDMsIHBvc3RfZXZlbnRzOiAkNH0pO30KCS8vfCBEUlVNX1BJVENIIHBvc3RfZXZlbnRzICVwcmVjICc6JyAKCXwgbXVzaWNfZnVuY3Rpb25fY2hvcmRfYm9keQoJCXskJCA9ICQxO30KCS8vfCBwb3N0X2V2ZW50Cgk7CgptdXNpY19mdW5jdGlvbl9jaG9yZF9ib2R5CgkvLzogbXVzaWNfZnVuY3Rpb25fY2FsbAoJLy98IE1VU0lDX0lERU5USUZJRVIKCS8vfCBlbWJlZGRlZF9zY20KCTogbXVzaWNfaWRlbnRpZmllcgoJCXskJCA9ICQxO30KCTsKCnBpdGNoX29yX3RvbmljX3BpdGNoCgk6IHBpdGNoCgkJeyQkID0gJDE7fQoJLy98IHN0ZW5vX3RvbmljX3BpdGNoCgk7CgovKi8vIGV4dHJhIHN5bnRheApwaXRjaGVzCgk6CXBpdGNoZXMgcGl0Y2gKCQl7JCQgPSAkMS5jb25jYXQoWyQyXSk7fQoJfAlwaXRjaAoJCXskJCA9IFskMV07fQoJOyovCgpwaXRjaAoJOiBQSVRDSCBxdW90ZXMKCQl7JCQgPSAkMSArICQyO30KCS8vfCBzdGVub19waXRjaAoJLy8gZXh0cmEgZm9ybXVsYQoJLy98IFBMQUNFSE9MREVSX1BJVENICgkvLwl7JCQgPSAkMTt9Cgk7CgpxdW90ZXMKCTogJWVtcHR5CgkJeyQkID0gIiI7fQoJfCBzdWJfcXVvdGVzCgkJeyQkID0gJDE7fQoJfCBzdXBfcXVvdGVzCgkJeyQkID0gJDE7fQoJOwoKc3VwX3F1b3RlcwoJOiAiJyIKCQl7JCQgPSAkMTt9Cgl8IHN1cF9xdW90ZXMgIiciCgkJeyQkID0gJDEgKyAkMjt9Cgk7CgpzdWJfcXVvdGVzCgk6ICIsIgoJCXskJCA9ICQxO30KCXwgc3ViX3F1b3RlcyAiLCIKCQl7JCQgPSAkMSArICQyO30KCTsKCnBvc3RfZXZlbnQKCTogcG9zdF9ldmVudF9ub2ZpbmdlcgoJCXskJCA9ICQxO30KCXwgJy0nIGZpbmdlcmluZwoJCS8veyQkID0ge3R5cGU6ICJmaW5nZXJpbmciLCBkaXJlY3Rpb246ICJtaWRkbGUiLCB2YWx1ZTogJDJ9O30KCQl7JCQgPSBwb3N0RXZlbnQoIm1pZGRsZSIsIGZpbmdlcmluZygkMikpO30KCTsKCkhZUEhFTgoJOiBQUkVfSFlQSEVOICItIgoJCXskJCA9ICItLSI7fQoJfCBQUkVfSFlQSEVOIFBSRV9IWVBIRU4KCQl7JCQgPSAiLS0iO30KCTsKCkVYVEVOREVSCgk6IFBSRV9FWFRFTkRFUiAiXyIKCQl7JCQgPSAiX18iO30KCXwgUFJFX0VYVEVOREVSIFBSRV9FWFRFTkRFUgoJCXskJCA9ICJfXyI7fQoJOwoKcG9zdF9ldmVudF9ub2ZpbmdlcgoJOiAnXicgZmluZ2VyaW5nCgkJLy97JCQgPSB7ZGlyZWN0aW9uOiAidXAiLCBmaW5nZXJpbmc6ICQyfTt9CgkJeyQkID0gcG9zdEV2ZW50KCJ1cCIsIGZpbmdlcmluZygkMikpO30KCXwgJ18nIGZpbmdlcmluZwoJCS8veyQkID0ge2RpcmVjdGlvbjogImRvd24iLCBmaW5nZXJpbmc6ICQyfTt9CgkJeyQkID0gcG9zdEV2ZW50KCJkb3duIiwgZmluZ2VyaW5nKCQyKSk7fQoJfCBkaXJlY3Rpb25fbGVzc19ldmVudAoJCXskJCA9ICQxO30KCXwgc2NyaXB0X2RpciBtdXNpY19mdW5jdGlvbl9jYWxsCgkJeyQkID0gcG9zdEV2ZW50KCQxLCAkMik7fQoJfCBIWVBIRU4KCQl7JCQgPSAkMTt9Cgl8IEVYVEVOREVSCgkJeyQkID0gJDE7fQoJfCBzY3JpcHRfZGlyIGRpcmVjdGlvbl9yZXFkX2V2ZW50CgkJeyQkID0gcG9zdEV2ZW50KCQxLCAkMik7fQoJfCBzY3JpcHRfZGlyIGRpcmVjdGlvbl9sZXNzX2V2ZW50CgkJeyQkID0gcG9zdEV2ZW50KCQxLCAkMik7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBzY3JpcHRfZGlyIHplcm9fY29tbWFuZAoJCXskJCA9IHBvc3RFdmVudCgkMSwgJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgc2NyaXB0X2RpciBleHByZXNzaXZlX21hcmsKCQl7JCQgPSBwb3N0RXZlbnQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8IGV4cHJlc3NpdmVfbWFyawoJCXskJCA9IHBvc3RFdmVudChudWxsLCAkMSk7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfU1VTVEFJTk9GRgoJCXskJCA9IHBvc3RFdmVudChudWxsLCAkMSk7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBDTURfU1VTVEFJTk9OCgkJeyQkID0gcG9zdEV2ZW50KG51bGwsICQxKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8ICJbIgoJCXskJCA9ICQxO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgIl0iCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBzY3JpcHRfZGlyICJbIgoJCXskJCA9IHBvc3RFdmVudCgkMSwgJDIpO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgc2NyaXB0X2RpciAiXSIKCQl7JCQgPSBwb3N0RXZlbnQoJDEsICQyKTt9CgkvLyBleHRyYSBmb3JtdWxhCgl8ICIoIgoJCXskJCA9ICQxO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgIikiCgkJeyQkID0gJDE7fQoJLy8gZXh0cmEgZm9ybXVsYQoJfCBzY3JpcHRfZGlyIHZhcmlhYmxlX2NvbW1hbmQKCQl7JCQgPSBwb3N0RXZlbnQoJDEsICQyKTt9Cgk7CgpkaXJlY3Rpb25fcmVxZF9ldmVudAoJOiBnZW5fdGV4dF9kZWYKCQl7JCQgPSAkMTt9Cgl8IHNjcmlwdF9hYmJyZXZpYXRpb24KCQl7JCQgPSAkMTt9Cgk7CgpnZW5fdGV4dF9kZWYKCTogZnVsbF9tYXJrdXAKCQl7JCQgPSAkMTt9Cgl8IGxpdGVyYWxfc3RyaW5nCgkJeyQkID0gJDE7fQoJfCBTWU1CT0wKCQl7JCQgPSAkMTt9Cgl8IGVtYmVkZGVkX3NjbQoJCXskJCA9ICQxO30KCTsKCnNjcmlwdF9hYmJyZXZpYXRpb24KCTogJ14nCgkJeyQkID0gJDE7fQoJfCAnKycKCQl7JCQgPSAkMTt9Cgl8ICctJyAKCQl7JCQgPSAkMTt9CiAJfCAnIScKCQl7JCQgPSAkMTt9Cgl8ICc+JwoJCXskJCA9ICQxO30KCXwgZG90CgkJeyQkID0gJDE7fQoJfCAnXycKCQl7JCQgPSAkMTt9Cgk7CgpkaXJlY3Rpb25fbGVzc19ldmVudAoJOiBzdHJpbmdfbnVtYmVyX2V2ZW50CgkJeyQkID0gJDE7fQoJLy98IEVWRU5UX0lERU5USUZJRVIKCXwgdHJlbW9sb190eXBlCgkJeyQkID0gJDE7fQoJfCBldmVudF9mdW5jdGlvbl9ldmVudAoJCXskJCA9ICQxO30KCTsKCnN0cmluZ19udW1iZXJfZXZlbnQKCTogRV9VTlNJR05FRAoJCXskJCA9ICQxO30KCTsKCnRyZW1vbG9fdHlwZQoJOiAnOicKCQl7JCQgPSAiOiI7fQoJfCAnOicgVU5TSUdORUQKCQl7JCQgPSAiOiIgKyAkMjt9Cgk7CgpldmVudF9mdW5jdGlvbl9ldmVudAoJOiBFVkVOVF9GVU5DVElPTiBmdW5jdGlvbl9hcmdsaXN0Cgk7CgptdXNpY19mdW5jdGlvbl9jYWxsCgk6IE1VU0lDX0ZVTkNUSU9OIGZ1bmN0aW9uX2FyZ2xpc3QKCTsKCnNjcmlwdF9kaXIKCTogIl8iCgkJeyQkID0gImRvd24iO30KCXwgIl4iCgkJeyQkID0gInVwIjt9Cgl8ICItIgoJCXskJCA9ICJtaWRkbGUiO30KCTsKCmZpbmdlcmluZwoJOiBVTlNJR05FRAoJCXskJCA9ICQxO30KCTsKCmZ1bGxfbWFya3VwCgk6IG1hcmt1cF9tb2RlIG1hcmt1cF90b3AKCQl7JCQgPSBjb21tYW5kKCQxLCAuLi4kMik7fQoJfCBtYXJrdXBfbW9kZV93b3JkCgkJeyQkID0gJDE7fQoJOwoKbWFya3VwX21vZGUKCTogTUFSS1VQCgkJeyQkID0gJDE7fQoJOwoKbWFya3VwX3RvcAoJOiBtYXJrdXBfbGlzdAoJCXskJCA9ICQxO30KCXwgbWFya3VwX2hlYWRfMV9saXN0IHNpbXBsZV9tYXJrdXAKCQkvL3skJCA9IHtoZWFkOiAkMSwgYm9keTogJDJ9O30KCQl7JCQgPSAkMS5jb25jYXQoWyQyXSk7fQoJfCBzaW1wbGVfbWFya3VwX25vd29yZAoJCXskJCA9IFskMV07fQoJOwoKbWFya3VwX21vZGVfd29yZAoJOiBtYXJrdXBfbW9kZSBtYXJrdXBfd29yZAoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgk7CgpvdXRwdXRfZGVmCgk6IG91dHB1dF9kZWZfYm9keSAnfScKCQl7JCQgPSAkMTt9Cgk7CgpvdXRwdXRfZGVmX2JvZHkKCTogb3V0cHV0X2RlZl9oZWFkX3dpdGhfbW9kZV9zd2l0Y2ggJ3snCgkJeyQkID0gYmxvY2soInNjb3JlIiwgJDEpO30KCXwgb3V0cHV0X2RlZl9ib2R5IGFzc2lnbm1lbnQKCQl7CgkJCSQxLmJvZHkucHVzaCgkMik7CgkJCSQkID0gJDE7CgkJfQoJfCBvdXRwdXRfZGVmX2JvZHkgbXVzaWNfb3JfY29udGV4dF9kZWYKCQl7CgkJCSQxLmJvZHkucHVzaCgkMik7CgkJCSQkID0gJDE7CgkJfQoJfCBvdXRwdXRfZGVmX2JvZHkgc2NtX2lkZW50aWZpZXIKCQl7CgkJCSQxLmJvZHkucHVzaCgkMik7CgkJCSQkID0gJDE7CgkJfQoJLy98IG91dHB1dF9kZWZfYm9keSBlbWJlZGRlZF9zY21fYWN0aXZlCgkvL3wgb3V0cHV0X2RlZl9ib2R5IFNDTV9UT0tFTgoJLy98IG91dHB1dF9kZWZfYm9keSBlcnJvcgoJOwoKb3V0cHV0X2RlZl9oZWFkX3dpdGhfbW9kZV9zd2l0Y2gKCTogb3V0cHV0X2RlZl9oZWFkCgkJeyQkID0gJDE7fQoJOwoKb3V0cHV0X2RlZl9oZWFkCgk6IFBBUEVSCgkJeyQkID0gJDE7fQoJfCBNSURJCgkJeyQkID0gJDE7fQoJfCBMQVlPVVQKCQl7JCQgPSAkMTt9Cgk7CgptdXNpY19vcl9jb250ZXh0X2RlZgoJOiBtdXNpY19hc3NpZ24KCQl7JCQgPSAkMTt9Cgl8IGNvbnRleHRfZGVmX3NwZWNfYmxvY2sKCQl7JCQgPSAkMTt9Cgk7Cgpjb250ZXh0X2RlZl9zcGVjX2Jsb2NrCgk6IENPTlRFWFQgJ3snIGNvbnRleHRfZGVmX3NwZWNfYm9keSAnfScKCQl7JCQgPSBibG9jaygiY29udGV4dCIsICQxLCAkMyk7fQoJOwoKY29udGV4dF9kZWZfc3BlY19ib2R5Cgk6ICVlbXB0eQoJCXskJCA9IFtdO30KCXwgY29udGV4dF9kZWZfc3BlY19ib2R5IGNvbnRleHRfbW9kCgkJeyQkID0gJDEuY29uY2F0KFskMl0pO30KCXwgY29udGV4dF9kZWZfc3BlY19ib2R5IGNvbnRleHRfbW9kaWZpY2F0aW9uCgkJeyQkID0gJDEuY29uY2F0KFskMl0pO30KCXwgY29udGV4dF9kZWZfc3BlY19ib2R5IGNvbnRleHRfbW9kX2FyZwoJCXskJCA9ICQxLmNvbmNhdChbJDJdKTt9Cgk7Cgpjb250ZXh0X21vZF9hcmcKCTogZW1iZWRkZWRfc2NtCgkJeyQkID0gJDE7fQoJfCBjb21wb3NpdGVfbXVzaWMKCQl7JCQgPSAkMTt9Cgk7Cgpjb250ZXh0X21vZGlmaWNhdGlvbgoJOiBXSVRIICd7JyBjb250ZXh0X21vZF9saXN0ICd9JwoJCXskJCA9IGNvbW1hbmQoJDEsIGlubGluZUJsb2NrKCQzKSk7fQoJfCBXSVRIIGNvbnRleHRfbW9kaWZpY2F0aW9uX2FyZwoJCXskJCA9IGNvbW1hbmQoJDEsICQyKTt9Cgk7Cgpjb250ZXh0X21vZGlmaWNhdGlvbl9hcmcKCTogZW1iZWRkZWRfc2NtCgkJeyQkID0gJDE7fQoJLy98IE1VU0lDX0lERU5USUZJRVIKCXwgbXVzaWNfaWRlbnRpZmllcgoJCXskJCA9ICQxO30KCTsKCmNvbnRleHRfbW9kX2xpc3QKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBjb250ZXh0X21vZF9saXN0IGNvbnRleHRfbW9kCgkJeyQkID0gJDEuY29uY2F0KCQyKTt9Cgl8IGNvbnRleHRfbW9kX2xpc3QgY29udGV4dF9tb2RfYXJnCgkJeyQkID0gJDEuY29uY2F0KCQyKTt9Cgk7Cgpjb250ZXh0X21vZAoJOiBwcm9wZXJ0eV9vcGVyYXRpb24KCQl7JCQgPSAkMTt9CgkvL3wgY29udGV4dF9kZWZfbW9kIFNZTUJPTAoJfCBjb250ZXh0X2RlZl9tb2Qgc3ltYm9sCgkJeyQkID0gY29tbWFuZCgkMSwgJDIpO30KCS8vfCBjb250ZXh0X2RlZl9tb2QgZW1iZWRkZWRfc2NtCgk7Cgpwcm9wZXJ0eV9vcGVyYXRpb24KCTogc3ltYm9sICc9JyBzY2FsYXIKCQl7JCQgPSBhc3NpZ25tZW50KCQxLCAkMyk7fQoJfCBVTlNFVCBzeW1ib2wKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJfCBPVkVSUklERSByZXZlcnRfYXJnICc9JyBzY2FsYXIKCQl7JCQgPSBjb21tYW5kKCQxLCBhc3NpZ25tZW50KCQyLCAkNCkpO30KCXwgUkVWRVJUIHJldmVydF9hcmcKCQl7JCQgPSBjb21tYW5kKCQxLCAkMik7fQoJOwoKc3ltYm9sCgk6IGxpdGVyYWxfc3RyaW5nCgkJeyQkID0gJDE7fQoJfCBTWU1CT0wKCQl7JCQgPSAkMTt9Cgl8IGVtYmVkZGVkX3NjbV9iYXJlCgkJeyQkID0gJDE7fQoJOwoKc2NhbGFyCgkvLzogZW1iZWRkZWRfc2NtX2FyZwoJOiBwaXRjaF9vcl9tdXNpYwoJCXskJCA9ICQxO30KCXwgc2NtX2lkZW50aWZpZXIKCQl7JCQgPSAkMTt9Cgl8IGJhcmVfbnVtYmVyCgkJeyQkID0gJDE7fQoJfCAnLScgYmFyZV9udW1iZXIKCQl7JCQgPSAtJDE7fQoJfCBzdHJpbmcKCQl7JCQgPSAkMTt9Cgl8IHN5bWJvbF9saXN0X3BhcnRfYmFyZSAnLicgcHJvcGVydHlfcGF0aAoJCXskJCA9ICQxICsgIi4iICsgJDM7fQoJfCBzeW1ib2xfbGlzdF9wYXJ0X2JhcmUgJywnIHByb3BlcnR5X3BhdGgKCQl7JCQgPSAkMSArICIsIiArICQzO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgVU5TSUdORUQgJywnIHByb3BlcnR5X3BhdGgKCQl7JCQgPSAkMSArICIsIiArICQzO30KCS8vIGV4dHJhIGZvcm11bGEKCXwgQ09NTUFORAoJCXskJCA9ICQxO30KCTsKCmJhcmVfbnVtYmVyCgk6IGJhcmVfbnVtYmVyX2NvbW1vbgoJCXskJCA9ICQxO30KCXwgVU5TSUdORUQKCQl7JCQgPSBOdW1iZXIoJDEpO30KCS8vfCBVTlNJR05FRCBOVU1CRVJfSURFTlRJRklFUgoJOwoKY29udGV4dF9kZWZfbW9kCgk6IENPTlNJU1RTCgkJeyQkID0gJDE7fQoJfCBSRU1PVkUKCQl7JCQgPSAkMTt9Cgl8IEFDQ0VQVFMKCQl7JCQgPSAkMTt9Cgl8IERFRkFVTFRDSElMRAoJCXskJCA9ICQxO30KCXwgREVOSUVTCgkJeyQkID0gJDE7fQoJfCBBTElBUwoJCXskJCA9ICQxO30KCXwgVFlQRQoJCXskJCA9ICQxO30KCXwgREVTQ1JJUFRJT04KCQl7JCQgPSAkMTt9Cgl8IE5BTUUKCQl7JCQgPSAkMTt9Cgk7CgplbWJlZGRlZF9zY21fYWN0aXZlCgkvLzogU0NNX0lERU5USUZJRVIKCTogc2NtX2lkZW50aWZpZXIKCQl7JCQgPSAkMTt9Cgl8IHNjbV9mdW5jdGlvbl9jYWxsCgkJeyQkID0gJDE7fQoJfCBsb29rdXAKCQl7JCQgPSAkMTt9Cgk7CgoKLyovLyBleHRyYSBzeW50YXgsIG1heWJlIHRoZSBzdWJzdGl0dXRpb24gZm9yIGVtYmVkZGVkX3NjbV9hY3RpdmUgaW4gbGlseXBvbmQncyBwYXJzZXIKZW1iZWRkZWRfc2NoZW1lX2V4cHJlc3Npb24KCTogIiMiIHNjaGVtZV9leHByZXNzaW9uCgkJeyQkID0gc2NoZW1lKCQyKTt9Cgk7Ki8KCi8vIGV4dHJhIHN5bnRheApzY2hlbWVfZXhwcmVzc2lvbgoJOiBTQ01fVFJVRQoJCXskJCA9IHRydWU7fQoJfCBTQ01fRkFMU0UKCQl7JCQgPSBmYWxzZTt9Cgl8IFNDTV9IRVgKCQl7JCQgPSAkMX0KCXwgU0NNX0NPTE9OCgkJeyQkID0gJDF9Cgl8IGJhcmVfbnVtYmVyCgkJeyQkID0gJDE7fQoJfCBJTlQKCQl7JCQgPSAkMTt9Cgl8ICIoIiAiKSIKCQl7JCQgPSBudWxsO30KCXwgIisiICJpbmYuMCIKCQl7JCQgPSAkMSArICQyO30KCXwgIi0iICJpbmYuMCIKCQl7JCQgPSAkMSArICQyO30KCXwgIigiIHNjaGVtZV9leHByZXNzaW9uICIuIiBzY2hlbWVfZXhwcmVzc2lvbiAiKSIKCQl7JCQgPSBzY2hlbWVQYWlyKCQyLCAkNCk7fQoJfCAiKCIgc2NoZW1lX2V4cHJlc3Npb24gc2NoZW1lX2FyZ3MgIikiCgkJeyQkID0gc2NoZW1lRnVuY3Rpb24oJDIsICQzKTt9Cgl8IHNjaGVtZV90b2tlbgoJCXskJCA9ICQxO30KCXwgc2NoZW1lX3Rva2VuICI/IgoJCXskJCA9ICQxICsgJDI7fQoJfCAiJyIgc2NoZW1lX2V4cHJlc3Npb24KCQl7JCQgPSBzY2hlbWVQb2ludGVyKCQyKTt9Cgl8ICJgIiBzY2hlbWVfZXhwcmVzc2lvbgoJCXskJCA9IHNjaGVtZVBvaW50ZXIoJDIpO30KCXwgIiMiICJ7IiBsaWx5cG9uZCAiIyIgIn0iCgkJeyQkID0gc2NoZW1lRW1iZWQoJDMpO30KCXwgIioiCgkJeyQkID0gJDE7fQoJOwoKc2NoZW1lX2FyZ3MKCTogJWVtcHR5CgkJeyQkID0gW107fQoJfCBzY2hlbWVfYXJncyBzY2hlbWVfZXhwcmVzc2lvbgoJCXskJCA9ICQxLmNvbmNhdCgkMik7fQoJOwoKc2NoZW1lX3Rva2VuCgk6IGJhcmVfbnVtYmVyCgkJeyQkID0gJDE7fQoJfCBzeW1ib2wKCQl7JCQgPSAkMTt9Cgl8IHN5bWJvbCAiOiIgc2NoZW1lX3Rva2VuCgkJeyQkID0gJDEgKyAkMiArICQzO30KCXwgc3ltYm9sICI6IiAiOiIgc2NoZW1lX3Rva2VuCgkJeyQkID0gJDEgKyAkMiArICQzICsgJDQ7fQoJOwoKb3B0aW9uYWxfcmVzdAoJOiAlZW1wdHkKCQl7JCQgPSBudWxsO30KCXwgUkVTVAoJCXskJCA9ICQxO30KCTsKCi8vIGV4dHJhIHN5bnRheCwgdGhlIHN1YnN0aXR1dGlvbiBvZiBTVFJJTkcKbGl0ZXJhbF9zdHJpbmcKCTogU1RSSU5HCgkJeyQkID0gc3RyaW5nKCQxKTt9Cgk7Cg=="}}]); +//# sourceMappingURL=chunk-2d0db258.a4804a7a.js.map \ No newline at end of file diff --git a/dist/js/chunk-40965e1a.74707226.js b/dist/js/chunk-40965e1a.74707226.js new file mode 100644 index 0000000000000000000000000000000000000000..d10042b496336ab68226a74fb4777f7b57db9f62 --- /dev/null +++ b/dist/js/chunk-40965e1a.74707226.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-40965e1a"],{"00fd":function(t,e,s){var o=s("9e69"),a=Object.prototype,i=a.hasOwnProperty,n=a.toString,r=o?o.toStringTag:void 0;function c(t){var e=i.call(t,r),s=t[r];try{t[r]=void 0;var o=!0}catch(c){}var a=n.call(t);return o&&(e?t[r]=s:delete t[r]),a}t.exports=c},"0146":function(t,e,s){var o=s("24fb");e=o(!1),e.push([t.i,'@font-face{font-family:lotus-music;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff");font-weight:400;font-style:normal}',""]),t.exports=e},1310:function(t,e){function s(t){return null!=t&&"object"==typeof t}t.exports=s},"1a8c":function(t,e){function s(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}t.exports=s},"1c3a":function(t,e,s){"use strict";s.d(e,"b",(function(){return h})),s.d(e,"a",(function(){return u}));var o=s("2b0e"),a=s("a139"),i=s("f7ce"),n=s("1f25");const r=o["a"].extend(a["a"]),c=o["a"].extend(i["a"]),l=async(t,e)=>{const s="data:image/svg+xml,"+encodeURIComponent(n["h"]+t),o=await new Promise((t,e)=>{const o=new Image;o.onload=()=>t(o),o.onerror=t=>{console.warn("Error when loading svg image:",s),e(t)},o.src=s});e.width=o.width,e.height=o.height;const a=e.getContext("2d");a.drawImage(o,0,0);const i=await new Promise(t=>e.toBlob(e=>t(e),"image/png"));return URL.createObjectURL(i)},d=(t,e,s)=>{const o=(new DOMParser).parseFromString(t,"text/xml"),a=o.childNodes[0];for(const n of a.childNodes)switch(n.tagName){case"text":/www\.lilypond\.org/.test(n.textContent)&&a.removeChild(n);break;case"a":const t=n.getAttribute("xlink:href"),s=t.match(/:(\d+:\d+:\d+)$/);if(s){const t=s[1];e.has(t)&&a.removeChild(n)}break}const i=a.outerHTML;return l(i,s)},h=async(t,e,s)=>{const o=[];for(const a of t)o.push(await d(a,e,s));return o},f=(t,e)=>{for(const s of t.children)if("use"===s.tagName){const o=s.getAttribute("xlink:href");if(o){const a=o.substr(1),i=e[a];if(i){const e=i.cloneNode(!0);e.classList.add(...s.classList),(e.classList.contains("staff-line")||e.classList.contains("line")||e.classList.contains("slur"))&&e.children[0].setAttribute("stroke","black"),t.insertBefore(e,s),t.removeChild(s)}}}else f(s,e)},u=async function*({sheetDocument:t,signs:e,hashTable:s,matchedIds:o,canvas:a}){console.assert(!!t,"sheetDocument is null."),console.assert(!!o,"matchedIds is null."),console.assert(!!a,"canvas is null."),console.assert(e||s,"signs & hashTable is both null.");const i=new r({propsData:{doc:t,partialVisible:!1}}).$mount(document.createElement("div"));await i.$nextTick(),e||(e=new c({propsData:{hashTable:s}}).$mount(document.createElement("div")));const n=e.$el.children[0],d=[...n.children].reduce((t,e)=>(t[e.id]=e,t),{}),h=[...i.$el.children];for(const r of h)o.forEach(t=>{r.querySelectorAll(`g[data-href='${t}']`).forEach(t=>t.parentElement.removeChild(t))}),f(r,d),yield await l(r.outerHTML,a)}},2462:function(t,e,s){var o=s("6df9");o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals);var a=s("499e").default;a("6677ab5e",o,!0,{sourceMap:!1,shadowMode:!1})},"29f3":function(t,e){var s=Object.prototype,o=s.toString;function a(t){return o.call(t)}t.exports=a},"2b3e":function(t,e,s){var o=s("585a"),a="object"==typeof self&&self&&self.Object===Object&&self,i=o||a||Function("return this")();t.exports=i},"2be7":function(t,e,s){var o=s("24fb"),a=s("0146");e=o(!1),e.i(a),e.push([t.i,"",""]),t.exports=e},"2bff":function(t,e,s){var o=s("2be7");o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals);var a=s("499e").default;a("1b71e8f0",o,!0,{sourceMap:!1,shadowMode:!1})},3729:function(t,e,s){var o=s("9e69"),a=s("00fd"),i=s("29f3"),n="[object Null]",r="[object Undefined]",c=o?o.toStringTag:void 0;function l(t){return null==t?void 0===t?r:n:c&&c in Object(t)?a(t):i(t)}t.exports=l},"3ed0":function(t,e,s){var o=s("24fb");e=o(!1),e.push([t.i,":root{--lotus-token-default-color:#000;--lotus-token-on-color:#0af}",""]),t.exports=e},"408c":function(t,e,s){var o=s("2b3e"),a=function(){return o.Date.now()};t.exports=a},"4a93":function(t,e,s){"use strict";s("f7f3")},"4cef":function(t,e){var s=/\s/;function o(t){var e=t.length;while(e--&&s.test(t.charAt(e)));return e}t.exports=o},"50f4":function(t,e,s){"use strict";s("8b2a")},"585a":function(t,e,s){(function(e){var s="object"==typeof e&&e&&e.Object===Object&&e;t.exports=s}).call(this,s("c8ba"))},"5f3d":function(t,e,s){var o=s("b1a2");o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals);var a=s("499e").default;a("0a968266",o,!0,{sourceMap:!1,shadowMode:!1})},"6c07":function(t,e,s){var o=s("81d1");o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals);var a=s("499e").default;a("2c493a70",o,!0,{sourceMap:!1,shadowMode:!1})},"6c11":function(t,e,s){"use strict";s("2bff")},"6df9":function(t,e,s){var o=s("24fb"),a=s("3ed0");e=o(!1),e.i(a),e.push([t.i,".token .line[data-v-5fc078a1],.token .slur[data-v-5fc078a1],.token .staff-line[data-v-5fc078a1]{stroke:var(--lotus-token-default-color)}.token use[data-v-5fc078a1]{fill:var(--lotus-token-default-color)}.token.matched use.on[data-v-5fc078a1]{fill:var(--lotus-token-on-color);stroke-width:.1;stroke:var(--lotus-token-on-color)}",""]),t.exports=e},"81d1":function(t,e,s){var o=s("24fb");e=o(!1),e.push([t.i,".check-button[data-v-58f51ec2]{cursor:pointer}",""]),t.exports=e},"8a81":function(t,e,s){"use strict";s("6c07")},"8b2a":function(t,e,s){var o=s("b1f3");o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals);var a=s("499e").default;a("715033e0",o,!0,{sourceMap:!1,shadowMode:!1})},"8d74":function(t,e,s){var o=s("4cef"),a=/^\s+/;function i(t){return t?t.slice(0,o(t)+1).replace(a,""):t}t.exports=i},"9e69":function(t,e,s){var o=s("2b3e"),a=o.Symbol;t.exports=a},a139:function(t,e,s){"use strict";var o=function(){var t=this,e=t._self._c;return e("div",{staticClass:"sheet live"},t._l(t.shownPages,(function(s,o){return e("svg",{key:o,ref:"pages",refInFor:!0,staticClass:"page",style:{["background-image"]:t.backgroundImages&&t.backgroundImages[o]&&`url(${t.backgroundImages[o]})`},attrs:{xmlns:"http://www.w3.org/2000/svg",width:s.width,height:s.height,viewBox:`${s.viewBox.x} ${s.viewBox.y} ${s.viewBox.width} ${s.viewBox.height}`},on:{DOMNodeInserted:t.onPageChanged}},[t.partialVisible&&s.hidden?t._e():e("g",[t.showMark?e("g",{staticClass:"mark"},[t._l(s.systems,(function(o,a){return e("g",{key:a,staticClass:"system",attrs:{transform:`translate(${o.x}, ${o.y})`},on:{mousemove:function(e){t.enablePointer&&t.onMousemovePad(o,e)},mouseleave:function(e){t.enablePointer&&t.onMouseleavePad(o,e)},click:function(e){return t.onClickPad(o,e)}}},[e("rect",{attrs:{x:0,y:o.top,width:o.width,height:o.bottom-o.top}}),t._t("system",null,{system:o,page:s})],2)})),t._t("page",null,{page:s})],2):t._e(),t.bakingMode?t._e():e("g",[t.watermark?e("g",{staticClass:"wm"},[e("image",{attrs:{href:t.watermark,x:(t.doc.pageSize.width-t.watermarkSize.width)/2/t.svgScale,y:(t.doc.pageSize.height-t.watermarkSize.height)/2/t.svgScale,width:t.watermarkSize.width/2/t.svgScale,height:t.watermarkSize.height/2/t.svgScale}})]):t._e(),e("g",{staticClass:"page-tokens"},t._l(s.tokens,(function(t,s){return e("SheetToken",{key:s,attrs:{token:t}})})),1),t._l(s.systems,(function(o,a){return e("g",{key:a,staticClass:"system",attrs:{transform:`translate(${o.x}, ${o.y})`}},[t.showCursor&&t.cursorPosition&&t.cursorPosition.system===o.index?e("rect",{staticClass:"cursor",attrs:{x:t.cursorPosition.x,y:o.top-.5,width:"1",height:o.bottom-o.top+1}}):t._e(),e("g",t._l(o.tokens,(function(t,s){return e("SheetToken",{key:s,attrs:{token:t}})})),1),t._l(o.staves,(function(a,i){return e("g",{key:i,staticClass:"staff",attrs:{transform:`translate(${a.x}, ${a.y})`}},[e("g",t._l(a.tokens,(function(t,s){return e("SheetToken",{key:s,attrs:{token:t}})})),1),t._l(a.measures,(function(s,o){return e("g",{key:o,staticClass:"measure"},t._l(s.tokens,(function(s,o){return e("SheetToken",{key:o,attrs:{token:s,classes:{matched:t.statusMap.has(s.href),mismatched:s.is("NOTEHEAD")&&!t.statusMap.has(s.href),tied:s.tied,attached:Number.isFinite(s.stemX),highlight:t.highlightSymbol&&s.is(t.highlightSymbol)},showTitle:t.showMark,scale:t.enabledFont?s.scale2:null},on:{click:function(e){return t.$emit("click-token",s,e)}}})})),1)})),t.showMark?e("g",{staticClass:"mark"},[t._t("staff",null,{staff:a,system:o,page:s})],2):t._e(),e("g",{staticClass:"markings"},t._l(a.markings,(function(s){return e("g",{key:s.index,class:s.cls,attrs:{transform:`translate(${s.x}, ${s.y+a.yRoundOffset})`}},[e("text",[t._v(t._s(s.text))]),s.alterText?e("text",{staticClass:"alter",attrs:{x:"-0.2",y:"0"}},[t._v(t._s(s.alterText))]):t._e()])})),0)],2)}))],2)}))],2),t.bakingMode?e("g",{staticClass:"bake"},t._l(s.systems,(function(s,o){return e("g",{key:o,staticClass:"system",attrs:{transform:`translate(${s.x}, ${s.y})`}},[t.showCursor&&t.cursorPosition&&t.cursorPosition.system===s.index?e("rect",{staticClass:"cursor",attrs:{x:t.cursorPosition.x,y:s.top-.5,width:"1",height:s.bottom-s.top+1}}):t._e(),t._l(s.staves,(function(s,o){return e("g",{key:o,staticClass:"staff",attrs:{transform:`translate(${s.x}, ${s.y})`}},[t._l(s.measures,(function(s,o){return e("g",{key:o,staticClass:"measure"},t._l(s.matchedTokens,(function(s,o){return e("g",{key:o,staticClass:"token matched",class:{tied:s.tied},attrs:{transform:`translate(${s.x}, ${s.y})`+(s.scale&&1!==s.scale?` scale(${s.scale})`:""),"data-track":s.track,"data-index":s.index}},[e("text",{attrs:{"data-href":s.href}},[t._v(t._s(s.fontUnicode))])])})),0)})),e("g",{staticClass:"markings"},t._l(s.markings,(function(o){return e("g",{key:o.index,class:o.cls,attrs:{transform:`translate(${o.x}, ${o.y+s.yRoundOffset})`}},[e("text",[t._v(t._s(o.text))]),o.alterText?e("text",{staticClass:"alter",attrs:{x:"-0.2",y:"0"}},[t._v(t._s(o.alterText))]):t._e()])})),0)],2)}))],2)})),0):t._e()])])})),0)},a=[],i=s("2b0e"),n=s("4b63"),r=s("6a98"),c=s("5027");class l{constructor(t=!1){t&&this.lock()}get locked(){return!!this.resolve}lock(){return console.assert(!this.locked,"[SingleLock] duplicated locking, last locking has't been released yet."),this.promise=new Promise(t=>this.resolve=t),this.promise}release(t){this.resolve&&(this.resolve(t),this.resolve=null)}wait(){return this.promise}}class d{constructor(t=Date){this.tasks={},this.handlers={},this.timer=t}clear(){Object.values(this.handlers).forEach(t=>clearTimeout(t)),this.tasks={},this.handlers={}}getTask(t){const e=Math.max(t-this.timer.now(),0);return this.tasks[t]||(this.tasks[t]=new Promise(s=>{this.handlers[t]=setTimeout(s,e)}).then(()=>{delete this.tasks[t],delete this.handlers[t]})),this.tasks[t]}appendTask(t,e){this.tasks[t]=this.getTask(t).then(e)}}var h=function(){var t=this,e=t._self._c;return e("g",{staticClass:"token",class:t.classes,attrs:{transform:`translate(${t.token.x}, ${t.token.y})`+(t.scale?` scale(${t.scale.x}, ${t.scale.y})`:""),"data-index":t.token.index,"data-href":t.token.href,"data-track":t.token.track},on:{click:function(e){return t.$emit("click",e)}}},[e("use",{class:t.token.classes,attrs:{"data-href":t.token.href,"xlink:href":"#sign-"+t.token.hash}}),t.showTitle&&t.token.href?e("title",[t._v(t._s(t.token.href))]):t._e()])},f=[],u={name:"sheet-token",props:{token:Object,classes:Object,showTitle:Boolean,scale:Object}},g=u,A=(s("b30c"),s("2877")),m=Object(A["a"])(g,h,f,!1,null,"5fc078a1",null),k=m.exports;class p{add(){}remove(){}}class y{constructor(t){this.elems=t}add(t){this.elems.forEach(e=>e.classList.add(t))}remove(t){this.elems.forEach(e=>e.classList.remove(t))}get value(){return this.elems[0]&&this.elems[0].value}set value(t){this.elems.forEach(e=>e.value=t)}}const v=(t,e=document)=>{const s=e.querySelectorAll(`.token *[data-href='${t}']`);return 0===s.length?new p:1===s.length?s[0].classList:new y(s)},w=Object({NODE_ENV:"production",BASE_URL:""}).VUE_APP_DEFAULT_WATERMARK;var x={name:"sheet-live",components:{SheetToken:k},props:{doc:Object,midiNotation:Object,pitchContextGroup:Array,showMark:Boolean,showCursor:{type:Boolean,default:!0},noteHighlight:{type:Boolean,default:!0},bakingMode:{type:Boolean,default:!1},backgroundImages:Array,enablePointer:{type:Boolean,default:!1},showPagesProgressively:{type:Boolean,default:!1},partialVisible:{type:Boolean,default:!0},scheduler:Object,watermark:{type:String,default:w},enabledFont:Boolean,highlightSymbol:String},data(){return{midiPlayer:null,statusMap:new Map,shownPages:[],watermarkSize:{width:256,height:256}}},computed:{progressTicks(){return this.midiPlayer&&this.midiPlayer.progressTicks},cursorPosition(){return this.midiPlayer&&this.scheduler?this.scheduler.lookupPosition(this.progressTicks):null},cursorPageIndex(){if(!this.cursorPosition||!this.doc)return null;const t=this.doc.systems[this.cursorPosition.system];return console.assert(t,"invalid cursor system index:",this.cursorPosition),t?t.pageIndex:null},cursorSystemIndex(){return this.cursorPosition&&this.doc?this.cursorPosition.system:null},cursorRowIndex(){return this.cursorSystemIndex},svgScale(){const t=this.doc&&this.doc.pages[0];return t?this.doc.pageSize.width/t.viewBox.width:1},isPlaying(){return this.midiPlayer&&this.midiPlayer.isPlaying}},created(){if(this.pageLoadingLock=new l,this.schedulePool=new d(performance),this.preparePlayer(),this.showPages(),this.watermark){const t=new Image;t.src=this.watermark,t.onload=()=>{this.watermarkSize.width=t.naturalWidth,this.watermarkSize.height=t.naturalHeight}}},methods:{onPlayerMidi(t,e){if(this.$emit("midi",t,e),this.noteHighlight&&t.ids){let s=null;const o=t.ids;switch(t.subtype){case"noteOn":s=()=>o.forEach(t=>{const e=this.statusMap.get(t);e&&e.add("on")});break;case"noteOff":s=()=>o.forEach(t=>{const e=this.statusMap.get(t);e&&e.remove("on")});break}s&&this.schedulePool.appendTask(e,s)}},setNoteStatus(t,e,s){if(this.midiNotation){const o=this.midiNotation.notes[t];o?o.ids&&o.ids.forEach(t=>{const o=this.statusMap.get(t);o&&(s?o.add(e):o.remove(e))}):console.warn("invalid note index:",t,this.midiNotation.notes.length)}},clearNoteStatus(){for(const t of this.statusMap.values())t.value=""},updateTokenStatus(){if(this.midiNotation&&this.noteHighlight)for(const t of this.midiNotation.notes){const e=this.midiPlayer.isPlaying&&this.midiPlayer.progressTime>=t.start&&this.midiPlayer.progressTime{const s=this.statusMap.get(t);s&&(e?s.add("on"):s.remove("on"))})}},async preparePlayer(){if(this.statusMap.clear(),this.midiPlayer&&(this.midiPlayer.dispose(),this.midiPlayer=null),this.midiNotation&&(this.updateMidiPlayer(),await this.$nextTick(),await this.pageLoadingLock.wait(),this.updateStatusMap(),!this.scheduler)){const t=this.doc&&this.doc.getTokenMap();if(t){for(const s of t.values())i["a"].set(s,"on",s.on||!1);const e=r["a"].createFromNotation(this.midiNotation,t);this.$emit("update:scheduler",e)}}},updateMidiPlayer(){this.midiPlayer&&this.midiPlayer.dispose(),this.midiPlayer=new n["MidiPlayer"](this.midiNotation,{cacheSpan:400,onMidi:(t,e)=>this.onPlayerMidi(t,e),onTurnCursor:()=>this.updateTokenStatus()})},updateStatusMap(){this.midiNotation&&this.midiNotation.notes.forEach(t=>t.ids&&t.ids.forEach(t=>{this.statusMap.get(t)||this.statusMap.set(t,v(t,this.$el))}))},updateStatusMapInPage(t){const e=t.querySelectorAll(".token *[data-href]");e.forEach(e=>{const s=e.dataset.href;this.statusMap.set(s,v(s,t))})},addMarkingByTick(t,e,s,{id:o,cls:a,text:i="",xoffset:n=0}={}){if(!this.pitchContextGroup)return void console.warn("[addMarkingByTick]\tpitchContextGroup is required.");const r=this.pitchContextGroup[s];if(!r)return void console.warn("[addMarkingByTick]\tinvalid staffIndex:",s,this.pitchContextGroup.length);const c=this.scheduler.lookupPosition(t);if(!c)return void console.warn("[addMarkingByTick]\tinvalid tick:",t);const l=r.lookup(t);if(!l)return console.warn("no context at tick:",t,r),null;const{y:d,alter:h}=l.pitchToY(e);return this.doc.addMarking(c.system,s,{x:c.x+n,y:d,text:i,alter:h,id:o,cls:a})},addMarkingByNote(t,e,{id:s=null,cls:o,text:a=""}={}){console.assert(this.midiNotation,"[addMarkingByNote]\tmidiNotation is null.");const i=this.midiNotation.notes[t];if(i){if(!s){if(!i.ids)return null;s=i.ids[0]}return this.addMarkingByTick(i.startTick,e,i.staffTrack,{id:s,cls:o,text:a,xoffset:1.2})}console.warn("[addMarkingByNote]\tinvalid noteIndex:",t,this.midiNotation.notes.length)},removeMarking(t){this.doc.removeMarking(t)},clearMarkings(){this.doc.clearMarkings()},async showPages(){if(this.shownPages=[],this.doc)if(this.showPagesProgressively){await this.pageLoadingLock.wait(),this.pageLoadingLock.lock();for(let t=0;t{const s=t.getBoundingClientRect(),o=this.shownPages[e],a=s.top>window.innerHeight||s.bottom<0||s.left>window.innerWidth||s.right<0;!!o.hidden!==a&&i["a"].set(o,"hidden",a)}):console.log("[updatePageVisibility] $refs.pages is null:",this.$refs.pages)},onPageChanged(t){t.target&&"g"===t.target.nodeName&&this.updateStatusMapInPage(t.target)}},watch:{midiNotation:"preparePlayer",midiPlayer(t){this.$emit("update:midiPlayer",t)},async bakingMode(){await this.$nextTick(),await this.pageLoadingLock.wait(),this.updateStatusMap(),this.updateTokenStatus()},doc:"onDocChanged",cursorPageIndex(t){this.$emit("cursorPageShift",t)},cursorSystemIndex(t){this.$emit("cursorSystemShift",t)},isPlaying(t){t||this.schedulePool.clear()}}},b=x,B=(s("4a93"),s("6c11"),s("50f4"),Object(A["a"])(b,o,a,!1,null,"dc74d054",null));e["a"]=B.exports},b047:function(t,e,s){var o=s("1a8c"),a=s("408c"),i=s("b4b0"),n="Expected a function",r=Math.max,c=Math.min;function l(t,e,s){var l,d,h,f,u,g,A=0,m=!1,k=!1,p=!0;if("function"!=typeof t)throw new TypeError(n);function y(e){var s=l,o=d;return l=d=void 0,A=e,f=t.apply(o,s),f}function v(t){return A=t,u=setTimeout(b,e),m?y(t):f}function w(t){var s=t-g,o=t-A,a=e-s;return k?c(a,h-o):a}function x(t){var s=t-g,o=t-A;return void 0===g||s>=e||s<0||k&&o>=h}function b(){var t=a();if(x(t))return B(t);u=setTimeout(b,w(t))}function B(t){return u=void 0,p&&l?y(t):(l=d=void 0,f)}function C(){void 0!==u&&clearTimeout(u),A=0,l=g=d=u=void 0}function M(){return void 0===u?f:B(a())}function P(){var t=a(),s=x(t);if(l=arguments,d=this,g=t,s){if(void 0===u)return v(g);if(k)return clearTimeout(u),u=setTimeout(b,e),y(g)}return void 0===u&&(u=setTimeout(b,e)),f}return e=i(e)||0,o(s)&&(m=!!s.leading,k="maxWait"in s,h=k?r(i(s.maxWait)||0,e):h,p="trailing"in s?!!s.trailing:p),P.cancel=C,P.flush=M,P}t.exports=l},b1a2:function(t,e,s){var o=s("24fb");e=o(!1),e.push([t.i,".sign line[data-v-7dcb4590],.sign polygon[data-v-7dcb4590]{stroke:inherit}.sign path[data-v-7dcb4590],.sign polygon[data-v-7dcb4590],.sign rect[data-v-7dcb4590]{fill:inherit}.sign path[data-v-7dcb4590]{stroke:inherit}.sign .font-char[data-v-7dcb4590]{font-family:var(--music-font-family);font-size:var(--music-font-size)}",""]),t.exports=e},b1f3:function(t,e,s){var o=s("24fb"),a=s("3ed0");e=o(!1),e.i(a),e.push([t.i,".sheet .bake .token text{fill:var(--lotus-token-default-color)}.sheet .bake .token text.on{fill:var(--lotus-token-on-color);stroke-width:.1;stroke:var(--lotus-token-on-color)}",""]),t.exports=e},b30c:function(t,e,s){"use strict";s("2462")},b4b0:function(t,e,s){var o=s("8d74"),a=s("1a8c"),i=s("ffd6"),n=NaN,r=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,d=parseInt;function h(t){if("number"==typeof t)return t;if(i(t))return n;if(a(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=a(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=o(t);var s=c.test(t);return s||l.test(t)?d(t.slice(2),s?2:8):r.test(t)?n:+t}t.exports=h},ddcc:function(t,e,s){"use strict";var o=function(){var t=this,e=t._self._c;return e("button",{class:`check-button ${t.classes} ${t.value?"on":"off"}`,domProps:{innerHTML:t._s(t.content)},on:{click:t.onClick}})},a=[],i={name:"check-button",props:{value:Boolean,classes:{type:String,default:""},content:String},methods:{onClick(){this.$emit("input",!this.value)}}},n=i,r=(s("8a81"),s("2877")),c=Object(r["a"])(n,o,a,!1,null,"58f51ec2",null);e["a"]=c.exports},e179:function(t,e,s){var o=s("24fb"),a=s("3ed0");e=o(!1),e.i(a),e.push([t.i,".sheet .mark[data-v-dc74d054]{opacity:0}.sheet .mark .locator text[data-v-dc74d054]{font-size:2px;text-anchor:start;pointer-events:none}.sheet .mark rect[data-v-dc74d054]{fill:transparent}.sheet .cursor[data-v-dc74d054],.sheet .wm[data-v-dc74d054]{pointer-events:none}.sheet .bake[data-v-dc74d054]{font-family:var(--music-font-family)}.sheet .bake .token text[data-v-dc74d054]{pointer-events:none}.sheet .bake .token text[data-v-dc74d054],.sheet .markings text[data-v-dc74d054]{-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:var(--music-font-size)}.sheet .markings text[data-v-dc74d054]{font-family:var(--music-font-family)}.sheet .markings .alter[data-v-dc74d054]{text-anchor:end}",""]),t.exports=e},eaac:function(t,e,s){"use strict";s("5f3d")},f7ce:function(t,e,s){"use strict";var o=function(){var t=this,e=t._self._c;return e("svg",{staticClass:"sheet-signs",attrs:{xmlns:"http://www.w3.org/2000/svg"}},[e("defs",t._l(t.signs,(function(s){return e("g",{key:s.id,staticClass:"sign",attrs:{id:"sign-"+s.id,transform:s.def.scale&&!s.glyph&&`scale(${s.def.scale.x}, ${s.def.scale.y})`}},[s.glyph?e("text",{staticClass:"font-char",attrs:{"text-anchor":"start"},domProps:{innerHTML:t._s(s.glyph)}}):t._e(),"path"!==s.def.type||s.glyph?t._e():e("path",{attrs:{d:s.def.d,"stroke-width":s.def["stroke-width"]}}),"rect"===s.def.type?e("rect",{attrs:{x:s.def.width>=0?0:s.def.width,y:s.def.height>=0?0:s.def.height,width:Math.abs(s.def.width),height:Math.abs(s.def.height)}}):t._e(),"line"===s.def.type?e("line",{attrs:{x1:"0",y1:"0",x2:s.def.width,y2:s.def.height,"stroke-width":s.def["stroke-width"],"stroke-dasharray":s.def["stroke-dasharray"]}}):t._e(),"polygon"===s.def.type?e("polygon",{attrs:{points:s.def.points,"stroke-width":s.def["stroke-width"]}}):t._e(),"text"===s.def.type?e("text",{attrs:{"font-size":s.def["font-size"],"font-weight":s.def["font-weight"],"font-style":s.def["font-style"],"text-anchor":s.def["text-anchor"],fill:s.def.color}},[e("tspan",[t._v(t._s(s.def.text))])]):t._e()])})),0)])},a=[],i=s("32c1"),n={name:"sheet-signs",props:{hashTable:Object,enabledFont:Boolean},computed:{signs(){return this.hashTable?Object.entries(this.hashTable).map(([t,e])=>({id:t,def:e,glyph:this.enabledFont?i["glyph"].glyphHash[t]&&i["glyph"].GlyphUnicode[i["glyph"].glyphHash[t]]:null})):[]}}},r=n,c=(s("eaac"),s("2877")),l=Object(c["a"])(r,o,a,!1,null,"7dcb4590",null);e["a"]=l.exports},f7f3:function(t,e,s){var o=s("e179");o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals);var a=s("499e").default;a("7daddbf7",o,!0,{sourceMap:!1,shadowMode:!1})},ffd6:function(t,e,s){var o=s("3729"),a=s("1310"),i="[object Symbol]";function n(t){return"symbol"==typeof t||a(t)&&o(t)==i}t.exports=n}}]); +//# sourceMappingURL=chunk-40965e1a.74707226.js.map \ No newline at end of file diff --git a/dist/js/chunk-48b5b2a0.3db5a0aa.js b/dist/js/chunk-48b5b2a0.3db5a0aa.js new file mode 100644 index 0000000000000000000000000000000000000000..5fe5a278a457fcd6b8f9d5f26eadd55c99ebe50c --- /dev/null +++ b/dist/js/chunk-48b5b2a0.3db5a0aa.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-48b5b2a0"],{4362:function(t,e,r){e.nextTick=function(t){var e=Array.prototype.slice.call(arguments);e.shift(),setTimeout((function(){t.apply(null,e)}),0)},e.platform=e.arch=e.execPath=e.title="browser",e.pid=1,e.browser=!0,e.env={},e.argv=[],e.binding=function(t){throw new Error("No such module. (Possibly not yet loaded)")},function(){var t,n="/";e.cwd=function(){return n},e.chdir=function(e){t||(t=r("df7c")),n=t.resolve(e,n)}}(),e.exit=e.kill=e.umask=e.dlopen=e.uptime=e.memoryUsage=e.uvCounters=function(){},e.features={}},c4e3:function(t,e,r){(function(e,r,n){var i;!function(e){t.exports=e()}((function(){return function t(e,r,n){function s(o,h){if(!r[o]){if(!e[o]){var u="function"==typeof i&&i;if(!h&&u)return i(o,!0);if(a)return a(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var f=r[o]={exports:{}};e[o][0].call(f.exports,(function(t){var r=e[o][1][t];return s(r||t)}),f,f.exports,t,e,r,n)}return r[o].exports}for(var a="function"==typeof i&&i,o=0;o>2,o=(3&e)<<4|r>>4,h=1>6:64,u=2>4,r=(15&a)<<4|(o=s.indexOf(t.charAt(u++)))>>2,n=(3&o)<<6|(h=s.indexOf(t.charAt(u++))),c[l++]=e,64!==o&&(c[l++]=r),64!==h&&(c[l++]=n);return c}},{"./support":30,"./utils":32}],2:[function(t,e,r){"use strict";var n=t("./external"),i=t("./stream/DataWorker"),s=t("./stream/Crc32Probe"),a=t("./stream/DataLengthProbe");function o(t,e,r,n,i){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var t=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),e=this;return t.on("end",(function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),t},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,r){"use strict";var n=t("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,r){"use strict";var n=t("./utils"),i=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==n.getTypeOf(t)?function(t,e,r,n){var s=i,a=n+r;t^=-1;for(var o=n;o>>8^s[255&(t^e[o])];return-1^t}(0|e,t,t.length,0):function(t,e,r,n){var s=i,a=n+r;t^=-1;for(var o=n;o>>8^s[255&(t^e.charCodeAt(o))];return-1^t}(0|e,t,t.length,0):0}},{"./utils":32}],5:[function(t,e,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){"use strict";var n=null;n="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:n}},{lie:37}],7:[function(t,e,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=t("pako"),s=t("./utils"),a=t("./stream/GenericWorker"),o=n?"uint8array":"array";function h(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(t){return new h("Deflate",t)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,r){"use strict";function n(t,e){var r,n="";for(r=0;r>>=8;return n}function i(t,e,r,i,a,l){var f,c,d=t.file,p=t.compression,m=l!==o.utf8encode,_=s.transformTo("string",l(d.name)),g=s.transformTo("string",o.utf8encode(d.name)),b=d.comment,v=s.transformTo("string",l(b)),y=s.transformTo("string",o.utf8encode(b)),w=g.length!==d.name.length,k=y.length!==b.length,x="",S="",z="",C=d.dir,A=d.date,E={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(E.crc32=t.crc32,E.compressedSize=t.compressedSize,E.uncompressedSize=t.uncompressedSize);var I=0;e&&(I|=8),m||!w&&!k||(I|=2048);var O=0,B=0;C&&(O|=16),"UNIX"===a?(B=798,O|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(d.unixPermissions,C)):(B=20,O|=function(t){return 63&(t||0)}(d.dosPermissions)),f=A.getUTCHours(),f<<=6,f|=A.getUTCMinutes(),f<<=5,f|=A.getUTCSeconds()/2,c=A.getUTCFullYear()-1980,c<<=4,c|=A.getUTCMonth()+1,c<<=5,c|=A.getUTCDate(),w&&(S=n(1,1)+n(h(_),4)+g,x+="up"+n(S.length,2)+S),k&&(z=n(1,1)+n(h(v),4)+y,x+="uc"+n(z.length,2)+z);var T="";return T+="\n\0",T+=n(I,2),T+=p.magic,T+=n(f,2),T+=n(c,2),T+=n(E.crc32,4),T+=n(E.compressedSize,4),T+=n(E.uncompressedSize,4),T+=n(_.length,2),T+=n(x.length,2),{fileRecord:u.LOCAL_FILE_HEADER+T+_+x,dirRecord:u.CENTRAL_FILE_HEADER+n(B,2)+T+n(v.length,2)+"\0\0\0\0"+n(O,4)+n(i,4)+_+x+v}}var s=t("../utils"),a=t("../stream/GenericWorker"),o=t("../utf8"),h=t("../crc32"),u=t("../signature");function l(t,e,r,n){a.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(l,a),l.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,a.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-n-1))/r:100}}))},l.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},l.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return u.DATA_DESCRIPTOR+n(t.crc32,4)+n(t.compressedSize,4)+n(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},l.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return n.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=i},{"../utils":32}],19:[function(t,e,r){"use strict";var n=t("./Uint8ArrayReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,r){"use strict";var n=t("./DataReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},i.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},i.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},i.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./DataReader":18}],21:[function(t,e,r){"use strict";var n=t("./ArrayReader");function i(t){n.call(this,t)}t("../utils").inherits(i,n),i.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,r){"use strict";var n=t("../utils"),i=t("../support"),s=t("./ArrayReader"),a=t("./StringReader"),o=t("./NodeBufferReader"),h=t("./Uint8ArrayReader");e.exports=function(t){var e=n.getTypeOf(t);return n.checkSupport(e),"string"!==e||i.uint8array?"nodebuffer"===e?new o(t):i.uint8array?new h(n.transformTo("uint8array",t)):new s(n.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,r){"use strict";var n=t("./GenericWorker"),i=t("../utils");function s(t){n.call(this,"ConvertWorker to "+t),this.destType=t}i.inherits(s,n),s.prototype.processChunk=function(t){this.push({data:i.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,r){"use strict";var n=t("./GenericWorker"),i=t("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,n),s.prototype.processChunk=function(t){this.streamInfo.crc32=i(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,r){"use strict";var n=t("../utils"),i=t("./GenericWorker");function s(t){i.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}n.inherits(s,i),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}i.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,r){"use strict";var n=t("../utils"),i=t("./GenericWorker");function s(t){i.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then((function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=n.getTypeOf(t),e.isPaused||e._tickAndRepeat()}),(function(t){e.error(t)}))}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,r){"use strict";function n(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r "+t:t}},e.exports=n},{}],29:[function(t,r,n){"use strict";var i=t("../utils"),s=t("./ConvertWorker"),a=t("./GenericWorker"),o=t("../base64"),h=t("../support"),u=t("../external"),l=null;if(h.nodestream)try{l=t("../nodejs/NodejsStreamOutputAdapter")}catch(t){}function f(t,r){return new u.Promise((function(n,s){var a=[],h=t._internalType,u=t._outputType,l=t._mimeType;t.on("data",(function(t,e){a.push(t),r&&r(e)})).on("error",(function(t){a=[],s(t)})).on("end",(function(){try{var t=function(t,e,r){switch(t){case"blob":return i.newBlob(i.transformTo("arraybuffer",e),r);case"base64":return o.encode(e);default:return i.transformTo(t,e)}}(u,function(t,r){var n,i=0,s=null,a=0;for(n=0;n>>6:(r<65536?e[a++]=224|r>>>12:(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63),e[a++]=128|r>>>6&63),e[a++]=128|63&r);return e}(t)},r.utf8decode=function(t){return i.nodebuffer?n.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,r,i,s,a=t.length,h=new Array(2*a);for(e=r=0;e>10&1023,h[r++]=56320|1023&i)}return h.length!==r&&(h.subarray?h=h.subarray(0,r):h.length=r),n.applyFromCharCode(h)}(t=n.transformTo(i.uint8array?"uint8array":"array",t))},n.inherits(u,a),u.prototype.processChunk=function(t){var e=n.transformTo(i.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var s=e;(e=new Uint8Array(s.length+this.leftOver.length)).set(this.leftOver,0),e.set(s,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var a=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0||0===r?e:r+o[t[r]]>e?r:e}(e),h=e;a!==e.length&&(i.uint8array?(h=e.subarray(0,a),this.leftOver=e.subarray(a,e.length)):(h=e.slice(0,a),this.leftOver=e.slice(a,e.length))),this.push({data:r.utf8decode(h),meta:t.meta})},u.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=u,n.inherits(l,a),l.prototype.processChunk=function(t){this.push({data:r.utf8encode(t.data),meta:t.meta})},r.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,r){"use strict";var n=t("./support"),i=t("./base64"),s=t("./nodejsUtils"),a=t("./external");function o(t){return t}function h(t,e){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var e,r,n,i=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4>>6:(r<65536?e[a++]=224|r>>>12:(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63),e[a++]=128|r>>>6&63),e[a++]=128|63&r);return e},r.buf2binstring=function(t){return h(t,t.length)},r.binstring2buf=function(t){for(var e=new n.Buf8(t.length),r=0,i=e.length;r>10&1023,u[n++]=56320|1023&i)}return h(u,n)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0||0===r?e:r+a[t[r]]>e?r:e}},{"./common":41}],43:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){for(var i=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var s=n,a=i+r;t^=-1;for(var o=i;o>>8^s[255&(t^e[o])];return-1^t}},{}],46:[function(t,e,r){"use strict";var n,i=t("../utils/common"),s=t("./trees"),a=t("./adler32"),o=t("./crc32"),h=t("./messages"),u=0,l=4,f=0,c=-2,d=-1,p=4,m=2,_=8,g=9,b=286,v=30,y=19,w=2*b+1,k=15,x=3,S=258,z=S+x+1,C=42,A=113,E=1,I=2,O=3,B=4;function T(t,e){return t.msg=h[e],e}function R(t){return(t<<1)-(4t.avail_out&&(r=t.avail_out),0!==r&&(i.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){s._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,n,i=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,c=t.strstart+S,d=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(i>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,n,s,h,u,l,f,c,d,p=t.w_size;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=p+(p-z)){for(i.arraySet(t.window,t.window,p,p,0),t.match_start-=p,t.strstart-=p,t.block_start-=p,e=r=t.hash_size;n=t.head[--e],t.head[e]=p<=n?n-p:0,--r;);for(e=r=p;n=t.prev[--e],t.prev[e]=p<=n?n-p:0,--r;);s+=p}if(0===t.strm.avail_in)break;if(u=t.strm,l=t.window,f=t.strstart+t.lookahead,c=s,d=void 0,d=u.avail_in,c=x)for(h=t.strstart-t.insert,t.ins_h=t.window[h],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(n=s._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(i=t.strstart+t.lookahead-x,n=s._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=i&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===u)return E;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,N(t,!1),0===t.strm.avail_out))return E;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return E}return t.insert=0,e===l?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),E)})),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,_,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?c:(t.state.gzhead=e,f):c},r.deflate=function(t,e){var r,i,a,h;if(!t||!t.state||5>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=o(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=A);else{var d=_+(i.w_bits-8<<4)<<8;d|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(d|=32),d+=31-d%31,i.status=A,P(i,d),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(a=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>a&&(t.adler=o(t.adler,i.pending_buf,i.pending-a,a)),F(t),a=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>a&&(t.adler=o(t.adler,i.pending_buf,i.pending-a,a)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(t.adler=o(t.adler,i.pending_buf,i.pending-a,a)),F(t),a=i.pending,i.pending===i.pending_buf_size)){h=1;break}h=i.gzindexa&&(t.adler=o(t.adler,i.pending_buf,i.pending-a,a)),0===h&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(t.adler=o(t.adler,i.pending_buf,i.pending-a,a)),F(t),a=i.pending,i.pending===i.pending_buf_size)){h=1;break}h=i.gzindexa&&(t.adler=o(t.adler,i.pending_buf,i.pending-a,a)),0===h&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=A)):i.status=A),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,f}else if(0===t.avail_in&&R(e)<=R(r)&&e!==l)return T(t,-5);if(666===i.status&&0!==t.avail_in)return T(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==u&&666!==i.status){var p=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===u)return E;break}if(t.match_length=0,r=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return E}return t.insert=0,e===l?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?E:I}(i,e):3===i.strategy?function(t,e){for(var r,n,i,a,o=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===u)return E;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=s._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return E}return t.insert=0,e===l?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?E:I}(i,e):n[i.level].func(i,e);if(p!==O&&p!==B||(i.status=666),p===E||p===O)return 0===t.avail_out&&(i.last_flush=-1),f;if(p===I&&(1===e?s._tr_align(i):5!==e&&(s._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,f}return e!==l?f:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===o&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),d=new i.Buf8(r.w_size),i.arraySet(d,e,p-r.w_size,r.w_size,0),e=d,p=r.w_size),h=t.avail_in,u=t.next_in,l=t.input,t.avail_in=p,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(n=r.strstart,s=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,t.next_in=n,t.next_out=s,t.avail_in=n>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function _(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function g(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=c,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new n.Buf32(d),e.distcode=e.distdyn=new n.Buf32(p),e.sane=1,e.back=-1,l):f}function b(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,g(t)):f}function v(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15=a.wsize?(n.arraySet(a.window,e,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i<(s=a.wsize-a.wnext)&&(s=i),n.arraySet(a.window,e,r-i,s,a.wnext),(i-=s)?(n.arraySet(a.window,e,r-i,i,0),a.wnext=i,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=s(r.check,j,2,0),w=y=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&y)<<8)+(y>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&y)){t.msg="unknown compression method",r.mode=30;break}if(w-=4,F=8+(15&(y>>>=4)),0===r.wbits)r.wbits=F;else if(F>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(j[0]=255&y,j[1]=y>>>8&255,r.check=s(r.check,j,2,0)),w=y=0,r.mode=3;case 3:for(;w<32;){if(0===b)break t;b--,y+=d[_++]<>>8&255,j[2]=y>>>16&255,j[3]=y>>>24&255,r.check=s(r.check,j,4,0)),w=y=0,r.mode=4;case 4:for(;w<16;){if(0===b)break t;b--,y+=d[_++]<>8),512&r.flags&&(j[0]=255&y,j[1]=y>>>8&255,r.check=s(r.check,j,2,0)),w=y=0,r.mode=5;case 5:if(1024&r.flags){for(;w<16;){if(0===b)break t;b--,y+=d[_++]<>>8&255,r.check=s(r.check,j,2,0)),w=y=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(b<(C=r.length)&&(C=b),C&&(r.head&&(F=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,d,_,C,F)),512&r.flags&&(r.check=s(r.check,d,C,_)),b-=C,_+=C,r.length-=C),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===b)break t;for(C=0;F=d[_+C++],r.head&&F&&r.length<65536&&(r.head.name+=String.fromCharCode(F)),F&&C>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;w<32;){if(0===b)break t;b--,y+=d[_++]<>>=7&w,w-=7&w,r.mode=27;break}for(;w<3;){if(0===b)break t;b--,y+=d[_++]<>>=1)){case 0:r.mode=14;break;case 1:if(S(r),r.mode=20,6!==e)break;y>>>=2,w-=2;break t;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}y>>>=2,w-=2;break;case 14:for(y>>>=7&w,w-=7&w;w<32;){if(0===b)break t;b--,y+=d[_++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&y,w=y=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(C=r.length){if(b>>=5,w-=5,r.ndist=1+(31&y),y>>>=5,w-=5,r.ncode=4+(15&y),y>>>=4,w-=4,286>>=3,w-=3}for(;r.have<19;)r.lens[Z[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,U={bits:r.lenbits},N=o(0,r.lens,0,19,r.lencode,0,r.work,U),r.lenbits=U.bits,N){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,B=65535&L,!((I=L>>>24)<=w);){if(0===b)break t;b--,y+=d[_++]<>>=I,w-=I,r.lens[r.have++]=B;else{if(16===B){for(P=I+2;w>>=I,w-=I,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}F=r.lens[r.have-1],C=3+(3&y),y>>>=2,w-=2}else if(17===B){for(P=I+3;w>>=I)),y>>>=3,w-=3}else{for(P=I+7;w>>=I)),y>>>=7,w-=7}if(r.have+C>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;C--;)r.lens[r.have++]=F}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,U={bits:r.lenbits},N=o(h,r.lens,0,r.nlen,r.lencode,0,r.work,U),r.lenbits=U.bits,N){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,U={bits:r.distbits},N=o(u,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,U),r.distbits=U.bits,N){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=b&&258<=v){t.next_out=g,t.avail_out=v,t.next_in=_,t.avail_in=b,r.hold=y,r.bits=w,a(t,x),g=t.next_out,p=t.output,v=t.avail_out,_=t.next_in,d=t.input,b=t.avail_in,y=r.hold,w=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;O=(L=r.lencode[y&(1<>>16&255,B=65535&L,!((I=L>>>24)<=w);){if(0===b)break t;b--,y+=d[_++]<>T)])>>>16&255,B=65535&L,!(T+(I=L>>>24)<=w);){if(0===b)break t;b--,y+=d[_++]<>>=T,w-=T,r.back+=T}if(y>>>=I,w-=I,r.back+=I,r.length=B,0===O){r.mode=26;break}if(32&O){r.back=-1,r.mode=12;break}if(64&O){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&O,r.mode=22;case 22:if(r.extra){for(P=r.extra;w>>=r.extra,w-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;O=(L=r.distcode[y&(1<>>16&255,B=65535&L,!((I=L>>>24)<=w);){if(0===b)break t;b--,y+=d[_++]<>T)])>>>16&255,B=65535&L,!(T+(I=L>>>24)<=w);){if(0===b)break t;b--,y+=d[_++]<>>=T,w-=T,r.back+=T}if(y>>>=I,w-=I,r.back+=I,64&O){t.msg="invalid distance code",r.mode=30;break}r.offset=B,r.extra=15&O,r.mode=24;case 24:if(r.extra){for(P=r.extra;w>>=r.extra,w-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===v)break t;if(C=x-v,r.offset>C){if((C=r.offset-C)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}A=C>r.wnext?(C-=r.wnext,r.wsize-C):r.wnext-C,C>r.length&&(C=r.length),E=r.window}else E=p,A=g-r.offset,C=r.length;for(vb?(y=U[P+f[S]],R[D+f[S]]):(y=96,0),d=1<>I)+(p-=d)]=v<<24|y<<16|w|0,0!==p;);for(d=1<>=1;if(0!==d?(T&=d-1,T+=d):T=0,S++,0==--F[x]){if(x===C)break;x=e[r+f[S]]}if(A>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>m-r?(t.bi_buf|=e<>m-t.bi_valid,t.bi_valid+=r-m):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var n,i,s=new Array(p+1),a=0;for(n=1;n<=p;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=e;i++){var o=t[2*i+1];0!==o&&(t[2*i]=j(s[o]++,o))}}function W(t){var e;for(e=0;e>1;1<=r;r--)G(t,s,r);for(i=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),n=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=n,s[2*i]=s[2*r]+s[2*n],t.depth[i]=(t.depth[r]>=t.depth[n]?t.depth[r]:t.depth[n])+1,s[2*r+1]=s[2*n+1]=i,t.heap[1]=i++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,n,i,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,c=e.stat_desc.extra_bits,m=e.stat_desc.extra_base,_=e.stat_desc.max_length,g=0;for(s=0;s<=p;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r>=7;n>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return i;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return s;for(e=32;e>>3,(o=t.static_len+3+7>>>3)<=a&&(a=o)):a=o=r+5,r+4<=a&&-1!==e?q(t,e,r,n):4===t.strategy||o===a?(P(t,2+(n?1:0),3),K(t,z,C)):(P(t,4+(n?1:0),3),function(t,e,r,n){var i;for(P(t,e-257,5),P(t,r-1,5),P(t,n-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(E[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,g,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{"../utils/common":41}],53:[function(t,e,r){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,i){(function(t){!function(t,e){"use strict";if(!t.setImmediate){var r,i,s,a,o=1,h={},u=!1,l=t.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(t);f=f&&f.setTimeout?f:t,r="[object process]"==={}.toString.call(t.process)?function(t){n.nextTick((function(){d(t)}))}:function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=r,e}}()?(a="setImmediate$"+Math.random()+"$",t.addEventListener?t.addEventListener("message",p,!1):t.attachEvent("onmessage",p),function(e){t.postMessage(a+e,"*")}):t.MessageChannel?((s=new MessageChannel).port1.onmessage=function(t){d(t.data)},function(t){s.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(i=l.documentElement,function(t){var e=l.createElement("script");e.onreadystatechange=function(){d(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):function(t){setTimeout(d,0,t)},f.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function n(t){"string"!==typeof t&&(t+="");var e,r=0,n=-1,i=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!i){r=e+1;break}}else-1===n&&(i=!1,n=e+1);return-1===n?"":t.slice(r,n)}function i(t,e){if(t.filter)return t.filter(e);for(var r=[],n=0;n=-1&&!n;s--){var a=s>=0?arguments[s]:t.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(e=a+"/"+e,n="/"===a.charAt(0))}return e=r(i(e.split("/"),(function(t){return!!t})),!n).join("/"),(n?"/":"")+e||"."},e.normalize=function(t){var n=e.isAbsolute(t),a="/"===s(t,-1);return t=r(i(t.split("/"),(function(t){return!!t})),!n).join("/"),t||n||(t="."),t&&a&&(t+="/"),(n?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(i(t,(function(t,e){if("string"!==typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,r){function n(t){for(var e=0;e=0;r--)if(""!==t[r])break;return e>r?[]:t.slice(e,r-e+1)}t=e.resolve(t).substr(1),r=e.resolve(r).substr(1);for(var i=n(t.split("/")),s=n(r.split("/")),a=Math.min(i.length,s.length),o=a,h=0;h=1;--s)if(e=t.charCodeAt(s),47===e){if(!i){n=s;break}}else i=!1;return-1===n?r?"/":".":r&&1===n?"/":t.slice(0,n)},e.basename=function(t,e){var r=n(t);return e&&r.substr(-1*e.length)===e&&(r=r.substr(0,r.length-e.length)),r},e.extname=function(t){"string"!==typeof t&&(t+="");for(var e=-1,r=0,n=-1,i=!0,s=0,a=t.length-1;a>=0;--a){var o=t.charCodeAt(a);if(47!==o)-1===n&&(i=!1,n=a+1),46===o?-1===e?e=a:1!==s&&(s=1):-1!==e&&(s=-1);else if(!i){r=a+1;break}}return-1===e||-1===n||0===s||1===s&&e===n-1&&e===r+1?"":t.slice(e,n)};var s="b"==="ab".substr(-1)?function(t,e,r){return t.substr(e,r)}:function(t,e,r){return e<0&&(e=t.length+e),t.substr(e,r)}}).call(this,r("4362"))}}]); +//# sourceMappingURL=chunk-48b5b2a0.3db5a0aa.js.map \ No newline at end of file diff --git a/dist/js/chunk-a06ef50c.1caef24f.js b/dist/js/chunk-a06ef50c.1caef24f.js new file mode 100644 index 0000000000000000000000000000000000000000..b230b496d76902917030bb5b191c4837b4b8d25e --- /dev/null +++ b/dist/js/chunk-a06ef50c.1caef24f.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-a06ef50c"],{1773:function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"e",(function(){return l})),n.d(t,"f",(function(){return c})),n.d(t,"c",(function(){return i})),n.d(t,"d",(function(){return u})),n.d(t,"b",(function(){return f}));var r=n("27e2"),o=n("43fb"),a=n("6977");function s(e,t){let n=t;for(;;){if(!Array.isArray(n))break;{if(0===n.length)break;n=Object(o["i"])(e,n);const t=Object(r["d"])(n[0]);if(!t)break;{const r=Object(o["h"])(e,t,n);if(!r)break;n=r.fn(r.actualArgs)}}Object(a["d"])(e)}return n}function l(e,t){if(!Array.isArray(t)||!Object(r["d"])(t[0],e.config.reservedNames.quote))throw new Error("[SX] stripQuote: token is not quoted.");return t[1]}function c(e,t){return Array.isArray(t)&&Object(r["d"])(t[0],e.config.reservedNames.quote)?t[1]:t}function i(e){return function(){return Object(o["e"])(e)}}function u(e,t){return Object(a["b"])("(compiler)resolveValueSymbol_dynamic",t),function(){return Object(o["j"])(e,{symbol:t})}}function f(e){return function(t){return Object(a["b"])(e,t)}}},"27e2":function(e,t,n){"use strict";function r(e,t){return[{symbol:e.config.reservedNames.quote},t]}function o(e,t){if(Array.isArray(t)&&0=0;n--){const o=Array.isArray(t[n])&&Object(r["d"])(t[n][0],e.config.reservedNames.splice);o&&(t=t.slice(0,n).concat(t[n][1],t.slice(n+1)))}return t}function c(e,t,n){const r=e.macroMap.get(t.symbol);let o=null;if(r){let a=r;const s=n.slice(1);while(a){if(!a.formalArgs)return{fn:a.fn(e,t.symbol),actualArgs:n};{const r=y(e,t.symbol,a.formalArgs,Boolean(a.lastIsSpread),s);if(!r.error)return{fn:a.fn(e,t.symbol,r.formalArgs),actualArgs:n.slice(0,1).concat(r.actualArgs)};o=r.error,a=a.next}}if(o)throw new Error(o)}return!1}function i(e,t){if("function"===typeof t)return t;const n=e.funcMap.get(t.symbol);if(n)return n.fn(e,t.symbol);{const n=f(e,t);if("function"===typeof n)return n;if(e.config.funcSymbolResolverFallback)return e.config.funcSymbolResolverFallback(e,t.symbol);if(e.config.raiseOnUnresolvedSymbol)throw new Error(`[SX] resolveFunctionSymbol: Unresolved symbol: ${t.symbol}.`);return t.symbol}}function u(e,t,n){for(let o=e.scopes.length-1;o>0;o--){const n=e.scopes[o];if(n&&Object.prototype.hasOwnProperty.call(n.scope,t.symbol))return n.scope;if(n.capturedScopes&&Object.prototype.hasOwnProperty.call(n.capturedScopes,t.symbol))return n.capturedScopes[t.symbol];if(!n.isBlockLocal)break}const r=d(e);return Object.prototype.hasOwnProperty.call(r.scope,t.symbol)?r.scope:n?null:_(e).scope}function f(e,t){const n=u(e,t,!0);if(n)return n[t.symbol];const r=e.symbolMap.get(t.symbol);if(r)return r.fn(e,t.symbol);if(e.config.valueSymbolResolverFallback)return e.config.valueSymbolResolverFallback(e,t.symbol);if(e.config.raiseOnUnresolvedSymbol)throw new Error(`[SX] resolveValueSymbol: Unresolved symbol: ${t.symbol}.`);return t.symbol}function m(e,t){const n={};for(const r of t){const t=u(e,r,!0);if(null===t)throw new Error("[SX] collectCapturedVariables: Unresolved symbols "+r);Object(o["c"])("collectCapturedVariables",n,r.symbol),n[r.symbol]=t}return n}function b(e){const t=[];for(let n=e.scopes.length-1;n>0;n--){const r=e.scopes[n];if(r.capturedScopes&&t.unshift(r.capturedScopes),!r.isBlockLocal)break}return t.length>0?Object.assign({},...t):void 0}function $(e,t,n,r){e.scopes.push({isBlockLocal:n,scope:t,capturedScopes:r})}function p(e){if(e.scopes.length<2)throw new Error("[SX] uninstallScope: Unable to pop stack.");return e.scopes.pop()}function _(e){return e.scopes[e.scopes.length-1]}function d(e){return e.scopes[0]}function y(e,t,n,o,a){if(n=n.slice(0),a=a.slice(0),a.length+(o?1:0)=0;s--){let e=n[s].symbol;if(e.startsWith("!")){if(n[s].symbol=n[s].symbol.slice(1),e=n[s].symbol,!Object(r["d"])(a[s]))return{error:`[SX] macro call (${t}): Actual arg(${s}: ${e}) is not symbol.`}}else if(e.startsWith("<")&&e.endsWith(">")){if(n[s].symbol=n[s].symbol.slice(1,-1),e=n[s].symbol,!Object(r["d"])(a[s],e))return{error:`[SX] macro call (${t}): Actual arg(${s}: ${e}) is not expected symbol.`};n=n.slice(0,s).concat(n.slice(s+1)),a=a.slice(0,s).concat(a.slice(s+1))}else{const o=e.lastIndexOf(":");if(0({symbol:`${n}_$i${t}_${e.symbol}`}));return[[{symbol:e.config.reservedNames.until},o[1],[{symbol:e.config.reservedNames.let},[...a],...r,...o[3].slice(1).map((t,n)=>[{symbol:e.config.reservedNames.set},a[n],t]),...a.map((n,r)=>[{symbol:e.config.reservedNames.set},t[r],n])]],...r,o[2]]}}return n}function j(e,t){if(Object(o["d"])(e),null===t||void 0===t)return t;let n=t;for(;;){if(!Array.isArray(n))break;{if(0===n.length)return n;n=l(e,n);const t=Object(r["d"])(n[0]);if(!t)break;{const r=c(e,t,n);if(!r)break;n=r.fn(r.actualArgs)}}Object(o["d"])(e)}if(Array.isArray(n)){if(n=n.slice(0),0l([Object(_compile_ops_helpers__WEBPACK_IMPORTED_MODULE_3__["f"])(e,t)],0)).join(",")})`:e.funcMap.has(n.symbol)?(o[c.varsCount]=e.funcMap.get(n.symbol).fn(e,""),r+=`((_$_vars[${String(c.varsCount++)}])(${a.map(t=>l([Object(_compile_ops_helpers__WEBPACK_IMPORTED_MODULE_3__["f"])(e,t)],0)).join(",")}))`):c.varNames.has(n.symbol)?r+=`(${String(c.varNames.get(n.symbol))})(${a.map(t=>l([Object(_compile_ops_helpers__WEBPACK_IMPORTED_MODULE_3__["f"])(e,t)],0)).join(",")})`:(o[c.varsCount]=Object(_compile_ops_helpers__WEBPACK_IMPORTED_MODULE_3__["d"])(e,n.symbol),r+=`((_$_vars[${String(c.varsCount++)}])()(${a.map(t=>l([Object(_compile_ops_helpers__WEBPACK_IMPORTED_MODULE_3__["f"])(e,t)],0)).join(",")}))`)}else switch(typeof t[0]){case"function":o[c.varsCount]=t[0],r+=`((_$_vars[${String(c.varsCount++)}])(${t.slice(1).map((t,n,r)=>l([Object(_compile_ops_helpers__WEBPACK_IMPORTED_MODULE_3__["f"])(e,t)],0)).join(",")}))`;break;default:throw new Error(`[SX] compileToken: First item of list is not a function: ${JSON.stringify(t[0])}.`)}else r+="([])";else r+=s(a)}else r+="([])";else r+=s(a);return r}const c={_$_vars:o,varsCount:1,varNames:new Map,varNamesCount:0,varDefs:"var x0;",ops:new Map,makeScope:a,compileToken:l};Object(_compile_ops__WEBPACK_IMPORTED_MODULE_4__["a"])(e,c);const i=c.ops;e.config.enableTailCallOptimization&&(r=Object(_evaluate__WEBPACK_IMPORTED_MODULE_1__["g"])(e,t,r)),c.varNames.set(e.config.reservedNames.thiz,"(this===(Function('return this')())?null:(this===void 0?null:this))");const u=Object(_evaluate__WEBPACK_IMPORTED_MODULE_1__["c"])(e);if(u)for(const b in u)Object.prototype.hasOwnProperty.call(u,b)&&(o[c.varsCount++]=b,o[c.varsCount]=u[b],c.varNames.set(b,`(_$_vars[${String(c.varsCount)}][_$_vars[${String(c.varsCount-1)}]])`),c.varsCount++);const f=""+t.map((e,r)=>(c.varNames.set(t[r].symbol,"a"+r),`${n&&r===t.length-1?"...":""}a${r}`)).join(","),m=`return(${r.map((e,t)=>l(r,t)).join(",")})`;return`(function(${f}){"strict";${c.varDefs}${m}})`}function evalCompiledLambda(_$_state,_$_vars,code){return _$_vars[0]=eval(code),_$_vars[0]}function compileLambda(e,t,n,r){const o=[];return evalCompiledLambda(e,o,compileCore(e,t,n,r,o))}},c541:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return a}));class r extends Error{constructor(e){super(e)}}class o extends r{constructor(){super("[SX] evaluate: The maximum count of evaluations has been exceeded.")}}class a extends r{constructor(e){super(`[SX] ${e}: Unexpected termination of script.`)}}},d8d6:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n("27e2"),o=n("6977"),a=n("1773");function s(e,t){const{_$_vars:n,ops:s,makeScope:l,compileToken:c}=t;s.set(e.config.reservedNames.quote,(function(e,r){let o="";return n[t.varsCount]=e[1],o+=`(_$_vars[${String(t.varsCount++)}])`,o})),s.set(e.config.reservedNames.self,(function(t,n){let r="";return r+=`((_$_vars[0])(${n.map(t=>c([Object(a["f"])(e,t)],0)).join(",")}))`,r})),s.set("$__if",(function(t,n){let r="";return Object(o["a"])("compileToken:$__if",n,2,3),r+=`(${c(t,1)}?(${c([Object(a["e"])(e,t[2])],0)}):(${c([Object(a["e"])(e,t[3])],0)}))`,r})),s.set("$__if-null",(function(t,n){let r="";return Object(o["a"])("compileToken:$__if-null",n,2,2),r+=`((()=>{let _$_rv=${c(t,1)};return _$_rv?_$_rv:(${c([Object(a["e"])(e,t[2])],0)}});})())`,r})),s.set("$__cond",(function(t,n){let r="";Object(o["a"])("compileToken:$__cond",n,1),r+="(";for(let o=0;o{let _$_rv=null;while(${c([Object(a["e"])(e,t[1])],0)}){_$_rv=${t.slice(2).map(t=>c([Object(a["e"])(e,t)],0)).join(",")}}return _$_rv})())`,r})),s.set("$__do-while",(function(t,n){let r="";return Object(o["a"])("compileToken:$__do-until",n,1),r+=`((()=>{let _$_rv=null;do{_$_rv=${t.slice(2).map(t=>c([Object(a["e"])(e,t)],0)).join(",")}}}while(${c([Object(a["e"])(e,t[1])],0)})return _$_rv)())`,r})),s.set("$__until",(function(t,n){let r="";return Object(o["a"])("compileToken:$__until",n,1),r+=`((()=>{let _$_rv=null;while(!${c([Object(a["e"])(e,t[1])],0)}){_$_rv=${t.slice(2).map(t=>c([Object(a["e"])(e,t)],0)).join(",")}}return _$_rv})())`,r})),s.set("$__do-until",(function(t,n){let r="";return Object(o["a"])("compileToken:$__do-until",n,1),r+=`((()=>{let _$_rv=null;do{_$_rv=${t.slice(2).map(t=>c([Object(a["e"])(e,t)],0)).join(",")}}}while(!${c([Object(a["e"])(e,t[1])],0)})return _$_rv)())`,r})),s.set("$__repeat",(function(n,s){let i="";if(Object(o["a"])("compileToken:$__repeat",s,2),!Object(r["d"])(s[0]))throw new Error("[SX] compileToken: $__repeat : args[0] is not symbol.");return l(()=>{const r="v"+t.varNamesCount++;t.varNames.set(s[0].symbol,r),i+=`(((_$_n)=>{let _$_rv=null;for(let ${r}=0;${r}<_$_n;${r}++){_$_rv=${n.slice(2).map(t=>c([Object(a["e"])(e,t)],0)).join(",")}}return _$_rv})(${c(s,1)}))`}),i})),s.set("$__for",(function(n,s){let i="";if(Object(o["a"])("compileToken:$__for",s,2),!Object(r["d"])(s[0]))throw new Error("[SX] compileToken: $__for : args[0] is not symbol.");return l(()=>{const r="v"+t.varNamesCount++;t.varNames.set(s[0].symbol,r),i+=`(((_$_l)=>{let _$_rv=null;for(const ${r} of _$_l){_$_rv=${n.slice(2).map(t=>c([Object(a["e"])(e,t)],0)).join(",")}}return _$_rv})(${c(s,1)}))`}),i})),s.set("$__scope",(function(n,s){let i="";if(Object(o["a"])("compileToken:$__scope",s,2),!Array.isArray(n[3]))throw new Error("[SX] compileToken: $__scope : args[2] is not array.");return l(()=>{for(const s of Object(a["e"])(e,n[3])){let e="";if(Array.isArray(s)){if(s.length<1)throw new Error("[SX] compileToken: $__scope : args[0][?] is too short.");if(!Object(r["d"])(s[0]))throw new Error("[SX] compileToken: $__scope : args[0][?][0] is not symbol.");e=s[0].symbol,i+=`(${"v"+t.varNamesCount}=${c(s,1)})`}else{if(!Object(r["d"])(s))throw new Error("[SX] compileToken: $__scope : args[0][?] is not symbol.");e=s.symbol}t.varDefs+=`var v${t.varNamesCount}=void 0;`,t.varNames.set(e,"v"+t.varNamesCount++)}const o=""+n.slice(4).map(t=>c([Object(a["e"])(e,t)],0)).join(",");i+=n[2]?`[${o}]`:`(${o})`}),i})),s.set("$__try",(function(r,s){let i="";return Object(o["a"])("compileToken:$__try",s,1,2),i+=`((()=>{try{${c([Object(a["e"])(e,r[1])],0)}}catch(e${t.varNamesCount}){let e${t.varNamesCount+1}=(_$_vars[${String(t.varsCount)}])();`,n[t.varsCount++]=Object(a["c"])(e),l(()=>{t.varNames.set("$error","e"+t.varNamesCount++),t.varNames.set("$parent","e"+t.varNamesCount++),i+=c([Object(a["e"])(e,r[2])],0)+"}})())"}),i})),s.set(e.config.reservedNames.raise,(function(t,n){let r="";return r+=`((()=>{throw ${c([Object(a["f"])(e,t[1])],0)}})())`,r})),s.set("$boolean",(function(e,t){let n="";return Object(o["a"])("compileToken:$boolean",t,1,1),n+=`((x0=${c(t,0)}),(Array.isArray(x0)&&x0.length===0?false:boolean(x0)))`,n})),s.set("$__get",(function(s,l){let i="";Object(o["a"])("compileToken:$__get",l,1);const u=Object(a["e"])(e,s[1]),f=Object(r["d"])(u)?u.symbol:"string"===typeof u?u:null;if("string"!==typeof f)throw new Error(`[SX] compileToken: $__get : operand is not symbol: ${JSON.stringify(s[1])}.`);let m="";t.varNames.has(f)?m=t.varNames.get(f):(n[t.varsCount]=Object(a["d"])(e,f),m=`_$_vars[${String(t.varsCount++)}]`);const b=e=>(n[t.varsCount]=e,`_$_vars[${String(t.varsCount++)}]`);return i+=`((${m})${s.slice(2).map((e,t,n)=>`[${Object(r["d"])(n[t])?b(n[t].symbol):c(n,t)}]`).join("")})`,i})),s.set("$__let",(function(n,s){let l="";Object(o["a"])("compileToken:$__let",s,2,2);const i=Object(a["e"])(e,n[1]),u=Object(r["d"])(i)?i.symbol:"string"===typeof i?i:null;if("string"!==typeof u)throw new Error(`[SX] compileToken: $__let : operand is not rvalue: ${JSON.stringify(n[1])}.`);return t.varNames.has(u)||(t.varDefs+=`var v${t.varNamesCount}=void 0;`,t.varNames.set(u,"v"+t.varNamesCount++)),l+=`(${t.varNames.get(u)}=${c(n,2)})`,l})),s.set("$__set",(function(s,l){let i="";Object(o["a"])("compileToken:$__set",l,2);const u=Object(a["e"])(e,s[1]),f=Object(r["d"])(u)?u.symbol:"string"===typeof u?u:Array.isArray(u)?Object(r["d"])(u[0])?u[0].symbol:"string"===typeof u[0]?u[0]:null:null;if("string"!==typeof f)throw new Error(`[SX] compileToken: $__set : operand is not rvalue: ${JSON.stringify(s[1])}.`);let m="";t.varNames.has(f)?m=t.varNames.get(f):(n[t.varsCount]=Object(a["d"])(e,f),m=`_$_vars[${String(t.varsCount++)}]`);const b=e=>(n[t.varsCount]=Object(o["b"])("compileToken:$__set",e),`_$_vars[${String(t.varsCount++)}]`);let $=!1,p="";const _=e=>($||(n[t.varsCount]=Object(a["b"])("compileToken:$__set"),p=String(t.varsCount++),$=!0),`(_$_vars[${p}](${e}))`);return i+=`((${m})${(Array.isArray(u)?u.slice(1):[]).map((e,t,n)=>`[${Object(r["d"])(n[t])?b(n[t].symbol):_(c(n,t))}]`).join("")}=${c(s,2)})`,i})),s.set(e.config.reservedNames.not,(function(e,t){let n="";return Object(o["a"])("compileToken:$not",t,1,1),n+=`(!${c(t,0)})`,n})),s.set("$__and",(function(t,n){let r="";return Object(o["a"])("compileToken:$__and",n,1),r+=`(${n.map(t=>c([Object(a["e"])(e,t)],0)).join("&&")})`,r})),s.set("$__or",(function(t,n){let r="";return Object(o["a"])("compileToken:$__or",n,1),r+=`(${n.map(t=>c([Object(a["e"])(e,t)],0)).join("||")})`,r})),s.set("===",(function(e,t){let n="";return Object(o["a"])("compileToken:===",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("===")})`,n})),s.set("!==",(function(e,t){let n="";return Object(o["a"])("compileToken:!==",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("!==")})`,n})),s.set("==",(function(e,t){let n="";return Object(o["a"])("compileToken:==",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("==")})`,n})),s.set("!=",(function(e,t){let n="";return Object(o["a"])("compileToken:!=",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("!=")})`,n})),s.set("<",(function(e,t){let n="";return Object(o["a"])("compileToken:<",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("<")})`,n})),s.set("<=",(function(e,t){let n="";return Object(o["a"])("compileToken:<=",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("<=")})`,n})),s.set(">",(function(e,t){let n="";return Object(o["a"])("compileToken:>",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join(">")})`,n})),s.set(">=",(function(e,t){let n="";return Object(o["a"])("compileToken:<=",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join(">=")})`,n})),s.set("$concat",(function(t,n){let a="";Object(o["a"])("compileToken:$concat",n,1);let s="";if(Array.isArray(n[0])&&Object(r["d"])(n[0][0],e.config.reservedNames.spread)){const e=c(n[0],1);s=`(${e}[0]).concat((${e}.length>1?${e}[1]:(typeof ${e}[0]==='string'?'':[])),`}else s=c(n,0)+".concat(";return a+=`(${s}${n.slice(1).map((e,t,n)=>c(n,t)).join(",")}))`,a})),s.set("+",(function(t,n){let a="";Object(o["a"])("compileToken:+",n,1);let s=!1;return n.map((t,n,o)=>{Array.isArray(t)&&Object(r["d"])(t[0],e.config.reservedNames.spread)&&(s=!0)}),a+=s?`((()=>{let _$_rv=[];${n.map((e,t,n)=>`_$_rv.push(${c(n,t)})`).join(";")};return _$_rv.reduce((x,y)=>x+y);})())`:`(${n.map((e,t,n)=>c(n,t)).join("+")})`,a})),s.set("-",(function(t,n){let a="";Object(o["a"])("compileToken:-",n,1);let s=!1;return n.map((t,n,o)=>{Array.isArray(t)&&Object(r["d"])(t[0],e.config.reservedNames.spread)&&(s=!0)}),a+=s?`((()=>{let _$_rv=[];${n.map((e,t,n)=>`_$_rv.push(${c(n,t)})`).join(";")};return (_$_rv.length>1?(_$_rv.reduce((x,y)=>x-y)):(_$_rv.length>0?-_$_rv[0]:NaN));})())`:`(${t.length>2?n.map((e,t,n)=>c(n,t)).join("-"):`-(${String(c(t,1))})`})`,a})),s.set("*",(function(t,n){let a="";Object(o["a"])("compileToken:*",n,2);let s=!1;return n.map((t,n,o)=>{Array.isArray(t)&&Object(r["d"])(t[0],e.config.reservedNames.spread)&&(s=!0)}),a+=s?`((()=>{let _$_rv=[];${n.map((e,t,n)=>`_$_rv.push(${c(n,t)})`).join(";")};return _$_rv.reduce((x,y)=>x*y);})())`:`(${n.map((e,t,n)=>c(n,t)).join("*")})`,a})),s.set("**",(function(t,n){let a="";Object(o["a"])("compileToken:**",n,2);let s=!1;return n.map((t,n,o)=>{Array.isArray(t)&&Object(r["d"])(t[0],e.config.reservedNames.spread)&&(s=!0)}),a+=s?`((()=>{let _$_rv=[];${n.map((e,t,n)=>`_$_rv.push(${c(n,t)})`).join(";")};return _$_rv.reduce((x,y)=>x**y);})())`:`(${n.map((e,t,n)=>c(n,t)).join("**")})`,a})),s.set("/",(function(t,n){let a="";Object(o["a"])("compileToken:/",n,2);let s=!1;return n.map((t,n,o)=>{Array.isArray(t)&&Object(r["d"])(t[0],e.config.reservedNames.spread)&&(s=!0)}),a+=s?`((()=>{let _$_rv=[];${n.map((e,t,n)=>`_$_rv.push(${c(n,t)})`).join(";")};return _$_rv.reduce((x,y)=>x/y);})())`:`(${n.map((e,t,n)=>c(n,t)).join("/")})`,a})),s.set("%",(function(t,n){let a="";Object(o["a"])("compileToken:%",n,2);let s=!1;return n.map((t,n,o)=>{Array.isArray(t)&&Object(r["d"])(t[0],e.config.reservedNames.spread)&&(s=!0)}),a+=s?`((()=>{let _$_rv=[];${n.map((e,t,n)=>`_$_rv.push(${c(n,t)})`).join(";")};return _$_rv.reduce((x,y)=>x%y);})())`:`(${n.map((e,t,n)=>c(n,t)).join("%")})`,a})),s.set("<<",(function(e,t){let n="";return Object(o["a"])("compileToken:<<",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("<<")})`,n})),s.set(">>",(function(e,t){let n="";return Object(o["a"])("compileToken:>>",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join(">>")})`,n})),s.set(">>>",(function(e,t){let n="";return Object(o["a"])("compileToken:>>>",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join(">>>")})`,n})),s.set("$bit-not",(function(e,t){let n="";return Object(o["a"])("compileToken:$bit-not",t,1,1),n+=`(~(${c(e,1)}))`,n})),s.set("$bit-and",(function(e,t){let n="";return Object(o["a"])("compileToken:$bit-and",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("&")})`,n})),s.set("$bit-or",(function(e,t){let n="";return Object(o["a"])("compileToken:$bit-or",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("|")})`,n})),s.set("$bit-xor",(function(e,t){let n="";return Object(o["a"])("compileToken:$bit-xor",t,2,2),n+=`(${t.map((e,t,n)=>c(n,t)).join("^")})`,n}))}},f587:function(e,t,n){"use strict";n.r(t),n.d(t,"FatalError",(function(){return r["a"]})),n.d(t,"MaxEvaluationCountError",(function(){return r["b"]})),n.d(t,"ScriptTerminationError",(function(){return r["c"]})),n.d(t,"quote",(function(){return o["f"]})),n.d(t,"isQuoted",(function(){return o["c"]})),n.d(t,"backquote",(function(){return o["a"]})),n.d(t,"isBackquoted",(function(){return o["b"]})),n.d(t,"wrapByUnquote",(function(){return o["i"]})),n.d(t,"isUnquoted",(function(){return o["e"]})),n.d(t,"spread",(function(){return o["h"]})),n.d(t,"splice",(function(){return o["g"]})),n.d(t,"isSymbol",(function(){return o["d"]})),n.d(t,"defaultReservedNames",(function(){return a})),n.d(t,"defaultConfig",(function(){return s})),n.d(t,"SExpression",(function(){return T})),n.d(t,"SExpressionAsync",(function(){return X})),n.d(t,"S",(function(){return x})),n.d(t,"L",(function(){return Qn})),n.d(t,"LS",(function(){return Zn})),n.d(t,"lisp",(function(){return er})),n.d(t,"L_async",(function(){return tr})),n.d(t,"LS_async",(function(){return nr})),n.d(t,"lisp_async",(function(){return rr})),n.d(t,"LM",(function(){return or})),n.d(t,"LM_async",(function(){return ar})),n.d(t,"LSX",(function(){return gr})),n.d(t,"LSX_async",(function(){return jr})),n.d(t,"runScriptTags",(function(){return Or})),n.d(t,"installCore",(function(){return St})),n.d(t,"installArithmetic",(function(){return Zt})),n.d(t,"installSequence",(function(){return Dn})),n.d(t,"installJsx",(function(){return yr})),n.d(t,"installConcurrent",(function(){return Yn})),n.d(t,"builtinOperators",(function(){return hr})),n.d(t,"builtinMacros",(function(){return vr})),n.d(t,"builtinSymbols",(function(){return wr}));var r=n("c541"),o=n("27e2");const a={eval:"$eval",quote:"$quote",backquote:"$backquote",unquote:"$unquote",spread:"$spread",splice:"$splice",car:"$car",cdr:"$cdr",cons:"$cons",atom:"$atom",eq:"$eq",list:"$list",let:"$clisp-let",lambda:"$lambda",self:"$self",defun:"$defun",thiz:"$this",if:"$if",cond:"$cond",while:"$while",doWhile:"$do-while",until:"$until",doUntil:"$do-until",get:"$get",defvar:"$clisp-defvar",setq:"$clisp-setq",set:"$set",call:"$call",not:"$not",and:"$and",or:"$or",isSymbol:"$is-symbol",gensym:"$gensym",raise:"$raise",catch:"$catch",Template:"Template"},s={raiseOnUnresolvedSymbol:!1,enableEvaluate:!0,enableHereDoc:!0,enableSpread:!0,enableSplice:!0,enableShorthands:!0,enableVerbatimStringLiteral:!0,enableTailCallOptimization:!0,enableRegExpMatchOperators:!0,enableCompilationOperators:!0,stripComments:!1,wrapExternalValue:!0,returnMultipleRoot:!1,maxEvalCount:0,reservedNames:a,symbols:[],macros:[],funcs:[]};function l(e){return"object"===typeof e&&Object.prototype.hasOwnProperty.call(e,"eof")}function c(e){return"string"===typeof e&&0===e.trim().length}function i(e){return"string"===typeof e&&/^[0-9\+\-]$/.test(e)}function u(e){return"string"===typeof e&&/^[0-9]$/.test(e)}function f(e){return"string"===typeof e&&!c(e)&&!i(e)}function m(e){return`line: ${e.line} / strings: ${e.index} / pos: ${e.pos} :${e.strings.length>e.index?e.strings[e.index].slice(e.pos,e.pos+20):""}`}function b(e,t,n){if(e.strings.length<=e.index)return{eof:!0};if(e.strings[e.index].length<=e.pos){if(!e.values||e.values.length<=e.index)return e.pos=0,e.index++,b(e);{const t={value:e.values[e.index]};return e.pos=0,e.index++,t}}if(t)for(const r of t){const t=e.strings[e.index].slice(e.pos,e.pos+r.length);if(t===r)return e.pos+=r.length,e.line+=t.split("\n").length-1,{eof:!1,eofSeq:r}}{let t=e.strings[e.index].slice(e.pos,e.pos+1);if(e.pos++,"\n"===t&&e.line++,!n&&"\\"===t){if(e.strings[e.index].length<=e.pos)throw new Error(`[SX] getChar: Invalid syntax at: ${m(e)}.`);switch(t=e.strings[e.index].slice(e.pos,e.pos+1),e.pos++,t){case"b":t="\b";break;case"t":t="\t";break;case"n":t="\n";break;case"v":t="\v";break;case"f":t="\f";break;case"r":t="\r";break;case"U":case"u":if("{"===e.strings[e.index].slice(e.pos,e.pos+1)){let n="";for(let t=0;t<6;t++){const r=e.strings[e.index].slice(e.pos+t,e.pos+1+t);if("}"===r){if(0===t)throw new Error(`[SX] getChar: Invalid syntax at: ${m(e)}.`);e.pos+=t;break}if(!/^[0-9A-Fa-f]{1}$/.test(n))throw new Error(`[SX] getChar: Invalid syntax at: ${m(e)}.`);n+=r}if("}"!==e.strings[e.index].slice(e.pos,e.pos+1))throw new Error(`[SX] getChar: Invalid syntax at: ${m(e)}.`);e.pos++,t=String.fromCodePoint(Number.parseInt(n,16))}else{const n=e.strings[e.index].slice(e.pos,e.pos+4);if(!/^[0-9A-Fa-f]{4}$/.test(n))throw new Error(`[SX] getChar: Invalid syntax at: ${m(e)}.`);e.pos+=4,t=String.fromCodePoint(Number.parseInt(n,16))}break}}return t}}function $(e,t,n,r){const o=e.index,a=e.pos,s=e.line,l=[];try{for(let o=0;o[e.name,e])),funcMap:new Map(e.funcs.map(e=>[e.name,e])),symbolMap:new Map(e.symbols.map(e=>[e.name,e])),config:e}}function k(e,t,n){return e.strings="string"===typeof t?[t]:t,e.values=n||[],e.index=0,e.pos=0,e.line=0,e.evalCount=0,e}function T(e){let t=e||Object.assign({},s),n={},r=[];const o=(e,n)=>{if(t.enableEvaluate)for(let t=0;t{const s=I(t,Object.assign({},n),e,a);return o(s,r.concat(A(s)))};return a.evaluateAST=e=>{const a=I(t,Object.assign({},n),"");return o(a,r.concat(e))},a.repl=()=>{const e=I(t,Object.assign({},n),"");o(e,r.slice(0));const a=(t,...n)=>(k(e,t,n),o(e,A(e)));return a.sync=a,a},a.setGlobals=e=>(n=Object.assign({},e||{}),a),a.appendGlobals=e=>(n=Object.assign({},n,e||{}),a),a.setStartup=(e,...o)=>{const s=I(t,Object.assign({},n),e,o);return r=A(s),a},a.setStartupAST=e=>(r=e,a),a.appendStartup=(e,...o)=>{const s=I(t,Object.assign({},n),e,o);return r=r.concat(A(s)),a},a.appendStartupAST=e=>(r=r.concat(e),a),a.install=e=>(t=e(t),a),a}function X(e){let t=e||Object.assign({},s),n={},r=[];const o=(e,n)=>N(this,void 0,void 0,(function*(){if(t.enableEvaluate)for(let t=0;tN(this,void 0,void 0,(function*(){const s=I(t,Object.assign({},n),e,a);return o(s,r.concat(A(s)))}));return a.evaluateAST=e=>{const a=I(t,Object.assign({},n),"");return o(a,r.concat(e))},a.repl=()=>{const e=(e,n)=>{if(t.enableEvaluate)for(let t=0;tN(this,void 0,void 0,(function*(){return k(a,e,t),o(a,A(a))})),l=(t,...n)=>(k(a,t,n),e(a,A(a)));return s.sync=l,s},a.setGlobals=e=>(n=Object.assign({},e||{}),a),a.appendGlobals=e=>(n=Object.assign({},n,e||{}),a),a.setStartup=(e,...o)=>{const s=I(t,Object.assign({},n),e,o);return r=A(s),a},a.setStartupAST=e=>(r=e,a),a.appendStartup=(e,...o)=>{const s=I(t,Object.assign({},n),e,o);return r=r.concat(A(s)),a},a.appendStartupAST=e=>(r=r.concat(e),a),a.install=e=>(t=e(t),a),a}const x=(()=>{const e=Object.assign({},s);return e.enableEvaluate=!1,e.returnMultipleRoot=!0,T(e)})();var C=n("6921"),M=n("7941"),P=n("6977");const D=(e,t)=>(...e)=>{Object(P["a"])("$car",e,1,1);const t=R(...e);if(!Array.isArray(t))throw new Error("[SX] $car: Invalid argument(s): args[0] is not array.");if(0===t.length)throw new Error("[SX] $car: Invalid argument(s): args[0] is nil.");return t[0]},L=(D(null,null),(e,t)=>(...e)=>{Object(P["a"])("$cdr",e,1,1);const t=R(...e);if(!Array.isArray(t))throw new Error("[SX] $cdr: Invalid argument(s): args[0] is not array.");if(0===t.length)throw new Error("[SX] $cdr: Invalid argument(s): args[0] is nil.");return t.slice(1)}),q=(L(null,null),(e,t)=>(...e)=>{Object(P["a"])("$cons",e,2,2);let{car:t,cdr:n}=G(...e);return null===t&&(t=[]),null===n&&(n=[]),Array.isArray(n)?(n=n.slice(0),n.unshift(t),n):{car:t,cdr:n}}),U=(q(null,null),(e,t)=>(...e)=>{const t=e.slice(0,1);return 1===t.length?t[0]:null}),R=U(null,null),F=(e,t)=>(...e)=>{const t=e.slice(1,2);return 1===t.length?t[0]:null},B=F(null,null),W=(e,t)=>(...e)=>{const t=e.slice(e.length-1,e.length);return 1===t.length?t[0]:null},K=(W(null,null),(e,t)=>(...e)=>{const t=e.slice(1);return 0(...e)=>{let t=e.slice(0,1);t=1===t.length?t[0]:null;let n=e.slice(1,2);return n=1===n.length?n[0]:null,{car:t,cdr:n}}),G=V(null,null),J=(e,t)=>(...e)=>{Object(P["a"])("$atom",e,1,1);const t=R(...e);if(null===t||void 0===t)return!0;if(Array.isArray(t))return 0===t.length;switch(typeof t){case"number":case"string":case"function":case"boolean":return!0;case"object":return!!Object(o["d"])(t)}return!1},H=(J(null,null),(e,t)=>(...e)=>{Object(P["a"])("$eq",e,2,2);const{car:t,cdr:n}=G(...e);return t===n}),z=(H(null,null),(e,t)=>(...e)=>{Object(P["a"])("$notEq",e,2,2);const{car:t,cdr:n}=G(...e);return t!==n}),Y=(z(null,null),(e,t)=>(...e)=>e.slice(0)),Q=(Y(null,null),(e,t,n)=>(...t)=>{Object(P["a"])("$__scope",t,3);const r=R(...t),a=B(...t),{car:s,cdr:l}=G(...t.slice(2));let c=null;const i={};if(Array.isArray(s))for(const n of s)if(Array.isArray(n)){const t=G(...n),r=Object(o["d"])(t.car),a=r?r.symbol:String(t.car);Object(P["c"])("$__scope",i,a),i[a]=Object(E["b"])(e,t.cdr)}else{const e=Object(o["d"])(n),t=e?e.symbol:String(n);Object(P["c"])("$__scope",i,t),i[t]=null}Object(E["f"])(e,i,r,n);try{if(4(...t)=>{Object(P["a"])("$__globalScope",t,1);const n=R(...t),r=B(...t);let o=null;Object(E["f"])(e,Object(E["d"])(e).scope,!0);try{if(2(...t)=>{Object(P["a"])("$__capture",t,1);const n=t[0];if(!Array.isArray(n))throw new Error("[SX] $__lambda: Invalid argument(s): args[0] is not array.");let r=null;const o=Object(E["a"])(e,n);Object(E["f"])(e,{},!0,o);try{for(const n of t.slice(1))r=Object(E["b"])(e,n)}finally{Object(E["m"])(e)}return r},te=(e,t)=>(...n)=>{Object(P["a"])("$__lambda",n,2);const r=n[0];if(!Array.isArray(r))throw new Error("[SX] $__lambda: Invalid argument(s): args[0] is not array.");let a=!1;for(let t=0;t[t.symbol,Object(o["f"])(e,a&&s===r.length-1?n.slice(s):n[s])])],...s)};return c},ne=(e,t)=>(...t)=>{Object(P["a"])("$$__lambda",t,2);const n=t[0];if(!Array.isArray(n))throw new Error("[SX] $$__lambda: Invalid argument(s): args[0] is not array.");let r=!1;for(let s=0;s(...n)=>{Object(P["a"])("$__defun",n,3);const r=R(...n),o=te(e,t)(...n.slice(1));return Object(P["c"])("$__defun",e.funcMap,r.symbol),e.funcMap.set(r.symbol,{name:r.symbol,fn:(e,t)=>o}),o},oe=(e,t)=>(...n)=>{Object(P["a"])("$$__defun",n,3);const r=R(...n),o=ne(e,t)(...n.slice(1));return Object(P["c"])("$$__defun",e.funcMap,r.symbol),e.funcMap.set(r.symbol,{name:r.symbol,fn:(e,t)=>o}),o},ae=(e,t)=>(...t)=>{Object(P["a"])("$__refun",t,1,1);const n=R(...t);Object(P["c"])("$__refun",e.funcMap,n.symbol);const r=e.funcMap.get(n.symbol);if(!r)throw new Error(`[SX] $__refun: function ${n.symbol} is not defined.`);return r.fn(e,n.symbol)},se=(e,t)=>(...n)=>{Object(P["a"])("$__defmacro",n,3);const r=R(...n),a=n[1];if(!Array.isArray(a))throw new Error("[SX] $__defmacro: Invalid argument(s): args[1] is not array.");let s=!1;for(let t=0;t(...r)=>Q(e,t,c)(!1,!1,[[e.config.reservedNames.self,i],...n.map((t,a)=>[t.symbol,Object(o["f"])(e,s&&a===n.length-1?r.slice(a):r[a])])],...l),u={name:r.symbol,fn:(e,t,n)=>e=>i(n)(...e.slice(1)),formalArgs:a,lastIsSpread:s};if(Object(P["c"])("$__defmacro",e.macroMap,r.symbol),e.macroMap.has(r.symbol)){let t=e.macroMap.get(r.symbol);if(t.next=u,t&&t.formalArgs)if(t.formalArgs.length(...e)=>{Object(P["a"])("$apply",e,1);const t=R(...e);if("function"!==typeof t)throw new Error("[SX] $apply: Invalid argument(s): args[0] is not function.");return(...n)=>t.apply(null,e.slice(1).concat(n))},ce=(le(null,null),(e,t)=>(...t)=>{Object(P["a"])("$__call",t,2);const{car:n,cdr:r}=G(...t),a=Object(o["d"])(r),s=a?a.symbol:Object(E["b"])(e,r);return Object(P["c"])("$__call",n,s),Function.prototype.apply.call(n[s],n,t.slice(2))}),ie=(e,t)=>(...n)=>{Object(P["a"])("$__try",n,1,2);let a=[];try{a=Object(E["b"])(e,n[0])}catch(s){if(s instanceof r["a"])throw s;a=1(...e)=>{const t=R(...e);throw t},fe=(ue(null,null),(e,t)=>(...t)=>{Object(P["a"])("$__if",t,2,3);const n=R(...t);let r=[];return r=Se(n)?Object(E["b"])(e,t[1]):2(...t)=>{Object(P["a"])("$__ifNull",t,2,2);const{car:n,cdr:r}=G(...t);let o=[];return o=Te(n,null)?Object(E["b"])(e,r):n,o},be=(e,t)=>(...t)=>{Object(P["a"])("$__cond",t,1);for(let n=0;n(...t)=>{Object(P["a"])("$__while",t,1);const n=R(...t),r=t.slice(1);let o=null;while(Se(Object(E["b"])(e,n)))for(const t of r)o=Object(E["b"])(e,t);return o},pe=(e,t)=>(...t)=>{Object(P["a"])("$__doWhile",t,1);const n=R(...t),r=t.slice(1);let o=null;do{for(const t of r)o=Object(E["b"])(e,t)}while(Se(Object(E["b"])(e,n)));return o},_e=(e,t)=>(...t)=>{Object(P["a"])("$__until",t,1);const n=R(...t),r=t.slice(1);let o=null;while(Ee(Object(E["b"])(e,n)))for(const t of r)o=Object(E["b"])(e,t);return o},de=(e,t)=>(...t)=>{Object(P["a"])("$__doUntil",t,1);const n=R(...t),r=t.slice(1);let o=null;do{for(const t of r)o=Object(E["b"])(e,t)}while(Ee(Object(E["b"])(e,n)));return o},ye=(e,t)=>(...t)=>{Object(P["a"])("$__repeat",t,2);const n=Object(o["d"])(R(...t));if(!n)throw new Error("[SX] $__repeat: Invalid argument(s): item(s) of args[0] is not symbol.");Object(P["c"])("$__repeat",{},n.symbol);const r=Object(E["k"])(e,n,!1),a=Object(E["l"])(B(...t)),s=t.slice(2);let l=null;for(let o=0;o(...t)=>{Object(P["a"])("$__for",t,2);const n=Object(o["d"])(R(...t));if(!n)throw new Error("[SX] $__for: Invalid argument(s): item(s) of args[0] is not symbol.");Object(P["c"])("$__for",{},n.symbol);const r=Object(E["k"])(e,n,!1),a=B(...t);if(!Array.isArray(a))throw new Error("[SX] $__for: Invalid argument(s): item(s) of args[1] is not array.");const s=t.slice(2);let l=null;for(const o of a){r[n.symbol]=o;for(const t of s)l=Object(E["b"])(e,t)}return l},je=(e,t)=>(...e)=>{Object(P["a"])("$pipe",e,1);let t=e[0];for(let n=1;n(...t)=>{Object(P["a"])("$__get",t,1);let n=null,r=Object(o["d"])(t[0]);if(!r)switch(typeof t[0]){case"string":case"number":r={symbol:String(t[0])};break;default:n=Object(E["b"])(e,t[0]);break}if(r){const t=Object(E["k"])(e,r,!0);if(!t)throw new Error(`[SX] $__get: Invalid argument(s): args[0]: symbol "${r.symbol}" is not defined.`);n=t[r.symbol]}for(let a=1;a(...t)=>{Object(P["a"])("$__let",t,2,2);let n=Object(o["d"])(R(...t));if(!n){if("string"!==typeof t[0])throw new Error("[SX] $__let: Invalid argument(s): invalid name.");n={symbol:t[0]}}Object(P["c"])("$__let",{},n.symbol);const r=Object(E["k"])(e,n,!1);return r[n.symbol]=t[1],t[1]},ve=(e,t)=>(...t)=>{Object(P["a"])("$__set",t,2,2);let n=[];Array.isArray(t[0])?n=t[0]:n.push(t[0]);let r=Object(o["d"])(n[0]);if(!r){if("string"!==typeof n[0])throw new Error("[SX] $__set: Invalid argument(s): invalid name.");Object(P["c"])("$__set",{},n[0]),r={symbol:n[0]}}let a=Object(E["k"])(e,r,!0);if(null===a)throw new Error(`[SX] $__set: Unresolved symbol: ${r.symbol}.`);let s=!1;for(let l=0;l(...e)=>{Object(P["a"])("$boolean",e,1,1);const t=R(...e);return(!Array.isArray(t)||0!==t.length)&&Boolean(t)},Se=we(null,null),Ae=(e,t)=>(...e)=>(Object(P["a"])("$not",e,1,1),!Se(...e)),Ee=Ae(null,null),Ne=(e,t)=>(...t)=>{Object(P["a"])("$__and",t,1);let n=null;for(let r=0;r(...t)=>{Object(P["a"])("$__or",t,1);let n=null;for(let r=0;r(...e)=>{Object(P["a"])("$ambiguousEq",e,2,2);let{car:t,cdr:n}=G(...e);return Array.isArray(t)&&0===t.length&&(t=null),Array.isArray(n)&&0===n.length&&(n=null),void 0===t&&(t=null),void 0===n&&(n=null),t==n}),Te=ke(null,null),Xe=(e,t)=>(...e)=>!Te(...e),xe=(Xe(null,null),(e,t)=>(...e)=>{Object(P["a"])("$lt",e,2,2);const{car:t,cdr:n}=G(...e);return Object(E["l"])(t)(...e)=>{Object(P["a"])("$le",e,2,2);const{car:t,cdr:n}=G(...e);return Object(E["l"])(t)<=Object(E["l"])(n)}),Me=(Ce(null,null),(e,t)=>(...e)=>{Object(P["a"])("$gt",e,2,2);const{car:t,cdr:n}=G(...e);return Object(E["l"])(t)>Object(E["l"])(n)}),Pe=(Me(null,null),(e,t)=>(...e)=>{Object(P["a"])("$ge",e,2,2);const{car:t,cdr:n}=G(...e);return Object(E["l"])(t)>=Object(E["l"])(n)}),De=(Pe(null,null),(e,t)=>(...e)=>{Object(P["a"])("$typeof",e,1,1);const t=R(...e);if(null===t)return"null";const n=typeof t;switch(n){case"object":return Array.isArray(t)?"list":"object";case"symbol":return"js-symbol";default:return n}}),Le=(De(null,null),(e,t)=>(...e)=>{if(Object(P["a"])("$symbol",e,1,1),"string"===typeof e[0])return{symbol:e[0]};throw new Error("[SX] $symbol: Invalid argument(s): item(s) of args[0] is not string.")}),qe=(Le(null,null),(e,t)=>(...t)=>{Object(P["a"])("$__gensym",t,0,1);const n=`$__tempvar__$$ec${e.evalCount++}$$_`,r={symbol:n+"_$gensym"};if(1===t.length){const n=Object(o["d"])(t[0]);if(n)he(e,"")(n,r);else{if("string"!==typeof t[0])throw new Error("[SX] $__gensym: Invalid argument(s): item(s) of args[0] is not symbol.");he(e,"")({symbol:t[0]},r)}}return r}),Ue=(e,t)=>(...e)=>{if(Object(P["a"])("$isSymbol",e,1,2),1===e.length)return!!Object(o["d"])(e[0]);if("string"===typeof e[1])return!!Object(o["d"])(e[0],e[1]);throw new Error("[SX] $isSymbol: Invalid argument(s): item(s) of args[1] is not string.")},Re=(Ue(null,null),(e,t)=>(...e)=>(Object(P["a"])("$isNull",e,1,1),null===R(...e))),Fe=(Re(null,null),(e,t)=>(...e)=>{Object(P["a"])("$isNil",e,1,1);const t=R(...e);return Array.isArray(t)&&0===t.length}),Be=(Fe(null,null),(e,t)=>(...e)=>(Object(P["a"])("$isUndefined",e,1,1),void 0===R(...e))),We=(Be(null,null),(e,t)=>(...e)=>(Object(P["a"])("$isList",e,1,1),Array.isArray(R(...e)))),Ke=(We(null,null),(e,t)=>(...e)=>(Object(P["a"])("$isString",e,1,1),"string"===typeof R(...e))),Ve=(Ke(null,null),(e,t)=>(...e)=>(Object(P["a"])("$isNumber",e,1,1),"number"===typeof R(...e))),Ge=(Ve(null,null),(e,t)=>(...e)=>(Object(P["a"])("$isNaN",e,1,1),Number.isNaN(R(...e)))),Je=(Ge(null,null),(e,t)=>(...e)=>(Object(P["a"])("$isFinite",e,1,1),Number.isFinite(R(...e)))),He=(Je(null,null),(e,t)=>(...e)=>(Object(P["a"])("$isInteger",e,1,1),Number.isInteger(R(...e)))),ze=(He(null,null),(e,t)=>(...e)=>(Object(P["a"])("$toString",e,1,1),String(R(...e)))),Ye=(ze(null,null),(e,t)=>(...e)=>(Object(P["a"])("$toNumber",e,1,1),Object(E["l"])(R(...e)))),Qe=(Ye(null,null),(e,t)=>(...t)=>{const n={};for(const r of t){if(!(Array.isArray(r)&&0(...e)=>{if(Object(P["a"])("$objectAssign",e,1),Ze.includes(e[0]))throw new Error("[SX] $objectAssign: Invalid argument: args[0] is blacklisted object.");return Object.assign(e[0],...e.slice(1))},tt=(et(null,null),(e,t)=>(...e)=>(Object(P["a"])("$jsonStringify",e,1,1),JSON.stringify(R(...e)))),nt=(tt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$jsonParse",e,1,1);const t=R(...e);if("string"!==typeof t)throw new Error("[SX] $jsonParse: Invalid argument(s): args[0] is not string.");return JSON.parse(t)}),rt=(nt(null,null),(e,t)=>(...e)=>Date.now()),ot=(rt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$datetimeFromIso",e,1,1);const t=R(...e);if("string"!==typeof t)throw new Error("[SX] $datetimeFromIso: Invalid argument(s): args[0] is not string.");if(!/^(?:(?:-[0-9]{6,})|[0-9]{4,})-(?:[0-1][0-9])-(?:[0-3][0-9])(?:T(?:[0-2][0-9])(?:[:](?:[0-6][0-9])(?:[:](?:[0-6][0-9])(?:.[0-9]{1,})?)?)?(?:Z|[-+][0-9]{2}(?:[:]?[0-6][0-9])?)?)?$/.test(t))throw new Error(`[SX] $datetimeFromIso: Invalid datetime (pattern unmatched): ${t}.`);const n=new Date(t).getTime();if(Number.isNaN(n))throw new Error(`[SX] $datetimeFromIso: Invalid datetime: ${t}.`);return n}),at=(ot(null,null),(e,t)=>(...e)=>{Object(P["a"])("$datetime",e,3,7);let t="";const n=Number(e[0]);t+=n>=0?String(n).padStart(4,"0"):"-"+String(-n).padStart(6,"0"),t+="-"+String(Number(e[1])).padStart(2,"0"),t+="-"+String(Number(e[2])).padStart(2,"0"),e.length>=4&&(t+="T"+String(Number(e[3])).padStart(2,"0"),e.length>=5?t+=":"+String(Number(e[4])).padStart(2,"0"):t+=":00",e.length>=6&&(t+=":"+String(Number(e[5])).padStart(2,"0")),e.length>=7&&(t+="."+String(Number(e[6])).padStart(3,"0").slice(0,3)),t+="Z");const r=new Date(t).getTime();if(Number.isNaN(r))throw new Error(`[SX] $datetime: Invalid datetime: ${t}.`);return r}),st=(at(null,null),(e,t)=>(...e)=>{Object(P["a"])("$datetimeLc",e,3,7);let t="";const n=Number(e[0]);t+=n>=0?String(n).padStart(4,"0"):"-"+String(-n).padStart(6,"0"),t+="-"+String(Number(e[1])).padStart(2,"0"),t+="-"+String(Number(e[2])).padStart(2,"0"),e.length>=4?(t+="T"+String(Number(e[3])).padStart(2,"0"),e.length>=5?t+=":"+String(Number(e[4])).padStart(2,"0"):t+=":00",e.length>=6&&(t+=":"+String(Number(e[5])).padStart(2,"0")),e.length>=7&&(t+="."+String(Number(e[6])).padStart(3,"0").slice(0,3))):t+="T00:00:00.000";const r=new Date(t).getTime();if(Number.isNaN(r))throw new Error(`[SX] $datetimeLc: Invalid datetime: ${t}.`);return r}),lt=(st(null,null),(e,t)=>(...e)=>{Object(P["a"])("$datetimeToIsoString",e,1,1);const t=R(...e);if("number"!==typeof t)throw new Error("[SX] $datetimeToIsoString: Invalid argument(s): args[0] is not number.");const n=new Date(t);if(Number.isNaN(n.getTime()))throw new Error(`[SX] $datetimeToIsoString: Invalid datetime: ${t}.`);return n.toISOString()}),ct=(lt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$datetimeToComponents",e,1,1);const t=R(...e);if("number"!==typeof t)throw new Error("[SX] $datetimeToComponents: Invalid argument(s): args[0] is not number.");const n=new Date(t);if(Number.isNaN(n.getTime()))throw new Error(`[SX] $datetimeToComponents: Invalid datetime: ${t}.`);return[n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),n.getUTCMilliseconds(),0,n.getUTCDay()]}),it=(ct(null,null),(e,t)=>(...e)=>{Object(P["a"])("$datetimeToComponentsLc",e,1,1);const t=R(...e);if("number"!==typeof t)throw new Error("[SX] $datetimeToComponentsLc: Invalid argument(s): args[0] is not number.");const n=new Date(t);if(Number.isNaN(n.getTime()))throw new Error(`[SX] $datetimeToComponentsLc: Invalid datetime: ${t}.`);return[n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds(),-n.getTimezoneOffset(),n.getDay()]}),ut=(it(null,null),(e,t)=>(...t)=>{if(Object(P["a"])("$match",t,2,3),!e.config.enableRegExpMatchOperators)throw new Error("[SX] $match: Operator is disabled by configuration.");if(2===t.length){const e=new RegExp(t[0]);return e.exec(t[1])}{const e=new RegExp(t[0],t[1]);return e.exec(t[2])}}),ft=(ut(null,null),(e,t)=>(...e)=>(console.log(...e),null)),mt=(ft(null,null),(e,t)=>(...e)=>(console.error(...e),null)),bt=(mt(null,null),(e,t)=>(...e)=>(console.trace(...e),null)),$t=(bt(null,null),(e,t)=>(...e)=>(console.time(...e),null)),pt=($t(null,null),(e,t)=>(...e)=>(console.timeEnd(...e),null)),_t=(pt(null,null),(e,t)=>(...e)=>(console.timeLog(...e),null)),dt=(_t(null,null),[{name:"$car",fn:D},{name:"$cdr",fn:L},{name:"$cons",fn:q},{name:"$first",fn:U},{name:"$second",fn:F},{name:"$last",fn:W},{name:"$progn",fn:W},{name:"$rest",fn:K},{name:"$first-and-second",fn:V},{name:"$atom",fn:J},{name:"$eq",fn:H},{name:"===",fn:H},{name:"$not-eq",fn:z},{name:"!==",fn:z},{name:"$list",fn:Y},{name:"$__scope",fn:Q},{name:"$__global",fn:Z},{name:"$__capture",fn:ee},{name:"$__lambda",fn:te},{name:"$__defun",fn:re},{name:"$__refun",fn:ae},{name:"$__defmacro",fn:se},{name:"$apply",fn:le},{name:"$__call",fn:ce},{name:"$__try",fn:ie},{name:"$raise",fn:ue},{name:"$__if",fn:fe},{name:"$__if-null",fn:me},{name:"$__cond",fn:be},{name:"$__while",fn:$e},{name:"$__do-while",fn:pe},{name:"$__until",fn:_e},{name:"$__do-until",fn:de},{name:"$__repeat",fn:ye},{name:"$__for",fn:ge},{name:"$pipe",fn:je},{name:"$__get",fn:Oe},{name:"$__let",fn:he},{name:"$__set",fn:ve},{name:"$boolean",fn:we},{name:"$not",fn:Ae},{name:"$__and",fn:Ne},{name:"$__or",fn:Ie},{name:"==",fn:ke},{name:"!=",fn:Xe},{name:"<",fn:xe},{name:"<=",fn:Ce},{name:">",fn:Me},{name:">=",fn:Pe},{name:"$typeof",fn:De},{name:"$symbol",fn:Le},{name:"$__gensym",fn:qe},{name:"$is-symbol",fn:Ue},{name:"$is-null",fn:Re},{name:"$is-nil",fn:Fe},{name:"$is-undefined",fn:Be},{name:"$is-list",fn:We},{name:"$is-string",fn:Ke},{name:"$is-number",fn:Ve},{name:"$is-NaN",fn:Ge},{name:"$is-finite",fn:Je},{name:"$is-integer",fn:He},{name:"$to-string",fn:ze},{name:"$to-number",fn:Ye},{name:"$__#",fn:Qe},{name:"$object-assign",fn:et},{name:"$json-stringify",fn:tt},{name:"$now",fn:rt},{name:"$datetime-from-iso",fn:ot},{name:"$datetime",fn:at},{name:"$datetime-lc",fn:st},{name:"$datetime-to-iso-string",fn:lt},{name:"$datetime-to-components",fn:ct},{name:"$datetime-to-components-lc",fn:it},{name:"$json-parse",fn:nt},{name:"$match",fn:ut},{name:"$console-log",fn:ft},{name:"$console-error",fn:mt},{name:"$console-trace",fn:bt},{name:"$console-time",fn:$t},{name:"$console-time-end",fn:pt},{name:"$console-time-log",fn:_t}]),yt=[{name:"$$__lambda",fn:ne},{name:"$$__defun",fn:oe}];var gt=[].concat(dt,yt);const jt=[{name:"$scope",fn:(e,t)=>t=>[{symbol:"$__scope"},t[1],t[2],...t.slice(3).map(t=>Object(o["f"])(e,t))]},{name:"$local",fn:(e,t)=>t=>[{symbol:"$__scope"},!0,!1,...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$global",fn:(e,t)=>t=>[{symbol:"$__global"},!1,...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$clisp-let",fn:(e,t)=>t=>[{symbol:"$__scope"},!0,!1,...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$capture",fn:(e,t)=>t=>[{symbol:"$__capture"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$closure",fn:(e,t)=>t=>{const n=Object(o["d"])(t[2],"use");if(!n)throw new Error("[SX] $closure: Invalid syntax: missing 'use' keyword.");return[{symbol:"$__capture"},Object(o["f"])(e,t[3]),Object(o["f"])(e,[{symbol:"$__lambda"},Object(o["f"])(e,t[1]),...t.slice(4).map(t=>Object(o["f"])(e,t))])]}},{name:"|->",fn:(e,t)=>e=>[{symbol:"$closure"},...e.slice(1)]},{name:"$lambda",fn:(e,t)=>t=>[{symbol:"$__lambda"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"->",fn:(e,t)=>t=>[{symbol:"$__lambda"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$defun",fn:(e,t)=>t=>[{symbol:"$__defun"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$refun",fn:(e,t)=>t=>[{symbol:"$__refun"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"<-",fn:(e,t)=>t=>[{symbol:"$__refun"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$defmacro",fn:(e,t)=>t=>[{symbol:"$__defmacro"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$call",fn:(e,t)=>t=>(Object(P["a"])("$call",t,3),[{symbol:"$__call"},t[1],Object(o["f"])(e,t[2]),...t.slice(3)])},{name:"$try",fn:(e,t)=>t=>[{symbol:"$__try"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$if",fn:(e,t)=>t=>[{symbol:"$__if"},t[1],...t.slice(2).map(t=>Object(o["f"])(e,t))]},{name:"$if-null",fn:(e,t)=>t=>[{symbol:"$__if-null"},t[1],...t.slice(2).map(t=>Object(o["f"])(e,t))]},{name:"??",fn:(e,t)=>t=>[{symbol:"$__if-null"},t[1],...t.slice(2).map(t=>Object(o["f"])(e,t))]},{name:"$cond",fn:(e,t)=>t=>[{symbol:"$__cond"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$while",fn:(e,t)=>t=>[{symbol:"$__while"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$do-while",fn:(e,t)=>t=>[{symbol:"$__do-while"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$until",fn:(e,t)=>t=>[{symbol:"$__until"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$do-until",fn:(e,t)=>t=>[{symbol:"$__do-until"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$repeat",fn:(e,t)=>t=>{const n=Object(o["d"])(t[2],"of");if(!n)throw new Error("[SX] $repeat: Invalid syntax: missing 'of' keyword.");return[{symbol:"$__repeat"},Object(o["f"])(e,t[1]),t[3],...t.slice(4).map(t=>Object(o["f"])(e,t))]}},{name:"$for",fn:(e,t)=>t=>{const n=Object(o["d"])(t[2],"of");if(!n)throw new Error("[SX] $for: Invalid syntax: missing 'of' keyword.");return[{symbol:"$__for"},Object(o["f"])(e,t[1]),t[3],...t.slice(4).map(t=>Object(o["f"])(e,t))]}},{name:"$get",fn:(e,t)=>t=>[{symbol:"$__get"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$let",fn:(e,t)=>t=>(Object(P["a"])("$let",t,3,3),[{symbol:"$__let"},Object(o["f"])(e,t[1]),t[2]])},{name:"$clisp-defvar",fn:(e,t)=>t=>(Object(P["a"])("$clisp-defvar",t,3,3),[{symbol:"$global"},[{symbol:"$__let"},Object(o["f"])(e,t[1]),t[2]]])},{name:"$set",fn:(e,t)=>t=>(Object(P["a"])("$set",t,3,3),[{symbol:"$__set"},Object(o["f"])(e,t[1]),t[2]])},{name:"$clisp-setq",fn:(e,t)=>t=>(Object(P["a"])("$clisp-setq",t,3,3),[{symbol:"$__set"},Object(o["f"])(e,t[1]),t[2]])},{name:"$and",fn:(e,t)=>t=>[{symbol:"$__and"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$or",fn:(e,t)=>t=>[{symbol:"$__or"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$gensym",fn:(e,t)=>t=>[{symbol:"$__gensym"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"#",fn:(e,t)=>t=>[{symbol:"$__#"},...t.slice(1).map(t=>Object(o["f"])(e,t))]}],Ot=[{name:"$$closure",fn:(e,t)=>t=>{const n=Object(o["d"])(t[2],"use");if(!n)throw new Error("[SX] $closure: Invalid syntax: missing 'use' keyword.");return[{symbol:"$__capture"},Object(o["f"])(e,t[3]),Object(o["f"])(e,[{symbol:"$$__lambda"},Object(o["f"])(e,t[1]),...t.slice(4).map(t=>Object(o["f"])(e,t))])]}},{name:"|=>",fn:(e,t)=>e=>[{symbol:"$$closure"},...e.slice(1)]},{name:"$$lambda",fn:(e,t)=>t=>[{symbol:"$$__lambda"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"=>",fn:(e,t)=>t=>[{symbol:"$$__lambda"},...t.slice(1).map(t=>Object(o["f"])(e,t))]},{name:"$$defun",fn:(e,t)=>t=>[{symbol:"$$__defun"},...t.slice(1).map(t=>Object(o["f"])(e,t))]}];var ht=[].concat(jt,Ot);const vt=[{name:"nil",fn:(e,t)=>[]},{name:"null",fn:(e,t)=>null},{name:"undefined",fn:(e,t)=>{}},{name:"true",fn:(e,t)=>!0},{name:"#true",fn:(e,t)=>!0},{name:"#t",fn:(e,t)=>!0},{name:"false",fn:(e,t)=>!1},{name:"#false",fn:(e,t)=>!1},{name:"#f",fn:(e,t)=>!1},{name:"#Number:Infinity",fn:(e,t)=>Number.POSITIVE_INFINITY},{name:"+Infinity",fn:(e,t)=>Number.POSITIVE_INFINITY},{name:"-Infinity",fn:(e,t)=>Number.NEGATIVE_INFINITY},{name:"#Number:Epsilon",fn:(e,t)=>Number.EPSILON},{name:"#Number:MaxValue",fn:(e,t)=>Number.MAX_VALUE},{name:"#Number:MinValue",fn:(e,t)=>Number.MIN_VALUE},{name:"#Number:MinSafeInteger",fn:(e,t)=>Number.MAX_SAFE_INTEGER},{name:"#Number:MinSafeInteger",fn:(e,t)=>Number.MIN_SAFE_INTEGER},{name:"NaN",fn:(e,t)=>Number.NaN}];var wt=vt;function St(e){return e.funcs=(e.funcs||[]).concat(dt).concat(e.enableCompilationOperators?yt:[]),e.macros=(e.macros||[]).concat(jt).concat(e.enableCompilationOperators?Ot:[]),e.symbols=(e.symbols||[]).concat(wt),e}const At=(e,t)=>(...e)=>{Object(P["a"])("$bitLShift",e,2,2);let{car:t,cdr:n}=G(...e);return t=Object(E["l"])(t),n=Object(E["l"])(n),0<=n?n<32?t<-32?t>>>-n:0},Et=(At(null,null),(e,t)=>(...e)=>{Object(P["a"])("$bitSRShift",e,2,2);let{car:t,cdr:n}=G(...e);return t=Object(E["l"])(t),n=Object(E["l"])(n),0<=n?n<32?t>>n:2147483648&t?-1:0:n>-32?t<<-n:0}),Nt=(Et(null,null),(e,t)=>(...e)=>{Object(P["a"])("$bitURShift",e,2,2);let{car:t,cdr:n}=G(...e);return t=Object(E["l"])(t),n=Object(E["l"])(n),0<=n?n<32?t>>>n:0:n>-32?t<<-n:0}),It=(Nt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$bitNot",e,1,1);const t=R(...e);return~Object(E["l"])(t)}),kt=(It(null,null),(e,t)=>(...e)=>{Object(P["a"])("$bitAnd",e,2);const t=R(...e);return e.slice(1).reduce((e,t)=>Object(E["l"])(e)&Object(E["l"])(t),Object(E["l"])(t))}),Tt=(kt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$bitOr",e,2);const t=R(...e);return e.slice(1).reduce((e,t)=>Object(E["l"])(e)|Object(E["l"])(t),Object(E["l"])(t))}),Xt=(Tt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$bitXor",e,2);const t=R(...e);return e.slice(1).reduce((e,t)=>Object(E["l"])(e)^Object(E["l"])(t),Object(E["l"])(t))}),xt=(Xt(null,null),(e,t)=>(...e)=>(Object(P["a"])("$add",e,1),e.reduce((e,t)=>Object(E["l"])(e)+Object(E["l"])(t),0))),Ct=(xt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$sub",e,1);const t=R(...e),n=e.slice(1);return 0===n.length?-Object(E["l"])(t):e.slice(1).reduce((e,t)=>Object(E["l"])(e)-Object(E["l"])(t),Object(E["l"])(t))}),Mt=(Ct(null,null),(e,t)=>(...e)=>{Object(P["a"])("$mul",e,2);const t=R(...e);return e.slice(1).reduce((e,t)=>Object(E["l"])(e)*Object(E["l"])(t),Object(E["l"])(t))}),Pt=(Mt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$sup",e,2);const t=R(...e);return e.slice(1).reduce((e,t)=>Math.pow(Object(E["l"])(e),Object(E["l"])(t)),Object(E["l"])(t))}),Dt=(Pt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$div",e,2);const t=R(...e);return e.slice(1).reduce((e,t)=>Object(E["l"])(e)/Object(E["l"])(t),Object(E["l"])(t))}),Lt=(Dt(null,null),(e,t)=>(...e)=>{Object(P["a"])("$mod",e,2);const t=R(...e);return e.slice(1).reduce((e,t)=>Object(E["l"])(e)%Object(E["l"])(t),Object(E["l"])(t))}),qt=(Lt(null,null),(e,t)=>(...e)=>Math.max(...e.map(e=>Object(E["l"])(e)))),Ut=(qt(null,null),(e,t)=>(...e)=>Math.min(...e.map(e=>Object(E["l"])(e)))),Rt=(Ut(null,null),(e,t)=>(...e)=>{const t=e.map(e=>Object(E["l"])(e));return t.length>0?t.reduce((e,t)=>e+t,0)/t.length:NaN}),Ft=(Rt(null,null),(e,t)=>(...e)=>(Object(P["a"])("$floor",e,1,1),Math.floor(Object(E["l"])(R(...e))))),Bt=(Ft(null,null),(e,t)=>(...e)=>(Object(P["a"])("$ceil",e,1,1),Math.ceil(Object(E["l"])(R(...e))))),Wt=(Bt(null,null),(e,t)=>(...e)=>(Object(P["a"])("$round",e,1,1),Math.round(Object(E["l"])(R(...e))))),Kt=(Wt(null,null),(e,t)=>(...e)=>(Object(P["a"])("$abs",e,1,1),Math.abs(Object(E["l"])(R(...e))))),Vt=(Kt(null,null),(e,t)=>(...e)=>(Object(P["a"])("$sign",e,1,1),Math.sign(Object(E["l"])(R(...e))))),Gt=(Vt(null,null),[{name:"<<",fn:At},{name:"$bit-l-shift",fn:At},{name:">>",fn:Et},{name:"$bit-sr-shift",fn:Et},{name:">>>",fn:Nt},{name:"$bit-ur-shift",fn:Nt},{name:"$bit-not",fn:It},{name:"$bit-and",fn:kt},{name:"$bit-or",fn:Tt},{name:"$bit-xor",fn:Xt},{name:"+",fn:xt},{name:"$add",fn:xt},{name:"$sum",fn:xt},{name:"-",fn:Ct},{name:"$sub",fn:Ct},{name:"$neg",fn:Ct},{name:"*",fn:Mt},{name:"$mul",fn:Mt},{name:"**",fn:Pt},{name:"$sup",fn:Pt},{name:"/",fn:Dt},{name:"$div",fn:Dt},{name:"%",fn:Lt},{name:"$mod",fn:Lt},{name:"$max",fn:qt},{name:"$min",fn:Ut},{name:"$avg",fn:Rt},{name:"$floor",fn:Ft},{name:"$ceil",fn:Bt},{name:"$round",fn:Wt},{name:"$abs",fn:Kt},{name:"$sign",fn:Vt}]);var Jt=Gt;const Ht=[{name:"$incl",fn:(e,t)=>e=>(Object(P["a"])("$incl",e,2,2),[{symbol:"$set"},e[1],[{symbol:"$add"},e[1],1]])},{name:"++",fn:(e,t)=>e=>(Object(P["a"])("++",e,2,2),[{symbol:"$set"},e[1],[{symbol:"$add"},e[1],1]])},{name:"$decl",fn:(e,t)=>e=>(Object(P["a"])("$decl",e,2,2),[{symbol:"$set"},e[1],[{symbol:"$add"},e[1],-1]])},{name:"--",fn:(e,t)=>e=>(Object(P["a"])("--",e,2,2),[{symbol:"$set"},e[1],[{symbol:"$add"},e[1],-1]])},{name:"$incln",fn:(e,t)=>e=>{if(Object(P["a"])("$incln",e,3,3),"number"!==typeof e[2])throw new Error("[SX] $incln: Invalid parameter: arg(1) is not number.");return[{symbol:"$set"},e[1],[{symbol:"$add"},e[1],e[2]]]}},{name:"+=",fn:(e,t)=>e=>{if(Object(P["a"])("+=",e,3,3),"number"!==typeof e[2])throw new Error("[SX] +=: Invalid parameter: arg(1) is not number.");return[{symbol:"$set"},e[1],[{symbol:"$add"},e[1],e[2]]]}},{name:"$decln",fn:(e,t)=>e=>{if(Object(P["a"])("$decln",e,3,3),"number"!==typeof e[2])throw new Error("[SX] $decln: Invalid parameter: arg(1) is not number.");return[{symbol:"$set"},e[1],[{symbol:"$add"},e[1],-e[2]]]}},{name:"-=",fn:(e,t)=>e=>{if(Object(P["a"])("-=",e,3,3),"number"!==typeof e[2])throw new Error("[SX] -=: Invalid parameter: arg(1) is not number.");return[{symbol:"$set"},e[1],[{symbol:"$add"},e[1],-e[2]]]}}];var zt=Ht;const Yt=[];var Qt=Yt;function Zt(e){return e.funcs=(e.funcs||[]).concat(Jt),e.macros=(e.macros||[]).concat(zt),e.symbols=(e.symbols||[]).concat(Qt),e}class en{constructor(e){this.data=e}orderBy(e){let t;return t=Array.isArray(e)?(t,n)=>{for(const r of e)if("string"===typeof r){if(t[r]>n[r])return 1;if(t[r]n[r[0]])return 1*e;if(t[r[0]]{for(const r of e)if(t[r]!==n[r])return!1;return!0}:e;const n=[];let r=0,o=1;for(;or%e!==0);{const t=Object.assign({first:e.intermediate,last:e.intermediate},e),n=this.groupBy((e,n,r,o)=>t.single>=o.length?r%t.single!==0:r<=t.first?r%t.first!==0:(r-t.first)%t.intermediate!==0);return 1===n.data.length?t.single1&&n.data[n.data.length-1].length>t.last&&n.data.push([]),n}}where(e){return new en(this.data.filter(e))}select(e){return e?this.data.map(e):this.data}}function tn(e){return new en(e)}const nn=(e,t)=>(...t)=>{Object(P["a"])("$range",t,2,3);const{car:n,cdr:r}=G(...t),o=Object(E["l"])(n)||0,a=Object(E["l"])(r)||0,s=t.length>2&&Object(E["l"])(t[2])||(o<=a?1:-1),l=Math.sign(a-o)+Math.sign(s)!==0?Math.floor(Math.abs(a-o)/Math.abs(s))+1:0;return e.evalCount+=l,Object(E["b"])(e,0),Array.from({length:l},(e,t)=>o+t*s)},rn=(e,t)=>(...e)=>{Object(P["a"])("$length",e,1,1);const t=R(...e);switch(typeof t){case"object":if(!("length"in t))break;case"string":return t.length}throw new Error("[SX] $length: Invalid argument type: object has no property 'length'.")},on=(rn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$trim",e,1,1);const t=R(...e);if("string"===typeof t)return t.trim();throw new Error("[SX] $trim: Invalid argument type: args[0] is not string.")}),an=(on(null,null),(e,t)=>(...e)=>{Object(P["a"])("$trimHead",e,1,1);const t=R(...e);if("string"===typeof t)return t.trimLeft();throw new Error("[SX] $trimHead: Invalid argument type: args[0] is not string.")}),sn=(an(null,null),(e,t)=>(...e)=>{Object(P["a"])("$trimTail",e,1,1);const t=R(...e);if("string"===typeof t)return t.trimRight();throw new Error("[SX] $trimTail: Invalid argument type: args[0] is not string.")}),ln=(sn(null,null),(e,t)=>(...e)=>{if(Object(P["a"])("$replaceAll",e,3,3),"string"===typeof e[0]&&"string"===typeof e[1]&&"string"===typeof e[2])return e[0].split(e[1]).join(e[2]);throw new Error("[SX] $replaceAll: Invalid argument type: args[0] or [1] or [2] is not string.")}),cn=(ln(null,null),(e,t)=>(...e)=>{if(Object(P["a"])("$split",e,2,2),"string"===typeof e[0]&&"string"===typeof e[1])return e[0].split(e[1]);throw new Error("[SX] $split: Invalid argument type: args[0] or [1] is not string.")}),un=(cn(null,null),(e,t)=>(...e)=>{if(Object(P["a"])("$join",e,1,2),Array.isArray(e[0]),e.length>1){if("string"===typeof e[1])return e[0].join(e[1]);throw new Error("[SX] $join: Invalid argument type: args[1] is not string.")}return e[0].join()}),fn=(un(null,null),(e,t)=>(...e)=>{Object(P["a"])("$concat",e,1);const t=R(...e);switch(typeof t){case"object":if(!("concat"in t))break;case"string":return t.concat(...e.slice(1))}throw new Error("[SX] $concat: Invalid argument type: object has no property 'concat'.")}),mn=(fn(null,null),(e,t)=>(...e)=>{if(Object(P["a"])("$slice",e,2,3),3===e.length&&("string"===typeof e[2]||Array.isArray(e[2])))return e[2].slice(Object(E["l"])(e[0]),Object(E["l"])(e[1]));if(2===e.length&&("string"===typeof e[1]||Array.isArray(e[1])))return e[1].slice(Object(E["l"])(e[0]));throw new Error(`[SX] $slice: Invalid argument type: args[${e.length-1}] is not string or array.`)}),bn=(mn(null,null),(e,t)=>(...e)=>{if(Object(P["a"])("$top",e,2,2),"string"===typeof e[1]||Array.isArray(e[1]))return e[1].slice(0,Object(E["l"])(e[0]));throw new Error("[SX] $top: Invalid argument type: args[1] is not string or array.")}),$n=(bn(null,null),(e,t)=>(...e)=>{if(Object(P["a"])("$tail",e,2,2),"string"===typeof e[1]||Array.isArray(e[1])){const t=-Object(E["l"])(e[0]);return e[1].slice(t>=0||Number.isNaN(t)?e[1].length:t)}throw new Error("[SX] $tail: Invalid argument type: args[1] is not string or array.")}),pn=($n(null,null),(e,t)=>(...e)=>(Object(P["a"])("$push",e,2,2),Array.isArray(e[0]),e[0].push(e[1]),e[0])),_n=(pn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$pop",e,1,1),Array.isArray(e[0]);{const t=e[0].pop();return t}}),dn=(_n(null,null),(e,t)=>(...e)=>{Object(P["a"])("$__at",e,2,2);const{car:t,cdr:n}=G(...e);return n[t]}),yn=(dn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$reverse",e,1,1);const t=R(...e);if(Array.isArray(t))return t.slice(0).reverse();throw new Error("[SX] $reverse: Invalid argument type: args[0] is not array.")}),gn=(yn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$reverse!",e,1,1);const t=R(...e);if(Array.isArray(t))return t.reverse();throw new Error("[SX] $reverse!: Invalid argument type: args[0] is not array.")}),jn=(gn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$find",e,2,2);const{car:t,cdr:n}=G(...e);if(Array.isArray(t))return t.find(n);throw new Error("[SX] $find: Invalid argument type: args[0] is not array.")}),On=(jn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$filter",e,2,2);const{car:t,cdr:n}=G(...e);if(Array.isArray(t))return t.filter(n);throw new Error("[SX] $filter: Invalid argument type: args[0] is not array.")}),hn=(On(null,null),(e,t)=>(...e)=>{Object(P["a"])("$map",e,2,2);const{car:t,cdr:n}=G(...e);if(Array.isArray(t))return t.map(n);throw new Error("[SX] $map: Invalid argument type: args[0] is not array.")}),vn=(hn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$reduce",e,2,3);const{car:t,cdr:n}=G(...e);if(Array.isArray(t))return e.length<3?t.reduce(n):t.reduce(n,e[2]);throw new Error("[SX] $reduce: Invalid argument type: args[0] is not array.")}),wn=(vn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$reduceFromTail",e,2,3);const{car:t,cdr:n}=G(...e);if(Array.isArray(t))return e.length<3?t.reduceRight(n):t.reduceRight(n,e[2]);throw new Error("[SX] $reduceFromTail: Invalid argument type: args[0] is not array.")}),Sn=(wn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$sort",e,2,2);const{car:t,cdr:n}=G(...e);if(Array.isArray(t))return t.slice(0).sort(n);throw new Error("[SX] $sort: Invalid argument type: args[0] is not array.")}),An=(Sn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$sort!",e,2,2);const{car:t,cdr:n}=G(...e);if(Array.isArray(t))return t.sort(n);throw new Error("[SX] $sort!: Invalid argument type: args[0] is not array.")}),En=(An(null,null),(e,t)=>(...e)=>{Object(P["a"])("$group-every",e,2,2);const{car:t,cdr:n}=G(...e);if(!Array.isArray(n))throw new Error("[SX] $group-every: Invalid argument type: args[1] is not array.");return tn(n).groupEvery(t).select()}),Nn=(En(null,null),(e,t)=>(...e)=>{Object(P["a"])("$group-by",e,2,2);const{car:t,cdr:n}=G(...e);if(!Array.isArray(n))throw new Error("[SX] $group-by: Invalid argument type: args[1] is not array.");return tn(n).groupBy(t).select()}),In=(Nn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$order-by",e,2,2);const{car:t,cdr:n}=G(...e);if(!Array.isArray(n))throw new Error("[SX] $order-by: Invalid argument type: args[1] is not array.");return tn(n).orderBy(t).select()}),kn=(In(null,null),(e,t)=>(...e)=>{Object(P["a"])("$where",e,2,2);const{car:t,cdr:n}=G(...e);if("function"!==typeof e[0])throw new Error("[SX] $where: Invalid argument type: args[0] is not function.");if(!Array.isArray(n))throw new Error("[SX] $where: Invalid argument type: args[1] is not array.");return tn(n).where(t).select()}),Tn=(kn(null,null),[{name:"$range",fn:nn},{name:"$length",fn:rn},{name:"$trim",fn:on},{name:"$trim-head",fn:an},{name:"$trim-tail",fn:sn},{name:"$replace-all",fn:ln},{name:"$split",fn:cn},{name:"$join",fn:un},{name:"$concat",fn:fn},{name:"$slice",fn:mn},{name:"$top",fn:bn},{name:"$tail",fn:$n},{name:"$push",fn:pn},{name:"$pop",fn:_n},{name:"$__at",fn:dn},{name:"$reverse",fn:yn},{name:"$reverse!",fn:gn},{name:"$find",fn:jn},{name:"$filter",fn:On},{name:"$map",fn:hn},{name:"$reduce",fn:vn},{name:"$reduce-from-head",fn:vn},{name:"$reduce-from-tail",fn:wn},{name:"$sort",fn:Sn},{name:"$sort!",fn:An},{name:"$group-every",fn:En},{name:"$group-by",fn:Nn},{name:"$order-by",fn:In},{name:"$where",fn:kn}]);var Xn=Tn;const xn=[{name:"$[",fn:(e,t)=>e=>{const t=Object(o["d"])(e[2],"]");if(!t)throw new Error("[SX] $repeat: Invalid syntax: missing ']' keyword.");return[{symbol:"$__at"},e[1],e[3]]}}];var Cn=xn;const Mn=[];var Pn=Mn;function Dn(e){return e.funcs=(e.funcs||[]).concat(Xn),e.macros=(e.macros||[]).concat(Cn),e.symbols=(e.symbols||[]).concat(Pn),e}const Ln=(e,t)=>(...t)=>{Object(P["a"])("$__letAsync",t,2,2);let n=t[1];return"object"===typeof n&&"function"===typeof n.then||(n=Promise.resolve(n)),n=n.then(n=>{try{return he(e,"")(t[0],n),n}catch(r){return Promise.reject(r)}}),n},qn=(Ln(null,null),(e,t)=>(...t)=>{Object(P["a"])("$__setAsync",t,2,2);let n=t[1];return"object"===typeof n&&"function"===typeof n.then||(n=Promise.resolve(n)),n=n.then(n=>{try{return ve(e,"")(t[0],n),n}catch(r){return Promise.reject(r)}}),n}),Un=(qn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$then",e,2,3);let t=e[0];if("object"===typeof t&&"function"===typeof t.then||(t=Promise.resolve(t)),"function"===typeof e[2])t=t.then(e[1],e[2]);else{if("function"!==typeof e[1])throw new Error("[SX] $then: Invalid argument(s): args[1] is not function.");t=t.then(e[1])}return t}),Rn=(Un(null,null),(e,t)=>(...e)=>{const t=e.slice(0);for(let n=0;n(...e)=>{const t=e.slice(0);for(let o=0;onew Promise((t,n)=>e.then(n,t)),r=e=>n(Promise.all(e.map(n)));return r(t)}),Bn=(Fn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$resolvePipe",e,1);let t=e[0];"object"===typeof t&&"function"===typeof t.then||(t=Promise.resolve(t));const n=e.slice(1);for(let o=0;oe}let r=t;for(const o of n)r=r.then(o);return r}),Wn=(Bn(null,null),(e,t)=>(...e)=>{Object(P["a"])("$resolveFork",e,1);let t=e[0];"object"===typeof t&&"function"===typeof t.then||(t=Promise.resolve(t));const n=e.slice(1);for(let s=0;se}const r=new Array(n.length),o=new Array(n.length),a=[];for(let s=0;s{r[s]=r=>{let o=n[s](r);"object"===typeof o&&"function"===typeof o.then||(o=Promise.resolve(o)),o.then(t=>e(t)).catch(e=>t(e))},o[s]=t}));return t.then(e=>r.forEach(t=>t(e)),e=>o.forEach(t=>t(e))),a}),Kn=(Wn(null,null),[{name:"$__let-async",fn:Ln},{name:"$__set-async",fn:qn},{name:"$then",fn:Un},{name:"$resolve-all",fn:Rn},{name:"$resolve-any",fn:Fn},{name:"$resolve-pipe",fn:Bn},{name:"$resolve-fork",fn:Wn}]);var Vn=Kn;const Gn=[{name:"$let-async",fn:(e,t)=>t=>(Object(P["a"])("$let-async",t,3,3),[{symbol:"$__let-async"},Object(o["f"])(e,t[1]),t[2]])},{name:"$set-async",fn:(e,t)=>t=>(Object(P["a"])("$set-async",t,3,3),[{symbol:"$__set-async"},Object(o["f"])(e,t[1]),t[2]])}];var Jn=Gn;const Hn=[];var zn=Hn;function Yn(e){return e.funcs=(e.funcs||[]).concat(Vn),e.macros=(e.macros||[]).concat(Jn),e.symbols=(e.symbols||[]).concat(zn),e}const Qn=(()=>{let e=Object.assign({},s);return e.reservedNames=Object.assign({},e.reservedNames,{Template:"$concat"}),e=St(e),e=Zt(e),e=Dn(e),e=Yn(e),e.stripComments=!0,T(e)})(),Zn=Qn,er=Qn,tr=(()=>{let e=Object.assign({},s);return e.reservedNames=Object.assign({},e.reservedNames,{Template:"$concat"}),e=St(e),e=Zt(e),e=Dn(e),e=Yn(e),e.stripComments=!0,X(e)})(),nr=tr,rr=tr,or=(()=>{let e=Object.assign({},s);return e.reservedNames=Object.assign({},e.reservedNames,{Template:"$concat"}),e=St(e),e=Zt(e),e=Dn(e),e=Yn(e),e.stripComments=!0,e.returnMultipleRoot=!0,T(e)})(),ar=(()=>{let e=Object.assign({},s);return e.reservedNames=Object.assign({},e.reservedNames,{Template:"$concat"}),e=St(e),e=Zt(e),e=Dn(e),e=Yn(e),e.stripComments=!0,e.returnMultipleRoot=!0,X(e)})(),sr=(e,t)=>(...t)=>{Object(P["a"])("$__outputIf",t,2);const{car:n,cdr:r}=G(...t);let o=[];return Se(n)&&(2(...n)=>{Object(P["a"])("$__outputForOf",n,2);const r=R(...n),a=[];if(!Array.isArray(r))throw new Error("[SX] $__outputForOf: Invalid argument(s): args[0] is not array.");for(let s=0;s[{symbol:e.config.reservedNames.quote},t])))},cr=(e,t)=>(...t)=>{const n={};for(const r of t){if(!(Array.isArray(r)&&0=2){const t={};for(const n of r.slice(1))if(Array.isArray(n)&&1=2){let t=[];for(const n of r.slice(1))Array.isArray(n)?t=t.concat(n.map(t=>Object(E["b"])(e,t))):"string"===typeof n&&(t=t.concat(n.split(" ")));const o=[],s=e=>e.forEach(e=>null===e||void 0===e?void 0:Array.isArray(e)?s(e):o.push(String(e)));s(t),n[a]=o}break;case"className":if(1===r.length)n[a]="";else if(r.length>=2){let t="";for(const n of r.slice(1)){let r="";if(Array.isArray(n)){const t=[],o=n=>n.map(t=>Object(E["b"])(e,t)).forEach(e=>null===e||void 0===e?void 0:Array.isArray(e)?o(e):t.push(String(e)));o(n),r=t.join(" ")}else"string"===typeof n&&(r=n);0=2?n[a]={__html:Object(E["b"])(e,r[1])}:n[a]={__html:Object(E["b"])(e,[{symbol:e.config.reservedNames.list}].concat(r.slice(1)))};break;case"setInnerText":1===r.length?n[a]={__text:""}:r.length>=2?n[a]={__text:Object(E["b"])(e,r[1])}:n[a]={__text:Object(E["b"])(e,[{symbol:e.config.reservedNames.list}].concat(r.slice(1)))};break;default:Object(P["c"])("$jsxProps",n,a),1===r.length?n[a]=!0:2===r.length?n[a]=Object(E["b"])(e,r[1]):n[a]=Object(E["b"])(e,[{symbol:e.config.reservedNames.list}].concat(r.slice(1)));break}}}return n};function ir(e,...t){let n=t,r={};if(0(...n)=>{const{props:r,children:o}=ir(e,...n);return e.config.jsx(t,r,...o)},fr=e=>(t,n)=>(...n)=>{const{props:r,children:o}=ir(t,...n);return t.config.jsx(e,r,...o)},mr=[{name:"$=__if",fn:sr},{name:"$=__for",fn:lr}];var br=mr;const $r=[{name:"@",fn:(e,t)=>t=>Object(o["f"])(e,t)},{name:"$=if",fn:(e,t)=>t=>[{symbol:"$=__if"},t[1],...t.slice(2).map(t=>Object(o["f"])(e,t))]},{name:"$=for",fn:(e,t)=>t=>[{symbol:"$=__for"},t[1],...t.slice(2).map(t=>Object(o["f"])(e,t))]}];var pr=$r;const _r=[];var dr=_r;function yr(e,t){e.funcs=(e.funcs||[]).concat(br),e.macros=(e.macros||[]).concat(pr),e.symbols=(e.symbols||[]).concat(dr);const n=Object.entries(t.components).map(e=>({name:e[0],fn:fr(e[1])}));return e.funcs=e.funcs.concat({name:e.reservedNames.Template,fn:fr(t.jsxFlagment)},...n),e.funcSymbolResolverFallback=ur,e.jsx=t.jsx,e.JsxFragment=t.jsxFlagment,e}function gr(e){let t=Object.assign({},s);return t=St(t),t=Zt(t),t=Dn(t),t=Yn(t),t=yr(t,e),t.stripComments=!0,T(t)}function jr(e){let t=Object.assign({},s);return t=St(t),t=Zt(t),t=Dn(t),t=Yn(t),t=yr(t,e),t.stripComments=!0,X(t)}function Or(e,t,n="text/lisp"){const r=document.querySelectorAll(`script[type="${n}"]`),o=[];for(let a=0;a>>32-a},rotr:function(e,a){return e<<32-a|e>>>a},endian:function(e){if(e.constructor==Number)return 16711935&c.rotl(e,8)|4278255360&c.rotl(e,24);for(var a=0;a0;e--)a.push(Math.floor(256*Math.random()));return a},bytesToWords:function(e){for(var a=[],c=0,d=0;c>>5]|=e[c]<<24-d%32;return a},wordsToBytes:function(e){for(var a=[],c=0;c<32*e.length;c+=8)a.push(e[c>>>5]>>>24-c%32&255);return a},bytesToHex:function(e){for(var a=[],c=0;c>>4).toString(16)),a.push((15&e[c]).toString(16));return a.join("")},hexToBytes:function(e){for(var a=[],c=0;c>>6*(3-f)&63)):c.push("=");return c.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var c=[],d=0,s=0;d>>6-2*s);return c}};e.exports=c})()},1151:function(e,a,c){"use strict";c.d(a,"a",(function(){return h})),c.d(a,"b",(function(){return m})),c.d(a,"c",(function(){return g}));var d=c("58b7"),s=c.n(d),f=c("c0d2");const t=[0,2,4,5,7,9,11],b=60,n=e=>{let a=e%7;while(a<0)a+=7;return a},r=e=>{let a=e%12;while(a<0)a+=12;return a},o=e=>Number.isFinite(e)?e:e.toString(),i="CDEFGAB",l={[-2]:"♭♭",[-1]:"♭",[0]:"♮",[1]:"♯",[2]:"𝄪"};class u{constructor(){this.clef=-3,this.keyAlters=new f["a"],this.octaveShift=0,this.alters=new f["a"]}get keySignature(){return this.keyAlters.filter(e=>Number.isInteger(e)).reduce((e,a)=>e+a,0)}noteToY(e){return-e/2-this.clef-3.5*this.octaveShift}pitchToNote(e,{preferredAlter:a=null}={}){a||(a=this.keySignature<0?-1:1);const c=Math.floor((e-b)/12),d=r(e),s=t.includes(d)?d:r(d-a),f=t.indexOf(s);console.assert(f>=0,"invalid preferredAlter:",e,a,s);const n=7*c+f,o=d-s,i=this.keyAlters[f]||0,l=Number.isInteger(this.alters[n]),u=l?o:o===i?null:o;return{note:n,alter:u}}pitchToY(e,{preferredAlter:a=null}={}){const{note:c,alter:d}=this.pitchToNote(e,{preferredAlter:a}),s=this.noteToY(c);return{y:s,alter:d}}yToNote(e){return console.assert(Number.isInteger(2*e),"invalid y:",e),2*(-e-3.5*this.octaveShift-this.clef)}alterOnNote(e){if(Number.isInteger(this.alters[e]))return this.alters[e];const a=n(e);return Number.isInteger(this.keyAlters[a])?this.keyAlters[a]:0}noteToPitch(e){const a=Math.floor(e/7),c=n(e),d=b+12*a+t[c]+this.alterOnNote(e);return Number.isFinite(d)?d:(console.warn("invalid pitch value:",d,e,a,c),-1)}yToPitch(e){return this.noteToPitch(this.yToNote(e))}yToPitchName(e){const a=this.yToNote(e),c=Math.floor(a/7),d=n(a);let s=this.alterOnNote(a);return s||Number.isInteger(this.alters[a])||(s=null),`${l[s]?l[s]:""}${i[d]}${c+4}`}}class h extends u{constructor(e){super(),Object.assign(this,e)}toJSON(){return{__prototype:"PitchContext",clef:this.clef,keyAlters:new f["a"](this.keyAlters),octaveShift:this.octaveShift,alters:new f["a"](this.alters)}}get hash(){return s()(JSON.stringify(this))}}class m{constructor({items:e}){this.items=e.map(m.itemFromJSON)}static createFromNotation(e,a,c){const d=[];let s=-1;const f=a.filter(e=>e.staffTrack===c);for(const t of f)while(t.contextIndex>s){++s;const a=e[s];console.assert(!!a,"invalid contextIndex:",s,t.contextIndex,e.length),d.push({tick:t.startTick,context:a})}return d.forEach((e,a)=>e.endTick=a+1m.createFromNotation(e,a.notes,c))}static itemToJSON(e){return{...e,endTick:o(e.endTick)}}static itemFromJSON(e){return{...e,endTick:Number(e.endTick)}}toJSON(){return{__prototype:"PitchContextTable",items:this.items.map(m.itemToJSON)}}lookup(e){const a=this.items.find(a=>e>=a.tick&&e{e*a<0&&(this.keyAlters[c]=0)});const c=n(this.yToNote(e));this.keyAlters[c]=a,this.logger.append("setKeyAlter",{n:c,value:a}),this.dirty=!0}setAlter(e,a){const c=this.yToNote(e);this.alters[c]=a,this.logger.append("setAlter",{n:c,value:a}),this.dirty=!0}setClef(e,a){const c=-e-a/2;c!==this.clef&&(this.clef=c,this.dirty=!0)}setOctaveShift(e){this.octaveShift!==e&&(this.octaveShift=e,this.dirty=!0,this.logger.append("octaveShift",e))}setBeatsPerMeasure(e){this.beatsPerMeasure=e}}},"12b4":function(e,a,c){"use strict";a["a"]=(e,a)=>Object.fromEntries(Object.entries(e).filter(([e])=>a.includes(e)))},"16d8":function(e,a,c){"use strict";c.d(a,"a",(function(){return d}));class d{constructor(e){this.source=e;const a=d.matchPositions(/\n/g,e);this.linePositions=[0,...a.map(e=>e+1)]}static matchPositions(e,a){const c=[];let d;while(d=e.exec(a))c.push(d.index);return c}slice(e,a){Array.isArray(e)||(e=[e,e]);const c=this.linePositions[e[0]-1]+a[0],d=this.linePositions[e[1]-1]+a[1];return this.source.substr(c,d-c)}charsToPosition(e){let a=this.linePositions.findIndex(a=>a>e);a=a<0?this.linePositions.length:a;const c=e-this.linePositions[a-1];return[a,c]}positionToChars([e,a]){return e>=this.linePositions.length?NaN:this.linePositions[e-1]+a}}},"1f25":function(e,a,c){"use strict";c.d(a,"b",(function(){return d})),c.d(a,"a",(function(){return s})),c.d(a,"f",(function(){return f})),c.d(a,"c",(function(){return t})),c.d(a,"d",(function(){return b})),c.d(a,"e",(function(){return n})),c.d(a,"g",(function(){return r})),c.d(a,"h",(function(){return o}));const d="2.20.0",s=37.794,f=.5,t=.6,b=1,n=20,r=.06,o='\n ]>\n'},"1fb5":function(e,a,c){"use strict";a.byteLength=o,a.toByteArray=l,a.fromByteArray=m;for(var d=[],s=[],f="undefined"!==typeof Uint8Array?Uint8Array:Array,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b=0,n=t.length;b0)throw new Error("Invalid string. Length must be a multiple of 4");var c=e.indexOf("=");-1===c&&(c=a);var d=c===a?0:4-c%4;return[c,d]}function o(e){var a=r(e),c=a[0],d=a[1];return 3*(c+d)/4-d}function i(e,a,c){return 3*(a+c)/4-c}function l(e){var a,c,d=r(e),t=d[0],b=d[1],n=new f(i(e,t,b)),o=0,l=b>0?t-4:t;for(c=0;c>16&255,n[o++]=a>>8&255,n[o++]=255&a;return 2===b&&(a=s[e.charCodeAt(c)]<<2|s[e.charCodeAt(c+1)]>>4,n[o++]=255&a),1===b&&(a=s[e.charCodeAt(c)]<<10|s[e.charCodeAt(c+1)]<<4|s[e.charCodeAt(c+2)]>>2,n[o++]=a>>8&255,n[o++]=255&a),n}function u(e){return d[e>>18&63]+d[e>>12&63]+d[e>>6&63]+d[63&e]}function h(e,a,c){for(var d,s=[],f=a;fn?n:b+t));return 1===s?(a=e[c-1],f.push(d[a>>2]+d[a<<4&63]+"==")):2===s&&(a=(e[c-2]<<8)+e[c-1],f.push(d[a>>10]+d[a>>4&63]+d[a<<2&63]+"=")),f.join("")}s["-".charCodeAt(0)]=62,s["_".charCodeAt(0)]=63},"32c1":function(e,a,c){"use strict";c.r(a),c.d(a,"svgToElements",(function(){return f})),c.d(a,"tokenizeElements",(function(){return W})),c.d(a,"organizeTokens",(function(){return G})),c.d(a,"parseSvgPage",(function(){return ee})),c.d(a,"postProcessSheetDocument",(function(){return ce})),c.d(a,"turnRawSvgWithSheetDocument",(function(){return de})),c.d(a,"createSheetDocumentFromSvgs",(function(){return ae})),c.d(a,"StaffToken",(function(){return I["a"]})),c.d(a,"SheetDocument",(function(){return V["e"]})),c.d(a,"SheetPage",(function(){return V["SheetPage"]})),c.d(a,"SheetSystem",(function(){return V["SheetSystem"]})),c.d(a,"SheetStaff",(function(){return V["SheetStaff"]})),c.d(a,"SheetMeasure",(function(){return V["SheetMeasure"]})),c.d(a,"StaffNotation",(function(){return H})),c.d(a,"StaffAttributes",(function(){})),c.d(a,"HashTable",(function(){})),c.d(a,"LilyDocumentAttribute",(function(){return J["LilyDocumentAttribute"]})),c.d(a,"LilyDocumentAttributeReadOnly",(function(){return J["LilyDocumentAttributeReadOnly"]})),c.d(a,"glyph",(function(){return Q}));const d={...["viewBox","transform","x","y","width","height","ry","d","x1","y1","x2","y2","color","stroke-width","points","stroke-dasharray","font-size","font-weight","font-style","text-anchor"].reduce((e,a)=>({...e,[a]:a}),{}),"xlink:href":"href"},s=e=>{const a={type:e.tagName};for(const c in d){const s=e.getAttribute(c);s&&(a[d[c]]=s)}switch(e.tagName){case"tspan":a.text=e.textContent;break;case"a":/:(\d+:\d+:\d+)$/.test(a.href)?a.href=a.href.match(/:(\d+:\d+:\d+)$/)[1]:delete a.href;break;case"path":break;case"polygon":break}if(["x","y","width","height","ry","x1","y1","x2","y2","stroke-width","font-size","font-weight","font-style","text-anchor"].forEach(e=>{if(a[e]){const c=Number(a[e]);Number.isFinite(c)&&(a[e]=c)}}),a.transform){let[e,c,d,s,f]=[null,0,0,1,1];/translate\([\d.\-,\s]+\)\s*scale\([\d.\-,\s]+\)/.test(a.transform)?[e,c,d,s,f]=a.transform.match(/translate\(([\d.-]+),\s*([\d.-]+)\)\s*scale\(([\d.-]+),\s*([\d.-]+)\)/):/translate\([\d.\-,\s]+\)/.test(a.transform)?[e,c,d]=a.transform.match(/translate\(([\d.-]+),\s*([\d.-]+)\)/):/scale\([\d.\-,\s]+\)/.test(a.transform)?[e,s,f]=a.transform.match(/scale\(([\d.-]+),\s*([\d.-]+)\)/):/^rotate(.*)$/.test(a.transform)||console.warn("unexpected transform:",a.transform),a.transform={translate:{x:Number(c),y:Number(d)},scale:{x:Number(s),y:Number(f)}}}for(let c=0;c"tspan"===e.type&&e.text).map(e=>e.text).join(""));break}return a},f=(e,{logger:a=null,DOMParser:c=null}={})=>{const d=(new c).parseFromString(e,"text/xml");a&&a.append("svgToElements");const f=d.childNodes[0];console.assert(f&&"svg"===f.tagName);const t=s(f);if(!t.children)return console.log("invalid svg:",t,e),null;while(1){const e=t.children.findIndex(e=>"a"===e.type&&e.children);if(e>=0){const a=t.children[e];a.children.forEach(e=>{e.href=a.href,e.color=a.color}),t.children.splice(e,1,...a.children)}else{const e=t.children.findIndex(e=>"g"===e.type&&e.children);if(!(e>=0))break;{const a=t.children[e];for(const e of a.children)a.transform&&(e.transform=e.transform||{translate:{x:0,y:0},scale:{x:1,y:1}},e.transform.translate.x=a.transform.translate.x+e.transform.translate.x*a.transform.scale.x,e.transform.translate.y=a.transform.translate.y+e.transform.translate.y*a.transform.scale.y,e.transform.scale.x*=a.transform.scale.x,e.transform.scale.y*=a.transform.scale.y),a.color&&(e.color=a.color),a.href&&(e.href=a.href);t.children.splice(e,1,...a.children)}}}return t};var t=c("adc7"),b=c("58b7"),n=c.n(b),r=c("e9ba"),o=c("cc32");const i=e=>{const a=Object.entries(e).sort(([e],[a])=>e>a?1:-1);return n()(JSON.stringify(a))},l=(e,a)=>{const c=i(a);return a=>{if(a.hash===c)return{symbol:e}}},u=e=>e.replace(/\s+/g," ").replace(/\d/g,""),h=e=>e.replace(/\s+/g," ").replace(/-?[.\d]+/g,"."),m=e=>e.split(" ").length,p=(e,a)=>c=>{if("path"===c.identity.type&&u(c.identity.d)===a)return{symbol:e}},g=(e,a)=>c=>{if("path"===c.identity.type&&a.includes(u(c.identity.d)))return{symbol:e}},v=(e,a)=>c=>{if("path"===c.identity.type&&a.includes(h(c.identity.d)))return{symbol:e}},M=(e,a)=>e.identity.scale&&Math.abs(e.identity.scale.x)===a&&Math.abs(e.identity.scale.y)===a,k=(e,a,c=(()=>({})))=>d=>{if(a(d))return{symbol:e,...c(d)}},y=(e,a)=>c=>{if(c.glyph===a)return{symbol:e}},_=[g("NOTE NOTEHEAD CROSS",["M163 31l125 101c2 2 5 3 8 3s6 -1 8 -3l18 -14c3 -2 4 -6 4 -10s-1 -8 -4 -10l-121 -98l121 -98c3 -2 4 -6 4 -10s-1 -8 -4 -10l-18 -14c-2 -2 -5 -3 -8 -3s-6 1 -8 3l-125 101l-125 -101c-2 -2 -5 -3 -8 -3s-6 1 -8 3l-17 14c-3 2 -5 6 -5 10s2 8 5 10l120 98l-120 98\t\tc-3 2 -5 6 -5 10s2 8 5 10l17 14c2 2 5 3 8 3s6 -1 8 -3z"].map(u)),g("NOTE NOTEHEAD DIAMOND WHOLE",["M206 75c-29 0 -27 -45 -27 -74c0 -47 25 -56 61 -67c13 -4 28 -9 40 -9c29 0 26 45 26 74c0 47 -25 56 -61 67c-13 4 -27 9 -39 9zM485 0c0 -57 -78 -42 -122 -67c-41 -23 -72 -68 -120 -68s-80 45 -121 68c-44 25 -122 10 -122 67s78 42 122 67c41 23 73 68 121 68\t\ts79 -45 120 -68c44 -25 122 -10 122 -67z"].map(u)),g("NOTE NOTEHEAD DIAMOND HALF",["M290 55c0 17 -15 27 -30 27c-4 0 -8 -1 -12 -2c-25 -8 -60 -30 -89 -49s-65 -42 -82 -62c-6 -7 -10 -16 -10 -24c0 -17 14 -27 29 -27c4 0 9 1 13 2c25 8 60 30 89 49s65 42 82 62c6 7 10 16 10 24zM316 135c18 0 41 -17 41 -40c0 -28 -33 -54 -42 -84\t\tc-11 -36 3 -84 -30 -106c-15 -10 -33 -13 -51 -13c-25 0 -50 6 -76 6c-43 0 -83 -33 -118 -33c-18 0 -40 17 -40 40c0 28 33 54 42 84c11 36 -3 84 30 106c15 10 32 13 50 13c25 0 51 -6 77 -6c43 0 82 33 117 33z"].map(u)),g("NOTE NOTEHEAD DIAMOND SOLID",["M325 135c19 0 36 -18 36 -38c0 -36 -61 -62 -84 -100c-25 -41 -32 -95 -72 -123c-9 -6 -18 -8 -28 -8c-23 0 -48 12 -72 12c-23 0 -47 -13 -68 -13c-19 0 -37 18 -37 38c0 36 61 62 84 100c25 41 33 95 73 123c9 6 17 8 27 8c23 0 48 -12 72 -12c23 0 48 13 69 13z"].map(u)),g("NOTE REST",["M510 -22h-645c-12 0 -21 10 -21 22s9 22 21 22h135v126c0 4 4 8 8 8h359c4 0 8 -4 8 -8v-126h135c12 0 21 -10 21 -22s-9 -22 -21 -22z"].map(u)),g("TR",["M-300 227c0 -23 18 -32 41 -32c40 0 72 14 104 28l5 28c-23 17 -50 29 -82 29c-33 0 -68 -17 -68 -53zM-26 103c0 -61 -47 -113 -98 -113c-39 0 -56 43 -56 90c0 14 1 28 4 41l16 78c-32 -13 -63 -25 -103 -25c-34 0 -59 17 -59 49c0 50 47 78 94 78c31 0 59 -10 83 -25\t\tl47 234c6 -3 13 -5 20 -5c22 0 48 16 68 35l-54 -268l66 36c26 14 51 21 74 21c29 0 53 -11 64 -30c17 21 44 32 70 32c35 0 67 -20 67 -66c0 -44 -27 -89 -64 -89c-25 0 -37 22 -37 48c0 41 28 63 59 63h4c-8 14 -23 21 -38 21c-25 0 -51 -16 -57 -45l-53 -269\t\tc-11 7 -25 10 -39 10s-29 -3 -43 -10l54 269v6c0 16 -13 27 -30 27c-7 0 -15 -2 -23 -6l-79 -44l-7 -35c27 -31 50 -66 50 -108zM-84 39c23 0 36 33 36 61c0 31 -15 57 -34 81l-6 -30c-4 -18 -12 -54 -12 -81c0 -18 4 -31 16 -31z","M-299 227c0 -22 18 -31 41 -31c40 0 71 14 103 28l5 26c-23 17 -51 29 -82 29c-32 0 -67 -16 -67 -52zM-26 104c0 -61 -47 -114 -98 -114c-39 0 -56 43 -56 90c0 14 1 28 4 41l16 77c-31 -13 -63 -25 -103 -25c-35 0 -59 17 -59 50c0 51 48 79 95 79c31 0 58 -10 82 -25\t\tl47 233c6 -3 13 -5 20 -5c22 0 48 16 68 35l-54 -267l66 36c26 14 51 21 74 21c29 0 52 -11 63 -30c18 20 45 31 70 31c35 0 68 -21 68 -67c0 -45 -28 -89 -65 -89c-25 0 -37 21 -37 47c0 41 29 64 60 64h3c-8 14 -22 21 -37 21c-24 0 -51 -17 -57 -45l-53 -269\t\tc-11 7 -25 11 -39 11s-29 -4 -43 -11l53 269c0 2 1 5 1 7c0 16 -13 27 -30 27c-7 0 -15 -3 -23 -7l-79 -44l-7 -33c27 -31 50 -66 50 -108zM-85 39c23 0 35 33 35 61c0 30 -14 56 -32 79l-6 -28c-4 -18 -12 -55 -12 -82c0 -17 4 -30 15 -30z","M-295 228c0 -21 17 -30 38 -30c39 0 71 14 102 28l5 22c-23 17 -50 29 -81 29s-64 -15 -64 -49zM-26 104c0 -62 -47 -114 -98 -114c-39 0 -56 43 -56 90c0 14 1 28 4 41l15 75c-31 -13 -62 -24 -101 -24c-35 0 -60 17 -60 50c0 52 49 82 97 82c30 0 57 -9 81 -24l46 230\t\tc6 -3 13 -5 20 -5c22 0 48 16 68 35l-53 -265l64 35c26 14 51 21 74 21c28 0 52 -10 63 -28c18 19 43 29 68 29c36 0 70 -22 70 -70c0 -46 -27 -91 -65 -91c-25 0 -39 22 -39 48c0 42 30 64 61 64h3c-8 14 -23 21 -38 21c-23 0 -49 -16 -54 -42l-54 -270\t\tc-11 7 -24 11 -38 11s-30 -4 -44 -11l54 270c0 2 1 5 1 7c0 15 -13 25 -29 25c-7 0 -15 -3 -23 -7l-81 -44l-5 -29c27 -31 49 -68 49 -110zM-87 39c22 0 34 34 34 61c0 29 -13 54 -30 76l-5 -25c-4 -19 -14 -57 -14 -84c0 -16 4 -28 15 -28z"].map(u)),k("MEASURE_SEPARATOR",e=>"rect"===e.identity.type&&.19===e.sw&&e.identity.rh>=4&&e.identity.rh<=4.35),k("MEASURE_SEPARATOR BOLD",e=>"rect"===e.identity.type&&.6===e.sw&&e.identity.rh>=4&&e.identity.rh<=4.35),g("BRACE",["M- -c - - - - -c - - -c - - - - -c- - - c c - - c- - - s c c - - c c - -c- - - - - -c - - -c - - - - -c - - -z","M- -c - - - - -c - - -c - - - - -c- - - c c - - vvc c - - c c - - c- - - - - -c - - -c - - - - -c - - -z","M- -c - - - - -c - - -c - - - - -c- - - c c - - c - - s c c - - c c - -c- - - - - -c - - -c - - - - -c - - -z","M- -c - - - - -c - - -c - - - - -c- - - c c - - c- - - s c c - - c c - -c- - - - - -c - - -c - - - - -c - - -z"]),v("BRACE",["M-15 -495c0 -261 -102 -516 -102 -762c0 -135 30 -258 129 -357c3 -3 3 -9 3 -12c0 -9 -6 -15 -15 -15c-3 0 -9 0 -12 3c-132 132 -177 312 -177 498c0 267 108 525 108 777c0 135 -33 258 -129 357c-3 3 -3 3 -3 6s0 3 3 6c96 99 129 222 129 357\t\tc0 252 -108 510 -108 777c0 186 45 366 177 498c3 3 9 3 12 3c9 0 15 -6 15 -15c0 -3 0 -9 -3 -12c-99 -99 -129 -222 -129 -357c0 -246 102 -501 102 -762c0 -186 -48 -363 -174 -495c126 -132 174 -309 174 -495z","M-15 -537c0 -285 -111 -561 -111 -831c0 -147 36 -282 138 -390c3 -3 6 -9 6 -12c0 -9 -9 -18 -18 -18c-3 0 -9 3 -12 6c-138 147 -186 339 -186 540c0 291 114 570 114 846c0 144 -33 279 -135 387c-3 3 -3 6 -3 9s0 6 3 9c102 108 135 243 135 387\t\tc0 276 -114 555 -114 846c0 201 48 393 186 540c3 3 9 6 12 6c9 0 18 -9 18 -18c0 -3 -3 -9 -6 -12c-102 -108 -138 -243 -138 -390c0 -270 111 -546 111 -831c0 -198 -45 -390 -180 -537c135 -147 180 -339 180 -537z","M-18 -471c0 -246 -96 -489 -96 -723c0 -129 33 -246 126 -339c3 -3 3 -9 3 -12c0 -9 -6 -15 -15 -15c-3 0 -9 0 -12 3c-126 126 -171 294 -171 474c0 252 102 501 102 738c0 129 -30 246 -123 339c-3 3 -3 3 -3 6s0 3 3 6c93 93 123 210 123 339c0 237 -102 486 -102 738\t\tc0 180 45 348 171 474c3 3 9 3 12 3c9 0 15 -6 15 -15c0 -3 0 -9 -3 -12c-93 -93 -126 -210 -126 -339c0 -234 96 -477 96 -723c0 -177 -42 -345 -165 -471c123 -126 165 -294 165 -471z","M-12 -636c0 -340 -128 -672 -128 -996c0 -172 36 -336 152 -468c4 -4 8 -8 8 -12c0 -8 -12 -20 -20 -20c-4 0 -8 4 -12 8c-156 176 -212 400 -212 636c0 348 136 684 136 1016c0 172 -36 332 -152 464c0 4 -4 4 -4 8s4 4 4 8c116 132 152 292 152 464\t\tc0 332 -136 668 -136 1016c0 236 56 460 212 636c4 4 8 8 12 8c8 0 20 -12 20 -20c0 -4 -4 -8 -8 -12c-116 -132 -152 -296 -152 -468c0 -324 128 -656 128 -996c0 -232 -52 -460 -204 -636c152 -176 204 -404 204 -636z","M-12 -656c0 -352 -132 -696 -132 -1032c0 -180 36 -344 156 -484c4 -4 8 -8 8 -12c0 -8 -12 -16 -20 -16c-4 0 -8 0 -12 4c-160 184 -216 416 -216 656c0 360 140 712 140 1052c0 176 -40 344 -160 480v8v8c120 136 160 304 160 480c0 340 -140 692 -140 1052\t\tc0 240 56 472 216 656c4 4 8 4 12 4c8 0 20 -8 20 -16c0 -4 -4 -8 -8 -12c-120 -140 -156 -304 -156 -484c0 -336 132 -680 132 -1032c0 -240 -52 -472 -208 -656c156 -184 208 -416 208 -656z","M-208 -1352c0 316 124 624 124 924c0 156 -36 300 -144 420c0 4 -4 4 -4 8s4 4 4 8c108 120 144 264 144 420c0 300 -124 608 -124 924c0 216 52 420 196 580c16 16 40 -8 24 -24c-108 -120 -144 -268 -144 -424c0 -292 116 -596 116 -904c0 -216 -48 -420 -188 -580\t\tc140 -160 188 -364 188 -580c0 -308 -116 -612 -116 -904c0 -156 36 -304 144 -424c16 -16 -8 -40 -24 -24c-144 160 -196 364 -196 580z","M-255 -1860c0 435 160 855 160 1270c0 210 -45 410 -180 580c0 0 -5 5 -5 10s5 10 5 10c135 170 180 370 180 580c0 415 -160 835 -160 1270c0 285 60 560 240 785c15 20 45 -5 30 -25c-135 -170 -180 -370 -180 -585c0 -410 155 -820 155 -1250\t\tc0 -285 -65 -560 -240 -785c175 -225 240 -500 240 -785c0 -430 -155 -840 -155 -1250c0 -215 45 -415 180 -585c15 -20 -15 -45 -30 -25c-180 225 -240 500 -240 785z","M-240 -1668c0 392 148 768 148 1140c0 192 -40 368 -168 520v8v8c128 152 168 328 168 520c0 372 -148 748 -148 1140c0 260 56 508 224 708c16 20 48 -4 32 -24c-128 -152 -168 -332 -168 -524c0 -364 140 -736 140 -1120c0 -260 -56 -508 -220 -708\t\tc164 -200 220 -448 220 -708c0 -384 -140 -756 -140 -1120c0 -192 40 -372 168 -524c16 -20 -16 -44 -32 -24c-168 200 -224 448 -224 708z"].map(h)),g("SLUR DOWN",["M1.5028 -0.8074C2.4307 0.0391 5.9413 0.0391 6.8692 -0.8074L6.8692 -0.8074C5.9413 -0.0896 2.4307 -0.0896 1.5028 -0.8074z","M1.5806 -0.0000C2.6617 0.9012 7.7937 0.9012 8.8748 -0.0000L8.8748 -0.0000C7.7937 0.7724 2.6617 0.7724 1.5806 -0.0000z","M0.1358 4.1918C3.1384 5.5006 23.9261 1.8052 26.2937 -0.4582L26.2937 -0.4582C23.9068 1.6964 3.1190 5.3918 0.1358 4.1918z","M5.4000 -1.4582C7.2084 0.4248 16.2728 1.8025 18.5590 0.5418L18.5590 0.5418C16.2894 1.6932 7.2250 0.3156 5.4000 -1.4582z","M0.6840 -0.9582C3.3097 0.6061 19.0586 -0.5325 21.4320 -2.4582L21.4320 -2.4582C19.0506 -0.6428 3.3018 0.4958 0.6840 -0.9582z","M0.7359 -0.8082C2.1046 0.0164 4.9041 -0.5297 5.8626 -1.8082L5.8626 -1.8082C4.8830 -0.6382 2.0835 -0.0921 0.7359 -0.8082z","M-0.0038 2.7489C1.0356 4.0058 3.9703 4.4396 5.3289 3.5372L5.3289 3.5372C3.9865 4.3303 1.0518 3.8964 -0.0038 2.7489z","M0.4158 -0.8186C0.9635 -0.1463 2.0441 0.0143 2.7712 -0.4686L2.7712 -0.4686C2.0598 -0.0914 0.9792 -0.2520 0.4158 -0.8186z","M0.4367 -5.4611C-1.1373 3.6241 33.0534 23.1887 40.0887 17.2285L40.0887 17.2285C33.1065 23.0960 -1.0842 3.5314 0.4367 -5.4611z","M0.2462 -1.1121C0.2563 -0.2493 0.9868 0.5033 1.8489 0.5389L1.8489 0.5389C1.0635 0.4288 0.3329 -0.3237 0.2462 -1.1121z","M0.6586 -1.4611C3.4185 0.3179 24.8011 0.0392 27.5138 -1.8111L27.5138 -1.8111C24.7997 -0.0676 3.4171 0.2111 0.6586 -1.4611z","M0.5814 4.0389C2.0266 5.6914 7.6905 6.6341 9.5930 5.5389L9.5930 5.5389C7.7037 6.5547 2.0398 5.6119 0.5814 4.0389z","M0.4463 -1.8051C1.2147 -0.5286 3.6343 0.1911 4.9850 -0.4551L4.9850 -0.4551C3.6728 0.0617 1.2532 -0.6580 0.4463 -1.8051z"].map(u)),g("SLUR UP",["M1.6331 0.7750C2.7048 -0.1232 7.7198 -0.1232 8.7915 0.7750L8.7915 0.7750C7.7198 0.0055 2.7048 0.0055 1.6331 0.7750z","M1.2172 -3.2497C3.8915 -5.3756 29.8558 -8.0703 32.9096 -6.5389L32.9096 -6.5389C29.8641 -7.9902 3.8998 -5.2954 1.2172 -3.2497z","M0.8860 0.2500C1.9483 -0.6211 6.8471 -0.6211 7.9093 0.2500L7.9093 0.2500C6.8471 -0.5405 1.9483 -0.5405 0.8860 0.2500z","M8.8571 -2.1918C12.2053 -7.7623 37.6503 -5.5978 40.0096 0.4582L40.0096 0.4582C37.6407 -5.4854 12.1958 -7.6498 8.8571 -2.1918z","M5.4000 0.8082C8.8706 -1.2527 91.8062 -3.0964 95.3650 -1.1918L95.3650 -1.1918C91.8086 -2.9859 8.8731 -1.1422 5.4000 0.8082z","M0.3581 2.9514C0.5936 0.9531 3.9709 -2.1395 5.9821 -2.1986L5.9821 -2.1986C4.0579 -2.0445 0.6806 1.0481 0.3581 2.9514z","M0.5939 1.7682C2.2579 -0.0946 9.4770 -1.0830 11.5491 0.2682L11.5491 0.2682C9.4914 -0.9772 2.2724 0.0113 0.5939 1.7682z"].map(u)),g("SLUR",["M. -.C. -. . -. . -.C. -. . -. . -.z","M. .C. . . . . .C. . . . . .z"]),k("STAVES_CONNECTION",e=>"rect"===e.identity.type&&.16===e.sw&&e.identity.height>=10,e=>({height:e.identity.height})),k("BRACE BRACE_BAR",e=>"rect"===e.identity.type&&.45===e.identity.width&&e.identity.height>=4),k("VERTICAL_LINE",e=>"rect"===e.identity.type&&(.19===e.sw||.6===e.sw)&&e.identity.height>=1),k("NOTE_STEM",e=>"rect"===e.identity.type&&.13===e.sw&&e.identity.height>=1),k("TEMPO_NOTE_STEM",e=>"rect"===e.identity.type&&.12===e.sw&&e.identity.height>=1),k("NOTETAIL JOINT BEAM",e=>"polygon"===e.identity.type&&8===m(e.identity.points)),k("STAFF_LINE",e=>"line"===e.identity.type&&0===e.identity.height&&e.identity.width>2&&.1===e.sw&&!e.identity["stroke-dasharray"]),k("ADDITIONAL_LINE",e=>"rect"===e.identity.type&&.2===e.sw2&&e.identity.rw>=1.25&&e.identity.rw<5),k("OCTAVE A _8",e=>"text"===e.identity.type&&/8va/.test(e.identity.text)),k("OCTAVE B _8",e=>"text"===e.identity.type&&/8vb/.test(e.identity.text)),k("OCTAVE _8",e=>"text"===e.identity.type&&"8"===e.identity.text&&"italic"===e.identity["font-style"]&&"bold"===e.identity["font-weight"]),k("OCTAVE A _15",e=>"text"===e.identity.type&&/15ma/.test(e.identity.text)),k("OCTAVE B _15",e=>"text"===e.identity.type&&/15mb/.test(e.identity.text)),k("OCTAVE _15",e=>"text"===e.identity.type&&"15"===e.identity.text&&"italic"===e.identity["font-style"]&&"bold"===e.identity["font-weight"]),l("OCTAVE CLOSE LINE",{type:"line",width:0,height:1.25,"stroke-width":.0924,"stroke-dasharray":"0.362351432995067,0.537648567004933"}),k("OCTAVE CLOSE LINE",e=>"line"===e.identity.type&&.8===Math.abs(e.identity.height)&&0===e.identity.width&&e.identity["stroke-width"]<.2),p("DOT","M c s - -s- - - -s- - z"),k("LINE",e=>"line"===e.identity.type),k("NULL LARGE_RECT",e=>"rect"===e.identity.type&&e.identity.height>1&&e.identity.width>=2&&e.rx<=0&&e.ry<=0),k("NULL GENERAL_RECT",e=>"rect"===e.identity.type&&e.identity.height*e.identity.width>=.3),k("NULL ENGRAVER_SIG",e=>"text"===e.identity.type&&/www\.lilypond\.org/.test(e.identity.text)),k("TEXT",e=>"text"===e.identity.type),y("ALTER FLAT","accidentals.flat"),y("ALTER FLATFLAT","accidentals.flatflat"),y("ALTER SHARP","accidentals.sharp"),y("ALTER SHARPSHARP","accidentals.doublesharp"),y("CLEF TREBLE","clefs.G"),y("CLEF TREBLE","clefs.G_change"),y("CLEF BASS","clefs.F"),y("CLEF BASS","clefs.F_change"),y("NOTETAIL FLAG UP EIGHTH","flags.u3"),y("NOTETAIL FLAG UP SIXTEENTH","flags.u4"),y("NOTETAIL FLAG UP THIRTYSECOND","flags.u5"),y("NOTETAIL FLAG UP SIXTYFOURTH","flags.u6"),y("NOTETAIL FLAG UP HUNDREDTWENTYEIGHTH","flags.u7"),y("NOTETAIL FLAG UP TWOHUNDREDSFIFTYSIXTH","flags.u8"),y("NOTETAIL FLAG DOWN EIGHTH","flags.d3"),y("NOTETAIL FLAG DOWN SIXTEENTH","flags.d4"),y("NOTETAIL FLAG DOWN THIRTYSECOND","flags.d5"),y("NOTETAIL FLAG DOWN SIXTYFOURTH","flags.d6"),y("NOTETAIL FLAG DOWN HUNDREDTWENTYEIGHTH","flags.d7"),y("NOTETAIL FLAG DOWN TWOHUNDREDSFIFTYSIXTH","flags.d8"),y("NOTE REST","rests.0"),y("NOTE REST","rests.1"),y("NOTE REST","rests.2"),y("NOTE REST","rests.3"),y("NOTE REST","rests.4"),y("NOTE REST","rests.5"),y("NOTE REST","rests.6"),y("NOTE REST","rests.7"),y("NOTE REST","rests.8"),y("TIME_SIG C_BAR","timesig.C22"),y("SUSTAIN ON","pedal.Ped"),y("SUSTAIN OFF","pedal.*"),y("ATTACHED PORTATO UP","scripts.dportato"),y("ATTACHED PORTATO DOWN","scripts.uportato"),y("ATTACHED DMARCATO DOWN","scripts.dmarcato"),y("ATTACHED DMARCATO UP","scripts.umarcato"),y("ATTACHED TENUTO","scripts.tenuto"),y("ATTACHED PRALL","scripts.prall"),y("ATTACHED MORDENT","scripts.mordent"),y("ATTACHED FERMATA UP","scripts.ufermata"),y("ATTACHED FERMATA DOWN","scripts.dfermata"),y("ATTACHED SHORTFERMATA UP","scripts.ushortfermata"),y("ATTACHED SHORTFERMATA DOWN","scripts.dshortfermata"),y("ATTACHED SFORZATO","scripts.sforzato"),y("BRACE BRACE_WING","brackettips.up"),y("BRACE BRACE_WING","brackettips.down")];r.forEach(({symbol:e,ds:a})=>_.push(g(e,a)));const T=(e,a)=>(c,d)=>{const s=d.symbol&&d.symbol.split(" ");s&&s.includes(e)&&a(c,d)},w=(e,a,c)=>(d,s)=>{const f=s.symbol&&s.symbol.split(" ");f&&f.includes(e)&&a(d)&&(s.symbol=[...f,c].join(" "))},E=[w("NUMBER",e=>M(e,.004),"TIME_SIG"),w("NUMBER",e=>M(e,.0025),"ALTERNATIVE"),w("CLOSE",e=>e.identity.height>0,"UP"),w("CLOSE",e=>e.identity.height<0,"DOWN"),T("BEAM",(e,a)=>{const c=e.identity.points.split(" ").map(Number),d=c[4],s=c[0],f=(c[5]+c[7])/2,t=(c[1]+c[3])/2;a.start={x:d,y:f},a.target={x:s,y:t}}),T("SLUR",(e,a)=>{const c=e.identity.d.match(/M[\d.-]+ ([\d.-]+).*L([\d.-]+) ([\d.-]+)/);if(c){const[e,d,s,f]=c;a.start={x:0,y:Number(d)},a.target={x:Number(s),y:Number(f)}}}),T("LINE",(e,a)=>{a.start={x:0,y:0},a.target={x:e.identity.width,y:e.identity.height}}),T("TEXT",(e,a)=>{a.text=e.identity.text}),T("NOTE_STEM",(e,a)=>{a.width=e.identity.width,a.height=e.identity.height}),T("ADDITIONAL_LINE",(e,a)=>{a.width=e.identity.width,a.height=e.identity.height;const c=e.y+e.identity.height/2;a.ry=Object(t["f"])(c,t["b"])})],x={zero:"NUMBER 0",one:"NUMBER 1",two:"NUMBER 2",three:"NUMBER 3",four:"NUMBER 4",five:"NUMBER 5",six:"NUMBER 6",seven:"NUMBER 7",eight:"NUMBER 8",nine:"NUMBER 9"},F=(e,a)=>{if(a.glyph=a.glyph||e.glyph,a.glyph&&e.identity.scale){const c=e.identity.scale.x/t["a"];1!==c&&(a.scale=c)}if(a.glyph){const e=x[a.glyph];e&&(a.symbol=[a.symbol,e].filter(Boolean).join(" "))}for(const c of E)c(e,a);return a},A=e=>{e.glyph=o[e.hash];let a={};for(const c of _){const d=c(e);if(d){a=d;break}}return F(e,a)};var I=c("d57e"),N=c("12b4");const S=(e,a)=>{const c={x:null,y:null,identity:{type:e.type}},d=Object(t["g"])(a.staffSize),s=Object(t["h"])(a.staffSize);switch(e.type){case"a":case"style":return null;case"text":c.x=e.transform.translate.x,c.y=e.transform.translate.y,c.href=e.href,c.identity.text=e.text,c.identity.color=e.color,c.identity["font-size"]=e["font-size"],c.identity["font-weight"]=e["font-weight"],c.identity["font-style"]=e["font-style"],c.identity["text-anchor"]=e["text-anchor"];break;case"line":if(c.x=e.x1+e.transform.translate.x,c.y=e.y1+e.transform.translate.y,c.href=e.href,c.identity.width=Object(t["f"])((e.x2-e.x1)*e.transform.scale.x,t["c"]),c.identity.height=Object(t["f"])((e.y2-e.y1)*e.transform.scale.y,t["c"]),c.identity["stroke-width"]=e["stroke-width"],c.identity["stroke-dasharray"]=e["stroke-dasharray"],0===c.identity.width&&0===c.identity.height)return null;break;case"rect":e.transform?(c.x=e.x+e.transform.translate.x,c.y=e.y+e.transform.translate.y,c.identity.width=e.width,c.identity.height=e.height,c.identity.rw=Object(t["f"])(e.width*e.transform.scale.x,t["c"]),c.identity.rh=Object(t["f"])(e.height*e.transform.scale.y,t["c"])):(c.x=e.x,c.y=e.y,c.identity.width=e.width,c.identity.height=e.height,c.identity.rw=Object(t["f"])(e.width,t["c"]),c.identity.rh=Object(t["f"])(e.height,t["c"]));break;case"path":c.x=e.transform.translate.x,c.y=e.transform.translate.y,c.href=e.href,c.identity.scale=e.transform.scale,c.identity.d=e.d,c.identity["stroke-width"]=e["stroke-width"];break;case"polygon":c.x=e.transform.translate.x,c.y=e.transform.translate.y,c.href=e.href,c.identity.scale=e.transform.scale,c.identity.points=e.points,c.identity["stroke-width"]=e["stroke-width"];break;default:return console.warn("unexpected element type:",e.type,e),null}if(c.rx=Object(t["f"])(c.x,t["b"]),c.ry=Object(t["f"])(c.y,t["b"]),c.identity)if(c.identity["stroke-width"])c.sw=Object(t["f"])(c.identity["stroke-width"]/d,t["d"]);else if(c.identity.width&&c.identity.height){const e=Math.min(c.identity.width,c.identity.height);e<2&&(c.sw=Object(t["f"])(e/d,t["d"]),c.identity.height{const d=e.map(e=>S(e,a)).filter(e=>e),s={};for(const b of d)s[b.hash]=b.identity;const f=d.map(e=>{const{x:a,y:c,rx:d,ry:s,sw:f,href:t,hash:b}=e;return new I["a"]({x:a,y:c,rx:d,ry:s,sw:f,href:t,hash:b,...A(e)})}),t=f.filter(e=>!e.symbol).map(e=>({...Object(N["a"])(e,["x","y","rx","ry","sw","href"]),identity:s[e.hash]}));return t.length&&c.append("tokenizeElements.nonsymbolTokens",t),{tokens:f,hashTable:s}};var W=z;class O{constructor(e){this.translation={x:0,y:0},this.lines=[e]}get tip(){return this.lines[this.lines.length-1]}get rect(){if(!this._rect){const e=this.lines.map(e=>e.y+e.height/2);this._rect={left:Math.min(...this.lines.map(e=>e.x)),right:Math.max(...this.lines.map(e=>e.x+e.width)),top:e[0],bottom:e[e.length-1]}}return this._rect}tryAppend(e){return e.ry-this.tip.ry===1&&Math.abs(e.x-this.tip.x)<2&&(this.lines.push(e),this._rect=null,!0)}tryAttachConnection(e,a){const{top:c,bottom:d}=this.rect,s=e.y+this.translation.y;return d+1.6>s&&c-1.6e&&c-3.2a-1.6&&fd-.6&&t{const a=e.filter(e=>e.is("ADDITIONAL_LINE")).sort((e,a)=>e.y-a.y),c=[];return a.forEach(e=>{for(const a of c)if(a.tryAppend(e))return;c.push(new O(e))}),c},P=(e,a)=>{if(!e.length)return a.append("tokensSystemsSplit.emptyTokens"),[];const c=Math.max(...e.map(e=>e.y)),d=Array(Math.round(c)).fill(-1);let s=0;const f=e.filter(e=>e.is("STAVES_CONNECTION"));if(f.length)f.forEach((e,a)=>{const c=Math.round(e.y)-1,f=Math.round(e.y+e.height)+1;let t=a-s;for(let b=c;b<=f;++b)if(d[b]>=0){t=d[b],++s;break}for(let s=c;s<=f;++s)d[s]=t});else{const c=e.filter(e=>e.is("STAFF_LINE"));if(c.forEach(e=>d[Math.round(e.y)]=0),!c.length)return a.append("tokensSystemsSplit.noConnetionsOrLines",{tokens:e}),[];let s=-1,t=!0;for(let e=0;e{for(let a=0;ae.systemIndex>=0);b.length!(e.systemIndex>=0))),b.forEach(e=>{const{top:a,bottom:c}=e.rect;for(let s=Math.floor(a)-1;se.topAtSystem);n.forEach(e=>{const a=d.find((a,c)=>c>e.y&&a>=0);for(let s=Math.floor(e.y)-1;s=0)break;d[s]=a}});const r=e.filter(e=>e.is("NOTE_STEM")&&-1===d[Math.round(e.y)]&&d[Math.round(e.y)]!==d[Math.round(e.y+e.height)]);r.forEach(e=>{const a=d[Math.round(e.y+e.height)];if(a>0)for(let c=Math.round(e.y+e.height)-1;c>=Math.round(e.y);--c)d[c]=a});const o=d.reduce((e,a,c)=>(a>=e.length&&e.push(c-1),e),[]);o[0]=-1/0;const i=Array(o.length).fill(null).map(()=>({tokens:[],stacks:[]}));return b.forEach(e=>i[e.systemIndex]&&i[e.systemIndex].stacks.push(e)),e.forEach(e=>{for(const d of b)if(d.contains(e)){if(i[d.systemIndex])return void i[d.systemIndex].tokens.push(e);a.append("tokensSystemsSplit.invalidStackSystemIndex",{stack:d,systems:i})}if(e.withUp||e.withDown){let a=0;return a=e.withUp?f.filter(a=>a.y+a.heighta.y=o[a]&&(a>=o.length-1||ce.tokens=e.tokens.sort((e,a)=>e.logicX-a.logicX)),i},B=(e,a)=>{const c=e.filter(e=>e.is("NOTE_STEM")),d=e.filter(e=>e.is("NOTEHEAD")||e.is("TEMPO_NOTEHEAD"));c.forEach(e=>{const c=d.filter(a=>e.stemAttached({x:a.x,y:a.y+t["e"].NOTE_TYPE_JOINT_Y[a.noteType]*(a.scale||1),href:a.href})),s=d.filter(a=>e.stemAttached({x:a.x+t["e"].NOTE_TYPE_WIDTHS[a.noteType]*(a.scale||1),y:a.y-t["e"].NOTE_TYPE_JOINT_Y[a.noteType]*(a.scale||1),href:a.href}));if(c.length+s.length<=0)return a.append("parseChordsByStems.baldStem:",e),void e.addSymbol("BALD");const f=[...c.map(e=>e.y),...s.map(e=>e.y)],b=Math.abs(e.y-Math.min(...f)),n=Math.abs(e.y+e.height-Math.max(...f)),r=b{a.stemX=i.x,a.stemUp=!r,a.stems=a.stems||[],a.stems.push(e.index)};c.forEach(l),s.forEach(l),o?o.is("HALF")&&(e.division=1):(e.addSymbol("NOTICE"),a.append("parseChordsByStems.unexpectedStem",{stem:e,ys:f,rightAttached:c,leftAttached:s}))})},R=e=>e.is("STAVES_CONNECTION")||e.is("BRACE")||e.is("VERTICAL_LINE"),D=(e,a,c)=>{const d=new Set,s=e.filter(e=>e.is("MEASURE_SEPARATOR"));s.forEach(e=>d.add(e.ry));for(const t of Array.from(d).sort())d.has(t-4)&&d.has(t+4)&&(d.delete(t),s.filter(e=>e.ry===t).forEach(e=>{e.removeSymbol("MEASURE_SEPARATOR"),e.addSymbol("VERTICAL_LINE")}));const f=e.filter(e=>e.is("STAFF_LINE")).reduce((e,a)=>((!e[a.ry]||e[a.ry].x>a.x)&&(e[a.ry]=a),e),{});if(!d.size){const e=Object.keys(f).map(Number),a=e.filter(e=>f[e+3]&&f[e+4]);a.forEach(e=>d.add(e))}const b=Array.from(d).filter(e=>f[e]||f[e+t["b"]]).map(e=>f[e]?e:e+t["b"]).map(e=>e+2).sort((e,a)=>e-a).filter(e=>f[e-2]&&f[e]&&f[e+2]),n=e.filter(e=>e.is("ADDITIONAL_LINE")).sort((e,a)=>e.y-a.y),r=n.reduce((e,a)=>(e.add(a.ry),e),new Set),o=b[0]-2,i=f[o]&&f[o].rx,l=e.filter(e=>e.is("NOTE")&&!e.is("TEMPO_NOTEHEAD")).map(e=>e.ry).concat(Object.keys(f).map(Number)),u=Math.min(...l)-o,h=Math.max(...l)-o,m=[];for(let t=0;t{for(let a=0;a{for(const c of a)if(c.contains(e))return c.staffIndex},g=e.map(e=>e.translate({x:-i,y:-o})),v=g.filter(e=>e.is("NOTE_STEM"));v.forEach(e=>e.division=2);const M=g.filter(e=>e.is("LINE")&&e.target&&e.target.x>0&&e.target.y<0),k=g.filter(e=>e.is("LINE")&&e.target&&e.target.x>0&&e.target.y>0),y=[],_=e=>{if(e.is("BEAM")){const a=v.filter(a=>Math.abs(a.centerX-e.x)<.1&&(Math.abs(e.y-a.y)<.2||Math.abs(e.y-(a.y+a.height))<.2)),c=(e.target.y-e.start.y)/(e.target.x-e.start.x),d=v.filter(a=>{const d=(a.x-(e.x+e.start.x))*c;return a.centerX-(e.x+e.start.x)>-.1&&a.centerX-(e.x+e.target.x)<.1&&e.y+d-a.y>-.2&&e.y+d-(a.y+a.height)<.2});if(d.length){e.stems=d.map(e=>e.index),a.length&&e.addSymbol("CAPITAL_BEAM");const c=(e.target.y-e.start.y)/(e.target.x-e.start.x),s=v.filter(a=>a.centerX>e.x-.1&&a.centerXMath.min(e.y,e.y+e.target.y)-.2);s.forEach(a=>{const d=(a.centerX-e.x+e.start.x)*c+e.y+e.start.y;if(d>a.y-.2&&da.y+a.height-3.2;c&&(++a.division,e.is("CAPITAL_BEAM")&&(a.beam=e.index))}})}else e.removeSymbol("NOTETAIL"),e.removeSymbol("JOINT")}if(e.is("FLAG UP")){const a=v.find(a=>Math.abs(a.x+a.width-e.x)<.04&&Math.abs(a.y-e.y)<.1);a?(e.stem=a.index,a.division=e.flagNumber):e.addSymbol("SUSPENDED")}if(e.is("FLAG DOWN")){const a=v.find(a=>Math.abs(a.x+a.width-e.x)<.04&&Math.abs(a.y+a.height-e.y)<.1);a?(e.stem=a.index,a.division=e.flagNumber):e.addSymbol("SUSPENDED")}if(M.includes(e)){const a=k.find(a=>a.x===e.x&&a.target.y===-e.target.y);a&&(e.y<=a.y?(e.addSymbol("WEDGE CRESCENDO TOP"),a.addSymbol("WEDGE CRESCENDO BOTTOM")):e.y>a.y&&(e.addSymbol("WEDGE DECRESCENDO BOTTOM"),a.addSymbol("WEDGE DECRESCENDO TOP")))}let a=0;if(e.withUp||e.withDown)e.withUp?a=b.filter(a=>a+2a-2Math.abs(a.centerX-e.x)<.1&&e.y>a.y-.2&&e.ym[a])++a}}y[a]=y[a]||[],y[a].push(e)};a.forEach(e=>e.translate({x:i,y:o})),B(g,c),g.filter(e=>!R(e)).forEach(_);const T=g.filter(e=>e.is("NOTE")),w=Array.from(new Set(g.filter(e=>e.is("MEASURE_SEPARATOR")).map(e=>e.logicX))).sort((e,a)=>e-a);w.length||w.push(g[g.length-1].x+1);const E=w.map((e,a)=>{const c=a>0?w[a-1]:-1/0;return{x:e,notes:T.filter(a=>a.x>c&&a.xe.length).map(({x:e,notes:a})=>({headX:a[0].x-1.5,noteRange:{begin:a[0].x,end:e}}));return{x:i,y:o,top:u,bottom:h,tokens:g.filter(R),staves:b.map((e,a)=>y[a]&&Y({tokens:y[a],y:e-o,top:m[a]-(e-o),measureRanges:E,logger:c}))}},L=e=>e.is("STAFF_LINE")||e.is("MEASURE_SEPARATOR"),Y=({tokens:e,y:a,top:c,measureRanges:d,logger:s})=>{const f=e.map(e=>e.translate({y:-a})),b=f.filter(e=>e.is("NOTE")),n=d[0]?d[0].headX:0,r=f.filter(e=>e.is("ALTER"));let o=null;for(const t of r)if(!(t.y>3||t.y<-3)){if(t.source&&"\\key"===t.source.substr(0,4))o=t;else{if(o&&t.x-o.x>2)break;if(t.x!e.is("KEY")&&!e.href);i.forEach(e=>{const a=b.find(a=>a.ry===e.ry&&a.x>e.x&&a.x-e.x<5);a?e.stemX=a.logicX-t["e"].EPSILON:(e.addSymbol("NOTICE"),s.append("orphanAlter",e))});const l=d.map((e,a)=>{const c=a>0?d[a-1].noteRange.end:-1/0,s=f.filter(s=>!L(s)&&s.logicX>c&&(s.logicXe.logicX-a.logicX),t=Math.min(...s.filter(e=>e.is("NOTE")).map(e=>e.x),c+2.9),b=s.filter(e=>e.is("DOT")&&.5===Math.abs(e.ry)),n=b.filter(e=>e.xa.x>e.noteRange.end-1);return[n,r].forEach((e,a)=>{2===e.length&&e[0].ry*e[1].ry<0&&e.forEach(e=>{e.addSymbol(a?"RIGHT":"LEFT"),e.addSymbol("VOLTA")})}),{tokens:s,noteRange:e.noteRange,headX:e.headX}}),u=l[0]?l[0].headX:0;return{x:0,y:a,headWidth:u,top:c,tokens:f.filter(L),measures:l}},q=e=>e.is("TEXT")&&!e.source,U=(e,a,{logger:c,viewBox:d,width:s,height:f}={})=>{e.forEach(e=>{const c=e.sourcePosition;if(c&&(e.source=a.slice(c.line,[c.start,Math.max(c.end,c.start+8)]),/^\\/.test(e.source)))for(let d=e.source.length+1;d<80;++d){const s=e.source.match(/\s+/g);if(s&&s.length>=2)break;e.source=a.slice(c.line,[c.start,c.start+d])}});const t=e.filter(e=>!e.is("NULL")),b=t.filter(q);t.forEach(e=>{e.source&&("\\tempo"===e.source.substr(0,6)&&e.is("NOTEHEAD")&&(e.removeSymbol("NOTEHEAD"),e.addSymbol("TEMPO_NOTEHEAD")),e.is("DOT")&&/^\\sustain/.test(e.source)&&(e.removeSymbol("DOT"),e.addSymbol("SUSTAIN","PED_DOT")),e.is("BEAM")&&/^:\d+/.test(e.source)&&(e.removeSymbol("NOTETAIL"),e.removeSymbol("JOINT"),e.addSymbol("TREMOLO_BEAM"),e.addSymbol("PIERCED")),e.is("BEAM")&&/repeat tremolo/.test(e.source)&&(e.removeSymbol("NOTETAIL"),e.addSymbol("TREMOLO_BEAM"),e.addSymbol("TREMOLO_PAIR")),/^\\glissando/.test(e.source)&&(e.removeSymbol("TR_WAVE"),e.addSymbol("GLISSANDO")),/^\\arpeggio/.test(e.source)&&e.addSymbol("ARPEGGIO"))});const n=P(t.filter(e=>!q(e)),c),r=n.map(({tokens:e,stacks:a})=>D(e,a,c)).filter(e=>e.staves.length>0);return{tokens:b,systems:r,viewBox:d,width:s,height:f}};var G=U,j=c("a6bf"),V=c("4fde"),H=c("8745"),K=c("16d8");const X=(e,a)=>{if(a(e),e.childNodes)for(let c=0;c{a instanceof K["a"]||(a=new K["a"](a));const o=f(e,{logger:d,...r});if(d.append("parseSvgPage.elem",o),!o)return{structure:null,hashTable:{}};!s&&c&&(s=c.globalAttributes({readonly:!0}));const{tokens:i,hashTable:l}=W(o.children,s,d),[u,h,m,p]=o.viewBox.match(/[\d-.]+/g).map(Number),g={x:u,y:h,width:m,height:p},v=n&&new Set([...n].map(e=>Number(e.split(":")[0])));return i.forEach((e,a)=>{if(e.index=a,e.sourcePosition){const{line:a,start:c}=e.sourcePosition,d=`${a}:${c}`;b&&b.has(d)&&e.addSymbol("CHORD_TEXT"),n&&v.has(a)&&e.addSymbol("LYRIC_TEXT"),t&&t.has(d)&&(e.tied=!0)}}),{structure:G(i,a,{logger:d,viewBox:g,width:o.width,height:o.height}),hashTable:l}},ae=(e,a,c,{logger:d,DOMParser:s}={})=>{const f=c.globalAttributes({readonly:!0}),t=new K["a"](a),b=Object($["d"])(c.getTiedNoteLocations2()),n=Object($["d"])(c.getBriefChordLocations()),r=Object($["d"])(c.getLyricLocations()),o=e.map(e=>ee(e,t,{DOMParser:s,logger:d,attributes:f,tieLocations:b,briefChordLocations:n,lyricLocations:r})),i=new V["e"]({pages:o.map(e=>e.structure)}),l=o.reduce((e,a)=>({...e,...a.hashTable}),{});return ce(i,c),{doc:i,hashTable:l}},ce=(e,a)=>{const c=a.interpret(),d=c.getNotation();d&&e.alignTokensWithNotation(d);const s=a.globalAttributes({readonly:!0}),f=e=>e.findAll(Z["K"]).reduce((e,a)=>(e[a.left]=a.right,e),{}),t=s["LotusOption.verticalCrop"];if(t&&t.exp){const a=f(t);e.fitPageViewbox({verticalCropOnly:!0,...a})}const b=s["LotusOption.fitPageViewbox"];b&&b.exp&&e.fitPageViewbox(f(b))},de=(e,a,{DOMParser:c,XMLSerializer:d})=>{const s=(new c).parseFromString(e,"text/xml"),f=s.childNodes[0];f.setAttribute("width",a.width),f.setAttribute("height",a.height),f.setAttribute("viewBox",`${a.viewBox.x} ${a.viewBox.y} ${a.viewBox.width} ${a.viewBox.height}`);const t=a.systems.reduce((e,a)=>(a.staves.forEach(a=>a.measures.forEach(a=>e.push(...a.tokens.filter(e=>e.is("NOTEHEAD")).map(e=>e.href.replace(/:\d+$/,""))))),e),[]);return X(s,e=>{switch(e.tagName){case"a":const a=e.getAttribute("xlink:href").match(/\d+:\d+:\d+$/),c=a&&a[0].replace(/:\d+$/,"");c&&t.includes(c)&&e.setAttribute("style","color:transparent;");break;case"text":/www\.lilypond\.org/.test(e.textContent)&&e.parentNode.removeChild(e);break}}),(new d).serializeToString(s)}},"42bd":function(e,a,c){"use strict";c.d(a,"e",(function(){return d})),c.d(a,"c",(function(){return s})),c.d(a,"a",(function(){return f})),c.d(a,"d",(function(){return t})),c.d(a,"g",(function(){return b})),c.d(a,"h",(function(){return n})),c.d(a,"i",(function(){return r})),c.d(a,"b",(function(){return o})),c.d(a,"j",(function(){return i})),c.d(a,"f",(function(){return l}));const d=1920,s=.2246,f=/^lotus/,t="lotusMainScore",b=(e,a)=>0===a?e:b(a,e%a),n=(e,a)=>e*a/b(e,a),r=(e,a,...c)=>Number.isFinite(a)?c.length?r(n(e,a),...c):n(e,a):Number.isFinite(e)?e:1;class o{constructor(e,a){this.numerator=e,this.denominator=a}static fromExpression(e){const[a,c]=e.match(/\d+/g);return new o(Number(a),Number(c))}toString(){return`${this.numerator}/${this.denominator}`}get value(){return this.numerator/this.denominator}get reciprocal(){return new o(this.denominator,this.numerator)}get reduced(){const e=b(this.denominator,this.numerator);return new o(this.numerator/e,this.denominator/e)}}const i=(e,a)=>{let c="";c=a.length<4?Array(a.length).fill(" ").join(""):"%{"+Array(a.length-4).fill("-").join("")+"%}";let d=e;while(d.includes(a))d=d.replace(a,c);return d},l=e=>e.reduce((e,[a,c])=>(e.add(`${a}:${c}`),e),new Set)},"438b":function(e,a,c){"use strict";c.r(a),c.d(a,"Glyph",(function(){return d})),c.d(a,"GlyphUnicode",(function(){return t})),c.d(a,"slashGlyphName",(function(){return f}));var d,s=c("cc32");c.d(a,"glyphHash",(function(){return s})),function(e){e[e["rests.0"]=0]="rests.0",e[e["rests.1"]=1]="rests.1",e[e["rests.0o"]=2]="rests.0o",e[e["rests.1o"]=3]="rests.1o",e[e["rests.M3"]=4]="rests.M3",e[e["rests.M2"]=5]="rests.M2",e[e["rests.M1"]=6]="rests.M1",e[e["rests.M1o"]=7]="rests.M1o",e[e["rests.2"]=8]="rests.2",e[e["rests.2classical"]=9]="rests.2classical",e[e["rests.2z"]=10]="rests.2z",e[e["rests.3"]=11]="rests.3",e[e["rests.4"]=12]="rests.4",e[e["rests.5"]=13]="rests.5",e[e["rests.6"]=14]="rests.6",e[e["rests.7"]=15]="rests.7",e[e["accidentals.sharp"]=16]="accidentals.sharp",e[e["accidentals.sharp.arrowup"]=17]="accidentals.sharp.arrowup",e[e["accidentals.sharp.arrowdown"]=18]="accidentals.sharp.arrowdown",e[e["accidentals.sharp.arrowboth"]=19]="accidentals.sharp.arrowboth",e[e["accidentals.sharp.slashslash.stem"]=20]="accidentals.sharp.slashslash.stem",e[e["accidentals.sharp.slashslashslash.stemstem"]=21]="accidentals.sharp.slashslashslash.stemstem",e[e["accidentals.sharp.slashslashslash.stem"]=22]="accidentals.sharp.slashslashslash.stem",e[e["accidentals.sharp.slashslash.stemstemstem"]=23]="accidentals.sharp.slashslash.stemstemstem",e[e["accidentals.doublesharp"]=24]="accidentals.doublesharp",e[e["accidentals.natural"]=25]="accidentals.natural",e[e["accidentals.natural.arrowup"]=26]="accidentals.natural.arrowup",e[e["accidentals.natural.arrowdown"]=27]="accidentals.natural.arrowdown",e[e["accidentals.natural.arrowboth"]=28]="accidentals.natural.arrowboth",e[e["accidentals.flat"]=29]="accidentals.flat",e[e["accidentals.flat.arrowup"]=30]="accidentals.flat.arrowup",e[e["accidentals.flat.arrowdown"]=31]="accidentals.flat.arrowdown",e[e["accidentals.flat.arrowboth"]=32]="accidentals.flat.arrowboth",e[e["accidentals.flat.slash"]=33]="accidentals.flat.slash",e[e["accidentals.flat.slashslash"]=34]="accidentals.flat.slashslash",e[e["accidentals.mirroredflat.flat"]=35]="accidentals.mirroredflat.flat",e[e["accidentals.mirroredflat"]=36]="accidentals.mirroredflat",e[e["accidentals.mirroredflat.backslash"]=37]="accidentals.mirroredflat.backslash",e[e["accidentals.flatflat"]=38]="accidentals.flatflat",e[e["accidentals.flatflat.slash"]=39]="accidentals.flatflat.slash",e[e["accidentals.rightparen"]=40]="accidentals.rightparen",e[e["accidentals.leftparen"]=41]="accidentals.leftparen",e[e["arrowheads.open.01"]=42]="arrowheads.open.01",e[e["arrowheads.open.0M1"]=43]="arrowheads.open.0M1",e[e["arrowheads.open.11"]=44]="arrowheads.open.11",e[e["arrowheads.open.1M1"]=45]="arrowheads.open.1M1",e[e["arrowheads.close.01"]=46]="arrowheads.close.01",e[e["arrowheads.close.0M1"]=47]="arrowheads.close.0M1",e[e["arrowheads.close.11"]=48]="arrowheads.close.11",e[e["arrowheads.close.1M1"]=49]="arrowheads.close.1M1",e[e["dots.dot"]=50]="dots.dot",e[e["scripts.ufermata"]=51]="scripts.ufermata",e[e["scripts.dfermata"]=52]="scripts.dfermata",e[e["scripts.ushortfermata"]=53]="scripts.ushortfermata",e[e["scripts.dshortfermata"]=54]="scripts.dshortfermata",e[e["scripts.ulongfermata"]=55]="scripts.ulongfermata",e[e["scripts.dlongfermata"]=56]="scripts.dlongfermata",e[e["scripts.uverylongfermata"]=57]="scripts.uverylongfermata",e[e["scripts.dverylongfermata"]=58]="scripts.dverylongfermata",e[e["scripts.thumb"]=59]="scripts.thumb",e[e["scripts.sforzato"]=60]="scripts.sforzato",e[e["scripts.espr"]=61]="scripts.espr",e[e["scripts.staccato"]=62]="scripts.staccato",e[e["scripts.ustaccatissimo"]=63]="scripts.ustaccatissimo",e[e["scripts.dstaccatissimo"]=64]="scripts.dstaccatissimo",e[e["scripts.tenuto"]=65]="scripts.tenuto",e[e["scripts.uportato"]=66]="scripts.uportato",e[e["scripts.dportato"]=67]="scripts.dportato",e[e["scripts.umarcato"]=68]="scripts.umarcato",e[e["scripts.dmarcato"]=69]="scripts.dmarcato",e[e["scripts.open"]=70]="scripts.open",e[e["scripts.halfopen"]=71]="scripts.halfopen",e[e["scripts.halfopenvertical"]=72]="scripts.halfopenvertical",e[e["scripts.stopped"]=73]="scripts.stopped",e[e["scripts.upbow"]=74]="scripts.upbow",e[e["scripts.downbow"]=75]="scripts.downbow",e[e["scripts.reverseturn"]=76]="scripts.reverseturn",e[e["scripts.turn"]=77]="scripts.turn",e[e["scripts.trill"]=78]="scripts.trill",e[e["scripts.upedalheel"]=79]="scripts.upedalheel",e[e["scripts.dpedalheel"]=80]="scripts.dpedalheel",e[e["scripts.upedaltoe"]=81]="scripts.upedaltoe",e[e["scripts.dpedaltoe"]=82]="scripts.dpedaltoe",e[e["scripts.flageolet"]=83]="scripts.flageolet",e[e["scripts.segno"]=84]="scripts.segno",e[e["scripts.varsegno"]=85]="scripts.varsegno",e[e["scripts.coda"]=86]="scripts.coda",e[e["scripts.varcoda"]=87]="scripts.varcoda",e[e["scripts.rcomma"]=88]="scripts.rcomma",e[e["scripts.lcomma"]=89]="scripts.lcomma",e[e["scripts.rvarcomma"]=90]="scripts.rvarcomma",e[e["scripts.lvarcomma"]=91]="scripts.lvarcomma",e[e["scripts.arpeggio"]=92]="scripts.arpeggio",e[e["scripts.trill_element"]=93]="scripts.trill_element",e[e["scripts.arpeggio.arrow.M1"]=94]="scripts.arpeggio.arrow.M1",e[e["scripts.arpeggio.arrow.1"]=95]="scripts.arpeggio.arrow.1",e[e["scripts.trilelement"]=96]="scripts.trilelement",e[e["scripts.prall"]=97]="scripts.prall",e[e["scripts.mordent"]=98]="scripts.mordent",e[e["scripts.prallprall"]=99]="scripts.prallprall",e[e["scripts.prallmordent"]=100]="scripts.prallmordent",e[e["scripts.upprall"]=101]="scripts.upprall",e[e["scripts.upmordent"]=102]="scripts.upmordent",e[e["scripts.pralldown"]=103]="scripts.pralldown",e[e["scripts.downprall"]=104]="scripts.downprall",e[e["scripts.downmordent"]=105]="scripts.downmordent",e[e["scripts.prallup"]=106]="scripts.prallup",e[e["scripts.lineprall"]=107]="scripts.lineprall",e[e["scripts.caesura.curved"]=108]="scripts.caesura.curved",e[e["scripts.caesura.straight"]=109]="scripts.caesura.straight",e[e["scripts.tickmark"]=110]="scripts.tickmark",e[e["scripts.snappizzicato"]=111]="scripts.snappizzicato",e[e["clefs.C"]=112]="clefs.C",e[e["clefs.C_change"]=113]="clefs.C_change",e[e["clefs.varC"]=114]="clefs.varC",e[e["clefs.varC_change"]=115]="clefs.varC_change",e[e["clefs.F"]=116]="clefs.F",e[e["clefs.F_change"]=117]="clefs.F_change",e[e["clefs.G"]=118]="clefs.G",e[e["clefs.G_change"]=119]="clefs.G_change",e[e["clefs.GG"]=120]="clefs.GG",e[e["clefs.GG_change"]=121]="clefs.GG_change",e[e["clefs.tenorG"]=122]="clefs.tenorG",e[e["clefs.tenorG_change"]=123]="clefs.tenorG_change",e[e["clefs.percussion"]=124]="clefs.percussion",e[e["clefs.percussion_change"]=125]="clefs.percussion_change",e[e["clefs.varpercussion"]=126]="clefs.varpercussion",e[e["clefs.varpercussion_change"]=127]="clefs.varpercussion_change",e[e["clefs.tab"]=128]="clefs.tab",e[e["clefs.tab_change"]=129]="clefs.tab_change",e[e["timesig.C44"]=130]="timesig.C44",e[e["timesig.C22"]=131]="timesig.C22",e[e["pedal.*"]=132]="pedal.*",e[e["pedal.M"]=133]="pedal.M",e[e["pedal.."]=134]="pedal..",e[e["pedal.P"]=135]="pedal.P",e[e["pedal.d"]=136]="pedal.d",e[e["pedal.e"]=137]="pedal.e",e[e["pedal.Ped"]=138]="pedal.Ped",e[e["brackettips.up"]=139]="brackettips.up",e[e["brackettips.down"]=140]="brackettips.down",e[e["accordion.discant"]=141]="accordion.discant",e[e["accordion.dot"]=142]="accordion.dot",e[e["accordion.freebass"]=143]="accordion.freebass",e[e["accordion.stdbass"]=144]="accordion.stdbass",e[e["accordion.bayanbass"]=145]="accordion.bayanbass",e[e["accordion.oldEE"]=146]="accordion.oldEE",e[e["accordion.push"]=147]="accordion.push",e[e["accordion.pull"]=148]="accordion.pull",e[e["ties.lyric.short"]=149]="ties.lyric.short",e[e["ties.lyric.default"]=150]="ties.lyric.default",e[e["noteheads.uM2"]=151]="noteheads.uM2",e[e["noteheads.dM2"]=152]="noteheads.dM2",e[e["noteheads.sM1"]=153]="noteheads.sM1",e[e["noteheads.sM1double"]=154]="noteheads.sM1double",e[e["noteheads.s0"]=155]="noteheads.s0",e[e["noteheads.s1"]=156]="noteheads.s1",e[e["noteheads.s2"]=157]="noteheads.s2",e[e["noteheads.s0diamond"]=158]="noteheads.s0diamond",e[e["noteheads.s1diamond"]=159]="noteheads.s1diamond",e[e["noteheads.s2diamond"]=160]="noteheads.s2diamond",e[e["noteheads.s0triangle"]=161]="noteheads.s0triangle",e[e["noteheads.d1triangle"]=162]="noteheads.d1triangle",e[e["noteheads.u1triangle"]=163]="noteheads.u1triangle",e[e["noteheads.u2triangle"]=164]="noteheads.u2triangle",e[e["noteheads.d2triangle"]=165]="noteheads.d2triangle",e[e["noteheads.s0slash"]=166]="noteheads.s0slash",e[e["noteheads.s1slash"]=167]="noteheads.s1slash",e[e["noteheads.s2slash"]=168]="noteheads.s2slash",e[e["noteheads.s0cross"]=169]="noteheads.s0cross",e[e["noteheads.s1cross"]=170]="noteheads.s1cross",e[e["noteheads.s2cross"]=171]="noteheads.s2cross",e[e["noteheads.s2xcircle"]=172]="noteheads.s2xcircle",e[e["noteheads.s0do"]=173]="noteheads.s0do",e[e["noteheads.d1do"]=174]="noteheads.d1do",e[e["noteheads.u1do"]=175]="noteheads.u1do",e[e["noteheads.d2do"]=176]="noteheads.d2do",e[e["noteheads.u2do"]=177]="noteheads.u2do",e[e["noteheads.s0doThin"]=178]="noteheads.s0doThin",e[e["noteheads.d1doThin"]=179]="noteheads.d1doThin",e[e["noteheads.u1doThin"]=180]="noteheads.u1doThin",e[e["noteheads.d2doThin"]=181]="noteheads.d2doThin",e[e["noteheads.u2doThin"]=182]="noteheads.u2doThin",e[e["noteheads.s0re"]=183]="noteheads.s0re",e[e["noteheads.u1re"]=184]="noteheads.u1re",e[e["noteheads.d1re"]=185]="noteheads.d1re",e[e["noteheads.u2re"]=186]="noteheads.u2re",e[e["noteheads.d2re"]=187]="noteheads.d2re",e[e["noteheads.s0reThin"]=188]="noteheads.s0reThin",e[e["noteheads.u1reThin"]=189]="noteheads.u1reThin",e[e["noteheads.d1reThin"]=190]="noteheads.d1reThin",e[e["noteheads.u2reThin"]=191]="noteheads.u2reThin",e[e["noteheads.d2reThin"]=192]="noteheads.d2reThin",e[e["noteheads.s0mi"]=193]="noteheads.s0mi",e[e["noteheads.s1mi"]=194]="noteheads.s1mi",e[e["noteheads.s2mi"]=195]="noteheads.s2mi",e[e["noteheads.s0miMirror"]=196]="noteheads.s0miMirror",e[e["noteheads.s1miMirror"]=197]="noteheads.s1miMirror",e[e["noteheads.s2miMirror"]=198]="noteheads.s2miMirror",e[e["noteheads.s0miThin"]=199]="noteheads.s0miThin",e[e["noteheads.s1miThin"]=200]="noteheads.s1miThin",e[e["noteheads.s2miThin"]=201]="noteheads.s2miThin",e[e["noteheads.u0fa"]=202]="noteheads.u0fa",e[e["noteheads.d0fa"]=203]="noteheads.d0fa",e[e["noteheads.u1fa"]=204]="noteheads.u1fa",e[e["noteheads.d1fa"]=205]="noteheads.d1fa",e[e["noteheads.u2fa"]=206]="noteheads.u2fa",e[e["noteheads.d2fa"]=207]="noteheads.d2fa",e[e["noteheads.u0faThin"]=208]="noteheads.u0faThin",e[e["noteheads.d0faThin"]=209]="noteheads.d0faThin",e[e["noteheads.u1faThin"]=210]="noteheads.u1faThin",e[e["noteheads.d1faThin"]=211]="noteheads.d1faThin",e[e["noteheads.u2faThin"]=212]="noteheads.u2faThin",e[e["noteheads.d2faThin"]=213]="noteheads.d2faThin",e[e["noteheads.s0sol"]=214]="noteheads.s0sol",e[e["noteheads.s1sol"]=215]="noteheads.s1sol",e[e["noteheads.s2sol"]=216]="noteheads.s2sol",e[e["noteheads.s0la"]=217]="noteheads.s0la",e[e["noteheads.s1la"]=218]="noteheads.s1la",e[e["noteheads.s2la"]=219]="noteheads.s2la",e[e["noteheads.s0laThin"]=220]="noteheads.s0laThin",e[e["noteheads.s1laThin"]=221]="noteheads.s1laThin",e[e["noteheads.s2laThin"]=222]="noteheads.s2laThin",e[e["noteheads.s0ti"]=223]="noteheads.s0ti",e[e["noteheads.u1ti"]=224]="noteheads.u1ti",e[e["noteheads.d1ti"]=225]="noteheads.d1ti",e[e["noteheads.u2ti"]=226]="noteheads.u2ti",e[e["noteheads.d2ti"]=227]="noteheads.d2ti",e[e["noteheads.s0tiThin"]=228]="noteheads.s0tiThin",e[e["noteheads.u1tiThin"]=229]="noteheads.u1tiThin",e[e["noteheads.d1tiThin"]=230]="noteheads.d1tiThin",e[e["noteheads.u2tiThin"]=231]="noteheads.u2tiThin",e[e["noteheads.d2tiThin"]=232]="noteheads.d2tiThin",e[e["noteheads.u0doFunk"]=233]="noteheads.u0doFunk",e[e["noteheads.d0doFunk"]=234]="noteheads.d0doFunk",e[e["noteheads.u1doFunk"]=235]="noteheads.u1doFunk",e[e["noteheads.d1doFunk"]=236]="noteheads.d1doFunk",e[e["noteheads.u2doFunk"]=237]="noteheads.u2doFunk",e[e["noteheads.d2doFunk"]=238]="noteheads.d2doFunk",e[e["noteheads.u0reFunk"]=239]="noteheads.u0reFunk",e[e["noteheads.d0reFunk"]=240]="noteheads.d0reFunk",e[e["noteheads.u1reFunk"]=241]="noteheads.u1reFunk",e[e["noteheads.d1reFunk"]=242]="noteheads.d1reFunk",e[e["noteheads.u2reFunk"]=243]="noteheads.u2reFunk",e[e["noteheads.d2reFunk"]=244]="noteheads.d2reFunk",e[e["noteheads.u0miFunk"]=245]="noteheads.u0miFunk",e[e["noteheads.d0miFunk"]=246]="noteheads.d0miFunk",e[e["noteheads.u1miFunk"]=247]="noteheads.u1miFunk",e[e["noteheads.d1miFunk"]=248]="noteheads.d1miFunk",e[e["noteheads.s2miFunk"]=249]="noteheads.s2miFunk",e[e["noteheads.u0faFunk"]=250]="noteheads.u0faFunk",e[e["noteheads.d0faFunk"]=251]="noteheads.d0faFunk",e[e["noteheads.u1faFunk"]=252]="noteheads.u1faFunk",e[e["noteheads.d1faFunk"]=253]="noteheads.d1faFunk",e[e["noteheads.u2faFunk"]=254]="noteheads.u2faFunk",e[e["noteheads.d2faFunk"]=255]="noteheads.d2faFunk",e[e["noteheads.s0solFunk"]=256]="noteheads.s0solFunk",e[e["noteheads.s1solFunk"]=257]="noteheads.s1solFunk",e[e["noteheads.s2solFunk"]=258]="noteheads.s2solFunk",e[e["noteheads.s0laFunk"]=259]="noteheads.s0laFunk",e[e["noteheads.s1laFunk"]=260]="noteheads.s1laFunk",e[e["noteheads.s2laFunk"]=261]="noteheads.s2laFunk",e[e["noteheads.u0tiFunk"]=262]="noteheads.u0tiFunk",e[e["noteheads.d0tiFunk"]=263]="noteheads.d0tiFunk",e[e["noteheads.u1tiFunk"]=264]="noteheads.u1tiFunk",e[e["noteheads.d1tiFunk"]=265]="noteheads.d1tiFunk",e[e["noteheads.u2tiFunk"]=266]="noteheads.u2tiFunk",e[e["noteheads.d2tiFunk"]=267]="noteheads.d2tiFunk",e[e["noteheads.s0doWalker"]=268]="noteheads.s0doWalker",e[e["noteheads.u1doWalker"]=269]="noteheads.u1doWalker",e[e["noteheads.d1doWalker"]=270]="noteheads.d1doWalker",e[e["noteheads.u2doWalker"]=271]="noteheads.u2doWalker",e[e["noteheads.d2doWalker"]=272]="noteheads.d2doWalker",e[e["noteheads.s0reWalker"]=273]="noteheads.s0reWalker",e[e["noteheads.u1reWalker"]=274]="noteheads.u1reWalker",e[e["noteheads.d1reWalker"]=275]="noteheads.d1reWalker",e[e["noteheads.u2reWalker"]=276]="noteheads.u2reWalker",e[e["noteheads.d2reWalker"]=277]="noteheads.d2reWalker",e[e["noteheads.s0miWalker"]=278]="noteheads.s0miWalker",e[e["noteheads.s1miWalker"]=279]="noteheads.s1miWalker",e[e["noteheads.s2miWalker"]=280]="noteheads.s2miWalker",e[e["noteheads.s0faWalker"]=281]="noteheads.s0faWalker",e[e["noteheads.u1faWalker"]=282]="noteheads.u1faWalker",e[e["noteheads.d1faWalker"]=283]="noteheads.d1faWalker",e[e["noteheads.u2faWalker"]=284]="noteheads.u2faWalker",e[e["noteheads.d2faWalker"]=285]="noteheads.d2faWalker",e[e["noteheads.s0laWalker"]=286]="noteheads.s0laWalker",e[e["noteheads.s1laWalker"]=287]="noteheads.s1laWalker",e[e["noteheads.s2laWalker"]=288]="noteheads.s2laWalker",e[e["noteheads.s0tiWalker"]=289]="noteheads.s0tiWalker",e[e["noteheads.u1tiWalker"]=290]="noteheads.u1tiWalker",e[e["noteheads.d1tiWalker"]=291]="noteheads.d1tiWalker",e[e["noteheads.u2tiWalker"]=292]="noteheads.u2tiWalker",e[e["noteheads.d2tiWalker"]=293]="noteheads.d2tiWalker",e[e["flags.u3"]=294]="flags.u3",e[e["flags.u4"]=295]="flags.u4",e[e["flags.u5"]=296]="flags.u5",e[e["flags.u6"]=297]="flags.u6",e[e["flags.u7"]=298]="flags.u7",e[e["flags.d3"]=299]="flags.d3",e[e["flags.d4"]=300]="flags.d4",e[e["flags.d5"]=301]="flags.d5",e[e["flags.d6"]=302]="flags.d6",e[e["flags.d7"]=303]="flags.d7",e[e["flags.ugrace"]=304]="flags.ugrace",e[e["flags.dgrace"]=305]="flags.dgrace",e[e["rests.M3neomensural"]=306]="rests.M3neomensural",e[e["rests.M2neomensural"]=307]="rests.M2neomensural",e[e["rests.M1neomensural"]=308]="rests.M1neomensural",e[e["rests.0neomensural"]=309]="rests.0neomensural",e[e["rests.1neomensural"]=310]="rests.1neomensural",e[e["rests.2neomensural"]=311]="rests.2neomensural",e[e["rests.3neomensural"]=312]="rests.3neomensural",e[e["rests.4neomensural"]=313]="rests.4neomensural",e[e["rests.M3mensural"]=314]="rests.M3mensural",e[e["rests.M2mensural"]=315]="rests.M2mensural",e[e["rests.M1mensural"]=316]="rests.M1mensural",e[e["rests.0mensural"]=317]="rests.0mensural",e[e["rests.1mensural"]=318]="rests.1mensural",e[e["rests.2mensural"]=319]="rests.2mensural",e[e["rests.3mensural"]=320]="rests.3mensural",e[e["rests.4mensural"]=321]="rests.4mensural",e[e["clefs.vaticana.do"]=322]="clefs.vaticana.do",e[e["clefs.vaticana.do_change"]=323]="clefs.vaticana.do_change",e[e["clefs.vaticana.fa"]=324]="clefs.vaticana.fa",e[e["clefs.vaticana.fa_change"]=325]="clefs.vaticana.fa_change",e[e["clefs.medicaea.do"]=326]="clefs.medicaea.do",e[e["clefs.medicaea.do_change"]=327]="clefs.medicaea.do_change",e[e["clefs.medicaea.fa"]=328]="clefs.medicaea.fa",e[e["clefs.medicaea.fa_change"]=329]="clefs.medicaea.fa_change",e[e["clefs.neomensural.c"]=330]="clefs.neomensural.c",e[e["clefs.neomensural.c_change"]=331]="clefs.neomensural.c_change",e[e["clefs.petrucci.c1"]=332]="clefs.petrucci.c1",e[e["clefs.petrucci.c1_change"]=333]="clefs.petrucci.c1_change",e[e["clefs.petrucci.c2"]=334]="clefs.petrucci.c2",e[e["clefs.petrucci.c2_change"]=335]="clefs.petrucci.c2_change",e[e["clefs.petrucci.c3"]=336]="clefs.petrucci.c3",e[e["clefs.petrucci.c3_change"]=337]="clefs.petrucci.c3_change",e[e["clefs.petrucci.c4"]=338]="clefs.petrucci.c4",e[e["clefs.petrucci.c4_change"]=339]="clefs.petrucci.c4_change",e[e["clefs.petrucci.c5"]=340]="clefs.petrucci.c5",e[e["clefs.petrucci.c5_change"]=341]="clefs.petrucci.c5_change",e[e["clefs.mensural.c"]=342]="clefs.mensural.c",e[e["clefs.mensural.c_change"]=343]="clefs.mensural.c_change",e[e["clefs.blackmensural.c"]=344]="clefs.blackmensural.c",e[e["clefs.blackmensural.c_change"]=345]="clefs.blackmensural.c_change",e[e["clefs.petrucci.f"]=346]="clefs.petrucci.f",e[e["clefs.petrucci.f_change"]=347]="clefs.petrucci.f_change",e[e["clefs.mensural.f"]=348]="clefs.mensural.f",e[e["clefs.mensural.f_change"]=349]="clefs.mensural.f_change",e[e["clefs.petrucci.g"]=350]="clefs.petrucci.g",e[e["clefs.petrucci.g_change"]=351]="clefs.petrucci.g_change",e[e["clefs.mensural.g"]=352]="clefs.mensural.g",e[e["clefs.mensural.g_change"]=353]="clefs.mensural.g_change",e[e["clefs.hufnagel.do"]=354]="clefs.hufnagel.do",e[e["clefs.hufnagel.do_change"]=355]="clefs.hufnagel.do_change",e[e["clefs.hufnagel.fa"]=356]="clefs.hufnagel.fa",e[e["clefs.hufnagel.fa_change"]=357]="clefs.hufnagel.fa_change",e[e["clefs.hufnagel.do.fa"]=358]="clefs.hufnagel.do.fa",e[e["clefs.hufnagel.do.fa_change"]=359]="clefs.hufnagel.do.fa_change",e[e["clefs.kievan.do"]=360]="clefs.kievan.do",e[e["clefs.kievan.do_change"]=361]="clefs.kievan.do_change",e[e["custodes.hufnagel.u0"]=362]="custodes.hufnagel.u0",e[e["custodes.hufnagel.u1"]=363]="custodes.hufnagel.u1",e[e["custodes.hufnagel.u2"]=364]="custodes.hufnagel.u2",e[e["custodes.hufnagel.d0"]=365]="custodes.hufnagel.d0",e[e["custodes.hufnagel.d1"]=366]="custodes.hufnagel.d1",e[e["custodes.hufnagel.d2"]=367]="custodes.hufnagel.d2",e[e["custodes.medicaea.u0"]=368]="custodes.medicaea.u0",e[e["custodes.medicaea.u1"]=369]="custodes.medicaea.u1",e[e["custodes.medicaea.u2"]=370]="custodes.medicaea.u2",e[e["custodes.medicaea.d0"]=371]="custodes.medicaea.d0",e[e["custodes.medicaea.d1"]=372]="custodes.medicaea.d1",e[e["custodes.medicaea.d2"]=373]="custodes.medicaea.d2",e[e["custodes.vaticana.u0"]=374]="custodes.vaticana.u0",e[e["custodes.vaticana.u1"]=375]="custodes.vaticana.u1",e[e["custodes.vaticana.u2"]=376]="custodes.vaticana.u2",e[e["custodes.vaticana.d0"]=377]="custodes.vaticana.d0",e[e["custodes.vaticana.d1"]=378]="custodes.vaticana.d1",e[e["custodes.vaticana.d2"]=379]="custodes.vaticana.d2",e[e["custodes.mensural.u0"]=380]="custodes.mensural.u0",e[e["custodes.mensural.u1"]=381]="custodes.mensural.u1",e[e["custodes.mensural.u2"]=382]="custodes.mensural.u2",e[e["custodes.mensural.d0"]=383]="custodes.mensural.d0",e[e["custodes.mensural.d1"]=384]="custodes.mensural.d1",e[e["custodes.mensural.d2"]=385]="custodes.mensural.d2",e[e["accidentals.medicaeaM1"]=386]="accidentals.medicaeaM1",e[e["accidentals.vaticanaM1"]=387]="accidentals.vaticanaM1",e[e["accidentals.vaticana0"]=388]="accidentals.vaticana0",e[e["accidentals.mensural1"]=389]="accidentals.mensural1",e[e["accidentals.mensuralM1"]=390]="accidentals.mensuralM1",e[e["accidentals.hufnagelM1"]=391]="accidentals.hufnagelM1",e[e["accidentals.kievan1"]=392]="accidentals.kievan1",e[e["accidentals.kievanM1"]=393]="accidentals.kievanM1",e[e["flags.mensuralu03"]=394]="flags.mensuralu03",e[e["flags.mensuralu13"]=395]="flags.mensuralu13",e[e["flags.mensuralu23"]=396]="flags.mensuralu23",e[e["flags.mensurald03"]=397]="flags.mensurald03",e[e["flags.mensurald13"]=398]="flags.mensurald13",e[e["flags.mensurald23"]=399]="flags.mensurald23",e[e["flags.mensuralu04"]=400]="flags.mensuralu04",e[e["flags.mensuralu14"]=401]="flags.mensuralu14",e[e["flags.mensuralu24"]=402]="flags.mensuralu24",e[e["flags.mensurald04"]=403]="flags.mensurald04",e[e["flags.mensurald14"]=404]="flags.mensurald14",e[e["flags.mensurald24"]=405]="flags.mensurald24",e[e["flags.mensuralu05"]=406]="flags.mensuralu05",e[e["flags.mensuralu15"]=407]="flags.mensuralu15",e[e["flags.mensuralu25"]=408]="flags.mensuralu25",e[e["flags.mensurald05"]=409]="flags.mensurald05",e[e["flags.mensurald15"]=410]="flags.mensurald15",e[e["flags.mensurald25"]=411]="flags.mensurald25",e[e["flags.mensuralu06"]=412]="flags.mensuralu06",e[e["flags.mensuralu16"]=413]="flags.mensuralu16",e[e["flags.mensuralu26"]=414]="flags.mensuralu26",e[e["flags.mensurald06"]=415]="flags.mensurald06",e[e["flags.mensurald16"]=416]="flags.mensurald16",e[e["flags.mensurald26"]=417]="flags.mensurald26",e[e["timesig.mensural44"]=418]="timesig.mensural44",e[e["timesig.mensural22"]=419]="timesig.mensural22",e[e["timesig.mensural32"]=420]="timesig.mensural32",e[e["timesig.mensural64"]=421]="timesig.mensural64",e[e["timesig.mensural94"]=422]="timesig.mensural94",e[e["timesig.mensural34"]=423]="timesig.mensural34",e[e["timesig.mensural68"]=424]="timesig.mensural68",e[e["timesig.mensural98"]=425]="timesig.mensural98",e[e["timesig.mensural48"]=426]="timesig.mensural48",e[e["timesig.mensural68alt"]=427]="timesig.mensural68alt",e[e["timesig.mensural24"]=428]="timesig.mensural24",e[e["timesig.neomensural44"]=429]="timesig.neomensural44",e[e["timesig.neomensural22"]=430]="timesig.neomensural22",e[e["timesig.neomensural32"]=431]="timesig.neomensural32",e[e["timesig.neomensural64"]=432]="timesig.neomensural64",e[e["timesig.neomensural94"]=433]="timesig.neomensural94",e[e["timesig.neomensural34"]=434]="timesig.neomensural34",e[e["timesig.neomensural68"]=435]="timesig.neomensural68",e[e["timesig.neomensural98"]=436]="timesig.neomensural98",e[e["timesig.neomensural48"]=437]="timesig.neomensural48",e[e["timesig.neomensural68alt"]=438]="timesig.neomensural68alt",e[e["timesig.neomensural24"]=439]="timesig.neomensural24",e[e["scripts.ictus"]=440]="scripts.ictus",e[e["scripts.uaccentus"]=441]="scripts.uaccentus",e[e["scripts.daccentus"]=442]="scripts.daccentus",e[e["scripts.usemicirculus"]=443]="scripts.usemicirculus",e[e["scripts.dsemicirculus"]=444]="scripts.dsemicirculus",e[e["scripts.circulus"]=445]="scripts.circulus",e[e["scripts.augmentum"]=446]="scripts.augmentum",e[e["scripts.usignumcongruentiae"]=447]="scripts.usignumcongruentiae",e[e["scripts.dsignumcongruentiae"]=448]="scripts.dsignumcongruentiae",e[e["scripts.barline.kievan"]=449]="scripts.barline.kievan",e[e["dots.dotvaticana"]=450]="dots.dotvaticana",e[e["dots.dotkievan"]=451]="dots.dotkievan",e[e["noteheads.uM3neomensural"]=452]="noteheads.uM3neomensural",e[e["noteheads.dM3neomensural"]=453]="noteheads.dM3neomensural",e[e["noteheads.uM2neomensural"]=454]="noteheads.uM2neomensural",e[e["noteheads.dM2neomensural"]=455]="noteheads.dM2neomensural",e[e["noteheads.sM1neomensural"]=456]="noteheads.sM1neomensural",e[e["noteheads.urM3neomensural"]=457]="noteheads.urM3neomensural",e[e["noteheads.drM3neomensural"]=458]="noteheads.drM3neomensural",e[e["noteheads.urM2neomensural"]=459]="noteheads.urM2neomensural",e[e["noteheads.drM2neomensural"]=460]="noteheads.drM2neomensural",e[e["noteheads.srM1neomensural"]=461]="noteheads.srM1neomensural",e[e["noteheads.s0neomensural"]=462]="noteheads.s0neomensural",e[e["noteheads.s1neomensural"]=463]="noteheads.s1neomensural",e[e["noteheads.s2neomensural"]=464]="noteheads.s2neomensural",e[e["noteheads.s0harmonic"]=465]="noteheads.s0harmonic",e[e["noteheads.s2harmonic"]=466]="noteheads.s2harmonic",e[e["noteheads.uM3mensural"]=467]="noteheads.uM3mensural",e[e["noteheads.dM3mensural"]=468]="noteheads.dM3mensural",e[e["noteheads.sM3ligmensural"]=469]="noteheads.sM3ligmensural",e[e["noteheads.uM2mensural"]=470]="noteheads.uM2mensural",e[e["noteheads.dM2mensural"]=471]="noteheads.dM2mensural",e[e["noteheads.sM2ligmensural"]=472]="noteheads.sM2ligmensural",e[e["noteheads.sM1mensural"]=473]="noteheads.sM1mensural",e[e["noteheads.urM3mensural"]=474]="noteheads.urM3mensural",e[e["noteheads.drM3mensural"]=475]="noteheads.drM3mensural",e[e["noteheads.srM3ligmensural"]=476]="noteheads.srM3ligmensural",e[e["noteheads.urM2mensural"]=477]="noteheads.urM2mensural",e[e["noteheads.drM2mensural"]=478]="noteheads.drM2mensural",e[e["noteheads.srM2ligmensural"]=479]="noteheads.srM2ligmensural",e[e["noteheads.srM1mensural"]=480]="noteheads.srM1mensural",e[e["noteheads.uM3semimensural"]=481]="noteheads.uM3semimensural",e[e["noteheads.dM3semimensural"]=482]="noteheads.dM3semimensural",e[e["noteheads.sM3semiligmensural"]=483]="noteheads.sM3semiligmensural",e[e["noteheads.uM2semimensural"]=484]="noteheads.uM2semimensural",e[e["noteheads.dM2semimensural"]=485]="noteheads.dM2semimensural",e[e["noteheads.sM2semiligmensural"]=486]="noteheads.sM2semiligmensural",e[e["noteheads.sM1semimensural"]=487]="noteheads.sM1semimensural",e[e["noteheads.urM3semimensural"]=488]="noteheads.urM3semimensural",e[e["noteheads.drM3semimensural"]=489]="noteheads.drM3semimensural",e[e["noteheads.srM3semiligmensural"]=490]="noteheads.srM3semiligmensural",e[e["noteheads.urM2semimensural"]=491]="noteheads.urM2semimensural",e[e["noteheads.drM2semimensural"]=492]="noteheads.drM2semimensural",e[e["noteheads.srM2semiligmensural"]=493]="noteheads.srM2semiligmensural",e[e["noteheads.srM1semimensural"]=494]="noteheads.srM1semimensural",e[e["noteheads.uM3blackmensural"]=495]="noteheads.uM3blackmensural",e[e["noteheads.dM3blackmensural"]=496]="noteheads.dM3blackmensural",e[e["noteheads.sM3blackligmensural"]=497]="noteheads.sM3blackligmensural",e[e["noteheads.uM2blackmensural"]=498]="noteheads.uM2blackmensural",e[e["noteheads.dM2blackmensural"]=499]="noteheads.dM2blackmensural",e[e["noteheads.sM2blackligmensural"]=500]="noteheads.sM2blackligmensural",e[e["noteheads.sM1blackmensural"]=501]="noteheads.sM1blackmensural",e[e["noteheads.s0mensural"]=502]="noteheads.s0mensural",e[e["noteheads.s1mensural"]=503]="noteheads.s1mensural",e[e["noteheads.s2mensural"]=504]="noteheads.s2mensural",e[e["noteheads.s0blackmensural"]=505]="noteheads.s0blackmensural",e[e["noteheads.s0petrucci"]=506]="noteheads.s0petrucci",e[e["noteheads.s1petrucci"]=507]="noteheads.s1petrucci",e[e["noteheads.s2petrucci"]=508]="noteheads.s2petrucci",e[e["noteheads.s0blackpetrucci"]=509]="noteheads.s0blackpetrucci",e[e["noteheads.s1blackpetrucci"]=510]="noteheads.s1blackpetrucci",e[e["noteheads.s2blackpetrucci"]=511]="noteheads.s2blackpetrucci",e[e["noteheads.svaticana.punctum"]=512]="noteheads.svaticana.punctum",e[e["noteheads.svaticana.punctum.cavum"]=513]="noteheads.svaticana.punctum.cavum",e[e["noteheads.svaticana.linea.punctum"]=514]="noteheads.svaticana.linea.punctum",e[e["noteheads.svaticana.linea.punctum.cavum"]=515]="noteheads.svaticana.linea.punctum.cavum",e[e["noteheads.svaticana.inclinatum"]=516]="noteheads.svaticana.inclinatum",e[e["noteheads.svaticana.lpes"]=517]="noteheads.svaticana.lpes",e[e["noteheads.svaticana.vlpes"]=518]="noteheads.svaticana.vlpes",e[e["noteheads.svaticana.upes"]=519]="noteheads.svaticana.upes",e[e["noteheads.svaticana.vupes"]=520]="noteheads.svaticana.vupes",e[e["noteheads.svaticana.plica"]=521]="noteheads.svaticana.plica",e[e["noteheads.svaticana.vplica"]=522]="noteheads.svaticana.vplica",e[e["noteheads.svaticana.epiphonus"]=523]="noteheads.svaticana.epiphonus",e[e["noteheads.svaticana.vepiphonus"]=524]="noteheads.svaticana.vepiphonus",e[e["noteheads.svaticana.reverse.plica"]=525]="noteheads.svaticana.reverse.plica",e[e["noteheads.svaticana.reverse.vplica"]=526]="noteheads.svaticana.reverse.vplica",e[e["noteheads.svaticana.inner.cephalicus"]=527]="noteheads.svaticana.inner.cephalicus",e[e["noteheads.svaticana.cephalicus"]=528]="noteheads.svaticana.cephalicus",e[e["noteheads.svaticana.quilisma"]=529]="noteheads.svaticana.quilisma",e[e["noteheads.ssolesmes.incl.parvum"]=530]="noteheads.ssolesmes.incl.parvum",e[e["noteheads.ssolesmes.auct.asc"]=531]="noteheads.ssolesmes.auct.asc",e[e["noteheads.ssolesmes.auct.desc"]=532]="noteheads.ssolesmes.auct.desc",e[e["noteheads.ssolesmes.incl.auctum"]=533]="noteheads.ssolesmes.incl.auctum",e[e["noteheads.ssolesmes.stropha"]=534]="noteheads.ssolesmes.stropha",e[e["noteheads.ssolesmes.stropha.aucta"]=535]="noteheads.ssolesmes.stropha.aucta",e[e["noteheads.ssolesmes.oriscus"]=536]="noteheads.ssolesmes.oriscus",e[e["noteheads.smedicaea.inclinatum"]=537]="noteheads.smedicaea.inclinatum",e[e["noteheads.smedicaea.punctum"]=538]="noteheads.smedicaea.punctum",e[e["noteheads.smedicaea.rvirga"]=539]="noteheads.smedicaea.rvirga",e[e["noteheads.smedicaea.virga"]=540]="noteheads.smedicaea.virga",e[e["noteheads.shufnagel.punctum"]=541]="noteheads.shufnagel.punctum",e[e["noteheads.shufnagel.virga"]=542]="noteheads.shufnagel.virga",e[e["noteheads.shufnagel.lpes"]=543]="noteheads.shufnagel.lpes",e[e["noteheads.sM2kievan"]=544]="noteheads.sM2kievan",e[e["noteheads.sM1kievan"]=545]="noteheads.sM1kievan",e[e["noteheads.s0kievan"]=546]="noteheads.s0kievan",e[e["noteheads.d2kievan"]=547]="noteheads.d2kievan",e[e["noteheads.u2kievan"]=548]="noteheads.u2kievan",e[e["noteheads.s1kievan"]=549]="noteheads.s1kievan",e[e["noteheads.sr1kievan"]=550]="noteheads.sr1kievan",e[e["noteheads.d3kievan"]=551]="noteheads.d3kievan",e[e["noteheads.u3kievan"]=552]="noteheads.u3kievan",e[e["space"]=553]="space",e[e["plus"]=554]="plus",e[e["comma"]=555]="comma",e[e["hyphen"]=556]="hyphen",e[e["period"]=557]="period",e[e["zero"]=558]="zero",e[e["one"]=559]="one",e[e["two"]=560]="two",e[e["three"]=561]="three",e[e["four"]=562]="four",e[e["five"]=563]="five",e[e["six"]=564]="six",e[e["seven"]=565]="seven",e[e["eight"]=566]="eight",e[e["nine"]=567]="nine",e[e["f"]=568]="f",e[e["m"]=569]="m",e[e["p"]=570]="p",e[e["r"]=571]="r",e[e["s"]=572]="s",e[e["z"]=573]="z"}(d||(d={}));const f=e=>e?e.replace(/\./g,"-").replace("*","star"):null;var t;(function(e){e["rests.0"]="",e["rests.1"]="",e["rests.0o"]="",e["rests.1o"]="",e["rests.M3"]="",e["rests.M2"]="",e["rests.M1"]="",e["rests.M1o"]="",e["rests.2"]="",e["rests.2classical"]="",e["rests.2z"]="",e["rests.3"]="",e["rests.4"]="",e["rests.5"]="",e["rests.6"]="",e["rests.7"]="",e["rests.8"]="",e["rests.9"]="",e["rests.10"]="",e["accidentals.sharp"]="",e["accidentals.sharp.arrowup"]="",e["accidentals.sharp.arrowdown"]="",e["accidentals.sharp.arrowboth"]="",e["accidentals.sharp.slashslash.stem"]="",e["accidentals.sharp.slashslashslash.stemstem"]="",e["accidentals.sharp.slashslashslash.stem"]="",e["accidentals.sharp.slash.stem"]="",e["accidentals.sharp.slashslash.stemstemstem"]="",e["accidentals.doublesharp"]="",e["accidentals.natural"]="",e["accidentals.natural.arrowup"]="",e["accidentals.natural.arrowdown"]="",e["accidentals.natural.arrowboth"]="",e["accidentals.flat"]="",e["accidentals.flat.arrowup"]="",e["accidentals.flat.arrowdown"]="",e["accidentals.flat.arrowboth"]="",e["accidentals.flat.slash"]="",e["accidentals.flat.slashslash"]="",e["accidentals.mirroredflat.flat"]="",e["accidentals.mirroredflat"]="",e["accidentals.mirroredflat.backslash"]="",e["accidentals.flatflat"]="",e["accidentals.flatflat.slash"]="",e["accidentals.rightparen"]="",e["accidentals.leftparen"]="",e["arrowheads.open.01"]="",e["arrowheads.open.0M1"]="",e["arrowheads.open.11"]="",e["arrowheads.open.1M1"]="",e["arrowheads.close.01"]="",e["arrowheads.close.0M1"]="",e["arrowheads.close.11"]="",e["arrowheads.close.1M1"]="",e["dots.dot"]="",e["scripts.ufermata"]="",e["scripts.dfermata"]="",e["scripts.uhenzeshortfermata"]="",e["scripts.dhenzeshortfermata"]="",e["scripts.uhenzelongfermata"]="",e["scripts.dhenzelongfermata"]="",e["scripts.ushortfermata"]="",e["scripts.dshortfermata"]="",e["scripts.uveryshortfermata"]="",e["scripts.dveryshortfermata"]="",e["scripts.ulongfermata"]="",e["scripts.dlongfermata"]="",e["scripts.uverylongfermata"]="",e["scripts.dverylongfermata"]="",e["scripts.thumb"]="",e["scripts.sforzato"]="",e["scripts.espr"]="",e["scripts.staccato"]="",e["scripts.ustaccatissimo"]="",e["scripts.dstaccatissimo"]="",e["scripts.tenuto"]="",e["scripts.uportato"]="",e["scripts.dportato"]="",e["scripts.umarcato"]="",e["scripts.dmarcato"]="",e["scripts.open"]="",e["scripts.halfopen"]="",e["scripts.halfopenvertical"]="",e["scripts.stopped"]="",e["scripts.upbow"]="",e["scripts.downbow"]="",e["scripts.reverseturn"]="",e["scripts.turn"]="",e["scripts.slashturn"]="",e["scripts.haydnturn"]="",e["scripts.trill"]="",e["scripts.upedalheel"]="",e["scripts.dpedalheel"]="",e["scripts.upedaltoe"]="",e["scripts.dpedaltoe"]="",e["scripts.flageolet"]="",e["scripts.segno"]="",e["scripts.varsegno"]="",e["scripts.coda"]="",e["scripts.varcoda"]="",e["scripts.rcomma"]="",e["scripts.lcomma"]="",e["scripts.rvarcomma"]="",e["scripts.lvarcomma"]="",e["scripts.arpeggio"]="",e["scripts.trill_element"]="",e["scripts.arpeggio.arrow.M1"]="",e["scripts.arpeggio.arrow.1"]="",e["scripts.trillelement"]="",e["scripts.prall"]="",e["scripts.mordent"]="",e["scripts.prallprall"]="",e["scripts.prallmordent"]="",e["scripts.upprall"]="",e["scripts.upmordent"]="",e["scripts.prallup"]="",e["scripts.downprall"]="",e["scripts.downmordent"]="",e["scripts.pralldown"]="",e["scripts.lineprall"]="",e["scripts.caesura.curved"]="",e["scripts.caesura.straight"]="",e["scripts.tickmark"]="",e["scripts.snappizzicato"]="",e["clefs.C"]="",e["clefs.C_change"]="",e["clefs.varC"]="",e["clefs.varC_change"]="",e["clefs.F"]="",e["clefs.F_change"]="",e["clefs.G"]="",e["clefs.G_change"]="",e["clefs.GG"]="",e["clefs.GG_change"]="",e["clefs.tenorG"]="",e["clefs.tenorG_change"]="",e["clefs.percussion"]="",e["clefs.percussion_change"]="",e["clefs.varpercussion"]="",e["clefs.varpercussion_change"]="",e["clefs.tab"]="",e["clefs.tab_change"]="",e["timesig.C44"]="",e["timesig.C22"]="",e["pedal.*"]="",e["pedal.M"]="",e["pedal.."]="",e["pedal.P"]="",e["pedal.d"]="",e["pedal.e"]="",e["pedal.Ped"]="",e["brackettips.up"]="",e["brackettips.down"]="",e["accordion.discant"]="",e["accordion.dot"]="",e["accordion.freebass"]="",e["accordion.stdbass"]="",e["accordion.bayanbass"]="",e["accordion.oldEE"]="",e["accordion.push"]="",e["accordion.pull"]="",e["ties.lyric.short"]="",e["ties.lyric.default"]="",e["noteheads.uM2"]="",e["noteheads.dM2"]="",e["noteheads.sM1"]="",e["noteheads.sM1double"]="",e["noteheads.s0"]="",e["noteheads.s1"]="",e["noteheads.s2"]="",e["noteheads.s0diamond"]="",e["noteheads.s1diamond"]="",e["noteheads.s2diamond"]="",e["noteheads.s0triangle"]="",e["noteheads.d1triangle"]="",e["noteheads.u1triangle"]="",e["noteheads.u2triangle"]="",e["noteheads.d2triangle"]="",e["noteheads.s0slash"]="",e["noteheads.s1slash"]="",e["noteheads.s2slash"]="",e["noteheads.s0cross"]="",e["noteheads.s1cross"]="",e["noteheads.s2cross"]="",e["noteheads.s2xcircle"]="",e["noteheads.s0do"]="",e["noteheads.d1do"]="",e["noteheads.u1do"]="",e["noteheads.d2do"]="",e["noteheads.u2do"]="",e["noteheads.s0doThin"]="",e["noteheads.d1doThin"]="",e["noteheads.u1doThin"]="",e["noteheads.d2doThin"]="",e["noteheads.u2doThin"]="",e["noteheads.s0re"]="",e["noteheads.u1re"]="",e["noteheads.d1re"]="",e["noteheads.u2re"]="",e["noteheads.d2re"]="",e["noteheads.s0reThin"]="",e["noteheads.u1reThin"]="",e["noteheads.d1reThin"]="",e["noteheads.u2reThin"]="",e["noteheads.d2reThin"]="",e["noteheads.s0mi"]="",e["noteheads.s1mi"]="",e["noteheads.s2mi"]="",e["noteheads.s0miMirror"]="",e["noteheads.s1miMirror"]="",e["noteheads.s2miMirror"]="",e["noteheads.s0miThin"]="",e["noteheads.s1miThin"]="",e["noteheads.s2miThin"]="",e["noteheads.u0fa"]="",e["noteheads.d0fa"]="",e["noteheads.u1fa"]="",e["noteheads.d1fa"]="",e["noteheads.u2fa"]="",e["noteheads.d2fa"]="",e["noteheads.u0faThin"]="",e["noteheads.d0faThin"]="",e["noteheads.u1faThin"]="",e["noteheads.d1faThin"]="",e["noteheads.u2faThin"]="",e["noteheads.d2faThin"]="",e["noteheads.s0sol"]="",e["noteheads.s1sol"]="",e["noteheads.s2sol"]="",e["noteheads.s0la"]="",e["noteheads.s1la"]="",e["noteheads.s2la"]="",e["noteheads.s0laThin"]="",e["noteheads.s1laThin"]="",e["noteheads.s2laThin"]="",e["noteheads.s0ti"]="",e["noteheads.u1ti"]="",e["noteheads.d1ti"]="",e["noteheads.u2ti"]="",e["noteheads.d2ti"]="",e["noteheads.s0tiThin"]="",e["noteheads.u1tiThin"]="",e["noteheads.d1tiThin"]="",e["noteheads.u2tiThin"]="",e["noteheads.d2tiThin"]="",e["noteheads.u0doFunk"]="",e["noteheads.d0doFunk"]="",e["noteheads.u1doFunk"]="",e["noteheads.d1doFunk"]="",e["noteheads.u2doFunk"]="",e["noteheads.d2doFunk"]="",e["noteheads.u0reFunk"]="",e["noteheads.d0reFunk"]="",e["noteheads.u1reFunk"]="",e["noteheads.d1reFunk"]="",e["noteheads.u2reFunk"]="",e["noteheads.d2reFunk"]="",e["noteheads.u0miFunk"]="",e["noteheads.d0miFunk"]="",e["noteheads.u1miFunk"]="",e["noteheads.d1miFunk"]="",e["noteheads.s2miFunk"]="",e["noteheads.u0faFunk"]="",e["noteheads.d0faFunk"]="",e["noteheads.u1faFunk"]="",e["noteheads.d1faFunk"]="",e["noteheads.u2faFunk"]="",e["noteheads.d2faFunk"]="",e["noteheads.s0solFunk"]="",e["noteheads.s1solFunk"]="",e["noteheads.s2solFunk"]="",e["noteheads.s0laFunk"]="",e["noteheads.s1laFunk"]="",e["noteheads.s2laFunk"]="",e["noteheads.u0tiFunk"]="",e["noteheads.d0tiFunk"]="",e["noteheads.u1tiFunk"]="",e["noteheads.d1tiFunk"]="",e["noteheads.u2tiFunk"]="",e["noteheads.d2tiFunk"]="",e["noteheads.s0doWalker"]="",e["noteheads.u1doWalker"]="",e["noteheads.d1doWalker"]="",e["noteheads.u2doWalker"]="",e["noteheads.d2doWalker"]="",e["noteheads.s0reWalker"]="",e["noteheads.u1reWalker"]="",e["noteheads.d1reWalker"]="",e["noteheads.u2reWalker"]="",e["noteheads.d2reWalker"]="",e["noteheads.s0miWalker"]="",e["noteheads.s1miWalker"]="",e["noteheads.s2miWalker"]="",e["noteheads.s0faWalker"]="",e["noteheads.u1faWalker"]="",e["noteheads.d1faWalker"]="",e["noteheads.u2faWalker"]="",e["noteheads.d2faWalker"]="",e["noteheads.s0laWalker"]="",e["noteheads.s1laWalker"]="",e["noteheads.s2laWalker"]="",e["noteheads.s0tiWalker"]="",e["noteheads.u1tiWalker"]="",e["noteheads.d1tiWalker"]="",e["noteheads.u2tiWalker"]="",e["noteheads.d2tiWalker"]="",e["flags.u3"]="",e["flags.u4"]="",e["flags.u5"]="",e["flags.u6"]="",e["flags.u7"]="",e["flags.u8"]="",e["flags.u9"]="",e["flags.u10"]="",e["flags.d3"]="",e["flags.d4"]="",e["flags.d5"]="",e["flags.d6"]="",e["flags.d7"]="",e["flags.d8"]="",e["flags.d9"]="",e["flags.d10"]="",e["flags.ugrace"]="",e["flags.dgrace"]="",e["rests.M3neomensural"]="",e["rests.M2neomensural"]="",e["rests.M1neomensural"]="",e["rests.0neomensural"]="",e["rests.1neomensural"]="",e["rests.2neomensural"]="",e["rests.3neomensural"]="",e["rests.4neomensural"]="",e["rests.M3mensural"]="",e["rests.M2mensural"]="",e["rests.M1mensural"]="",e["rests.0mensural"]="",e["rests.1mensural"]="",e["rests.2mensural"]="",e["rests.3mensural"]="",e["rests.4mensural"]="",e["clefs.vaticana.do"]="",e["clefs.vaticana.do_change"]="",e["clefs.vaticana.fa"]="",e["clefs.vaticana.fa_change"]="",e["clefs.medicaea.do"]="",e["clefs.medicaea.do_change"]="",e["clefs.medicaea.fa"]="",e["clefs.medicaea.fa_change"]="",e["clefs.neomensural.c"]="",e["clefs.neomensural.c_change"]="",e["clefs.petrucci.c1"]="",e["clefs.petrucci.c1_change"]="",e["clefs.petrucci.c2"]="",e["clefs.petrucci.c2_change"]="",e["clefs.petrucci.c3"]="",e["clefs.petrucci.c3_change"]="",e["clefs.petrucci.c4"]="",e["clefs.petrucci.c4_change"]="",e["clefs.petrucci.c5"]="",e["clefs.petrucci.c5_change"]="",e["clefs.mensural.c"]="",e["clefs.mensural.c_change"]="",e["clefs.blackmensural.c"]="",e["clefs.blackmensural.c_change"]="",e["clefs.petrucci.f"]="",e["clefs.petrucci.f_change"]="",e["clefs.mensural.f"]="",e["clefs.mensural.f_change"]="",e["clefs.petrucci.g"]="",e["clefs.petrucci.g_change"]="",e["clefs.mensural.g"]="",e["clefs.mensural.g_change"]="",e["clefs.hufnagel.do"]="",e["clefs.hufnagel.do_change"]="",e["clefs.hufnagel.fa"]="",e["clefs.hufnagel.fa_change"]="",e["clefs.hufnagel.do.fa"]="",e["clefs.hufnagel.do.fa_change"]="",e["clefs.kievan.do"]="",e["clefs.kievan.do_change"]="",e["custodes.hufnagel.u0"]="",e["custodes.hufnagel.u1"]="",e["custodes.hufnagel.u2"]="",e["custodes.hufnagel.d0"]="",e["custodes.hufnagel.d1"]="",e["custodes.hufnagel.d2"]="",e["custodes.medicaea.u0"]="",e["custodes.medicaea.u1"]="",e["custodes.medicaea.u2"]="",e["custodes.medicaea.d0"]="",e["custodes.medicaea.d1"]="",e["custodes.medicaea.d2"]="",e["custodes.vaticana.u0"]="",e["custodes.vaticana.u1"]="",e["custodes.vaticana.u2"]="",e["custodes.vaticana.d0"]="",e["custodes.vaticana.d1"]="",e["custodes.vaticana.d2"]="",e["custodes.mensural.u0"]="",e["custodes.mensural.u1"]="",e["custodes.mensural.u2"]="",e["custodes.mensural.d0"]="",e["custodes.mensural.d1"]="",e["custodes.mensural.d2"]="",e["accidentals.medicaeaM1"]="",e["accidentals.vaticanaM1"]="",e["accidentals.vaticana0"]="",e["accidentals.mensural1"]="",e["accidentals.mensuralM1"]="",e["accidentals.hufnagelM1"]="",e["accidentals.kievan1"]="",e["accidentals.kievanM1"]="",e["flags.mensuralu03"]="",e["flags.mensuralu13"]="",e["flags.mensuralu23"]="",e["flags.mensurald03"]="",e["flags.mensurald13"]="",e["flags.mensurald23"]="",e["flags.mensuralu04"]="",e["flags.mensuralu14"]="",e["flags.mensuralu24"]="",e["flags.mensurald04"]="",e["flags.mensurald14"]="",e["flags.mensurald24"]="",e["flags.mensuralu05"]="",e["flags.mensuralu15"]="",e["flags.mensuralu25"]="",e["flags.mensurald05"]="",e["flags.mensurald15"]="",e["flags.mensurald25"]="",e["flags.mensuralu06"]="",e["flags.mensuralu16"]="",e["flags.mensuralu26"]="",e["flags.mensurald06"]="",e["flags.mensurald16"]="",e["flags.mensurald26"]="",e["timesig.mensural44"]="",e["timesig.mensural22"]="",e["timesig.mensural32"]="",e["timesig.mensural64"]="",e["timesig.mensural94"]="",e["timesig.mensural34"]="",e["timesig.mensural68"]="",e["timesig.mensural98"]="",e["timesig.mensural48"]="",e["timesig.mensural68alt"]="",e["timesig.mensural24"]="",e["timesig.neomensural44"]="",e["timesig.neomensural22"]="",e["timesig.neomensural32"]="",e["timesig.neomensural64"]="",e["timesig.neomensural94"]="",e["timesig.neomensural34"]="",e["timesig.neomensural68"]="",e["timesig.neomensural98"]="",e["timesig.neomensural48"]="",e["timesig.neomensural68alt"]="",e["timesig.neomensural24"]="",e["scripts.ictus"]="",e["scripts.uaccentus"]="",e["scripts.daccentus"]="",e["scripts.usemicirculus"]="",e["scripts.dsemicirculus"]="",e["scripts.circulus"]="",e["scripts.augmentum"]="",e["scripts.usignumcongruentiae"]="",e["scripts.dsignumcongruentiae"]="",e["scripts.barline.kievan"]="",e["dots.dotvaticana"]="",e["dots.dotkievan"]="",e["noteheads.uM3neomensural"]="",e["noteheads.dM3neomensural"]="",e["noteheads.uM2neomensural"]="",e["noteheads.dM2neomensural"]="",e["noteheads.sM1neomensural"]="",e["noteheads.urM3neomensural"]="",e["noteheads.drM3neomensural"]="",e["noteheads.urM2neomensural"]="",e["noteheads.drM2neomensural"]="",e["noteheads.srM1neomensural"]="",e["noteheads.s0neomensural"]="",e["noteheads.s1neomensural"]="",e["noteheads.s2neomensural"]="",e["noteheads.s0harmonic"]="",e["noteheads.s2harmonic"]="",e["noteheads.uM3mensural"]="",e["noteheads.dM3mensural"]="",e["noteheads.sM3ligmensural"]="",e["noteheads.uM2mensural"]="",e["noteheads.dM2mensural"]="",e["noteheads.sM2ligmensural"]="",e["noteheads.sM1mensural"]="",e["noteheads.urM3mensural"]="",e["noteheads.drM3mensural"]="",e["noteheads.srM3ligmensural"]="",e["noteheads.urM2mensural"]="",e["noteheads.drM2mensural"]="",e["noteheads.srM2ligmensural"]="",e["noteheads.srM1mensural"]="",e["noteheads.uM3semimensural"]="",e["noteheads.dM3semimensural"]="",e["noteheads.sM3semiligmensural"]="",e["noteheads.uM2semimensural"]="",e["noteheads.dM2semimensural"]="",e["noteheads.sM2semiligmensural"]="",e["noteheads.sM1semimensural"]="",e["noteheads.urM3semimensural"]="",e["noteheads.drM3semimensural"]="",e["noteheads.srM3semiligmensural"]="",e["noteheads.urM2semimensural"]="",e["noteheads.drM2semimensural"]="",e["noteheads.srM2semiligmensural"]="",e["noteheads.srM1semimensural"]="",e["noteheads.uM3blackmensural"]="",e["noteheads.dM3blackmensural"]="",e["noteheads.sM3blackligmensural"]="",e["noteheads.uM2blackmensural"]="",e["noteheads.dM2blackmensural"]="",e["noteheads.sM2blackligmensural"]="",e["noteheads.sM1blackmensural"]="",e["noteheads.s0mensural"]="",e["noteheads.s1mensural"]="",e["noteheads.s2mensural"]="",e["noteheads.s0blackmensural"]="",e["noteheads.s0petrucci"]="",e["noteheads.s1petrucci"]="",e["noteheads.s2petrucci"]="",e["noteheads.s0blackpetrucci"]="",e["noteheads.s1blackpetrucci"]="",e["noteheads.s2blackpetrucci"]="",e["noteheads.svaticana.punctum"]="",e["noteheads.svaticana.punctum.cavum"]="",e["noteheads.svaticana.linea.punctum"]="",e["noteheads.svaticana.linea.punctum.cavum"]="",e["noteheads.svaticana.inclinatum"]="",e["noteheads.svaticana.lpes"]="",e["noteheads.svaticana.vlpes"]="",e["noteheads.svaticana.upes"]="",e["noteheads.svaticana.vupes"]="",e["noteheads.svaticana.plica"]="",e["noteheads.svaticana.vplica"]="",e["noteheads.svaticana.epiphonus"]="",e["noteheads.svaticana.vepiphonus"]="",e["noteheads.svaticana.reverse.plica"]="",e["noteheads.svaticana.reverse.vplica"]="",e["noteheads.svaticana.inner.cephalicus"]="",e["noteheads.svaticana.cephalicus"]="",e["noteheads.svaticana.quilisma"]="",e["noteheads.ssolesmes.incl.parvum"]="",e["noteheads.ssolesmes.auct.asc"]="",e["noteheads.ssolesmes.auct.desc"]="",e["noteheads.ssolesmes.incl.auctum"]="",e["noteheads.ssolesmes.stropha"]="",e["noteheads.ssolesmes.stropha.aucta"]="",e["noteheads.ssolesmes.oriscus"]="",e["noteheads.smedicaea.inclinatum"]="",e["noteheads.smedicaea.punctum"]="",e["noteheads.smedicaea.rvirga"]="",e["noteheads.smedicaea.virga"]="",e["noteheads.shufnagel.punctum"]="",e["noteheads.shufnagel.virga"]="",e["noteheads.shufnagel.lpes"]="",e["noteheads.sM2kievan"]="",e["noteheads.sM1kievan"]="",e["noteheads.s0kievan"]="",e["noteheads.d2kievan"]="",e["noteheads.u2kievan"]="",e["noteheads.s1kievan"]="",e["noteheads.sr1kievan"]="",e["noteheads.d3kievan"]="",e["noteheads.u3kievan"]="",e["space"]=" ",e["plus"]="+",e["comma"]=",",e["hyphen"]="-",e["period"]=".",e["zero"]="0",e["one"]="1",e["two"]="2",e["three"]="3",e["four"]="4",e["five"]="5",e["six"]="6",e["seven"]="7",e["eight"]="8",e["nine"]="9",e["f"]="f",e["m"]="m",e["n"]="n",e["p"]="p",e["r"]="r",e["s"]="s",e["z"]="z"})(t||(t={}))},"46f9":function(e,a,c){"use strict";c.r(a),c.d(a,"LayoutType",(function(){return d})),c.d(a,"SingleMLayout",(function(){return b})),c.d(a,"BlockMLayout",(function(){return n})),c.d(a,"VoltaMLayout",(function(){return r})),c.d(a,"ABAMLayout",(function(){return o}));var d,s=c("f634");(function(e){e["Ordinary"]="ordinary",e["Full"]="full",e["Conservative"]="conservative",e["Once"]="once"})(d||(d={}));const f=(e,a=d.Ordinary)=>[].concat(...e.map(e=>e.serialize(a))),t=(e,{withBrackets:a=!1}={})=>{let c="",d=!1;for(let s=0;s0&&!d&&(c+=", "),d=!1,c+=e[s].code)}return a?`[${c}]`:c};class b extends s["a"]{static from(e){const a=new b;return a.measure=e,a}serialize(){return[this.measure]}get seq(){return[this]}get code(){return this.measure.toString()}}b.className="SingleMLayout";class n extends s["a"]{static trimSeq(e){const a=[];for(const s of e)if(s instanceof n)for(const e of s.seq)a.push(e);else a.push(s);const c=[];let d=null;for(const s of a)s instanceof b?s.measure>d&&(c.push(s),d=s.measure):c.push(s);return c}static fromSeq(e){const a=new n;return a.seq=n.trimSeq(e),a}serialize(e){return f(this.seq,e)}get code(){return t(this.seq,{withBrackets:!0})}}n.className="BlockMLayout";class r extends s["a"]{serialize(e){const a=f(this.body);if(this.alternates){const c=this.alternates.map(e=>f(e)),s=c[c.length-1];switch(e){case d.Ordinary:return a.concat(...c);case d.Conservative:case d.Full:{const e=[].concat(...Array(this.times-1).fill(null).map((e,d)=>[...a,...c[d%(this.times-1)]]));return[...e,...a,...s]}case d.Once:return[...a,...s]}}else switch(e){case d.Ordinary:case d.Conservative:case d.Once:return a;case d.Full:return[].concat(...Array(this.times).fill(null).map(()=>a))}console.warn("the current case not handled:",e,this)}get seq(){const e=this.alternates?this.alternates[this.alternates.length-1]:[];return[...this.body,...e]}get code(){const e=t(this.body,{withBrackets:!0});let a=`${this.times}*${e}`;return this.alternates&&(a+="{"+this.alternates.map(e=>t(e,{withBrackets:e.length>1})).join(", ")+"}"),a}}r.className="VoltaMLayout";class o extends s["a"]{serialize(e){const a=this.main.serialize(e),c=f(this.main.seq,d.Once),s=f(this.rest,e);switch(e){case d.Ordinary:return[...a,...s];case d.Once:return[...s,...c];case d.Conservative:case d.Full:return[...a,...s,...c];default:console.warn("the current case not handled:",e,this)}}get seq(){return[this.main,...this.rest]}get code(){return"<"+this.main.code+", "+t(this.rest)+">"}}o.className="ABAMLayout"},"4b63":function(e,a,c){(function(a,c){e.exports=c()})("undefined"!==typeof self&&self,(function(){return function(e){var a={};function c(d){if(a[d])return a[d].exports;var s=a[d]={i:d,l:!1,exports:{}};return e[d].call(s.exports,s,s.exports,c),s.l=!0,s.exports}return c.m=e,c.c=a,c.d=function(e,a,d){c.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:d})},c.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,a){if(1&a&&(e=c(e)),8&a)return e;if(4&a&&"object"===typeof e&&e&&e.__esModule)return e;var d=Object.create(null);if(c.r(d),Object.defineProperty(d,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var s in e)c.d(d,s,function(a){return e[a]}.bind(null,s));return d},c.n=function(e){var a=e&&e.__esModule?function(){return e["default"]}:function(){return e};return c.d(a,"a",a),a},c.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},c.p="",c(c.s="fae3")}({"0241":function(e,a,c){const d=c("b37a"),s=c("33e9"),f=800,t=.24*f,b=e=>Math.tanh(e/t),n=function(e,a,{softIndexFactor:c=1}={}){a=Number(a);const d=e[a];if(a>0){const s=e[a-1];console.assert(null!=d.start,"note.start is null",d),console.assert(null!=s.start,"lastNote.start is null",s),d.deltaSi=b((d.start-s.start)*c),d.softIndex=s.softIndex+d.deltaSi,console.assert(!Number.isNaN(d.deltaSi),"note.deltaSi is NaN.",d.start,s.start)}else d.softIndex=0,d.deltaSi=0},r=function(e,a,c=d.zero()){e.matches=[];const s=a.pitchMap[e.pitch];if(s)for(const f of s){const a=new d(e,f);c&&a.evaluatePrev(c),e.matches.push(a)}},o=function(e,{softIndexFactor:a=1}={}){for(let c=0;cnew Promise(e=>requestAnimationFrame(e));class f{constructor(e,{cacheSpan:a=600,onMidi:c,onPlayFinish:s,onTurnCursor:f}={}){let t;this.cacheSpan=a,this.onMidi=c,this.onPlayFinish=s,this.onTurnCursor=f,t=e.notes&&Number.isFinite(e.endTime)?e:d.parseMidi(e),this.notation=t,this.events=t.events,this.isPlaying=!1,this.progressTime=0,this.startTime=performance.now(),this.duration=t.endTime,this.cursorTurnDelta=0,console.assert(t.tempos&&t.tempos.length,"[MidiPlayer] invalid notation, tempos is empty.")}dispose(){this.isPlaying=!1,this.progressTime=0}get progressTicks(){return this.notation.timeToTicks(this.progressTime)}set progressTicks(e){this.progressTime=this.notation.ticksToTime(e),this.onTurnCursor&&this.onTurnCursor(this.progressTime)}async play({nextFrame:e=s}={}){this.progressTime>=this.duration&&(this.progressTime=0);let a=performance.now();this.startTime=a-this.progressTime,this.isPlaying=!0;let c=this.events.findIndex(e=>e.time>=a-this.startTime);while(this.isPlaying){for(;cthis.progressTime+this.cacheSpan)break;"channel"===e.data.type&&this.startTime+e.time>=a&&this.onMidi&&this.onMidi(e.data,this.startTime+e.time)}if(await e(),!this.isPlaying)break;if(0!==this.cursorTurnDelta){const e=this.cursorTurnDelta<0;if(this.startTime-=this.cursorTurnDelta,this.cursorTurnDelta=0,e)for(;c>0;--c){const e=this.events[c].time;if(this.startTime+ethis.duration&&(this.isPlaying=!1,this.onPlayFinish&&this.onPlayFinish())}}pause(){this.isPlaying=!1}turnCursor(e){this.isPlaying?this.cursorTurnDelta+=e-this.progressTime:this.progressTime=e,this.onTurnCursor&&this.onTurnCursor(e)}}e.exports=f},"2ef0":function(e,a,c){(function(e,d){var s; +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */(function(){var f,t="4.17.21",b=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",r="Expected a function",o="Invalid `variable` option passed into `_.template`",i="__lodash_hash_undefined__",l=500,u="__lodash_placeholder__",h=1,m=2,p=4,g=1,v=2,M=1,k=2,y=4,_=8,T=16,w=32,E=64,x=128,F=256,A=512,I=30,N="...",S=800,z=16,W=1,O=2,C=3,P=1/0,B=9007199254740991,R=17976931348623157e292,D=NaN,L=4294967295,Y=L-1,q=L>>>1,U=[["ary",x],["bind",M],["bindKey",k],["curry",_],["curryRight",T],["flip",A],["partial",w],["partialRight",E],["rearg",F]],G="[object Arguments]",j="[object Array]",V="[object AsyncFunction]",H="[object Boolean]",K="[object Date]",X="[object DOMException]",J="[object Error]",$="[object Function]",Z="[object GeneratorFunction]",Q="[object Map]",ee="[object Number]",ae="[object Null]",ce="[object Object]",de="[object Promise]",se="[object Proxy]",fe="[object RegExp]",te="[object Set]",be="[object String]",ne="[object Symbol]",re="[object Undefined]",oe="[object WeakMap]",ie="[object WeakSet]",le="[object ArrayBuffer]",ue="[object DataView]",he="[object Float32Array]",me="[object Float64Array]",pe="[object Int8Array]",ge="[object Int16Array]",ve="[object Int32Array]",Me="[object Uint8Array]",ke="[object Uint8ClampedArray]",ye="[object Uint16Array]",_e="[object Uint32Array]",Te=/\b__p \+= '';/g,we=/\b(__p \+=) '' \+/g,Ee=/(__e\(.*?\)|\b__t\)) \+\n'';/g,xe=/&(?:amp|lt|gt|quot|#39);/g,Fe=/[&<>"']/g,Ae=RegExp(xe.source),Ie=RegExp(Fe.source),Ne=/<%-([\s\S]+?)%>/g,Se=/<%([\s\S]+?)%>/g,ze=/<%=([\s\S]+?)%>/g,We=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Oe=/^\w*$/,Ce=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pe=/[\\^$.*+?()[\]{}|]/g,Be=RegExp(Pe.source),Re=/^\s+/,De=/\s/,Le=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ye=/\{\n\/\* \[wrapped with (.+)\] \*/,qe=/,? & /,Ue=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ge=/[()=,{}\[\]\/\s]/,je=/\\(\\)?/g,Ve=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,He=/\w*$/,Ke=/^[-+]0x[0-9a-f]+$/i,Xe=/^0b[01]+$/i,Je=/^\[object .+?Constructor\]$/,$e=/^0o[0-7]+$/i,Ze=/^(?:0|[1-9]\d*)$/,Qe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ea=/($^)/,aa=/['\n\r\u2028\u2029\\]/g,ca="\\ud800-\\udfff",da="\\u0300-\\u036f",sa="\\ufe20-\\ufe2f",fa="\\u20d0-\\u20ff",ta=da+sa+fa,ba="\\u2700-\\u27bf",na="a-z\\xdf-\\xf6\\xf8-\\xff",ra="\\xac\\xb1\\xd7\\xf7",oa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ia="\\u2000-\\u206f",la=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ua="A-Z\\xc0-\\xd6\\xd8-\\xde",ha="\\ufe0e\\ufe0f",ma=ra+oa+ia+la,pa="['’]",ga="["+ca+"]",va="["+ma+"]",Ma="["+ta+"]",ka="\\d+",ya="["+ba+"]",_a="["+na+"]",Ta="[^"+ca+ma+ka+ba+na+ua+"]",wa="\\ud83c[\\udffb-\\udfff]",Ea="(?:"+Ma+"|"+wa+")",xa="[^"+ca+"]",Fa="(?:\\ud83c[\\udde6-\\uddff]){2}",Aa="[\\ud800-\\udbff][\\udc00-\\udfff]",Ia="["+ua+"]",Na="\\u200d",Sa="(?:"+_a+"|"+Ta+")",za="(?:"+Ia+"|"+Ta+")",Wa="(?:"+pa+"(?:d|ll|m|re|s|t|ve))?",Oa="(?:"+pa+"(?:D|LL|M|RE|S|T|VE))?",Ca=Ea+"?",Pa="["+ha+"]?",Ba="(?:"+Na+"(?:"+[xa,Fa,Aa].join("|")+")"+Pa+Ca+")*",Ra="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Da="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",La=Pa+Ca+Ba,Ya="(?:"+[ya,Fa,Aa].join("|")+")"+La,qa="(?:"+[xa+Ma+"?",Ma,Fa,Aa,ga].join("|")+")",Ua=RegExp(pa,"g"),Ga=RegExp(Ma,"g"),ja=RegExp(wa+"(?="+wa+")|"+qa+La,"g"),Va=RegExp([Ia+"?"+_a+"+"+Wa+"(?="+[va,Ia,"$"].join("|")+")",za+"+"+Oa+"(?="+[va,Ia+Sa,"$"].join("|")+")",Ia+"?"+Sa+"+"+Wa,Ia+"+"+Oa,Da,Ra,ka,Ya].join("|"),"g"),Ha=RegExp("["+Na+ca+ta+ha+"]"),Ka=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Xa=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ja=-1,$a={};$a[he]=$a[me]=$a[pe]=$a[ge]=$a[ve]=$a[Me]=$a[ke]=$a[ye]=$a[_e]=!0,$a[G]=$a[j]=$a[le]=$a[H]=$a[ue]=$a[K]=$a[J]=$a[$]=$a[Q]=$a[ee]=$a[ce]=$a[fe]=$a[te]=$a[be]=$a[oe]=!1;var Za={};Za[G]=Za[j]=Za[le]=Za[ue]=Za[H]=Za[K]=Za[he]=Za[me]=Za[pe]=Za[ge]=Za[ve]=Za[Q]=Za[ee]=Za[ce]=Za[fe]=Za[te]=Za[be]=Za[ne]=Za[Me]=Za[ke]=Za[ye]=Za[_e]=!0,Za[J]=Za[$]=Za[oe]=!1;var Qa={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},ec={"&":"&","<":"<",">":">",'"':""","'":"'"},ac={"&":"&","<":"<",">":">",""":'"',"'":"'"},cc={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},dc=parseFloat,sc=parseInt,fc="object"==typeof e&&e&&e.Object===Object&&e,tc="object"==typeof self&&self&&self.Object===Object&&self,bc=fc||tc||Function("return this")(),nc=a&&!a.nodeType&&a,rc=nc&&"object"==typeof d&&d&&!d.nodeType&&d,oc=rc&&rc.exports===nc,ic=oc&&fc.process,lc=function(){try{var e=rc&&rc.require&&rc.require("util").types;return e||ic&&ic.binding&&ic.binding("util")}catch(a){}}(),uc=lc&&lc.isArrayBuffer,hc=lc&&lc.isDate,mc=lc&&lc.isMap,pc=lc&&lc.isRegExp,gc=lc&&lc.isSet,vc=lc&&lc.isTypedArray;function Mc(e,a,c){switch(c.length){case 0:return e.call(a);case 1:return e.call(a,c[0]);case 2:return e.call(a,c[0],c[1]);case 3:return e.call(a,c[0],c[1],c[2])}return e.apply(a,c)}function kc(e,a,c,d){var s=-1,f=null==e?0:e.length;while(++s-1}function xc(e,a,c){var d=-1,s=null==e?0:e.length;while(++d-1);return c}function Qc(e,a){var c=e.length;while(c--&&Bc(a,e[c],0)>-1);return c}function ed(e,a){var c=e.length,d=0;while(c--)e[c]===a&&++d;return d}var ad=qc(Qa),cd=qc(ec);function dd(e){return"\\"+cc[e]}function sd(e,a){return null==e?f:e[a]}function fd(e){return Ha.test(e)}function td(e){return Ka.test(e)}function bd(e){var a,c=[];while(!(a=e.next()).done)c.push(a.value);return c}function nd(e){var a=-1,c=Array(e.size);return e.forEach((function(e,d){c[++a]=[d,e]})),c}function rd(e,a){return function(c){return e(a(c))}}function od(e,a){var c=-1,d=e.length,s=0,f=[];while(++c-1}function Yd(e,a){var c=this.__data__,d=rs(c,e);return d<0?(++this.size,c.push([e,a])):c[d][1]=a,this}function qd(e){var a=-1,c=null==e?0:e.length;this.clear();while(++a=a?e:a)),e}function ps(e,a,c,d,s,t){var b,n=a&h,r=a&m,o=a&p;if(c&&(b=s?c(e,d,s,t):c(e)),b!==f)return b;if(!Eo(e))return e;var i=ro(e);if(i){if(b=eb(e),!n)return dt(e,b)}else{var l=Jt(e),u=l==$||l==Z;if(ho(e))return Hf(e,n);if(l==ce||l==G||u&&!s){if(b=r||u?{}:ab(e),!n)return r?tt(e,ls(b,e)):ft(e,is(b,e))}else{if(!Za[l])return s?e:{};b=cb(e,l,n)}}t||(t=new $d);var g=t.get(e);if(g)return g;t.set(e,b),Ro(e)?e.forEach((function(d){b.add(ps(d,a,c,d,e,t))})):Fo(e)&&e.forEach((function(d,s){b.set(s,ps(d,a,c,s,e,t))}));var v=o?r?Dt:Rt:r?wi:Ti,M=i?f:v(e);return yc(M||e,(function(d,s){M&&(s=d,d=e[s]),ns(b,s,ps(d,a,c,s,e,t))})),b}function gs(e){var a=Ti(e);return function(c){return vs(c,e,a)}}function vs(e,a,c){var d=c.length;if(null==e)return!d;e=ca(e);while(d--){var s=c[d],t=a[s],b=e[s];if(b===f&&!(s in e)||!t(b))return!1}return!0}function Ms(e,a,c){if("function"!=typeof e)throw new fa(r);return wb((function(){e.apply(f,c)}),a)}function ks(e,a,c,d){var s=-1,f=Ec,t=!0,n=e.length,r=[],o=a.length;if(!n)return r;c&&(a=Fc(a,Xc(c))),d?(f=xc,t=!1):a.length>=b&&(f=$c,t=!1,a=new Kd(a));e:while(++ss?0:s+c),d=d===f||d>s?s:Xo(d),d<0&&(d+=s),d=c>d?0:Jo(d);while(c0&&c(b)?a>1?Fs(b,a-1,c,d,s):Ac(s,b):d||(s[s.length]=b)}return s}var As=ot(),Is=ot(!0);function Ns(e,a){return e&&As(e,a,Ti)}function Ss(e,a){return e&&Is(e,a,Ti)}function zs(e,a){return wc(a,(function(a){return _o(e[a])}))}function Ws(e,a){a=Uf(a,e);var c=0,d=a.length;while(null!=e&&ca}function Bs(e,a){return null!=e&&ia.call(e,a)}function Rs(e,a){return null!=e&&a in ca(e)}function Ds(e,a,c){return e>=Ya(a,c)&&e=120&&l.length>=120)?new Kd(n&&l):f}l=e[0];var u=-1,h=r[0];e:while(++u-1)b!==e&&Ea.call(b,n,1),Ea.call(e,n,1)}return e}function pf(e,a){var c=e?a.length:0,d=c-1;while(c--){var s=a[c];if(c==d||s!==f){var f=s;fb(s)?Ea.call(e,s,1):Cf(e,s)}}return e}function gf(e,a){return e+Oa(Va()*(a-e+1))}function vf(e,a,d,s){var f=-1,t=La(Wa((a-e)/(d||1)),0),b=c(t);while(t--)b[s?t:++f]=e,e+=d;return b}function Mf(e,a){var c="";if(!e||a<1||a>B)return c;do{a%2&&(c+=e),a=Oa(a/2),a&&(e+=e)}while(a);return c}function kf(e,a){return Eb(Mb(e,a,Sl),e+"")}function yf(e){return ss(qi(e))}function _f(e,a){var c=qi(e);return Ab(c,ms(a,0,c.length))}function Tf(e,a,c,d){if(!Eo(e))return e;a=Uf(a,e);var s=-1,t=a.length,b=t-1,n=e;while(null!=n&&++sf?0:f+a),d=d>f?f:d,d<0&&(d+=f),f=a>d?0:d-a>>>0,a>>>=0;var t=c(f);while(++s>>1,t=e[f];null!==t&&!Lo(t)&&(c?t<=a:t=b){var o=a?null:At(e);if(o)return id(o);t=!1,s=$c,r=new Kd}else r=a?[]:n;e:while(++d=d?e:Ff(e,a,c)}var Vf=Na||function(e){return bc.clearTimeout(e)};function Hf(e,a){if(a)return e.slice();var c=e.length,d=ya?ya(c):new e.constructor(c);return e.copy(d),d}function Kf(e){var a=new e.constructor(e.byteLength);return new ka(a).set(new ka(e)),a}function Xf(e,a){var c=a?Kf(e.buffer):e.buffer;return new e.constructor(c,e.byteOffset,e.byteLength)}function Jf(e){var a=new e.constructor(e.source,He.exec(e));return a.lastIndex=e.lastIndex,a}function $f(e){return ud?ca(ud.call(e)):{}}function Zf(e,a){var c=a?Kf(e.buffer):e.buffer;return new e.constructor(c,e.byteOffset,e.length)}function Qf(e,a){if(e!==a){var c=e!==f,d=null===e,s=e===e,t=Lo(e),b=a!==f,n=null===a,r=a===a,o=Lo(a);if(!n&&!o&&!t&&e>a||t&&b&&r&&!n&&!o||d&&b&&r||!c&&r||!s)return 1;if(!d&&!t&&!o&&e=b)return n;var r=c[d];return n*("desc"==r?-1:1)}}return e.index-a.index}function at(e,a,d,s){var f=-1,t=e.length,b=d.length,n=-1,r=a.length,o=La(t-b,0),i=c(r+o),l=!s;while(++n1?c[s-1]:f,b=s>2?c[2]:f;t=e.length>3&&"function"==typeof t?(s--,t):f,b&&tb(c[0],c[1],b)&&(t=s<3?f:t,s=1),a=ca(a);while(++d-1?s[t?a[b]:b]:f}}function gt(e){return Bt((function(a){var c=a.length,d=c,s=Ed.prototype.thru;e&&a.reverse();while(d--){var t=a[d];if("function"!=typeof t)throw new fa(r);if(s&&!b&&"wrapper"==Yt(t))var b=new Ed([],!0)}d=b?d:c;while(++d1&&M.reverse(),l&&on))return!1;var o=t.get(e),i=t.get(a);if(o&&i)return o==a&&i==e;var l=-1,u=!0,h=c&v?new Kd:f;t.set(e,a),t.set(a,e);while(++l1?"& ":"")+a[d],a=a.join(c>2?", ":" "),e.replace(Le,"{\n/* [wrapped with "+a+"] */\n")}function sb(e){return ro(e)||no(e)||!!(xa&&e&&e[xa])}function fb(e,a){var c=typeof e;return a=null==a?B:a,!!a&&("number"==c||"symbol"!=c&&Ze.test(e))&&e>-1&&e%1==0&&e0){if(++a>=S)return arguments[0]}else a=0;return e.apply(f,arguments)}}function Ab(e,a){var c=-1,d=e.length,s=d-1;a=a===f?d:a;while(++c1?e[a-1]:f;return c="function"==typeof c?(e.pop(),c):f,Pn(e,c)}));function jn(e){var a=kd(e);return a.__chain__=!0,a}function Vn(e,a){return a(e),e}function Hn(e,a){return a(e)}var Kn=Bt((function(e){var a=e.length,c=a?e[0]:0,d=this.__wrapped__,s=function(a){return hs(a,e)};return!(a>1||this.__actions__.length)&&d instanceof xd&&fb(c)?(d=d.slice(c,+c+(a?1:0)),d.__actions__.push({func:Hn,args:[s],thisArg:f}),new Ed(d,this.__chain__).thru((function(e){return a&&!e.length&&e.push(f),e}))):this.thru(s)}));function Xn(){return jn(this)}function Jn(){return new Ed(this.value(),this.__chain__)}function $n(){this.__values__===f&&(this.__values__=Ho(this.value()));var e=this.__index__>=this.__values__.length,a=e?f:this.__values__[this.__index__++];return{done:e,value:a}}function Zn(){return this}function Qn(e){var a,c=this;while(c instanceof wd){var d=Wb(c);d.__index__=0,d.__values__=f,a?s.__wrapped__=d:a=d;var s=d;c=c.__wrapped__}return s.__wrapped__=e,a}function er(){var e=this.__wrapped__;if(e instanceof xd){var a=e;return this.__actions__.length&&(a=new xd(this)),a=a.reverse(),a.__actions__.push({func:Hn,args:[hn],thisArg:f}),new Ed(a,this.__chain__)}return this.thru(hn)}function ar(){return Rf(this.__wrapped__,this.__actions__)}var cr=bt((function(e,a,c){ia.call(e,c)?++e[c]:us(e,c,1)}));function dr(e,a,c){var d=ro(e)?Tc:Ts;return c&&tb(e,a,c)&&(a=f),d(e,Ut(a,3))}function sr(e,a){var c=ro(e)?wc:xs;return c(e,Ut(a,3))}var fr=pt(jb),tr=pt(Vb);function br(e,a){return Fs(pr(e,a),1)}function nr(e,a){return Fs(pr(e,a),P)}function rr(e,a,c){return c=c===f?1:Xo(c),Fs(pr(e,a),c)}function or(e,a){var c=ro(e)?yc:ys;return c(e,Ut(a,3))}function ir(e,a){var c=ro(e)?_c:_s;return c(e,Ut(a,3))}var lr=bt((function(e,a,c){ia.call(e,c)?e[c].push(a):us(e,c,[a])}));function ur(e,a,c,d){e=io(e)?e:qi(e),c=c&&!d?Xo(c):0;var s=e.length;return c<0&&(c=La(s+c,0)),Do(e)?c<=s&&e.indexOf(a,c)>-1:!!s&&Bc(e,a,c)>-1}var hr=kf((function(e,a,d){var s=-1,f="function"==typeof a,t=io(e)?c(e.length):[];return ys(e,(function(e){t[++s]=f?Mc(a,e,d):qs(e,a,d)})),t})),mr=bt((function(e,a,c){us(e,c,a)}));function pr(e,a){var c=ro(e)?Fc:sf;return c(e,Ut(a,3))}function gr(e,a,c,d){return null==e?[]:(ro(a)||(a=null==a?[]:[a]),c=d?f:c,ro(c)||(c=null==c?[]:[c]),of(e,a,c))}var vr=bt((function(e,a,c){e[c?0:1].push(a)}),(function(){return[[],[]]}));function Mr(e,a,c){var d=ro(e)?Ic:Uc,s=arguments.length<3;return d(e,Ut(a,4),c,s,ys)}function kr(e,a,c){var d=ro(e)?Nc:Uc,s=arguments.length<3;return d(e,Ut(a,4),c,s,_s)}function yr(e,a){var c=ro(e)?wc:xs;return c(e,Yr(Ut(a,3)))}function _r(e){var a=ro(e)?ss:yf;return a(e)}function Tr(e,a,c){a=(c?tb(e,a,c):a===f)?1:Xo(a);var d=ro(e)?fs:_f;return d(e,a)}function wr(e){var a=ro(e)?ts:xf;return a(e)}function Er(e){if(null==e)return 0;if(io(e))return Do(e)?md(e):e.length;var a=Jt(e);return a==Q||a==te?e.size:af(e).length}function xr(e,a,c){var d=ro(e)?Sc:Af;return c&&tb(e,a,c)&&(a=f),d(e,Ut(a,3))}var Fr=kf((function(e,a){if(null==e)return[];var c=a.length;return c>1&&tb(e,a[0],a[1])?a=[]:c>2&&tb(a[0],a[1],a[2])&&(a=[a[0]]),of(e,Fs(a,1),[])})),Ar=Sa||function(){return bc.Date.now()};function Ir(e,a){if("function"!=typeof a)throw new fa(r);return e=Xo(e),function(){if(--e<1)return a.apply(this,arguments)}}function Nr(e,a,c){return a=c?f:a,a=e&&null==a?e.length:a,Nt(e,x,f,f,f,f,a)}function Sr(e,a){var c;if("function"!=typeof a)throw new fa(r);return e=Xo(e),function(){return--e>0&&(c=a.apply(this,arguments)),e<=1&&(a=f),c}}var zr=kf((function(e,a,c){var d=M;if(c.length){var s=od(c,qt(zr));d|=w}return Nt(e,d,a,c,s)})),Wr=kf((function(e,a,c){var d=M|k;if(c.length){var s=od(c,qt(Wr));d|=w}return Nt(a,d,e,c,s)}));function Or(e,a,c){a=c?f:a;var d=Nt(e,_,f,f,f,f,f,a);return d.placeholder=Or.placeholder,d}function Cr(e,a,c){a=c?f:a;var d=Nt(e,T,f,f,f,f,f,a);return d.placeholder=Cr.placeholder,d}function Pr(e,a,c){var d,s,t,b,n,o,i=0,l=!1,u=!1,h=!0;if("function"!=typeof e)throw new fa(r);function m(a){var c=d,t=s;return d=s=f,i=a,b=e.apply(t,c),b}function p(e){return i=e,n=wb(M,a),l?m(e):b}function g(e){var c=e-o,d=e-i,s=a-c;return u?Ya(s,t-d):s}function v(e){var c=e-o,d=e-i;return o===f||c>=a||c<0||u&&d>=t}function M(){var e=Ar();if(v(e))return k(e);n=wb(M,g(e))}function k(e){return n=f,h&&d?m(e):(d=s=f,b)}function y(){n!==f&&Vf(n),i=0,d=o=s=n=f}function _(){return n===f?b:k(Ar())}function T(){var e=Ar(),c=v(e);if(d=arguments,s=this,o=e,c){if(n===f)return p(o);if(u)return Vf(n),n=wb(M,a),m(o)}return n===f&&(n=wb(M,a)),b}return a=$o(a)||0,Eo(c)&&(l=!!c.leading,u="maxWait"in c,t=u?La($o(c.maxWait)||0,a):t,h="trailing"in c?!!c.trailing:h),T.cancel=y,T.flush=_,T}var Br=kf((function(e,a){return Ms(e,1,a)})),Rr=kf((function(e,a,c){return Ms(e,$o(a)||0,c)}));function Dr(e){return Nt(e,A)}function Lr(e,a){if("function"!=typeof e||null!=a&&"function"!=typeof a)throw new fa(r);var c=function(){var d=arguments,s=a?a.apply(this,d):d[0],f=c.cache;if(f.has(s))return f.get(s);var t=e.apply(this,d);return c.cache=f.set(s,t)||f,t};return c.cache=new(Lr.Cache||qd),c}function Yr(e){if("function"!=typeof e)throw new fa(r);return function(){var a=arguments;switch(a.length){case 0:return!e.call(this);case 1:return!e.call(this,a[0]);case 2:return!e.call(this,a[0],a[1]);case 3:return!e.call(this,a[0],a[1],a[2])}return!e.apply(this,a)}}function qr(e){return Sr(2,e)}Lr.Cache=qd;var Ur=Gf((function(e,a){a=1==a.length&&ro(a[0])?Fc(a[0],Xc(Ut())):Fc(Fs(a,1),Xc(Ut()));var c=a.length;return kf((function(d){var s=-1,f=Ya(d.length,c);while(++s=a})),no=Us(function(){return arguments}())?Us:function(e){return xo(e)&&ia.call(e,"callee")&&!wa.call(e,"callee")},ro=c.isArray,oo=uc?Xc(uc):Gs;function io(e){return null!=e&&wo(e.length)&&!_o(e)}function lo(e){return xo(e)&&io(e)}function uo(e){return!0===e||!1===e||xo(e)&&Cs(e)==H}var ho=Pa||Xl,mo=hc?Xc(hc):js;function po(e){return xo(e)&&1===e.nodeType&&!Co(e)}function go(e){if(null==e)return!0;if(io(e)&&(ro(e)||"string"==typeof e||"function"==typeof e.splice||ho(e)||Yo(e)||no(e)))return!e.length;var a=Jt(e);if(a==Q||a==te)return!e.size;if(lb(e))return!af(e).length;for(var c in e)if(ia.call(e,c))return!1;return!0}function vo(e,a){return Vs(e,a)}function Mo(e,a,c){c="function"==typeof c?c:f;var d=c?c(e,a):f;return d===f?Vs(e,a,f,c):!!d}function ko(e){if(!xo(e))return!1;var a=Cs(e);return a==J||a==X||"string"==typeof e.message&&"string"==typeof e.name&&!Co(e)}function yo(e){return"number"==typeof e&&Ba(e)}function _o(e){if(!Eo(e))return!1;var a=Cs(e);return a==$||a==Z||a==V||a==se}function To(e){return"number"==typeof e&&e==Xo(e)}function wo(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=B}function Eo(e){var a=typeof e;return null!=e&&("object"==a||"function"==a)}function xo(e){return null!=e&&"object"==typeof e}var Fo=mc?Xc(mc):Ks;function Ao(e,a){return e===a||Xs(e,a,jt(a))}function Io(e,a,c){return c="function"==typeof c?c:f,Xs(e,a,jt(a),c)}function No(e){return Oo(e)&&e!=+e}function So(e){if(ib(e))throw new s(n);return Js(e)}function zo(e){return null===e}function Wo(e){return null==e}function Oo(e){return"number"==typeof e||xo(e)&&Cs(e)==ee}function Co(e){if(!xo(e)||Cs(e)!=ce)return!1;var a=_a(e);if(null===a)return!0;var c=ia.call(a,"constructor")&&a.constructor;return"function"==typeof c&&c instanceof c&&oa.call(c)==ma}var Po=pc?Xc(pc):$s;function Bo(e){return To(e)&&e>=-B&&e<=B}var Ro=gc?Xc(gc):Zs;function Do(e){return"string"==typeof e||!ro(e)&&xo(e)&&Cs(e)==be}function Lo(e){return"symbol"==typeof e||xo(e)&&Cs(e)==ne}var Yo=vc?Xc(vc):Qs;function qo(e){return e===f}function Uo(e){return xo(e)&&Jt(e)==oe}function Go(e){return xo(e)&&Cs(e)==ie}var jo=Et(df),Vo=Et((function(e,a){return e<=a}));function Ho(e){if(!e)return[];if(io(e))return Do(e)?pd(e):dt(e);if(Fa&&e[Fa])return bd(e[Fa]());var a=Jt(e),c=a==Q?nd:a==te?id:qi;return c(e)}function Ko(e){if(!e)return 0===e?e:0;if(e=$o(e),e===P||e===-P){var a=e<0?-1:1;return a*R}return e===e?e:0}function Xo(e){var a=Ko(e),c=a%1;return a===a?c?a-c:a:0}function Jo(e){return e?ms(Xo(e),0,L):0}function $o(e){if("number"==typeof e)return e;if(Lo(e))return D;if(Eo(e)){var a="function"==typeof e.valueOf?e.valueOf():e;e=Eo(a)?a+"":a}if("string"!=typeof e)return 0===e?e:+e;e=Kc(e);var c=Xe.test(e);return c||$e.test(e)?sc(e.slice(2),c?2:8):Ke.test(e)?D:+e}function Zo(e){return st(e,wi(e))}function Qo(e){return e?ms(Xo(e),-B,B):0===e?e:0}function ei(e){return null==e?"":Wf(e)}var ai=nt((function(e,a){if(lb(a)||io(a))st(a,Ti(a),e);else for(var c in a)ia.call(a,c)&&ns(e,c,a[c])})),ci=nt((function(e,a){st(a,wi(a),e)})),di=nt((function(e,a,c,d){st(a,wi(a),e,d)})),si=nt((function(e,a,c,d){st(a,Ti(a),e,d)})),fi=Bt(hs);function ti(e,a){var c=_d(e);return null==a?c:is(c,a)}var bi=kf((function(e,a){e=ca(e);var c=-1,d=a.length,s=d>2?a[2]:f;s&&tb(a[0],a[1],s)&&(d=1);while(++c1),a})),st(e,Dt(e),c),d&&(c=ps(c,h|m|p,Wt));var s=a.length;while(s--)Cf(c,a[s]);return c}));function Ni(e,a){return zi(e,Yr(Ut(a)))}var Si=Bt((function(e,a){return null==e?{}:lf(e,a)}));function zi(e,a){if(null==e)return{};var c=Fc(Dt(e),(function(e){return[e]}));return a=Ut(a),uf(e,c,(function(e,c){return a(e,c[0])}))}function Wi(e,a,c){a=Uf(a,e);var d=-1,s=a.length;s||(s=1,e=f);while(++da){var d=e;e=a,a=d}if(c||e%1||a%1){var s=Va();return Ya(e+s*(a-e+dc("1e-"+((s+"").length-1))),a)}return gf(e,a)}var Hi=ut((function(e,a,c){return a=a.toLowerCase(),e+(c?Ki(a):a)}));function Ki(e){return yl(ei(e).toLowerCase())}function Xi(e){return e=ei(e),e&&e.replace(Qe,ad).replace(Ga,"")}function Ji(e,a,c){e=ei(e),a=Wf(a);var d=e.length;c=c===f?d:ms(Xo(c),0,d);var s=c;return c-=a.length,c>=0&&e.slice(c,s)==a}function $i(e){return e=ei(e),e&&Ie.test(e)?e.replace(Fe,cd):e}function Zi(e){return e=ei(e),e&&Be.test(e)?e.replace(Pe,"\\$&"):e}var Qi=ut((function(e,a,c){return e+(c?"-":"")+a.toLowerCase()})),el=ut((function(e,a,c){return e+(c?" ":"")+a.toLowerCase()})),al=lt("toLowerCase");function cl(e,a,c){e=ei(e),a=Xo(a);var d=a?md(e):0;if(!a||d>=a)return e;var s=(a-d)/2;return _t(Oa(s),c)+e+_t(Wa(s),c)}function dl(e,a,c){e=ei(e),a=Xo(a);var d=a?md(e):0;return a&&d>>0,c?(e=ei(e),e&&("string"==typeof a||null!=a&&!Po(a))&&(a=Wf(a),!a&&fd(e))?jf(pd(e),0,c):e.split(a,c)):[]}var ol=ut((function(e,a,c){return e+(c?" ":"")+yl(a)}));function il(e,a,c){return e=ei(e),c=null==c?0:ms(Xo(c),0,e.length),a=Wf(a),e.slice(c,c+a.length)==a}function ll(e,a,c){var d=kd.templateSettings;c&&tb(e,a,c)&&(a=f),e=ei(e),a=di({},a,d,St);var t,b,n=di({},a.imports,d.imports,St),r=Ti(n),i=Jc(n,r),l=0,u=a.interpolate||ea,h="__p += '",m=da((a.escape||ea).source+"|"+u.source+"|"+(u===ze?Ve:ea).source+"|"+(a.evaluate||ea).source+"|$","g"),p="//# sourceURL="+(ia.call(a,"sourceURL")?(a.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Ja+"]")+"\n";e.replace(m,(function(a,c,d,s,f,n){return d||(d=s),h+=e.slice(l,n).replace(aa,dd),c&&(t=!0,h+="' +\n__e("+c+") +\n'"),f&&(b=!0,h+="';\n"+f+";\n__p += '"),d&&(h+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),l=n+a.length,a})),h+="';\n";var g=ia.call(a,"variable")&&a.variable;if(g){if(Ge.test(g))throw new s(o)}else h="with (obj) {\n"+h+"\n}\n";h=(b?h.replace(Te,""):h).replace(we,"$1").replace(Ee,"$1;"),h="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(t?", __e = _.escape":"")+(b?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var v=Tl((function(){return De(r,p+"return "+h).apply(f,i)}));if(v.source=h,ko(v))throw v;return v}function ul(e){return ei(e).toLowerCase()}function hl(e){return ei(e).toUpperCase()}function ml(e,a,c){if(e=ei(e),e&&(c||a===f))return Kc(e);if(!e||!(a=Wf(a)))return e;var d=pd(e),s=pd(a),t=Zc(d,s),b=Qc(d,s)+1;return jf(d,t,b).join("")}function pl(e,a,c){if(e=ei(e),e&&(c||a===f))return e.slice(0,gd(e)+1);if(!e||!(a=Wf(a)))return e;var d=pd(e),s=Qc(d,pd(a))+1;return jf(d,0,s).join("")}function gl(e,a,c){if(e=ei(e),e&&(c||a===f))return e.replace(Re,"");if(!e||!(a=Wf(a)))return e;var d=pd(e),s=Zc(d,pd(a));return jf(d,s).join("")}function vl(e,a){var c=I,d=N;if(Eo(a)){var s="separator"in a?a.separator:s;c="length"in a?Xo(a.length):c,d="omission"in a?Wf(a.omission):d}e=ei(e);var t=e.length;if(fd(e)){var b=pd(e);t=b.length}if(c>=t)return e;var n=c-md(d);if(n<1)return d;var r=b?jf(b,0,n).join(""):e.slice(0,n);if(s===f)return r+d;if(b&&(n+=r.length-n),Po(s)){if(e.slice(n).search(s)){var o,i=r;s.global||(s=da(s.source,ei(He.exec(s))+"g")),s.lastIndex=0;while(o=s.exec(i))var l=o.index;r=r.slice(0,l===f?n:l)}}else if(e.indexOf(Wf(s),n)!=n){var u=r.lastIndexOf(s);u>-1&&(r=r.slice(0,u))}return r+d}function Ml(e){return e=ei(e),e&&Ae.test(e)?e.replace(xe,vd):e}var kl=ut((function(e,a,c){return e+(c?" ":"")+a.toUpperCase()})),yl=lt("toUpperCase");function _l(e,a,c){return e=ei(e),a=c?f:a,a===f?td(e)?yd(e):Oc(e):e.match(a)||[]}var Tl=kf((function(e,a){try{return Mc(e,f,a)}catch(c){return ko(c)?c:new s(c)}})),wl=Bt((function(e,a){return yc(a,(function(a){a=Nb(a),us(e,a,zr(e[a],e))})),e}));function El(e){var a=null==e?0:e.length,c=Ut();return e=a?Fc(e,(function(e){if("function"!=typeof e[1])throw new fa(r);return[c(e[0]),e[1]]})):[],kf((function(c){var d=-1;while(++dB)return[];var c=L,d=Ya(e,L);a=Ut(a),e-=L;var s=Vc(d,a);while(++c0||a<0)?new xd(c):(e<0?c=c.takeRight(-e):e&&(c=c.drop(e)),a!==f&&(a=Xo(a),c=a<0?c.dropRight(-a):c.take(a-e)),c)},xd.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},xd.prototype.toArray=function(){return this.take(L)},Ns(xd.prototype,(function(e,a){var c=/^(?:filter|find|map|reject)|While$/.test(a),d=/^(?:head|last)$/.test(a),s=kd[d?"take"+("last"==a?"Right":""):a],t=d||/^find/.test(a);s&&(kd.prototype[a]=function(){var a=this.__wrapped__,b=d?[1]:arguments,n=a instanceof xd,r=b[0],o=n||ro(a),i=function(e){var a=s.apply(kd,Ac([e],b));return d&&l?a[0]:a};o&&c&&"function"==typeof r&&1!=r.length&&(n=o=!1);var l=this.__chain__,u=!!this.__actions__.length,h=t&&!l,m=n&&!u;if(!t&&o){a=m?a:new xd(this);var p=e.apply(a,b);return p.__actions__.push({func:Hn,args:[i],thisArg:f}),new Ed(p,l)}return h&&m?e.apply(this,b):(p=this.thru(i),h?d?p.value()[0]:p.value():p)})})),yc(["pop","push","shift","sort","splice","unshift"],(function(e){var a=ta[e],c=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",d=/^(?:pop|shift)$/.test(e);kd.prototype[e]=function(){var e=arguments;if(d&&!this.__chain__){var s=this.value();return a.apply(ro(s)?s:[],e)}return this[c]((function(c){return a.apply(ro(c)?c:[],e)}))}})),Ns(xd.prototype,(function(e,a){var c=kd[a];if(c){var d=c.name+"";ia.call(nc,d)||(nc[d]=[]),nc[d].push({name:a,func:c})}})),nc[vt(f,k).name]=[{name:"wrapper",func:f}],xd.prototype.clone=Fd,xd.prototype.reverse=Ad,xd.prototype.value=Id,kd.prototype.at=Kn,kd.prototype.chain=Xn,kd.prototype.commit=Jn,kd.prototype.next=$n,kd.prototype.plant=Qn,kd.prototype.reverse=er,kd.prototype.toJSON=kd.prototype.valueOf=kd.prototype.value=ar,kd.prototype.first=kd.prototype.head,Fa&&(kd.prototype[Fa]=Zn),kd},Td=_d();bc._=Td,s=function(){return Td}.call(a,c,a,d),s===f||(d.exports=s)}).call(this)}).call(this,c("c8ba"),c("62e4")(e))},"33e9":function(e,a,c){const d=c("4620"),s=c("b37a");class f{constructor(e,a,c={}){this.criterion=e,this.sample=a,this.getCursorOffset=c.getCursorOffset||(()=>null),this.outOfPage=c.outOfPage,this.bestNode=null,this.fineCursor=null,this.breakingSI=a.notes.length-1,this.zeroNode=s.zero(),this.zeroNode.offset=this.getCursorOffset()||0,this.relocationThreshold=c.relocationThreshold||d.RelocationThreshold}step(e){const a=this.sample.notes[e];if(a.matches.length>0){a.matches.forEach(a=>{a.evaluatePrev(this.zeroNode);for(let c=e-1;c>=Math.max(this.breakingSI+1,e-d.SkipDeep);--c){const s=this.sample.notes[c];console.assert(s,"prevNote is null:",c,e,this.sample.notes),s.matches.forEach(e=>{const c=a.offset-e.offset;c<2/d.LagOffsetCost&&c>-2/d.LeadOffsetCost&&a.evaluatePrev(e)})}if(a.prior=a.totalCost>1.99?-1:a.priorByOffset(this.zeroNode.offset),a.prior>0&&this.outOfPage){const e=this.criterion.notes[a.ci].startTick;this.outOfPage(e)&&(a.prior-=.7)}}),a.matches.sort((e,a)=>a.prior-e.prior),this.cursors=a.matches;let c=null;const s=this.nullSteps(e),f=this.cursors[0];f&&f.totalCost<1&&(f.prior>0||f.totalCost<.4&&Math.log(Math.max(s*f.value,.001))>this.relocationThreshold)&&(this.zeroNode.offset=f.offset,c=f,(!this.bestNode||f.value>this.bestNode.value)&&(this.bestNode=f)),c?this.fineCursor=c:this.resetCursor(e,{breaking:!1})||(this.zeroNode.offset+=a.deltaSi*Math.tanh(s),console.assert(!Number.isNaN(this.zeroNode.offset),"zeroNode.offset is NaN.",a.deltaSi,s))}else this.cursors=[]}path({fromIndex:e=0,toIndex:a=this.sample.notes.length-1}={}){const c=[];let d=null;for(let s=a;s>=e;){const e=this.sample.notes[s];if(!e.matches.length||e.matches[0].prior<-.01||e.matches[0].totalCost>=1){c[s]=-1,--s;continue}null!=d&&(e.matches.forEach(e=>e.backPrior=e.totalCost<1.99?e.priorByOffset(d):-1),e.matches.sort((e,a)=>a.backPrior-e.backPrior));const a=e.matches[0];a.path.forEach((e,a)=>c[a]=e),d=a.root.offset,s=a.rootSi-1}return console.assert(c.length==a+1,"path length error:",c,e,a+1,this.sample.notes.length,this.sample.notes.length?this.sample.notes[this.sample.notes.length-1].index:null),c}nullSteps(e){return e-(this.fineCursor?this.fineCursor.si:-1)-1}resetCursor(e,{breaking:a=!0}={}){a&&(this.breakingSI=e);const c=this.getCursorOffset();return null!=c&&(this.zeroNode.offset=c,this.zeroNode.si=e,this.fineCursor=null,console.assert(!Number.isNaN(this.zeroNode.offset),"zeroNode.offset is NaN.",c),!0)}get relocationTendency(){const e=this.cursors&&this.cursors[0];if(!e)return null;const a=this.nullSteps(e.si);return a<=0?0:Math.log(Math.max(a*e.value,.001))/this.relocationThreshold}}e.exports=f},"3b0d":function(e,a){e.exports=class{constructor(){this.buffer=""}write(e){this.buffer+=e}writeInt32(e){this.buffer+=String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)}writeInt16(e){this.buffer+=String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)}writeInt8(e){this.buffer+=String.fromCharCode(255&e)}writeVarInt(e){if(e<0)throw new Error("OStream.writeVarInt minus number: "+e);const a=127&e;e>>=7;let c=String.fromCharCode(a);while(e){const a=127&e;e>>=7,c=String.fromCharCode(128|a)+c}this.buffer+=c}getBuffer(){return this.buffer}getArrayBuffer(){return Uint8Array.from(this.buffer.split("").map(e=>e.charCodeAt(0))).buffer}}},"3b97":function(e,a){const c=(e,{timeWarp:a=1}={})=>{const c=[];let d=120;const s=e.header.ticksPerBeat;for(let r=0;r0){const a=t.ticksToEvent/s;e=a/(d/60)}"meta"==t.event.type&&"setTempo"==t.event.subtype&&(d=6e7/t.event.microsecondsPerBeat);const c=1e3*e*a||0;b.push([t,c]),t=f()}if(t=f())while(t)e()}return n(),b},d=e=>{const a=new Map;return e.filter(([{event:e,ticksToEvent:c}])=>{if(c>0&&a.clear(),"channel"!==e.type)return!0;const d=`${e.subtype}|${e.channel}|${e.noteNumber}`;return!a.get(d)&&(a.set(d,e),!0)})},s=e=>{const a=new Map,c=new Map,d=[];let s=-1;return e.forEach(([{event:e,ticksToEvent:f}],t)=>{if(f>0&&(s=t),"channel"!==e.type)return;const b=`${e.channel}|${e.noteNumber}`;switch(e.subtype){case"noteOn":a.get(b)?c.set(b,s):a.set(b,s);break;case"noteOff":c.get(b)?(d.push([c.get(b),t]),c.delete(b)):a.delete(b);break}}),d.forEach((e,a)=>{for(let c=a-1;c>=0;--c){const a=d[c];if(a[1]a[0]&&++e[0]}}),d.forEach(([a,c])=>{if(c>=e.length-1||a<0)return;const d=e[c],s=e[c+1],f=e[a];if(!f[0].ticksToEvent)return void console.warn("invalid front index:",a,c,f);const t=f[1]/f[0].ticksToEvent;s[1]+=d[1],s[0].ticksToEvent+=d[0].ticksToEvent,d[0].ticksToEvent=f[0].ticksToEvent-1,f[0].ticksToEvent=1,d[1]=d[0].ticksToEvent*t,f[1]=f[0].ticksToEvent*t,e.splice(c,1),e.splice(a,0,d)}),e};e.exports={midiToSequence:c,trimSequence:d,fixOverlapNotes:s}},4620:function(e,a){e.exports={CostStepAttenuation:.6,SkipDeep:3,PriorDistanceSigmoidFactor:.1,PriorValueSigmoidFactor:.12,SkipCost:.5,LagOffsetCost:1,LeadOffsetCost:1.6,ZeroOffsetCost:.58,RelocationThreshold:6}},"4a2c":function(e,a,c){const d=c("3b0d");e.exports=function({header:e,tracks:a}){function c(e,a,c){console.assert(4===a.length,"chunk id must be 4 byte"),e.write(a),e.writeInt32(c.length),e.write(c)}function s(e,a){if("unknown"!==a.subtype)switch(e.writeVarInt(a.deltaTime),a.type){case"meta":switch(e.writeInt8(255),a.subtype){case"sequenceNumber":e.writeInt8(0),e.writeVarInt(2),e.writeInt16(a.number);break;case"text":e.writeInt8(1),e.writeVarInt(a.text.length),e.write(a.text);break;case"copyrightNotice":e.writeInt8(2),e.writeVarInt(a.text.length),e.write(a.text);break;case"trackName":e.writeInt8(3),e.writeVarInt(a.text.length),e.write(a.text);break;case"instrumentName":e.writeInt8(4),e.writeVarInt(a.text.length),e.write(a.text);break;case"lyrics":e.writeInt8(5),e.writeVarInt(a.text.length),e.write(a.text);break;case"marker":e.writeInt8(6),e.writeVarInt(a.text.length),e.write(a.text);break;case"cuePoint":e.writeInt8(7),e.writeVarInt(a.text.length),e.write(a.text);break;case"midiChannelPrefix":e.writeInt8(32),e.writeVarInt(1),e.writeInt8(a.channel);break;case"endOfTrack":e.writeInt8(47),e.writeVarInt(0);break;case"setTempo":e.writeInt8(81),e.writeVarInt(3),e.writeInt8(a.microsecondsPerBeat>>16&255),e.writeInt8(a.microsecondsPerBeat>>8&255),e.writeInt8(255&a.microsecondsPerBeat);break;case"smpteOffset":e.writeInt8(84),e.writeVarInt(5);var c={24:0,25:32,29:64,30:96}[a.frameRate];e.writeInt8(a.hour|c),e.writeInt8(a.min),e.writeInt8(a.sec),e.writeInt8(a.frame),e.writeInt8(a.subframe);break;case"timeSignature":e.writeInt8(88),e.writeVarInt(4),e.writeInt8(a.numerator),e.writeInt8(Math.log2(a.denominator)),e.writeInt8(a.metronome),e.writeInt8(a.thirtyseconds);break;case"keySignature":e.writeInt8(89),e.writeVarInt(2),e.writeInt8(a.key),e.writeInt8(a.scale);break;case"sequencerSpecific":e.writeInt8(127),e.writeVarInt(a.data.length),e.write(a.data);break;default:throw new Error("unhandled event subtype:"+a.subtype)}break;case"sysEx":e.writeInt8(240),e.writeVarInt(a.data.length),e.write(a.data);break;case"dividedSysEx":e.writeInt8(247),e.writeVarInt(a.data.length),e.write(a.data);break;case"channel":switch(a.subtype){case"noteOn":e.writeInt8(144|a.channel),e.writeInt8(a.noteNumber),e.writeInt8(a.velocity);break;case"noteOff":e.writeInt8(128|a.channel),e.writeInt8(a.noteNumber),e.writeInt8(a.velocity?a.velocity:0);break;case"noteAftertouch":e.writeInt8(160|a.channel),e.writeInt8(a.noteNumber),e.writeInt8(a.amount);break;case"controller":e.writeInt8(176|a.channel),e.writeInt8(a.controllerType),e.writeInt8(a.value);break;case"programChange":e.writeInt8(192|a.channel),e.writeInt8(a.programNumber);break;case"channelAftertouch":e.writeInt8(208|a.channel),e.writeInt8(a.amount);break;case"pitchBend":e.writeInt8(224|a.channel),e.writeInt8(255&a.value),e.writeInt8(a.value>>7&255);break;default:throw new Error("unhandled event subtype:"+a.subtype)}break;default:throw new Error("unhandled event type:"+a.type)}}const f=new d,t=new d;t.writeInt16(e.formatType),t.writeInt16(a.length),t.writeInt16(e.ticksPerBeat),c(f,"MThd",t.getBuffer());for(let b=0;b=this.array.length}read(e){const a=this.array.slice(this.position,this.position+e);return this.position+=e,a}readString(e){const a=Array.from(this.read(e));return a.map(e=>String.fromCharCode(e)).join("")}readInt32(){const e=(this.array[this.position]<<24)+(this.array[this.position+1]<<16)+(this.array[this.position+2]<<8)+this.array[this.position+3];return this.position+=4,e}readInt16(){const e=(this.array[this.position]<<8)+this.array[this.position+1];return this.position+=2,e}readInt8(e){let a=this.array[this.position];return e&&a>127&&(a-=256),this.position+=1,a}readVarInt(){let e=0;while(1){const a=this.readInt8();if(!(128&a))return e+a;e+=127&a,e<<=7}}}},"62e4":function(e,a){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},8875:function(e,a,c){var d,s,f;(function(c,t){s=[],d=t,f="function"===typeof d?d.apply(a,s):d,void 0===f||(e.exports=f)})("undefined"!==typeof self&&self,(function(){function e(){if(document.currentScript)return document.currentScript;try{throw new Error}catch(i){var e,a,c,d=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,s=/@([^@]*):(\d+):(\d+)\s*$/gi,f=d.exec(i.stack)||s.exec(i.stack),t=f&&f[1]||!1,b=f&&f[2]||!1,n=document.location.href.replace(document.location.hash,""),r=document.getElementsByTagName("script");t===n&&(e=document.documentElement.outerHTML,a=new RegExp("(?:[^\\n]+?\\n){0,"+(b-2)+"}[^<]*