diff --git a/.gitignore b/.gitignore index a83ccceb4..83264c57c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules test/output output +sample \ No newline at end of file diff --git a/.npmignore b/.npmignore new file mode 100644 index 000000000..3f202d343 --- /dev/null +++ b/.npmignore @@ -0,0 +1,10 @@ +.DS_Store +*.swp +.github +.all-contributorsrc +.editorconfig +coverage +.nyc_output +scripts +sample +vscode \ No newline at end of file diff --git a/README.md b/README.md index e3b26c352..fdcfaf35c 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,56 @@ -# HTML template for the AsyncAPI Generator +
+
+ AsyncAPI logo +
+ HTML template for the AsyncAPI Generator +
+ +HTML template for the [AsyncAPI Generator](https://github.com/asyncapi/generator) using an [AsyncAPI React Component](https://github.com/asyncapi/asyncapi-react) under the hood. + +--- + [![All Contributors](https://img.shields.io/badge/all_contributors-12-orange.svg?style=flat-square)](#contributors-) +--- + ## Usage -``` +```bash ag asyncapi.yaml @asyncapi/html-template -o output ``` If you don't have the AsyncAPI Generator installed, you can install it like this: -``` +```bash npm install -g @asyncapi/generator ``` ## Supported parameters -|Name|Description|Required|Default|Allowed values|Example| +| Name | Description | Required | Default | Allowed values | Example | |---|---|---|---|---|---| -|sidebarOrganization|Defines how the sidebar should be organized. Set its value to `byTagsNoRoot` to categorize operations by operations tags. Set its value to `byTags` when you have tags on a root level. These tags are used to model tags navigation and need to have the same tags in operations.|No|undefined|`byTags`, `byTagsNoRoot`|`byTagsNoRoot`| -|baseHref|Sets the base URL for links and forms.|No|`/`|*Any*|`/docs`| -|version|Override the version of your application provided under `info.version` location in the specification file.|No|Version is taken from the spec file.|*Any* ([See Semver versionning](https://semver.org/))|`1.0.0`| -|singleFile|Set output into one html-file with styles and scripts inside|No|`false`|`true`,`false`|`true`| -|outFilename|The filename of the output file.|No|`index.html`|*Any*|`asyncapi.html`| -|pdf|Generates output HTML as PDF|No|`false`|`true,false`|`false`| +| sidebarOrganization | Defines how the sidebar should be organized. Set its value to `byTagsNoRoot` to categorize operations by operations tags. Set its value to `byTags` when you have tags on a root level. These tags are used to model tags navigation and need to have the same tags in operations. | No | undefined | `byTags`, `byTagsNoRoot` | `byTagsNoRoot` | +| baseHref | Sets the base URL for links and forms. | No | `/` | *Any* | `/docs` | +| version | Override the version of your application provided under `info.version` location in the specification file. | No | Version is taken from the spec file. | *Any* ([See Semver versionning](https://semver.org/)) | `1.0.0` | +| singleFile | Set output into one html-file with styles and scripts inside | No | `false` | `true`,`false` | `true` | +| outFilename | The filename of the output file. | No | `index.html` | *Any* | `asyncapi.html` | +| pdf | Generates output HTML as PDF | No | `false` | `true,false` | `false` | -If you only generate an html website, set the environment variable `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD` to `true` and the generator will skip downloading chromium. +> **NOTE**: If you only generate an HTML website, set the environment variable `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD` to `true` and the generator will skip downloading chromium. ## Development +The HTML-Template is built with an [AsyncAPI React Component](https://github.com/asyncapi/asyncapi-react). For any changes regarding the styling of the page, rendering of the missing/existing elements, please contribute to the [AsyncAPI React Component](https://github.com/asyncapi/asyncapi-react) repository. + +If you want make changes in template itself, please follow: + 1. Make sure you have the latest generator installed: `npm install -g @asyncapi/generator`. 1. Modify the template or its helper functions. >**NOTE:** If you have to modify the [`dummy.yml`](https://github.com/asyncapi/generator/blob/master/test/docs/dummy.yml) file to develop your features, open a PR with the changes in the [asyncapi/generator](https://github.com/asyncapi/generator) repository. -1. Adjust styling and generate `tailwind.min.css` with `npm run generate:assets` 1. Generate output with watcher enabled: `npm run develop`. >**NOTE:** If your changes are not visible, this is maybe because the `ag` use the already installed `html-template` so you should use the `--install` option diff --git a/__transpiled/index.js b/__transpiled/index.js deleted file mode 100644 index d9c263b44..000000000 --- a/__transpiled/index.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; - -var jsxRuntime = require('react/jsx-runtime'); -require('source-map-support/register'); -var ReactDOMServer = require('react-dom/server'); -var AsyncAPIComponent = require('@asyncapi/react-component'); -var generatorReactSdk = require('@asyncapi/generator-react-sdk'); -require('js-yaml'); - -function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - -var ReactDOMServer__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOMServer); -var AsyncAPIComponent__default = /*#__PURE__*/_interopDefaultLegacy(AsyncAPIComponent); - -async function index ({ - asyncapi, - originalAsyncAPI -}) { - return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.File, { - name: "asyncapi.html", - children: /*#__PURE__*/jsxRuntime.jsx(Hydration, { - asyncapi: asyncapi - }) - }); -} - -function Hydration({ - asyncapi -}) { - const component = /*#__PURE__*/jsxRuntime.jsx(AsyncAPIComponent__default['default'], { - parsedSchema: asyncapi - }); - - const content = ReactDOMServer__default['default'].renderToString(component); - const originalAsyncAPI = asyncapi.json(); // double JSON.stringify - trick for escaping \" - - const stringified = JSON.stringify(JSON.stringify(originalAsyncAPI)); - return ` - - - - - - - -
${content}
- - - - - - -`; -} - -module.exports = index; -//# sourceMappingURL=index.js.map diff --git a/__transpiled/index.js.map b/__transpiled/index.js.map deleted file mode 100644 index e8b872612..000000000 --- a/__transpiled/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../template/index.js"],"sourcesContent":["import ReactDOMServer from \"react-dom/server\";\nimport AsyncAPIComponent from \"@asyncapi/react-component\";\nimport { File } from \"@asyncapi/generator-react-sdk\";\nimport yaml from 'js-yaml';\n\nexport default async function({ asyncapi, originalAsyncAPI }) {\n return (\n \n {/* */}\n \n \n );\n}\n\nfunction WebComponent({ originalAsyncAPI }) {\n const json = parseOriginalSpec(originalAsyncAPI)\n // double JSON.stringify - trick for escaping \\\"\n const stringified = JSON.stringify(JSON.stringify(json));\n \n return `\n \n \n \n \n \n \n \n \n \n \n \n \n`;\n}\n\nfunction parseOriginalSpec(originalAsyncAPI) {\n try {\n return JSON.parse(originalAsyncAPI);\n } catch (e) {\n return yaml.load(originalAsyncAPI);\n }\n}\n\nfunction Hydration({ asyncapi }) {\n const component = (\n \n );\n const content = ReactDOMServer.renderToString(component);\n\n const originalAsyncAPI = asyncapi.json();\n // double JSON.stringify - trick for escaping \\\"\n const stringified = JSON.stringify(JSON.stringify(originalAsyncAPI));\n\n return `\n \n \n \n \n \n \n \n
${content}
\n \n \n \n \n \n \n`;\n}\n\n{/* \n\n */}\n"],"names":["asyncapi","originalAsyncAPI","_jsx","File","Hydration","component","AsyncAPIComponent","content","ReactDOMServer","renderToString","json","stringified","JSON","stringify"],"mappings":";;;;;;;;;;;;;;AAKe,sBAAe;AAAEA,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAf,EAA+C;AAC5D,sBACEC,eAACC,sBAAD;AAAM,IAAA,IAAI,EAAC,eAAX;AAAA,2BAEED,eAAC,SAAD;AAAW,MAAA,QAAQ,EAAEF;AAArB;AAFF,IADF;AAMD;;AAsCD,SAASI,SAAT,CAAmB;AAAEJ,EAAAA;AAAF,CAAnB,EAAiC;AAC/B,QAAMK,SAAS,gBACbH,eAACI,qCAAD;AACE,IAAA,YAAY,EAAEN;AADhB,IADF;;AAKA,QAAMO,OAAO,GAAGC,kCAAc,CAACC,cAAf,CAA8BJ,SAA9B,CAAhB;AAEA,QAAMJ,gBAAgB,GAAGD,QAAQ,CAACU,IAAT,EAAzB,CAR+B;;AAU/B,QAAMC,WAAW,GAAGC,IAAI,CAACC,SAAL,CAAeD,IAAI,CAACC,SAAL,CAAeZ,gBAAf,CAAf,CAApB;AAEA,SAAQ;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqBM,OAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2BI,WAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QA1BE;AA2BD;;;;"} \ No newline at end of file diff --git a/__transpiled/js/component.min.js b/__transpiled/js/component.min.js deleted file mode 100644 index 1f4d61e37..000000000 --- a/__transpiled/js/component.min.js +++ /dev/null @@ -1,8826 +0,0 @@ -'use strict'; - -require('source-map-support/register'); - -(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('react')):typeof define==='function'&&define.amd?define(['react'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.AsyncApiComponent=factory(global.React));})(undefined,function(React){function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e};}var React__default=/*#__PURE__*/_interopDefaultLegacy(React);var BindingsType;(function(BindingsType){BindingsType["http"]="http";BindingsType["ws"]="ws";BindingsType["kafka"]="kafka";BindingsType["amqp"]="amqp";BindingsType["amqp1"]="amqp1";BindingsType["mqtt"]="mqtt";BindingsType["mqtt5"]="mqtt5";BindingsType["nats"]="nats";BindingsType["jms"]="jms";BindingsType["sns"]="sns";BindingsType["sqs"]="sqs";BindingsType["stomp"]="stomp";BindingsType["redis"]="redis";})(BindingsType||(BindingsType={}));function isRawMessage(message){return !message.oneOf;}var PayloadType;(function(PayloadType){PayloadType["PUBLISH"]="publish";PayloadType["SUBSCRIBE"]="subscribe";})(PayloadType||(PayloadType={}));function isOneOfPayload(payload){return !!payload&&payload.oneOf!==undefined;}function isAnyOfPayload(payload){return !!payload&&payload.anyOf!==undefined;}var SecuritySchemeType;(function(SecuritySchemeType){SecuritySchemeType["userPassword"]="User / Password";SecuritySchemeType["apiKey"]="API key";SecuritySchemeType["X509"]="X509";SecuritySchemeType["symmetricEncryption"]="Symmetric Encryption";SecuritySchemeType["asymmetricEncryption"]="Asymmetric Encryption";SecuritySchemeType["httpApiKey"]="HTTP API key";SecuritySchemeType["http"]="HTTP";SecuritySchemeType["oauth2"]="OAuth2";SecuritySchemeType["openIdConnect"]="Open ID";})(SecuritySchemeType||(SecuritySchemeType={}));var OAuthFlowsType;(function(OAuthFlowsType){OAuthFlowsType["implicit"]="Implicit";OAuthFlowsType["password"]="Password";OAuthFlowsType["clientCredentials"]="Client Credentials";OAuthFlowsType["authorizationCode"]="Authorization Code";})(OAuthFlowsType||(OAuthFlowsType={}));function isFetchingSchemaInterface(schema){return schema.url!==undefined;}var defaultConfig={schemaID:'',show:{info:true,channels:true,servers:true,messages:true,schemas:true},expand:{channels:{root:true,elements:false},servers:{root:false,elements:false},messages:{root:false,elements:false},schemas:{root:false,elements:false}},showErrors:true};var commonjsGlobal=typeof globalThis!=='undefined'?globalThis:typeof window!=='undefined'?window:typeof global!=='undefined'?global:typeof self!=='undefined'?self:{};function getDefaultExportFromCjs(x){return x&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,'default')?x['default']:x;}function getAugmentedNamespace(n){if(n.__esModule)return n;var a=Object.defineProperty({},'__esModule',{value:true});Object.keys(n).forEach(function(k){var d=Object.getOwnPropertyDescriptor(n,k);Object.defineProperty(a,k,d.get?d:{enumerable:true,get:function(){return n[k];}});});return a;}function createCommonjsModule(fn){var module={exports:{}};return fn(module,module.exports),module.exports;}function commonjsRequire(target){throw new Error('Could not dynamically require "'+target+'". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.');}var src$2=createCommonjsModule(function(module,exports){Object.defineProperty(exports,"__esModule",{value:true});exports.isPlainObject=exports.clone=exports.recursive=exports.merge=exports.main=void 0;module.exports=exports=main;exports.default=main;function main(){var items=[];for(var _i=0;_i1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}return apply$1(func,thisArg,args);};}function unconstruct(func){return function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2];}return construct(func,args);};}/* Add properties to a lookup table */function addToSet(set,array){if(setPrototypeOf){// Make 'in' and truthy checks like Boolean(set.constructor) -// independent of any properties defined on Object.prototype. -// Prevent prototype setters from intercepting set as a this value. -setPrototypeOf(set,null);}var l=array.length;while(l--){var element=array[l];if(typeof element==='string'){var lcElement=stringToLowerCase(element);if(lcElement!==element){// Config presets (e.g. tags.js, attrs.js) are immutable. -if(!isFrozen(array)){array[l]=lcElement;}element=lcElement;}}set[element]=true;}return set;}/* Shallow clone an object */function clone$1(object){var newObject=create(null);var property=void 0;for(property in object){if(apply$1(hasOwnProperty$2,object,[property])){newObject[property]=object[property];}}return newObject;}var html=freeze(['a','abbr','acronym','address','area','article','aside','audio','b','bdi','bdo','big','blink','blockquote','body','br','button','canvas','caption','center','cite','code','col','colgroup','content','data','datalist','dd','decorator','del','details','dfn','dir','div','dl','dt','element','em','fieldset','figcaption','figure','font','footer','form','h1','h2','h3','h4','h5','h6','head','header','hgroup','hr','html','i','img','input','ins','kbd','label','legend','li','main','map','mark','marquee','menu','menuitem','meter','nav','nobr','ol','optgroup','option','output','p','picture','pre','progress','q','rp','rt','ruby','s','samp','section','select','shadow','small','source','spacer','span','strike','strong','style','sub','summary','sup','table','tbody','td','template','textarea','tfoot','th','thead','time','tr','track','tt','u','ul','var','video','wbr']);// SVG -var svg=freeze(['svg','a','altglyph','altglyphdef','altglyphitem','animatecolor','animatemotion','animatetransform','audio','canvas','circle','clippath','defs','desc','ellipse','filter','font','g','glyph','glyphref','hkern','image','line','lineargradient','marker','mask','metadata','mpath','path','pattern','polygon','polyline','radialgradient','rect','stop','style','switch','symbol','text','textpath','title','tref','tspan','video','view','vkern']);var svgFilters=freeze(['feBlend','feColorMatrix','feComponentTransfer','feComposite','feConvolveMatrix','feDiffuseLighting','feDisplacementMap','feDistantLight','feFlood','feFuncA','feFuncB','feFuncG','feFuncR','feGaussianBlur','feMerge','feMergeNode','feMorphology','feOffset','fePointLight','feSpecularLighting','feSpotLight','feTile','feTurbulence']);var mathMl=freeze(['math','menclose','merror','mfenced','mfrac','mglyph','mi','mlabeledtr','mmultiscripts','mn','mo','mover','mpadded','mphantom','mroot','mrow','ms','mspace','msqrt','mstyle','msub','msup','msubsup','mtable','mtd','mtext','mtr','munder','munderover']);var text$2=freeze(['#text']);var html$1=freeze(['accept','action','align','alt','autocapitalize','autocomplete','autopictureinpicture','autoplay','background','bgcolor','border','capture','cellpadding','cellspacing','checked','cite','class','clear','color','cols','colspan','controls','controlslist','coords','crossorigin','datetime','decoding','default','dir','disabled','disablepictureinpicture','disableremoteplayback','download','draggable','enctype','enterkeyhint','face','for','headers','height','hidden','high','href','hreflang','id','inputmode','integrity','ismap','kind','label','lang','list','loading','loop','low','max','maxlength','media','method','min','minlength','multiple','muted','name','noshade','novalidate','nowrap','open','optimum','pattern','placeholder','playsinline','poster','preload','pubdate','radiogroup','readonly','rel','required','rev','reversed','role','rows','rowspan','spellcheck','scope','selected','shape','size','sizes','span','srclang','start','src','srcset','step','style','summary','tabindex','title','translate','type','usemap','valign','value','width','xmlns']);var svg$1=freeze(['accent-height','accumulate','additive','alignment-baseline','ascent','attributename','attributetype','azimuth','basefrequency','baseline-shift','begin','bias','by','class','clip','clippathunits','clip-path','clip-rule','color','color-interpolation','color-interpolation-filters','color-profile','color-rendering','cx','cy','d','dx','dy','diffuseconstant','direction','display','divisor','dur','edgemode','elevation','end','fill','fill-opacity','fill-rule','filter','filterunits','flood-color','flood-opacity','font-family','font-size','font-size-adjust','font-stretch','font-style','font-variant','font-weight','fx','fy','g1','g2','glyph-name','glyphref','gradientunits','gradienttransform','height','href','id','image-rendering','in','in2','k','k1','k2','k3','k4','kerning','keypoints','keysplines','keytimes','lang','lengthadjust','letter-spacing','kernelmatrix','kernelunitlength','lighting-color','local','marker-end','marker-mid','marker-start','markerheight','markerunits','markerwidth','maskcontentunits','maskunits','max','mask','media','method','mode','min','name','numoctaves','offset','operator','opacity','order','orient','orientation','origin','overflow','paint-order','path','pathlength','patterncontentunits','patterntransform','patternunits','points','preservealpha','preserveaspectratio','primitiveunits','r','rx','ry','radius','refx','refy','repeatcount','repeatdur','restart','result','rotate','scale','seed','shape-rendering','specularconstant','specularexponent','spreadmethod','startoffset','stddeviation','stitchtiles','stop-color','stop-opacity','stroke-dasharray','stroke-dashoffset','stroke-linecap','stroke-linejoin','stroke-miterlimit','stroke-opacity','stroke','stroke-width','style','surfacescale','systemlanguage','tabindex','targetx','targety','transform','text-anchor','text-decoration','text-rendering','textlength','type','u1','u2','unicode','values','viewbox','visibility','version','vert-adv-y','vert-origin-x','vert-origin-y','width','word-spacing','wrap','writing-mode','xchannelselector','ychannelselector','x','x1','x2','xmlns','y','y1','y2','z','zoomandpan']);var mathMl$1=freeze(['accent','accentunder','align','bevelled','close','columnsalign','columnlines','columnspan','denomalign','depth','dir','display','displaystyle','encoding','fence','frame','height','href','id','largeop','length','linethickness','lspace','lquote','mathbackground','mathcolor','mathsize','mathvariant','maxsize','minsize','movablelimits','notation','numalign','open','rowalign','rowlines','rowspacing','rowspan','rspace','rquote','scriptlevel','scriptminsize','scriptsizemultiplier','selection','separator','separators','stretchy','subscriptshift','supscriptshift','symmetric','voffset','width','xmlns']);var xml=freeze(['xlink:href','xml:id','xlink:title','xml:space','xmlns:xlink']);// eslint-disable-next-line unicorn/better-regex -var MUSTACHE_EXPR=seal(/\{\{[\s\S]*|[\s\S]*\}\}/gm);// Specify template detection regex for SAFE_FOR_TEMPLATES mode -var ERB_EXPR=seal(/<%[\s\S]*|[\s\S]*%>/gm);var DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]/);// eslint-disable-line no-useless-escape -var ARIA_ATTR=seal(/^aria-[\-\w]+$/);// eslint-disable-line no-useless-escape -var IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i// eslint-disable-line no-useless-escape -);var IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i);var ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g// eslint-disable-line no-control-regex -);var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};function _toConsumableArray$1(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i0&&arguments[0]!==undefined?arguments[0]:getGlobal();var DOMPurify=function DOMPurify(root){return createDOMPurify(root);};/** - * Version label, exposed for easier checks - * if DOMPurify is up to date or not - */DOMPurify.version='2.1.1';/** - * Array of elements that DOMPurify removed during sanitation. - * Empty if nothing was removed. - */DOMPurify.removed=[];if(!window||!window.document||window.document.nodeType!==9){// Not running in a browser, provide a factory function -// so that you can pass your own Window -DOMPurify.isSupported=false;return DOMPurify;}var originalDocument=window.document;var document=window.document;var DocumentFragment=window.DocumentFragment,HTMLTemplateElement=window.HTMLTemplateElement,Node=window.Node,NodeFilter=window.NodeFilter,_window$NamedNodeMap=window.NamedNodeMap,NamedNodeMap=_window$NamedNodeMap===undefined?window.NamedNodeMap||window.MozNamedAttrMap:_window$NamedNodeMap,Text=window.Text,Comment=window.Comment,DOMParser=window.DOMParser,trustedTypes=window.trustedTypes;// As per issue #47, the web-components registry is inherited by a -// new document created via createHTMLDocument. As per the spec -// (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries) -// a new empty registry is used when creating a template contents owner -// document, so we use that as our parent document to ensure nothing -// is inherited. -if(typeof HTMLTemplateElement==='function'){var template=document.createElement('template');if(template.content&&template.content.ownerDocument){document=template.content.ownerDocument;}}var trustedTypesPolicy=_createTrustedTypesPolicy(trustedTypes,originalDocument);var emptyHTML=trustedTypesPolicy&&RETURN_TRUSTED_TYPE?trustedTypesPolicy.createHTML(''):'';var _document=document,implementation=_document.implementation,createNodeIterator=_document.createNodeIterator,getElementsByTagName=_document.getElementsByTagName,createDocumentFragment=_document.createDocumentFragment;var importNode=originalDocument.importNode;var documentMode={};try{documentMode=clone$1(document).documentMode?document.documentMode:{};}catch(_){}var hooks={};/** - * Expose whether this browser supports running the full DOMPurify. - */DOMPurify.isSupported=implementation&&typeof implementation.createHTMLDocument!=='undefined'&&documentMode!==9;var MUSTACHE_EXPR$$1=MUSTACHE_EXPR,ERB_EXPR$$1=ERB_EXPR,DATA_ATTR$$1=DATA_ATTR,ARIA_ATTR$$1=ARIA_ATTR,IS_SCRIPT_OR_DATA$$1=IS_SCRIPT_OR_DATA,ATTR_WHITESPACE$$1=ATTR_WHITESPACE;var IS_ALLOWED_URI$$1=IS_ALLOWED_URI;/** - * We consider the elements and attributes below to be safe. Ideally - * don't add any new ones but feel free to remove unwanted ones. - */ /* allowed element names */var ALLOWED_TAGS=null;var DEFAULT_ALLOWED_TAGS=addToSet({},[].concat(_toConsumableArray$1(html),_toConsumableArray$1(svg),_toConsumableArray$1(svgFilters),_toConsumableArray$1(mathMl),_toConsumableArray$1(text$2)));/* Allowed attribute names */var ALLOWED_ATTR=null;var DEFAULT_ALLOWED_ATTR=addToSet({},[].concat(_toConsumableArray$1(html$1),_toConsumableArray$1(svg$1),_toConsumableArray$1(mathMl$1),_toConsumableArray$1(xml)));/* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */var FORBID_TAGS=null;/* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */var FORBID_ATTR=null;/* Decide if ARIA attributes are okay */var ALLOW_ARIA_ATTR=true;/* Decide if custom data attributes are okay */var ALLOW_DATA_ATTR=true;/* Decide if unknown protocols are okay */var ALLOW_UNKNOWN_PROTOCOLS=false;/* Output should be safe for common template engines. - * This means, DOMPurify removes data attributes, mustaches and ERB - */var SAFE_FOR_TEMPLATES=false;/* Decide if document with ... should be returned */var WHOLE_DOCUMENT=false;/* Track whether config is already set on this instance of DOMPurify. */var SET_CONFIG=false;/* Decide if all elements (e.g. style, script) must be children of - * document.body. By default, browsers might move them to document.head */var FORCE_BODY=false;/* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html - * string (or a TrustedHTML object if Trusted Types are supported). - * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead - */var RETURN_DOM=false;/* Decide if a DOM `DocumentFragment` should be returned, instead of a html - * string (or a TrustedHTML object if Trusted Types are supported) */var RETURN_DOM_FRAGMENT=false;/* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM - * `Node` is imported into the current `Document`. If this flag is not enabled the - * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by - * DOMPurify. */var RETURN_DOM_IMPORT=false;/* Try to return a Trusted Type object instead of a string, return a string in - * case Trusted Types are not supported */var RETURN_TRUSTED_TYPE=false;/* Output should be free from DOM clobbering attacks? */var SANITIZE_DOM=true;/* Keep element content when removing element? */var KEEP_CONTENT=true;/* If a `Node` is passed to sanitize(), then performs sanitization in-place instead - * of importing it into a new Document and returning a sanitized copy */var IN_PLACE=false;/* Allow usage of profiles like html, svg and mathMl */var USE_PROFILES={};/* Tags to ignore content of when KEEP_CONTENT is true */var FORBID_CONTENTS=addToSet({},['annotation-xml','audio','colgroup','desc','foreignobject','head','iframe','math','mi','mn','mo','ms','mtext','noembed','noframes','plaintext','script','style','svg','template','thead','title','video','xmp']);/* Tags that are safe for data: URIs */var DATA_URI_TAGS=null;var DEFAULT_DATA_URI_TAGS=addToSet({},['audio','video','img','source','image','track']);/* Attributes safe for values like "javascript:" */var URI_SAFE_ATTRIBUTES=null;var DEFAULT_URI_SAFE_ATTRIBUTES=addToSet({},['alt','class','for','id','label','name','pattern','placeholder','summary','title','value','style','xmlns']);/* Keep a reference to config to pass to hooks */var CONFIG=null;/* Ideally, do not touch anything below this line */ /* ______________________________________________ */var formElement=document.createElement('form');/** - * _parseConfig - * - * @param {Object} cfg optional config literal - */ // eslint-disable-next-line complexity -var _parseConfig=function _parseConfig(cfg){if(CONFIG&&CONFIG===cfg){return;}/* Shield configuration object from tampering */if(!cfg||(typeof cfg==='undefined'?'undefined':_typeof(cfg))!=='object'){cfg={};}/* Shield configuration object from prototype pollution */cfg=clone$1(cfg);/* Set configuration parameters */ALLOWED_TAGS='ALLOWED_TAGS'in cfg?addToSet({},cfg.ALLOWED_TAGS):DEFAULT_ALLOWED_TAGS;ALLOWED_ATTR='ALLOWED_ATTR'in cfg?addToSet({},cfg.ALLOWED_ATTR):DEFAULT_ALLOWED_ATTR;URI_SAFE_ATTRIBUTES='ADD_URI_SAFE_ATTR'in cfg?addToSet(clone$1(DEFAULT_URI_SAFE_ATTRIBUTES),cfg.ADD_URI_SAFE_ATTR):DEFAULT_URI_SAFE_ATTRIBUTES;DATA_URI_TAGS='ADD_DATA_URI_TAGS'in cfg?addToSet(clone$1(DEFAULT_DATA_URI_TAGS),cfg.ADD_DATA_URI_TAGS):DEFAULT_DATA_URI_TAGS;FORBID_TAGS='FORBID_TAGS'in cfg?addToSet({},cfg.FORBID_TAGS):{};FORBID_ATTR='FORBID_ATTR'in cfg?addToSet({},cfg.FORBID_ATTR):{};USE_PROFILES='USE_PROFILES'in cfg?cfg.USE_PROFILES:false;ALLOW_ARIA_ATTR=cfg.ALLOW_ARIA_ATTR!==false;// Default true -ALLOW_DATA_ATTR=cfg.ALLOW_DATA_ATTR!==false;// Default true -ALLOW_UNKNOWN_PROTOCOLS=cfg.ALLOW_UNKNOWN_PROTOCOLS||false;// Default false -SAFE_FOR_TEMPLATES=cfg.SAFE_FOR_TEMPLATES||false;// Default false -WHOLE_DOCUMENT=cfg.WHOLE_DOCUMENT||false;// Default false -RETURN_DOM=cfg.RETURN_DOM||false;// Default false -RETURN_DOM_FRAGMENT=cfg.RETURN_DOM_FRAGMENT||false;// Default false -RETURN_DOM_IMPORT=cfg.RETURN_DOM_IMPORT||false;// Default false -RETURN_TRUSTED_TYPE=cfg.RETURN_TRUSTED_TYPE||false;// Default false -FORCE_BODY=cfg.FORCE_BODY||false;// Default false -SANITIZE_DOM=cfg.SANITIZE_DOM!==false;// Default true -KEEP_CONTENT=cfg.KEEP_CONTENT!==false;// Default true -IN_PLACE=cfg.IN_PLACE||false;// Default false -IS_ALLOWED_URI$$1=cfg.ALLOWED_URI_REGEXP||IS_ALLOWED_URI$$1;if(SAFE_FOR_TEMPLATES){ALLOW_DATA_ATTR=false;}if(RETURN_DOM_FRAGMENT){RETURN_DOM=true;}/* Parse profile info */if(USE_PROFILES){ALLOWED_TAGS=addToSet({},[].concat(_toConsumableArray$1(text$2)));ALLOWED_ATTR=[];if(USE_PROFILES.html===true){addToSet(ALLOWED_TAGS,html);addToSet(ALLOWED_ATTR,html$1);}if(USE_PROFILES.svg===true){addToSet(ALLOWED_TAGS,svg);addToSet(ALLOWED_ATTR,svg$1);addToSet(ALLOWED_ATTR,xml);}if(USE_PROFILES.svgFilters===true){addToSet(ALLOWED_TAGS,svgFilters);addToSet(ALLOWED_ATTR,svg$1);addToSet(ALLOWED_ATTR,xml);}if(USE_PROFILES.mathMl===true){addToSet(ALLOWED_TAGS,mathMl);addToSet(ALLOWED_ATTR,mathMl$1);addToSet(ALLOWED_ATTR,xml);}}/* Merge configuration parameters */if(cfg.ADD_TAGS){if(ALLOWED_TAGS===DEFAULT_ALLOWED_TAGS){ALLOWED_TAGS=clone$1(ALLOWED_TAGS);}addToSet(ALLOWED_TAGS,cfg.ADD_TAGS);}if(cfg.ADD_ATTR){if(ALLOWED_ATTR===DEFAULT_ALLOWED_ATTR){ALLOWED_ATTR=clone$1(ALLOWED_ATTR);}addToSet(ALLOWED_ATTR,cfg.ADD_ATTR);}if(cfg.ADD_URI_SAFE_ATTR){addToSet(URI_SAFE_ATTRIBUTES,cfg.ADD_URI_SAFE_ATTR);}/* Add #text in case KEEP_CONTENT is set to true */if(KEEP_CONTENT){ALLOWED_TAGS['#text']=true;}/* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */if(WHOLE_DOCUMENT){addToSet(ALLOWED_TAGS,['html','head','body']);}/* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */if(ALLOWED_TAGS.table){addToSet(ALLOWED_TAGS,['tbody']);delete FORBID_TAGS.tbody;}// Prevent further manipulation of configuration. -// Not available in IE8, Safari 5, etc. -if(freeze){freeze(cfg);}CONFIG=cfg;};/** - * _forceRemove - * - * @param {Node} node a DOM node - */var _forceRemove=function _forceRemove(node){arrayPush(DOMPurify.removed,{element:node});try{node.parentNode.removeChild(node);}catch(_){node.outerHTML=emptyHTML;}};/** - * _removeAttribute - * - * @param {String} name an Attribute name - * @param {Node} node a DOM node - */var _removeAttribute=function _removeAttribute(name,node){try{arrayPush(DOMPurify.removed,{attribute:node.getAttributeNode(name),from:node});}catch(_){arrayPush(DOMPurify.removed,{attribute:null,from:node});}node.removeAttribute(name);};/** - * _initDocument - * - * @param {String} dirty a string of dirty markup - * @return {Document} a DOM, filled with the dirty markup - */var _initDocument=function _initDocument(dirty){/* Create a HTML document */var doc=void 0;var leadingWhitespace=void 0;if(FORCE_BODY){dirty=''+dirty;}else {/* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */var matches=stringMatch(dirty,/^[\r\n\t ]+/);leadingWhitespace=matches&&matches[0];}var dirtyPayload=trustedTypesPolicy?trustedTypesPolicy.createHTML(dirty):dirty;/* Use the DOMParser API by default, fallback later if needs be */try{doc=new DOMParser().parseFromString(dirtyPayload,'text/html');}catch(_){}/* Use createHTMLDocument in case DOMParser is not available */if(!doc||!doc.documentElement){doc=implementation.createHTMLDocument('');var _doc=doc,body=_doc.body;body.parentNode.removeChild(body.parentNode.firstElementChild);body.outerHTML=dirtyPayload;}if(dirty&&leadingWhitespace){doc.body.insertBefore(document.createTextNode(leadingWhitespace),doc.body.childNodes[0]||null);}/* Work on whole document or just its body */return getElementsByTagName.call(doc,WHOLE_DOCUMENT?'html':'body')[0];};/** - * _createIterator - * - * @param {Document} root document/fragment to create iterator for - * @return {Iterator} iterator instance - */var _createIterator=function _createIterator(root){return createNodeIterator.call(root.ownerDocument||root,root,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT|NodeFilter.SHOW_TEXT,function(){return NodeFilter.FILTER_ACCEPT;},false);};/** - * _isClobbered - * - * @param {Node} elm element to check for clobbering attacks - * @return {Boolean} true if clobbered, false if safe - */var _isClobbered=function _isClobbered(elm){if(elm instanceof Text||elm instanceof Comment){return false;}if(typeof elm.nodeName!=='string'||typeof elm.textContent!=='string'||typeof elm.removeChild!=='function'||!(elm.attributes instanceof NamedNodeMap)||typeof elm.removeAttribute!=='function'||typeof elm.setAttribute!=='function'||typeof elm.namespaceURI!=='string'){return true;}return false;};/** - * _isNode - * - * @param {Node} obj object to check whether it's a DOM node - * @return {Boolean} true is object is a DOM node - */var _isNode=function _isNode(object){return (typeof Node==='undefined'?'undefined':_typeof(Node))==='object'?object instanceof Node:object&&(typeof object==='undefined'?'undefined':_typeof(object))==='object'&&typeof object.nodeType==='number'&&typeof object.nodeName==='string';};/** - * _executeHook - * Execute user configurable hooks - * - * @param {String} entryPoint Name of the hook's entry point - * @param {Node} currentNode node to work on with the hook - * @param {Object} data additional hook parameters - */var _executeHook=function _executeHook(entryPoint,currentNode,data){if(!hooks[entryPoint]){return;}arrayForEach(hooks[entryPoint],function(hook){hook.call(DOMPurify,currentNode,data,CONFIG);});};/** - * _sanitizeElements - * - * @protect nodeName - * @protect textContent - * @protect removeChild - * - * @param {Node} currentNode to check for permission to exist - * @return {Boolean} true if node was killed, false if left alive - */var _sanitizeElements=function _sanitizeElements(currentNode){var content=void 0;/* Execute a hook if present */_executeHook('beforeSanitizeElements',currentNode,null);/* Check if element is clobbered or can clobber */if(_isClobbered(currentNode)){_forceRemove(currentNode);return true;}/* Check if tagname contains Unicode */if(stringMatch(currentNode.nodeName,/[\u0080-\uFFFF]/)){_forceRemove(currentNode);return true;}/* Now let's check the element's type and name */var tagName=stringToLowerCase(currentNode.nodeName);/* Execute a hook if present */_executeHook('uponSanitizeElement',currentNode,{tagName:tagName,allowedTags:ALLOWED_TAGS});/* Take care of an mXSS pattern using p, br inside svg, math */if((tagName==='svg'||tagName==='math')&¤tNode.querySelectorAll('p, br').length!==0){_forceRemove(currentNode);return true;}/* Detect mXSS attempts abusing namespace confusion */if(!_isNode(currentNode.firstElementChild)&&(!_isNode(currentNode.content)||!_isNode(currentNode.content.firstElementChild))&®ExpTest(/<[!/\w]/g,currentNode.innerHTML)&®ExpTest(/<[!/\w]/g,currentNode.textContent)){_forceRemove(currentNode);return true;}/* Remove element if anything forbids its presence */if(!ALLOWED_TAGS[tagName]||FORBID_TAGS[tagName]){/* Keep content except for bad-listed elements */if(KEEP_CONTENT&&!FORBID_CONTENTS[tagName]&&typeof currentNode.insertAdjacentHTML==='function'){try{var htmlToInsert=currentNode.innerHTML;currentNode.insertAdjacentHTML('AfterEnd',trustedTypesPolicy?trustedTypesPolicy.createHTML(htmlToInsert):htmlToInsert);}catch(_){}}_forceRemove(currentNode);return true;}/* Remove in case a noscript/noembed XSS is suspected */if((tagName==='noscript'||tagName==='noembed')&®ExpTest(/<\/no(script|embed)/i,currentNode.innerHTML)){_forceRemove(currentNode);return true;}/* Sanitize element content to be template-safe */if(SAFE_FOR_TEMPLATES&¤tNode.nodeType===3){/* Get the element's text content */content=currentNode.textContent;content=stringReplace(content,MUSTACHE_EXPR$$1,' ');content=stringReplace(content,ERB_EXPR$$1,' ');if(currentNode.textContent!==content){arrayPush(DOMPurify.removed,{element:currentNode.cloneNode()});currentNode.textContent=content;}}/* Execute a hook if present */_executeHook('afterSanitizeElements',currentNode,null);return false;};/** - * _isValidAttribute - * - * @param {string} lcTag Lowercase tag name of containing element. - * @param {string} lcName Lowercase attribute name. - * @param {string} value Attribute value. - * @return {Boolean} Returns true if `value` is valid, otherwise false. - */ // eslint-disable-next-line complexity -var _isValidAttribute=function _isValidAttribute(lcTag,lcName,value){/* Make sure attribute cannot clobber */if(SANITIZE_DOM&&(lcName==='id'||lcName==='name')&&(value in document||value in formElement)){return false;}/* Allow valid data-* attributes: At least one character after "-" - (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes) - XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804) - We don't need to check the value; it's always URI safe. */if(ALLOW_DATA_ATTR&®ExpTest(DATA_ATTR$$1,lcName));else if(ALLOW_ARIA_ATTR&®ExpTest(ARIA_ATTR$$1,lcName));else if(!ALLOWED_ATTR[lcName]||FORBID_ATTR[lcName]){return false;/* Check value is safe. First, is attr inert? If so, is safe */}else if(URI_SAFE_ATTRIBUTES[lcName]);else if(regExpTest(IS_ALLOWED_URI$$1,stringReplace(value,ATTR_WHITESPACE$$1,'')));else if((lcName==='src'||lcName==='xlink:href'||lcName==='href')&&lcTag!=='script'&&stringIndexOf(value,'data:')===0&&DATA_URI_TAGS[lcTag]);else if(ALLOW_UNKNOWN_PROTOCOLS&&!regExpTest(IS_SCRIPT_OR_DATA$$1,stringReplace(value,ATTR_WHITESPACE$$1,'')));else if(!value);else {return false;}return true;};/** - * _sanitizeAttributes - * - * @protect attributes - * @protect nodeName - * @protect removeAttribute - * @protect setAttribute - * - * @param {Node} currentNode to sanitize - */var _sanitizeAttributes=function _sanitizeAttributes(currentNode){var attr=void 0;var value=void 0;var lcName=void 0;var l=void 0;/* Execute a hook if present */_executeHook('beforeSanitizeAttributes',currentNode,null);var attributes=currentNode.attributes;/* Check if we have attributes; if not we might have a text node */if(!attributes){return;}var hookEvent={attrName:'',attrValue:'',keepAttr:true,allowedAttributes:ALLOWED_ATTR};l=attributes.length;/* Go backwards over all attributes; safely remove bad ones */while(l--){attr=attributes[l];var _attr=attr,name=_attr.name,namespaceURI=_attr.namespaceURI;value=stringTrim(attr.value);lcName=stringToLowerCase(name);/* Execute a hook if present */hookEvent.attrName=lcName;hookEvent.attrValue=value;hookEvent.keepAttr=true;hookEvent.forceKeepAttr=undefined;// Allows developers to see this is a property they can set -_executeHook('uponSanitizeAttribute',currentNode,hookEvent);value=hookEvent.attrValue;/* Did the hooks approve of the attribute? */if(hookEvent.forceKeepAttr){continue;}/* Remove attribute */_removeAttribute(name,currentNode);/* Did the hooks approve of the attribute? */if(!hookEvent.keepAttr){continue;}/* Work around a security issue in jQuery 3.0 */if(regExpTest(/\/>/i,value)){_removeAttribute(name,currentNode);continue;}/* Sanitize attribute content to be template-safe */if(SAFE_FOR_TEMPLATES){value=stringReplace(value,MUSTACHE_EXPR$$1,' ');value=stringReplace(value,ERB_EXPR$$1,' ');}/* Is `value` valid for this attribute? */var lcTag=currentNode.nodeName.toLowerCase();if(!_isValidAttribute(lcTag,lcName,value)){continue;}/* Handle invalid data-* attribute set by try-catching it */try{if(namespaceURI){currentNode.setAttributeNS(namespaceURI,name,value);}else {/* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */currentNode.setAttribute(name,value);}arrayPop(DOMPurify.removed);}catch(_){}}/* Execute a hook if present */_executeHook('afterSanitizeAttributes',currentNode,null);};/** - * _sanitizeShadowDOM - * - * @param {DocumentFragment} fragment to iterate over recursively - */var _sanitizeShadowDOM=function _sanitizeShadowDOM(fragment){var shadowNode=void 0;var shadowIterator=_createIterator(fragment);/* Execute a hook if present */_executeHook('beforeSanitizeShadowDOM',fragment,null);while(shadowNode=shadowIterator.nextNode()){/* Execute a hook if present */_executeHook('uponSanitizeShadowNode',shadowNode,null);/* Sanitize tags and elements */if(_sanitizeElements(shadowNode)){continue;}/* Deep shadow DOM detected */if(shadowNode.content instanceof DocumentFragment){_sanitizeShadowDOM(shadowNode.content);}/* Check attributes, sanitize if necessary */_sanitizeAttributes(shadowNode);}/* Execute a hook if present */_executeHook('afterSanitizeShadowDOM',fragment,null);};/** - * Sanitize - * Public method providing core sanitation functionality - * - * @param {String|Node} dirty string or DOM node - * @param {Object} configuration object - */ // eslint-disable-next-line complexity -DOMPurify.sanitize=function(dirty,cfg){var body=void 0;var importedNode=void 0;var currentNode=void 0;var oldNode=void 0;var returnNode=void 0;/* Make sure we have a string to sanitize. - DO NOT return early, as this will return the wrong type if - the user has requested a DOM object rather than a string */if(!dirty){dirty='';}/* Stringify, in case dirty is an object */if(typeof dirty!=='string'&&!_isNode(dirty)){// eslint-disable-next-line no-negated-condition -if(typeof dirty.toString!=='function'){throw typeErrorCreate('toString is not a function');}else {dirty=dirty.toString();if(typeof dirty!=='string'){throw typeErrorCreate('dirty is not a string, aborting');}}}/* Check we can run. Otherwise fall back or ignore */if(!DOMPurify.isSupported){if(_typeof(window.toStaticHTML)==='object'||typeof window.toStaticHTML==='function'){if(typeof dirty==='string'){return window.toStaticHTML(dirty);}if(_isNode(dirty)){return window.toStaticHTML(dirty.outerHTML);}}return dirty;}/* Assign config vars */if(!SET_CONFIG){_parseConfig(cfg);}/* Clean up removed elements */DOMPurify.removed=[];/* Check if dirty is correctly typed for IN_PLACE */if(typeof dirty==='string'){IN_PLACE=false;}if(IN_PLACE);else if(dirty instanceof Node){/* If dirty is a DOM element, append to an empty document to avoid - elements being stripped by the parser */body=_initDocument('');importedNode=body.ownerDocument.importNode(dirty,true);if(importedNode.nodeType===1&&importedNode.nodeName==='BODY'){/* Node is already a body, use as is */body=importedNode;}else if(importedNode.nodeName==='HTML'){body=importedNode;}else {// eslint-disable-next-line unicorn/prefer-node-append -body.appendChild(importedNode);}}else {/* Exit directly if we have nothing to do */if(!RETURN_DOM&&!SAFE_FOR_TEMPLATES&&!WHOLE_DOCUMENT&&// eslint-disable-next-line unicorn/prefer-includes -dirty.indexOf('<')===-1){return trustedTypesPolicy&&RETURN_TRUSTED_TYPE?trustedTypesPolicy.createHTML(dirty):dirty;}/* Initialize the document to work on */body=_initDocument(dirty);/* Check we have a DOM node from the data */if(!body){return RETURN_DOM?null:emptyHTML;}}/* Remove first element node (ours) if FORCE_BODY is set */if(body&&FORCE_BODY){_forceRemove(body.firstChild);}/* Get node iterator */var nodeIterator=_createIterator(IN_PLACE?dirty:body);/* Now start iterating over the created document */while(currentNode=nodeIterator.nextNode()){/* Fix IE's strange behavior with manipulated textNodes #89 */if(currentNode.nodeType===3&¤tNode===oldNode){continue;}/* Sanitize tags and elements */if(_sanitizeElements(currentNode)){continue;}/* Shadow DOM detected, sanitize it */if(currentNode.content instanceof DocumentFragment){_sanitizeShadowDOM(currentNode.content);}/* Check attributes, sanitize if necessary */_sanitizeAttributes(currentNode);oldNode=currentNode;}oldNode=null;/* If we sanitized `dirty` in-place, return it. */if(IN_PLACE){return dirty;}/* Return sanitized string or DOM */if(RETURN_DOM){if(RETURN_DOM_FRAGMENT){returnNode=createDocumentFragment.call(body.ownerDocument);while(body.firstChild){// eslint-disable-next-line unicorn/prefer-node-append -returnNode.appendChild(body.firstChild);}}else {returnNode=body;}if(RETURN_DOM_IMPORT){/* - AdoptNode() is not used because internal state is not reset - (e.g. the past names map of a HTMLFormElement), this is safe - in theory but we would rather not risk another attack vector. - The state that is cloned by importNode() is explicitly defined - by the specs. - */returnNode=importNode.call(originalDocument,returnNode,true);}return returnNode;}var serializedHTML=WHOLE_DOCUMENT?body.outerHTML:body.innerHTML;/* Sanitize final string template-safe */if(SAFE_FOR_TEMPLATES){serializedHTML=stringReplace(serializedHTML,MUSTACHE_EXPR$$1,' ');serializedHTML=stringReplace(serializedHTML,ERB_EXPR$$1,' ');}return trustedTypesPolicy&&RETURN_TRUSTED_TYPE?trustedTypesPolicy.createHTML(serializedHTML):serializedHTML;};/** - * Public method to set the configuration once - * setConfig - * - * @param {Object} cfg configuration object - */DOMPurify.setConfig=function(cfg){_parseConfig(cfg);SET_CONFIG=true;};/** - * Public method to remove the configuration - * clearConfig - * - */DOMPurify.clearConfig=function(){CONFIG=null;SET_CONFIG=false;};/** - * Public method to check if an attribute value is valid. - * Uses last set config, if any. Otherwise, uses config defaults. - * isValidAttribute - * - * @param {string} tag Tag name of containing element. - * @param {string} attr Attribute name. - * @param {string} value Attribute value. - * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false. - */DOMPurify.isValidAttribute=function(tag,attr,value){/* Initialize shared config vars if necessary. */if(!CONFIG){_parseConfig({});}var lcTag=stringToLowerCase(tag);var lcName=stringToLowerCase(attr);return _isValidAttribute(lcTag,lcName,value);};/** - * AddHook - * Public method to add DOMPurify hooks - * - * @param {String} entryPoint entry point for the hook to add - * @param {Function} hookFunction function to execute - */DOMPurify.addHook=function(entryPoint,hookFunction){if(typeof hookFunction!=='function'){return;}hooks[entryPoint]=hooks[entryPoint]||[];arrayPush(hooks[entryPoint],hookFunction);};/** - * RemoveHook - * Public method to remove a DOMPurify hook at a given entryPoint - * (pops it from the stack of hooks if more are present) - * - * @param {String} entryPoint entry point for the hook to remove - */DOMPurify.removeHook=function(entryPoint){if(hooks[entryPoint]){arrayPop(hooks[entryPoint]);}};/** - * RemoveHooks - * Public method to remove all DOMPurify hooks at a given entryPoint - * - * @param {String} entryPoint entry point for the hooks to remove - */DOMPurify.removeHooks=function(entryPoint){if(hooks[entryPoint]){hooks[entryPoint]=[];}};/** - * RemoveAllHooks - * Public method to remove all DOMPurify hooks - * - */DOMPurify.removeAllHooks=function(){hooks={};};return DOMPurify;}var purify=createDOMPurify();var Aacute="Á";var aacute="á";var Abreve="Ă";var abreve="ă";var ac="∾";var acd="∿";var acE="∾̳";var Acirc="Â";var acirc="â";var acute="´";var Acy="А";var acy="а";var AElig="Æ";var aelig="æ";var af="⁡";var Afr="𝔄";var afr="𝔞";var Agrave="À";var agrave="à";var alefsym="ℵ";var aleph="ℵ";var Alpha="Α";var alpha="α";var Amacr="Ā";var amacr="ā";var amalg="⨿";var amp="&";var AMP="&";var andand="⩕";var And="⩓";var and="∧";var andd="⩜";var andslope="⩘";var andv="⩚";var ang="∠";var ange="⦤";var angle="∠";var angmsdaa="⦨";var angmsdab="⦩";var angmsdac="⦪";var angmsdad="⦫";var angmsdae="⦬";var angmsdaf="⦭";var angmsdag="⦮";var angmsdah="⦯";var angmsd="∡";var angrt="∟";var angrtvb="⊾";var angrtvbd="⦝";var angsph="∢";var angst="Å";var angzarr="⍼";var Aogon="Ą";var aogon="ą";var Aopf="𝔸";var aopf="𝕒";var apacir="⩯";var ap="≈";var apE="⩰";var ape="≊";var apid="≋";var apos="'";var ApplyFunction="⁡";var approx="≈";var approxeq="≊";var Aring="Å";var aring="å";var Ascr="𝒜";var ascr="𝒶";var Assign="≔";var ast="*";var asymp="≈";var asympeq="≍";var Atilde="Ã";var atilde="ã";var Auml="Ä";var auml="ä";var awconint="∳";var awint="⨑";var backcong="≌";var backepsilon="϶";var backprime="‵";var backsim="∽";var backsimeq="⋍";var Backslash="∖";var Barv="⫧";var barvee="⊽";var barwed="⌅";var Barwed="⌆";var barwedge="⌅";var bbrk="⎵";var bbrktbrk="⎶";var bcong="≌";var Bcy="Б";var bcy="б";var bdquo="„";var becaus="∵";var because="∵";var Because="∵";var bemptyv="⦰";var bepsi="϶";var bernou="ℬ";var Bernoullis="ℬ";var Beta="Β";var beta="β";var beth="ℶ";var between="≬";var Bfr="𝔅";var bfr="𝔟";var bigcap="⋂";var bigcirc="◯";var bigcup="⋃";var bigodot="⨀";var bigoplus="⨁";var bigotimes="⨂";var bigsqcup="⨆";var bigstar="★";var bigtriangledown="▽";var bigtriangleup="△";var biguplus="⨄";var bigvee="⋁";var bigwedge="⋀";var bkarow="⤍";var blacklozenge="⧫";var blacksquare="▪";var blacktriangle="▴";var blacktriangledown="▾";var blacktriangleleft="◂";var blacktriangleright="▸";var blank="␣";var blk12="▒";var blk14="░";var blk34="▓";var block$1="█";var bne="=⃥";var bnequiv="≡⃥";var bNot="⫭";var bnot="⌐";var Bopf="𝔹";var bopf="𝕓";var bot="⊥";var bottom="⊥";var bowtie="⋈";var boxbox="⧉";var boxdl="┐";var boxdL="╕";var boxDl="╖";var boxDL="╗";var boxdr="┌";var boxdR="╒";var boxDr="╓";var boxDR="╔";var boxh="─";var boxH="═";var boxhd="┬";var boxHd="╤";var boxhD="╥";var boxHD="╦";var boxhu="┴";var boxHu="╧";var boxhU="╨";var boxHU="╩";var boxminus="⊟";var boxplus="⊞";var boxtimes="⊠";var boxul="┘";var boxuL="╛";var boxUl="╜";var boxUL="╝";var boxur="└";var boxuR="╘";var boxUr="╙";var boxUR="╚";var boxv="│";var boxV="║";var boxvh="┼";var boxvH="╪";var boxVh="╫";var boxVH="╬";var boxvl="┤";var boxvL="╡";var boxVl="╢";var boxVL="╣";var boxvr="├";var boxvR="╞";var boxVr="╟";var boxVR="╠";var bprime="‵";var breve="˘";var Breve="˘";var brvbar="¦";var bscr="𝒷";var Bscr="ℬ";var bsemi="⁏";var bsim="∽";var bsime="⋍";var bsolb="⧅";var bsol="\\";var bsolhsub="⟈";var bull="•";var bullet="•";var bump="≎";var bumpE="⪮";var bumpe="≏";var Bumpeq="≎";var bumpeq="≏";var Cacute="Ć";var cacute="ć";var capand="⩄";var capbrcup="⩉";var capcap="⩋";var cap="∩";var Cap="⋒";var capcup="⩇";var capdot="⩀";var CapitalDifferentialD="ⅅ";var caps="∩︀";var caret="⁁";var caron="ˇ";var Cayleys="ℭ";var ccaps="⩍";var Ccaron="Č";var ccaron="č";var Ccedil="Ç";var ccedil="ç";var Ccirc="Ĉ";var ccirc="ĉ";var Cconint="∰";var ccups="⩌";var ccupssm="⩐";var Cdot="Ċ";var cdot="ċ";var cedil="¸";var Cedilla="¸";var cemptyv="⦲";var cent="¢";var centerdot="·";var CenterDot="·";var cfr="𝔠";var Cfr="ℭ";var CHcy="Ч";var chcy="ч";var check="✓";var checkmark="✓";var Chi="Χ";var chi="χ";var circ="ˆ";var circeq="≗";var circlearrowleft="↺";var circlearrowright="↻";var circledast="⊛";var circledcirc="⊚";var circleddash="⊝";var CircleDot="⊙";var circledR="®";var circledS="Ⓢ";var CircleMinus="⊖";var CirclePlus="⊕";var CircleTimes="⊗";var cir="○";var cirE="⧃";var cire="≗";var cirfnint="⨐";var cirmid="⫯";var cirscir="⧂";var ClockwiseContourIntegral="∲";var CloseCurlyDoubleQuote="”";var CloseCurlyQuote="’";var clubs="♣";var clubsuit="♣";var colon=":";var Colon="∷";var Colone="⩴";var colone="≔";var coloneq="≔";var comma=",";var commat="@";var comp="∁";var compfn="∘";var complement="∁";var complexes="ℂ";var cong="≅";var congdot="⩭";var Congruent="≡";var conint="∮";var Conint="∯";var ContourIntegral="∮";var copf="𝕔";var Copf="ℂ";var coprod="∐";var Coproduct="∐";var copy$1="©";var COPY$1="©";var copysr="℗";var CounterClockwiseContourIntegral="∳";var crarr="↵";var cross="✗";var Cross="⨯";var Cscr="𝒞";var cscr="𝒸";var csub="⫏";var csube="⫑";var csup="⫐";var csupe="⫒";var ctdot="⋯";var cudarrl="⤸";var cudarrr="⤵";var cuepr="⋞";var cuesc="⋟";var cularr="↶";var cularrp="⤽";var cupbrcap="⩈";var cupcap="⩆";var CupCap="≍";var cup="∪";var Cup="⋓";var cupcup="⩊";var cupdot="⊍";var cupor="⩅";var cups="∪︀";var curarr="↷";var curarrm="⤼";var curlyeqprec="⋞";var curlyeqsucc="⋟";var curlyvee="⋎";var curlywedge="⋏";var curren="¤";var curvearrowleft="↶";var curvearrowright="↷";var cuvee="⋎";var cuwed="⋏";var cwconint="∲";var cwint="∱";var cylcty="⌭";var dagger="†";var Dagger="‡";var daleth="ℸ";var darr="↓";var Darr="↡";var dArr="⇓";var dash="‐";var Dashv="⫤";var dashv="⊣";var dbkarow="⤏";var dblac="˝";var Dcaron="Ď";var dcaron="ď";var Dcy="Д";var dcy="д";var ddagger="‡";var ddarr="⇊";var DD="ⅅ";var dd="ⅆ";var DDotrahd="⤑";var ddotseq="⩷";var deg="°";var Del="∇";var Delta="Δ";var delta="δ";var demptyv="⦱";var dfisht="⥿";var Dfr="𝔇";var dfr="𝔡";var dHar="⥥";var dharl="⇃";var dharr="⇂";var DiacriticalAcute="´";var DiacriticalDot="˙";var DiacriticalDoubleAcute="˝";var DiacriticalGrave="`";var DiacriticalTilde="˜";var diam="⋄";var diamond="⋄";var Diamond="⋄";var diamondsuit="♦";var diams="♦";var die="¨";var DifferentialD="ⅆ";var digamma="ϝ";var disin="⋲";var div="÷";var divide="÷";var divideontimes="⋇";var divonx="⋇";var DJcy="Ђ";var djcy="ђ";var dlcorn="⌞";var dlcrop="⌍";var dollar="$";var Dopf="𝔻";var dopf="𝕕";var Dot="¨";var dot="˙";var DotDot="⃜";var doteq="≐";var doteqdot="≑";var DotEqual="≐";var dotminus="∸";var dotplus="∔";var dotsquare="⊡";var doublebarwedge="⌆";var DoubleContourIntegral="∯";var DoubleDot="¨";var DoubleDownArrow="⇓";var DoubleLeftArrow="⇐";var DoubleLeftRightArrow="⇔";var DoubleLeftTee="⫤";var DoubleLongLeftArrow="⟸";var DoubleLongLeftRightArrow="⟺";var DoubleLongRightArrow="⟹";var DoubleRightArrow="⇒";var DoubleRightTee="⊨";var DoubleUpArrow="⇑";var DoubleUpDownArrow="⇕";var DoubleVerticalBar="∥";var DownArrowBar="⤓";var downarrow="↓";var DownArrow="↓";var Downarrow="⇓";var DownArrowUpArrow="⇵";var DownBreve="̑";var downdownarrows="⇊";var downharpoonleft="⇃";var downharpoonright="⇂";var DownLeftRightVector="⥐";var DownLeftTeeVector="⥞";var DownLeftVectorBar="⥖";var DownLeftVector="↽";var DownRightTeeVector="⥟";var DownRightVectorBar="⥗";var DownRightVector="⇁";var DownTeeArrow="↧";var DownTee="⊤";var drbkarow="⤐";var drcorn="⌟";var drcrop="⌌";var Dscr="𝒟";var dscr="𝒹";var DScy="Ѕ";var dscy="ѕ";var dsol="⧶";var Dstrok="Đ";var dstrok="đ";var dtdot="⋱";var dtri="▿";var dtrif="▾";var duarr="⇵";var duhar="⥯";var dwangle="⦦";var DZcy="Џ";var dzcy="џ";var dzigrarr="⟿";var Eacute="É";var eacute="é";var easter="⩮";var Ecaron="Ě";var ecaron="ě";var Ecirc="Ê";var ecirc="ê";var ecir="≖";var ecolon="≕";var Ecy="Э";var ecy="э";var eDDot="⩷";var Edot="Ė";var edot="ė";var eDot="≑";var ee="ⅇ";var efDot="≒";var Efr="𝔈";var efr="𝔢";var eg="⪚";var Egrave="È";var egrave="è";var egs="⪖";var egsdot="⪘";var el="⪙";var Element="∈";var elinters="⏧";var ell="ℓ";var els="⪕";var elsdot="⪗";var Emacr="Ē";var emacr="ē";var empty$2="∅";var emptyset="∅";var EmptySmallSquare="◻";var emptyv="∅";var EmptyVerySmallSquare="▫";var emsp13=" ";var emsp14=" ";var emsp=" ";var ENG="Ŋ";var eng="ŋ";var ensp=" ";var Eogon="Ę";var eogon="ę";var Eopf="𝔼";var eopf="𝕖";var epar="⋕";var eparsl="⧣";var eplus="⩱";var epsi="ε";var Epsilon="Ε";var epsilon="ε";var epsiv="ϵ";var eqcirc="≖";var eqcolon="≕";var eqsim="≂";var eqslantgtr="⪖";var eqslantless="⪕";var Equal="⩵";var equals="=";var EqualTilde="≂";var equest="≟";var Equilibrium="⇌";var equiv="≡";var equivDD="⩸";var eqvparsl="⧥";var erarr="⥱";var erDot="≓";var escr="ℯ";var Escr="ℰ";var esdot="≐";var Esim="⩳";var esim="≂";var Eta="Η";var eta="η";var ETH="Ð";var eth="ð";var Euml="Ë";var euml="ë";var euro="€";var excl="!";var exist="∃";var Exists="∃";var expectation="ℰ";var exponentiale="ⅇ";var ExponentialE="ⅇ";var fallingdotseq="≒";var Fcy="Ф";var fcy="ф";var female="♀";var ffilig="ffi";var fflig="ff";var ffllig="ffl";var Ffr="𝔉";var ffr="𝔣";var filig="fi";var FilledSmallSquare="◼";var FilledVerySmallSquare="▪";var fjlig="fj";var flat="♭";var fllig="fl";var fltns="▱";var fnof="ƒ";var Fopf="𝔽";var fopf="𝕗";var forall="∀";var ForAll="∀";var fork="⋔";var forkv="⫙";var Fouriertrf="ℱ";var fpartint="⨍";var frac12="½";var frac13="⅓";var frac14="¼";var frac15="⅕";var frac16="⅙";var frac18="⅛";var frac23="⅔";var frac25="⅖";var frac34="¾";var frac35="⅗";var frac38="⅜";var frac45="⅘";var frac56="⅚";var frac58="⅝";var frac78="⅞";var frasl="⁄";var frown="⌢";var fscr="𝒻";var Fscr="ℱ";var gacute="ǵ";var Gamma="Γ";var gamma="γ";var Gammad="Ϝ";var gammad="ϝ";var gap="⪆";var Gbreve="Ğ";var gbreve="ğ";var Gcedil="Ģ";var Gcirc="Ĝ";var gcirc="ĝ";var Gcy="Г";var gcy="г";var Gdot="Ġ";var gdot="ġ";var ge="≥";var gE="≧";var gEl="⪌";var gel="⋛";var geq="≥";var geqq="≧";var geqslant="⩾";var gescc="⪩";var ges="⩾";var gesdot="⪀";var gesdoto="⪂";var gesdotol="⪄";var gesl="⋛︀";var gesles="⪔";var Gfr="𝔊";var gfr="𝔤";var gg="≫";var Gg="⋙";var ggg="⋙";var gimel="ℷ";var GJcy="Ѓ";var gjcy="ѓ";var gla="⪥";var gl="≷";var glE="⪒";var glj="⪤";var gnap="⪊";var gnapprox="⪊";var gne="⪈";var gnE="≩";var gneq="⪈";var gneqq="≩";var gnsim="⋧";var Gopf="𝔾";var gopf="𝕘";var grave="`";var GreaterEqual="≥";var GreaterEqualLess="⋛";var GreaterFullEqual="≧";var GreaterGreater="⪢";var GreaterLess="≷";var GreaterSlantEqual="⩾";var GreaterTilde="≳";var Gscr="𝒢";var gscr="ℊ";var gsim="≳";var gsime="⪎";var gsiml="⪐";var gtcc="⪧";var gtcir="⩺";var gt=">";var GT=">";var Gt="≫";var gtdot="⋗";var gtlPar="⦕";var gtquest="⩼";var gtrapprox="⪆";var gtrarr="⥸";var gtrdot="⋗";var gtreqless="⋛";var gtreqqless="⪌";var gtrless="≷";var gtrsim="≳";var gvertneqq="≩︀";var gvnE="≩︀";var Hacek="ˇ";var hairsp=" ";var half="½";var hamilt="ℋ";var HARDcy="Ъ";var hardcy="ъ";var harrcir="⥈";var harr="↔";var hArr="⇔";var harrw="↭";var Hat="^";var hbar="ℏ";var Hcirc="Ĥ";var hcirc="ĥ";var hearts="♥";var heartsuit="♥";var hellip="…";var hercon="⊹";var hfr="𝔥";var Hfr="ℌ";var HilbertSpace="ℋ";var hksearow="⤥";var hkswarow="⤦";var hoarr="⇿";var homtht="∻";var hookleftarrow="↩";var hookrightarrow="↪";var hopf="𝕙";var Hopf="ℍ";var horbar="―";var HorizontalLine="─";var hscr="𝒽";var Hscr="ℋ";var hslash="ℏ";var Hstrok="Ħ";var hstrok="ħ";var HumpDownHump="≎";var HumpEqual="≏";var hybull="⁃";var hyphen="‐";var Iacute="Í";var iacute="í";var ic="⁣";var Icirc="Î";var icirc="î";var Icy="И";var icy="и";var Idot="İ";var IEcy="Е";var iecy="е";var iexcl="¡";var iff="⇔";var ifr="𝔦";var Ifr="ℑ";var Igrave="Ì";var igrave="ì";var ii="ⅈ";var iiiint="⨌";var iiint="∭";var iinfin="⧜";var iiota="℩";var IJlig="IJ";var ijlig="ij";var Imacr="Ī";var imacr="ī";var image$1="ℑ";var ImaginaryI="ⅈ";var imagline="ℐ";var imagpart="ℑ";var imath="ı";var Im="ℑ";var imof="⊷";var imped="Ƶ";var Implies="⇒";var incare="℅";var infin="∞";var infintie="⧝";var inodot="ı";var intcal="⊺";var int$2="∫";var Int="∬";var integers="ℤ";var Integral="∫";var intercal="⊺";var Intersection="⋂";var intlarhk="⨗";var intprod="⨼";var InvisibleComma="⁣";var InvisibleTimes="⁢";var IOcy="Ё";var iocy="ё";var Iogon="Į";var iogon="į";var Iopf="𝕀";var iopf="𝕚";var Iota="Ι";var iota="ι";var iprod="⨼";var iquest="¿";var iscr="𝒾";var Iscr="ℐ";var isin="∈";var isindot="⋵";var isinE="⋹";var isins="⋴";var isinsv="⋳";var isinv="∈";var it="⁢";var Itilde="Ĩ";var itilde="ĩ";var Iukcy="І";var iukcy="і";var Iuml="Ï";var iuml="ï";var Jcirc="Ĵ";var jcirc="ĵ";var Jcy="Й";var jcy="й";var Jfr="𝔍";var jfr="𝔧";var jmath="ȷ";var Jopf="𝕁";var jopf="𝕛";var Jscr="𝒥";var jscr="𝒿";var Jsercy="Ј";var jsercy="ј";var Jukcy="Є";var jukcy="є";var Kappa="Κ";var kappa="κ";var kappav="ϰ";var Kcedil="Ķ";var kcedil="ķ";var Kcy="К";var kcy="к";var Kfr="𝔎";var kfr="𝔨";var kgreen="ĸ";var KHcy="Х";var khcy="х";var KJcy="Ќ";var kjcy="ќ";var Kopf="𝕂";var kopf="𝕜";var Kscr="𝒦";var kscr="𝓀";var lAarr="⇚";var Lacute="Ĺ";var lacute="ĺ";var laemptyv="⦴";var lagran="ℒ";var Lambda="Λ";var lambda="λ";var lang="⟨";var Lang="⟪";var langd="⦑";var langle="⟨";var lap="⪅";var Laplacetrf="ℒ";var laquo="«";var larrb="⇤";var larrbfs="⤟";var larr="←";var Larr="↞";var lArr="⇐";var larrfs="⤝";var larrhk="↩";var larrlp="↫";var larrpl="⤹";var larrsim="⥳";var larrtl="↢";var latail="⤙";var lAtail="⤛";var lat="⪫";var late="⪭";var lates="⪭︀";var lbarr="⤌";var lBarr="⤎";var lbbrk="❲";var lbrace="{";var lbrack="[";var lbrke="⦋";var lbrksld="⦏";var lbrkslu="⦍";var Lcaron="Ľ";var lcaron="ľ";var Lcedil="Ļ";var lcedil="ļ";var lceil="⌈";var lcub="{";var Lcy="Л";var lcy="л";var ldca="⤶";var ldquo="“";var ldquor="„";var ldrdhar="⥧";var ldrushar="⥋";var ldsh="↲";var le="≤";var lE="≦";var LeftAngleBracket="⟨";var LeftArrowBar="⇤";var leftarrow="←";var LeftArrow="←";var Leftarrow="⇐";var LeftArrowRightArrow="⇆";var leftarrowtail="↢";var LeftCeiling="⌈";var LeftDoubleBracket="⟦";var LeftDownTeeVector="⥡";var LeftDownVectorBar="⥙";var LeftDownVector="⇃";var LeftFloor="⌊";var leftharpoondown="↽";var leftharpoonup="↼";var leftleftarrows="⇇";var leftrightarrow="↔";var LeftRightArrow="↔";var Leftrightarrow="⇔";var leftrightarrows="⇆";var leftrightharpoons="⇋";var leftrightsquigarrow="↭";var LeftRightVector="⥎";var LeftTeeArrow="↤";var LeftTee="⊣";var LeftTeeVector="⥚";var leftthreetimes="⋋";var LeftTriangleBar="⧏";var LeftTriangle="⊲";var LeftTriangleEqual="⊴";var LeftUpDownVector="⥑";var LeftUpTeeVector="⥠";var LeftUpVectorBar="⥘";var LeftUpVector="↿";var LeftVectorBar="⥒";var LeftVector="↼";var lEg="⪋";var leg="⋚";var leq="≤";var leqq="≦";var leqslant="⩽";var lescc="⪨";var les="⩽";var lesdot="⩿";var lesdoto="⪁";var lesdotor="⪃";var lesg="⋚︀";var lesges="⪓";var lessapprox="⪅";var lessdot="⋖";var lesseqgtr="⋚";var lesseqqgtr="⪋";var LessEqualGreater="⋚";var LessFullEqual="≦";var LessGreater="≶";var lessgtr="≶";var LessLess="⪡";var lesssim="≲";var LessSlantEqual="⩽";var LessTilde="≲";var lfisht="⥼";var lfloor="⌊";var Lfr="𝔏";var lfr="𝔩";var lg="≶";var lgE="⪑";var lHar="⥢";var lhard="↽";var lharu="↼";var lharul="⥪";var lhblk="▄";var LJcy="Љ";var ljcy="љ";var llarr="⇇";var ll="≪";var Ll="⋘";var llcorner="⌞";var Lleftarrow="⇚";var llhard="⥫";var lltri="◺";var Lmidot="Ŀ";var lmidot="ŀ";var lmoustache="⎰";var lmoust="⎰";var lnap="⪉";var lnapprox="⪉";var lne="⪇";var lnE="≨";var lneq="⪇";var lneqq="≨";var lnsim="⋦";var loang="⟬";var loarr="⇽";var lobrk="⟦";var longleftarrow="⟵";var LongLeftArrow="⟵";var Longleftarrow="⟸";var longleftrightarrow="⟷";var LongLeftRightArrow="⟷";var Longleftrightarrow="⟺";var longmapsto="⟼";var longrightarrow="⟶";var LongRightArrow="⟶";var Longrightarrow="⟹";var looparrowleft="↫";var looparrowright="↬";var lopar="⦅";var Lopf="𝕃";var lopf="𝕝";var loplus="⨭";var lotimes="⨴";var lowast="∗";var lowbar="_";var LowerLeftArrow="↙";var LowerRightArrow="↘";var loz="◊";var lozenge="◊";var lozf="⧫";var lpar="(";var lparlt="⦓";var lrarr="⇆";var lrcorner="⌟";var lrhar="⇋";var lrhard="⥭";var lrm="‎";var lrtri="⊿";var lsaquo="‹";var lscr="𝓁";var Lscr="ℒ";var lsh="↰";var Lsh="↰";var lsim="≲";var lsime="⪍";var lsimg="⪏";var lsqb="[";var lsquo="‘";var lsquor="‚";var Lstrok="Ł";var lstrok="ł";var ltcc="⪦";var ltcir="⩹";var lt="<";var LT="<";var Lt="≪";var ltdot="⋖";var lthree="⋋";var ltimes="⋉";var ltlarr="⥶";var ltquest="⩻";var ltri="◃";var ltrie="⊴";var ltrif="◂";var ltrPar="⦖";var lurdshar="⥊";var luruhar="⥦";var lvertneqq="≨︀";var lvnE="≨︀";var macr="¯";var male="♂";var malt="✠";var maltese="✠";var map$4="↦";var mapsto="↦";var mapstodown="↧";var mapstoleft="↤";var mapstoup="↥";var marker="▮";var mcomma="⨩";var Mcy="М";var mcy="м";var mdash="—";var mDDot="∺";var measuredangle="∡";var MediumSpace=" ";var Mellintrf="ℳ";var Mfr="𝔐";var mfr="𝔪";var mho="℧";var micro="µ";var midast="*";var midcir="⫰";var mid="∣";var middot="·";var minusb="⊟";var minus="−";var minusd="∸";var minusdu="⨪";var MinusPlus="∓";var mlcp="⫛";var mldr="…";var mnplus="∓";var models="⊧";var Mopf="𝕄";var mopf="𝕞";var mp="∓";var mscr="𝓂";var Mscr="ℳ";var mstpos="∾";var Mu="Μ";var mu="μ";var multimap="⊸";var mumap="⊸";var nabla="∇";var Nacute="Ń";var nacute="ń";var nang="∠⃒";var nap="≉";var napE="⩰̸";var napid="≋̸";var napos="ʼn";var napprox="≉";var natural="♮";var naturals="ℕ";var natur="♮";var nbsp=" ";var nbump="≎̸";var nbumpe="≏̸";var ncap="⩃";var Ncaron="Ň";var ncaron="ň";var Ncedil="Ņ";var ncedil="ņ";var ncong="≇";var ncongdot="⩭̸";var ncup="⩂";var Ncy="Н";var ncy="н";var ndash="–";var nearhk="⤤";var nearr="↗";var neArr="⇗";var nearrow="↗";var ne="≠";var nedot="≐̸";var NegativeMediumSpace="​";var NegativeThickSpace="​";var NegativeThinSpace="​";var NegativeVeryThinSpace="​";var nequiv="≢";var nesear="⤨";var nesim="≂̸";var NestedGreaterGreater="≫";var NestedLessLess="≪";var NewLine="\n";var nexist="∄";var nexists="∄";var Nfr="𝔑";var nfr="𝔫";var ngE="≧̸";var nge="≱";var ngeq="≱";var ngeqq="≧̸";var ngeqslant="⩾̸";var nges="⩾̸";var nGg="⋙̸";var ngsim="≵";var nGt="≫⃒";var ngt="≯";var ngtr="≯";var nGtv="≫̸";var nharr="↮";var nhArr="⇎";var nhpar="⫲";var ni="∋";var nis="⋼";var nisd="⋺";var niv="∋";var NJcy="Њ";var njcy="њ";var nlarr="↚";var nlArr="⇍";var nldr="‥";var nlE="≦̸";var nle="≰";var nleftarrow="↚";var nLeftarrow="⇍";var nleftrightarrow="↮";var nLeftrightarrow="⇎";var nleq="≰";var nleqq="≦̸";var nleqslant="⩽̸";var nles="⩽̸";var nless="≮";var nLl="⋘̸";var nlsim="≴";var nLt="≪⃒";var nlt="≮";var nltri="⋪";var nltrie="⋬";var nLtv="≪̸";var nmid="∤";var NoBreak="⁠";var NonBreakingSpace=" ";var nopf="𝕟";var Nopf="ℕ";var Not="⫬";var not$1="¬";var NotCongruent="≢";var NotCupCap="≭";var NotDoubleVerticalBar="∦";var NotElement="∉";var NotEqual="≠";var NotEqualTilde="≂̸";var NotExists="∄";var NotGreater="≯";var NotGreaterEqual="≱";var NotGreaterFullEqual="≧̸";var NotGreaterGreater="≫̸";var NotGreaterLess="≹";var NotGreaterSlantEqual="⩾̸";var NotGreaterTilde="≵";var NotHumpDownHump="≎̸";var NotHumpEqual="≏̸";var notin="∉";var notindot="⋵̸";var notinE="⋹̸";var notinva="∉";var notinvb="⋷";var notinvc="⋶";var NotLeftTriangleBar="⧏̸";var NotLeftTriangle="⋪";var NotLeftTriangleEqual="⋬";var NotLess="≮";var NotLessEqual="≰";var NotLessGreater="≸";var NotLessLess="≪̸";var NotLessSlantEqual="⩽̸";var NotLessTilde="≴";var NotNestedGreaterGreater="⪢̸";var NotNestedLessLess="⪡̸";var notni="∌";var notniva="∌";var notnivb="⋾";var notnivc="⋽";var NotPrecedes="⊀";var NotPrecedesEqual="⪯̸";var NotPrecedesSlantEqual="⋠";var NotReverseElement="∌";var NotRightTriangleBar="⧐̸";var NotRightTriangle="⋫";var NotRightTriangleEqual="⋭";var NotSquareSubset="⊏̸";var NotSquareSubsetEqual="⋢";var NotSquareSuperset="⊐̸";var NotSquareSupersetEqual="⋣";var NotSubset="⊂⃒";var NotSubsetEqual="⊈";var NotSucceeds="⊁";var NotSucceedsEqual="⪰̸";var NotSucceedsSlantEqual="⋡";var NotSucceedsTilde="≿̸";var NotSuperset="⊃⃒";var NotSupersetEqual="⊉";var NotTilde="≁";var NotTildeEqual="≄";var NotTildeFullEqual="≇";var NotTildeTilde="≉";var NotVerticalBar="∤";var nparallel="∦";var npar="∦";var nparsl="⫽⃥";var npart="∂̸";var npolint="⨔";var npr="⊀";var nprcue="⋠";var nprec="⊀";var npreceq="⪯̸";var npre="⪯̸";var nrarrc="⤳̸";var nrarr="↛";var nrArr="⇏";var nrarrw="↝̸";var nrightarrow="↛";var nRightarrow="⇏";var nrtri="⋫";var nrtrie="⋭";var nsc="⊁";var nsccue="⋡";var nsce="⪰̸";var Nscr="𝒩";var nscr="𝓃";var nshortmid="∤";var nshortparallel="∦";var nsim="≁";var nsime="≄";var nsimeq="≄";var nsmid="∤";var nspar="∦";var nsqsube="⋢";var nsqsupe="⋣";var nsub="⊄";var nsubE="⫅̸";var nsube="⊈";var nsubset="⊂⃒";var nsubseteq="⊈";var nsubseteqq="⫅̸";var nsucc="⊁";var nsucceq="⪰̸";var nsup="⊅";var nsupE="⫆̸";var nsupe="⊉";var nsupset="⊃⃒";var nsupseteq="⊉";var nsupseteqq="⫆̸";var ntgl="≹";var Ntilde="Ñ";var ntilde="ñ";var ntlg="≸";var ntriangleleft="⋪";var ntrianglelefteq="⋬";var ntriangleright="⋫";var ntrianglerighteq="⋭";var Nu="Ν";var nu="ν";var num="#";var numero="№";var numsp=" ";var nvap="≍⃒";var nvdash="⊬";var nvDash="⊭";var nVdash="⊮";var nVDash="⊯";var nvge="≥⃒";var nvgt=">⃒";var nvHarr="⤄";var nvinfin="⧞";var nvlArr="⤂";var nvle="≤⃒";var nvlt="<⃒";var nvltrie="⊴⃒";var nvrArr="⤃";var nvrtrie="⊵⃒";var nvsim="∼⃒";var nwarhk="⤣";var nwarr="↖";var nwArr="⇖";var nwarrow="↖";var nwnear="⤧";var Oacute="Ó";var oacute="ó";var oast="⊛";var Ocirc="Ô";var ocirc="ô";var ocir="⊚";var Ocy="О";var ocy="о";var odash="⊝";var Odblac="Ő";var odblac="ő";var odiv="⨸";var odot="⊙";var odsold="⦼";var OElig="Œ";var oelig="œ";var ofcir="⦿";var Ofr="𝔒";var ofr="𝔬";var ogon="˛";var Ograve="Ò";var ograve="ò";var ogt="⧁";var ohbar="⦵";var ohm="Ω";var oint="∮";var olarr="↺";var olcir="⦾";var olcross="⦻";var oline="‾";var olt="⧀";var Omacr="Ō";var omacr="ō";var Omega="Ω";var omega="ω";var Omicron="Ο";var omicron="ο";var omid="⦶";var ominus="⊖";var Oopf="𝕆";var oopf="𝕠";var opar="⦷";var OpenCurlyDoubleQuote="“";var OpenCurlyQuote="‘";var operp="⦹";var oplus="⊕";var orarr="↻";var Or="⩔";var or="∨";var ord="⩝";var order="ℴ";var orderof="ℴ";var ordf="ª";var ordm="º";var origof="⊶";var oror="⩖";var orslope="⩗";var orv="⩛";var oS="Ⓢ";var Oscr="𝒪";var oscr="ℴ";var Oslash="Ø";var oslash="ø";var osol="⊘";var Otilde="Õ";var otilde="õ";var otimesas="⨶";var Otimes="⨷";var otimes="⊗";var Ouml="Ö";var ouml="ö";var ovbar="⌽";var OverBar="‾";var OverBrace="⏞";var OverBracket="⎴";var OverParenthesis="⏜";var para="¶";var parallel="∥";var par="∥";var parsim="⫳";var parsl="⫽";var part="∂";var PartialD="∂";var Pcy="П";var pcy="п";var percnt="%";var period=".";var permil="‰";var perp="⊥";var pertenk="‱";var Pfr="𝔓";var pfr="𝔭";var Phi="Φ";var phi="φ";var phiv="ϕ";var phmmat="ℳ";var phone="☎";var Pi="Π";var pi="π";var pitchfork="⋔";var piv="ϖ";var planck="ℏ";var planckh="ℎ";var plankv="ℏ";var plusacir="⨣";var plusb="⊞";var pluscir="⨢";var plus="+";var plusdo="∔";var plusdu="⨥";var pluse="⩲";var PlusMinus="±";var plusmn="±";var plussim="⨦";var plustwo="⨧";var pm="±";var Poincareplane="ℌ";var pointint="⨕";var popf="𝕡";var Popf="ℙ";var pound="£";var prap="⪷";var Pr="⪻";var pr="≺";var prcue="≼";var precapprox="⪷";var prec="≺";var preccurlyeq="≼";var Precedes="≺";var PrecedesEqual="⪯";var PrecedesSlantEqual="≼";var PrecedesTilde="≾";var preceq="⪯";var precnapprox="⪹";var precneqq="⪵";var precnsim="⋨";var pre="⪯";var prE="⪳";var precsim="≾";var prime="′";var Prime="″";var primes="ℙ";var prnap="⪹";var prnE="⪵";var prnsim="⋨";var prod="∏";var Product="∏";var profalar="⌮";var profline="⌒";var profsurf="⌓";var prop="∝";var Proportional="∝";var Proportion="∷";var propto="∝";var prsim="≾";var prurel="⊰";var Pscr="𝒫";var pscr="𝓅";var Psi="Ψ";var psi="ψ";var puncsp=" ";var Qfr="𝔔";var qfr="𝔮";var qint="⨌";var qopf="𝕢";var Qopf="ℚ";var qprime="⁗";var Qscr="𝒬";var qscr="𝓆";var quaternions="ℍ";var quatint="⨖";var quest="?";var questeq="≟";var quot="\"";var QUOT="\"";var rAarr="⇛";var race="∽̱";var Racute="Ŕ";var racute="ŕ";var radic="√";var raemptyv="⦳";var rang="⟩";var Rang="⟫";var rangd="⦒";var range="⦥";var rangle="⟩";var raquo="»";var rarrap="⥵";var rarrb="⇥";var rarrbfs="⤠";var rarrc="⤳";var rarr="→";var Rarr="↠";var rArr="⇒";var rarrfs="⤞";var rarrhk="↪";var rarrlp="↬";var rarrpl="⥅";var rarrsim="⥴";var Rarrtl="⤖";var rarrtl="↣";var rarrw="↝";var ratail="⤚";var rAtail="⤜";var ratio="∶";var rationals="ℚ";var rbarr="⤍";var rBarr="⤏";var RBarr="⤐";var rbbrk="❳";var rbrace="}";var rbrack="]";var rbrke="⦌";var rbrksld="⦎";var rbrkslu="⦐";var Rcaron="Ř";var rcaron="ř";var Rcedil="Ŗ";var rcedil="ŗ";var rceil="⌉";var rcub="}";var Rcy="Р";var rcy="р";var rdca="⤷";var rdldhar="⥩";var rdquo="”";var rdquor="”";var rdsh="↳";var real="ℜ";var realine="ℛ";var realpart="ℜ";var reals="ℝ";var Re="ℜ";var rect="▭";var reg="®";var REG="®";var ReverseElement="∋";var ReverseEquilibrium="⇋";var ReverseUpEquilibrium="⥯";var rfisht="⥽";var rfloor="⌋";var rfr="𝔯";var Rfr="ℜ";var rHar="⥤";var rhard="⇁";var rharu="⇀";var rharul="⥬";var Rho="Ρ";var rho="ρ";var rhov="ϱ";var RightAngleBracket="⟩";var RightArrowBar="⇥";var rightarrow="→";var RightArrow="→";var Rightarrow="⇒";var RightArrowLeftArrow="⇄";var rightarrowtail="↣";var RightCeiling="⌉";var RightDoubleBracket="⟧";var RightDownTeeVector="⥝";var RightDownVectorBar="⥕";var RightDownVector="⇂";var RightFloor="⌋";var rightharpoondown="⇁";var rightharpoonup="⇀";var rightleftarrows="⇄";var rightleftharpoons="⇌";var rightrightarrows="⇉";var rightsquigarrow="↝";var RightTeeArrow="↦";var RightTee="⊢";var RightTeeVector="⥛";var rightthreetimes="⋌";var RightTriangleBar="⧐";var RightTriangle="⊳";var RightTriangleEqual="⊵";var RightUpDownVector="⥏";var RightUpTeeVector="⥜";var RightUpVectorBar="⥔";var RightUpVector="↾";var RightVectorBar="⥓";var RightVector="⇀";var ring="˚";var risingdotseq="≓";var rlarr="⇄";var rlhar="⇌";var rlm="‏";var rmoustache="⎱";var rmoust="⎱";var rnmid="⫮";var roang="⟭";var roarr="⇾";var robrk="⟧";var ropar="⦆";var ropf="𝕣";var Ropf="ℝ";var roplus="⨮";var rotimes="⨵";var RoundImplies="⥰";var rpar=")";var rpargt="⦔";var rppolint="⨒";var rrarr="⇉";var Rrightarrow="⇛";var rsaquo="›";var rscr="𝓇";var Rscr="ℛ";var rsh="↱";var Rsh="↱";var rsqb="]";var rsquo="’";var rsquor="’";var rthree="⋌";var rtimes="⋊";var rtri="▹";var rtrie="⊵";var rtrif="▸";var rtriltri="⧎";var RuleDelayed="⧴";var ruluhar="⥨";var rx="℞";var Sacute="Ś";var sacute="ś";var sbquo="‚";var scap="⪸";var Scaron="Š";var scaron="š";var Sc="⪼";var sc="≻";var sccue="≽";var sce="⪰";var scE="⪴";var Scedil="Ş";var scedil="ş";var Scirc="Ŝ";var scirc="ŝ";var scnap="⪺";var scnE="⪶";var scnsim="⋩";var scpolint="⨓";var scsim="≿";var Scy="С";var scy="с";var sdotb="⊡";var sdot="⋅";var sdote="⩦";var searhk="⤥";var searr="↘";var seArr="⇘";var searrow="↘";var sect="§";var semi=";";var seswar="⤩";var setminus="∖";var setmn="∖";var sext="✶";var Sfr="𝔖";var sfr="𝔰";var sfrown="⌢";var sharp="♯";var SHCHcy="Щ";var shchcy="щ";var SHcy="Ш";var shcy="ш";var ShortDownArrow="↓";var ShortLeftArrow="←";var shortmid="∣";var shortparallel="∥";var ShortRightArrow="→";var ShortUpArrow="↑";var shy="­";var Sigma="Σ";var sigma="σ";var sigmaf="ς";var sigmav="ς";var sim="∼";var simdot="⩪";var sime="≃";var simeq="≃";var simg="⪞";var simgE="⪠";var siml="⪝";var simlE="⪟";var simne="≆";var simplus="⨤";var simrarr="⥲";var slarr="←";var SmallCircle="∘";var smallsetminus="∖";var smashp="⨳";var smeparsl="⧤";var smid="∣";var smile="⌣";var smt="⪪";var smte="⪬";var smtes="⪬︀";var SOFTcy="Ь";var softcy="ь";var solbar="⌿";var solb="⧄";var sol="/";var Sopf="𝕊";var sopf="𝕤";var spades="♠";var spadesuit="♠";var spar="∥";var sqcap="⊓";var sqcaps="⊓︀";var sqcup="⊔";var sqcups="⊔︀";var Sqrt="√";var sqsub="⊏";var sqsube="⊑";var sqsubset="⊏";var sqsubseteq="⊑";var sqsup="⊐";var sqsupe="⊒";var sqsupset="⊐";var sqsupseteq="⊒";var square="□";var Square="□";var SquareIntersection="⊓";var SquareSubset="⊏";var SquareSubsetEqual="⊑";var SquareSuperset="⊐";var SquareSupersetEqual="⊒";var SquareUnion="⊔";var squarf="▪";var squ="□";var squf="▪";var srarr="→";var Sscr="𝒮";var sscr="𝓈";var ssetmn="∖";var ssmile="⌣";var sstarf="⋆";var Star="⋆";var star="☆";var starf="★";var straightepsilon="ϵ";var straightphi="ϕ";var strns="¯";var sub="⊂";var Sub="⋐";var subdot="⪽";var subE="⫅";var sube="⊆";var subedot="⫃";var submult="⫁";var subnE="⫋";var subne="⊊";var subplus="⪿";var subrarr="⥹";var subset="⊂";var Subset="⋐";var subseteq="⊆";var subseteqq="⫅";var SubsetEqual="⊆";var subsetneq="⊊";var subsetneqq="⫋";var subsim="⫇";var subsub="⫕";var subsup="⫓";var succapprox="⪸";var succ="≻";var succcurlyeq="≽";var Succeeds="≻";var SucceedsEqual="⪰";var SucceedsSlantEqual="≽";var SucceedsTilde="≿";var succeq="⪰";var succnapprox="⪺";var succneqq="⪶";var succnsim="⋩";var succsim="≿";var SuchThat="∋";var sum="∑";var Sum="∑";var sung="♪";var sup1="¹";var sup2="²";var sup3="³";var sup="⊃";var Sup="⋑";var supdot="⪾";var supdsub="⫘";var supE="⫆";var supe="⊇";var supedot="⫄";var Superset="⊃";var SupersetEqual="⊇";var suphsol="⟉";var suphsub="⫗";var suplarr="⥻";var supmult="⫂";var supnE="⫌";var supne="⊋";var supplus="⫀";var supset="⊃";var Supset="⋑";var supseteq="⊇";var supseteqq="⫆";var supsetneq="⊋";var supsetneqq="⫌";var supsim="⫈";var supsub="⫔";var supsup="⫖";var swarhk="⤦";var swarr="↙";var swArr="⇙";var swarrow="↙";var swnwar="⤪";var szlig="ß";var Tab="\t";var target="⌖";var Tau="Τ";var tau="τ";var tbrk="⎴";var Tcaron="Ť";var tcaron="ť";var Tcedil="Ţ";var tcedil="ţ";var Tcy="Т";var tcy="т";var tdot="⃛";var telrec="⌕";var Tfr="𝔗";var tfr="𝔱";var there4="∴";var therefore="∴";var Therefore="∴";var Theta="Θ";var theta="θ";var thetasym="ϑ";var thetav="ϑ";var thickapprox="≈";var thicksim="∼";var ThickSpace="  ";var ThinSpace=" ";var thinsp=" ";var thkap="≈";var thksim="∼";var THORN="Þ";var thorn="þ";var tilde$1="˜";var Tilde="∼";var TildeEqual="≃";var TildeFullEqual="≅";var TildeTilde="≈";var timesbar="⨱";var timesb="⊠";var times="×";var timesd="⨰";var tint="∭";var toea="⤨";var topbot="⌶";var topcir="⫱";var top="⊤";var Topf="𝕋";var topf="𝕥";var topfork="⫚";var tosa="⤩";var tprime="‴";var trade="™";var TRADE="™";var triangle="▵";var triangledown="▿";var triangleleft="◃";var trianglelefteq="⊴";var triangleq="≜";var triangleright="▹";var trianglerighteq="⊵";var tridot="◬";var trie="≜";var triminus="⨺";var TripleDot="⃛";var triplus="⨹";var trisb="⧍";var tritime="⨻";var trpezium="⏢";var Tscr="𝒯";var tscr="𝓉";var TScy="Ц";var tscy="ц";var TSHcy="Ћ";var tshcy="ћ";var Tstrok="Ŧ";var tstrok="ŧ";var twixt="≬";var twoheadleftarrow="↞";var twoheadrightarrow="↠";var Uacute="Ú";var uacute="ú";var uarr="↑";var Uarr="↟";var uArr="⇑";var Uarrocir="⥉";var Ubrcy="Ў";var ubrcy="ў";var Ubreve="Ŭ";var ubreve="ŭ";var Ucirc="Û";var ucirc="û";var Ucy="У";var ucy="у";var udarr="⇅";var Udblac="Ű";var udblac="ű";var udhar="⥮";var ufisht="⥾";var Ufr="𝔘";var ufr="𝔲";var Ugrave="Ù";var ugrave="ù";var uHar="⥣";var uharl="↿";var uharr="↾";var uhblk="▀";var ulcorn="⌜";var ulcorner="⌜";var ulcrop="⌏";var ultri="◸";var Umacr="Ū";var umacr="ū";var uml="¨";var UnderBar="_";var UnderBrace="⏟";var UnderBracket="⎵";var UnderParenthesis="⏝";var Union="⋃";var UnionPlus="⊎";var Uogon="Ų";var uogon="ų";var Uopf="𝕌";var uopf="𝕦";var UpArrowBar="⤒";var uparrow="↑";var UpArrow="↑";var Uparrow="⇑";var UpArrowDownArrow="⇅";var updownarrow="↕";var UpDownArrow="↕";var Updownarrow="⇕";var UpEquilibrium="⥮";var upharpoonleft="↿";var upharpoonright="↾";var uplus="⊎";var UpperLeftArrow="↖";var UpperRightArrow="↗";var upsi="υ";var Upsi="ϒ";var upsih="ϒ";var Upsilon="Υ";var upsilon="υ";var UpTeeArrow="↥";var UpTee="⊥";var upuparrows="⇈";var urcorn="⌝";var urcorner="⌝";var urcrop="⌎";var Uring="Ů";var uring="ů";var urtri="◹";var Uscr="𝒰";var uscr="𝓊";var utdot="⋰";var Utilde="Ũ";var utilde="ũ";var utri="▵";var utrif="▴";var uuarr="⇈";var Uuml="Ü";var uuml="ü";var uwangle="⦧";var vangrt="⦜";var varepsilon="ϵ";var varkappa="ϰ";var varnothing="∅";var varphi="ϕ";var varpi="ϖ";var varpropto="∝";var varr="↕";var vArr="⇕";var varrho="ϱ";var varsigma="ς";var varsubsetneq="⊊︀";var varsubsetneqq="⫋︀";var varsupsetneq="⊋︀";var varsupsetneqq="⫌︀";var vartheta="ϑ";var vartriangleleft="⊲";var vartriangleright="⊳";var vBar="⫨";var Vbar="⫫";var vBarv="⫩";var Vcy="В";var vcy="в";var vdash="⊢";var vDash="⊨";var Vdash="⊩";var VDash="⊫";var Vdashl="⫦";var veebar="⊻";var vee="∨";var Vee="⋁";var veeeq="≚";var vellip="⋮";var verbar="|";var Verbar="‖";var vert="|";var Vert="‖";var VerticalBar="∣";var VerticalLine="|";var VerticalSeparator="❘";var VerticalTilde="≀";var VeryThinSpace=" ";var Vfr="𝔙";var vfr="𝔳";var vltri="⊲";var vnsub="⊂⃒";var vnsup="⊃⃒";var Vopf="𝕍";var vopf="𝕧";var vprop="∝";var vrtri="⊳";var Vscr="𝒱";var vscr="𝓋";var vsubnE="⫋︀";var vsubne="⊊︀";var vsupnE="⫌︀";var vsupne="⊋︀";var Vvdash="⊪";var vzigzag="⦚";var Wcirc="Ŵ";var wcirc="ŵ";var wedbar="⩟";var wedge="∧";var Wedge="⋀";var wedgeq="≙";var weierp="℘";var Wfr="𝔚";var wfr="𝔴";var Wopf="𝕎";var wopf="𝕨";var wp="℘";var wr="≀";var wreath="≀";var Wscr="𝒲";var wscr="𝓌";var xcap="⋂";var xcirc="◯";var xcup="⋃";var xdtri="▽";var Xfr="𝔛";var xfr="𝔵";var xharr="⟷";var xhArr="⟺";var Xi="Ξ";var xi="ξ";var xlarr="⟵";var xlArr="⟸";var xmap="⟼";var xnis="⋻";var xodot="⨀";var Xopf="𝕏";var xopf="𝕩";var xoplus="⨁";var xotime="⨂";var xrarr="⟶";var xrArr="⟹";var Xscr="𝒳";var xscr="𝓍";var xsqcup="⨆";var xuplus="⨄";var xutri="△";var xvee="⋁";var xwedge="⋀";var Yacute="Ý";var yacute="ý";var YAcy="Я";var yacy="я";var Ycirc="Ŷ";var ycirc="ŷ";var Ycy="Ы";var ycy="ы";var yen="¥";var Yfr="𝔜";var yfr="𝔶";var YIcy="Ї";var yicy="ї";var Yopf="𝕐";var yopf="𝕪";var Yscr="𝒴";var yscr="𝓎";var YUcy="Ю";var yucy="ю";var yuml="ÿ";var Yuml="Ÿ";var Zacute="Ź";var zacute="ź";var Zcaron="Ž";var zcaron="ž";var Zcy="З";var zcy="з";var Zdot="Ż";var zdot="ż";var zeetrf="ℨ";var ZeroWidthSpace="​";var Zeta="Ζ";var zeta="ζ";var zfr="𝔷";var Zfr="ℨ";var ZHcy="Ж";var zhcy="ж";var zigrarr="⇝";var zopf="𝕫";var Zopf="ℤ";var Zscr="𝒵";var zscr="𝓏";var zwj="‍";var zwnj="‌";var require$$0$4={Aacute:Aacute,aacute:aacute,Abreve:Abreve,abreve:abreve,ac:ac,acd:acd,acE:acE,Acirc:Acirc,acirc:acirc,acute:acute,Acy:Acy,acy:acy,AElig:AElig,aelig:aelig,af:af,Afr:Afr,afr:afr,Agrave:Agrave,agrave:agrave,alefsym:alefsym,aleph:aleph,Alpha:Alpha,alpha:alpha,Amacr:Amacr,amacr:amacr,amalg:amalg,amp:amp,AMP:AMP,andand:andand,And:And,and:and,andd:andd,andslope:andslope,andv:andv,ang:ang,ange:ange,angle:angle,angmsdaa:angmsdaa,angmsdab:angmsdab,angmsdac:angmsdac,angmsdad:angmsdad,angmsdae:angmsdae,angmsdaf:angmsdaf,angmsdag:angmsdag,angmsdah:angmsdah,angmsd:angmsd,angrt:angrt,angrtvb:angrtvb,angrtvbd:angrtvbd,angsph:angsph,angst:angst,angzarr:angzarr,Aogon:Aogon,aogon:aogon,Aopf:Aopf,aopf:aopf,apacir:apacir,ap:ap,apE:apE,ape:ape,apid:apid,apos:apos,ApplyFunction:ApplyFunction,approx:approx,approxeq:approxeq,Aring:Aring,aring:aring,Ascr:Ascr,ascr:ascr,Assign:Assign,ast:ast,asymp:asymp,asympeq:asympeq,Atilde:Atilde,atilde:atilde,Auml:Auml,auml:auml,awconint:awconint,awint:awint,backcong:backcong,backepsilon:backepsilon,backprime:backprime,backsim:backsim,backsimeq:backsimeq,Backslash:Backslash,Barv:Barv,barvee:barvee,barwed:barwed,Barwed:Barwed,barwedge:barwedge,bbrk:bbrk,bbrktbrk:bbrktbrk,bcong:bcong,Bcy:Bcy,bcy:bcy,bdquo:bdquo,becaus:becaus,because:because,Because:Because,bemptyv:bemptyv,bepsi:bepsi,bernou:bernou,Bernoullis:Bernoullis,Beta:Beta,beta:beta,beth:beth,between:between,Bfr:Bfr,bfr:bfr,bigcap:bigcap,bigcirc:bigcirc,bigcup:bigcup,bigodot:bigodot,bigoplus:bigoplus,bigotimes:bigotimes,bigsqcup:bigsqcup,bigstar:bigstar,bigtriangledown:bigtriangledown,bigtriangleup:bigtriangleup,biguplus:biguplus,bigvee:bigvee,bigwedge:bigwedge,bkarow:bkarow,blacklozenge:blacklozenge,blacksquare:blacksquare,blacktriangle:blacktriangle,blacktriangledown:blacktriangledown,blacktriangleleft:blacktriangleleft,blacktriangleright:blacktriangleright,blank:blank,blk12:blk12,blk14:blk14,blk34:blk34,block:block$1,bne:bne,bnequiv:bnequiv,bNot:bNot,bnot:bnot,Bopf:Bopf,bopf:bopf,bot:bot,bottom:bottom,bowtie:bowtie,boxbox:boxbox,boxdl:boxdl,boxdL:boxdL,boxDl:boxDl,boxDL:boxDL,boxdr:boxdr,boxdR:boxdR,boxDr:boxDr,boxDR:boxDR,boxh:boxh,boxH:boxH,boxhd:boxhd,boxHd:boxHd,boxhD:boxhD,boxHD:boxHD,boxhu:boxhu,boxHu:boxHu,boxhU:boxhU,boxHU:boxHU,boxminus:boxminus,boxplus:boxplus,boxtimes:boxtimes,boxul:boxul,boxuL:boxuL,boxUl:boxUl,boxUL:boxUL,boxur:boxur,boxuR:boxuR,boxUr:boxUr,boxUR:boxUR,boxv:boxv,boxV:boxV,boxvh:boxvh,boxvH:boxvH,boxVh:boxVh,boxVH:boxVH,boxvl:boxvl,boxvL:boxvL,boxVl:boxVl,boxVL:boxVL,boxvr:boxvr,boxvR:boxvR,boxVr:boxVr,boxVR:boxVR,bprime:bprime,breve:breve,Breve:Breve,brvbar:brvbar,bscr:bscr,Bscr:Bscr,bsemi:bsemi,bsim:bsim,bsime:bsime,bsolb:bsolb,bsol:bsol,bsolhsub:bsolhsub,bull:bull,bullet:bullet,bump:bump,bumpE:bumpE,bumpe:bumpe,Bumpeq:Bumpeq,bumpeq:bumpeq,Cacute:Cacute,cacute:cacute,capand:capand,capbrcup:capbrcup,capcap:capcap,cap:cap,Cap:Cap,capcup:capcup,capdot:capdot,CapitalDifferentialD:CapitalDifferentialD,caps:caps,caret:caret,caron:caron,Cayleys:Cayleys,ccaps:ccaps,Ccaron:Ccaron,ccaron:ccaron,Ccedil:Ccedil,ccedil:ccedil,Ccirc:Ccirc,ccirc:ccirc,Cconint:Cconint,ccups:ccups,ccupssm:ccupssm,Cdot:Cdot,cdot:cdot,cedil:cedil,Cedilla:Cedilla,cemptyv:cemptyv,cent:cent,centerdot:centerdot,CenterDot:CenterDot,cfr:cfr,Cfr:Cfr,CHcy:CHcy,chcy:chcy,check:check,checkmark:checkmark,Chi:Chi,chi:chi,circ:circ,circeq:circeq,circlearrowleft:circlearrowleft,circlearrowright:circlearrowright,circledast:circledast,circledcirc:circledcirc,circleddash:circleddash,CircleDot:CircleDot,circledR:circledR,circledS:circledS,CircleMinus:CircleMinus,CirclePlus:CirclePlus,CircleTimes:CircleTimes,cir:cir,cirE:cirE,cire:cire,cirfnint:cirfnint,cirmid:cirmid,cirscir:cirscir,ClockwiseContourIntegral:ClockwiseContourIntegral,CloseCurlyDoubleQuote:CloseCurlyDoubleQuote,CloseCurlyQuote:CloseCurlyQuote,clubs:clubs,clubsuit:clubsuit,colon:colon,Colon:Colon,Colone:Colone,colone:colone,coloneq:coloneq,comma:comma,commat:commat,comp:comp,compfn:compfn,complement:complement,complexes:complexes,cong:cong,congdot:congdot,Congruent:Congruent,conint:conint,Conint:Conint,ContourIntegral:ContourIntegral,copf:copf,Copf:Copf,coprod:coprod,Coproduct:Coproduct,copy:copy$1,COPY:COPY$1,copysr:copysr,CounterClockwiseContourIntegral:CounterClockwiseContourIntegral,crarr:crarr,cross:cross,Cross:Cross,Cscr:Cscr,cscr:cscr,csub:csub,csube:csube,csup:csup,csupe:csupe,ctdot:ctdot,cudarrl:cudarrl,cudarrr:cudarrr,cuepr:cuepr,cuesc:cuesc,cularr:cularr,cularrp:cularrp,cupbrcap:cupbrcap,cupcap:cupcap,CupCap:CupCap,cup:cup,Cup:Cup,cupcup:cupcup,cupdot:cupdot,cupor:cupor,cups:cups,curarr:curarr,curarrm:curarrm,curlyeqprec:curlyeqprec,curlyeqsucc:curlyeqsucc,curlyvee:curlyvee,curlywedge:curlywedge,curren:curren,curvearrowleft:curvearrowleft,curvearrowright:curvearrowright,cuvee:cuvee,cuwed:cuwed,cwconint:cwconint,cwint:cwint,cylcty:cylcty,dagger:dagger,Dagger:Dagger,daleth:daleth,darr:darr,Darr:Darr,dArr:dArr,dash:dash,Dashv:Dashv,dashv:dashv,dbkarow:dbkarow,dblac:dblac,Dcaron:Dcaron,dcaron:dcaron,Dcy:Dcy,dcy:dcy,ddagger:ddagger,ddarr:ddarr,DD:DD,dd:dd,DDotrahd:DDotrahd,ddotseq:ddotseq,deg:deg,Del:Del,Delta:Delta,delta:delta,demptyv:demptyv,dfisht:dfisht,Dfr:Dfr,dfr:dfr,dHar:dHar,dharl:dharl,dharr:dharr,DiacriticalAcute:DiacriticalAcute,DiacriticalDot:DiacriticalDot,DiacriticalDoubleAcute:DiacriticalDoubleAcute,DiacriticalGrave:DiacriticalGrave,DiacriticalTilde:DiacriticalTilde,diam:diam,diamond:diamond,Diamond:Diamond,diamondsuit:diamondsuit,diams:diams,die:die,DifferentialD:DifferentialD,digamma:digamma,disin:disin,div:div,divide:divide,divideontimes:divideontimes,divonx:divonx,DJcy:DJcy,djcy:djcy,dlcorn:dlcorn,dlcrop:dlcrop,dollar:dollar,Dopf:Dopf,dopf:dopf,Dot:Dot,dot:dot,DotDot:DotDot,doteq:doteq,doteqdot:doteqdot,DotEqual:DotEqual,dotminus:dotminus,dotplus:dotplus,dotsquare:dotsquare,doublebarwedge:doublebarwedge,DoubleContourIntegral:DoubleContourIntegral,DoubleDot:DoubleDot,DoubleDownArrow:DoubleDownArrow,DoubleLeftArrow:DoubleLeftArrow,DoubleLeftRightArrow:DoubleLeftRightArrow,DoubleLeftTee:DoubleLeftTee,DoubleLongLeftArrow:DoubleLongLeftArrow,DoubleLongLeftRightArrow:DoubleLongLeftRightArrow,DoubleLongRightArrow:DoubleLongRightArrow,DoubleRightArrow:DoubleRightArrow,DoubleRightTee:DoubleRightTee,DoubleUpArrow:DoubleUpArrow,DoubleUpDownArrow:DoubleUpDownArrow,DoubleVerticalBar:DoubleVerticalBar,DownArrowBar:DownArrowBar,downarrow:downarrow,DownArrow:DownArrow,Downarrow:Downarrow,DownArrowUpArrow:DownArrowUpArrow,DownBreve:DownBreve,downdownarrows:downdownarrows,downharpoonleft:downharpoonleft,downharpoonright:downharpoonright,DownLeftRightVector:DownLeftRightVector,DownLeftTeeVector:DownLeftTeeVector,DownLeftVectorBar:DownLeftVectorBar,DownLeftVector:DownLeftVector,DownRightTeeVector:DownRightTeeVector,DownRightVectorBar:DownRightVectorBar,DownRightVector:DownRightVector,DownTeeArrow:DownTeeArrow,DownTee:DownTee,drbkarow:drbkarow,drcorn:drcorn,drcrop:drcrop,Dscr:Dscr,dscr:dscr,DScy:DScy,dscy:dscy,dsol:dsol,Dstrok:Dstrok,dstrok:dstrok,dtdot:dtdot,dtri:dtri,dtrif:dtrif,duarr:duarr,duhar:duhar,dwangle:dwangle,DZcy:DZcy,dzcy:dzcy,dzigrarr:dzigrarr,Eacute:Eacute,eacute:eacute,easter:easter,Ecaron:Ecaron,ecaron:ecaron,Ecirc:Ecirc,ecirc:ecirc,ecir:ecir,ecolon:ecolon,Ecy:Ecy,ecy:ecy,eDDot:eDDot,Edot:Edot,edot:edot,eDot:eDot,ee:ee,efDot:efDot,Efr:Efr,efr:efr,eg:eg,Egrave:Egrave,egrave:egrave,egs:egs,egsdot:egsdot,el:el,Element:Element,elinters:elinters,ell:ell,els:els,elsdot:elsdot,Emacr:Emacr,emacr:emacr,empty:empty$2,emptyset:emptyset,EmptySmallSquare:EmptySmallSquare,emptyv:emptyv,EmptyVerySmallSquare:EmptyVerySmallSquare,emsp13:emsp13,emsp14:emsp14,emsp:emsp,ENG:ENG,eng:eng,ensp:ensp,Eogon:Eogon,eogon:eogon,Eopf:Eopf,eopf:eopf,epar:epar,eparsl:eparsl,eplus:eplus,epsi:epsi,Epsilon:Epsilon,epsilon:epsilon,epsiv:epsiv,eqcirc:eqcirc,eqcolon:eqcolon,eqsim:eqsim,eqslantgtr:eqslantgtr,eqslantless:eqslantless,Equal:Equal,equals:equals,EqualTilde:EqualTilde,equest:equest,Equilibrium:Equilibrium,equiv:equiv,equivDD:equivDD,eqvparsl:eqvparsl,erarr:erarr,erDot:erDot,escr:escr,Escr:Escr,esdot:esdot,Esim:Esim,esim:esim,Eta:Eta,eta:eta,ETH:ETH,eth:eth,Euml:Euml,euml:euml,euro:euro,excl:excl,exist:exist,Exists:Exists,expectation:expectation,exponentiale:exponentiale,ExponentialE:ExponentialE,fallingdotseq:fallingdotseq,Fcy:Fcy,fcy:fcy,female:female,ffilig:ffilig,fflig:fflig,ffllig:ffllig,Ffr:Ffr,ffr:ffr,filig:filig,FilledSmallSquare:FilledSmallSquare,FilledVerySmallSquare:FilledVerySmallSquare,fjlig:fjlig,flat:flat,fllig:fllig,fltns:fltns,fnof:fnof,Fopf:Fopf,fopf:fopf,forall:forall,ForAll:ForAll,fork:fork,forkv:forkv,Fouriertrf:Fouriertrf,fpartint:fpartint,frac12:frac12,frac13:frac13,frac14:frac14,frac15:frac15,frac16:frac16,frac18:frac18,frac23:frac23,frac25:frac25,frac34:frac34,frac35:frac35,frac38:frac38,frac45:frac45,frac56:frac56,frac58:frac58,frac78:frac78,frasl:frasl,frown:frown,fscr:fscr,Fscr:Fscr,gacute:gacute,Gamma:Gamma,gamma:gamma,Gammad:Gammad,gammad:gammad,gap:gap,Gbreve:Gbreve,gbreve:gbreve,Gcedil:Gcedil,Gcirc:Gcirc,gcirc:gcirc,Gcy:Gcy,gcy:gcy,Gdot:Gdot,gdot:gdot,ge:ge,gE:gE,gEl:gEl,gel:gel,geq:geq,geqq:geqq,geqslant:geqslant,gescc:gescc,ges:ges,gesdot:gesdot,gesdoto:gesdoto,gesdotol:gesdotol,gesl:gesl,gesles:gesles,Gfr:Gfr,gfr:gfr,gg:gg,Gg:Gg,ggg:ggg,gimel:gimel,GJcy:GJcy,gjcy:gjcy,gla:gla,gl:gl,glE:glE,glj:glj,gnap:gnap,gnapprox:gnapprox,gne:gne,gnE:gnE,gneq:gneq,gneqq:gneqq,gnsim:gnsim,Gopf:Gopf,gopf:gopf,grave:grave,GreaterEqual:GreaterEqual,GreaterEqualLess:GreaterEqualLess,GreaterFullEqual:GreaterFullEqual,GreaterGreater:GreaterGreater,GreaterLess:GreaterLess,GreaterSlantEqual:GreaterSlantEqual,GreaterTilde:GreaterTilde,Gscr:Gscr,gscr:gscr,gsim:gsim,gsime:gsime,gsiml:gsiml,gtcc:gtcc,gtcir:gtcir,gt:gt,GT:GT,Gt:Gt,gtdot:gtdot,gtlPar:gtlPar,gtquest:gtquest,gtrapprox:gtrapprox,gtrarr:gtrarr,gtrdot:gtrdot,gtreqless:gtreqless,gtreqqless:gtreqqless,gtrless:gtrless,gtrsim:gtrsim,gvertneqq:gvertneqq,gvnE:gvnE,Hacek:Hacek,hairsp:hairsp,half:half,hamilt:hamilt,HARDcy:HARDcy,hardcy:hardcy,harrcir:harrcir,harr:harr,hArr:hArr,harrw:harrw,Hat:Hat,hbar:hbar,Hcirc:Hcirc,hcirc:hcirc,hearts:hearts,heartsuit:heartsuit,hellip:hellip,hercon:hercon,hfr:hfr,Hfr:Hfr,HilbertSpace:HilbertSpace,hksearow:hksearow,hkswarow:hkswarow,hoarr:hoarr,homtht:homtht,hookleftarrow:hookleftarrow,hookrightarrow:hookrightarrow,hopf:hopf,Hopf:Hopf,horbar:horbar,HorizontalLine:HorizontalLine,hscr:hscr,Hscr:Hscr,hslash:hslash,Hstrok:Hstrok,hstrok:hstrok,HumpDownHump:HumpDownHump,HumpEqual:HumpEqual,hybull:hybull,hyphen:hyphen,Iacute:Iacute,iacute:iacute,ic:ic,Icirc:Icirc,icirc:icirc,Icy:Icy,icy:icy,Idot:Idot,IEcy:IEcy,iecy:iecy,iexcl:iexcl,iff:iff,ifr:ifr,Ifr:Ifr,Igrave:Igrave,igrave:igrave,ii:ii,iiiint:iiiint,iiint:iiint,iinfin:iinfin,iiota:iiota,IJlig:IJlig,ijlig:ijlig,Imacr:Imacr,imacr:imacr,image:image$1,ImaginaryI:ImaginaryI,imagline:imagline,imagpart:imagpart,imath:imath,Im:Im,imof:imof,imped:imped,Implies:Implies,incare:incare,"in":"∈",infin:infin,infintie:infintie,inodot:inodot,intcal:intcal,int:int$2,Int:Int,integers:integers,Integral:Integral,intercal:intercal,Intersection:Intersection,intlarhk:intlarhk,intprod:intprod,InvisibleComma:InvisibleComma,InvisibleTimes:InvisibleTimes,IOcy:IOcy,iocy:iocy,Iogon:Iogon,iogon:iogon,Iopf:Iopf,iopf:iopf,Iota:Iota,iota:iota,iprod:iprod,iquest:iquest,iscr:iscr,Iscr:Iscr,isin:isin,isindot:isindot,isinE:isinE,isins:isins,isinsv:isinsv,isinv:isinv,it:it,Itilde:Itilde,itilde:itilde,Iukcy:Iukcy,iukcy:iukcy,Iuml:Iuml,iuml:iuml,Jcirc:Jcirc,jcirc:jcirc,Jcy:Jcy,jcy:jcy,Jfr:Jfr,jfr:jfr,jmath:jmath,Jopf:Jopf,jopf:jopf,Jscr:Jscr,jscr:jscr,Jsercy:Jsercy,jsercy:jsercy,Jukcy:Jukcy,jukcy:jukcy,Kappa:Kappa,kappa:kappa,kappav:kappav,Kcedil:Kcedil,kcedil:kcedil,Kcy:Kcy,kcy:kcy,Kfr:Kfr,kfr:kfr,kgreen:kgreen,KHcy:KHcy,khcy:khcy,KJcy:KJcy,kjcy:kjcy,Kopf:Kopf,kopf:kopf,Kscr:Kscr,kscr:kscr,lAarr:lAarr,Lacute:Lacute,lacute:lacute,laemptyv:laemptyv,lagran:lagran,Lambda:Lambda,lambda:lambda,lang:lang,Lang:Lang,langd:langd,langle:langle,lap:lap,Laplacetrf:Laplacetrf,laquo:laquo,larrb:larrb,larrbfs:larrbfs,larr:larr,Larr:Larr,lArr:lArr,larrfs:larrfs,larrhk:larrhk,larrlp:larrlp,larrpl:larrpl,larrsim:larrsim,larrtl:larrtl,latail:latail,lAtail:lAtail,lat:lat,late:late,lates:lates,lbarr:lbarr,lBarr:lBarr,lbbrk:lbbrk,lbrace:lbrace,lbrack:lbrack,lbrke:lbrke,lbrksld:lbrksld,lbrkslu:lbrkslu,Lcaron:Lcaron,lcaron:lcaron,Lcedil:Lcedil,lcedil:lcedil,lceil:lceil,lcub:lcub,Lcy:Lcy,lcy:lcy,ldca:ldca,ldquo:ldquo,ldquor:ldquor,ldrdhar:ldrdhar,ldrushar:ldrushar,ldsh:ldsh,le:le,lE:lE,LeftAngleBracket:LeftAngleBracket,LeftArrowBar:LeftArrowBar,leftarrow:leftarrow,LeftArrow:LeftArrow,Leftarrow:Leftarrow,LeftArrowRightArrow:LeftArrowRightArrow,leftarrowtail:leftarrowtail,LeftCeiling:LeftCeiling,LeftDoubleBracket:LeftDoubleBracket,LeftDownTeeVector:LeftDownTeeVector,LeftDownVectorBar:LeftDownVectorBar,LeftDownVector:LeftDownVector,LeftFloor:LeftFloor,leftharpoondown:leftharpoondown,leftharpoonup:leftharpoonup,leftleftarrows:leftleftarrows,leftrightarrow:leftrightarrow,LeftRightArrow:LeftRightArrow,Leftrightarrow:Leftrightarrow,leftrightarrows:leftrightarrows,leftrightharpoons:leftrightharpoons,leftrightsquigarrow:leftrightsquigarrow,LeftRightVector:LeftRightVector,LeftTeeArrow:LeftTeeArrow,LeftTee:LeftTee,LeftTeeVector:LeftTeeVector,leftthreetimes:leftthreetimes,LeftTriangleBar:LeftTriangleBar,LeftTriangle:LeftTriangle,LeftTriangleEqual:LeftTriangleEqual,LeftUpDownVector:LeftUpDownVector,LeftUpTeeVector:LeftUpTeeVector,LeftUpVectorBar:LeftUpVectorBar,LeftUpVector:LeftUpVector,LeftVectorBar:LeftVectorBar,LeftVector:LeftVector,lEg:lEg,leg:leg,leq:leq,leqq:leqq,leqslant:leqslant,lescc:lescc,les:les,lesdot:lesdot,lesdoto:lesdoto,lesdotor:lesdotor,lesg:lesg,lesges:lesges,lessapprox:lessapprox,lessdot:lessdot,lesseqgtr:lesseqgtr,lesseqqgtr:lesseqqgtr,LessEqualGreater:LessEqualGreater,LessFullEqual:LessFullEqual,LessGreater:LessGreater,lessgtr:lessgtr,LessLess:LessLess,lesssim:lesssim,LessSlantEqual:LessSlantEqual,LessTilde:LessTilde,lfisht:lfisht,lfloor:lfloor,Lfr:Lfr,lfr:lfr,lg:lg,lgE:lgE,lHar:lHar,lhard:lhard,lharu:lharu,lharul:lharul,lhblk:lhblk,LJcy:LJcy,ljcy:ljcy,llarr:llarr,ll:ll,Ll:Ll,llcorner:llcorner,Lleftarrow:Lleftarrow,llhard:llhard,lltri:lltri,Lmidot:Lmidot,lmidot:lmidot,lmoustache:lmoustache,lmoust:lmoust,lnap:lnap,lnapprox:lnapprox,lne:lne,lnE:lnE,lneq:lneq,lneqq:lneqq,lnsim:lnsim,loang:loang,loarr:loarr,lobrk:lobrk,longleftarrow:longleftarrow,LongLeftArrow:LongLeftArrow,Longleftarrow:Longleftarrow,longleftrightarrow:longleftrightarrow,LongLeftRightArrow:LongLeftRightArrow,Longleftrightarrow:Longleftrightarrow,longmapsto:longmapsto,longrightarrow:longrightarrow,LongRightArrow:LongRightArrow,Longrightarrow:Longrightarrow,looparrowleft:looparrowleft,looparrowright:looparrowright,lopar:lopar,Lopf:Lopf,lopf:lopf,loplus:loplus,lotimes:lotimes,lowast:lowast,lowbar:lowbar,LowerLeftArrow:LowerLeftArrow,LowerRightArrow:LowerRightArrow,loz:loz,lozenge:lozenge,lozf:lozf,lpar:lpar,lparlt:lparlt,lrarr:lrarr,lrcorner:lrcorner,lrhar:lrhar,lrhard:lrhard,lrm:lrm,lrtri:lrtri,lsaquo:lsaquo,lscr:lscr,Lscr:Lscr,lsh:lsh,Lsh:Lsh,lsim:lsim,lsime:lsime,lsimg:lsimg,lsqb:lsqb,lsquo:lsquo,lsquor:lsquor,Lstrok:Lstrok,lstrok:lstrok,ltcc:ltcc,ltcir:ltcir,lt:lt,LT:LT,Lt:Lt,ltdot:ltdot,lthree:lthree,ltimes:ltimes,ltlarr:ltlarr,ltquest:ltquest,ltri:ltri,ltrie:ltrie,ltrif:ltrif,ltrPar:ltrPar,lurdshar:lurdshar,luruhar:luruhar,lvertneqq:lvertneqq,lvnE:lvnE,macr:macr,male:male,malt:malt,maltese:maltese,"Map":"⤅",map:map$4,mapsto:mapsto,mapstodown:mapstodown,mapstoleft:mapstoleft,mapstoup:mapstoup,marker:marker,mcomma:mcomma,Mcy:Mcy,mcy:mcy,mdash:mdash,mDDot:mDDot,measuredangle:measuredangle,MediumSpace:MediumSpace,Mellintrf:Mellintrf,Mfr:Mfr,mfr:mfr,mho:mho,micro:micro,midast:midast,midcir:midcir,mid:mid,middot:middot,minusb:minusb,minus:minus,minusd:minusd,minusdu:minusdu,MinusPlus:MinusPlus,mlcp:mlcp,mldr:mldr,mnplus:mnplus,models:models,Mopf:Mopf,mopf:mopf,mp:mp,mscr:mscr,Mscr:Mscr,mstpos:mstpos,Mu:Mu,mu:mu,multimap:multimap,mumap:mumap,nabla:nabla,Nacute:Nacute,nacute:nacute,nang:nang,nap:nap,napE:napE,napid:napid,napos:napos,napprox:napprox,natural:natural,naturals:naturals,natur:natur,nbsp:nbsp,nbump:nbump,nbumpe:nbumpe,ncap:ncap,Ncaron:Ncaron,ncaron:ncaron,Ncedil:Ncedil,ncedil:ncedil,ncong:ncong,ncongdot:ncongdot,ncup:ncup,Ncy:Ncy,ncy:ncy,ndash:ndash,nearhk:nearhk,nearr:nearr,neArr:neArr,nearrow:nearrow,ne:ne,nedot:nedot,NegativeMediumSpace:NegativeMediumSpace,NegativeThickSpace:NegativeThickSpace,NegativeThinSpace:NegativeThinSpace,NegativeVeryThinSpace:NegativeVeryThinSpace,nequiv:nequiv,nesear:nesear,nesim:nesim,NestedGreaterGreater:NestedGreaterGreater,NestedLessLess:NestedLessLess,NewLine:NewLine,nexist:nexist,nexists:nexists,Nfr:Nfr,nfr:nfr,ngE:ngE,nge:nge,ngeq:ngeq,ngeqq:ngeqq,ngeqslant:ngeqslant,nges:nges,nGg:nGg,ngsim:ngsim,nGt:nGt,ngt:ngt,ngtr:ngtr,nGtv:nGtv,nharr:nharr,nhArr:nhArr,nhpar:nhpar,ni:ni,nis:nis,nisd:nisd,niv:niv,NJcy:NJcy,njcy:njcy,nlarr:nlarr,nlArr:nlArr,nldr:nldr,nlE:nlE,nle:nle,nleftarrow:nleftarrow,nLeftarrow:nLeftarrow,nleftrightarrow:nleftrightarrow,nLeftrightarrow:nLeftrightarrow,nleq:nleq,nleqq:nleqq,nleqslant:nleqslant,nles:nles,nless:nless,nLl:nLl,nlsim:nlsim,nLt:nLt,nlt:nlt,nltri:nltri,nltrie:nltrie,nLtv:nLtv,nmid:nmid,NoBreak:NoBreak,NonBreakingSpace:NonBreakingSpace,nopf:nopf,Nopf:Nopf,Not:Not,not:not$1,NotCongruent:NotCongruent,NotCupCap:NotCupCap,NotDoubleVerticalBar:NotDoubleVerticalBar,NotElement:NotElement,NotEqual:NotEqual,NotEqualTilde:NotEqualTilde,NotExists:NotExists,NotGreater:NotGreater,NotGreaterEqual:NotGreaterEqual,NotGreaterFullEqual:NotGreaterFullEqual,NotGreaterGreater:NotGreaterGreater,NotGreaterLess:NotGreaterLess,NotGreaterSlantEqual:NotGreaterSlantEqual,NotGreaterTilde:NotGreaterTilde,NotHumpDownHump:NotHumpDownHump,NotHumpEqual:NotHumpEqual,notin:notin,notindot:notindot,notinE:notinE,notinva:notinva,notinvb:notinvb,notinvc:notinvc,NotLeftTriangleBar:NotLeftTriangleBar,NotLeftTriangle:NotLeftTriangle,NotLeftTriangleEqual:NotLeftTriangleEqual,NotLess:NotLess,NotLessEqual:NotLessEqual,NotLessGreater:NotLessGreater,NotLessLess:NotLessLess,NotLessSlantEqual:NotLessSlantEqual,NotLessTilde:NotLessTilde,NotNestedGreaterGreater:NotNestedGreaterGreater,NotNestedLessLess:NotNestedLessLess,notni:notni,notniva:notniva,notnivb:notnivb,notnivc:notnivc,NotPrecedes:NotPrecedes,NotPrecedesEqual:NotPrecedesEqual,NotPrecedesSlantEqual:NotPrecedesSlantEqual,NotReverseElement:NotReverseElement,NotRightTriangleBar:NotRightTriangleBar,NotRightTriangle:NotRightTriangle,NotRightTriangleEqual:NotRightTriangleEqual,NotSquareSubset:NotSquareSubset,NotSquareSubsetEqual:NotSquareSubsetEqual,NotSquareSuperset:NotSquareSuperset,NotSquareSupersetEqual:NotSquareSupersetEqual,NotSubset:NotSubset,NotSubsetEqual:NotSubsetEqual,NotSucceeds:NotSucceeds,NotSucceedsEqual:NotSucceedsEqual,NotSucceedsSlantEqual:NotSucceedsSlantEqual,NotSucceedsTilde:NotSucceedsTilde,NotSuperset:NotSuperset,NotSupersetEqual:NotSupersetEqual,NotTilde:NotTilde,NotTildeEqual:NotTildeEqual,NotTildeFullEqual:NotTildeFullEqual,NotTildeTilde:NotTildeTilde,NotVerticalBar:NotVerticalBar,nparallel:nparallel,npar:npar,nparsl:nparsl,npart:npart,npolint:npolint,npr:npr,nprcue:nprcue,nprec:nprec,npreceq:npreceq,npre:npre,nrarrc:nrarrc,nrarr:nrarr,nrArr:nrArr,nrarrw:nrarrw,nrightarrow:nrightarrow,nRightarrow:nRightarrow,nrtri:nrtri,nrtrie:nrtrie,nsc:nsc,nsccue:nsccue,nsce:nsce,Nscr:Nscr,nscr:nscr,nshortmid:nshortmid,nshortparallel:nshortparallel,nsim:nsim,nsime:nsime,nsimeq:nsimeq,nsmid:nsmid,nspar:nspar,nsqsube:nsqsube,nsqsupe:nsqsupe,nsub:nsub,nsubE:nsubE,nsube:nsube,nsubset:nsubset,nsubseteq:nsubseteq,nsubseteqq:nsubseteqq,nsucc:nsucc,nsucceq:nsucceq,nsup:nsup,nsupE:nsupE,nsupe:nsupe,nsupset:nsupset,nsupseteq:nsupseteq,nsupseteqq:nsupseteqq,ntgl:ntgl,Ntilde:Ntilde,ntilde:ntilde,ntlg:ntlg,ntriangleleft:ntriangleleft,ntrianglelefteq:ntrianglelefteq,ntriangleright:ntriangleright,ntrianglerighteq:ntrianglerighteq,Nu:Nu,nu:nu,num:num,numero:numero,numsp:numsp,nvap:nvap,nvdash:nvdash,nvDash:nvDash,nVdash:nVdash,nVDash:nVDash,nvge:nvge,nvgt:nvgt,nvHarr:nvHarr,nvinfin:nvinfin,nvlArr:nvlArr,nvle:nvle,nvlt:nvlt,nvltrie:nvltrie,nvrArr:nvrArr,nvrtrie:nvrtrie,nvsim:nvsim,nwarhk:nwarhk,nwarr:nwarr,nwArr:nwArr,nwarrow:nwarrow,nwnear:nwnear,Oacute:Oacute,oacute:oacute,oast:oast,Ocirc:Ocirc,ocirc:ocirc,ocir:ocir,Ocy:Ocy,ocy:ocy,odash:odash,Odblac:Odblac,odblac:odblac,odiv:odiv,odot:odot,odsold:odsold,OElig:OElig,oelig:oelig,ofcir:ofcir,Ofr:Ofr,ofr:ofr,ogon:ogon,Ograve:Ograve,ograve:ograve,ogt:ogt,ohbar:ohbar,ohm:ohm,oint:oint,olarr:olarr,olcir:olcir,olcross:olcross,oline:oline,olt:olt,Omacr:Omacr,omacr:omacr,Omega:Omega,omega:omega,Omicron:Omicron,omicron:omicron,omid:omid,ominus:ominus,Oopf:Oopf,oopf:oopf,opar:opar,OpenCurlyDoubleQuote:OpenCurlyDoubleQuote,OpenCurlyQuote:OpenCurlyQuote,operp:operp,oplus:oplus,orarr:orarr,Or:Or,or:or,ord:ord,order:order,orderof:orderof,ordf:ordf,ordm:ordm,origof:origof,oror:oror,orslope:orslope,orv:orv,oS:oS,Oscr:Oscr,oscr:oscr,Oslash:Oslash,oslash:oslash,osol:osol,Otilde:Otilde,otilde:otilde,otimesas:otimesas,Otimes:Otimes,otimes:otimes,Ouml:Ouml,ouml:ouml,ovbar:ovbar,OverBar:OverBar,OverBrace:OverBrace,OverBracket:OverBracket,OverParenthesis:OverParenthesis,para:para,parallel:parallel,par:par,parsim:parsim,parsl:parsl,part:part,PartialD:PartialD,Pcy:Pcy,pcy:pcy,percnt:percnt,period:period,permil:permil,perp:perp,pertenk:pertenk,Pfr:Pfr,pfr:pfr,Phi:Phi,phi:phi,phiv:phiv,phmmat:phmmat,phone:phone,Pi:Pi,pi:pi,pitchfork:pitchfork,piv:piv,planck:planck,planckh:planckh,plankv:plankv,plusacir:plusacir,plusb:plusb,pluscir:pluscir,plus:plus,plusdo:plusdo,plusdu:plusdu,pluse:pluse,PlusMinus:PlusMinus,plusmn:plusmn,plussim:plussim,plustwo:plustwo,pm:pm,Poincareplane:Poincareplane,pointint:pointint,popf:popf,Popf:Popf,pound:pound,prap:prap,Pr:Pr,pr:pr,prcue:prcue,precapprox:precapprox,prec:prec,preccurlyeq:preccurlyeq,Precedes:Precedes,PrecedesEqual:PrecedesEqual,PrecedesSlantEqual:PrecedesSlantEqual,PrecedesTilde:PrecedesTilde,preceq:preceq,precnapprox:precnapprox,precneqq:precneqq,precnsim:precnsim,pre:pre,prE:prE,precsim:precsim,prime:prime,Prime:Prime,primes:primes,prnap:prnap,prnE:prnE,prnsim:prnsim,prod:prod,Product:Product,profalar:profalar,profline:profline,profsurf:profsurf,prop:prop,Proportional:Proportional,Proportion:Proportion,propto:propto,prsim:prsim,prurel:prurel,Pscr:Pscr,pscr:pscr,Psi:Psi,psi:psi,puncsp:puncsp,Qfr:Qfr,qfr:qfr,qint:qint,qopf:qopf,Qopf:Qopf,qprime:qprime,Qscr:Qscr,qscr:qscr,quaternions:quaternions,quatint:quatint,quest:quest,questeq:questeq,quot:quot,QUOT:QUOT,rAarr:rAarr,race:race,Racute:Racute,racute:racute,radic:radic,raemptyv:raemptyv,rang:rang,Rang:Rang,rangd:rangd,range:range,rangle:rangle,raquo:raquo,rarrap:rarrap,rarrb:rarrb,rarrbfs:rarrbfs,rarrc:rarrc,rarr:rarr,Rarr:Rarr,rArr:rArr,rarrfs:rarrfs,rarrhk:rarrhk,rarrlp:rarrlp,rarrpl:rarrpl,rarrsim:rarrsim,Rarrtl:Rarrtl,rarrtl:rarrtl,rarrw:rarrw,ratail:ratail,rAtail:rAtail,ratio:ratio,rationals:rationals,rbarr:rbarr,rBarr:rBarr,RBarr:RBarr,rbbrk:rbbrk,rbrace:rbrace,rbrack:rbrack,rbrke:rbrke,rbrksld:rbrksld,rbrkslu:rbrkslu,Rcaron:Rcaron,rcaron:rcaron,Rcedil:Rcedil,rcedil:rcedil,rceil:rceil,rcub:rcub,Rcy:Rcy,rcy:rcy,rdca:rdca,rdldhar:rdldhar,rdquo:rdquo,rdquor:rdquor,rdsh:rdsh,real:real,realine:realine,realpart:realpart,reals:reals,Re:Re,rect:rect,reg:reg,REG:REG,ReverseElement:ReverseElement,ReverseEquilibrium:ReverseEquilibrium,ReverseUpEquilibrium:ReverseUpEquilibrium,rfisht:rfisht,rfloor:rfloor,rfr:rfr,Rfr:Rfr,rHar:rHar,rhard:rhard,rharu:rharu,rharul:rharul,Rho:Rho,rho:rho,rhov:rhov,RightAngleBracket:RightAngleBracket,RightArrowBar:RightArrowBar,rightarrow:rightarrow,RightArrow:RightArrow,Rightarrow:Rightarrow,RightArrowLeftArrow:RightArrowLeftArrow,rightarrowtail:rightarrowtail,RightCeiling:RightCeiling,RightDoubleBracket:RightDoubleBracket,RightDownTeeVector:RightDownTeeVector,RightDownVectorBar:RightDownVectorBar,RightDownVector:RightDownVector,RightFloor:RightFloor,rightharpoondown:rightharpoondown,rightharpoonup:rightharpoonup,rightleftarrows:rightleftarrows,rightleftharpoons:rightleftharpoons,rightrightarrows:rightrightarrows,rightsquigarrow:rightsquigarrow,RightTeeArrow:RightTeeArrow,RightTee:RightTee,RightTeeVector:RightTeeVector,rightthreetimes:rightthreetimes,RightTriangleBar:RightTriangleBar,RightTriangle:RightTriangle,RightTriangleEqual:RightTriangleEqual,RightUpDownVector:RightUpDownVector,RightUpTeeVector:RightUpTeeVector,RightUpVectorBar:RightUpVectorBar,RightUpVector:RightUpVector,RightVectorBar:RightVectorBar,RightVector:RightVector,ring:ring,risingdotseq:risingdotseq,rlarr:rlarr,rlhar:rlhar,rlm:rlm,rmoustache:rmoustache,rmoust:rmoust,rnmid:rnmid,roang:roang,roarr:roarr,robrk:robrk,ropar:ropar,ropf:ropf,Ropf:Ropf,roplus:roplus,rotimes:rotimes,RoundImplies:RoundImplies,rpar:rpar,rpargt:rpargt,rppolint:rppolint,rrarr:rrarr,Rrightarrow:Rrightarrow,rsaquo:rsaquo,rscr:rscr,Rscr:Rscr,rsh:rsh,Rsh:Rsh,rsqb:rsqb,rsquo:rsquo,rsquor:rsquor,rthree:rthree,rtimes:rtimes,rtri:rtri,rtrie:rtrie,rtrif:rtrif,rtriltri:rtriltri,RuleDelayed:RuleDelayed,ruluhar:ruluhar,rx:rx,Sacute:Sacute,sacute:sacute,sbquo:sbquo,scap:scap,Scaron:Scaron,scaron:scaron,Sc:Sc,sc:sc,sccue:sccue,sce:sce,scE:scE,Scedil:Scedil,scedil:scedil,Scirc:Scirc,scirc:scirc,scnap:scnap,scnE:scnE,scnsim:scnsim,scpolint:scpolint,scsim:scsim,Scy:Scy,scy:scy,sdotb:sdotb,sdot:sdot,sdote:sdote,searhk:searhk,searr:searr,seArr:seArr,searrow:searrow,sect:sect,semi:semi,seswar:seswar,setminus:setminus,setmn:setmn,sext:sext,Sfr:Sfr,sfr:sfr,sfrown:sfrown,sharp:sharp,SHCHcy:SHCHcy,shchcy:shchcy,SHcy:SHcy,shcy:shcy,ShortDownArrow:ShortDownArrow,ShortLeftArrow:ShortLeftArrow,shortmid:shortmid,shortparallel:shortparallel,ShortRightArrow:ShortRightArrow,ShortUpArrow:ShortUpArrow,shy:shy,Sigma:Sigma,sigma:sigma,sigmaf:sigmaf,sigmav:sigmav,sim:sim,simdot:simdot,sime:sime,simeq:simeq,simg:simg,simgE:simgE,siml:siml,simlE:simlE,simne:simne,simplus:simplus,simrarr:simrarr,slarr:slarr,SmallCircle:SmallCircle,smallsetminus:smallsetminus,smashp:smashp,smeparsl:smeparsl,smid:smid,smile:smile,smt:smt,smte:smte,smtes:smtes,SOFTcy:SOFTcy,softcy:softcy,solbar:solbar,solb:solb,sol:sol,Sopf:Sopf,sopf:sopf,spades:spades,spadesuit:spadesuit,spar:spar,sqcap:sqcap,sqcaps:sqcaps,sqcup:sqcup,sqcups:sqcups,Sqrt:Sqrt,sqsub:sqsub,sqsube:sqsube,sqsubset:sqsubset,sqsubseteq:sqsubseteq,sqsup:sqsup,sqsupe:sqsupe,sqsupset:sqsupset,sqsupseteq:sqsupseteq,square:square,Square:Square,SquareIntersection:SquareIntersection,SquareSubset:SquareSubset,SquareSubsetEqual:SquareSubsetEqual,SquareSuperset:SquareSuperset,SquareSupersetEqual:SquareSupersetEqual,SquareUnion:SquareUnion,squarf:squarf,squ:squ,squf:squf,srarr:srarr,Sscr:Sscr,sscr:sscr,ssetmn:ssetmn,ssmile:ssmile,sstarf:sstarf,Star:Star,star:star,starf:starf,straightepsilon:straightepsilon,straightphi:straightphi,strns:strns,sub:sub,Sub:Sub,subdot:subdot,subE:subE,sube:sube,subedot:subedot,submult:submult,subnE:subnE,subne:subne,subplus:subplus,subrarr:subrarr,subset:subset,Subset:Subset,subseteq:subseteq,subseteqq:subseteqq,SubsetEqual:SubsetEqual,subsetneq:subsetneq,subsetneqq:subsetneqq,subsim:subsim,subsub:subsub,subsup:subsup,succapprox:succapprox,succ:succ,succcurlyeq:succcurlyeq,Succeeds:Succeeds,SucceedsEqual:SucceedsEqual,SucceedsSlantEqual:SucceedsSlantEqual,SucceedsTilde:SucceedsTilde,succeq:succeq,succnapprox:succnapprox,succneqq:succneqq,succnsim:succnsim,succsim:succsim,SuchThat:SuchThat,sum:sum,Sum:Sum,sung:sung,sup1:sup1,sup2:sup2,sup3:sup3,sup:sup,Sup:Sup,supdot:supdot,supdsub:supdsub,supE:supE,supe:supe,supedot:supedot,Superset:Superset,SupersetEqual:SupersetEqual,suphsol:suphsol,suphsub:suphsub,suplarr:suplarr,supmult:supmult,supnE:supnE,supne:supne,supplus:supplus,supset:supset,Supset:Supset,supseteq:supseteq,supseteqq:supseteqq,supsetneq:supsetneq,supsetneqq:supsetneqq,supsim:supsim,supsub:supsub,supsup:supsup,swarhk:swarhk,swarr:swarr,swArr:swArr,swarrow:swarrow,swnwar:swnwar,szlig:szlig,Tab:Tab,target:target,Tau:Tau,tau:tau,tbrk:tbrk,Tcaron:Tcaron,tcaron:tcaron,Tcedil:Tcedil,tcedil:tcedil,Tcy:Tcy,tcy:tcy,tdot:tdot,telrec:telrec,Tfr:Tfr,tfr:tfr,there4:there4,therefore:therefore,Therefore:Therefore,Theta:Theta,theta:theta,thetasym:thetasym,thetav:thetav,thickapprox:thickapprox,thicksim:thicksim,ThickSpace:ThickSpace,ThinSpace:ThinSpace,thinsp:thinsp,thkap:thkap,thksim:thksim,THORN:THORN,thorn:thorn,tilde:tilde$1,Tilde:Tilde,TildeEqual:TildeEqual,TildeFullEqual:TildeFullEqual,TildeTilde:TildeTilde,timesbar:timesbar,timesb:timesb,times:times,timesd:timesd,tint:tint,toea:toea,topbot:topbot,topcir:topcir,top:top,Topf:Topf,topf:topf,topfork:topfork,tosa:tosa,tprime:tprime,trade:trade,TRADE:TRADE,triangle:triangle,triangledown:triangledown,triangleleft:triangleleft,trianglelefteq:trianglelefteq,triangleq:triangleq,triangleright:triangleright,trianglerighteq:trianglerighteq,tridot:tridot,trie:trie,triminus:triminus,TripleDot:TripleDot,triplus:triplus,trisb:trisb,tritime:tritime,trpezium:trpezium,Tscr:Tscr,tscr:tscr,TScy:TScy,tscy:tscy,TSHcy:TSHcy,tshcy:tshcy,Tstrok:Tstrok,tstrok:tstrok,twixt:twixt,twoheadleftarrow:twoheadleftarrow,twoheadrightarrow:twoheadrightarrow,Uacute:Uacute,uacute:uacute,uarr:uarr,Uarr:Uarr,uArr:uArr,Uarrocir:Uarrocir,Ubrcy:Ubrcy,ubrcy:ubrcy,Ubreve:Ubreve,ubreve:ubreve,Ucirc:Ucirc,ucirc:ucirc,Ucy:Ucy,ucy:ucy,udarr:udarr,Udblac:Udblac,udblac:udblac,udhar:udhar,ufisht:ufisht,Ufr:Ufr,ufr:ufr,Ugrave:Ugrave,ugrave:ugrave,uHar:uHar,uharl:uharl,uharr:uharr,uhblk:uhblk,ulcorn:ulcorn,ulcorner:ulcorner,ulcrop:ulcrop,ultri:ultri,Umacr:Umacr,umacr:umacr,uml:uml,UnderBar:UnderBar,UnderBrace:UnderBrace,UnderBracket:UnderBracket,UnderParenthesis:UnderParenthesis,Union:Union,UnionPlus:UnionPlus,Uogon:Uogon,uogon:uogon,Uopf:Uopf,uopf:uopf,UpArrowBar:UpArrowBar,uparrow:uparrow,UpArrow:UpArrow,Uparrow:Uparrow,UpArrowDownArrow:UpArrowDownArrow,updownarrow:updownarrow,UpDownArrow:UpDownArrow,Updownarrow:Updownarrow,UpEquilibrium:UpEquilibrium,upharpoonleft:upharpoonleft,upharpoonright:upharpoonright,uplus:uplus,UpperLeftArrow:UpperLeftArrow,UpperRightArrow:UpperRightArrow,upsi:upsi,Upsi:Upsi,upsih:upsih,Upsilon:Upsilon,upsilon:upsilon,UpTeeArrow:UpTeeArrow,UpTee:UpTee,upuparrows:upuparrows,urcorn:urcorn,urcorner:urcorner,urcrop:urcrop,Uring:Uring,uring:uring,urtri:urtri,Uscr:Uscr,uscr:uscr,utdot:utdot,Utilde:Utilde,utilde:utilde,utri:utri,utrif:utrif,uuarr:uuarr,Uuml:Uuml,uuml:uuml,uwangle:uwangle,vangrt:vangrt,varepsilon:varepsilon,varkappa:varkappa,varnothing:varnothing,varphi:varphi,varpi:varpi,varpropto:varpropto,varr:varr,vArr:vArr,varrho:varrho,varsigma:varsigma,varsubsetneq:varsubsetneq,varsubsetneqq:varsubsetneqq,varsupsetneq:varsupsetneq,varsupsetneqq:varsupsetneqq,vartheta:vartheta,vartriangleleft:vartriangleleft,vartriangleright:vartriangleright,vBar:vBar,Vbar:Vbar,vBarv:vBarv,Vcy:Vcy,vcy:vcy,vdash:vdash,vDash:vDash,Vdash:Vdash,VDash:VDash,Vdashl:Vdashl,veebar:veebar,vee:vee,Vee:Vee,veeeq:veeeq,vellip:vellip,verbar:verbar,Verbar:Verbar,vert:vert,Vert:Vert,VerticalBar:VerticalBar,VerticalLine:VerticalLine,VerticalSeparator:VerticalSeparator,VerticalTilde:VerticalTilde,VeryThinSpace:VeryThinSpace,Vfr:Vfr,vfr:vfr,vltri:vltri,vnsub:vnsub,vnsup:vnsup,Vopf:Vopf,vopf:vopf,vprop:vprop,vrtri:vrtri,Vscr:Vscr,vscr:vscr,vsubnE:vsubnE,vsubne:vsubne,vsupnE:vsupnE,vsupne:vsupne,Vvdash:Vvdash,vzigzag:vzigzag,Wcirc:Wcirc,wcirc:wcirc,wedbar:wedbar,wedge:wedge,Wedge:Wedge,wedgeq:wedgeq,weierp:weierp,Wfr:Wfr,wfr:wfr,Wopf:Wopf,wopf:wopf,wp:wp,wr:wr,wreath:wreath,Wscr:Wscr,wscr:wscr,xcap:xcap,xcirc:xcirc,xcup:xcup,xdtri:xdtri,Xfr:Xfr,xfr:xfr,xharr:xharr,xhArr:xhArr,Xi:Xi,xi:xi,xlarr:xlarr,xlArr:xlArr,xmap:xmap,xnis:xnis,xodot:xodot,Xopf:Xopf,xopf:xopf,xoplus:xoplus,xotime:xotime,xrarr:xrarr,xrArr:xrArr,Xscr:Xscr,xscr:xscr,xsqcup:xsqcup,xuplus:xuplus,xutri:xutri,xvee:xvee,xwedge:xwedge,Yacute:Yacute,yacute:yacute,YAcy:YAcy,yacy:yacy,Ycirc:Ycirc,ycirc:ycirc,Ycy:Ycy,ycy:ycy,yen:yen,Yfr:Yfr,yfr:yfr,YIcy:YIcy,yicy:yicy,Yopf:Yopf,yopf:yopf,Yscr:Yscr,yscr:yscr,YUcy:YUcy,yucy:yucy,yuml:yuml,Yuml:Yuml,Zacute:Zacute,zacute:zacute,Zcaron:Zcaron,zcaron:zcaron,Zcy:Zcy,zcy:zcy,Zdot:Zdot,zdot:zdot,zeetrf:zeetrf,ZeroWidthSpace:ZeroWidthSpace,Zeta:Zeta,zeta:zeta,zfr:zfr,Zfr:Zfr,ZHcy:ZHcy,zhcy:zhcy,zigrarr:zigrarr,zopf:zopf,Zopf:Zopf,Zscr:Zscr,zscr:zscr,zwj:zwj,zwnj:zwnj};/*eslint quotes:0*/var entities=require$$0$4;var regex$5=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/;var encodeCache={};// Create a lookup array where anything but characters in `chars` string -// and alphanumeric chars is percent-encoded. -// -function getEncodeCache(exclude){var i,ch,cache=encodeCache[exclude];if(cache){return cache;}cache=encodeCache[exclude]=[];for(i=0;i<128;i++){ch=String.fromCharCode(i);if(/^[0-9a-z]$/i.test(ch)){// always allow unencoded alphanumeric characters -cache.push(ch);}else {cache.push('%'+('0'+i.toString(16).toUpperCase()).slice(-2));}}for(i=0;i=0xD800&&code<=0xDFFF){if(code>=0xD800&&code<=0xDBFF&&i+1=0xDC00&&nextCode<=0xDFFF){result+=encodeURIComponent(string[i]+string[i+1]);i++;continue;}}result+='%EF%BF%BD';continue;}result+=encodeURIComponent(string[i]);}return result;}encode$2.defaultChars=";/?:@&=+$,-_.!~*'()#";encode$2.componentChars="-_.!~*'()";var encode_1=encode$2;/* eslint-disable no-bitwise */var decodeCache={};function getDecodeCache(exclude){var i,ch,cache=decodeCache[exclude];if(cache){return cache;}cache=decodeCache[exclude]=[];for(i=0;i<128;i++){ch=String.fromCharCode(i);cache.push(ch);}for(i=0;i=0xD800&&chr<=0xDFFF){result+='\ufffd\ufffd\ufffd';}else {result+=String.fromCharCode(chr);}i+=6;continue;}}if((b1&0xF8)===0xF0&&i+90x10FFFF){result+='\ufffd\ufffd\ufffd\ufffd';}else {chr-=0x10000;result+=String.fromCharCode(0xD800+(chr>>10),0xDC00+(chr&0x3FF));}i+=9;continue;}}result+='\ufffd';}return result;});}decode$2.defaultChars=';/?:@&=+$,#';decode$2.componentChars='';var decode_1=decode$2;var format$5=function format(url){var result='';result+=url.protocol||'';result+=url.slashes?'//':'';result+=url.auth?url.auth+'@':'';if(url.hostname&&url.hostname.indexOf(':')!==-1){// ipv6 address -result+='['+url.hostname+']';}else {result+=url.hostname||'';}result+=url.port?':'+url.port:'';result+=url.pathname||'';result+=url.search||'';result+=url.hash||'';return result;};// Copyright Joyent, Inc. and other Node contributors. -// -// Changes from joyent/node: -// -// 1. No leading slash in paths, -// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/` -// -// 2. Backslashes are not replaced with slashes, -// so `http:\\example.org\` is treated like a relative path -// -// 3. Trailing colon is treated like a part of the path, -// i.e. in `http://example.org:foo` pathname is `:foo` -// -// 4. Nothing is URL-encoded in the resulting object, -// (in joyent/node some chars in auth and paths are encoded) -// -// 5. `url.parse()` does not have `parseQueryString` argument -// -// 6. Removed extraneous result properties: `host`, `path`, `query`, etc., -// which can be constructed using other parts of the url. -// -function Url$2(){this.protocol=null;this.slashes=null;this.auth=null;this.port=null;this.hostname=null;this.hash=null;this.search=null;this.pathname=null;}// Reference: RFC 3986, RFC 1808, RFC 2396 -// define these here so at least they only have to be -// compiled once on the first module load. -var protocolPattern$1=/^([a-z0-9.+-]+:)/i,portPattern$1=/:[0-9]*$/,// Special case for a simple path URL -simplePathPattern$1=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,// RFC 2396: characters reserved for delimiting URLs. -// We actually just auto-escape these. -delims$1=['<','>','"','`',' ','\r','\n','\t'],// RFC 2396: characters not allowed for various reasons. -unwise$1=['{','}','|','\\','^','`'].concat(delims$1),// Allowed by RFCs, but cause of XSS attacks. Always escape these. -autoEscape$1=['\''].concat(unwise$1),// Characters that are never ever allowed in a hostname. -// Note that any invalid chars are also handled, but these -// are the ones that are *expected* to be seen, so we fast-path -// them. -nonHostChars$1=['%','/','?',';','#'].concat(autoEscape$1),hostEndingChars$1=['/','?','#'],hostnameMaxLen$1=255,hostnamePartPattern$1=/^[+a-z0-9A-Z_-]{0,63}$/,hostnamePartStart$1=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,// protocols that can allow "unsafe" and "unwise" chars. -/* eslint-disable no-script-url */ // protocols that never have a hostname. -hostlessProtocol$1={'javascript':true,'javascript:':true},// protocols that always contain a // bit. -slashedProtocol$1={'http':true,'https':true,'ftp':true,'gopher':true,'file':true,'http:':true,'https:':true,'ftp:':true,'gopher:':true,'file:':true};/* eslint-enable no-script-url */function urlParse$1(url,slashesDenoteHost){if(url&&url instanceof Url$2){return url;}var u=new Url$2();u.parse(url,slashesDenoteHost);return u;}Url$2.prototype.parse=function(url,slashesDenoteHost){var i,l,lowerProto,hec,slashes,rest=url;// trim before proceeding. -// This is to support parse stuff like " http://foo.com \n" -rest=rest.trim();if(!slashesDenoteHost&&url.split('#').length===1){// Try fast path regexp -var simplePath=simplePathPattern$1.exec(rest);if(simplePath){this.pathname=simplePath[1];if(simplePath[2]){this.search=simplePath[2];}return this;}}var proto=protocolPattern$1.exec(rest);if(proto){proto=proto[0];lowerProto=proto.toLowerCase();this.protocol=proto;rest=rest.substr(proto.length);}// figure out if it's got a host -// user@server is *always* interpreted as a hostname, and url -// resolution will treat //foo/bar as host=foo,path=bar because that's -// how the browser resolves relative URLs. -if(slashesDenoteHost||proto||rest.match(/^\/\/[^@\/]+@[^@\/]+/)){slashes=rest.substr(0,2)==='//';if(slashes&&!(proto&&hostlessProtocol$1[proto])){rest=rest.substr(2);this.slashes=true;}}if(!hostlessProtocol$1[proto]&&(slashes||proto&&!slashedProtocol$1[proto])){// there's a hostname. -// the first instance of /, ?, ;, or # ends the host. -// -// If there is an @ in the hostname, then non-host chars *are* allowed -// to the left of the last @ sign, unless some host-ending character -// comes *before* the @-sign. -// URLs are obnoxious. -// -// ex: -// http://a@b@c/ => user:a@b host:c -// http://a@b?@c => user:a host:c path:/?@c -// v0.12 TODO(isaacs): This is not quite how Chrome does things. -// Review our test case against browsers more comprehensively. -// find the first instance of any hostEndingChars -var hostEnd=-1;for(i=0;i host:b auth:a path:/c@d -atSign=rest.lastIndexOf('@',hostEnd);}// Now we have a portion which is definitely the auth. -// Pull that off. -if(atSign!==-1){auth=rest.slice(0,atSign);rest=rest.slice(atSign+1);this.auth=auth;}// the host is the remaining to the left of the first non-host char -hostEnd=-1;for(i=0;i127){// we replace non-ASCII char with a temporary placeholder -// we need this to make sure size of hostname is not -// broken by replacing non-ASCII by nothing -newpart+='x';}else {newpart+=part[j];}}// we test again with ASCII char only -if(!newpart.match(hostnamePartPattern$1)){var validParts=hostparts.slice(0,i);var notHost=hostparts.slice(i+1);var bit=part.match(hostnamePartStart$1);if(bit){validParts.push(bit[1]);notHost.unshift(bit[2]);}if(notHost.length){rest=notHost.join('.')+rest;}this.hostname=validParts.join('.');break;}}}}if(this.hostname.length>hostnameMaxLen$1){this.hostname='';}// strip [ and ] from the hostname -// the host field still retains them, though -if(ipv6Hostname){this.hostname=this.hostname.substr(1,this.hostname.length-2);}}// chop off from the tail first. -var hash=rest.indexOf('#');if(hash!==-1){// got a fragment string. -this.hash=rest.substr(hash);rest=rest.slice(0,hash);}var qm=rest.indexOf('?');if(qm!==-1){this.search=rest.substr(qm);rest=rest.slice(0,qm);}if(rest){this.pathname=rest;}if(slashedProtocol$1[lowerProto]&&this.hostname&&!this.pathname){this.pathname='';}return this;};Url$2.prototype.parseHost=function(host){var port=portPattern$1.exec(host);if(port){port=port[0];if(port!==':'){this.port=port.substr(1);}host=host.substr(0,host.length-port.length);}if(host){this.hostname=host;}};var parse$9=urlParse$1;var encode$1=encode_1;var decode$1=decode_1;var format$4=format$5;var parse$8=parse$9;var mdurl={encode:encode$1,decode:decode$1,format:format$4,parse:parse$8};var regex$4=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;var regex$3=/[\0-\x1F\x7F-\x9F]/;var regex$2=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/;var regex$1=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;var Any=regex$4;var Cc=regex$3;var Cf=regex$2;var P=regex$5;var Z=regex$1;var uc_micro={Any:Any,Cc:Cc,Cf:Cf,P:P,Z:Z};var utils=createCommonjsModule(function(module,exports){function _class(obj){return Object.prototype.toString.call(obj);}function isString(obj){return _class(obj)==='[object String]';}var _hasOwnProperty=Object.prototype.hasOwnProperty;function has(object,key){return _hasOwnProperty.call(object,key);}// Merge objects -// -function assign(obj/*from1, from2, from3, ...*/){var sources=Array.prototype.slice.call(arguments,1);sources.forEach(function(source){if(!source){return;}if(typeof source!=='object'){throw new TypeError(source+'must be object');}Object.keys(source).forEach(function(key){obj[key]=source[key];});});return obj;}// Remove element from array and put another array at those position. -// Useful for some operations with tokens -function arrayReplaceAt(src,pos,newElements){return [].concat(src.slice(0,pos),newElements,src.slice(pos+1));}//////////////////////////////////////////////////////////////////////////////// -function isValidEntityCode(c){/*eslint no-bitwise:0*/ // broken sequence -if(c>=0xD800&&c<=0xDFFF){return false;}// never used -if(c>=0xFDD0&&c<=0xFDEF){return false;}if((c&0xFFFF)===0xFFFF||(c&0xFFFF)===0xFFFE){return false;}// control codes -if(c>=0x00&&c<=0x08){return false;}if(c===0x0B){return false;}if(c>=0x0E&&c<=0x1F){return false;}if(c>=0x7F&&c<=0x9F){return false;}// out of range -if(c>0x10FFFF){return false;}return true;}function fromCodePoint(c){/*eslint no-bitwise:0*/if(c>0xffff){c-=0x10000;var surrogate1=0xd800+(c>>10),surrogate2=0xdc00+(c&0x3ff);return String.fromCharCode(surrogate1,surrogate2);}return String.fromCharCode(c);}var UNESCAPE_MD_RE=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g;var ENTITY_RE=/&([a-z#][a-z0-9]{1,31});/gi;var UNESCAPE_ALL_RE=new RegExp(UNESCAPE_MD_RE.source+'|'+ENTITY_RE.source,'gi');var DIGITAL_ENTITY_TEST_RE=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;function replaceEntityPattern(match,name){var code=0;if(has(entities,name)){return entities[name];}if(name.charCodeAt(0)===0x23/* # */&&DIGITAL_ENTITY_TEST_RE.test(name)){code=name[1].toLowerCase()==='x'?parseInt(name.slice(2),16):parseInt(name.slice(1),10);if(isValidEntityCode(code)){return fromCodePoint(code);}}return match;}/*function replaceEntities(str) { - if (str.indexOf('&') < 0) { return str; } - - return str.replace(ENTITY_RE, replaceEntityPattern); - }*/function unescapeMd(str){if(str.indexOf('\\')<0){return str;}return str.replace(UNESCAPE_MD_RE,'$1');}function unescapeAll(str){if(str.indexOf('\\')<0&&str.indexOf('&')<0){return str;}return str.replace(UNESCAPE_ALL_RE,function(match,escaped,entity){if(escaped){return escaped;}return replaceEntityPattern(match,entity);});}//////////////////////////////////////////////////////////////////////////////// -var HTML_ESCAPE_TEST_RE=/[&<>"]/;var HTML_ESCAPE_REPLACE_RE=/[&<>"]/g;var HTML_REPLACEMENTS={'&':'&','<':'<','>':'>','"':'"'};function replaceUnsafeChar(ch){return HTML_REPLACEMENTS[ch];}function escapeHtml(str){if(HTML_ESCAPE_TEST_RE.test(str)){return str.replace(HTML_ESCAPE_REPLACE_RE,replaceUnsafeChar);}return str;}//////////////////////////////////////////////////////////////////////////////// -var REGEXP_ESCAPE_RE=/[.?*+^$[\]\\(){}|-]/g;function escapeRE(str){return str.replace(REGEXP_ESCAPE_RE,'\\$&');}//////////////////////////////////////////////////////////////////////////////// -function isSpace(code){switch(code){case 0x09:case 0x20:return true;}return false;}// Zs (unicode class) || [\t\f\v\r\n] -function isWhiteSpace(code){if(code>=0x2000&&code<=0x200A){return true;}switch(code){case 0x09:// \t -case 0x0A:// \n -case 0x0B:// \v -case 0x0C:// \f -case 0x0D:// \r -case 0x20:case 0xA0:case 0x1680:case 0x202F:case 0x205F:case 0x3000:return true;}return false;}//////////////////////////////////////////////////////////////////////////////// -/*eslint-disable max-len*/ // Currently without astral characters support. -function isPunctChar(ch){return regex$5.test(ch);}// Markdown ASCII punctuation characters. -// -// !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `, {, |, }, or ~ -// http://spec.commonmark.org/0.15/#ascii-punctuation-character -// -// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range. -// -function isMdAsciiPunct(ch){switch(ch){case 0x21/* ! */:case 0x22/* " */:case 0x23/* # */:case 0x24/* $ */:case 0x25/* % */:case 0x26/* & */:case 0x27/* ' */:case 0x28/* ( */:case 0x29/* ) */:case 0x2A/* * */:case 0x2B/* + */:case 0x2C/* , */:case 0x2D/* - */:case 0x2E/* . */:case 0x2F/* / */:case 0x3A/* : */:case 0x3B/* ; */:case 0x3C/* < */:case 0x3D/* = */:case 0x3E/* > */:case 0x3F/* ? */:case 0x40/* @ */:case 0x5B/* [ */:case 0x5C/* \ */:case 0x5D/* ] */:case 0x5E/* ^ */:case 0x5F/* _ */:case 0x60/* ` */:case 0x7B/* { */:case 0x7C/* | */:case 0x7D/* } */:case 0x7E/* ~ */:return true;default:return false;}}// Hepler to unify [reference labels]. -// -function normalizeReference(str){// Trim and collapse whitespace -// -str=str.trim().replace(/\s+/g,' ');// In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug -// fixed in v12 (couldn't find any details). -// -// So treat this one as a special case -// (remove this when node v10 is no longer supported). -// -if('ẞ'.toLowerCase()==='Ṿ'){str=str.replace(/ẞ/g,'ß');}// .toLowerCase().toUpperCase() should get rid of all differences -// between letter variants. -// -// Simple .toLowerCase() doesn't normalize 125 code points correctly, -// and .toUpperCase doesn't normalize 6 of them (list of exceptions: -// İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently -// uppercased versions). -// -// Here's an example showing how it happens. Lets take greek letter omega: -// uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ) -// -// Unicode entries: -// 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8; -// 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398 -// 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398 -// 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8; -// -// Case-insensitive comparison should treat all of them as equivalent. -// -// But .toLowerCase() doesn't change ϑ (it's already lowercase), -// and .toUpperCase() doesn't change ϴ (already uppercase). -// -// Applying first lower then upper case normalizes any character: -// '\u0398\u03f4\u03b8\u03d1'.toLowerCase().toUpperCase() === '\u0398\u0398\u0398\u0398' -// -// Note: this is equivalent to unicode case folding; unicode normalization -// is a different step that is not required here. -// -// Final result should be uppercased, because it's later stored in an object -// (this avoid a conflict with Object.prototype members, -// most notably, `__proto__`) -// -return str.toLowerCase().toUpperCase();}//////////////////////////////////////////////////////////////////////////////// -// Re-export libraries commonly used in both markdown-it and its plugins, -// so plugins won't have to depend on them explicitly, which reduces their -// bundled size (e.g. a browser build). -// -exports.lib={};exports.lib.mdurl=mdurl;exports.lib.ucmicro=uc_micro;exports.assign=assign;exports.isString=isString;exports.has=has;exports.unescapeMd=unescapeMd;exports.unescapeAll=unescapeAll;exports.isValidEntityCode=isValidEntityCode;exports.fromCodePoint=fromCodePoint;// exports.replaceEntities = replaceEntities; -exports.escapeHtml=escapeHtml;exports.arrayReplaceAt=arrayReplaceAt;exports.isSpace=isSpace;exports.isWhiteSpace=isWhiteSpace;exports.isMdAsciiPunct=isMdAsciiPunct;exports.isPunctChar=isPunctChar;exports.escapeRE=escapeRE;exports.normalizeReference=normalizeReference;});// Parse link label -var parse_link_label=function parseLinkLabel(state,start,disableNested){var level,found,marker,prevPos,labelEnd=-1,max=state.posMax,oldPos=state.pos;state.pos=start+1;level=1;while(state.pos */){result.pos=pos+1;result.str=unescapeAll$2(str.slice(start+1,pos));result.ok=true;return result;}if(code===0x5C/* \ */&&pos+1' -return result;}// this should be ... } else { ... branch -level=0;while(pos=max){return result;}marker=str.charCodeAt(pos);if(marker!==0x22/* " */&&marker!==0x27/* ' */&&marker!==0x28/* ( */){return result;}pos++;// if opening marker is "(", switch it to closing marker ")" -if(marker===0x28){marker=0x29;}while(pos'+escapeHtml(tokens[idx].content)+'';};default_rules.code_block=function(tokens,idx,options,env,slf){var token=tokens[idx];return ''+escapeHtml(tokens[idx].content)+'\n';};default_rules.fence=function(tokens,idx,options,env,slf){var token=tokens[idx],info=token.info?unescapeAll(token.info).trim():'',langName='',highlighted,i,tmpAttrs,tmpToken;if(info){langName=info.split(/\s+/g)[0];}if(options.highlight){highlighted=options.highlight(token.content,langName)||escapeHtml(token.content);}else {highlighted=escapeHtml(token.content);}if(highlighted.indexOf(''+highlighted+'\n';}return '
'+highlighted+'
\n';};default_rules.image=function(tokens,idx,options,env,slf){var token=tokens[idx];// "alt" attr MUST be set, even if empty. Because it's mandatory and -// should be placed on proper position for tests. -// -// Replace content with actual value -token.attrs[token.attrIndex('alt')][1]=slf.renderInlineAsText(token.children,options,env);return slf.renderToken(tokens,idx,options);};default_rules.hardbreak=function(tokens,idx,options/*, env */){return options.xhtmlOut?'
\n':'
\n';};default_rules.softbreak=function(tokens,idx,options/*, env */){return options.breaks?options.xhtmlOut?'
\n':'
\n':'\n';};default_rules.text=function(tokens,idx/*, options, env */){return escapeHtml(tokens[idx].content);};default_rules.html_block=function(tokens,idx/*, options, env */){return tokens[idx].content;};default_rules.html_inline=function(tokens,idx/*, options, env */){return tokens[idx].content;};/** - * new Renderer() - * - * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults. - **/function Renderer(){/** - * Renderer#rules -> Object - * - * Contains render rules for tokens. Can be updated and extended. - * - * ##### Example - * - * ```javascript - * var md = require('markdown-it')(); - * - * md.renderer.rules.strong_open = function () { return ''; }; - * md.renderer.rules.strong_close = function () { return ''; }; - * - * var result = md.renderInline(...); - * ``` - * - * Each rule is called as independent static function with fixed signature: - * - * ```javascript - * function my_token_render(tokens, idx, options, env, renderer) { - * // ... - * return renderedHTML; - * } - * ``` - * - * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js) - * for more details and examples. - **/this.rules=assign$1({},default_rules);}/** - * Renderer.renderAttrs(token) -> String - * - * Render token attributes to string. - **/Renderer.prototype.renderAttrs=function renderAttrs(token){var i,l,result;if(!token.attrs){return '';}result='';for(i=0,l=token.attrs.length;i String - * - tokens (Array): list of tokens - * - idx (Numbed): token index to render - * - options (Object): params of parser instance - * - * Default token renderer. Can be overriden by custom function - * in [[Renderer#rules]]. - **/Renderer.prototype.renderToken=function renderToken(tokens,idx,options){var nextToken,result='',needLf=false,token=tokens[idx];// Tight list paragraphs -if(token.hidden){return '';}// Insert a newline between hidden paragraph and subsequent opening -// block-level tag. -// -// For example, here we should insert a newline before blockquote: -// - a -// > -// -if(token.block&&token.nesting!==-1&&idx&&tokens[idx-1].hidden){result+='\n';}// Add token name, e.g. ``. -// -needLf=false;}}}}result+=needLf?'>\n':'>';return result;};/** - * Renderer.renderInline(tokens, options, env) -> String - * - tokens (Array): list on block tokens to renter - * - options (Object): params of parser instance - * - env (Object): additional data from parsed input (references, for example) - * - * The same as [[Renderer.render]], but for single token of `inline` type. - **/Renderer.prototype.renderInline=function(tokens,options,env){var type,result='',rules=this.rules;for(var i=0,len=tokens.length;i String - * - tokens (Array): list on block tokens to renter - * - options (Object): params of parser instance - * - env (Object): additional data from parsed input (references, for example) - * - * Special kludge for image `alt` attributes to conform CommonMark spec. - * Don't try to use it! Spec requires to show `alt` content with stripped markup, - * instead of simple escaping. - **/Renderer.prototype.renderInlineAsText=function(tokens,options,env){var result='';for(var i=0,len=tokens.length;i String - * - tokens (Array): list on block tokens to renter - * - options (Object): params of parser instance - * - env (Object): additional data from parsed input (references, for example) - * - * Takes token stream and generates HTML. Probably, you will never need to call - * this method directly. - **/Renderer.prototype.render=function(tokens,options,env){var i,len,type,result='',rules=this.rules;for(i=0,len=tokens.length;i Array - * - list (String|Array): list of rule names to enable. - * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found. - * - * Enable rules with given names. If any rule name not found - throw Error. - * Errors can be disabled by second param. - * - * Returns list of found rule names (if no exception happened). - * - * See also [[Ruler.disable]], [[Ruler.enableOnly]]. - **/Ruler.prototype.enable=function(list,ignoreInvalid){if(!Array.isArray(list)){list=[list];}var result=[];// Search by name and enable -list.forEach(function(name){var idx=this.__find__(name);if(idx<0){if(ignoreInvalid){return;}throw new Error('Rules manager: invalid rule name '+name);}this.__rules__[idx].enabled=true;result.push(name);},this);this.__cache__=null;return result;};/** - * Ruler.enableOnly(list [, ignoreInvalid]) - * - list (String|Array): list of rule names to enable (whitelist). - * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found. - * - * Enable rules with given names, and disable everything else. If any rule name - * not found - throw Error. Errors can be disabled by second param. - * - * See also [[Ruler.disable]], [[Ruler.enable]]. - **/Ruler.prototype.enableOnly=function(list,ignoreInvalid){if(!Array.isArray(list)){list=[list];}this.__rules__.forEach(function(rule){rule.enabled=false;});this.enable(list,ignoreInvalid);};/** - * Ruler.disable(list [, ignoreInvalid]) -> Array - * - list (String|Array): list of rule names to disable. - * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found. - * - * Disable rules with given names. If any rule name not found - throw Error. - * Errors can be disabled by second param. - * - * Returns list of found rule names (if no exception happened). - * - * See also [[Ruler.enable]], [[Ruler.enableOnly]]. - **/Ruler.prototype.disable=function(list,ignoreInvalid){if(!Array.isArray(list)){list=[list];}var result=[];// Search by name and disable -list.forEach(function(name){var idx=this.__find__(name);if(idx<0){if(ignoreInvalid){return;}throw new Error('Rules manager: invalid rule name '+name);}this.__rules__[idx].enabled=false;result.push(name);},this);this.__cache__=null;return result;};/** - * Ruler.getRules(chainName) -> Array - * - * Return array of active functions (rules) for given chain name. It analyzes - * rules configuration, compiles caches if not exists and returns result. - * - * Default chain name is `''` (empty string). It can't be skipped. That's - * done intentionally, to keep signature monomorphic for high speed. - **/Ruler.prototype.getRules=function(chainName){if(this.__cache__===null){this.__compile__();}// Chain can be empty, if rules disabled. But we still have to return Array. -return this.__cache__[chainName]||[];};var ruler=Ruler;// Normalize input string -// https://spec.commonmark.org/0.29/#line-ending -var NEWLINES_RE=/\r\n?|\n/g;var NULL_RE=/\0/g;var normalize$1=function normalize(state){var str;// Normalize newlines -str=state.src.replace(NEWLINES_RE,'\n');// Replace NULL characters -str=str.replace(NULL_RE,'\uFFFD');state.src=str;};var block=function block(state){var token;if(state.inlineMode){token=new state.Token('inline','',0);token.content=state.src;token.map=[0,1];token.children=[];state.tokens.push(token);}else {state.md.block.parse(state.src,state.md,state.env,state.tokens);}};var inline=function inline(state){var tokens=state.tokens,tok,i,l;// Parse inlines -for(i=0,l=tokens.length;i\s]/i.test(str);}function isLinkClose(str){return /^<\/a\s*>/i.test(str);}var linkify=function linkify(state){var i,j,l,tokens,token,currentToken,nodes,ln,text,pos,lastPos,level,htmlLinkLevel,url,fullUrl,urlText,blockTokens=state.tokens,links;if(!state.md.options.linkify){return;}for(j=0,l=blockTokens.length;j=0;i--){currentToken=tokens[i];// Skip content of markdown links -if(currentToken.type==='link_close'){i--;while(tokens[i].level!==currentToken.level&&tokens[i].type!=='link_open'){i--;}continue;}// Skip content of html tag links -if(currentToken.type==='html_inline'){if(isLinkOpen(currentToken.content)&&htmlLinkLevel>0){htmlLinkLevel--;}if(isLinkClose(currentToken.content)){htmlLinkLevel++;}}if(htmlLinkLevel>0){continue;}if(currentToken.type==='text'&&state.md.linkify.test(currentToken.content)){text=currentToken.content;links=state.md.linkify.match(text);// Now split string to nodes -nodes=[];level=currentToken.level;lastPos=0;for(ln=0;lnlastPos){token=new state.Token('text','',0);token.content=text.slice(lastPos,pos);token.level=level;nodes.push(token);}token=new state.Token('link_open','a',1);token.attrs=[['href',fullUrl]];token.level=level++;token.markup='linkify';token.info='auto';nodes.push(token);token=new state.Token('text','',0);token.content=urlText;token.level=level;nodes.push(token);token=new state.Token('link_close','a',-1);token.level=--level;token.markup='linkify';token.info='auto';nodes.push(token);lastPos=links[ln].lastIndex;}if(lastPos ½, ¼, ¾ -// - miltiplication 2 x 4 -> 2 × 4 -var RARE_RE=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/;// Workaround for phantomjs - need regex without /g flag, -// or root check will fail every second time -var SCOPED_ABBR_TEST_RE=/\((c|tm|r|p)\)/i;var SCOPED_ABBR_RE=/\((c|tm|r|p)\)/ig;var SCOPED_ABBR={c:'©',r:'®',p:'§',tm:'™'};function replaceFn(match,name){return SCOPED_ABBR[name.toLowerCase()];}function replace_scoped(inlineTokens){var i,token,inside_autolink=0;for(i=inlineTokens.length-1;i>=0;i--){token=inlineTokens[i];if(token.type==='text'&&!inside_autolink){token.content=token.content.replace(SCOPED_ABBR_RE,replaceFn);}if(token.type==='link_open'&&token.info==='auto'){inside_autolink--;}if(token.type==='link_close'&&token.info==='auto'){inside_autolink++;}}}function replace_rare(inlineTokens){var i,token,inside_autolink=0;for(i=inlineTokens.length-1;i>=0;i--){token=inlineTokens[i];if(token.type==='text'&&!inside_autolink){if(RARE_RE.test(token.content)){token.content=token.content.replace(/\+-/g,'±')// .., ..., ....... -> … -// but ?..... & !..... -> ?.. & !.. -.replace(/\.{2,}/g,'…').replace(/([?!])…/g,'$1..').replace(/([?!]){4,}/g,'$1$1$1').replace(/,{2,}/g,',')// em-dash -.replace(/(^|[^-])---(?=[^-]|$)/mg,'$1\u2014')// en-dash -.replace(/(^|\s)--(?=\s|$)/mg,'$1\u2013').replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,'$1\u2013');}}if(token.type==='link_open'&&token.info==='auto'){inside_autolink--;}if(token.type==='link_close'&&token.info==='auto'){inside_autolink++;}}}var replacements=function replace(state){var blkIdx;if(!state.md.options.typographer){return;}for(blkIdx=state.tokens.length-1;blkIdx>=0;blkIdx--){if(state.tokens[blkIdx].type!=='inline'){continue;}if(SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)){replace_scoped(state.tokens[blkIdx].children);}if(RARE_RE.test(state.tokens[blkIdx].content)){replace_rare(state.tokens[blkIdx].children);}}};var isWhiteSpace$1=utils.isWhiteSpace;var isPunctChar$1=utils.isPunctChar;var isMdAsciiPunct$1=utils.isMdAsciiPunct;var QUOTE_TEST_RE=/['"]/;var QUOTE_RE=/['"]/g;var APOSTROPHE='\u2019';/* ’ */function replaceAt(str,index,ch){return str.substr(0,index)+ch+str.substr(index+1);}function process_inlines(tokens,state){var i,token,text,t,pos,max,thisLevel,item,lastChar,nextChar,isLastPunctChar,isNextPunctChar,isLastWhiteSpace,isNextWhiteSpace,canOpen,canClose,j,isSingle,stack,openQuote,closeQuote;stack=[];for(i=0;i=0;j--){if(stack[j].level<=thisLevel){break;}}stack.length=j+1;if(token.type!=='text'){continue;}text=token.content;pos=0;max=text.length;/*eslint no-labels:0,block-scoped-var:0*/OUTER:while(pos=0){lastChar=text.charCodeAt(t.index-1);}else {for(j=i-1;j>=0;j--){if(tokens[j].type==='softbreak'||tokens[j].type==='hardbreak')break;// lastChar defaults to 0x20 -if(!tokens[j].content)continue;// should skip all tokens except 'text', 'html_inline' or 'code_inline' -lastChar=tokens[j].content.charCodeAt(tokens[j].content.length-1);break;}}// Find next character, -// default to space if it's the end of the line -// -nextChar=0x20;if(pos=0x30/* 0 */&&lastChar<=0x39/* 9 */){// special case: 1"" - count first quote as an inch -canClose=canOpen=false;}}if(canOpen&&canClose){// Replace quotes in the middle of punctuation sequence, but not -// in the middle of the words, i.e.: -// -// 1. foo " bar " baz - not replaced -// 2. foo-"-bar-"-baz - replaced -// 3. foo"bar"baz - not replaced -// -canOpen=isLastPunctChar;canClose=isNextPunctChar;}if(!canOpen&&!canClose){// middle of word -if(isSingle){token.content=replaceAt(token.content,t.index,APOSTROPHE);}continue;}if(canClose){// this could be a closing quote, rewind the stack to get a match -for(j=stack.length-1;j>=0;j--){item=stack[j];if(stack[j].level=0;blkIdx--){if(state.tokens[blkIdx].type!=='inline'||!QUOTE_TEST_RE.test(state.tokens[blkIdx].content)){continue;}process_inlines(state.tokens[blkIdx].children,state);}};// Token class -/** - * class Token - **/ /** - * new Token(type, tag, nesting) - * - * Create new token and fill passed properties. - **/function Token(type,tag,nesting){/** - * Token#type -> String - * - * Type of the token (string, e.g. "paragraph_open") - **/this.type=type;/** - * Token#tag -> String - * - * html tag name, e.g. "p" - **/this.tag=tag;/** - * Token#attrs -> Array - * - * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]` - **/this.attrs=null;/** - * Token#map -> Array - * - * Source map info. Format: `[ line_begin, line_end ]` - **/this.map=null;/** - * Token#nesting -> Number - * - * Level change (number in {-1, 0, 1} set), where: - * - * - `1` means the tag is opening - * - `0` means the tag is self-closing - * - `-1` means the tag is closing - **/this.nesting=nesting;/** - * Token#level -> Number - * - * nesting level, the same as `state.level` - **/this.level=0;/** - * Token#children -> Array - * - * An array of child nodes (inline and img tokens) - **/this.children=null;/** - * Token#content -> String - * - * In a case of self-closing tag (code, html, fence, etc.), - * it has contents of this tag. - **/this.content='';/** - * Token#markup -> String - * - * '*' or '_' for emphasis, fence string for fence, etc. - **/this.markup='';/** - * Token#info -> String - * - * fence infostring - **/this.info='';/** - * Token#meta -> Object - * - * A place for plugins to store an arbitrary data - **/this.meta=null;/** - * Token#block -> Boolean - * - * True for block-level tokens, false for inline tokens. - * Used in renderer to calculate line breaks - **/this.block=false;/** - * Token#hidden -> Boolean - * - * If it's true, ignore this element when rendering. Used for tight lists - * to hide paragraphs. - **/this.hidden=false;}/** - * Token.attrIndex(name) -> Number - * - * Search attribute index by name. - **/Token.prototype.attrIndex=function attrIndex(name){var attrs,i,len;if(!this.attrs){return -1;}attrs=this.attrs;for(i=0,len=attrs.length;i=0){value=this.attrs[idx][1];}return value;};/** - * Token.attrJoin(name, value) - * - * Join value to existing attribute via space. Or create new attribute if not - * exists. Useful to operate with token classes. - **/Token.prototype.attrJoin=function attrJoin(name,value){var idx=this.attrIndex(name);if(idx<0){this.attrPush([name,value]);}else {this.attrs[idx][1]=this.attrs[idx][1]+' '+value;}};var token=Token;function StateCore(src,md,env){this.src=src;this.env=env;this.tokens=[];this.inlineMode=false;this.md=md;// link to parser instance -}// re-export Token class to use in core rules -StateCore.prototype.Token=token;var state_core=StateCore;/** internal - * class Core - * - * Top-level rules executor. Glues block/inline parsers and does intermediate - * transformations. - **/var _rules$2=[['normalize',normalize$1],['block',block],['inline',inline],['linkify',linkify],['replacements',replacements],['smartquotes',smartquotes]];/** - * new Core() - **/function Core(){/** - * Core#ruler -> Ruler - * - * [[Ruler]] instance. Keep configuration of core rules. - **/this.ruler=new ruler();for(var i=0;i<_rules$2.length;i++){this.ruler.push(_rules$2[i][0],_rules$2[i][1]);}}/** - * Core.process(state) - * - * Executes core chain rules. - **/Core.prototype.process=function(state){var i,l,rules;rules=this.ruler.getRules('');for(i=0,l=rules.length;iendLine){return false;}nextLine=startLine+1;if(state.sCount[nextLine]=4){return false;}// first character of the second line should be '|', '-', ':', -// and no other characters are allowed but spaces; -// basically, this is the equivalent of /^[-:|][-:|\s]*$/ regexp -pos=state.bMarks[nextLine]+state.tShift[nextLine];if(pos>=state.eMarks[nextLine]){return false;}ch=state.src.charCodeAt(pos++);if(ch!==0x7C/* | */&&ch!==0x2D/* - */&&ch!==0x3A/* : */){return false;}while(pos=4){return false;}columns=escapedSplit(lineText.replace(/^\||\|$/g,''));// header row will define an amount of columns in the entire table, -// and align row shouldn't be smaller than that (the rest of the rows can) -columnCount=columns.length;if(columnCount>aligns.length){return false;}if(silent){return true;}token=state.push('table_open','table',1);token.map=tableLines=[startLine,0];token=state.push('thead_open','thead',1);token.map=[startLine,startLine+1];token=state.push('tr_open','tr',1);token.map=[startLine,startLine+1];for(i=0;i=4){break;}columns=escapedSplit(lineText.replace(/^\||\|$/g,''));token=state.push('tr_open','tr',1);for(i=0;i=4){nextLine++;last=nextLine;continue;}break;}state.line=last;token=state.push('code_block','code',0);token.content=state.getLines(startLine,last,4+state.blkIndent,true);token.map=[startLine,state.line];return true;};// fences (``` lang, ~~~ lang) -var fence=function fence(state,startLine,endLine,silent){var marker,len,params,nextLine,mem,token,markup,haveEndMarker=false,pos=state.bMarks[startLine]+state.tShift[startLine],max=state.eMarks[startLine];// if it's indented more than 3 spaces, it should be a code block -if(state.sCount[startLine]-state.blkIndent>=4){return false;}if(pos+3>max){return false;}marker=state.src.charCodeAt(pos);if(marker!==0x7E/* ~ */&&marker!==0x60/* ` */){return false;}// scan marker length -mem=pos;pos=state.skipChars(pos,marker);len=pos-mem;if(len<3){return false;}markup=state.src.slice(mem,pos);params=state.src.slice(pos,max);if(marker===0x60/* ` */){if(params.indexOf(String.fromCharCode(marker))>=0){return false;}}// Since start is found, we can report success here in validation mode -if(silent){return true;}// search end of block -nextLine=startLine;for(;;){nextLine++;if(nextLine>=endLine){// unclosed block should be autoclosed by end of document. -// also block seems to be autoclosed by end of parent -break;}pos=mem=state.bMarks[nextLine]+state.tShift[nextLine];max=state.eMarks[nextLine];if(pos=4){// closing fence should be indented less than 4 spaces -continue;}pos=state.skipChars(pos,marker);// closing code fence must be at least as long as the opening one -if(pos-mem=4){return false;}// check the block quote marker -if(state.src.charCodeAt(pos++)!==0x3E/* > */){return false;}// we know that it's going to be a valid blockquote, -// so no point trying to find the end of it in silent mode -if(silent){return true;}// set offset past spaces and ">" -initial=offset=state.sCount[startLine]+1;// skip one optional space after '>' -if(state.src.charCodeAt(pos)===0x20/* space */){// ' > test ' -// ^ -- position start of line here: -pos++;initial++;offset++;adjustTab=false;spaceAfterMarker=true;}else if(state.src.charCodeAt(pos)===0x09/* tab */){spaceAfterMarker=true;if((state.bsCount[startLine]+offset)%4===3){// ' >\t test ' -// ^ -- position start of line here (tab has width===1) -pos++;initial++;offset++;adjustTab=false;}else {// ' >\t test ' -// ^ -- position start of line here + shift bsCount slightly -// to make extra space appear -adjustTab=true;}}else {spaceAfterMarker=false;}oldBMarks=[state.bMarks[startLine]];state.bMarks[startLine]=pos;while(pos=max;oldSCount=[state.sCount[startLine]];state.sCount[startLine]=offset-initial;oldTShift=[state.tShift[startLine]];state.tShift[startLine]=pos-state.bMarks[startLine];terminatorRules=state.md.block.ruler.getRules('blockquote');oldParentType=state.parentType;state.parentType='blockquote';// Search the end of the block -// -// Block ends with either: -// 1. an empty line outside: -// ``` -// > test -// -// ``` -// 2. an empty line inside: -// ``` -// > -// test -// ``` -// 3. another tag: -// ``` -// > test -// - - - -// ``` -for(nextLine=startLine+1;nextLine current blockquote -// 2. checking this line -// ``` -isOutdented=state.sCount[nextLine]=max){// Case 1: line is not inside the blockquote, and this line is empty. -break;}if(state.src.charCodeAt(pos++)===0x3E/* > */&&!isOutdented){// This line is inside the blockquote. -// set offset past spaces and ">" -initial=offset=state.sCount[nextLine]+1;// skip one optional space after '>' -if(state.src.charCodeAt(pos)===0x20/* space */){// ' > test ' -// ^ -- position start of line here: -pos++;initial++;offset++;adjustTab=false;spaceAfterMarker=true;}else if(state.src.charCodeAt(pos)===0x09/* tab */){spaceAfterMarker=true;if((state.bsCount[nextLine]+offset)%4===3){// ' >\t test ' -// ^ -- position start of line here (tab has width===1) -pos++;initial++;offset++;adjustTab=false;}else {// ' >\t test ' -// ^ -- position start of line here + shift bsCount slightly -// to make extra space appear -adjustTab=true;}}else {spaceAfterMarker=false;}oldBMarks.push(state.bMarks[nextLine]);state.bMarks[nextLine]=pos;while(pos=max;oldBSCount.push(state.bsCount[nextLine]);state.bsCount[nextLine]=state.sCount[nextLine]+1+(spaceAfterMarker?1:0);oldSCount.push(state.sCount[nextLine]);state.sCount[nextLine]=offset-initial;oldTShift.push(state.tShift[nextLine]);state.tShift[nextLine]=pos-state.bMarks[nextLine];continue;}// Case 2: line is not inside the blockquote, and the last line was empty. -if(lastLineEmpty){break;}// Case 3: another tag found. -terminate=false;for(i=0,l=terminatorRules.length;i';token.map=lines=[startLine,0];state.md.block.tokenize(state,startLine,nextLine);token=state.push('blockquote_close','blockquote',-1);token.markup='>';state.lineMax=oldLineMax;state.parentType=oldParentType;lines[1]=state.line;// Restore original tShift; this might not be necessary since the parser -// has already been here, but just to make sure we can do that. -for(i=0;i=4){return false;}marker=state.src.charCodeAt(pos++);// Check hr marker -if(marker!==0x2A/* * */&&marker!==0x2D/* - */&&marker!==0x5F/* _ */){return false;}// markers can be mixed with spaces, but there should be at least 3 of them -cnt=1;while(pos=max){return -1;}ch=state.src.charCodeAt(pos++);if(ch<0x30/* 0 */||ch>0x39/* 9 */){return -1;}for(;;){// EOL -> fail -if(pos>=max){return -1;}ch=state.src.charCodeAt(pos++);if(ch>=0x30/* 0 */&&ch<=0x39/* 9 */){// List marker should have no more than 9 digits -// (prevents integer overflow in browsers) -if(pos-start>=10){return -1;}continue;}// found valid marker -if(ch===0x29/* ) */||ch===0x2e/* . */){break;}return -1;}if(pos=4){return false;}// Special case: -// - item 1 -// - item 2 -// - item 3 -// - item 4 -// - this one is a paragraph continuation -if(state.listIndent>=0&&state.sCount[startLine]-state.listIndent>=4&&state.sCount[startLine]=state.blkIndent){isTerminatingParagraph=true;}}// Detect list type and position after marker -if((posAfterMarker=skipOrderedListMarker(state,startLine))>=0){isOrdered=true;start=state.bMarks[startLine]+state.tShift[startLine];markerValue=Number(state.src.substr(start,posAfterMarker-start-1));// If we're starting a new ordered list right after -// a paragraph, it should start with 1. -if(isTerminatingParagraph&&markerValue!==1)return false;}else if((posAfterMarker=skipBulletListMarker(state,startLine))>=0){isOrdered=false;}else {return false;}// If we're starting a new unordered list right after -// a paragraph, first line should not be empty. -if(isTerminatingParagraph){if(state.skipSpaces(posAfterMarker)>=state.eMarks[startLine])return false;}// We should terminate list on style change. Remember first one to compare. -markerCharCode=state.src.charCodeAt(posAfterMarker-1);// For validation mode we can terminate immediately -if(silent){return true;}// Start list -listTokIdx=state.tokens.length;if(isOrdered){token=state.push('ordered_list_open','ol',1);if(markerValue!==1){token.attrs=[['start',markerValue]];}}else {token=state.push('bullet_list_open','ul',1);}token.map=listLines=[startLine,0];token.markup=String.fromCharCode(markerCharCode);// -// Iterate list items -// -nextLine=startLine;prevEmptyEnd=false;terminatorRules=state.md.block.ruler.getRules('list');oldParentType=state.parentType;state.parentType='list';while(nextLine=max){// trimming space in "- \n 3" case, indent is 1 here -indentAfterMarker=1;}else {indentAfterMarker=offset-initial;}// If we have more than 4 spaces, the indent is 1 -// (the rest is just indented code block) -if(indentAfterMarker>4){indentAfterMarker=1;}// " - test" -// ^^^^^ - calculating total length of this thing -indent=initial+indentAfterMarker;// Run subparser & write tokens -token=state.push('list_item_open','li',1);token.markup=String.fromCharCode(markerCharCode);token.map=itemLines=[startLine,0];// change current state, then restore it after parser subcall -oldTight=state.tight;oldTShift=state.tShift[startLine];oldSCount=state.sCount[startLine];// - example list -// ^ listIndent position will be here -// ^ blkIndent position will be here -// -oldListIndent=state.listIndent;state.listIndent=state.blkIndent;state.blkIndent=indent;state.tight=true;state.tShift[startLine]=contentStart-state.bMarks[startLine];state.sCount[startLine]=offset;if(contentStart>=max&&state.isEmpty(startLine+1)){// workaround for this case -// (list item is empty, list terminates before "foo"): -// ~~~~~~~~ -// - -// -// foo -// ~~~~~~~~ -state.line=Math.min(state.line+2,endLine);}else {state.md.block.tokenize(state,startLine,endLine,true);}// If any of list item is tight, mark list as tight -if(!state.tight||prevEmptyEnd){tight=false;}// Item become loose if finish with empty line, -// but we should filter last element, because it means list finish -prevEmptyEnd=state.line-startLine>1&&state.isEmpty(state.line-1);state.blkIndent=state.listIndent;state.listIndent=oldListIndent;state.tShift[startLine]=oldTShift;state.sCount[startLine]=oldSCount;state.tight=oldTight;token=state.push('list_item_close','li',-1);token.markup=String.fromCharCode(markerCharCode);nextLine=startLine=state.line;itemLines[1]=nextLine;contentStart=state.bMarks[startLine];if(nextLine>=endLine){break;}// -// Try to check if list is terminated or continued. -// -if(state.sCount[nextLine]=4){break;}// fail if terminating block found -terminate=false;for(i=0,l=terminatorRules.length;i=4){return false;}if(state.src.charCodeAt(pos)!==0x5B/* [ */){return false;}// Simple check to quickly interrupt scan on [link](url) at the start of line. -// Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54 -while(++pos3){continue;}// quirk for blockquotes, this line should already be checked by that rule -if(state.sCount[nextLine]<0){continue;}// Some tags can terminate paragraph without empty line. -terminate=false;for(i=0,l=terminatorRules.length;i=4){return false;}ch=state.src.charCodeAt(pos);if(ch!==0x23/* # */||pos>=max){return false;}// count heading level -level=1;ch=state.src.charCodeAt(++pos);while(ch===0x23/* # */&&pos6||pospos&&isSpace$5(state.src.charCodeAt(tmp-1))){max=tmp;}state.line=startLine+1;token=state.push('heading_open','h'+String(level),1);token.markup='########'.slice(0,level);token.map=[startLine,state.line];token=state.push('inline','',0);token.content=state.src.slice(pos,max).trim();token.map=[startLine,state.line];token.children=[];token=state.push('heading_close','h'+String(level),-1);token.markup='########'.slice(0,level);return true;};// lheading (---, ===) -var lheading=function lheading(state,startLine,endLine/*, silent*/){var content,terminate,i,l,token,pos,max,level,marker,nextLine=startLine+1,oldParentType,terminatorRules=state.md.block.ruler.getRules('paragraph');// if it's indented more than 3 spaces, it should be a code block -if(state.sCount[startLine]-state.blkIndent>=4){return false;}oldParentType=state.parentType;state.parentType='paragraph';// use paragraph to match terminatorRules -// jump line-by-line until empty one or EOF -for(;nextLine3){continue;}// -// Check for underline in setext header -// -if(state.sCount[nextLine]>=state.blkIndent){pos=state.bMarks[nextLine]+state.tShift[nextLine];max=state.eMarks[nextLine];if(pos=max){level=marker===0x3D/* = */?1:2;break;}}}}// quirk for blockquotes, this line should already be checked by that rule -if(state.sCount[nextLine]<0){continue;}// Some tags can terminate paragraph without empty line. -terminate=false;for(i=0,l=terminatorRules.length;i`\\x00-\\x20]+';var single_quoted="'[^']*'";var double_quoted='"[^"]*"';var attr_value='(?:'+unquoted+'|'+single_quoted+'|'+double_quoted+')';var attribute='(?:\\s+'+attr_name+'(?:\\s*=\\s*'+attr_value+')?)';var open_tag='<[A-Za-z][A-Za-z0-9\\-]*'+attribute+'*\\s*\\/?>';var close_tag='<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>';var comment$1='|';var processing='<[?].*?[?]>';var declaration=']*>';var cdata='';var HTML_TAG_RE$1=new RegExp('^(?:'+open_tag+'|'+close_tag+'|'+comment$1+'|'+processing+'|'+declaration+'|'+cdata+')');var HTML_OPEN_CLOSE_TAG_RE$1=new RegExp('^(?:'+open_tag+'|'+close_tag+')');var HTML_TAG_RE_1=HTML_TAG_RE$1;var HTML_OPEN_CLOSE_TAG_RE_1=HTML_OPEN_CLOSE_TAG_RE$1;var html_re={HTML_TAG_RE:HTML_TAG_RE_1,HTML_OPEN_CLOSE_TAG_RE:HTML_OPEN_CLOSE_TAG_RE_1};var HTML_OPEN_CLOSE_TAG_RE=html_re.HTML_OPEN_CLOSE_TAG_RE;// An array of opening and corresponding closing sequences for html tags, -// last argument defines whether it can terminate a paragraph or not -// -var HTML_SEQUENCES=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,true],[/^/,true],[/^<\?/,/\?>/,true],[/^/,true],[/^/,true],[new RegExp('^|$))','i'),/^$/,true],[new RegExp(HTML_OPEN_CLOSE_TAG_RE.source+'\\s*$'),/^$/,false]];var html_block=function html_block(state,startLine,endLine,silent){var i,nextLine,token,lineText,pos=state.bMarks[startLine]+state.tShift[startLine],max=state.eMarks[startLine];// if it's indented more than 3 spaces, it should be a code block -if(state.sCount[startLine]-state.blkIndent>=4){return false;}if(!state.md.options.html){return false;}if(state.src.charCodeAt(pos)!==0x3C/* < */){return false;}lineText=state.src.slice(pos,max);for(i=0;i3){continue;}// quirk for blockquotes, this line should already be checked by that rule -if(state.sCount[nextLine]<0){continue;}// Some tags can terminate paragraph without empty line. -terminate=false;for(i=0,l=terminatorRules.length;i0)this.level++;// opening tag -this.tokens.push(token$1);return token$1;};StateBlock.prototype.isEmpty=function isEmpty(line){return this.bMarks[line]+this.tShift[line]>=this.eMarks[line];};StateBlock.prototype.skipEmptyLines=function skipEmptyLines(from){for(var max=this.lineMax;frommin){if(!isSpace$4(this.src.charCodeAt(--pos))){return pos+1;}}return pos;};// Skip char codes from given position -StateBlock.prototype.skipChars=function skipChars(pos,code){for(var max=this.src.length;posmin){if(code!==this.src.charCodeAt(--pos)){return pos+1;}}return pos;};// cut lines range from source. -StateBlock.prototype.getLines=function getLines(begin,end,indent,keepLastLF){var i,lineIndent,ch,first,last,queue,lineStart,line=begin;if(begin>=end){return '';}queue=new Array(end-begin);for(i=0;lineindent){// partially expanding tabs in code blocks, e.g '\t\tfoobar' -// with indent=2 becomes ' \tfoobar' -queue[i]=new Array(lineIndent-indent+1).join(' ')+this.src.slice(first,last);}else {queue[i]=this.src.slice(first,last);}}return queue.join('');};// re-export Token class to use in block rules -StateBlock.prototype.Token=token;var state_block=StateBlock;/** internal - * class ParserBlock - * - * Block-level tokenizer. - **/var _rules$1=[// First 2 params - rule name & source. Secondary array - list of rules, -// which can be terminated by this one. -['table',table,['paragraph','reference']],['code',code],['fence',fence,['paragraph','reference','blockquote','list']],['blockquote',blockquote,['paragraph','reference','blockquote','list']],['hr',hr,['paragraph','reference','blockquote','list']],['list',list,['paragraph','reference','blockquote']],['reference',reference],['heading',heading,['paragraph','reference','blockquote']],['lheading',lheading],['html_block',html_block,['paragraph','reference','blockquote']],['paragraph',paragraph]];/** - * new ParserBlock() - **/function ParserBlock(){/** - * ParserBlock#ruler -> Ruler - * - * [[Ruler]] instance. Keep configuration of block rules. - **/this.ruler=new ruler();for(var i=0;i<_rules$1.length;i++){this.ruler.push(_rules$1[i][0],_rules$1[i][1],{alt:(_rules$1[i][2]||[]).slice()});}}// Generate tokens for input range -// -ParserBlock.prototype.tokenize=function(state,startLine,endLine){var ok,i,rules=this.ruler.getRules(''),len=rules.length,line=startLine,hasEmptyLines=false,maxNesting=state.md.options.maxNesting;while(line=endLine){break;}// Termination condition for nested calls. -// Nested calls currently used for blockquotes & lists -if(state.sCount[line]=maxNesting){state.line=endLine;break;}// Try all possible rules. -// On success, rule should: -// -// - update `state.line` -// - update `state.tokens` -// - return true -for(i=0;i, ?, @, [, \, ], ^, _, `, {, |, }, or ~ -// !!!! Don't confuse with "Markdown ASCII Punctuation" chars -// http://spec.commonmark.org/0.15/#ascii-punctuation-character -function isTerminatorChar(ch){switch(ch){case 0x0A/* \n */:case 0x21/* ! */:case 0x23/* # */:case 0x24/* $ */:case 0x25/* % */:case 0x26/* & */:case 0x2A/* * */:case 0x2B/* + */:case 0x2D/* - */:case 0x3A/* : */:case 0x3C/* < */:case 0x3D/* = */:case 0x3E/* > */:case 0x40/* @ */:case 0x5B/* [ */:case 0x5C/* \ */:case 0x5D/* ] */:case 0x5E/* ^ */:case 0x5F/* _ */:case 0x60/* ` */:case 0x7B/* { */:case 0x7D/* } */:case 0x7E/* ~ */:return true;default:return false;}}var text$1=function text(state,silent){var pos=state.pos;while(pos hardbreak -// Lookup in pending chars is bad practice! Don't copy to other rules! -// Pending string is stored in concat mode, indexed lookups will cause -// convertion to flat mode. -if(!silent){if(pmax>=0&&state.pending.charCodeAt(pmax)===0x20){if(pmax>=1&&state.pending.charCodeAt(pmax-1)===0x20){state.pending=state.pending.replace(/ +$/,'');state.push('hardbreak','br',0);}else {state.pending=state.pending.slice(0,-1);state.push('softbreak','br',0);}}else {state.push('softbreak','br',0);}}pos++;// skip heading spaces for next line -while(pos?@[]^_`{|}~-'.split('').forEach(function(ch){ESCAPED[ch.charCodeAt(0)]=1;});var _escape=function escape(state,silent){var ch,pos=state.pos,max=state.posMax;if(state.src.charCodeAt(pos)!==0x5C/* \ */){return false;}pos++;if(pos `~` + `~~` + `~~`, leaving one marker at the -// start of the sequence. -// -// So, we have to move all those markers after subsequent s_close tags. -// -while(loneMarkers.length){i=loneMarkers.pop();j=i+1;while(j=0;i--){startDelim=delimiters[i];if(startDelim.marker!==0x5F/* _ */&&startDelim.marker!==0x2A/* * */){continue;}// Process only opening markers -if(startDelim.end===-1){continue;}endDelim=delimiters[startDelim.end];// If the previous delimiter has the same marker and is adjacent to this one, -// merge those into one strong delimiter. -// -// `whatever` -> `whatever` -// -isStrong=i>0&&delimiters[i-1].end===startDelim.end+1&&delimiters[i-1].token===startDelim.token-1&&delimiters[startDelim.end+1].token===endDelim.token+1&&delimiters[i-1].marker===startDelim.marker;ch=String.fromCharCode(startDelim.marker);token=state.tokens[startDelim.token];token.type=isStrong?'strong_open':'em_open';token.tag=isStrong?'strong':'em';token.nesting=1;token.markup=isStrong?ch+ch:ch;token.content='';token=state.tokens[endDelim.token];token.type=isStrong?'strong_close':'em_close';token.tag=isStrong?'strong':'em';token.nesting=-1;token.markup=isStrong?ch+ch:ch;token.content='';if(isStrong){state.tokens[delimiters[i-1].token].content='';state.tokens[delimiters[startDelim.end+1].token].content='';i--;}}}// Walk through delimiter list and replace text tokens with tags -// -var postProcess_1=function emphasis(state){var curr,tokens_meta=state.tokens_meta,max=state.tokens_meta.length;postProcess(state,state.delimiters);for(curr=0;curr "title" ) -// ^^ skipping these spaces -pos++;for(;pos=max){return false;}// [link]( "title" ) -// ^^^^^^ parsing link destination -start=pos;res=state.md.helpers.parseLinkDestination(state.src,pos,state.posMax);if(res.ok){href=state.md.normalizeLink(res.str);if(state.md.validateLink(href)){pos=res.pos;}else {href='';}}// [link]( "title" ) -// ^^ skipping these spaces -start=pos;for(;pos "title" ) -// ^^^^^^^ parsing link title -res=state.md.helpers.parseLinkTitle(state.src,pos,state.posMax);if(pos "title" ) -// ^^ skipping these spaces -for(;pos=max||state.src.charCodeAt(pos)!==0x29/* ) */){// parsing a valid shortcut link failed, fallback to reference -parseReference=true;}pos++;}if(parseReference){// -// Link reference -// -if(typeof state.env.references==='undefined'){return false;}if(pos=0){label=state.src.slice(start,pos++);}else {pos=labelEnd+1;}}else {pos=labelEnd+1;}// covers label === '' and label === undefined -// (collapsed reference link and shortcut reference link respectively) -if(!label){label=state.src.slice(labelStart,labelEnd);}ref=state.env.references[normalizeReference$1(label)];if(!ref){state.pos=oldPos;return false;}href=ref.href;title=ref.title;}// -// We found the end of the link, and know for a fact it's a valid link; -// so all that's left to do is to call tokenizer. -// -if(!silent){state.pos=labelStart;state.posMax=labelEnd;token=state.push('link_open','a',1);token.attrs=attrs=[['href',href]];if(title){attrs.push(['title',title]);}state.md.inline.tokenize(state);token=state.push('link_close','a',-1);}state.pos=pos;state.posMax=max;return true;};var normalizeReference=utils.normalizeReference;var isSpace=utils.isSpace;var image=function image(state,silent){var attrs,code,content,label,labelEnd,labelStart,pos,ref,res,title,token,tokens,start,href='',oldPos=state.pos,max=state.posMax;if(state.src.charCodeAt(state.pos)!==0x21/* ! */){return false;}if(state.src.charCodeAt(state.pos+1)!==0x5B/* [ */){return false;}labelStart=state.pos+2;labelEnd=state.md.helpers.parseLinkLabel(state,state.pos+1,false);// parser failed to find ']', so it's not a valid link -if(labelEnd<0){return false;}pos=labelEnd+1;if(pos "title" ) -// ^^ skipping these spaces -pos++;for(;pos=max){return false;}// [link]( "title" ) -// ^^^^^^ parsing link destination -start=pos;res=state.md.helpers.parseLinkDestination(state.src,pos,state.posMax);if(res.ok){href=state.md.normalizeLink(res.str);if(state.md.validateLink(href)){pos=res.pos;}else {href='';}}// [link]( "title" ) -// ^^ skipping these spaces -start=pos;for(;pos "title" ) -// ^^^^^^^ parsing link title -res=state.md.helpers.parseLinkTitle(state.src,pos,state.posMax);if(pos "title" ) -// ^^ skipping these spaces -for(;pos=max||state.src.charCodeAt(pos)!==0x29/* ) */){state.pos=oldPos;return false;}pos++;}else {// -// Link reference -// -if(typeof state.env.references==='undefined'){return false;}if(pos=0){label=state.src.slice(start,pos++);}else {pos=labelEnd+1;}}else {pos=labelEnd+1;}// covers label === '' and label === undefined -// (collapsed reference link and shortcut reference link respectively) -if(!label){label=state.src.slice(labelStart,labelEnd);}ref=state.env.references[normalizeReference(label)];if(!ref){state.pos=oldPos;return false;}href=ref.href;title=ref.title;}// -// We found the end of the link, and know for a fact it's a valid link; -// so all that's left to do is to call tokenizer. -// -if(!silent){content=state.src.slice(labelStart,labelEnd);state.md.inline.parse(content,state.md,state.env,tokens=[]);token=state.push('image','img',0);token.attrs=attrs=[['src',href],['alt','']];token.children=tokens;token.content=content;if(title){attrs.push(['title',title]);}}state.pos=pos;state.posMax=max;return true;};// Process autolinks '' -/*eslint max-len:0*/var EMAIL_RE=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;var AUTOLINK_RE=/^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/;var autolink=function autolink(state,silent){var tail,linkMatch,emailMatch,url,fullUrl,token,pos=state.pos;if(state.src.charCodeAt(pos)!==0x3C/* < */){return false;}tail=state.src.slice(pos);if(tail.indexOf('>')<0){return false;}if(AUTOLINK_RE.test(tail)){linkMatch=tail.match(AUTOLINK_RE);url=linkMatch[0].slice(1,-1);fullUrl=state.md.normalizeLink(url);if(!state.md.validateLink(fullUrl)){return false;}if(!silent){token=state.push('link_open','a',1);token.attrs=[['href',fullUrl]];token.markup='autolink';token.info='auto';token=state.push('text','',0);token.content=state.md.normalizeLinkText(url);token=state.push('link_close','a',-1);token.markup='autolink';token.info='auto';}state.pos+=linkMatch[0].length;return true;}if(EMAIL_RE.test(tail)){emailMatch=tail.match(EMAIL_RE);url=emailMatch[0].slice(1,-1);fullUrl=state.md.normalizeLink('mailto:'+url);if(!state.md.validateLink(fullUrl)){return false;}if(!silent){token=state.push('link_open','a',1);token.attrs=[['href',fullUrl]];token.markup='autolink';token.info='auto';token=state.push('text','',0);token.content=state.md.normalizeLinkText(url);token=state.push('link_close','a',-1);token.markup='autolink';token.info='auto';}state.pos+=emailMatch[0].length;return true;}return false;};var HTML_TAG_RE=html_re.HTML_TAG_RE;function isLetter(ch){/*eslint no-bitwise:0*/var lc=ch|0x20;// to lower case -return lc>=0x61/* a */&&lc<=0x7a/* z */;}var html_inline=function html_inline(state,silent){var ch,match,max,token,pos=state.pos;if(!state.md.options.html){return false;}// Check start -max=state.posMax;if(state.src.charCodeAt(pos)!==0x3C/* < */||pos+2>=max){return false;}// Quick fail on second char -ch=state.src.charCodeAt(pos+1);if(ch!==0x21/* ! */&&ch!==0x3F/* ? */&&ch!==0x2F/* / */&&!isLetter(ch)){return false;}match=state.src.slice(pos).match(HTML_TAG_RE);if(!match){return false;}if(!silent){token=state.push('html_inline','',0);token.content=state.src.slice(pos,pos+match[0].length);}state.pos+=match[0].length;return true;};var has=utils.has;var isValidEntityCode=utils.isValidEntityCode;var fromCodePoint=utils.fromCodePoint;var DIGITAL_RE=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i;var NAMED_RE=/^&([a-z][a-z0-9]{1,31});/i;var entity=function entity(state,silent){var ch,code,match,pos=state.pos,max=state.posMax;if(state.src.charCodeAt(pos)!==0x26/* & */){return false;}if(pos+1minOpenerIdx;openerIdx-=opener.jump+1){opener=delimiters[openerIdx];if(opener.marker!==closer.marker)continue;if(newMinOpenerIdx===-1)newMinOpenerIdx=openerIdx;if(opener.open&&opener.end<0){isOddMatch=false;// from spec: -// -// If one of the delimiters can both open and close emphasis, then the -// sum of the lengths of the delimiter runs containing the opening and -// closing delimiters must not be a multiple of 3 unless both lengths -// are multiples of 3. -// -if(opener.close||closer.open){if((opener.length+closer.length)%3===0){if(opener.length%3!==0||closer.length%3!==0){isOddMatch=true;}}}if(!isOddMatch){// If previous delimiter cannot be an opener, we can safely skip -// the entire sequence in future checks. This is required to make -// sure algorithm has linear complexity (see *_*_*_*_*_... case). -// -lastJump=openerIdx>0&&!delimiters[openerIdx-1].open?delimiters[openerIdx-1].jump+1:0;closer.jump=closerIdx-openerIdx+lastJump;closer.open=false;opener.end=closerIdx;opener.jump=lastJump;opener.close=false;newMinOpenerIdx=-1;break;}}}if(newMinOpenerIdx!==-1){// If match for this delimiter run failed, we want to set lower bound for -// future lookups. This is required to make sure algorithm has linear -// complexity. -// -// See details here: -// https://github.com/commonmark/cmark/issues/178#issuecomment-270417442 -// -openersBottom[closer.marker][(closer.length||0)%3]=newMinOpenerIdx;}}}var balance_pairs=function link_pairs(state){var curr,tokens_meta=state.tokens_meta,max=state.tokens_meta.length;processDelimiters(state,state.delimiters);for(curr=0;curr0)level++;// opening tag -if(tokens[curr].type==='text'&&curr+10){// opening tag -this.level++;this._prev_delimiters.push(this.delimiters);this.delimiters=[];token_meta={delimiters:this.delimiters};}this.pendingLevel=this.level;this.tokens.push(token$1);this.tokens_meta.push(token_meta);return token$1;};// Scan a sequence of emphasis-like markers, and determine whether -// it can start an emphasis sequence or end an emphasis sequence. -// -// - start - position to scan from (it should point at a valid marker); -// - canSplitWord - determine if these markers can be found inside a word -// -StateInline.prototype.scanDelims=function(start,canSplitWord){var pos=start,lastChar,nextChar,count,can_open,can_close,isLastWhiteSpace,isLastPunctChar,isNextWhiteSpace,isNextPunctChar,left_flanking=true,right_flanking=true,max=this.posMax,marker=this.src.charCodeAt(start);// treat beginning of the line as a whitespace -lastChar=start>0?this.src.charCodeAt(start-1):0x20;while(pos Ruler - * - * [[Ruler]] instance. Keep configuration of inline rules. - **/this.ruler=new ruler();for(i=0;i<_rules.length;i++){this.ruler.push(_rules[i][0],_rules[i][1]);}/** - * ParserInline#ruler2 -> Ruler - * - * [[Ruler]] instance. Second ruler used for post-processing - * (e.g. in emphasis-like rules). - **/this.ruler2=new ruler();for(i=0;i<_rules2.length;i++){this.ruler2.push(_rules2[i][0],_rules2[i][1]);}}// Skip single token by running all rules in validation mode; -// returns `true` if any rule reported success -// -ParserInline.prototype.skipToken=function(state){var ok,i,pos=state.pos,rules=this.ruler.getRules(''),len=rules.length,maxNesting=state.md.options.maxNesting,cache=state.cache;if(typeof cache[pos]!=='undefined'){state.pos=cache[pos];return;}if(state.level=end){break;}continue;}state.pending+=state.src[state.pos++];}if(state.pending){state.pushPending();}};/** - * ParserInline.parse(str, md, env, outTokens) - * - * Process input string and push inline tokens into `outTokens` - **/ParserInline.prototype.parse=function(str,md,env,outTokens){var i,rules,len;var state=new this.State(str,md,env,outTokens);this.tokenize(state);rules=this.ruler2.getRules('');len=rules.length;for(i=0;i long dash, terminate -:'\\-+|')+'\\,(?!'+re.src_ZCc+').|'+// allow `,,,` in paths -'\\!+(?!'+re.src_ZCc+'|[!]).|'+// allow `!!!` in paths, but not at the end -'\\?(?!'+re.src_ZCc+'|[?]).'+')+'+'|\\/'+')?';// Allow anything in markdown spec, forbid quote (") at the first position -// because emails enclosed in quotes are far more common -re.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*';re.src_xn='xn--[a-z0-9\\-]{1,59}';// More to read about domain names -// http://serverfault.com/questions/638260/ -re.src_domain_root=// Allow letters & digits (http://test1) -'(?:'+re.src_xn+'|'+re.src_pseudo_letter+'{1,63}'+')';re.src_domain='(?:'+re.src_xn+'|'+'(?:'+re.src_pseudo_letter+')'+'|'+'(?:'+re.src_pseudo_letter+'(?:-|'+re.src_pseudo_letter+'){0,61}'+re.src_pseudo_letter+')'+')';re.src_host='(?:'+// Don't need IP check, because digits are already allowed in normal domain names -// src_ip4 + -// '|' + -'(?:(?:(?:'+re.src_domain+')\\.)*'+re.src_domain/*_root*/+')'+')';re.tpl_host_fuzzy='(?:'+re.src_ip4+'|'+'(?:(?:(?:'+re.src_domain+')\\.)+(?:%TLDS%))'+')';re.tpl_host_no_ip_fuzzy='(?:(?:(?:'+re.src_domain+')\\.)+(?:%TLDS%))';re.src_host_strict=re.src_host+re.src_host_terminator;re.tpl_host_fuzzy_strict=re.tpl_host_fuzzy+re.src_host_terminator;re.src_host_port_strict=re.src_host+re.src_port+re.src_host_terminator;re.tpl_host_port_fuzzy_strict=re.tpl_host_fuzzy+re.src_port+re.src_host_terminator;re.tpl_host_port_no_ip_fuzzy_strict=re.tpl_host_no_ip_fuzzy+re.src_port+re.src_host_terminator;//////////////////////////////////////////////////////////////////////////////// -// Main rules -// Rude test fuzzy links by host, for quick deny -re.tpl_host_fuzzy_test='localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:'+re.src_ZPCc+'|>|$))';re.tpl_email_fuzzy='(^|'+text_separators+'|"|\\(|'+re.src_ZCc+')'+'('+re.src_email_name+'@'+re.tpl_host_fuzzy_strict+')';re.tpl_link_fuzzy=// Fuzzy link can't be prepended with .:/\- and non punctuation. -// but can start with > (markdown blockquote) -'(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|'+re.src_ZPCc+'))'+'((?![$+<=>^`|\uff5c])'+re.tpl_host_port_fuzzy_strict+re.src_path+')';re.tpl_link_no_ip_fuzzy=// Fuzzy link can't be prepended with .:/\- and non punctuation. -// but can start with > (markdown blockquote) -'(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|'+re.src_ZPCc+'))'+'((?![$+<=>^`|\uff5c])'+re.tpl_host_port_no_ip_fuzzy_strict+re.src_path+')';return re;};//////////////////////////////////////////////////////////////////////////////// -// Helpers -// Merge objects -// -function assign(obj/*from1, from2, from3, ...*/){var sources=Array.prototype.slice.call(arguments,1);sources.forEach(function(source){if(!source){return;}Object.keys(source).forEach(function(key){obj[key]=source[key];});});return obj;}function _class$1(obj){return Object.prototype.toString.call(obj);}function isString$1(obj){return _class$1(obj)==='[object String]';}function isObject$6(obj){return _class$1(obj)==='[object Object]';}function isRegExp$3(obj){return _class$1(obj)==='[object RegExp]';}function isFunction$3(obj){return _class$1(obj)==='[object Function]';}function escapeRE(str){return str.replace(/[.?*+^$[\]\\(){}|-]/g,'\\$&');}//////////////////////////////////////////////////////////////////////////////// -var defaultOptions={fuzzyLink:true,fuzzyEmail:true,fuzzyIP:false};function isOptionsObj(obj){return Object.keys(obj||{}).reduce(function(acc,k){return acc||defaultOptions.hasOwnProperty(k);},false);}var defaultSchemas={'http:':{validate:function(text,pos,self){var tail=text.slice(pos);if(!self.re.http){// compile lazily, because "host"-containing variables can change on tlds update. -self.re.http=new RegExp('^\\/\\/'+self.re.src_auth+self.re.src_host_port_strict+self.re.src_path,'i');}if(self.re.http.test(tail)){return tail.match(self.re.http)[0].length;}return 0;}},'https:':'http:','ftp:':'http:','//':{validate:function(text,pos,self){var tail=text.slice(pos);if(!self.re.no_http){// compile lazily, because "host"-containing variables can change on tlds update. -self.re.no_http=new RegExp('^'+self.re.src_auth+// Don't allow single-level domains, because of false positives like '//test' -// with code comments -'(?:localhost|(?:(?:'+self.re.src_domain+')\\.)+'+self.re.src_domain_root+')'+self.re.src_port+self.re.src_host_terminator+self.re.src_path,'i');}if(self.re.no_http.test(tail)){// should not be `://` & `///`, that protects from errors in protocol name -if(pos>=3&&text[pos-3]===':'){return 0;}if(pos>=3&&text[pos-3]==='/'){return 0;}return tail.match(self.re.no_http)[0].length;}return 0;}},'mailto:':{validate:function(text,pos,self){var tail=text.slice(pos);if(!self.re.mailto){self.re.mailto=new RegExp('^'+self.re.src_email_name+'@'+self.re.src_host_strict,'i');}if(self.re.mailto.test(tail)){return tail.match(self.re.mailto)[0].length;}return 0;}}};/*eslint-disable max-len*/ // RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js) -var tlds_2ch_src_re='a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead -var tlds_default='biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');/*eslint-enable max-len*/ //////////////////////////////////////////////////////////////////////////////// -function resetScanCache(self){self.__index__=-1;self.__text_cache__='';}function createValidator(re){return function(text,pos){var tail=text.slice(pos);if(re.test(tail)){return tail.match(re)[0].length;}return 0;};}function createNormalizer(){return function(match,self){self.normalize(match);};}// Schemas compiler. Build regexps. -// -function compile$2(self){// Load & clone RE patterns. -var re$1=self.re=re(self.__opts__);// Define dynamic patterns -var tlds=self.__tlds__.slice();self.onCompile();if(!self.__tlds_replaced__){tlds.push(tlds_2ch_src_re);}tlds.push(re$1.src_xn);re$1.src_tlds=tlds.join('|');function untpl(tpl){return tpl.replace('%TLDS%',re$1.src_tlds);}re$1.email_fuzzy=RegExp(untpl(re$1.tpl_email_fuzzy),'i');re$1.link_fuzzy=RegExp(untpl(re$1.tpl_link_fuzzy),'i');re$1.link_no_ip_fuzzy=RegExp(untpl(re$1.tpl_link_no_ip_fuzzy),'i');re$1.host_fuzzy_test=RegExp(untpl(re$1.tpl_host_fuzzy_test),'i');// -// Compile each schema -// -var aliases=[];self.__compiled__={};// Reset compiled data -function schemaError(name,val){throw new Error('(LinkifyIt) Invalid schema "'+name+'": '+val);}Object.keys(self.__schemas__).forEach(function(name){var val=self.__schemas__[name];// skip disabled methods -if(val===null){return;}var compiled={validate:null,link:null};self.__compiled__[name]=compiled;if(isObject$6(val)){if(isRegExp$3(val.validate)){compiled.validate=createValidator(val.validate);}else if(isFunction$3(val.validate)){compiled.validate=val.validate;}else {schemaError(name,val);}if(isFunction$3(val.normalize)){compiled.normalize=val.normalize;}else if(!val.normalize){compiled.normalize=createNormalizer();}else {schemaError(name,val);}return;}if(isString$1(val)){aliases.push(name);return;}schemaError(name,val);});// -// Compile postponed aliases -// -aliases.forEach(function(alias){if(!self.__compiled__[self.__schemas__[alias]]){// Silently fail on missed schemas to avoid errons on disable. -// schemaError(alias, self.__schemas__[alias]); -return;}self.__compiled__[alias].validate=self.__compiled__[self.__schemas__[alias]].validate;self.__compiled__[alias].normalize=self.__compiled__[self.__schemas__[alias]].normalize;});// -// Fake record for guessed links -// -self.__compiled__['']={validate:null,normalize:createNormalizer()};// -// Build schema condition -// -var slist=Object.keys(self.__compiled__).filter(function(name){// Filter disabled & fake schemas -return name.length>0&&self.__compiled__[name];}).map(escapeRE).join('|');// (?!_) cause 1.5x slowdown -self.re.schema_test=RegExp('(^|(?!_)(?:[><\uff5c]|'+re$1.src_ZPCc+'))('+slist+')','i');self.re.schema_search=RegExp('(^|(?!_)(?:[><\uff5c]|'+re$1.src_ZPCc+'))('+slist+')','ig');self.re.pretest=RegExp('('+self.re.schema_test.source+')|('+self.re.host_fuzzy_test.source+')|@','i');// -// Cleanup -// -resetScanCache(self);}/** - * class Match - * - * Match result. Single element of array, returned by [[LinkifyIt#match]] - **/function Match(self,shift){var start=self.__index__,end=self.__last_index__,text=self.__text_cache__.slice(start,end);/** - * Match#schema -> String - * - * Prefix (protocol) for matched string. - **/this.schema=self.__schema__.toLowerCase();/** - * Match#index -> Number - * - * First position of matched string. - **/this.index=start+shift;/** - * Match#lastIndex -> Number - * - * Next position after matched string. - **/this.lastIndex=end+shift;/** - * Match#raw -> String - * - * Matched string. - **/this.raw=text;/** - * Match#text -> String - * - * Notmalized text of matched string. - **/this.text=text;/** - * Match#url -> String - * - * Normalized url of matched string. - **/this.url=text;}function createMatch(self,shift){var match=new Match(self,shift);self.__compiled__[match.schema].normalize(match,self);return match;}/** - * class LinkifyIt - **/ /** - * new LinkifyIt(schemas, options) - * - schemas (Object): Optional. Additional schemas to validate (prefix/validator) - * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false } - * - * Creates new linkifier instance with optional additional schemas. - * Can be called without `new` keyword for convenience. - * - * By default understands: - * - * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links - * - "fuzzy" links and emails (example.com, foo@bar.com). - * - * `schemas` is an object, where each key/value describes protocol/rule: - * - * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:` - * for example). `linkify-it` makes shure that prefix is not preceeded with - * alphanumeric char and symbols. Only whitespaces and punctuation allowed. - * - __value__ - rule to check tail after link prefix - * - _String_ - just alias to existing rule - * - _Object_ - * - _validate_ - validator function (should return matched length on success), - * or `RegExp`. - * - _normalize_ - optional function to normalize text & url of matched result - * (for example, for @twitter mentions). - * - * `options`: - * - * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`. - * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts - * like version numbers. Default `false`. - * - __fuzzyEmail__ - recognize emails without `mailto:` prefix. - * - **/function LinkifyIt(schemas,options){if(!(this instanceof LinkifyIt)){return new LinkifyIt(schemas,options);}if(!options){if(isOptionsObj(schemas)){options=schemas;schemas={};}}this.__opts__=assign({},defaultOptions,options);// Cache last tested result. Used to skip repeating steps on next `match` call. -this.__index__=-1;this.__last_index__=-1;// Next scan position -this.__schema__='';this.__text_cache__='';this.__schemas__=assign({},defaultSchemas,schemas);this.__compiled__={};this.__tlds__=tlds_default;this.__tlds_replaced__=false;this.re={};compile$2(this);}/** chainable - * LinkifyIt#add(schema, definition) - * - schema (String): rule name (fixed pattern prefix) - * - definition (String|RegExp|Object): schema definition - * - * Add new rule definition. See constructor description for details. - **/LinkifyIt.prototype.add=function add(schema,definition){this.__schemas__[schema]=definition;compile$2(this);return this;};/** chainable - * LinkifyIt#set(options) - * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false } - * - * Set recognition options for links without schema. - **/LinkifyIt.prototype.set=function set(options){this.__opts__=assign(this.__opts__,options);return this;};/** - * LinkifyIt#test(text) -> Boolean - * - * Searches linkifiable pattern and returns `true` on success or `false` on fail. - **/LinkifyIt.prototype.test=function test(text){// Reset scan cache -this.__text_cache__=text;this.__index__=-1;if(!text.length){return false;}var m,ml,me,len,shift,next,re,tld_pos,at_pos;// try to scan for link with schema - that's the most simple rule -if(this.re.schema_test.test(text)){re=this.re.schema_search;re.lastIndex=0;while((m=re.exec(text))!==null){len=this.testSchemaAt(text,m[2],re.lastIndex);if(len){this.__schema__=m[2];this.__index__=m.index+m[1].length;this.__last_index__=m.index+m[0].length+len;break;}}}if(this.__opts__.fuzzyLink&&this.__compiled__['http:']){// guess schemaless links -tld_pos=text.search(this.re.host_fuzzy_test);if(tld_pos>=0){// if tld is located after found link - no need to check fuzzy pattern -if(this.__index__<0||tld_pos=0){// We can't skip this check, because this cases are possible: -// 192.168.1.1@gmail.com, my.in@example.com -if((me=text.match(this.re.email_fuzzy))!==null){shift=me.index+me[1].length;next=me.index+me[0].length;if(this.__index__<0||shiftthis.__last_index__){this.__schema__='mailto:';this.__index__=shift;this.__last_index__=next;}}}}return this.__index__>=0;};/** - * LinkifyIt#pretest(text) -> Boolean - * - * Very quick check, that can give false positives. Returns true if link MAY BE - * can exists. Can be used for speed optimization, when you need to check that - * link NOT exists. - **/LinkifyIt.prototype.pretest=function pretest(text){return this.re.pretest.test(text);};/** - * LinkifyIt#testSchemaAt(text, name, position) -> Number - * - text (String): text to scan - * - name (String): rule (schema) name - * - position (Number): text offset to check from - * - * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly - * at given position. Returns length of found pattern (0 on fail). - **/LinkifyIt.prototype.testSchemaAt=function testSchemaAt(text,schema,pos){// If not supported schema check requested - terminate -if(!this.__compiled__[schema.toLowerCase()]){return 0;}return this.__compiled__[schema.toLowerCase()].validate(text,pos,this);};/** - * LinkifyIt#match(text) -> Array|null - * - * Returns array of found link descriptions or `null` on fail. We strongly - * recommend to use [[LinkifyIt#test]] first, for best speed. - * - * ##### Result match description - * - * - __schema__ - link schema, can be empty for fuzzy links, or `//` for - * protocol-neutral links. - * - __index__ - offset of matched text - * - __lastIndex__ - index of next char after mathch end - * - __raw__ - matched text - * - __text__ - normalized text - * - __url__ - link, generated from matched text - **/LinkifyIt.prototype.match=function match(text){var shift=0,result=[];// Try to take previous element from cache, if .test() called before -if(this.__index__>=0&&this.__text_cache__===text){result.push(createMatch(this,shift));shift=this.__last_index__;}// Cut head if cache was used -var tail=shift?text.slice(shift):text;// Scan string until end reached -while(this.test(tail)){result.push(createMatch(this,shift));tail=tail.slice(this.__last_index__);shift+=this.__last_index__;}if(result.length){return result;}return null;};/** chainable - * LinkifyIt#tlds(list [, keepOld]) -> this - * - list (Array): list of tlds - * - keepOld (Boolean): merge with current list if `true` (`false` by default) - * - * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix) - * to avoid false positives. By default this algorythm used: - * - * - hostname with any 2-letter root zones are ok. - * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф - * are ok. - * - encoded (`xn--...`) root zones are ok. - * - * If list is replaced, then exact match for 2-chars root zones will be checked. - **/LinkifyIt.prototype.tlds=function tlds(list,keepOld){list=Array.isArray(list)?list:[list];if(!keepOld){this.__tlds__=list.slice();this.__tlds_replaced__=true;compile$2(this);return this;}this.__tlds__=this.__tlds__.concat(list).sort().filter(function(el,idx,arr){return el!==arr[idx-1];}).reverse();compile$2(this);return this;};/** - * LinkifyIt#normalize(match) - * - * Default normalizer (if schema does not define it's own). - **/LinkifyIt.prototype.normalize=function normalize(match){// Do minimal possible changes by default. Need to collect feedback prior -// to move forward https://github.com/markdown-it/linkify-it/issues/1 -if(!match.schema){match.url='http://'+match.url;}if(match.schema==='mailto:'&&!/^mailto:/i.test(match.url)){match.url='mailto:'+match.url;}};/** - * LinkifyIt#onCompile() - * - * Override to modify basic RegExp-s. - **/LinkifyIt.prototype.onCompile=function onCompile(){};var linkifyIt=LinkifyIt;/*! https://mths.be/punycode v1.4.1 by @mathias */ /** Highest positive signed 32-bit float value */var maxInt=2147483647;// aka. 0x7FFFFFFF or 2^31-1 -/** Bootstring parameters */var base$1=36;var tMin=1;var tMax=26;var skew=38;var damp=700;var initialBias=72;var initialN=128;// 0x80 -var delimiter$1='-';// '\x2D' -/** Regular expressions */var regexPunycode=/^xn--/;var regexNonASCII=/[^\x20-\x7E]/;// unprintable ASCII chars + non-ASCII chars -var regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g;// RFC 3490 separators -/** Error messages */var errors$1={'overflow':'Overflow: input needs wider integers to process','not-basic':'Illegal input >= 0x80 (not a basic code point)','invalid-input':'Invalid input'};/** Convenience shortcuts */var baseMinusTMin=base$1-tMin;var floor=Math.floor;var stringFromCharCode=String.fromCharCode;/*--------------------------------------------------------------------------*/ /** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */function error(type){throw new RangeError(errors$1[type]);}/** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */function map$3(array,fn){var length=array.length;var result=[];while(length--){result[length]=fn(array[length]);}return result;}/** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */function mapDomain(string,fn){var parts=string.split('@');var result='';if(parts.length>1){// In email addresses, only the domain name should be punycoded. Leave -// the local part (i.e. everything up to `@`) intact. -result=parts[0]+'@';string=parts[1];}// Avoid `split(regex)` for IE8 compatibility. See #17. -string=string.replace(regexSeparators,'\x2E');var labels=string.split('.');var encoded=map$3(labels,fn).join('.');return result+encoded;}/** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */function ucs2decode(string){var output=[],counter=0,length=string.length,value,extra;while(counter=0xD800&&value<=0xDBFF&&counter0xFFFF){value-=0x10000;output+=stringFromCharCode(value>>>10&0x3FF|0xD800);value=0xDC00|value&0x3FF;}output+=stringFromCharCode(value);return output;}).join('');}/** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */function basicToDigit(codePoint){if(codePoint-48<10){return codePoint-22;}if(codePoint-65<26){return codePoint-65;}if(codePoint-97<26){return codePoint-97;}return base$1;}/** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */function digitToBasic(digit,flag){// 0..25 map to ASCII a..z or A..Z -// 26..35 map to ASCII 0..9 -return digit+22+75*(digit<26)-((flag!=0)<<5);}/** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */function adapt(delta,numPoints,firstTime){var k=0;delta=firstTime?floor(delta/damp):delta>>1;delta+=floor(delta/numPoints);for(;/* no initialization */delta>baseMinusTMin*tMax>>1;k+=base$1){delta=floor(delta/baseMinusTMin);}return floor(k+(baseMinusTMin+1)*delta/(delta+skew));}/** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */function decode(input){// Don't use UCS-2 -var output=[],inputLength=input.length,out,i=0,n=initialN,bias=initialBias,basic,j,index,oldi,w,k,digit,t,/** Cached calculation results */baseMinusT;// Handle the basic code points: let `basic` be the number of input code -// points before the last delimiter, or `0` if there is none, then copy -// the first basic code points to the output. -basic=input.lastIndexOf(delimiter$1);if(basic<0){basic=0;}for(j=0;j=0x80){error('not-basic');}output.push(input.charCodeAt(j));}// Main decoding loop: start just after the last delimiter if any basic code -// points were copied; start at the beginning otherwise. -for(index=basic>0?basic+1:0;index=inputLength){error('invalid-input');}digit=basicToDigit(input.charCodeAt(index++));if(digit>=base$1||digit>floor((maxInt-i)/w)){error('overflow');}i+=digit*w;t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(digitfloor(maxInt/baseMinusT)){error('overflow');}w*=baseMinusT;}out=output.length+1;bias=adapt(i-oldi,out,oldi==0);// `i` was supposed to wrap around from `out` to `0`, -// incrementing `n` each time, so we'll fix that now: -if(floor(i/out)>maxInt-n){error('overflow');}n+=floor(i/out);i%=out;// Insert `n` at position `i` of the output -output.splice(i++,0,n);}return ucs2encode(output);}/** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,output=[],/** `inputLength` will hold the number of code points in `input`. */inputLength,/** Cached calculation results */handledCPCountPlusOne,baseMinusT,qMinusT;// Convert the input in UCS-2 to Unicode -input=ucs2decode(input);// Cache the length -inputLength=input.length;// Initialize the state -n=initialN;delta=0;bias=initialBias;// Handle the basic code points -for(j=0;j=n&¤tValue state to , -// but guard against overflow -handledCPCountPlusOne=handledCPCount+1;if(m-n>floor((maxInt-delta)/handledCPCountPlusOne)){error('overflow');}delta+=(m-n)*handledCPCountPlusOne;n=m;for(j=0;jmaxInt){error('overflow');}if(currentValue==n){// Represent delta as a generalized variable-length integer -for(q=delta,k=base$1;;/* no condition */k+=base$1){t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(q - * @memberOf punycode - * @type Object - */var ucs2={decode:ucs2decode,encode:ucs2encode};var punycode$1={version:version$1,ucs2:ucs2,toASCII:toASCII,toUnicode:toUnicode,encode:encode,decode:decode};var punycode$2=/*#__PURE__*/Object.freeze({__proto__:null,decode:decode,encode:encode,toUnicode:toUnicode,toASCII:toASCII,version:version$1,ucs2:ucs2,'default':punycode$1});// markdown-it default options -var _default$1={options:{html:false,// Enable HTML tags in source -xhtmlOut:false,// Use '/' to close single tags (
) -breaks:false,// Convert '\n' in paragraphs into
-langPrefix:'language-',// CSS language prefix for fenced blocks -linkify:false,// autoconvert URL-like texts to links -// Enable some language-neutral replacements + quotes beautification -typographer:false,// Double + single quotes replacement pairs, when typographer enabled, -// and smartquotes on. Could be either a String or an Array. -// -// For example, you can use '«»„“' for Russian, '„“‚‘' for German, -// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp). -quotes:'\u201c\u201d\u2018\u2019',/* “”‘’ */ // Highlighter function. Should return escaped HTML, -// or '' if the source string is not changed and should be escaped externaly. -// If result starts with ) -breaks:false,// Convert '\n' in paragraphs into
-langPrefix:'language-',// CSS language prefix for fenced blocks -linkify:false,// autoconvert URL-like texts to links -// Enable some language-neutral replacements + quotes beautification -typographer:false,// Double + single quotes replacement pairs, when typographer enabled, -// and smartquotes on. Could be either a String or an Array. -// -// For example, you can use '«»„“' for Russian, '„“‚‘' for German, -// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp). -quotes:'\u201c\u201d\u2018\u2019',/* “”‘’ */ // Highlighter function. Should return escaped HTML, -// or '' if the source string is not changed and should be escaped externaly. -// If result starts with ) -breaks:false,// Convert '\n' in paragraphs into
-langPrefix:'language-',// CSS language prefix for fenced blocks -linkify:false,// autoconvert URL-like texts to links -// Enable some language-neutral replacements + quotes beautification -typographer:false,// Double + single quotes replacement pairs, when typographer enabled, -// and smartquotes on. Could be either a String or an Array. -// -// For example, you can use '«»„“' for Russian, '„“‚‘' for German, -// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp). -quotes:'\u201c\u201d\u2018\u2019',/* “”‘’ */ // Highlighter function. Should return escaped HTML, -// or '' if the source string is not changed and should be escaped externaly. -// If result starts with =0){try{parsed.hostname=punycode.toASCII(parsed.hostname);}catch(er){/**/}}}return mdurl.encode(mdurl.format(parsed));}function normalizeLinkText(url){var parsed=mdurl.parse(url,true);if(parsed.hostname){// Encode hostnames in urls like: -// `http://host/`, `https://host/`, `mailto:user@host`, `//host/` -// -// We don't encode unknown schemas, because it's likely that we encode -// something we shouldn't (e.g. `skype:name` treated as `skype:host`) -// -if(!parsed.protocol||RECODE_HOSTNAME_FOR.indexOf(parsed.protocol)>=0){try{parsed.hostname=punycode.toUnicode(parsed.hostname);}catch(er){/**/}}}return mdurl.decode(mdurl.format(parsed));}/** - * class MarkdownIt - * - * Main parser/renderer class. - * - * ##### Usage - * - * ```javascript - * // node.js, "classic" way: - * var MarkdownIt = require('markdown-it'), - * md = new MarkdownIt(); - * var result = md.render('# markdown-it rulezz!'); - * - * // node.js, the same, but with sugar: - * var md = require('markdown-it')(); - * var result = md.render('# markdown-it rulezz!'); - * - * // browser without AMD, added to "window" on script load - * // Note, there are no dash. - * var md = window.markdownit(); - * var result = md.render('# markdown-it rulezz!'); - * ``` - * - * Single line rendering, without paragraph wrap: - * - * ```javascript - * var md = require('markdown-it')(); - * var result = md.renderInline('__markdown-it__ rulezz!'); - * ``` - **/ /** - * new MarkdownIt([presetName, options]) - * - presetName (String): optional, `commonmark` / `zero` - * - options (Object) - * - * Creates parser instanse with given config. Can be called without `new`. - * - * ##### presetName - * - * MarkdownIt provides named presets as a convenience to quickly - * enable/disable active syntax rules and options for common use cases. - * - * - ["commonmark"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) - - * configures parser to strict [CommonMark](http://commonmark.org/) mode. - * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) - - * similar to GFM, used when no preset name given. Enables all available rules, - * but still without html, typographer & autolinker. - * - ["zero"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) - - * all rules disabled. Useful to quickly setup your config via `.enable()`. - * For example, when you need only `bold` and `italic` markup and nothing else. - * - * ##### options: - * - * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful! - * That's not safe! You may need external sanitizer to protect output from XSS. - * It's better to extend features via plugins, instead of enabling HTML. - * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags - * (`
`). This is needed only for full CommonMark compatibility. In real - * world you will need HTML output. - * - __breaks__ - `false`. Set `true` to convert `\n` in paragraphs into `
`. - * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks. - * Can be useful for external highlighters. - * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links. - * - __typographer__ - `false`. Set `true` to enable [some language-neutral - * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) + - * quotes beautification (smartquotes). - * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement - * pairs, when typographer enabled and smartquotes on. For example, you can - * use `'«»„“'` for Russian, `'„“‚‘'` for German, and - * `['«\xA0', '\xA0»', '‹\xA0', '\xA0›']` for French (including nbsp). - * - __highlight__ - `null`. Highlighter function for fenced code blocks. - * Highlighter `function (str, lang)` should return escaped HTML. It can also - * return empty string if the source was not changed and should be escaped - * externaly. If result starts with `): - * - * ```javascript - * var hljs = require('highlight.js') // https://highlightjs.org/ - * - * // Actual default values - * var md = require('markdown-it')({ - * highlight: function (str, lang) { - * if (lang && hljs.getLanguage(lang)) { - * try { - * return '
' +
-   *                hljs.highlight(lang, str, true).value +
-   *                '
'; - * } catch (__) {} - * } - * - * return '
' + md.utils.escapeHtml(str) + '
'; - * } - * }); - * ``` - * - **/function MarkdownIt(presetName,options){if(!(this instanceof MarkdownIt)){return new MarkdownIt(presetName,options);}if(!options){if(!utils.isString(presetName)){options=presetName||{};presetName='default';}}/** - * MarkdownIt#inline -> ParserInline - * - * Instance of [[ParserInline]]. You may need it to add new rules when - * writing plugins. For simple rules control use [[MarkdownIt.disable]] and - * [[MarkdownIt.enable]]. - **/this.inline=new parser_inline();/** - * MarkdownIt#block -> ParserBlock - * - * Instance of [[ParserBlock]]. You may need it to add new rules when - * writing plugins. For simple rules control use [[MarkdownIt.disable]] and - * [[MarkdownIt.enable]]. - **/this.block=new parser_block();/** - * MarkdownIt#core -> Core - * - * Instance of [[Core]] chain executor. You may need it to add new rules when - * writing plugins. For simple rules control use [[MarkdownIt.disable]] and - * [[MarkdownIt.enable]]. - **/this.core=new parser_core();/** - * MarkdownIt#renderer -> Renderer - * - * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering - * rules for new token types, generated by plugins. - * - * ##### Example - * - * ```javascript - * var md = require('markdown-it')(); - * - * function myToken(tokens, idx, options, env, self) { - * //... - * return result; - * }; - * - * md.renderer.rules['my_token'] = myToken - * ``` - * - * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js). - **/this.renderer=new renderer();/** - * MarkdownIt#linkify -> LinkifyIt - * - * [linkify-it](https://github.com/markdown-it/linkify-it) instance. - * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js) - * rule. - **/this.linkify=new linkifyIt();/** - * MarkdownIt#validateLink(url) -> Boolean - * - * Link validation function. CommonMark allows too much in links. By default - * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas - * except some embedded image types. - * - * You can change this behaviour: - * - * ```javascript - * var md = require('markdown-it')(); - * // enable everything - * md.validateLink = function () { return true; } - * ``` - **/this.validateLink=validateLink;/** - * MarkdownIt#normalizeLink(url) -> String - * - * Function used to encode link url to a machine-readable format, - * which includes url-encoding, punycode, etc. - **/this.normalizeLink=normalizeLink;/** - * MarkdownIt#normalizeLinkText(url) -> String - * - * Function used to decode link url to a human-readable format` - **/this.normalizeLinkText=normalizeLinkText;// Expose utils & helpers for easy acces from plugins -/** - * MarkdownIt#utils -> utils - * - * Assorted utility functions, useful to write plugins. See details - * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js). - **/this.utils=utils;/** - * MarkdownIt#helpers -> helpers - * - * Link components parser functions, useful to write plugins. See details - * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers). - **/this.helpers=utils.assign({},helpers);this.options={};this.configure(presetName);if(options){this.set(options);}}/** chainable - * MarkdownIt.set(options) - * - * Set parser options (in the same format as in constructor). Probably, you - * will never need it, but you can change options after constructor call. - * - * ##### Example - * - * ```javascript - * var md = require('markdown-it')() - * .set({ html: true, breaks: true }) - * .set({ typographer, true }); - * ``` - * - * __Note:__ To achieve the best possible performance, don't modify a - * `markdown-it` instance options on the fly. If you need multiple configurations - * it's best to create multiple instances and initialize each with separate - * config. - **/MarkdownIt.prototype.set=function(options){utils.assign(this.options,options);return this;};/** chainable, internal - * MarkdownIt.configure(presets) - * - * Batch load of all options and compenent settings. This is internal method, - * and you probably will not need it. But if you will - see available presets - * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets) - * - * We strongly recommend to use presets instead of direct config loads. That - * will give better compatibility with next versions. - **/MarkdownIt.prototype.configure=function(presets){var self=this,presetName;if(utils.isString(presets)){presetName=presets;presets=config$1[presetName];if(!presets){throw new Error('Wrong `markdown-it` preset "'+presetName+'", check name');}}if(!presets){throw new Error('Wrong `markdown-it` preset, can\'t be empty');}if(presets.options){self.set(presets.options);}if(presets.components){Object.keys(presets.components).forEach(function(name){if(presets.components[name].rules){self[name].ruler.enableOnly(presets.components[name].rules);}if(presets.components[name].rules2){self[name].ruler2.enableOnly(presets.components[name].rules2);}});}return this;};/** chainable - * MarkdownIt.enable(list, ignoreInvalid) - * - list (String|Array): rule name or list of rule names to enable - * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found. - * - * Enable list or rules. It will automatically find appropriate components, - * containing rules with given names. If rule not found, and `ignoreInvalid` - * not set - throws exception. - * - * ##### Example - * - * ```javascript - * var md = require('markdown-it')() - * .enable(['sub', 'sup']) - * .disable('smartquotes'); - * ``` - **/MarkdownIt.prototype.enable=function(list,ignoreInvalid){var result=[];if(!Array.isArray(list)){list=[list];}['core','block','inline'].forEach(function(chain){result=result.concat(this[chain].ruler.enable(list,true));},this);result=result.concat(this.inline.ruler2.enable(list,true));var missed=list.filter(function(name){return result.indexOf(name)<0;});if(missed.length&&!ignoreInvalid){throw new Error('MarkdownIt. Failed to enable unknown rule(s): '+missed);}return this;};/** chainable - * MarkdownIt.disable(list, ignoreInvalid) - * - list (String|Array): rule name or list of rule names to disable. - * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found. - * - * The same as [[MarkdownIt.enable]], but turn specified rules off. - **/MarkdownIt.prototype.disable=function(list,ignoreInvalid){var result=[];if(!Array.isArray(list)){list=[list];}['core','block','inline'].forEach(function(chain){result=result.concat(this[chain].ruler.disable(list,true));},this);result=result.concat(this.inline.ruler2.disable(list,true));var missed=list.filter(function(name){return result.indexOf(name)<0;});if(missed.length&&!ignoreInvalid){throw new Error('MarkdownIt. Failed to disable unknown rule(s): '+missed);}return this;};/** chainable - * MarkdownIt.use(plugin, params) - * - * Load specified plugin with given params into current parser instance. - * It's just a sugar to call `plugin(md, params)` with curring. - * - * ##### Example - * - * ```javascript - * var iterator = require('markdown-it-for-inline'); - * var md = require('markdown-it')() - * .use(iterator, 'foo_replace', 'text', function (tokens, idx) { - * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar'); - * }); - * ``` - **/MarkdownIt.prototype.use=function(plugin/*, params, ... */){var args=[this].concat(Array.prototype.slice.call(arguments,1));plugin.apply(plugin,args);return this;};/** internal - * MarkdownIt.parse(src, env) -> Array - * - src (String): source string - * - env (Object): environment sandbox - * - * Parse input string and return list of block tokens (special token type - * "inline" will contain list of inline tokens). You should not call this - * method directly, until you write custom renderer (for example, to produce - * AST). - * - * `env` is used to pass data between "distributed" rules and return additional - * metadata like reference info, needed for the renderer. It also can be used to - * inject data in specific cases. Usually, you will be ok to pass `{}`, - * and then pass updated object to renderer. - **/MarkdownIt.prototype.parse=function(src,env){if(typeof src!=='string'){throw new Error('Input data should be a String');}var state=new this.core.State(src,this,env);this.core.process(state);return state.tokens;};/** - * MarkdownIt.render(src [, env]) -> String - * - src (String): source string - * - env (Object): environment sandbox - * - * Render markdown string into html. It does all magic for you :). - * - * `env` can be used to inject additional metadata (`{}` by default). - * But you will not need it with high probability. See also comment - * in [[MarkdownIt.parse]]. - **/MarkdownIt.prototype.render=function(src,env){env=env||{};return this.renderer.render(this.parse(src,env),this.options,env);};/** internal - * MarkdownIt.parseInline(src, env) -> Array - * - src (String): source string - * - env (Object): environment sandbox - * - * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the - * block tokens list with the single `inline` element, containing parsed inline - * tokens in `children` property. Also updates `env` object. - **/MarkdownIt.prototype.parseInline=function(src,env){var state=new this.core.State(src,this,env);state.inlineMode=true;this.core.process(state);return state.tokens;};/** - * MarkdownIt.renderInline(src [, env]) -> String - * - src (String): source string - * - env (Object): environment sandbox - * - * Similar to [[MarkdownIt.render]] but for single paragraph content. Result - * will NOT be wrapped into `

` tags. - **/MarkdownIt.prototype.renderInline=function(src,env){env=env||{};return this.renderer.render(this.parseInline(src,env),this.options,env);};var lib$3=MarkdownIt;var markdownIt$1=lib$3;var markdownIt=new markdownIt$1();function renderMd(md){if(typeof md!=='string'){return md;}var html=markdownIt.render(md||'');return React__default['default'].createElement("div",{dangerouslySetInnerHTML:{__html:purify.sanitize(html)}});}var __assign$4=function(){__assign$4=Object.assign||function(t){for(var s,i=1,n=arguments.length;i value) dictionary for an object - * - * @param obj - * @param {function} descend - * @returns {} - */api.dict=function dict(obj,descend){var results={};api.walk(obj,function(value,pointer){results[pointer]=value;},descend);return results;};/** - * Iterates over an object - * Iterator: function (value, pointer) {} - * - * @param obj - * @param {function} iterator - * @param {function} descend - */api.walk=function walk(obj,iterator,descend){var refTokens=[];descend=descend||function(value){var type=Object.prototype.toString.call(value);return type==='[object Object]'||type==='[object Array]';};(function next(cur){each(cur,function(value,key){refTokens.push(String(key));if(descend(value)){next(value);}else {iterator(value,api.compile(refTokens));}refTokens.pop();});})(obj);};/** - * Tests if an object has a value for a json pointer - * - * @param obj - * @param pointer - * @returns {boolean} - */api.has=function has(obj,pointer){try{api.get(obj,pointer);}catch(e){return false;}return true;};/** - * Escapes a reference token - * - * @param str - * @returns {string} - */api.escape=function escape(str){return str.toString().replace(/~/g,'~0').replace(/\//g,'~1');};/** - * Unescapes a reference token - * - * @param str - * @returns {string} - */api.unescape=function unescape(str){return str.replace(/~1/g,'/').replace(/~0/g,'~');};/** - * Converts a json pointer into a array of reference tokens - * - * @param pointer - * @returns {Array} - */api.parse=function parse(pointer){if(pointer===''){return [];}if(pointer.charAt(0)!=='/'){throw new Error('Invalid JSON pointer: '+pointer);}return pointer.substring(1).split(/\//).map(api.unescape);};/** - * Builds a json pointer from a array of reference tokens - * - * @param refTokens - * @returns {string} - */api.compile=function compile(refTokens){if(refTokens.length===0){return '';}return '/'+refTokens.map(api.escape).join('/');};},{"foreach":1}],3:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:true});exports.allOfSample=allOfSample;var _traverse2=require("./traverse");var _utils=require("./utils");function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i1&&arguments[1]!==undefined?arguments[1]:{};var spec=arguments.length>2?arguments[2]:undefined;var arrayLength=schema.minItems||1;if(Array.isArray(schema.items)){arrayLength=Math.max(arrayLength,schema.items.length);}var itemSchemaGetter=function itemSchemaGetter(itemNumber){if(Array.isArray(schema.items)){return schema.items[itemNumber]||{};}return schema.items||{};};var res=[];if(!schema.items)return res;for(var i=0;i=schema.maximum||!schema.exclusiveMaximum&&res>schema.maximum){res=(schema.maximum+schema.minimum)/2;}return res;}if(schema.minimum){if(schema.exclusiveMinimum){return Math.floor(schema.minimum)+1;}else {return schema.minimum;}}if(schema.maximum){if(schema.exclusiveMaximum){return schema.maximum>0?0:Math.floor(schema.maximum)-1;}else {return schema.maximum>0?0:schema.maximum;}}return 0;}},{}],10:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:true});exports.sampleObject=sampleObject;var _traverse=require("../traverse");function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else {_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function sampleObject(schema){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var spec=arguments.length>2?arguments[2]:undefined;var res={};if(schema&&_typeof(schema.properties)==='object'){var requiredKeys=Array.isArray(schema.required)?schema.required:[];var requiredKeyDict=requiredKeys.reduce(function(dict,key){dict[key]=true;return dict;},{});Object.keys(schema.properties).forEach(function(propertyName){// skip before traverse that could be costly -if(options.skipNonRequired&&!requiredKeyDict.hasOwnProperty(propertyName)){return;}var sample=(0, _traverse.traverse)(schema.properties[propertyName],options,spec,{propertyName:propertyName});if(options.skipReadOnly&&sample.readOnly){return;}if(options.skipWriteOnly&&sample.writeOnly){return;}res[propertyName]=sample.value;});}if(schema&&_typeof(schema.additionalProperties)==='object'){res.property1=(0, _traverse.traverse)(schema.additionalProperties,options,spec).value;res.property2=(0, _traverse.traverse)(schema.additionalProperties,options,spec).value;}return res;}},{"../traverse":12}],11:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:true});exports.sampleString=sampleString;var _utils=require("../utils");var passwordSymbols='qwerty!@#$%^123456';function emailSample(){return 'user@example.com';}function passwordSample(min,max){var res='pa$$word';if(min>res.length){res+='_';res+=(0, _utils.ensureMinLength)(passwordSymbols,min-res.length).substring(0,min-res.length);}return res;}function commonDateTimeSample(min,max,omitTime){var res=(0, _utils.toRFCDateTime)(new Date('2019-08-24T14:15:22.123Z'),omitTime,false);if(res.lengthmax){console.warn("Using maxLength = ".concat(max," is incorrect with format \"date-time\""));}return res;}function dateTimeSample(min,max){return commonDateTimeSample(min,max);}function dateSample(min,max){return commonDateTimeSample(min,max,true);}function defaultSample(min,max){var res=(0, _utils.ensureMinLength)('string',min);if(max&&res.length>max){res=res.substring(0,max);}return res;}function ipv4Sample(){return '192.168.0.1';}function ipv6Sample(){return '2001:0db8:85a3:0000:0000:8a2e:0370:7334';}function hostnameSample(){return 'example.com';}function uriSample(){return 'http://example.com';}function uuidSample(_min,_max,propertyName){return (0, _utils.uuid)(propertyName||'id');}var stringFormats={'email':emailSample,'password':passwordSample,'date-time':dateTimeSample,'date':dateSample,'ipv4':ipv4Sample,'ipv6':ipv6Sample,'hostname':hostnameSample,'uri':uriSample,'uuid':uuidSample,'default':defaultSample};function sampleString(schema,options,spec,context){var format=schema.format||'default';var sampler=stringFormats[format]||defaultSample;var propertyName=context&&context.propertyName;return sampler(schema.minLength|0,schema.maxLength,propertyName);}},{"../utils":13}],12:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:true});exports.clearCache=clearCache;exports.traverse=traverse;var _openapiSampler=require("./openapi-sampler");var _allOf=require("./allOf");var _infer=require("./infer");var _jsonPointer=_interopRequireDefault(require("json-pointer"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;isample.length){return sample.repeat(Math.trunc(min/sample.length)+1).substring(0,min);}return sample;}function mergeDeep(){var isObject=function isObject(obj){return obj&&_typeof(obj)==='object';};for(var _len=arguments.length,objects=new Array(_len),_key=0;_key<_len;_key++){objects[_key]=arguments[_key];}return objects.reduce(function(prev,obj){Object.keys(obj).forEach(function(key){var pVal=prev[key];var oVal=obj[key];if(isObject(pVal)&&isObject(oVal)){prev[key]=mergeDeep(pVal,oVal);}else {prev[key]=oVal;}});return prev;},Array.isArray(objects[objects.length-1])?[]:{});}// deterministic UUID sampler -function uuid(str){var hash=hashCode(str);var random=jsf32(hash,hash,hash,hash);var uuid='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c){var r=random()*16%16|0;return (c=='x'?r:r&0x3|0x8).toString(16);});return uuid;}function hashCode(str){var hash=0;if(str.length==0)return hash;for(var i=0;i>>5)|0;a=b^(c<<17|c>>>15);b=c+d|0;c=d+t|0;d=a+t|0;return (d>>>0)/4294967296;};}},{}]},{},[5])(5);});});var generateExampleSchema=function(schema){try{return openapiSampler.sample(schema);}catch(e){return;}};function inContainer(item){switch(item){case ITEM_LABELS.CHANNEL:return CONTAINER_LABELS.CHANNELS;case ITEM_LABELS.SERVER:return CONTAINER_LABELS.SERVERS;case ITEM_LABELS.MESSAGE:return CONTAINER_LABELS.MESSAGES;case ITEM_LABELS.SCHEMA:return CONTAINER_LABELS.SCHEMAS;default:return '';}}var StateHelpers=function(){function StateHelpers(){var _this=this;this.calculateNumberOfElements=function(_a){var spec=_a.spec,showConfig=_a.showConfig;var showConfigKeys=Object.keys(showConfig);var fn=function(obj){var numberOfElements=0;Object.entries(obj).map(function(_a){var key=_a[0],value=_a[1];var condition=Boolean(key!=='info'&&showConfigKeys.includes(key)&&showConfig[key]);if(condition){numberOfElements+=1;if(Array.isArray(value)){numberOfElements+=value.length;}if(typeof value==='object'){if(_this.isServers(value)){numberOfElements+=_this.calculateServers(value);}else {numberOfElements+=Object.keys(value).length;}}}});return numberOfElements;};return fn(spec)+fn(spec.components||{});};this.calculateInitialExpandedElements=function(_a){var spec=_a.spec,showConfig=_a.showConfig,expandConfig=_a.expandConfig;var showConfigKeys=Object.keys(showConfig);var collapseConfigKeys=Object.keys(showConfig);var fn=function(obj){var numberOfElements=0;Object.entries(obj).map(function(_a){var key=_a[0],value=_a[1];var condition=Boolean(key!=='info'&&showConfigKeys.includes(key)&&showConfig[key]&&collapseConfigKeys.includes(key)&&expandConfig[key]);if(condition){var field=expandConfig[key];if(field.root){numberOfElements+=1;}if(!field.elements){return;}if(Array.isArray(value)){numberOfElements+=value.length;}if(typeof value==='object'){if(_this.isServers(value)){numberOfElements+=_this.calculateServers(value);}else {numberOfElements+=Object.keys(value).length;}}}});return numberOfElements;};return fn(spec)+fn(spec.components||{});};}StateHelpers.prototype.calculateServers=function(servers){if(!servers||!Object.keys(servers).length){return 0;}var elements=0;Object.entries(servers).map(function(_a){_a[0];var server=_a[1];elements+=Number(Boolean(server.description&&server.security&&server.variables));});return elements;};StateHelpers.prototype.isServers=function(v){if(!v||!Object.keys(v).length){return false;}return !!v[Object.keys(v)[0]].protocol;};return StateHelpers;}();var stateHelpers=new StateHelpers();var global$1=typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{};// shim for using process in browser -// based off https://github.com/defunctzombie/node-process/blob/master/browser.js -function defaultSetTimout(){throw new Error('setTimeout has not been defined');}function defaultClearTimeout(){throw new Error('clearTimeout has not been defined');}var cachedSetTimeout=defaultSetTimout;var cachedClearTimeout=defaultClearTimeout;if(typeof global$1.setTimeout==='function'){cachedSetTimeout=setTimeout;}if(typeof global$1.clearTimeout==='function'){cachedClearTimeout=clearTimeout;}function runTimeout(fun){if(cachedSetTimeout===setTimeout){//normal enviroments in sane situations -return setTimeout(fun,0);}// if setTimeout wasn't available but was latter defined -if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0);}try{// when when somebody has screwed with setTimeout but no I.E. maddness -return cachedSetTimeout(fun,0);}catch(e){try{// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally -return cachedSetTimeout.call(null,fun,0);}catch(e){// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error -return cachedSetTimeout.call(this,fun,0);}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){//normal enviroments in sane situations -return clearTimeout(marker);}// if clearTimeout wasn't available but was latter defined -if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker);}try{// when when somebody has screwed with setTimeout but no I.E. maddness -return cachedClearTimeout(marker);}catch(e){try{// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally -return cachedClearTimeout.call(null,marker);}catch(e){// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. -// Some versions of I.E. have different rules for clearTimeout vs setTimeout -return cachedClearTimeout.call(this,marker);}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return;}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue);}else {queueIndex=-1;}if(queue.length){drainQueue();}}function drainQueue(){if(draining){return;}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex1){for(var i=1;i 0 -var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==='.'){parts.splice(i,1);}else if(last==='..'){parts.splice(i,1);up++;}else if(up){parts.splice(i,1);up--;}}// if the path is allowed to go above the root, restore leading ..s -if(allowAboveRoot){for(;up--;up){parts.unshift('..');}}return parts;}// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1);};// path.resolve([from ...], to) -// posix version -function resolve$1(){var resolvedPath='',resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:'/';// Skip empty and invalid entries -if(typeof path!=='string'){throw new TypeError('Arguments to path.resolve must be strings');}else if(!path){continue;}resolvedPath=path+'/'+resolvedPath;resolvedAbsolute=path.charAt(0)==='/';}// At this point the path should be resolved to a full absolute path, but -// handle relative paths to be safe (might happen when process.cwd() fails) -// Normalize the path -resolvedPath=normalizeArray(filter$1(resolvedPath.split('/'),function(p){return !!p;}),!resolvedAbsolute).join('/');return (resolvedAbsolute?'/':'')+resolvedPath||'.';}// path.normalize(path) -// posix version -function normalize(path){var isPathAbsolute=isAbsolute(path),trailingSlash=substr(path,-1)==='/';// Normalize the path -path=normalizeArray(filter$1(path.split('/'),function(p){return !!p;}),!isPathAbsolute).join('/');if(!path&&!isPathAbsolute){path='.';}if(path&&trailingSlash){path+='/';}return (isPathAbsolute?'/':'')+path;}// posix version -function isAbsolute(path){return path.charAt(0)==='/';}// posix version -function join(){var paths=Array.prototype.slice.call(arguments,0);return normalize(filter$1(paths,function(p,index){if(typeof p!=='string'){throw new TypeError('Arguments to path.join must be strings');}return p;}).join('/'));}// path.relative(from, to) -// posix version -function relative(from,to){from=resolve$1(from).substr(1);to=resolve$1(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=='')break;}if(start>end)return [];return arr.slice(start,end-start+1);}var fromParts=trim(from.split('/'));var toParts=trim(to.split('/'));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i1){sets[0]=sets[0].slice(0,-1);var xl=sets.length-1;for(var x=1;x= 0x80 (not a basic code point)','invalid-input':'Invalid input'};/** Convenience shortcuts */var baseMinusTMin=base-tMin;var floor=Math.floor;var stringFromCharCode=String.fromCharCode;/*--------------------------------------------------------------------------*/ /** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */function error$1(type){throw new RangeError(errors[type]);}/** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */function map(array,fn){var result=[];var length=array.length;while(length--){result[length]=fn(array[length]);}return result;}/** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */function mapDomain(string,fn){var parts=string.split('@');var result='';if(parts.length>1){// In email addresses, only the domain name should be punycoded. Leave -// the local part (i.e. everything up to `@`) intact. -result=parts[0]+'@';string=parts[1];}// Avoid `split(regex)` for IE8 compatibility. See #17. -string=string.replace(regexSeparators,'\x2E');var labels=string.split('.');var encoded=map(labels,fn).join('.');return result+encoded;}/** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */function ucs2decode(string){var output=[];var counter=0;var length=string.length;while(counter=0xD800&&value<=0xDBFF&&counter>1;delta+=floor(delta/numPoints);for(;/* no initialization */delta>baseMinusTMin*tMax>>1;k+=base){delta=floor(delta/baseMinusTMin);}return floor(k+(baseMinusTMin+1)*delta/(delta+skew));};/** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */var decode=function decode(input){// Don't use UCS-2. -var output=[];var inputLength=input.length;var i=0;var n=initialN;var bias=initialBias;// Handle the basic code points: let `basic` be the number of input code -// points before the last delimiter, or `0` if there is none, then copy -// the first basic code points to the output. -var basic=input.lastIndexOf(delimiter);if(basic<0){basic=0;}for(var j=0;j=0x80){error$1('not-basic');}output.push(input.charCodeAt(j));}// Main decoding loop: start just after the last delimiter if any basic code -// points were copied; start at the beginning otherwise. -for(var index=basic>0?basic+1:0;index=inputLength){error$1('invalid-input');}var digit=basicToDigit(input.charCodeAt(index++));if(digit>=base||digit>floor((maxInt-i)/w)){error$1('overflow');}i+=digit*w;var t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(digitfloor(maxInt/baseMinusT)){error$1('overflow');}w*=baseMinusT;}var out=output.length+1;bias=adapt(i-oldi,out,oldi==0);// `i` was supposed to wrap around from `out` to `0`, -// incrementing `n` each time, so we'll fix that now: -if(floor(i/out)>maxInt-n){error$1('overflow');}n+=floor(i/out);i%=out;// Insert `n` at position `i` of the output. -output.splice(i++,0,n);}return String.fromCodePoint.apply(String,output);};/** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */var encode=function encode(input){var output=[];// Convert the input in UCS-2 to an array of Unicode code points. -input=ucs2decode(input);// Cache the length. -var inputLength=input.length;// Initialize the state. -var n=initialN;var delta=0;var bias=initialBias;// Handle the basic code points. -var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=input[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _currentValue2=_step.value;if(_currentValue2<0x80){output.push(stringFromCharCode(_currentValue2));}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}var basicLength=output.length;var handledCPCount=basicLength;// `handledCPCount` is the number of code points that have been handled; -// `basicLength` is the number of basic code points. -// Finish the basic string with a delimiter unless it's empty. -if(basicLength){output.push(delimiter);}// Main encoding loop: -while(handledCPCount=n&¤tValue state to , -// but guard against overflow. -}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}var handledCPCountPlusOne=handledCPCount+1;if(m-n>floor((maxInt-delta)/handledCPCountPlusOne)){error$1('overflow');}delta+=(m-n)*handledCPCountPlusOne;n=m;var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=input[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var _currentValue=_step3.value;if(_currentValuemaxInt){error$1('overflow');}if(_currentValue==n){// Represent delta as a generalized variable-length integer. -var q=delta;for(var k=base;;/* no condition */k+=base){var t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(q - * @memberOf punycode - * @type Object - */'ucs2':{'decode':ucs2decode,'encode':ucs2encode},'decode':decode,'encode':encode,'toASCII':toASCII,'toUnicode':toUnicode};/** - * URI.js - * - * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript. - * @author Gary Court - * @see http://github.com/garycourt/uri-js - */ /** - * Copyright 2011 Gary Court. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of Gary Court. - */var SCHEMES={};function pctEncChar(chr){var c=chr.charCodeAt(0);var e=void 0;if(c<16)e="%0"+c.toString(16).toUpperCase();else if(c<128)e="%"+c.toString(16).toUpperCase();else if(c<2048)e="%"+(c>>6|192).toString(16).toUpperCase()+"%"+(c&63|128).toString(16).toUpperCase();else e="%"+(c>>12|224).toString(16).toUpperCase()+"%"+(c>>6&63|128).toString(16).toUpperCase()+"%"+(c&63|128).toString(16).toUpperCase();return e;}function pctDecChars(str){var newStr="";var i=0;var il=str.length;while(i=194&&c<224){if(il-i>=6){var c2=parseInt(str.substr(i+4,2),16);newStr+=String.fromCharCode((c&31)<<6|c2&63);}else {newStr+=str.substr(i,6);}i+=6;}else if(c>=224){if(il-i>=9){var _c=parseInt(str.substr(i+4,2),16);var c3=parseInt(str.substr(i+7,2),16);newStr+=String.fromCharCode((c&15)<<12|(_c&63)<<6|c3&63);}else {newStr+=str.substr(i,9);}i+=9;}else {newStr+=str.substr(i,3);i+=3;}}return newStr;}function _normalizeComponentEncoding(components,protocol){function decodeUnreserved(str){var decStr=pctDecChars(str);return !decStr.match(protocol.UNRESERVED)?str:decStr;}if(components.scheme)components.scheme=String(components.scheme).replace(protocol.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME,"");if(components.userinfo!==undefined)components.userinfo=String(components.userinfo).replace(protocol.PCT_ENCODED,decodeUnreserved).replace(protocol.NOT_USERINFO,pctEncChar).replace(protocol.PCT_ENCODED,toUpperCase);if(components.host!==undefined)components.host=String(components.host).replace(protocol.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST,pctEncChar).replace(protocol.PCT_ENCODED,toUpperCase);if(components.path!==undefined)components.path=String(components.path).replace(protocol.PCT_ENCODED,decodeUnreserved).replace(components.scheme?protocol.NOT_PATH:protocol.NOT_PATH_NOSCHEME,pctEncChar).replace(protocol.PCT_ENCODED,toUpperCase);if(components.query!==undefined)components.query=String(components.query).replace(protocol.PCT_ENCODED,decodeUnreserved).replace(protocol.NOT_QUERY,pctEncChar).replace(protocol.PCT_ENCODED,toUpperCase);if(components.fragment!==undefined)components.fragment=String(components.fragment).replace(protocol.PCT_ENCODED,decodeUnreserved).replace(protocol.NOT_FRAGMENT,pctEncChar).replace(protocol.PCT_ENCODED,toUpperCase);return components;}function _stripLeadingZeros(str){return str.replace(/^0*(.*)/,"$1")||"0";}function _normalizeIPv4(host,protocol){var matches=host.match(protocol.IPV4ADDRESS)||[];var _matches=slicedToArray(matches,2),address=_matches[1];if(address){return address.split(".").map(_stripLeadingZeros).join(".");}else {return host;}}function _normalizeIPv6(host,protocol){var matches=host.match(protocol.IPV6ADDRESS)||[];var _matches2=slicedToArray(matches,3),address=_matches2[1],zone=_matches2[2];if(address){var _address$toLowerCase$=address.toLowerCase().split('::').reverse(),_address$toLowerCase$2=slicedToArray(_address$toLowerCase$,2),last=_address$toLowerCase$2[0],first=_address$toLowerCase$2[1];var firstFields=first?first.split(":").map(_stripLeadingZeros):[];var lastFields=last.split(":").map(_stripLeadingZeros);var isLastFieldIPv4Address=protocol.IPV4ADDRESS.test(lastFields[lastFields.length-1]);var fieldCount=isLastFieldIPv4Address?7:8;var lastFieldsStart=lastFields.length-fieldCount;var fields=Array(fieldCount);for(var x=0;x1){var newFirst=fields.slice(0,longestZeroFields.index);var newLast=fields.slice(longestZeroFields.index+longestZeroFields.length);newHost=newFirst.join(":")+"::"+newLast.join(":");}else {newHost=fields.join(":");}if(zone){newHost+="%"+zone;}return newHost;}else {return host;}}var URI_PARSE=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;var NO_MATCH_IS_UNDEFINED="".match(/(){0}/)[1]===undefined;function parse(uriString){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var components={};var protocol=options.iri!==false?IRI_PROTOCOL:URI_PROTOCOL;if(options.reference==="suffix")uriString=(options.scheme?options.scheme+":":"")+"//"+uriString;var matches=uriString.match(URI_PARSE);if(matches){if(NO_MATCH_IS_UNDEFINED){//store each component -components.scheme=matches[1];components.userinfo=matches[3];components.host=matches[4];components.port=parseInt(matches[5],10);components.path=matches[6]||"";components.query=matches[7];components.fragment=matches[8];//fix port number -if(isNaN(components.port)){components.port=matches[5];}}else {//IE FIX for improper RegExp matching -//store each component -components.scheme=matches[1]||undefined;components.userinfo=uriString.indexOf("@")!==-1?matches[3]:undefined;components.host=uriString.indexOf("//")!==-1?matches[4]:undefined;components.port=parseInt(matches[5],10);components.path=matches[6]||"";components.query=uriString.indexOf("?")!==-1?matches[7]:undefined;components.fragment=uriString.indexOf("#")!==-1?matches[8]:undefined;//fix port number -if(isNaN(components.port)){components.port=uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?matches[4]:undefined;}}if(components.host){//normalize IP hosts -components.host=_normalizeIPv6(_normalizeIPv4(components.host,protocol),protocol);}//determine reference type -if(components.scheme===undefined&&components.userinfo===undefined&&components.host===undefined&&components.port===undefined&&!components.path&&components.query===undefined){components.reference="same-document";}else if(components.scheme===undefined){components.reference="relative";}else if(components.fragment===undefined){components.reference="absolute";}else {components.reference="uri";}//check for reference errors -if(options.reference&&options.reference!=="suffix"&&options.reference!==components.reference){components.error=components.error||"URI is not a "+options.reference+" reference.";}//find scheme handler -var schemeHandler=SCHEMES[(options.scheme||components.scheme||"").toLowerCase()];//check if scheme can't handle IRIs -if(!options.unicodeSupport&&(!schemeHandler||!schemeHandler.unicodeSupport)){//if host component is a domain name -if(components.host&&(options.domainHost||schemeHandler&&schemeHandler.domainHost)){//convert Unicode IDN -> ASCII IDN -try{components.host=punycode.toASCII(components.host.replace(protocol.PCT_ENCODED,pctDecChars).toLowerCase());}catch(e){components.error=components.error||"Host's domain name can not be converted to ASCII via punycode: "+e;}}//convert IRI -> URI -_normalizeComponentEncoding(components,URI_PROTOCOL);}else {//normalize encodings -_normalizeComponentEncoding(components,protocol);}//perform scheme specific parsing -if(schemeHandler&&schemeHandler.parse){schemeHandler.parse(components,options);}}else {components.error=components.error||"URI can not be parsed.";}return components;}function _recomposeAuthority(components,options){var protocol=options.iri!==false?IRI_PROTOCOL:URI_PROTOCOL;var uriTokens=[];if(components.userinfo!==undefined){uriTokens.push(components.userinfo);uriTokens.push("@");}if(components.host!==undefined){//normalize IP hosts, add brackets and escape zone separator for IPv6 -uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host),protocol),protocol).replace(protocol.IPV6ADDRESS,function(_,$1,$2){return "["+$1+($2?"%25"+$2:"")+"]";}));}if(typeof components.port==="number"){uriTokens.push(":");uriTokens.push(components.port.toString(10));}return uriTokens.length?uriTokens.join(""):undefined;}var RDS1=/^\.\.?\//;var RDS2=/^\/\.(\/|$)/;var RDS3=/^\/\.\.(\/|$)/;var RDS5=/^\/?(?:.|\n)*?(?=\/|$)/;function removeDotSegments(input){var output=[];while(input.length){if(input.match(RDS1)){input=input.replace(RDS1,"");}else if(input.match(RDS2)){input=input.replace(RDS2,"/");}else if(input.match(RDS3)){input=input.replace(RDS3,"/");output.pop();}else if(input==="."||input===".."){input="";}else {var im=input.match(RDS5);if(im){var s=im[0];input=input.slice(s.length);output.push(s);}else {throw new Error("Unexpected dot segment condition");}}}return output.join("");}function serialize(components){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var protocol=options.iri?IRI_PROTOCOL:URI_PROTOCOL;var uriTokens=[];//find scheme handler -var schemeHandler=SCHEMES[(options.scheme||components.scheme||"").toLowerCase()];//perform scheme specific serialization -if(schemeHandler&&schemeHandler.serialize)schemeHandler.serialize(components,options);if(components.host){//if host component is an IPv6 address -if(protocol.IPV6ADDRESS.test(components.host));//TODO: normalize IPv6 address as per RFC 5952 -//if host component is a domain name -else if(options.domainHost||schemeHandler&&schemeHandler.domainHost){//convert IDN via punycode -try{components.host=!options.iri?punycode.toASCII(components.host.replace(protocol.PCT_ENCODED,pctDecChars).toLowerCase()):punycode.toUnicode(components.host);}catch(e){components.error=components.error||"Host's domain name can not be converted to "+(!options.iri?"ASCII":"Unicode")+" via punycode: "+e;}}}//normalize encoding -_normalizeComponentEncoding(components,protocol);if(options.reference!=="suffix"&&components.scheme){uriTokens.push(components.scheme);uriTokens.push(":");}var authority=_recomposeAuthority(components,options);if(authority!==undefined){if(options.reference!=="suffix"){uriTokens.push("//");}uriTokens.push(authority);if(components.path&&components.path.charAt(0)!=="/"){uriTokens.push("/");}}if(components.path!==undefined){var s=components.path;if(!options.absolutePath&&(!schemeHandler||!schemeHandler.absolutePath)){s=removeDotSegments(s);}if(authority===undefined){s=s.replace(/^\/\//,"/%2F");//don't allow the path to start with "//" -}uriTokens.push(s);}if(components.query!==undefined){uriTokens.push("?");uriTokens.push(components.query);}if(components.fragment!==undefined){uriTokens.push("#");uriTokens.push(components.fragment);}return uriTokens.join("");//merge tokens into a string -}function resolveComponents(base,relative){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var skipNormalization=arguments[3];var target={};if(!skipNormalization){base=parse(serialize(base,options),options);//normalize base components -relative=parse(serialize(relative,options),options);//normalize relative components -}options=options||{};if(!options.tolerant&&relative.scheme){target.scheme=relative.scheme;//target.authority = relative.authority; -target.userinfo=relative.userinfo;target.host=relative.host;target.port=relative.port;target.path=removeDotSegments(relative.path||"");target.query=relative.query;}else {if(relative.userinfo!==undefined||relative.host!==undefined||relative.port!==undefined){//target.authority = relative.authority; -target.userinfo=relative.userinfo;target.host=relative.host;target.port=relative.port;target.path=removeDotSegments(relative.path||"");target.query=relative.query;}else {if(!relative.path){target.path=base.path;if(relative.query!==undefined){target.query=relative.query;}else {target.query=base.query;}}else {if(relative.path.charAt(0)==="/"){target.path=removeDotSegments(relative.path);}else {if((base.userinfo!==undefined||base.host!==undefined||base.port!==undefined)&&!base.path){target.path="/"+relative.path;}else if(!base.path){target.path=relative.path;}else {target.path=base.path.slice(0,base.path.lastIndexOf("/")+1)+relative.path;}target.path=removeDotSegments(target.path);}target.query=relative.query;}//target.authority = base.authority; -target.userinfo=base.userinfo;target.host=base.host;target.port=base.port;}target.scheme=base.scheme;}target.fragment=relative.fragment;return target;}function resolve(baseURI,relativeURI,options){var schemelessOptions=assign({scheme:'null'},options);return serialize(resolveComponents(parse(baseURI,schemelessOptions),parse(relativeURI,schemelessOptions),schemelessOptions,true),schemelessOptions);}function normalize(uri,options){if(typeof uri==="string"){uri=serialize(parse(uri,options),options);}else if(typeOf(uri)==="object"){uri=parse(serialize(uri,options),options);}return uri;}function equal(uriA,uriB,options){if(typeof uriA==="string"){uriA=serialize(parse(uriA,options),options);}else if(typeOf(uriA)==="object"){uriA=serialize(uriA,options);}if(typeof uriB==="string"){uriB=serialize(parse(uriB,options),options);}else if(typeOf(uriB)==="object"){uriB=serialize(uriB,options);}return uriA===uriB;}function escapeComponent(str,options){return str&&str.toString().replace(!options||!options.iri?URI_PROTOCOL.ESCAPE:IRI_PROTOCOL.ESCAPE,pctEncChar);}function unescapeComponent(str,options){return str&&str.toString().replace(!options||!options.iri?URI_PROTOCOL.PCT_ENCODED:IRI_PROTOCOL.PCT_ENCODED,pctDecChars);}var handler={scheme:"http",domainHost:true,parse:function parse(components,options){//report missing host -if(!components.host){components.error=components.error||"HTTP URIs must have a host.";}return components;},serialize:function serialize(components,options){//normalize the default port -if(components.port===(String(components.scheme).toLowerCase()!=="https"?80:443)||components.port===""){components.port=undefined;}//normalize the empty path -if(!components.path){components.path="/";}//NOTE: We do not parse query strings for HTTP URIs -//as WWW Form Url Encoded query strings are part of the HTML4+ spec, -//and not the HTTP spec. -return components;}};var handler$1={scheme:"https",domainHost:handler.domainHost,parse:handler.parse,serialize:handler.serialize};var O={};//RFC 3986 -var UNRESERVED$$="[A-Za-z0-9\\-\\.\\_\\~"+"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF"+"]";var HEXDIG$$="[0-9A-Fa-f]";//case-insensitive -var PCT_ENCODED$=subexp(subexp("%[EFef]"+HEXDIG$$+"%"+HEXDIG$$+HEXDIG$$+"%"+HEXDIG$$+HEXDIG$$)+"|"+subexp("%[89A-Fa-f]"+HEXDIG$$+"%"+HEXDIG$$+HEXDIG$$)+"|"+subexp("%"+HEXDIG$$+HEXDIG$$));//expanded -//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; = -//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]"; -//const WSP$$ = "[\\x20\\x09]"; -//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]"; //(%d1-8 / %d11-12 / %d14-31 / %d127) -//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext -//const VCHAR$$ = "[\\x21-\\x7E]"; -//const WSP$$ = "[\\x20\\x09]"; -//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext -//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+"); -//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$); -//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"'); -var ATEXT$$="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";var QTEXT$$="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";var VCHAR$$=merge(QTEXT$$,"[\\\"\\\\]");var SOME_DELIMS$$="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";var UNRESERVED=new RegExp(UNRESERVED$$,"g");var PCT_ENCODED=new RegExp(PCT_ENCODED$,"g");var NOT_LOCAL_PART=new RegExp(merge("[^]",ATEXT$$,"[\\.]",'[\\"]',VCHAR$$),"g");var NOT_HFNAME=new RegExp(merge("[^]",UNRESERVED$$,SOME_DELIMS$$),"g");var NOT_HFVALUE=NOT_HFNAME;function decodeUnreserved(str){var decStr=pctDecChars(str);return !decStr.match(UNRESERVED)?str:decStr;}var handler$2={scheme:"mailto",parse:function parse$$1(components,options){var mailtoComponents=components;var to=mailtoComponents.to=mailtoComponents.path?mailtoComponents.path.split(","):[];mailtoComponents.path=undefined;if(mailtoComponents.query){var unknownHeaders=false;var headers={};var hfields=mailtoComponents.query.split("&");for(var x=0,xl=hfields.length;x ASCII IDN -try{addr[1]=punycode.toASCII(unescapeComponent(addr[1],options).toLowerCase());}catch(e){mailtoComponents.error=mailtoComponents.error||"Email address's domain name can not be converted to ASCII via punycode: "+e;}}else {addr[1]=unescapeComponent(addr[1],options).toLowerCase();}to[_x2]=addr.join("@");}return mailtoComponents;},serialize:function serialize$$1(mailtoComponents,options){var components=mailtoComponents;var to=toArray(mailtoComponents.to);if(to){for(var x=0,xl=to.length;x=0xD800&&value<=0xDBFF&&pos=lvl)throw new Error('Cannot access property/index '+up+' levels up, current level is '+lvl);return paths[lvl-up];}if(up>lvl)throw new Error('Cannot access data '+up+' levels up, current level is '+lvl);data='data'+(lvl-up||'');if(!jsonPointer)return data;}var expr=data;var segments=jsonPointer.split('/');for(var i=0;i=0)return {index:index,compiling:true};index=this._compilations.length;this._compilations[index]={schema:schema,root:root,baseId:baseId};return {index:index,compiling:false};}/** - * Removes the schema from the currently compiled list - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - */function endCompiling(schema,root,baseId){/* jshint validthis: true */var i=compIndex.call(this,schema,root,baseId);if(i>=0)this._compilations.splice(i,1);}/** - * Index of schema compilation in the currently compiled list - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - * @return {Integer} compilation index - */function compIndex(schema,root,baseId){/* jshint validthis: true */for(var i=0;i%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;// For the source: https://gist.github.com/dperini/729294 -// For test cases: https://mathiasbynens.be/demo/url-regex -// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983. -// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu; -var URL=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i;var UUID=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;var JSON_POINTER=/^(?:\/(?:[^~/]|~0|~1)*)*$/;var JSON_POINTER_URI_FRAGMENT=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;var RELATIVE_JSON_POINTER=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;var formats_1=formats;function formats(mode){mode=mode=='full'?'full':'fast';return util.copy(formats[mode]);}formats.fast={// date: http://tools.ietf.org/html/rfc3339#section-5.6 -date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,// date-time: http://tools.ietf.org/html/rfc3339#section-5.6 -time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,'date-time':/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,// uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js -uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,'uri-reference':/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,'uri-template':URITEMPLATE,url:URL,// email (sources from jsen validator): -// http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363 -// http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation') -email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:HOSTNAME,// optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html -ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,// optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses -ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:regex,// uuid: http://tools.ietf.org/html/rfc4122 -uuid:UUID,// JSON-pointer: https://tools.ietf.org/html/rfc6901 -// uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A -'json-pointer':JSON_POINTER,'json-pointer-uri-fragment':JSON_POINTER_URI_FRAGMENT,// relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00 -'relative-json-pointer':RELATIVE_JSON_POINTER};formats.full={date:date,time:time,'date-time':date_time,uri:uri,'uri-reference':URIREF,'uri-template':URITEMPLATE,url:URL,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:HOSTNAME,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:regex,uuid:UUID,'json-pointer':JSON_POINTER,'json-pointer-uri-fragment':JSON_POINTER_URI_FRAGMENT,'relative-json-pointer':RELATIVE_JSON_POINTER};function isLeapYear(year){// https://tools.ietf.org/html/rfc3339#appendix-C -return year%4===0&&(year%100!==0||year%400===0);}function date(str){// full-date from http://tools.ietf.org/html/rfc3339#section-5.6 -var matches=str.match(DATE);if(!matches)return false;var year=+matches[1];var month=+matches[2];var day=+matches[3];return month>=1&&month<=12&&day>=1&&day<=(month==2&&isLeapYear(year)?29:DAYS[month]);}function time(str,full){var matches=str.match(TIME$1);if(!matches)return false;var hour=matches[1];var minute=matches[2];var second=matches[3];var timeZone=matches[5];return (hour<=23&&minute<=59&&second<=59||hour==23&&minute==59&&second==60)&&(!full||timeZone);}var DATE_TIME_SEPARATOR=/t|\s/i;function date_time(str){// http://tools.ietf.org/html/rfc3339#section-5.6 -var dateTime=str.split(DATE_TIME_SEPARATOR);return dateTime.length==2&&date(dateTime[0])&&time(dateTime[1],true);}var NOT_URI_FRAGMENT=/\/|:/;function uri(str){// http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "." -return NOT_URI_FRAGMENT.test(str)&&URI.test(str);}var Z_ANCHOR=/[^\\]\\Z/;function regex(str){if(Z_ANCHOR.test(str))return false;try{new RegExp(str);return true;}catch(e){return false;}}var ref$1=function generate_ref(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $valid='valid'+$lvl;var $async,$refCode;if($schema=='#'||$schema=='#/'){if(it.isRoot){$async=it.async;$refCode='validate';}else {$async=it.root.schema.$async===true;$refCode='root.refVal[0]';}}else {var $refVal=it.resolveRef(it.baseId,$schema,it.isRoot);if($refVal===undefined){var $message=it.MissingRefError.message(it.baseId,$schema);if(it.opts.missingRefs=='fail'){it.logger.error($message);var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'$ref'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { ref: \''+it.util.escapeQuotes($schema)+'\' } ';if(it.opts.messages!==false){out+=' , message: \'can\\\'t resolve reference '+it.util.escapeQuotes($schema)+'\' ';}if(it.opts.verbose){out+=' , schema: '+it.util.toQuotedString($schema)+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}if($breakOnError){out+=' if (false) { ';}}else if(it.opts.missingRefs=='ignore'){it.logger.warn($message);if($breakOnError){out+=' if (true) { ';}}else {throw new it.MissingRefError(it.baseId,$schema,$message);}}else if($refVal.inline){var $it=it.util.copy(it);$it.level++;var $nextValid='valid'+$it.level;$it.schema=$refVal.schema;$it.schemaPath='';$it.errSchemaPath=$schema;var $code=it.validate($it).replace(/validate\.schema/g,$refVal.code);out+=' '+$code+' ';if($breakOnError){out+=' if ('+$nextValid+') { ';}}else {$async=$refVal.$async===true||it.async&&$refVal.$async!==false;$refCode=$refVal.code;}}if($refCode){var $$outStack=$$outStack||[];$$outStack.push(out);out='';if(it.opts.passContext){out+=' '+$refCode+'.call(this, ';}else {out+=' '+$refCode+'( ';}out+=' '+$data+', (dataPath || \'\')';if(it.errorPath!='""'){out+=' + '+it.errorPath;}var $parentData=$dataLvl?'data'+($dataLvl-1||''):'parentData',$parentDataProperty=$dataLvl?it.dataPathArr[$dataLvl]:'parentDataProperty';out+=' , '+$parentData+' , '+$parentDataProperty+', rootData) ';var __callValidate=out;out=$$outStack.pop();if($async){if(!it.async)throw new Error('async schema referenced by sync schema');if($breakOnError){out+=' var '+$valid+'; ';}out+=' try { await '+__callValidate+'; ';if($breakOnError){out+=' '+$valid+' = true; ';}out+=' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';if($breakOnError){out+=' '+$valid+' = false; ';}out+=' } ';if($breakOnError){out+=' if ('+$valid+') { ';}}else {out+=' if (!'+__callValidate+') { if (vErrors === null) vErrors = '+$refCode+'.errors; else vErrors = vErrors.concat('+$refCode+'.errors); errors = vErrors.length; } ';if($breakOnError){out+=' else { ';}}}return out;};var allOf=function generate_allOf(it,$keyword,$ruleType){var out=' ';var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $it=it.util.copy(it);var $closingBraces='';$it.level++;var $nextValid='valid'+$it.level;var $currentBaseId=$it.baseId,$allSchemasEmpty=true;var arr1=$schema;if(arr1){var $sch,$i=-1,l1=arr1.length-1;while($i0:it.util.schemaHasRules($sch,it.RULES.all)){$allSchemasEmpty=false;$it.schema=$sch;$it.schemaPath=$schemaPath+'['+$i+']';$it.errSchemaPath=$errSchemaPath+'/'+$i;out+=' '+it.validate($it)+' ';$it.baseId=$currentBaseId;if($breakOnError){out+=' if ('+$nextValid+') { ';$closingBraces+='}';}}}}if($breakOnError){if($allSchemasEmpty){out+=' if (true) { ';}else {out+=' '+$closingBraces.slice(0,-1)+' ';}}return out;};var anyOf=function generate_anyOf(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $valid='valid'+$lvl;var $errs='errs__'+$lvl;var $it=it.util.copy(it);var $closingBraces='';$it.level++;var $nextValid='valid'+$it.level;var $noEmptySchema=$schema.every(function($sch){return it.opts.strictKeywords?typeof $sch=='object'&&Object.keys($sch).length>0:it.util.schemaHasRules($sch,it.RULES.all);});if($noEmptySchema){var $currentBaseId=$it.baseId;out+=' var '+$errs+' = errors; var '+$valid+' = false; ';var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=true;var arr1=$schema;if(arr1){var $sch,$i=-1,l1=arr1.length-1;while($i0:it.util.schemaHasRules($schema,it.RULES.all);out+='var '+$errs+' = errors;var '+$valid+';';if($nonEmptySchema){var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=true;$it.schema=$schema;$it.schemaPath=$schemaPath;$it.errSchemaPath=$errSchemaPath;out+=' var '+$nextValid+' = false; for (var '+$idx+' = 0; '+$idx+' < '+$data+'.length; '+$idx+'++) { ';$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,true);var $passData=$data+'['+$idx+']';$it.dataPathArr[$dataNxt]=$idx;var $code=it.validate($it);$it.baseId=$currentBaseId;if(it.util.varOccurences($code,$nextData)<2){out+=' '+it.util.varReplace($code,$nextData,$passData)+' ';}else {out+=' var '+$nextData+' = '+$passData+'; '+$code+' ';}out+=' if ('+$nextValid+') break; } ';it.compositeRule=$it.compositeRule=$wasComposite;out+=' '+$closingBraces+' if (!'+$nextValid+') {';}else {out+=' if ('+$data+'.length == 0) {';}var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'contains'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: {} ';if(it.opts.messages!==false){out+=' , message: \'should contain a valid item\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' } else { ';if($nonEmptySchema){out+=' errors = '+$errs+'; if (vErrors !== null) { if ('+$errs+') vErrors.length = '+$errs+'; else vErrors = null; } ';}if(it.opts.allErrors){out+=' } ';}return out;};var dependencies$1=function generate_dependencies(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $errs='errs__'+$lvl;var $it=it.util.copy(it);var $closingBraces='';$it.level++;var $nextValid='valid'+$it.level;var $schemaDeps={},$propertyDeps={},$ownProperties=it.opts.ownProperties;for($property in $schema){if($property=='__proto__')continue;var $sch=$schema[$property];var $deps=Array.isArray($sch)?$propertyDeps:$schemaDeps;$deps[$property]=$sch;}out+='var '+$errs+' = errors;';var $currentErrorPath=it.errorPath;out+='var missing'+$lvl+';';for(var $property in $propertyDeps){$deps=$propertyDeps[$property];if($deps.length){out+=' if ( '+$data+it.util.getProperty($property)+' !== undefined ';if($ownProperties){out+=' && Object.prototype.hasOwnProperty.call('+$data+', \''+it.util.escapeQuotes($property)+'\') ';}if($breakOnError){out+=' && ( ';var arr1=$deps;if(arr1){var $propertyKey,$i=-1,l1=arr1.length-1;while($i0:it.util.schemaHasRules($sch,it.RULES.all)){out+=' '+$nextValid+' = true; if ( '+$data+it.util.getProperty($property)+' !== undefined ';if($ownProperties){out+=' && Object.prototype.hasOwnProperty.call('+$data+', \''+it.util.escapeQuotes($property)+'\') ';}out+=') { ';$it.schema=$sch;$it.schemaPath=$schemaPath+it.util.getProperty($property);$it.errSchemaPath=$errSchemaPath+'/'+it.util.escapeFragment($property);out+=' '+it.validate($it)+' ';$it.baseId=$currentBaseId;out+=' } ';if($breakOnError){out+=' if ('+$nextValid+') { ';$closingBraces+='}';}}}if($breakOnError){out+=' '+$closingBraces+' if ('+$errs+' == errors) {';}return out;};var _enum=function generate_enum(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $valid='valid'+$lvl;var $isData=it.opts.$data&&$schema&&$schema.$data;if($isData){out+=' var schema'+$lvl+' = '+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+'; ';}var $i='i'+$lvl,$vSchema='schema'+$lvl;if(!$isData){out+=' var '+$vSchema+' = validate.schema'+$schemaPath+';';}out+='var '+$valid+';';if($isData){out+=' if (schema'+$lvl+' === undefined) '+$valid+' = true; else if (!Array.isArray(schema'+$lvl+')) '+$valid+' = false; else {';}out+=''+$valid+' = false;for (var '+$i+'=0; '+$i+'<'+$vSchema+'.length; '+$i+'++) if (equal('+$data+', '+$vSchema+'['+$i+'])) { '+$valid+' = true; break; }';if($isData){out+=' } ';}out+=' if (!'+$valid+') { ';var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'enum'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { allowedValues: schema'+$lvl+' } ';if(it.opts.messages!==false){out+=' , message: \'should be equal to one of the allowed values\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' }';if($breakOnError){out+=' else { ';}return out;};var format$3=function generate_format(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');if(it.opts.format===false){if($breakOnError){out+=' if (true) { ';}return out;}var $isData=it.opts.$data&&$schema&&$schema.$data,$schemaValue;if($isData){out+=' var schema'+$lvl+' = '+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+'; ';$schemaValue='schema'+$lvl;}else {$schemaValue=$schema;}var $unknownFormats=it.opts.unknownFormats,$allowUnknown=Array.isArray($unknownFormats);if($isData){var $format='format'+$lvl,$isObject='isObject'+$lvl,$formatType='formatType'+$lvl;out+=' var '+$format+' = formats['+$schemaValue+']; var '+$isObject+' = typeof '+$format+' == \'object\' && !('+$format+' instanceof RegExp) && '+$format+'.validate; var '+$formatType+' = '+$isObject+' && '+$format+'.type || \'string\'; if ('+$isObject+') { ';if(it.async){out+=' var async'+$lvl+' = '+$format+'.async; ';}out+=' '+$format+' = '+$format+'.validate; } if ( ';if($isData){out+=' ('+$schemaValue+' !== undefined && typeof '+$schemaValue+' != \'string\') || ';}out+=' (';if($unknownFormats!='ignore'){out+=' ('+$schemaValue+' && !'+$format+' ';if($allowUnknown){out+=' && self._opts.unknownFormats.indexOf('+$schemaValue+') == -1 ';}out+=') || ';}out+=' ('+$format+' && '+$formatType+' == \''+$ruleType+'\' && !(typeof '+$format+' == \'function\' ? ';if(it.async){out+=' (async'+$lvl+' ? await '+$format+'('+$data+') : '+$format+'('+$data+')) ';}else {out+=' '+$format+'('+$data+') ';}out+=' : '+$format+'.test('+$data+'))))) {';}else {var $format=it.formats[$schema];if(!$format){if($unknownFormats=='ignore'){it.logger.warn('unknown format "'+$schema+'" ignored in schema at path "'+it.errSchemaPath+'"');if($breakOnError){out+=' if (true) { ';}return out;}else if($allowUnknown&&$unknownFormats.indexOf($schema)>=0){if($breakOnError){out+=' if (true) { ';}return out;}else {throw new Error('unknown format "'+$schema+'" is used in schema at path "'+it.errSchemaPath+'"');}}var $isObject=typeof $format=='object'&&!($format instanceof RegExp)&&$format.validate;var $formatType=$isObject&&$format.type||'string';if($isObject){var $async=$format.async===true;$format=$format.validate;}if($formatType!=$ruleType){if($breakOnError){out+=' if (true) { ';}return out;}if($async){if(!it.async)throw new Error('async format in sync schema');var $formatRef='formats'+it.util.getProperty($schema)+'.validate';out+=' if (!(await '+$formatRef+'('+$data+'))) { ';}else {out+=' if (! ';var $formatRef='formats'+it.util.getProperty($schema);if($isObject)$formatRef+='.validate';if(typeof $format=='function'){out+=' '+$formatRef+'('+$data+') ';}else {out+=' '+$formatRef+'.test('+$data+') ';}out+=') { ';}}var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'format'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { format: ';if($isData){out+=''+$schemaValue;}else {out+=''+it.util.toQuotedString($schema);}out+=' } ';if(it.opts.messages!==false){out+=' , message: \'should match format "';if($isData){out+='\' + '+$schemaValue+' + \'';}else {out+=''+it.util.escapeQuotes($schema);}out+='"\' ';}if(it.opts.verbose){out+=' , schema: ';if($isData){out+='validate.schema'+$schemaPath;}else {out+=''+it.util.toQuotedString($schema);}out+=' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' } ';if($breakOnError){out+=' else { ';}return out;};var _if=function generate_if(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $valid='valid'+$lvl;var $errs='errs__'+$lvl;var $it=it.util.copy(it);$it.level++;var $nextValid='valid'+$it.level;var $thenSch=it.schema['then'],$elseSch=it.schema['else'],$thenPresent=$thenSch!==undefined&&(it.opts.strictKeywords?typeof $thenSch=='object'&&Object.keys($thenSch).length>0:it.util.schemaHasRules($thenSch,it.RULES.all)),$elsePresent=$elseSch!==undefined&&(it.opts.strictKeywords?typeof $elseSch=='object'&&Object.keys($elseSch).length>0:it.util.schemaHasRules($elseSch,it.RULES.all)),$currentBaseId=$it.baseId;if($thenPresent||$elsePresent){var $ifClause;$it.createErrors=false;$it.schema=$schema;$it.schemaPath=$schemaPath;$it.errSchemaPath=$errSchemaPath;out+=' var '+$errs+' = errors; var '+$valid+' = true; ';var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=true;out+=' '+it.validate($it)+' ';$it.baseId=$currentBaseId;$it.createErrors=true;out+=' errors = '+$errs+'; if (vErrors !== null) { if ('+$errs+') vErrors.length = '+$errs+'; else vErrors = null; } ';it.compositeRule=$it.compositeRule=$wasComposite;if($thenPresent){out+=' if ('+$nextValid+') { ';$it.schema=it.schema['then'];$it.schemaPath=it.schemaPath+'.then';$it.errSchemaPath=it.errSchemaPath+'/then';out+=' '+it.validate($it)+' ';$it.baseId=$currentBaseId;out+=' '+$valid+' = '+$nextValid+'; ';if($thenPresent&&$elsePresent){$ifClause='ifClause'+$lvl;out+=' var '+$ifClause+' = \'then\'; ';}else {$ifClause='\'then\'';}out+=' } ';if($elsePresent){out+=' else { ';}}else {out+=' if (!'+$nextValid+') { ';}if($elsePresent){$it.schema=it.schema['else'];$it.schemaPath=it.schemaPath+'.else';$it.errSchemaPath=it.errSchemaPath+'/else';out+=' '+it.validate($it)+' ';$it.baseId=$currentBaseId;out+=' '+$valid+' = '+$nextValid+'; ';if($thenPresent&&$elsePresent){$ifClause='ifClause'+$lvl;out+=' var '+$ifClause+' = \'else\'; ';}else {$ifClause='\'else\'';}out+=' } ';}out+=' if (!'+$valid+') { var err = ';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'if'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { failingKeyword: '+$ifClause+' } ';if(it.opts.messages!==false){out+=' , message: \'should match "\' + '+$ifClause+' + \'" schema\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}out+='; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(vErrors); ';}else {out+=' validate.errors = vErrors; return false; ';}}out+=' } ';if($breakOnError){out+=' else { ';}}else {if($breakOnError){out+=' if (true) { ';}}return out;};var items=function generate_items(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $valid='valid'+$lvl;var $errs='errs__'+$lvl;var $it=it.util.copy(it);var $closingBraces='';$it.level++;var $nextValid='valid'+$it.level;var $idx='i'+$lvl,$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData='data'+$dataNxt,$currentBaseId=it.baseId;out+='var '+$errs+' = errors;var '+$valid+';';if(Array.isArray($schema)){var $additionalItems=it.schema.additionalItems;if($additionalItems===false){out+=' '+$valid+' = '+$data+'.length <= '+$schema.length+'; ';var $currErrSchemaPath=$errSchemaPath;$errSchemaPath=it.errSchemaPath+'/additionalItems';out+=' if (!'+$valid+') { ';var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'additionalItems'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { limit: '+$schema.length+' } ';if(it.opts.messages!==false){out+=' , message: \'should NOT have more than '+$schema.length+' items\' ';}if(it.opts.verbose){out+=' , schema: false , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' } ';$errSchemaPath=$currErrSchemaPath;if($breakOnError){$closingBraces+='}';out+=' else { ';}}var arr1=$schema;if(arr1){var $sch,$i=-1,l1=arr1.length-1;while($i0:it.util.schemaHasRules($sch,it.RULES.all)){out+=' '+$nextValid+' = true; if ('+$data+'.length > '+$i+') { ';var $passData=$data+'['+$i+']';$it.schema=$sch;$it.schemaPath=$schemaPath+'['+$i+']';$it.errSchemaPath=$errSchemaPath+'/'+$i;$it.errorPath=it.util.getPathExpr(it.errorPath,$i,it.opts.jsonPointers,true);$it.dataPathArr[$dataNxt]=$i;var $code=it.validate($it);$it.baseId=$currentBaseId;if(it.util.varOccurences($code,$nextData)<2){out+=' '+it.util.varReplace($code,$nextData,$passData)+' ';}else {out+=' var '+$nextData+' = '+$passData+'; '+$code+' ';}out+=' } ';if($breakOnError){out+=' if ('+$nextValid+') { ';$closingBraces+='}';}}}}if(typeof $additionalItems=='object'&&(it.opts.strictKeywords?typeof $additionalItems=='object'&&Object.keys($additionalItems).length>0:it.util.schemaHasRules($additionalItems,it.RULES.all))){$it.schema=$additionalItems;$it.schemaPath=it.schemaPath+'.additionalItems';$it.errSchemaPath=it.errSchemaPath+'/additionalItems';out+=' '+$nextValid+' = true; if ('+$data+'.length > '+$schema.length+') { for (var '+$idx+' = '+$schema.length+'; '+$idx+' < '+$data+'.length; '+$idx+'++) { ';$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,true);var $passData=$data+'['+$idx+']';$it.dataPathArr[$dataNxt]=$idx;var $code=it.validate($it);$it.baseId=$currentBaseId;if(it.util.varOccurences($code,$nextData)<2){out+=' '+it.util.varReplace($code,$nextData,$passData)+' ';}else {out+=' var '+$nextData+' = '+$passData+'; '+$code+' ';}if($breakOnError){out+=' if (!'+$nextValid+') break; ';}out+=' } } ';if($breakOnError){out+=' if ('+$nextValid+') { ';$closingBraces+='}';}}}else if(it.opts.strictKeywords?typeof $schema=='object'&&Object.keys($schema).length>0:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema;$it.schemaPath=$schemaPath;$it.errSchemaPath=$errSchemaPath;out+=' for (var '+$idx+' = '+0+'; '+$idx+' < '+$data+'.length; '+$idx+'++) { ';$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,true);var $passData=$data+'['+$idx+']';$it.dataPathArr[$dataNxt]=$idx;var $code=it.validate($it);$it.baseId=$currentBaseId;if(it.util.varOccurences($code,$nextData)<2){out+=' '+it.util.varReplace($code,$nextData,$passData)+' ';}else {out+=' var '+$nextData+' = '+$passData+'; '+$code+' ';}if($breakOnError){out+=' if (!'+$nextValid+') break; ';}out+=' }';}if($breakOnError){out+=' '+$closingBraces+' if ('+$errs+' == errors) {';}return out;};var _limit=function generate__limit(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $errorKeyword;var $data='data'+($dataLvl||'');var $isData=it.opts.$data&&$schema&&$schema.$data,$schemaValue;if($isData){out+=' var schema'+$lvl+' = '+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+'; ';$schemaValue='schema'+$lvl;}else {$schemaValue=$schema;}var $isMax=$keyword=='maximum',$exclusiveKeyword=$isMax?'exclusiveMaximum':'exclusiveMinimum',$schemaExcl=it.schema[$exclusiveKeyword],$isDataExcl=it.opts.$data&&$schemaExcl&&$schemaExcl.$data,$op=$isMax?'<':'>',$notOp=$isMax?'>':'<',$errorKeyword=undefined;if(!($isData||typeof $schema=='number'||$schema===undefined)){throw new Error($keyword+' must be number');}if(!($isDataExcl||$schemaExcl===undefined||typeof $schemaExcl=='number'||typeof $schemaExcl=='boolean')){throw new Error($exclusiveKeyword+' must be number or boolean');}if($isDataExcl){var $schemaValueExcl=it.util.getData($schemaExcl.$data,$dataLvl,it.dataPathArr),$exclusive='exclusive'+$lvl,$exclType='exclType'+$lvl,$exclIsNumber='exclIsNumber'+$lvl,$opExpr='op'+$lvl,$opStr='\' + '+$opExpr+' + \'';out+=' var schemaExcl'+$lvl+' = '+$schemaValueExcl+'; ';$schemaValueExcl='schemaExcl'+$lvl;out+=' var '+$exclusive+'; var '+$exclType+' = typeof '+$schemaValueExcl+'; if ('+$exclType+' != \'boolean\' && '+$exclType+' != \'undefined\' && '+$exclType+' != \'number\') { ';var $errorKeyword=$exclusiveKeyword;var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+($errorKeyword||'_exclusiveLimit')+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: {} ';if(it.opts.messages!==false){out+=' , message: \''+$exclusiveKeyword+' should be boolean\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' } else if ( ';if($isData){out+=' ('+$schemaValue+' !== undefined && typeof '+$schemaValue+' != \'number\') || ';}out+=' '+$exclType+' == \'number\' ? ( ('+$exclusive+' = '+$schemaValue+' === undefined || '+$schemaValueExcl+' '+$op+'= '+$schemaValue+') ? '+$data+' '+$notOp+'= '+$schemaValueExcl+' : '+$data+' '+$notOp+' '+$schemaValue+' ) : ( ('+$exclusive+' = '+$schemaValueExcl+' === true) ? '+$data+' '+$notOp+'= '+$schemaValue+' : '+$data+' '+$notOp+' '+$schemaValue+' ) || '+$data+' !== '+$data+') { var op'+$lvl+' = '+$exclusive+' ? \''+$op+'\' : \''+$op+'=\'; ';if($schema===undefined){$errorKeyword=$exclusiveKeyword;$errSchemaPath=it.errSchemaPath+'/'+$exclusiveKeyword;$schemaValue=$schemaValueExcl;$isData=$isDataExcl;}}else {var $exclIsNumber=typeof $schemaExcl=='number',$opStr=$op;if($exclIsNumber&&$isData){var $opExpr='\''+$opStr+'\'';out+=' if ( ';if($isData){out+=' ('+$schemaValue+' !== undefined && typeof '+$schemaValue+' != \'number\') || ';}out+=' ( '+$schemaValue+' === undefined || '+$schemaExcl+' '+$op+'= '+$schemaValue+' ? '+$data+' '+$notOp+'= '+$schemaExcl+' : '+$data+' '+$notOp+' '+$schemaValue+' ) || '+$data+' !== '+$data+') { ';}else {if($exclIsNumber&&$schema===undefined){$exclusive=true;$errorKeyword=$exclusiveKeyword;$errSchemaPath=it.errSchemaPath+'/'+$exclusiveKeyword;$schemaValue=$schemaExcl;$notOp+='=';}else {if($exclIsNumber)$schemaValue=Math[$isMax?'min':'max']($schemaExcl,$schema);if($schemaExcl===($exclIsNumber?$schemaValue:true)){$exclusive=true;$errorKeyword=$exclusiveKeyword;$errSchemaPath=it.errSchemaPath+'/'+$exclusiveKeyword;$notOp+='=';}else {$exclusive=false;$opStr+='=';}}var $opExpr='\''+$opStr+'\'';out+=' if ( ';if($isData){out+=' ('+$schemaValue+' !== undefined && typeof '+$schemaValue+' != \'number\') || ';}out+=' '+$data+' '+$notOp+' '+$schemaValue+' || '+$data+' !== '+$data+') { ';}}$errorKeyword=$errorKeyword||$keyword;var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+($errorKeyword||'_limit')+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { comparison: '+$opExpr+', limit: '+$schemaValue+', exclusive: '+$exclusive+' } ';if(it.opts.messages!==false){out+=' , message: \'should be '+$opStr+' ';if($isData){out+='\' + '+$schemaValue;}else {out+=''+$schemaValue+'\'';}}if(it.opts.verbose){out+=' , schema: ';if($isData){out+='validate.schema'+$schemaPath;}else {out+=''+$schema;}out+=' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' } ';if($breakOnError){out+=' else { ';}return out;};var _limitItems=function generate__limitItems(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $errorKeyword;var $data='data'+($dataLvl||'');var $isData=it.opts.$data&&$schema&&$schema.$data,$schemaValue;if($isData){out+=' var schema'+$lvl+' = '+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+'; ';$schemaValue='schema'+$lvl;}else {$schemaValue=$schema;}if(!($isData||typeof $schema=='number')){throw new Error($keyword+' must be number');}var $op=$keyword=='maxItems'?'>':'<';out+='if ( ';if($isData){out+=' ('+$schemaValue+' !== undefined && typeof '+$schemaValue+' != \'number\') || ';}out+=' '+$data+'.length '+$op+' '+$schemaValue+') { ';var $errorKeyword=$keyword;var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+($errorKeyword||'_limitItems')+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { limit: '+$schemaValue+' } ';if(it.opts.messages!==false){out+=' , message: \'should NOT have ';if($keyword=='maxItems'){out+='more';}else {out+='fewer';}out+=' than ';if($isData){out+='\' + '+$schemaValue+' + \'';}else {out+=''+$schema;}out+=' items\' ';}if(it.opts.verbose){out+=' , schema: ';if($isData){out+='validate.schema'+$schemaPath;}else {out+=''+$schema;}out+=' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+='} ';if($breakOnError){out+=' else { ';}return out;};var _limitLength=function generate__limitLength(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $errorKeyword;var $data='data'+($dataLvl||'');var $isData=it.opts.$data&&$schema&&$schema.$data,$schemaValue;if($isData){out+=' var schema'+$lvl+' = '+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+'; ';$schemaValue='schema'+$lvl;}else {$schemaValue=$schema;}if(!($isData||typeof $schema=='number')){throw new Error($keyword+' must be number');}var $op=$keyword=='maxLength'?'>':'<';out+='if ( ';if($isData){out+=' ('+$schemaValue+' !== undefined && typeof '+$schemaValue+' != \'number\') || ';}if(it.opts.unicode===false){out+=' '+$data+'.length ';}else {out+=' ucs2length('+$data+') ';}out+=' '+$op+' '+$schemaValue+') { ';var $errorKeyword=$keyword;var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+($errorKeyword||'_limitLength')+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { limit: '+$schemaValue+' } ';if(it.opts.messages!==false){out+=' , message: \'should NOT be ';if($keyword=='maxLength'){out+='longer';}else {out+='shorter';}out+=' than ';if($isData){out+='\' + '+$schemaValue+' + \'';}else {out+=''+$schema;}out+=' characters\' ';}if(it.opts.verbose){out+=' , schema: ';if($isData){out+='validate.schema'+$schemaPath;}else {out+=''+$schema;}out+=' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+='} ';if($breakOnError){out+=' else { ';}return out;};var _limitProperties=function generate__limitProperties(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $errorKeyword;var $data='data'+($dataLvl||'');var $isData=it.opts.$data&&$schema&&$schema.$data,$schemaValue;if($isData){out+=' var schema'+$lvl+' = '+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+'; ';$schemaValue='schema'+$lvl;}else {$schemaValue=$schema;}if(!($isData||typeof $schema=='number')){throw new Error($keyword+' must be number');}var $op=$keyword=='maxProperties'?'>':'<';out+='if ( ';if($isData){out+=' ('+$schemaValue+' !== undefined && typeof '+$schemaValue+' != \'number\') || ';}out+=' Object.keys('+$data+').length '+$op+' '+$schemaValue+') { ';var $errorKeyword=$keyword;var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+($errorKeyword||'_limitProperties')+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { limit: '+$schemaValue+' } ';if(it.opts.messages!==false){out+=' , message: \'should NOT have ';if($keyword=='maxProperties'){out+='more';}else {out+='fewer';}out+=' than ';if($isData){out+='\' + '+$schemaValue+' + \'';}else {out+=''+$schema;}out+=' properties\' ';}if(it.opts.verbose){out+=' , schema: ';if($isData){out+='validate.schema'+$schemaPath;}else {out+=''+$schema;}out+=' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+='} ';if($breakOnError){out+=' else { ';}return out;};var multipleOf=function generate_multipleOf(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $isData=it.opts.$data&&$schema&&$schema.$data,$schemaValue;if($isData){out+=' var schema'+$lvl+' = '+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+'; ';$schemaValue='schema'+$lvl;}else {$schemaValue=$schema;}if(!($isData||typeof $schema=='number')){throw new Error($keyword+' must be number');}out+='var division'+$lvl+';if (';if($isData){out+=' '+$schemaValue+' !== undefined && ( typeof '+$schemaValue+' != \'number\' || ';}out+=' (division'+$lvl+' = '+$data+' / '+$schemaValue+', ';if(it.opts.multipleOfPrecision){out+=' Math.abs(Math.round(division'+$lvl+') - division'+$lvl+') > 1e-'+it.opts.multipleOfPrecision+' ';}else {out+=' division'+$lvl+' !== parseInt(division'+$lvl+') ';}out+=' ) ';if($isData){out+=' ) ';}out+=' ) { ';var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'multipleOf'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { multipleOf: '+$schemaValue+' } ';if(it.opts.messages!==false){out+=' , message: \'should be multiple of ';if($isData){out+='\' + '+$schemaValue;}else {out+=''+$schemaValue+'\'';}}if(it.opts.verbose){out+=' , schema: ';if($isData){out+='validate.schema'+$schemaPath;}else {out+=''+$schema;}out+=' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+='} ';if($breakOnError){out+=' else { ';}return out;};var not=function generate_not(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $errs='errs__'+$lvl;var $it=it.util.copy(it);$it.level++;var $nextValid='valid'+$it.level;if(it.opts.strictKeywords?typeof $schema=='object'&&Object.keys($schema).length>0:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema;$it.schemaPath=$schemaPath;$it.errSchemaPath=$errSchemaPath;out+=' var '+$errs+' = errors; ';var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=true;$it.createErrors=false;var $allErrorsOption;if($it.opts.allErrors){$allErrorsOption=$it.opts.allErrors;$it.opts.allErrors=false;}out+=' '+it.validate($it)+' ';$it.createErrors=true;if($allErrorsOption)$it.opts.allErrors=$allErrorsOption;it.compositeRule=$it.compositeRule=$wasComposite;out+=' if ('+$nextValid+') { ';var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'not'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: {} ';if(it.opts.messages!==false){out+=' , message: \'should NOT be valid\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' } else { errors = '+$errs+'; if (vErrors !== null) { if ('+$errs+') vErrors.length = '+$errs+'; else vErrors = null; } ';if(it.opts.allErrors){out+=' } ';}}else {out+=' var err = ';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'not'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: {} ';if(it.opts.messages!==false){out+=' , message: \'should NOT be valid\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}out+='; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';if($breakOnError){out+=' if (false) { ';}}return out;};var oneOf$1=function generate_oneOf(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $valid='valid'+$lvl;var $errs='errs__'+$lvl;var $it=it.util.copy(it);var $closingBraces='';$it.level++;var $nextValid='valid'+$it.level;var $currentBaseId=$it.baseId,$prevValid='prevValid'+$lvl,$passingSchemas='passingSchemas'+$lvl;out+='var '+$errs+' = errors , '+$prevValid+' = false , '+$valid+' = false , '+$passingSchemas+' = null; ';var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=true;var arr1=$schema;if(arr1){var $sch,$i=-1,l1=arr1.length-1;while($i0:it.util.schemaHasRules($sch,it.RULES.all)){$it.schema=$sch;$it.schemaPath=$schemaPath+'['+$i+']';$it.errSchemaPath=$errSchemaPath+'/'+$i;out+=' '+it.validate($it)+' ';$it.baseId=$currentBaseId;}else {out+=' var '+$nextValid+' = true; ';}if($i){out+=' if ('+$nextValid+' && '+$prevValid+') { '+$valid+' = false; '+$passingSchemas+' = ['+$passingSchemas+', '+$i+']; } else { ';$closingBraces+='}';}out+=' if ('+$nextValid+') { '+$valid+' = '+$prevValid+' = true; '+$passingSchemas+' = '+$i+'; }';}}it.compositeRule=$it.compositeRule=$wasComposite;out+=''+$closingBraces+'if (!'+$valid+') { var err = ';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'oneOf'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { passingSchemas: '+$passingSchemas+' } ';if(it.opts.messages!==false){out+=' , message: \'should match exactly one schema in oneOf\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}out+='; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(vErrors); ';}else {out+=' validate.errors = vErrors; return false; ';}}out+='} else { errors = '+$errs+'; if (vErrors !== null) { if ('+$errs+') vErrors.length = '+$errs+'; else vErrors = null; }';if(it.opts.allErrors){out+=' } ';}return out;};var pattern=function generate_pattern(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $isData=it.opts.$data&&$schema&&$schema.$data,$schemaValue;if($isData){out+=' var schema'+$lvl+' = '+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+'; ';$schemaValue='schema'+$lvl;}else {$schemaValue=$schema;}var $regexp=$isData?'(new RegExp('+$schemaValue+'))':it.usePattern($schema);out+='if ( ';if($isData){out+=' ('+$schemaValue+' !== undefined && typeof '+$schemaValue+' != \'string\') || ';}out+=' !'+$regexp+'.test('+$data+') ) { ';var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'pattern'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { pattern: ';if($isData){out+=''+$schemaValue;}else {out+=''+it.util.toQuotedString($schema);}out+=' } ';if(it.opts.messages!==false){out+=' , message: \'should match pattern "';if($isData){out+='\' + '+$schemaValue+' + \'';}else {out+=''+it.util.escapeQuotes($schema);}out+='"\' ';}if(it.opts.verbose){out+=' , schema: ';if($isData){out+='validate.schema'+$schemaPath;}else {out+=''+it.util.toQuotedString($schema);}out+=' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+='} ';if($breakOnError){out+=' else { ';}return out;};var properties$9=function generate_properties(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $errs='errs__'+$lvl;var $it=it.util.copy(it);var $closingBraces='';$it.level++;var $nextValid='valid'+$it.level;var $key='key'+$lvl,$idx='idx'+$lvl,$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData='data'+$dataNxt,$dataProperties='dataProperties'+$lvl;var $schemaKeys=Object.keys($schema||{}).filter(notProto),$pProperties=it.schema.patternProperties||{},$pPropertyKeys=Object.keys($pProperties).filter(notProto),$aProperties=it.schema.additionalProperties,$someProperties=$schemaKeys.length||$pPropertyKeys.length,$noAdditional=$aProperties===false,$additionalIsSchema=typeof $aProperties=='object'&&Object.keys($aProperties).length,$removeAdditional=it.opts.removeAdditional,$checkAdditional=$noAdditional||$additionalIsSchema||$removeAdditional,$ownProperties=it.opts.ownProperties,$currentBaseId=it.baseId;var $required=it.schema.required;if($required&&!(it.opts.$data&&$required.$data)&&$required.length8){out+=' || validate.schema'+$schemaPath+'.hasOwnProperty('+$key+') ';}else {var arr1=$schemaKeys;if(arr1){var $propertyKey,i1=-1,l1=arr1.length-1;while(i10:it.util.schemaHasRules($sch,it.RULES.all)){var $prop=it.util.getProperty($propertyKey),$passData=$data+$prop,$hasDefault=$useDefaults&&$sch.default!==undefined;$it.schema=$sch;$it.schemaPath=$schemaPath+$prop;$it.errSchemaPath=$errSchemaPath+'/'+it.util.escapeFragment($propertyKey);$it.errorPath=it.util.getPath(it.errorPath,$propertyKey,it.opts.jsonPointers);$it.dataPathArr[$dataNxt]=it.util.toQuotedString($propertyKey);var $code=it.validate($it);$it.baseId=$currentBaseId;if(it.util.varOccurences($code,$nextData)<2){$code=it.util.varReplace($code,$nextData,$passData);var $useData=$passData;}else {var $useData=$nextData;out+=' var '+$nextData+' = '+$passData+'; ';}if($hasDefault){out+=' '+$code+' ';}else {if($requiredHash&&$requiredHash[$propertyKey]){out+=' if ( '+$useData+' === undefined ';if($ownProperties){out+=' || ! Object.prototype.hasOwnProperty.call('+$data+', \''+it.util.escapeQuotes($propertyKey)+'\') ';}out+=') { '+$nextValid+' = false; ';var $currentErrorPath=it.errorPath,$currErrSchemaPath=$errSchemaPath,$missingProperty=it.util.escapeQuotes($propertyKey);if(it.opts._errorDataPathProperty){it.errorPath=it.util.getPath($currentErrorPath,$propertyKey,it.opts.jsonPointers);}$errSchemaPath=it.errSchemaPath+'/required';var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'required'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { missingProperty: \''+$missingProperty+'\' } ';if(it.opts.messages!==false){out+=' , message: \'';if(it.opts._errorDataPathProperty){out+='is a required property';}else {out+='should have required property \\\''+$missingProperty+'\\\'';}out+='\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}$errSchemaPath=$currErrSchemaPath;it.errorPath=$currentErrorPath;out+=' } else { ';}else {if($breakOnError){out+=' if ( '+$useData+' === undefined ';if($ownProperties){out+=' || ! Object.prototype.hasOwnProperty.call('+$data+', \''+it.util.escapeQuotes($propertyKey)+'\') ';}out+=') { '+$nextValid+' = true; } else { ';}else {out+=' if ('+$useData+' !== undefined ';if($ownProperties){out+=' && Object.prototype.hasOwnProperty.call('+$data+', \''+it.util.escapeQuotes($propertyKey)+'\') ';}out+=' ) { ';}}out+=' '+$code+' } ';}}if($breakOnError){out+=' if ('+$nextValid+') { ';$closingBraces+='}';}}}}if($pPropertyKeys.length){var arr4=$pPropertyKeys;if(arr4){var $pProperty,i4=-1,l4=arr4.length-1;while(i40:it.util.schemaHasRules($sch,it.RULES.all)){$it.schema=$sch;$it.schemaPath=it.schemaPath+'.patternProperties'+it.util.getProperty($pProperty);$it.errSchemaPath=it.errSchemaPath+'/patternProperties/'+it.util.escapeFragment($pProperty);if($ownProperties){out+=' '+$dataProperties+' = '+$dataProperties+' || Object.keys('+$data+'); for (var '+$idx+'=0; '+$idx+'<'+$dataProperties+'.length; '+$idx+'++) { var '+$key+' = '+$dataProperties+'['+$idx+']; ';}else {out+=' for (var '+$key+' in '+$data+') { ';}out+=' if ('+it.usePattern($pProperty)+'.test('+$key+')) { ';$it.errorPath=it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers);var $passData=$data+'['+$key+']';$it.dataPathArr[$dataNxt]=$key;var $code=it.validate($it);$it.baseId=$currentBaseId;if(it.util.varOccurences($code,$nextData)<2){out+=' '+it.util.varReplace($code,$nextData,$passData)+' ';}else {out+=' var '+$nextData+' = '+$passData+'; '+$code+' ';}if($breakOnError){out+=' if (!'+$nextValid+') break; ';}out+=' } ';if($breakOnError){out+=' else '+$nextValid+' = true; ';}out+=' } ';if($breakOnError){out+=' if ('+$nextValid+') { ';$closingBraces+='}';}}}}}if($breakOnError){out+=' '+$closingBraces+' if ('+$errs+' == errors) {';}return out;};var propertyNames=function generate_propertyNames(it,$keyword,$ruleType){var out=' ';var $lvl=it.level;var $dataLvl=it.dataLevel;var $schema=it.schema[$keyword];var $schemaPath=it.schemaPath+it.util.getProperty($keyword);var $errSchemaPath=it.errSchemaPath+'/'+$keyword;var $breakOnError=!it.opts.allErrors;var $data='data'+($dataLvl||'');var $errs='errs__'+$lvl;var $it=it.util.copy(it);var $closingBraces='';$it.level++;var $nextValid='valid'+$it.level;out+='var '+$errs+' = errors;';if(it.opts.strictKeywords?typeof $schema=='object'&&Object.keys($schema).length>0:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema;$it.schemaPath=$schemaPath;$it.errSchemaPath=$errSchemaPath;var $key='key'+$lvl,$idx='idx'+$lvl,$i='i'+$lvl,$invalidName='\' + '+$key+' + \'',$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData='data'+$dataNxt,$dataProperties='dataProperties'+$lvl,$ownProperties=it.opts.ownProperties,$currentBaseId=it.baseId;if($ownProperties){out+=' var '+$dataProperties+' = undefined; ';}if($ownProperties){out+=' '+$dataProperties+' = '+$dataProperties+' || Object.keys('+$data+'); for (var '+$idx+'=0; '+$idx+'<'+$dataProperties+'.length; '+$idx+'++) { var '+$key+' = '+$dataProperties+'['+$idx+']; ';}else {out+=' for (var '+$key+' in '+$data+') { ';}out+=' var startErrs'+$lvl+' = errors; ';var $passData=$key;var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=true;var $code=it.validate($it);$it.baseId=$currentBaseId;if(it.util.varOccurences($code,$nextData)<2){out+=' '+it.util.varReplace($code,$nextData,$passData)+' ';}else {out+=' var '+$nextData+' = '+$passData+'; '+$code+' ';}it.compositeRule=$it.compositeRule=$wasComposite;out+=' if (!'+$nextValid+') { for (var '+$i+'=startErrs'+$lvl+'; '+$i+'0:it.util.schemaHasRules($propertySch,it.RULES.all)))){$required[$required.length]=$property;}}}}else {var $required=$schema;}}if($isData||$required.length){var $currentErrorPath=it.errorPath,$loopRequired=$isData||$required.length>=it.opts.loopRequired,$ownProperties=it.opts.ownProperties;if($breakOnError){out+=' var missing'+$lvl+'; ';if($loopRequired){if(!$isData){out+=' var '+$vSchema+' = validate.schema'+$schemaPath+'; ';}var $i='i'+$lvl,$propertyPath='schema'+$lvl+'['+$i+']',$missingProperty='\' + '+$propertyPath+' + \'';if(it.opts._errorDataPathProperty){it.errorPath=it.util.getPathExpr($currentErrorPath,$propertyPath,it.opts.jsonPointers);}out+=' var '+$valid+' = true; ';if($isData){out+=' if (schema'+$lvl+' === undefined) '+$valid+' = true; else if (!Array.isArray(schema'+$lvl+')) '+$valid+' = false; else {';}out+=' for (var '+$i+' = 0; '+$i+' < '+$vSchema+'.length; '+$i+'++) { '+$valid+' = '+$data+'['+$vSchema+'['+$i+']] !== undefined ';if($ownProperties){out+=' && Object.prototype.hasOwnProperty.call('+$data+', '+$vSchema+'['+$i+']) ';}out+='; if (!'+$valid+') break; } ';if($isData){out+=' } ';}out+=' if (!'+$valid+') { ';var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'required'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { missingProperty: \''+$missingProperty+'\' } ';if(it.opts.messages!==false){out+=' , message: \'';if(it.opts._errorDataPathProperty){out+='is a required property';}else {out+='should have required property \\\''+$missingProperty+'\\\'';}out+='\' ';}if(it.opts.verbose){out+=' , schema: validate.schema'+$schemaPath+' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' } else { ';}else {out+=' if ( ';var arr2=$required;if(arr2){var $propertyKey,$i=-1,l2=arr2.length-1;while($i 1) { ';var $itemType=it.schema.items&&it.schema.items.type,$typeIsArray=Array.isArray($itemType);if(!$itemType||$itemType=='object'||$itemType=='array'||$typeIsArray&&($itemType.indexOf('object')>=0||$itemType.indexOf('array')>=0)){out+=' outer: for (;i--;) { for (j = i; j--;) { if (equal('+$data+'[i], '+$data+'[j])) { '+$valid+' = false; break outer; } } } ';}else {out+=' var itemIndices = {}, item; for (;i--;) { var item = '+$data+'[i]; ';var $method='checkDataType'+($typeIsArray?'s':'');out+=' if ('+it.util[$method]($itemType,'item',it.opts.strictNumbers,true)+') continue; ';if($typeIsArray){out+=' if (typeof item == \'string\') item = \'"\' + item; ';}out+=' if (typeof itemIndices[item] == \'number\') { '+$valid+' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';}out+=' } ';if($isData){out+=' } ';}out+=' if (!'+$valid+') { ';var $$outStack=$$outStack||[];$$outStack.push(out);out='';/* istanbul ignore else */if(it.createErrors!==false){out+=' { keyword: \''+'uniqueItems'+'\' , dataPath: (dataPath || \'\') + '+it.errorPath+' , schemaPath: '+it.util.toQuotedString($errSchemaPath)+' , params: { i: i, j: j } ';if(it.opts.messages!==false){out+=' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' ';}if(it.opts.verbose){out+=' , schema: ';if($isData){out+='validate.schema'+$schemaPath;}else {out+=''+$schema;}out+=' , parentSchema: validate.schema'+it.schemaPath+' , data: '+$data+' ';}out+=' } ';}else {out+=' {} ';}var __err=out;out=$$outStack.pop();if(!it.compositeRule&&$breakOnError){/* istanbul ignore if */if(it.async){out+=' throw new ValidationError(['+__err+']); ';}else {out+=' validate.errors = ['+__err+']; return false; ';}}else {out+=' var err = '+__err+'; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';}out+=' } ';if($breakOnError){out+=' else { ';}}else {if($breakOnError){out+=' if (true) { ';}}return out;};//all requires must be explicit because browserify won't work with dynamic requires -var dotjs={'$ref':ref$1,allOf:allOf,anyOf:anyOf,'$comment':comment,const:_const,contains:contains,dependencies:dependencies$1,'enum':_enum,format:format$3,'if':_if,items:items,maximum:_limit,minimum:_limit,maxItems:_limitItems,minItems:_limitItems,maxLength:_limitLength,minLength:_limitLength,maxProperties:_limitProperties,minProperties:_limitProperties,multipleOf:multipleOf,not:not,oneOf:oneOf$1,pattern:pattern,properties:properties$9,propertyNames:propertyNames,required:required$7,uniqueItems:uniqueItems,validate:validate$1};var toHash=util.toHash;var rules=function rules(){var RULES=[{type:'number',rules:[{'maximum':['exclusiveMaximum']},{'minimum':['exclusiveMinimum']},'multipleOf','format']},{type:'string',rules:['maxLength','minLength','pattern','format']},{type:'array',rules:['maxItems','minItems','items','contains','uniqueItems']},{type:'object',rules:['maxProperties','minProperties','required','dependencies','propertyNames',{'properties':['additionalProperties','patternProperties']}]},{rules:['$ref','const','enum','not','anyOf','oneOf','allOf','if']}];var ALL=['type','$comment'];var KEYWORDS=['$schema','$id','id','$data','$async','title','description','default','definitions','examples','readOnly','writeOnly','contentMediaType','contentEncoding','additionalItems','then','else'];var TYPES=['number','integer','string','array','object','boolean','null'];RULES.all=toHash(ALL);RULES.types=toHash(TYPES);RULES.forEach(function(group){group.rules=group.rules.map(function(keyword){var implKeywords;if(typeof keyword=='object'){var key=Object.keys(keyword)[0];implKeywords=keyword[key];keyword=key;implKeywords.forEach(function(k){ALL.push(k);RULES.all[k]=true;});}ALL.push(keyword);var rule=RULES.all[keyword]={keyword:keyword,code:dotjs[keyword],implements:implKeywords};return rule;});RULES.all.$comment={keyword:'$comment',code:dotjs.$comment};if(group.type)RULES.types[group.type]=group;});RULES.keywords=toHash(ALL.concat(KEYWORDS));RULES.custom={};return RULES;};var KEYWORDS=['multipleOf','maximum','exclusiveMaximum','minimum','exclusiveMinimum','maxLength','minLength','pattern','additionalItems','maxItems','minItems','uniqueItems','maxProperties','minProperties','required','additionalProperties','enum','format','const'];var data=function(metaSchema,keywordsJsonPointers){for(var i=0;i} errors optional array of validation errors, if not passed errors from the instance are used. - * @param {Object} options optional options with properties `separator` and `dataVar`. - * @return {String} human readable string with all errors descriptions - */function errorsText(errors,options){errors=errors||this.errors;if(!errors)return 'No errors';options=options||{};var separator=options.separator===undefined?', ':options.separator;var dataVar=options.dataVar===undefined?'data':options.dataVar;var text='';for(var i=0;i0&&existing.length>m){existing.warned=true;var w=new Error('Possible EventEmitter memory leak detected. '+existing.length+' '+type+' listeners added. '+'Use emitter.setMaxListeners() to increase limit');w.name='MaxListenersExceededWarning';w.emitter=target;w.type=type;w.count=existing.length;emitWarning(w);}}}return target;}function emitWarning(e){typeof console.warn==='function'?console.warn(e):console.log(e);}EventEmitter.prototype.addListener=function addListener(type,listener){return _addListener(this,type,listener,false);};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(type,listener){return _addListener(this,type,listener,true);};function _onceWrap(target,type,listener){var fired=false;function g(){target.removeListener(type,g);if(!fired){fired=true;listener.apply(target,arguments);}}g.listener=listener;return g;}EventEmitter.prototype.once=function once(type,listener){if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');this.on(type,_onceWrap(this,type,listener));return this;};EventEmitter.prototype.prependOnceListener=function prependOnceListener(type,listener){if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');this.prependListener(type,_onceWrap(this,type,listener));return this;};// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener=function removeListener(type,listener){var list,events,position,i,originalListener;if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');events=this._events;if(!events)return this;list=events[type];if(!list)return this;if(list===listener||list.listener&&list.listener===listener){if(--this._eventsCount===0)this._events=new EventHandlers();else {delete events[type];if(events.removeListener)this.emit('removeListener',type,list.listener||listener);}}else if(typeof list!=='function'){position=-1;for(i=list.length;i-->0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){originalListener=list[i].listener;position=i;break;}}if(position<0)return this;if(list.length===1){list[0]=undefined;if(--this._eventsCount===0){this._events=new EventHandlers();return this;}else {delete events[type];}}else {spliceOne(list,position);}if(events.removeListener)this.emit('removeListener',type,originalListener||listener);}return this;};EventEmitter.prototype.removeAllListeners=function removeAllListeners(type){var listeners,events;events=this._events;if(!events)return this;// not listening for removeListener, no need to emit -if(!events.removeListener){if(arguments.length===0){this._events=new EventHandlers();this._eventsCount=0;}else if(events[type]){if(--this._eventsCount===0)this._events=new EventHandlers();else delete events[type];}return this;}// emit removeListener for all listeners on all events -if(arguments.length===0){var keys=Object.keys(events);for(var i=0,key;i0?Reflect.ownKeys(this._events):[];};// About 1.5x faster than the two-arg version of Array#splice(). -function spliceOne(list,index){for(var i=index,k=i+1,n=list.length;k0){throw new Error('Invalid string. Length must be a multiple of 4');}// the number of equal signs (place holders) -// if there are two placeholders, than the two characters before it -// represent one byte -// if there is only one, then the three characters before it represent 2 bytes -// this is just a cheap hack to not do indexOf twice -placeHolders=b64[len-2]==='='?2:b64[len-1]==='='?1:0;// base64 is 4/3 + up to two characters of the original data -arr=new Arr(len*3/4-placeHolders);// if there are placeholders, only get up to the last complete 4 chars -l=placeHolders>0?len-4:len;var L=0;for(i=0,j=0;i>16&0xFF;arr[L++]=tmp>>8&0xFF;arr[L++]=tmp&0xFF;}if(placeHolders===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[L++]=tmp&0xFF;}else if(placeHolders===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[L++]=tmp>>8&0xFF;arr[L++]=tmp&0xFF;}return arr;}function tripletToBase64(num){return lookup[num>>18&0x3F]+lookup[num>>12&0x3F]+lookup[num>>6&0x3F]+lookup[num&0x3F];}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;ilen2?len2:i+maxChunkLength));}// pad the end with zeros, but make sure to not forget the extra bytes -if(extraBytes===1){tmp=uint8[len-1];output+=lookup[tmp>>2];output+=lookup[tmp<<4&0x3F];output+='==';}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];output+=lookup[tmp>>10];output+=lookup[tmp>>4&0x3F];output+=lookup[tmp<<2&0x3F];output+='=';}parts.push(output);return parts.join('');}function read(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias;}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity;}else {m=m+Math.pow(2,mLen);e=e-eBias;}return (s?-1:1)*m*Math.pow(2,e-mLen);}function write(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax;}else {e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2;}if(e+eBias>=1){value+=rt/c;}else {value+=rt*Math.pow(2,1-eBias);}if(value*c>=2){e++;c/=2;}if(e+eBias>=eMax){m=0;e=eMax;}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias;}else {m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0;}}for(;mLen>=8;buffer[offset+i]=m&0xff,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&0xff,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128;}var toString={}.toString;var isArray$2=Array.isArray||function(arr){return toString.call(arr)=='[object Array]';};/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */var INSPECT_MAX_BYTES=50;/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */Buffer$1.TYPED_ARRAY_SUPPORT=global$1.TYPED_ARRAY_SUPPORT!==undefined?global$1.TYPED_ARRAY_SUPPORT:true;/* - * Export kMaxLength after typed array support is determined. - */var _kMaxLength=kMaxLength();function kMaxLength(){return Buffer$1.TYPED_ARRAY_SUPPORT?0x7fffffff:0x3fffffff;}function createBuffer(that,length){if(kMaxLength()=kMaxLength()){throw new RangeError('Attempt to allocate Buffer larger than maximum '+'size: 0x'+kMaxLength().toString(16)+' bytes');}return length|0;}function SlowBuffer(length){if(+length!=length){// eslint-disable-line eqeqeq -length=0;}return Buffer$1.alloc(+length);}Buffer$1.isBuffer=isBuffer;function internalIsBuffer(b){return !!(b!=null&&b._isBuffer);}Buffer$1.compare=function compare(a,b){if(!internalIsBuffer(a)||!internalIsBuffer(b)){throw new TypeError('Arguments must be Buffers');}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i>>1;case'base64':return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;// assume utf8 -encoding=(''+encoding).toLowerCase();loweredCase=true;}}}Buffer$1.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;// No need to verify that "this.length <= MAX_UINT32" since it's a read-only -// property of a typed array. -// This behaves neither like String nor Uint8Array in that we set start/end -// to their upper/lower bounds if the value passed is out of range. -// undefined is handled specially as per ECMA-262 6th Edition, -// Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. -if(start===undefined||start<0){start=0;}// Return early if start > this.length. Done here to prevent potential uint32 -// coercion fail below. -if(start>this.length){return '';}if(end===undefined||end>this.length){end=this.length;}if(end<=0){return '';}// Force coersion to uint32. This will also coerce falsey/NaN values to 0. -end>>>=0;start>>>=0;if(end<=start){return '';}if(!encoding)encoding='utf8';while(true){switch(encoding){case'hex':return hexSlice(this,start,end);case'utf8':case'utf-8':return utf8Slice(this,start,end);case'ascii':return asciiSlice(this,start,end);case'latin1':case'binary':return latin1Slice(this,start,end);case'base64':return base64Slice(this,start,end);case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError('Unknown encoding: '+encoding);encoding=(encoding+'').toLowerCase();loweredCase=true;}}}// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect -// Buffer instances. -Buffer$1.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i;}Buffer$1.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError('Buffer size must be a multiple of 16-bits');}for(var i=0;i0){str=this.toString('hex',0,max).match(/.{2}/g).join(' ');if(this.length>max)str+=' ... ';}return '';};Buffer$1.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(!internalIsBuffer(target)){throw new TypeError('Argument must be a Buffer');}if(start===undefined){start=0;}if(end===undefined){end=target?target.length:0;}if(thisStart===undefined){thisStart=0;}if(thisEnd===undefined){thisEnd=this.length;}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError('out of range index');}if(thisStart>=thisEnd&&start>=end){return 0;}if(thisStart>=thisEnd){return -1;}if(start>=end){return 1;}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){// Empty buffer means no match -if(buffer.length===0)return -1;// Normalize byteOffset -if(typeof byteOffset==='string'){encoding=byteOffset;byteOffset=0;}else if(byteOffset>0x7fffffff){byteOffset=0x7fffffff;}else if(byteOffset<-0x80000000){byteOffset=-0x80000000;}byteOffset=+byteOffset;// Coerce to Number. -if(isNaN(byteOffset)){// byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer -byteOffset=dir?0:buffer.length-1;}// Normalize byteOffset: negative offsets start from the end of the buffer -if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return -1;else byteOffset=buffer.length-1;}else if(byteOffset<0){if(dir)byteOffset=0;else return -1;}// Normalize val -if(typeof val==='string'){val=Buffer$1.from(val,encoding);}// Finally, search either indexOf (if dir is true) or lastIndexOf -if(internalIsBuffer(val)){// Special case: looking for empty string/buffer always fails -if(val.length===0){return -1;}return arrayIndexOf(buffer,val,byteOffset,encoding,dir);}else if(typeof val==='number'){val=val&0xFF;// Search for a byte value [0-255] -if(Buffer$1.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf==='function'){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset);}else {return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset);}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir);}throw new TypeError('val must be string, number or Buffer');}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==='ucs2'||encoding==='ucs-2'||encoding==='utf16le'||encoding==='utf-16le'){if(arr.length<2||val.length<2){return -1;}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2;}}function read(buf,i){if(indexSize===1){return buf[i];}else {return buf.readUInt16BE(i*indexSize);}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;jremaining){length=remaining;}}// must be an even number of digits -var strLen=string.length;if(strLen%2!==0)throw new TypeError('Invalid hex string');if(length>strLen/2){length=strLen/2;}for(var i=0;iremaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError('Attempt to write outside buffer bounds');}if(!encoding)encoding='utf8';var loweredCase=false;for(;;){switch(encoding){case'hex':return hexWrite(this,string,offset,length);case'utf8':case'utf-8':return utf8Write(this,string,offset,length);case'ascii':return asciiWrite(this,string,offset,length);case'latin1':case'binary':return latin1Write(this,string,offset,length);case'base64':// Warning: maxLength not taken into account in base64Write -return base64Write(this,string,offset,length);case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError('Unknown encoding: '+encoding);encoding=(''+encoding).toLowerCase();loweredCase=true;}}};Buffer$1.prototype.toJSON=function toJSON(){return {type:'Buffer',data:Array.prototype.slice.call(this._arr||this,0)};};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return fromByteArray(buf);}else {return fromByteArray(buf.slice(start,end));}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i0xEF?4:firstByte>0xDF?3:firstByte>0xBF?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<0x80){codePoint=firstByte;}break;case 2:secondByte=buf[i+1];if((secondByte&0xC0)===0x80){tempCodePoint=(firstByte&0x1F)<<0x6|secondByte&0x3F;if(tempCodePoint>0x7F){codePoint=tempCodePoint;}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&0xC0)===0x80&&(thirdByte&0xC0)===0x80){tempCodePoint=(firstByte&0xF)<<0xC|(secondByte&0x3F)<<0x6|thirdByte&0x3F;if(tempCodePoint>0x7FF&&(tempCodePoint<0xD800||tempCodePoint>0xDFFF)){codePoint=tempCodePoint;}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&0xC0)===0x80&&(thirdByte&0xC0)===0x80&&(fourthByte&0xC0)===0x80){tempCodePoint=(firstByte&0xF)<<0x12|(secondByte&0x3F)<<0xC|(thirdByte&0x3F)<<0x6|fourthByte&0x3F;if(tempCodePoint>0xFFFF&&tempCodePoint<0x110000){codePoint=tempCodePoint;}}}}if(codePoint===null){// we did not generate a valid codePoint so insert a -// replacement char (U+FFFD) and advance only 1 byte -codePoint=0xFFFD;bytesPerSequence=1;}else if(codePoint>0xFFFF){// encode to utf16 (surrogate pair dance) -codePoint-=0x10000;res.push(codePoint>>>10&0x3FF|0xD800);codePoint=0xDC00|codePoint&0x3FF;}res.push(codePoint);i+=bytesPerSequence;}return decodeCodePointsArray(res);}// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH=0x1000;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints);// avoid extra slice() -}// Decode in chunks to avoid "call stack size exceeded". -var res='';var i=0;while(ilen)end=len;var out='';for(var i=start;ilen){start=len;}if(end<0){end+=len;if(end<0)end=0;}else if(end>len){end=len;}if(endlength)throw new RangeError('Trying to access beyond buffer length');}Buffer$1.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i0&&(mul*=0x100)){val+=this[offset+--byteLength]*mul;}return val;};Buffer$1.prototype.readUInt8=function readUInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);return this[offset];};Buffer$1.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8;};Buffer$1.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1];};Buffer$1.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return (this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*0x1000000;};Buffer$1.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*0x1000000+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3]);};Buffer$1.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val;};Buffer$1.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=0x100)){val+=this[offset+--i]*mul;}mul*=0x80;if(val>=mul)val-=Math.pow(2,8*byteLength);return val;};Buffer$1.prototype.readInt8=function readInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&0x80))return this[offset];return (0xff-this[offset]+1)*-1;};Buffer$1.prototype.readInt16LE=function readInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&0x8000?val|0xFFFF0000:val;};Buffer$1.prototype.readInt16BE=function readInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&0x8000?val|0xFFFF0000:val;};Buffer$1.prototype.readInt32LE=function readInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24;};Buffer$1.prototype.readInt32BE=function readInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3];};Buffer$1.prototype.readFloatLE=function readFloatLE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return read(this,offset,true,23,4);};Buffer$1.prototype.readFloatBE=function readFloatBE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return read(this,offset,false,23,4);};Buffer$1.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return read(this,offset,true,52,8);};Buffer$1.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return read(this,offset,false,52,8);};function checkInt(buf,value,offset,ext,max,min){if(!internalIsBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError('Index out of range');}Buffer$1.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;byteLength=byteLength|0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0);}var mul=1;var i=0;this[offset]=value&0xFF;while(++i=0&&(mul*=0x100)){this[offset+i]=value/mul&0xFF;}return offset+byteLength;};Buffer$1.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,0xff,0);if(!Buffer$1.TYPED_ARRAY_SUPPORT)value=Math.floor(value);this[offset]=value&0xff;return offset+1;};function objectWriteUInt16(buf,value,offset,littleEndian){if(value<0)value=0xffff+value+1;for(var i=0,j=Math.min(buf.length-offset,2);i>>(littleEndian?i:1-i)*8;}}Buffer$1.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,0xffff,0);if(Buffer$1.TYPED_ARRAY_SUPPORT){this[offset]=value&0xff;this[offset+1]=value>>>8;}else {objectWriteUInt16(this,value,offset,true);}return offset+2;};Buffer$1.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,0xffff,0);if(Buffer$1.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&0xff;}else {objectWriteUInt16(this,value,offset,false);}return offset+2;};function objectWriteUInt32(buf,value,offset,littleEndian){if(value<0)value=0xffffffff+value+1;for(var i=0,j=Math.min(buf.length-offset,4);i>>(littleEndian?i:3-i)*8&0xff;}}Buffer$1.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,0xffffffff,0);if(Buffer$1.TYPED_ARRAY_SUPPORT){this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&0xff;}else {objectWriteUInt32(this,value,offset,true);}return offset+4;};Buffer$1.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,0xffffffff,0);if(Buffer$1.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&0xff;}else {objectWriteUInt32(this,value,offset,false);}return offset+4;};Buffer$1.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit);}var i=0;var mul=1;var sub=0;this[offset]=value&0xFF;while(++i>0)-sub&0xFF;}return offset+byteLength;};Buffer$1.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit);}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&0xFF;while(--i>=0&&(mul*=0x100)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1;}this[offset+i]=(value/mul>>0)-sub&0xFF;}return offset+byteLength;};Buffer$1.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,0x7f,-0x80);if(!Buffer$1.TYPED_ARRAY_SUPPORT)value=Math.floor(value);if(value<0)value=0xff+value+1;this[offset]=value&0xff;return offset+1;};Buffer$1.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,0x7fff,-0x8000);if(Buffer$1.TYPED_ARRAY_SUPPORT){this[offset]=value&0xff;this[offset+1]=value>>>8;}else {objectWriteUInt16(this,value,offset,true);}return offset+2;};Buffer$1.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,0x7fff,-0x8000);if(Buffer$1.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&0xff;}else {objectWriteUInt16(this,value,offset,false);}return offset+2;};Buffer$1.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,0x7fffffff,-0x80000000);if(Buffer$1.TYPED_ARRAY_SUPPORT){this[offset]=value&0xff;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;}else {objectWriteUInt32(this,value,offset,true);}return offset+4;};Buffer$1.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,0x7fffffff,-0x80000000);if(value<0)value=0xffffffff+value+1;if(Buffer$1.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&0xff;}else {objectWriteUInt32(this,value,offset,false);}return offset+4;};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError('Index out of range');if(offset<0)throw new RangeError('Index out of range');}function writeFloat(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,4);}write(buf,value,offset,littleEndian,23,4);return offset+4;}Buffer$1.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert);};Buffer$1.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert);};function writeDouble(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,8);}write(buf,value,offset,littleEndian,52,8);return offset+8;}Buffer$1.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert);};Buffer$1.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert);};// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer$1.prototype.copy=function copy(target,targetStart,start,end){if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError('sourceStart out of bounds');if(end<0)throw new RangeError('sourceEnd out of bounds');// Are we oob? -if(end>this.length)end=this.length;if(target.length-targetStart=0;--i){target[i+targetStart]=this[i+start];}}else if(len<1000||!Buffer$1.TYPED_ARRAY_SUPPORT){// ascending copy from start -for(i=0;i>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==='number'){for(i=start;i0xD7FF&&codePoint<0xE000){// last char was a lead -if(!leadSurrogate){// no lead yet -if(codePoint>0xDBFF){// unexpected trail -if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);continue;}else if(i+1===length){// unpaired lead -if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);continue;}// valid lead -leadSurrogate=codePoint;continue;}// 2 leads in a row -if(codePoint<0xDC00){if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);leadSurrogate=codePoint;continue;}// valid surrogate pair -codePoint=(leadSurrogate-0xD800<<10|codePoint-0xDC00)+0x10000;}else if(leadSurrogate){// valid bmp char, but last char was a lead -if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);}leadSurrogate=null;// encode utf8 -if(codePoint<0x80){if((units-=1)<0)break;bytes.push(codePoint);}else if(codePoint<0x800){if((units-=2)<0)break;bytes.push(codePoint>>0x6|0xC0,codePoint&0x3F|0x80);}else if(codePoint<0x10000){if((units-=3)<0)break;bytes.push(codePoint>>0xC|0xE0,codePoint>>0x6&0x3F|0x80,codePoint&0x3F|0x80);}else if(codePoint<0x110000){if((units-=4)<0)break;bytes.push(codePoint>>0x12|0xF0,codePoint>>0xC&0x3F|0x80,codePoint>>0x6&0x3F|0x80,codePoint&0x3F|0x80);}else {throw new Error('Invalid code point');}}return bytes;}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi);}return byteArray;}function base64ToBytes(str){return toByteArray(base64clean(str));}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i];}return i;}function isnan(val){return val!==val;// eslint-disable-line no-self-compare -}// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -function isBuffer(obj){return obj!=null&&(!!obj._isBuffer||isFastBuffer(obj)||isSlowBuffer(obj));}function isFastBuffer(obj){return !!obj.constructor&&typeof obj.constructor.isBuffer==='function'&&obj.constructor.isBuffer(obj);}// For Node v0.10 support. Remove this eventually. -function isSlowBuffer(obj){return typeof obj.readFloatLE==='function'&&typeof obj.slice==='function'&&isFastBuffer(obj.slice(0,0));}var bufferEs6=/*#__PURE__*/Object.freeze({__proto__:null,Buffer:Buffer$1,INSPECT_MAX_BYTES:INSPECT_MAX_BYTES,SlowBuffer:SlowBuffer,isBuffer:isBuffer,kMaxLength:_kMaxLength});var inherits;if(typeof Object.create==='function'){inherits=function inherits(ctor,superCtor){// implementation from standard node.js 'util' module -ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}});};}else {inherits=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor();ctor.prototype.constructor=ctor;};}var inherits$1=inherits;var formatRegExp=/%[sdj%]/g;function format$2(f){if(!isString(f)){var objects=[];for(var i=0;i=len)return x;switch(x){case'%s':return String(args[i++]);case'%d':return Number(args[i++]);case'%j':try{return JSON.stringify(args[i++]);}catch(_){return '[Circular]';}default:return x;}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean$2(opts)){// legacy... -ctx.showHidden=opts;}else if(opts){// got an "options" object -_extend(ctx,opts);}// set default options -if(isUndefined$3(ctx.showHidden))ctx.showHidden=false;if(isUndefined$3(ctx.depth))ctx.depth=2;if(isUndefined$3(ctx.colors))ctx.colors=false;if(isUndefined$3(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth);}// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect$1.colors={'bold':[1,22],'italic':[3,23],'underline':[4,24],'inverse':[7,27],'white':[37,39],'grey':[90,39],'black':[30,39],'blue':[34,39],'cyan':[36,39],'green':[32,39],'magenta':[35,39],'red':[31,39],'yellow':[33,39]};// Don't use 'blue' not visible on cmd.exe -inspect$1.styles={'special':'cyan','number':'yellow','boolean':'yellow','undefined':'grey','null':'bold','string':'green','date':'magenta',// "name": intentionally not styling -'regexp':'red'};function stylizeWithColor(str,styleType){var style=inspect$1.styles[styleType];if(style){return '\u001b['+inspect$1.colors[style][0]+'m'+str+'\u001b['+inspect$1.colors[style][1]+'m';}else {return str;}}function stylizeNoColor(str,styleType){return str;}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true;});return hash;}function formatValue(ctx,value,recurseTimes){// Provide a hook for user-specified inspect functions. -// Check that value is an object with an inspect function on it -if(ctx.customInspect&&value&&isFunction$2(value.inspect)&&// Filter out the util module, it's inspect function is special -value.inspect!==inspect$1&&// Also filter out any prototype objects using the circular check. -!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes);}return ret;}// Primitive types cannot have properties -var primitive=formatPrimitive(ctx,value);if(primitive){return primitive;}// Look up the keys of the object. -var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value);}// IE doesn't make error fields non-enumerable -// http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx -if(isError(value)&&(keys.indexOf('message')>=0||keys.indexOf('description')>=0)){return formatError$1(value);}// Some type of object without properties can be shortcutted. -if(keys.length===0){if(isFunction$2(value)){var name=value.name?': '+value.name:'';return ctx.stylize('[Function'+name+']','special');}if(isRegExp$2(value)){return ctx.stylize(RegExp.prototype.toString.call(value),'regexp');}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),'date');}if(isError(value)){return formatError$1(value);}}var base='',array=false,braces=['{','}'];// Make Array say that they are Array -if(isArray$1(value)){array=true;braces=['[',']'];}// Make functions say that they are functions -if(isFunction$2(value)){var n=value.name?': '+value.name:'';base=' [Function'+n+']';}// Make RegExps say that they are RegExps -if(isRegExp$2(value)){base=' '+RegExp.prototype.toString.call(value);}// Make dates with properties first say the date -if(isDate(value)){base=' '+Date.prototype.toUTCString.call(value);}// Make error with message first say the error -if(isError(value)){base=' '+formatError$1(value);}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1];}if(recurseTimes<0){if(isRegExp$2(value)){return ctx.stylize(RegExp.prototype.toString.call(value),'regexp');}else {return ctx.stylize('[Object]','special');}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys);}else {output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array);});}ctx.seen.pop();return reduceToSingleString(output,base,braces);}function formatPrimitive(ctx,value){if(isUndefined$3(value))return ctx.stylize('undefined','undefined');if(isString(value)){var simple='\''+JSON.stringify(value).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+'\'';return ctx.stylize(simple,'string');}if(isNumber(value))return ctx.stylize(''+value,'number');if(isBoolean$2(value))return ctx.stylize(''+value,'boolean');// For some reason typeof null is "object", so special case here. -if(isNull$3(value))return ctx.stylize('null','null');}function formatError$1(value){return '['+Error.prototype.toString.call(value)+']';}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split('\n').map(function(line){return ' '+line;}).join('\n').substr(2);}else {str='\n'+str.split('\n').map(function(line){return ' '+line;}).join('\n');}}}else {str=ctx.stylize('[Circular]','special');}}if(isUndefined$3(name)){if(array&&key.match(/^\d+$/)){return str;}name=JSON.stringify(''+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,'name');}else {name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,'string');}}return name+': '+str;}function reduceToSingleString(output,base,braces){var length=output.reduce(function(prev,cur){if(cur.indexOf('\n')>=0);return prev+cur.replace(/\u001b\[\d\d?m/g,'').length+1;},0);if(length>60){return braces[0]+(base===''?'':base+'\n ')+' '+output.join(',\n ')+' '+braces[1];}return braces[0]+base+' '+output.join(', ')+' '+braces[1];}// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray$1(ar){return Array.isArray(ar);}function isBoolean$2(arg){return typeof arg==='boolean';}function isNull$3(arg){return arg===null;}function isNullOrUndefined(arg){return arg==null;}function isNumber(arg){return typeof arg==='number';}function isString(arg){return typeof arg==='string';}function isUndefined$3(arg){return arg===void 0;}function isRegExp$2(re){return isObject$5(re)&&objectToString(re)==='[object RegExp]';}function isObject$5(arg){return typeof arg==='object'&&arg!==null;}function isDate(d){return isObject$5(d)&&objectToString(d)==='[object Date]';}function isError(e){return isObject$5(e)&&(objectToString(e)==='[object Error]'||e instanceof Error);}function isFunction$2(arg){return typeof arg==='function';}function objectToString(o){return Object.prototype.toString.call(o);}function _extend(origin,add){// Don't do anything if add isn't an object -if(!add||!isObject$5(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]];}return origin;}function hasOwnProperty$1(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}function BufferList(){this.head=null;this.tail=null;this.length=0;}BufferList.prototype.push=function(v){var entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length;};BufferList.prototype.unshift=function(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length;};BufferList.prototype.shift=function(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret;};BufferList.prototype.clear=function(){this.head=this.tail=null;this.length=0;};BufferList.prototype.join=function(s){if(this.length===0)return '';var p=this.head;var ret=''+p.data;while(p=p.next){ret+=s+p.data;}return ret;};BufferList.prototype.concat=function(n){if(this.length===0)return Buffer$1.alloc(0);if(this.length===1)return this.head.data;var ret=Buffer$1.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){p.data.copy(ret,i);i+=p.data.length;p=p.next;}return ret;};// Copyright Joyent, Inc. and other Node contributors. -var isBufferEncoding=Buffer$1.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case'hex':case'utf8':case'utf-8':case'ascii':case'binary':case'base64':case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':case'raw':return true;default:return false;}};function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding)){throw new Error('Unknown encoding: '+encoding);}}// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -function StringDecoder(encoding){this.encoding=(encoding||'utf8').toLowerCase().replace(/[-_]/,'');assertEncoding(encoding);switch(this.encoding){case'utf8':// CESU-8 represents each of Surrogate Pair by 3-bytes -this.surrogateSize=3;break;case'ucs2':case'utf16le':// UTF-16 represents each of Surrogate Pair by 2-bytes -this.surrogateSize=2;this.detectIncompleteChar=utf16DetectIncompleteChar;break;case'base64':// Base-64 stores 3 bytes in 4 chars, and pads the remainder. -this.surrogateSize=3;this.detectIncompleteChar=base64DetectIncompleteChar;break;default:this.write=passThroughWrite;return;}// Enough space to store all bytes of a single character. UTF-8 needs 4 -// bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). -this.charBuffer=new Buffer$1(6);// Number of bytes received for the current incomplete multi-byte character. -this.charReceived=0;// Number of bytes expected for the current incomplete multi-byte character. -this.charLength=0;}// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write=function(buffer){var charStr='';// if our last write ended with an incomplete multibyte character -while(this.charLength){// determine how many remaining bytes this buffer has to offer for this char -var available=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;// add the new bytes to the char buffer -buffer.copy(this.charBuffer,this.charReceived,0,available);this.charReceived+=available;if(this.charReceived=0xD800&&charCode<=0xDBFF){this.charLength+=this.surrogateSize;charStr='';continue;}this.charReceived=this.charLength=0;// if there are no more bytes in this buffer, just emit our char -if(buffer.length===0){return charStr;}break;}// determine and set charLength / charReceived -this.detectIncompleteChar(buffer);var end=buffer.length;if(this.charLength){// buffer the incomplete character bytes we got -buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end);end-=this.charReceived;}charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1;var charCode=charStr.charCodeAt(end);// CESU-8: lead surrogate (D800-DBFF) is also the incomplete character -if(charCode>=0xD800&&charCode<=0xDBFF){var size=this.surrogateSize;this.charLength+=size;this.charReceived+=size;this.charBuffer.copy(this.charBuffer,size,0,size);buffer.copy(this.charBuffer,0,0,size);return charStr.substring(0,end);}// or just emit the charStr -return charStr;};// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar=function(buffer){// determine how many bytes we have to check at the end of this buffer -var i=buffer.length>=3?3:buffer.length;// Figure out if one of the last i bytes of our buffer announces an -// incomplete char. -for(;i>0;i--){var c=buffer[buffer.length-i];// See http://en.wikipedia.org/wiki/UTF-8#Description -// 110XXXXX -if(i==1&&c>>5==0x06){this.charLength=2;break;}// 1110XXXX -if(i<=2&&c>>4==0x0E){this.charLength=3;break;}// 11110XXX -if(i<=3&&c>>3==0x1E){this.charLength=4;break;}}this.charReceived=i;};StringDecoder.prototype.end=function(buffer){var res='';if(buffer&&buffer.length)res=this.write(buffer);if(this.charReceived){var cr=this.charReceived;var buf=this.charBuffer;var enc=this.encoding;res+=buf.slice(0,cr).toString(enc);}return res;};function passThroughWrite(buffer){return buffer.toString(this.encoding);}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2;this.charLength=this.charReceived?2:0;}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3;this.charLength=this.charReceived?3:0;}Readable$1.ReadableState=ReadableState;var debug=debuglog('stream');inherits$1(Readable$1,EventEmitter);function prependListener(emitter,event,fn){// Sadly this is not cacheable as some libraries bundle their own -// event emitter implementation with them. -if(typeof emitter.prependListener==='function'){return emitter.prependListener(event,fn);}else {// This is a hack to make sure that our error handler is attached before any -// userland ones. NEVER DO THIS. This is here only because this code needs -// to continue to work with older versions of Node.js that do not include -// the prependListener() method. The goal is to eventually remove this hack. -if(!emitter._events||!emitter._events[event])emitter.on(event,fn);else if(Array.isArray(emitter._events[event]))emitter._events[event].unshift(fn);else emitter._events[event]=[fn,emitter._events[event]];}}function listenerCount(emitter,type){return emitter.listeners(type).length;}function ReadableState(options,stream){options=options||{};// object stream flag. Used to make read(n) ignore n and to -// make all the buffer merging and length checks go away -this.objectMode=!!options.objectMode;if(stream instanceof Duplex)this.objectMode=this.objectMode||!!options.readableObjectMode;// the point at which it stops calling _read() to fill the buffer -// Note: 0 is a valid value, means "don't call _read preemptively ever" -var hwm=options.highWaterMark;var defaultHwm=this.objectMode?16:16*1024;this.highWaterMark=hwm||hwm===0?hwm:defaultHwm;// cast to ints. -this.highWaterMark=~~this.highWaterMark;// A linked list is used to store data chunks instead of an array because the -// linked list can remove elements from the beginning faster than -// array.shift() -this.buffer=new BufferList();this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;// a flag to be able to tell if the onwrite cb is called immediately, -// or on a later tick. We set this to true at first, because any -// actions that shouldn't happen until "later" should generally also -// not happen before the first write call. -this.sync=true;// whenever we return null, then we set a flag to say -// that we're awaiting a 'readable' event emission. -this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;// Crypto is kind of old and crusty. Historically, its default string -// encoding is 'binary' so we have to make this configurable. -// Everything else in the universe uses 'utf8', though. -this.defaultEncoding=options.defaultEncoding||'utf8';// when piping, we only care about 'readable' events that happen -// after read()ing all the bytes and not getting any pushback. -this.ranOut=false;// the number of writers that are awaiting a drain event in .pipe()s -this.awaitDrain=0;// if true, a maybeReadMore has been scheduled -this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding;}}function Readable$1(options){if(!(this instanceof Readable$1))return new Readable$1(options);this._readableState=new ReadableState(options,this);// legacy -this.readable=true;if(options&&typeof options.read==='function')this._read=options.read;EventEmitter.call(this);}// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable$1.prototype.push=function(chunk,encoding){var state=this._readableState;if(!state.objectMode&&typeof chunk==='string'){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=Buffer$1.from(chunk,encoding);encoding='';}}return readableAddChunk(this,state,chunk,encoding,false);};// Unshift should *always* be something directly out of read() -Readable$1.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,'',true);};Readable$1.prototype.isPaused=function(){return this._readableState.flowing===false;};function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er){stream.emit('error',er);}else if(chunk===null){state.reading=false;onEofChunk(stream,state);}else if(state.objectMode||chunk&&chunk.length>0){if(state.ended&&!addToFront){var e=new Error('stream.push() after EOF');stream.emit('error',e);}else if(state.endEmitted&&addToFront){var _e=new Error('stream.unshift() after end event');stream.emit('error',_e);}else {var skipAdd;if(state.decoder&&!addToFront&&!encoding){chunk=state.decoder.write(chunk);skipAdd=!state.objectMode&&chunk.length===0;}if(!addToFront)state.reading=false;// Don't add to the buffer if we've decoded to an empty string chunk and -// we're not in object mode -if(!skipAdd){// if we want the data now, just emit it. -if(state.flowing&&state.length===0&&!state.sync){stream.emit('data',chunk);stream.read(0);}else {// update the buffer info. -state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream);}}maybeReadMore(stream,state);}}else if(!addToFront){state.reading=false;}return needMoreData(state);}// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state){return !state.ended&&(state.needReadable||state.length 8MB -var MAX_HWM=0x800000;function computeNewHighWaterMark(n){if(n>=MAX_HWM){n=MAX_HWM;}else {// Get the next highest power of 2 to prevent increasing hwm excessively in -// tiny amounts -n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++;}return n;}// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){// Only flow one buffer at a time -if(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length;}// If we're asking for more than the current hwm, then raise the hwm. -if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;// Don't have enough -if(!state.ended){state.needReadable=true;return 0;}return state.length;}// you can override either this method, or the async _read(n) below. -Readable$1.prototype.read=function(n){debug('read',n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;// if we're doing read(0) to trigger a readable event, but we -// already have a bunch of data in the buffer, then just trigger -// the 'readable' event and move on. -if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){debug('read: emitReadable',state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null;}n=howMuchToRead(n,state);// if we've ended, and we're now clear, then finish it up. -if(n===0&&state.ended){if(state.length===0)endReadable(this);return null;}// All the actual chunk generation logic needs to be -// *below* the call to _read. The reason is that in certain -// synthetic stream cases, such as passthrough streams, _read -// may be a completely synchronous operation which may change -// the state of the read buffer, providing enough data when -// before there was *not* enough. -// -// So, the steps are: -// 1. Figure out what the state of things will be after we do -// a read from the buffer. -// -// 2. If that resulting state will trigger a _read, then call _read. -// Note that this may be asynchronous, or synchronous. Yes, it is -// deeply ugly to write APIs this way, but that still doesn't mean -// that the Readable class should behave improperly, as streams are -// designed to be sync/async agnostic. -// Take note if the _read call is sync or async (ie, if the read call -// has returned yet), so that we know whether or not it's safe to emit -// 'readable' etc. -// -// 3. Actually pull the requested chunks out of the buffer and return. -// if we need a readable event, then we need to do some reading. -var doRead=state.needReadable;debug('need readable',doRead);// if we currently have less than the highWaterMark, then also read some -if(state.length===0||state.length-n0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=true;n=0;}else {state.length-=n;}if(state.length===0){// If we have nothing in the buffer, then we want to know -// as soon as we *do* get something into the buffer. -if(!state.ended)state.needReadable=true;// If we tried to read() past the EOF, then emit end on the next tick. -if(nOrig!==n&&state.ended)endReadable(this);}if(ret!==null)this.emit('data',ret);return ret;};function chunkInvalid(state,chunk){var er=null;if(!Buffer$1.isBuffer(chunk)&&typeof chunk!=='string'&&chunk!==null&&chunk!==undefined&&!state.objectMode){er=new TypeError('Invalid non-string/buffer chunk');}return er;}function onEofChunk(stream,state){if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length;}}state.ended=true;// emit 'readable' now to make sure it gets picked up. -emitReadable(stream);}// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(!state.emittedReadable){debug('emitReadable',state.flowing);state.emittedReadable=true;if(state.sync)nextTick(emitReadable_,stream);else emitReadable_(stream);}}function emitReadable_(stream){debug('emit readable');stream.emit('readable');flow(stream);}// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;nextTick(maybeReadMore_,stream,state);}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length Introduce a guard on increasing awaitDrain. -var increasedAwaitDrain=false;src.on('data',ondata);function ondata(chunk){debug('ondata');increasedAwaitDrain=false;var ret=dest.write(chunk);if(false===ret&&!increasedAwaitDrain){// If the user unpiped during `dest.write()`, it is possible -// to get stuck in a permanently paused state if that write -// also returned false. -// => Check whether `dest` is still a piping destination. -if((state.pipesCount===1&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug('false write response, pause',src._readableState.awaitDrain);src._readableState.awaitDrain++;increasedAwaitDrain=true;}src.pause();}}// if the dest has an error, then stop piping into it. -// however, don't suppress the throwing behavior for this. -function onerror(er){debug('onerror',er);unpipe();dest.removeListener('error',onerror);if(listenerCount(dest,'error')===0)dest.emit('error',er);}// Make sure our error handler is attached before userland ones. -prependListener(dest,'error',onerror);// Both close and finish should trigger unpipe, but only once. -function onclose(){dest.removeListener('finish',onfinish);unpipe();}dest.once('close',onclose);function onfinish(){debug('onfinish');dest.removeListener('close',onclose);unpipe();}dest.once('finish',onfinish);function unpipe(){debug('unpipe');src.unpipe(dest);}// tell the dest that it's being piped to -dest.emit('pipe',src);// start the flow if it hasn't been started already. -if(!state.flowing){debug('pipe resume');src.resume();}return dest;};function pipeOnDrain(src){return function(){var state=src._readableState;debug('pipeOnDrain',state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&src.listeners('data').length){state.flowing=true;flow(src);}};}Readable$1.prototype.unpipe=function(dest){var state=this._readableState;// if we're not piping anywhere, then do nothing. -if(state.pipesCount===0)return this;// just one destination. most common case. -if(state.pipesCount===1){// passed in one, but it's not the right one. -if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;// got a match. -state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit('unpipe',this);return this;}// slow case. multiple pipe destinations. -if(!dest){// remove all. -var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var _i=0;_i=state.length){// read it all, truncate the list -if(state.decoder)ret=state.buffer.join('');else if(state.buffer.length===1)ret=state.buffer.head.data;else ret=state.buffer.concat(state.length);state.buffer.clear();}else {// read part of list -ret=fromListPartial(n,state.buffer,state.decoder);}return ret;}// Extracts only enough buffered data to satisfy the amount requested. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromListPartial(n,list,hasStrings){var ret;if(nstr.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c;if(p.next)list.head=p.next;else list.head=list.tail=null;}else {list.head=p;p.data=str.slice(nb);}break;}++c;}list.length-=c;return ret;}// Copies a specified amount of bytes from the list of buffered data chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBuffer(n,list){var ret=Buffer$1.allocUnsafe(n);var p=list.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)list.head=p.next;else list.head=list.tail=null;}else {list.head=p;p.data=buf.slice(nb);}break;}++c;}list.length-=c;return ret;}function endReadable(stream){var state=stream._readableState;// If we get here before consuming all the bytes, then that is a -// bug in node. Should never happen. -if(state.length>0)throw new Error('"endReadable()" called on non-empty stream');if(!state.endEmitted){state.ended=true;nextTick(endReadableNT,state,stream);}}function endReadableNT(state,stream){// Check that we didn't get one last unshift. -if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit('end');}}function forEach(xs,f){for(var i=0,l=xs.length;i-1))throw new TypeError('Unknown encoding: '+encoding);this._writableState.defaultEncoding=encoding;return this;};function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==='string'){chunk=Buffer$1.from(chunk,encoding);}return chunk;}// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding);if(Buffer$1.isBuffer(chunk))encoding='buffer';var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length*/nextTick(afterWrite,stream,state,finished,cb);/**/}else {afterWrite(stream,state,finished,cb);}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);state.pendingcb--;cb();finishMaybe(stream,state);}// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit('drain');}}// if there's something in the buffer waiting, then process it -function clearBuffer(stream,state){state.bufferProcessing=true;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){// Fast case, write everything using _writev() -var l=state.bufferedRequestCount;var buffer=new Array(l);var holder=state.corkedRequestsFree;holder.entry=entry;var count=0;while(entry){buffer[count]=entry;entry=entry.next;count+=1;}doWrite(stream,state,true,state.length,buffer,'',holder.finish);// doWrite is almost always async, defer these to save a bit of time -// as the hot path ends with doWrite -state.pendingcb++;state.lastBufferedRequest=null;if(holder.next){state.corkedRequestsFree=holder.next;holder.next=null;}else {state.corkedRequestsFree=new CorkedRequest(state);}}else {// Slow case, write chunks one-by-one -while(entry){var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,false,len,chunk,encoding,cb);entry=entry.next;// if we didn't call the onwrite immediately, then -// it means that we need to wait until it does. -// also, that means that the chunk and cb are currently -// being processed, so move the buffer counter past them. -if(state.writing){break;}}if(entry===null)state.lastBufferedRequest=null;}state.bufferedRequestCount=0;state.bufferedRequest=entry;state.bufferProcessing=false;}Writable.prototype._write=function(chunk,encoding,cb){cb(new Error('not implemented'));};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==='function'){cb=chunk;chunk=null;encoding=null;}else if(typeof encoding==='function'){cb=encoding;encoding=null;}if(chunk!==null&&chunk!==undefined)this.write(chunk,encoding);// .end() fully uncorks -if(state.corked){state.corked=1;this.uncork();}// ignore unnecessary end() calls. -if(!state.ending&&!state.finished)endWritable(this,state,cb);};function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing;}function prefinish(stream,state){if(!state.prefinished){state.prefinished=true;stream.emit('prefinish');}}function finishMaybe(stream,state){var need=needFinish(state);if(need){if(state.pendingcb===0){prefinish(stream,state);state.finished=true;stream.emit('finish');}else {prefinish(stream,state);}}return need;}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)nextTick(cb);else stream.once('finish',cb);}state.ended=true;stream.writable=false;}// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state){var _this=this;this.next=null;this.entry=null;this.finish=function(err){var entry=_this.entry;_this.entry=null;while(entry){var cb=entry.callback;state.pendingcb--;cb(err);entry=entry.next;}if(state.corkedRequestsFree){state.corkedRequestsFree.next=_this;}else {state.corkedRequestsFree=_this;}};}inherits$1(Duplex,Readable$1);var keys=Object.keys(Writable.prototype);for(var v=0;v of ): -// for (var ,_i,_it = [Symbol.iterator](); = (_i = _it.next()).value,!_i.done;) -for(var header,_i,_it=response.headers[Symbol.iterator]();header=(_i=_it.next()).value,!_i.done;){self.headers[header[0].toLowerCase()]=header[1];self.rawHeaders.push(header[0],header[1]);}// TODO: this doesn't respect backpressure. Once WritableStream is available, this can be fixed -var reader=response.body.getReader();read=function(){reader.read().then(function(result){if(self._destroyed)return;if(result.done){self.push(null);return;}self.push(new Buffer$1(result.value));read();});};read();}else {self._xhr=xhr;self._pos=0;self.url=xhr.responseURL;self.statusCode=xhr.status;self.statusMessage=xhr.statusText;var headers=xhr.getAllResponseHeaders().split(/\r?\n/);headers.forEach(function(header){var matches=header.match(/^([^:]+):\s*(.*)/);if(matches){var key=matches[1].toLowerCase();if(key==='set-cookie'){if(self.headers[key]===undefined){self.headers[key]=[];}self.headers[key].push(matches[2]);}else if(self.headers[key]!==undefined){self.headers[key]+=', '+matches[2];}else {self.headers[key]=matches[2];}self.rawHeaders.push(matches[1],matches[2]);}});self._charset='x-user-defined';if(!overrideMimeType){var mimeType=self.rawHeaders['mime-type'];if(mimeType){var charsetMatch=mimeType.match(/;\s*charset=([^;])(;|$)/);if(charsetMatch){self._charset=charsetMatch[1].toLowerCase();}}if(!self._charset)self._charset='utf-8';// best guess -}}}inherits$1(IncomingMessage,Readable$1);IncomingMessage.prototype._read=function(){};IncomingMessage.prototype._onXHRProgress=function(){var self=this;var xhr=self._xhr;var response=null;switch(self._mode){case'text:vbarray':// For IE9 -if(xhr.readyState!==rStates.DONE)break;try{// This fails in IE8 -response=new global$1.VBArray(xhr.responseBody).toArray();}catch(e){// pass -}if(response!==null){self.push(new Buffer$1(response));break;}// Falls through in IE8 -case'text':try{// This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4 -response=xhr.responseText;}catch(e){self._mode='text:vbarray';break;}if(response.length>self._pos){var newData=response.substr(self._pos);if(self._charset==='x-user-defined'){var buffer=new Buffer$1(newData.length);for(var i=0;iself._pos){self.push(new Buffer$1(new Uint8Array(reader.result.slice(self._pos))));self._pos=reader.result.byteLength;}};reader.onload=function(){self.push(null);};// reader.onerror = ??? // TODO: this -reader.readAsArrayBuffer(response);break;}// The ms-stream case handles end separately in reader.onload() -if(self._xhr.readyState===rStates.DONE&&self._mode!=='ms-stream'){self.push(null);}};// from https://github.com/jhiesey/to-arraybuffer/blob/6502d9850e70ba7935a7df4ad86b358fc216f9f0/index.js -function toArrayBuffer(buf){// If the buffer is backed by a Uint8Array, a faster version will work -if(buf instanceof Uint8Array){// If the buffer isn't a subarray, return the underlying ArrayBuffer -if(buf.byteOffset===0&&buf.byteLength===buf.buffer.byteLength){return buf.buffer;}else if(typeof buf.buffer.slice==='function'){// Otherwise we need to get a proper copy -return buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.byteLength);}}if(isBuffer(buf)){// This is the slow version that will work with any Buffer -// implementation (even in old browsers) -var arrayCopy=new Uint8Array(buf.length);var len=buf.length;for(var i=0;i0&&len>maxKeys){len=maxKeys;}for(var i=0;i=0){kstr=x.substr(0,idx);vstr=x.substr(idx+1);}else {kstr=x;vstr='';}k=decodeURIComponent(kstr);v=decodeURIComponent(vstr);if(!hasOwnProperty(obj,k)){obj[k]=v;}else if(isArray(obj[k])){obj[k].push(v);}else {obj[k]=[obj[k],v];}}return obj;}// Copyright Joyent, Inc. and other Node contributors. -var Url={parse:urlParse,resolve:urlResolve,resolveObject:urlResolveObject,format:urlFormat,Url:Url$1};function Url$1(){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;}// Reference: RFC 3986, RFC 1808, RFC 2396 -// define these here so at least they only have to be -// compiled once on the first module load. -var protocolPattern=/^([a-z0-9.+-]+:)/i,portPattern=/:[0-9]*$/,// Special case for a simple path URL -simplePathPattern=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,// RFC 2396: characters reserved for delimiting URLs. -// We actually just auto-escape these. -delims=['<','>','"','`',' ','\r','\n','\t'],// RFC 2396: characters not allowed for various reasons. -unwise=['{','}','|','\\','^','`'].concat(delims),// Allowed by RFCs, but cause of XSS attacks. Always escape these. -autoEscape=['\''].concat(unwise),// Characters that are never ever allowed in a hostname. -// Note that any invalid chars are also handled, but these -// are the ones that are *expected* to be seen, so we fast-path -// them. -nonHostChars=['%','/','?',';','#'].concat(autoEscape),hostEndingChars=['/','?','#'],hostnameMaxLen=255,hostnamePartPattern=/^[+a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,// protocols that can allow "unsafe" and "unwise" chars. -unsafeProtocol={'javascript':true,'javascript:':true},// protocols that never have a hostname. -hostlessProtocol={'javascript':true,'javascript:':true},// protocols that always contain a // bit. -slashedProtocol={'http':true,'https':true,'ftp':true,'gopher':true,'file':true,'http:':true,'https:':true,'ftp:':true,'gopher:':true,'file:':true};function urlParse(url,parseQueryString,slashesDenoteHost){if(url&&isObject$5(url)&&url instanceof Url$1)return url;var u=new Url$1();u.parse(url,parseQueryString,slashesDenoteHost);return u;}Url$1.prototype.parse=function(url,parseQueryString,slashesDenoteHost){return parse$6(this,url,parseQueryString,slashesDenoteHost);};function parse$6(self,url,parseQueryString,slashesDenoteHost){if(!isString(url)){throw new TypeError('Parameter \'url\' must be a string, not '+typeof url);}// Copy chrome, IE, opera backslash-handling behavior. -// Back slashes before the query string get converted to forward slashes -// See: https://code.google.com/p/chromium/issues/detail?id=25916 -var queryIndex=url.indexOf('?'),splitter=queryIndex!==-1&&queryIndex user:a@b host:c -// http://a@b?@c => user:a host:c path:/?@c -// v0.12 TODO(isaacs): This is not quite how Chrome does things. -// Review our test case against browsers more comprehensively. -// find the first instance of any hostEndingChars -var hostEnd=-1;for(i=0;i host:b auth:a path:/c@d -atSign=rest.lastIndexOf('@',hostEnd);}// Now we have a portion which is definitely the auth. -// Pull that off. -if(atSign!==-1){auth=rest.slice(0,atSign);rest=rest.slice(atSign+1);self.auth=decodeURIComponent(auth);}// the host is the remaining to the left of the first non-host char -hostEnd=-1;for(i=0;i127){// we replace non-ASCII char with a temporary placeholder -// we need this to make sure size of hostname is not -// broken by replacing non-ASCII by nothing -newpart+='x';}else {newpart+=part[j];}}// we test again with ASCII char only -if(!newpart.match(hostnamePartPattern)){var validParts=hostparts.slice(0,i);var notHost=hostparts.slice(i+1);var bit=part.match(hostnamePartStart);if(bit){validParts.push(bit[1]);notHost.unshift(bit[2]);}if(notHost.length){rest='/'+notHost.join('.')+rest;}self.hostname=validParts.join('.');break;}}}}if(self.hostname.length>hostnameMaxLen){self.hostname='';}else {// hostnames are always lower case. -self.hostname=self.hostname.toLowerCase();}if(!ipv6Hostname){// IDNA Support: Returns a punycoded representation of "domain". -// It only converts parts of the domain name that -// have non-ASCII characters, i.e. it doesn't matter if -// you call it with a domain that already is ASCII-only. -self.hostname=toASCII(self.hostname);}p=self.port?':'+self.port:'';var h=self.hostname||'';self.host=h+p;self.href+=self.host;// strip [ and ] from the hostname -// the host field still retains them, though -if(ipv6Hostname){self.hostname=self.hostname.substr(1,self.hostname.length-2);if(rest[0]!=='/'){rest='/'+rest;}}}// now rest is set to the post-host stuff. -// chop off any delim chars. -if(!unsafeProtocol[lowerProto]){// First, make 100% sure that any "autoEscape" chars get -// escaped, even if encodeURIComponent doesn't think they -// need to be. -for(i=0,l=autoEscape.length;i0?result.host.split('@'):false;if(authInHost){result.auth=authInHost.shift();result.host=result.hostname=authInHost.shift();}}result.search=relative.search;result.query=relative.query;//to support http.request -if(!isNull$3(result.pathname)||!isNull$3(result.search)){result.path=(result.pathname?result.pathname:'')+(result.search?result.search:'');}result.href=result.format();return result;}if(!srcPath.length){// no path at all. easy. -// we've already handled the other stuff above. -result.pathname=null;//to support http.request -if(result.search){result.path='/'+result.search;}else {result.path=null;}result.href=result.format();return result;}// if a url ENDs in . or .., then it must get a trailing slash. -// however, if it ends in anything else non-slashy, -// then it must NOT get a trailing slash. -var last=srcPath.slice(-1)[0];var hasTrailingSlash=(result.host||relative.host||srcPath.length>1)&&(last==='.'||last==='..')||last==='';// strip single dots, resolve double dots to parent dir -// if the path tries to go above the root, `up` ends up > 0 -var up=0;for(var i=srcPath.length;i>=0;i--){last=srcPath[i];if(last==='.'){srcPath.splice(i,1);}else if(last==='..'){srcPath.splice(i,1);up++;}else if(up){srcPath.splice(i,1);up--;}}// if the path is allowed to go above the root, restore leading ..s -if(!mustEndAbs&&!removeAllDots){for(;up--;up){srcPath.unshift('..');}}if(mustEndAbs&&srcPath[0]!==''&&(!srcPath[0]||srcPath[0].charAt(0)!=='/')){srcPath.unshift('');}if(hasTrailingSlash&&srcPath.join('/').substr(-1)!=='/'){srcPath.push('');}var isAbsolute=srcPath[0]===''||srcPath[0]&&srcPath[0].charAt(0)==='/';// put the host back -if(psychotic){result.hostname=result.host=isAbsolute?'':srcPath.length?srcPath.shift():'';//occationaly the auth can get stuck only in host -//this especially happens in cases like -//url.resolveObject('mailto:local1@domain1', 'local2@domain2') -authInHost=result.host&&result.host.indexOf('@')>0?result.host.split('@'):false;if(authInHost){result.auth=authInHost.shift();result.host=result.hostname=authInHost.shift();}}mustEndAbs=mustEndAbs||result.host&&srcPath.length;if(mustEndAbs&&!isAbsolute){srcPath.unshift('');}if(!srcPath.length){result.pathname=null;result.path=null;}else {result.pathname=srcPath.join('/');}//to support request.http -if(!isNull$3(result.pathname)||!isNull$3(result.search)){result.path=(result.pathname?result.pathname:'')+(result.search?result.search:'');}result.auth=relative.auth||result.auth;result.slashes=result.slashes||relative.slashes;result.href=result.format();return result;};Url$1.prototype.parseHost=function(){return parseHost(this);};function parseHost(self){var host=self.host;var port=portPattern.exec(host);if(port){port=port[0];if(port!==':'){self.port=port.substr(1);}host=host.substr(0,host.length-port.length);}if(host)self.hostname=host;}var url=/*#__PURE__*/Object.freeze({__proto__:null,parse:urlParse,resolve:urlResolve,resolveObject:urlResolveObject,format:urlFormat,'default':Url,Url:Url$1});function request(opts,cb){if(typeof opts==='string')opts=urlParse(opts);// Normally, the page is loaded from http or https, so not specifying a protocol -// will result in a (valid) protocol-relative url. However, this won't work if -// the protocol is something else, like 'file:' -var defaultProtocol=global$1.location.protocol.search(/^https?:$/)===-1?'http:':'';var protocol=opts.protocol||defaultProtocol;var host=opts.hostname||opts.host;var port=opts.port;var path=opts.path||'/';// Necessary for IPv6 addresses -if(host&&host.indexOf(':')!==-1)host='['+host+']';// This may be a relative url. The browser should always be able to interpret it correctly. -opts.url=(host?protocol+'//'+host:'')+(port?':'+port:'')+path;opts.method=(opts.method||'GET').toUpperCase();opts.headers=opts.headers||{};// Also valid opts.auth, opts.mode -var req=new ClientRequest(opts);if(cb)req.on('response',cb);return req;}function get$1(opts,cb){var req=request(opts,cb);req.end();return req;}function Agent(){}Agent.defaultMaxSockets=4;var METHODS=['CHECKOUT','CONNECT','COPY','DELETE','GET','HEAD','LOCK','M-SEARCH','MERGE','MKACTIVITY','MKCOL','MOVE','NOTIFY','OPTIONS','PATCH','POST','PROPFIND','PROPPATCH','PURGE','PUT','REPORT','SEARCH','SUBSCRIBE','TRACE','UNLOCK','UNSUBSCRIBE'];var STATUS_CODES$1={100:'Continue',101:'Switching Protocols',102:'Processing',// RFC 2518, obsoleted by RFC 4918 -200:'OK',201:'Created',202:'Accepted',203:'Non-Authoritative Information',204:'No Content',205:'Reset Content',206:'Partial Content',207:'Multi-Status',// RFC 4918 -300:'Multiple Choices',301:'Moved Permanently',302:'Moved Temporarily',303:'See Other',304:'Not Modified',305:'Use Proxy',307:'Temporary Redirect',400:'Bad Request',401:'Unauthorized',402:'Payment Required',403:'Forbidden',404:'Not Found',405:'Method Not Allowed',406:'Not Acceptable',407:'Proxy Authentication Required',408:'Request Time-out',409:'Conflict',410:'Gone',411:'Length Required',412:'Precondition Failed',413:'Request Entity Too Large',414:'Request-URI Too Large',415:'Unsupported Media Type',416:'Requested Range Not Satisfiable',417:'Expectation Failed',418:'I\'m a teapot',// RFC 2324 -422:'Unprocessable Entity',// RFC 4918 -423:'Locked',// RFC 4918 -424:'Failed Dependency',// RFC 4918 -425:'Unordered Collection',// RFC 4918 -426:'Upgrade Required',// RFC 2817 -428:'Precondition Required',// RFC 6585 -429:'Too Many Requests',// RFC 6585 -431:'Request Header Fields Too Large',// RFC 6585 -500:'Internal Server Error',501:'Not Implemented',502:'Bad Gateway',503:'Service Unavailable',504:'Gateway Time-out',505:'HTTP Version Not Supported',506:'Variant Also Negotiates',// RFC 2295 -507:'Insufficient Storage',// RFC 4918 -509:'Bandwidth Limit Exceeded',510:'Not Extended',// RFC 2774 -511:'Network Authentication Required'// RFC 6585 -};var http$1={request,get:get$1,Agent,METHODS,STATUS_CODES:STATUS_CODES$1};var http$2=/*#__PURE__*/Object.freeze({__proto__:null,request:request,get:get$1,Agent:Agent,METHODS:METHODS,STATUS_CODES:STATUS_CODES$1,'default':http$1});var msg={2:'need dictionary',/* Z_NEED_DICT 2 */1:'stream end',/* Z_STREAM_END 1 */0:'',/* Z_OK 0 */'-1':'file error',/* Z_ERRNO (-1) */'-2':'stream error',/* Z_STREAM_ERROR (-2) */'-3':'data error',/* Z_DATA_ERROR (-3) */'-4':'insufficient memory',/* Z_MEM_ERROR (-4) */'-5':'buffer error',/* Z_BUF_ERROR (-5) */'-6':'incompatible version'/* Z_VERSION_ERROR (-6) */};function ZStream(){/* next input byte */this.input=null;// JS specific, because we have no pointers -this.next_in=0;/* number of bytes available at input */this.avail_in=0;/* total number of input bytes read so far */this.total_in=0;/* next output byte should be put there */this.output=null;// JS specific, because we have no pointers -this.next_out=0;/* remaining free space at output */this.avail_out=0;/* total number of bytes output so far */this.total_out=0;/* last error message, NULL if no error */this.msg=''/*Z_NULL*/;/* not visible by applications */this.state=null;/* best guess about the data type: binary or text */this.data_type=2/*Z_UNKNOWN*/;/* adler32 value of the uncompressed data */this.adler=0;}function arraySet(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray){dest.set(src.subarray(src_offs,src_offs+len),dest_offs);return;}// Fallback to ordinary array -for(var i=0;i=0){buf[len]=0;}}// From zutil.h -var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;/* The three kinds of block type */var MIN_MATCH$1=3;var MAX_MATCH$1=258;/* The minimum and maximum match lengths */ // From deflate.h -/* =========================================================================== - * Internal compression state. - */var LENGTH_CODES$1=29;/* number of length codes, not counting the special END_BLOCK code */var LITERALS$1=256;/* number of literal bytes 0..255 */var L_CODES$1=LITERALS$1+1+LENGTH_CODES$1;/* number of Literal or Length codes, including the END_BLOCK code */var D_CODES$1=30;/* number of distance codes */var BL_CODES$1=19;/* number of codes used to transfer the bit lengths */var HEAP_SIZE$1=2*L_CODES$1+1;/* maximum heap size */var MAX_BITS$1=15;/* All codes must not exceed MAX_BITS bits */var Buf_size=16;/* size of bit buffer in bi_buf */ /* =========================================================================== - * Constants - */var MAX_BL_BITS=7;/* Bit length codes must not exceed MAX_BL_BITS bits */var END_BLOCK=256;/* end of block literal code */var REP_3_6=16;/* repeat previous bit length 3-6 times (2 bits of repeat count) */var REPZ_3_10=17;/* repeat a zero length 3-10 times (3 bits of repeat count) */var REPZ_11_138=18;/* repeat a zero length 11-138 times (7 bits of repeat count) */ /* eslint-disable comma-spacing,array-bracket-spacing */var extra_lbits=/* extra bits for each length code */[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=/* extra bits for each distance code */[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=/* extra bits for each bit length code */[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];/* eslint-enable comma-spacing,array-bracket-spacing */ /* The lengths of the bit length codes are sent in order of decreasing - * probability, to avoid transmitting the lengths for unused bit length codes. - */ /* =========================================================================== - * Local data. These are initialized only once. - */ // We pre-fill arrays with 0 to avoid uninitialized gaps -var DIST_CODE_LEN=512;/* see definition of array dist_code below */ // !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1 -var static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);/* The static literal tree. Since the bit lengths are imposed, there is no - * need for the L_CODES extra codes used during heap construction. However - * The codes 286 and 287 are needed to build a canonical tree (see _tr_init - * below). - */var static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);/* The static distance tree. (Actually a trivial tree since all codes use - * 5 bits.) - */var _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);/* Distance codes. The first 256 values correspond to the distances - * 3 .. 258, the last 256 values correspond to the top 8 bits of - * the 15 bit distances. - */var _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);/* length code for each normalized match length (0 == MIN_MATCH) */var base_length=new Array(LENGTH_CODES$1);zero$1(base_length);/* First normalized length for each code (0 = MIN_MATCH) */var base_dist=new Array(D_CODES$1);zero$1(base_dist);/* First normalized distance for each code (0 = distance of 1) */function StaticTreeDesc(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;/* static tree or NULL */this.extra_bits=extra_bits;/* extra bits for each code or NULL */this.extra_base=extra_base;/* base index for extra_bits */this.elems=elems;/* max number of elements in the tree */this.max_length=max_length;/* max bit length for the codes */ // show if `static_tree` has data or dummy - needed for monomorphic objects -this.has_stree=static_tree&&static_tree.length;}var static_l_desc;var static_d_desc;var static_bl_desc;function TreeDesc(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;/* the dynamic tree */this.max_code=0;/* largest code with non zero frequency */this.stat_desc=stat_desc;/* the corresponding static tree */}function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)];}/* =========================================================================== - * Output a short LSB first on the stream. - * IN assertion: there is enough room in pendingBuf. - */function put_short(s,w){// put_byte(s, (uch)((w) & 0xff)); -// put_byte(s, (uch)((ush)(w) >> 8)); -s.pending_buf[s.pending++]=w&0xff;s.pending_buf[s.pending++]=w>>>8&0xff;}/* =========================================================================== - * Send a value on a given number of bits. - * IN assertion: length <= 16 and value fits in length bits. - */function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size;}else {s.bi_buf|=value<>>=1;res<<=1;}while(--len>0);return res>>>1;}/* =========================================================================== - * Flush the bit buffer, keeping at most 7 bits in it. - */function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0;}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&0xff;s.bi_buf>>=8;s.bi_valid-=8;}}/* =========================================================================== - * Compute the optimal bit lengths for a tree and update the total bit length - * for the current block. - * IN assertion: the fields freq and dad are set, heap[heap_max] and - * above are the tree nodes sorted by increasing frequency. - * OUT assertions: the field len is set to the optimal bit length, the - * array bl_count contains the frequencies for each bit length. - * The length opt_len is updated; static_len is also updated if stree is - * not null. - */function gen_bitlen(s,desc){// deflate_state *s; -// tree_desc *desc; /* the tree descriptor */ -var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;/* heap index */var n,m;/* iterate over the tree elements */var bits;/* bit length */var xbits;/* extra bits */var f;/* frequency */var overflow=0;/* number of elements with bit length too large */for(bits=0;bits<=MAX_BITS$1;bits++){s.bl_count[bits]=0;}/* In a first pass, compute the optimal bit lengths (which may - * overflow in the case of the bit length tree). - */tree[s.heap[s.heap_max]*2+1]/*.Len*/=0;/* root of the heap */for(h=s.heap_max+1;hmax_length){bits=max_length;overflow++;}tree[n*2+1]/*.Len*/=bits;/* We overwrite tree[n].Dad which is no longer needed */if(n>max_code){continue;}/* not a leaf node */s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base];}f=tree[n*2]/*.Freq*/;s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]/*.Len*/+xbits);}}if(overflow===0){return;}// Trace((stderr,"\nbit length overflow\n")); -/* This happens for example on obj2 and pic of the Calgary corpus */ /* Find the first bit length which could increase: */do{bits=max_length-1;while(s.bl_count[bits]===0){bits--;}s.bl_count[bits]--;/* move one leaf down the tree */s.bl_count[bits+1]+=2;/* move one overflow item as its brother */s.bl_count[max_length]--;/* The brother of the overflow item also moves one step up, - * but this does not affect bl_count[max_length] - */overflow-=2;}while(overflow>0);/* Now recompute all bit lengths, scanning in increasing frequency. - * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all - * lengths instead of fixing only the wrong ones. This idea is taken - * from 'ar' written by Haruhiko Okumura.) - */for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue;}if(tree[m*2+1]/*.Len*/!==bits){// Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); -s.opt_len+=(bits-tree[m*2+1]/*.Len*/)*tree[m*2]/*.Freq*/;tree[m*2+1]/*.Len*/=bits;}n--;}}}/* =========================================================================== - * Generate the codes for a given tree and bit counts (which need not be - * optimal). - * IN assertion: the array bl_count contains the bit length statistics for - * the given tree and the field len is set for all tree elements. - * OUT assertion: the field code is set for all tree elements of non - * zero code length. - */function gen_codes(tree,max_code,bl_count){// ct_data *tree; /* the tree to decorate */ -// int max_code; /* largest code with non zero frequency */ -// ushf *bl_count; /* number of codes at each bit length */ -var next_code=new Array(MAX_BITS$1+1);/* next code value for each bit length */var code=0;/* running code value */var bits;/* bit index */var n;/* code index */ /* The distribution counts are first used to generate the code values - * without bit reversal. - */for(bits=1;bits<=MAX_BITS$1;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1;}/* Check that the bit counts in bl_count are consistent. The last code - * must be all ones. - */ //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */length=0;for(code=0;code dist code (0..29) */dist=0;for(code=0;code<16;code++){base_dist[code]=dist;for(n=0;n<1<>=7;/* from now on, all distances are divided by 128 */for(;code8){put_short(s,s.bi_buf);}else if(s.bi_valid>0){//put_byte(s, (Byte)s->bi_buf); -s.pending_buf[s.pending++]=s.bi_buf;}s.bi_buf=0;s.bi_valid=0;}/* =========================================================================== - * Copy a stored block, storing first the length and its - * one's complement if requested. - */function copy_block(s,buf,len,header){//DeflateState *s; -//charf *buf; /* the input data */ -//unsigned len; /* its length */ -//int header; /* true if block header must be written */ -bi_windup(s);/* align on byte boundary */if(header){put_short(s,len);put_short(s,~len);}// while (len--) { -// put_byte(s, *buf++); -// } -arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len;}/* =========================================================================== - * Compares to subtrees, using the tree depth as tie breaker when - * the subtrees have equal frequency. This minimizes the worst case length. - */function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]/*.Freq*/pending) < s->lit_bufsize + 2*lx, -// "pendingBuf overflow"); -}while(lx>1/*int /2*/;n>=1;n--){pqdownheap(s,tree,n);}/* Construct the Huffman tree by repeatedly combining the least two - * frequent nodes. - */node=elems;/* next internal node of the tree */do{//pqremove(s, tree, n); /* n = node of least frequency */ -/*** pqremove ***/n=s.heap[1/*SMALLEST*/];s.heap[1/*SMALLEST*/]=s.heap[s.heap_len--];pqdownheap(s,tree,1/*SMALLEST*/);/***/m=s.heap[1/*SMALLEST*/];/* m = node of next least frequency */s.heap[--s.heap_max]=n;/* keep the nodes sorted by frequency */s.heap[--s.heap_max]=m;/* Create a new node father of n and m */tree[node*2]/*.Freq*/=tree[n*2]/*.Freq*/+tree[m*2]/*.Freq*/;s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]/*.Dad*/=tree[m*2+1]/*.Dad*/=node;/* and insert the new node in the heap */s.heap[1/*SMALLEST*/]=node++;pqdownheap(s,tree,1/*SMALLEST*/);}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1/*SMALLEST*/];/* At this point, the fields freq and dad are set. We can now - * generate the bit lengths. - */gen_bitlen(s,desc);/* The field len is now set, we can generate the bit codes */gen_codes(tree,max_code,s.bl_count);}/* =========================================================================== - * Scan a literal or distance tree to determine the frequencies of the codes - * in the bit length tree. - */function scan_tree(s,tree,max_code)// deflate_state *s; -// ct_data *tree; /* the tree to be scanned */ -// int max_code; /* and its largest code of non zero frequency */ -{var n;/* iterates over all tree elements */var prevlen=-1;/* last emitted length */var curlen;/* length of current code */var nextlen=tree[0*2+1]/*.Len*/;/* length of next code */var count=0;/* repeat count of the current code */var max_count=7;/* max repeat count */var min_count=4;/* min repeat count */if(nextlen===0){max_count=138;min_count=3;}tree[(max_code+1)*2+1]/*.Len*/=0xffff;/* guard */for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1]/*.Len*/;if(++count= 3 && count <= 6, " 3_6?"); -send_code(s,REP_3_6,s.bl_tree);send_bits(s,count-3,2);}else if(count<=10){send_code(s,REPZ_3_10,s.bl_tree);send_bits(s,count-3,3);}else {send_code(s,REPZ_11_138,s.bl_tree);send_bits(s,count-11,7);}count=0;prevlen=curlen;if(nextlen===0){max_count=138;min_count=3;}else if(curlen===nextlen){max_count=6;min_count=3;}else {max_count=7;min_count=4;}}}/* =========================================================================== - * Construct the Huffman tree for the bit lengths and return the index in - * bl_order of the last bit length code to send. - */function build_bl_tree(s){var max_blindex;/* index of last bit length code of non zero freq */ /* Determine the bit length frequencies for literal and distance trees */scan_tree(s,s.dyn_ltree,s.l_desc.max_code);scan_tree(s,s.dyn_dtree,s.d_desc.max_code);/* Build the bit length tree: */build_tree(s,s.bl_desc);/* opt_len now includes the length of the tree representations, except - * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. - */ /* Determine the number of bit length codes to send. The pkzip format - * requires that at least 4 bit length codes be sent. (appnote.txt says - * 3 but the actual value used is 4.) - */for(max_blindex=BL_CODES$1-1;max_blindex>=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]/*.Len*/!==0){break;}}/* Update opt_len to include the bit length tree and counts */s.opt_len+=3*(max_blindex+1)+5+5+4;//Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", -// s->opt_len, s->static_len)); -return max_blindex;}/* =========================================================================== - * Send the header for a block using dynamic Huffman trees: the counts, the - * lengths of the bit length codes, the literal tree and the distance tree. - * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. - */function send_all_trees(s,lcodes,dcodes,blcodes)// deflate_state *s; -// int lcodes, dcodes, blcodes; /* number of codes for each tree */ -{var rank;/* index in bl_order */ //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); -//Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, -// "too many codes"); -//Tracev((stderr, "\nbl counts: ")); -send_bits(s,lcodes-257,5);/* not +255 as stated in appnote.txt */send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);/* not -3 as stated in appnote.txt */for(rank=0;rankbits_sent)); -send_tree(s,s.dyn_ltree,lcodes-1);/* literal tree */ //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); -send_tree(s,s.dyn_dtree,dcodes-1);/* distance tree */ //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); -}/* =========================================================================== - * Check if the data type is TEXT or BINARY, using the following algorithm: - * - TEXT if the two conditions below are satisfied: - * a) There are no non-portable control characters belonging to the - * "black list" (0..6, 14..25, 28..31). - * b) There is at least one printable character belonging to the - * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). - * - BINARY otherwise. - * - The following partially-portable control characters form a - * "gray list" that is ignored in this detection algorithm: - * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). - * IN assertion: the fields Freq of dyn_ltree are set. - */function detect_data_type(s){/* black_mask is the bit mask of black-listed bytes - * set bits 0..6, 14..25, and 28..31 - * 0xf3ffc07f = binary 11110011111111111100000001111111 - */var black_mask=0xf3ffc07f;var n;/* Check for non-textual ("black-listed") bytes. */for(n=0;n<=31;n++,black_mask>>>=1){if(black_mask&1&&s.dyn_ltree[n*2]/*.Freq*/!==0){return Z_BINARY$1;}}/* Check for textual ("white-listed") bytes. */if(s.dyn_ltree[9*2]/*.Freq*/!==0||s.dyn_ltree[10*2]/*.Freq*/!==0||s.dyn_ltree[13*2]/*.Freq*/!==0){return Z_TEXT$1;}for(n=32;n0){/* Check if the file is binary or text */if(s.strm.data_type===Z_UNKNOWN$2){s.strm.data_type=detect_data_type(s);}/* Construct the literal and distance trees */build_tree(s,s.l_desc);// Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, -// s->static_len)); -build_tree(s,s.d_desc);// Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, -// s->static_len)); -/* At this point, opt_len and static_len are the total bit lengths of - * the compressed block data, excluding the tree representations. - */ /* Build the bit length tree for the above two trees, and get the index - * in bl_order of the last bit length code to send. - */max_blindex=build_bl_tree(s);/* Determine the best encoding. Compute the block lengths in bytes. */opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;// Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", -// opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, -// s->last_lit)); -if(static_lenb<=opt_lenb){opt_lenb=static_lenb;}}else {// Assert(buf != (char*)0, "lost buf"); -opt_lenb=static_lenb=stored_len+5;/* force a stored block */}if(stored_len+4<=opt_lenb&&buf!==-1){/* 4: two words for the lengths */ /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. - * Otherwise we can't have processed more than WSIZE input bytes since - * the last block flush, because compression would have been - * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to - * transform a block into a stored block. - */_tr_stored_block(s,buf,stored_len,last);}else if(s.strategy===Z_FIXED$2||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last?1:0),3);compress_block(s,static_ltree,static_dtree);}else {send_bits(s,(DYN_TREES<<1)+(last?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree);}// Assert (s->compressed_len == s->bits_sent, "bad compressed size"); -/* The above check is made mod 2^32, for files larger than 512 MB - * and uLong implemented on 32 bits. - */init_block(s);if(last){bi_windup(s);}// Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, -// s->compressed_len-7*last)); -}/* =========================================================================== - * Save the match info and tally the frequency counts. Return true if - * the current block must be flushed. - */function _tr_tally(s,dist,lc)// deflate_state *s; -// unsigned dist; /* distance of matched string */ -// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ -{//var out_length, in_length, dcode; -s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&0xff;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&0xff;s.pending_buf[s.l_buf+s.last_lit]=lc&0xff;s.last_lit++;if(dist===0){/* lc is the unmatched char */s.dyn_ltree[lc*2]/*.Freq*/++;}else {s.matches++;/* Here, lc is the match length - MIN_MATCH */dist--;/* dist = match distance - 1 */ //Assert((ush)dist < (ush)MAX_DIST(s) && -// (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && -// (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); -s.dyn_ltree[(_length_code[lc]+LITERALS$1+1)*2]/*.Freq*/++;s.dyn_dtree[d_code(dist)*2]/*.Freq*/++;}// (!) This block is disabled in zlib defailts, -// don't enable it for binary compatibility -//#ifdef TRUNCATE_BLOCK -// /* Try to guess if it is profitable to stop the current block here */ -// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) { -// /* Compute an upper bound for the compressed length */ -// out_length = s.last_lit*8; -// in_length = s.strstart - s.block_start; -// -// for (dcode = 0; dcode < D_CODES; dcode++) { -// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]); -// } -// out_length >>>= 3; -// //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", -// // s->last_lit, in_length, out_length, -// // 100L - out_length*100L/in_length)); -// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) { -// return true; -// } -// } -//#endif -return s.last_lit===s.lit_bufsize-1;/* We avoid equality with lit_bufsize because of wraparound at 64K - * on 16 bit machines and because stored blocks are restricted to - * 64K-1 bytes. - */}// Note: adler32 takes 12% for level 0 and 2% for level 6. -// It doesn't worth to make additional optimizationa as in original. -// Small size is preferable. -function adler32(adler,buf,len,pos){var s1=adler&0xffff|0,s2=adler>>>16&0xffff|0,n=0;while(len!==0){// Set limit ~ twice less than 5552, to keep -// s2 in 31-bits, because we force signed ints. -// in other case %= will fail. -n=len>2000?2000:len;len-=n;do{s1=s1+buf[pos++]|0;s2=s2+s1|0;}while(--n);s1%=65521;s2%=65521;}return s1|s2<<16|0;}// Note: we can't get significant speed boost here. -// So write code to minimize size - no pregenerated tables -// and array tools dependencies. -// Use ordinary array, since untyped makes no boost here -function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?0xEDB88320^c>>>1:c>>>1;}table[n]=c;}return table;}// Create table on load. Just 255 signed longs. Not a problem. -var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc^=-1;for(var i=pos;i>>8^t[(crc^buf[i])&0xFF];}return crc^-1;// >>> 0; -}/* Public constants ==========================================================*/ /* ===========================================================================*/ /* Allowed flush values; see deflate() and inflate() below for details */var Z_NO_FLUSH$1=0;var Z_PARTIAL_FLUSH$1=1;//var Z_SYNC_FLUSH = 2; -var Z_FULL_FLUSH$1=3;var Z_FINISH$2=4;var Z_BLOCK$2=5;//var Z_TREES = 6; -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */var Z_OK$2=0;var Z_STREAM_END$2=1;//var Z_NEED_DICT = 2; -//var Z_ERRNO = -1; -var Z_STREAM_ERROR$2=-2;var Z_DATA_ERROR$2=-3;//var Z_MEM_ERROR = -4; -var Z_BUF_ERROR$2=-5;//var Z_VERSION_ERROR = -6; -/* compression levels */ //var Z_NO_COMPRESSION = 0; -//var Z_BEST_SPEED = 1; -//var Z_BEST_COMPRESSION = 9; -var Z_DEFAULT_COMPRESSION$1=-1;var Z_FILTERED$1=1;var Z_HUFFMAN_ONLY$1=2;var Z_RLE$1=3;var Z_FIXED$1=4;/* Possible values of the data_type field (though see inflate()) */ //var Z_BINARY = 0; -//var Z_TEXT = 1; -//var Z_ASCII = 1; // = Z_TEXT -var Z_UNKNOWN$1=2;/* The deflate compression method */var Z_DEFLATED$2=8;/*============================================================================*/var MAX_MEM_LEVEL=9;var LENGTH_CODES=29;/* number of length codes, not counting the special END_BLOCK code */var LITERALS=256;/* number of literal bytes 0..255 */var L_CODES=LITERALS+1+LENGTH_CODES;/* number of Literal or Length codes, including the END_BLOCK code */var D_CODES=30;/* number of distance codes */var BL_CODES=19;/* number of codes used to transfer the bit lengths */var HEAP_SIZE=2*L_CODES+1;/* maximum heap size */var MAX_BITS=15;/* All codes must not exceed MAX_BITS bits */var MIN_MATCH=3;var MAX_MATCH=258;var MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1;var PRESET_DICT=0x20;var INIT_STATE=42;var EXTRA_STATE=69;var NAME_STATE=73;var COMMENT_STATE=91;var HCRC_STATE=103;var BUSY_STATE=113;var FINISH_STATE=666;var BS_NEED_MORE=1;/* block not completed, need more input or more output */var BS_BLOCK_DONE=2;/* block flush performed */var BS_FINISH_STARTED=3;/* finish started, need only more output at next deflate */var BS_FINISH_DONE=4;/* finish done, accept no more input or output */var OS_CODE=0x03;// Unix :) . Don't detect, use this default. -function err(strm,errorCode){strm.msg=msg[errorCode];return errorCode;}function rank(f){return (f<<1)-(f>4?9:0);}function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0;}}/* ========================================================================= - * Flush as much pending output as possible. All deflate() output goes - * through this function so some applications may wish to modify it - * to avoid allocating a large strm->output buffer and copying into it. - * (See also read_buf()). - */function flush_pending(strm){var s=strm.state;//_tr_flush_bits(s); -var len=s.pending;if(len>strm.avail_out){len=strm.avail_out;}if(len===0){return;}arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out);strm.next_out+=len;s.pending_out+=len;strm.total_out+=len;strm.avail_out-=len;s.pending-=len;if(s.pending===0){s.pending_out=0;}}function flush_block_only(s,last){_tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last);s.block_start=s.strstart;flush_pending(s.strm);}function put_byte(s,b){s.pending_buf[s.pending++]=b;}/* ========================================================================= - * Put a short in the pending buffer. The 16-bit value is put in MSB order. - * IN assertion: the stream state is correct and there is enough room in - * pending_buf. - */function putShortMSB(s,b){// put_byte(s, (Byte)(b >> 8)); -// put_byte(s, (Byte)(b & 0xff)); -s.pending_buf[s.pending++]=b>>>8&0xff;s.pending_buf[s.pending++]=b&0xff;}/* =========================================================================== - * Read a new buffer from the current input stream, update the adler32 - * and total number of bytes read. All deflate() input goes through - * this function so some applications may wish to modify it to avoid - * allocating a large strm->input buffer and copying from it. - * (See also flush_pending()). - */function read_buf(strm,buf,start,size){var len=strm.avail_in;if(len>size){len=size;}if(len===0){return 0;}strm.avail_in-=len;// zmemcpy(buf, strm->next_in, len); -arraySet(buf,strm.input,strm.next_in,len,start);if(strm.state.wrap===1){strm.adler=adler32(strm.adler,buf,len,start);}else if(strm.state.wrap===2){strm.adler=crc32(strm.adler,buf,len,start);}strm.next_in+=len;strm.total_in+=len;return len;}/* =========================================================================== - * Set match_start to the longest match starting at the given string and - * return its length. Matches shorter or equal to prev_length are discarded, - * in which case the result is equal to prev_length and match_start is - * garbage. - * IN assertions: cur_match is the head of the hash chain for the current - * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 - * OUT assertion: the match length is not greater than s->lookahead. - */function longest_match(s,cur_match){var chain_length=s.max_chain_length;/* max hash chain length */var scan=s.strstart;/* current string */var match;/* matched string */var len;/* length of current match */var best_len=s.prev_length;/* best match length so far */var nice_match=s.nice_match;/* stop if match long enough */var limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0/*NIL*/;var _win=s.window;// shortcut -var wmask=s.w_mask;var prev=s.prev;/* Stop when cur_match becomes <= limit. To simplify the code, - * we prevent matches with the string of window index 0. - */var strend=s.strstart+MAX_MATCH;var scan_end1=_win[scan+best_len-1];var scan_end=_win[scan+best_len];/* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); -/* Do not waste too much time if we already have a good match: */if(s.prev_length>=s.good_match){chain_length>>=2;}/* Do not look for matches beyond the end of the input. This is necessary - * to make deflate deterministic. - */if(nice_match>s.lookahead){nice_match=s.lookahead;}// Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); -do{// Assert(cur_match < s->strstart, "no future"); -match=cur_match;/* Skip to next match if the match length cannot increase - * or if the match length is less than 2. Note that the checks below - * for insufficient lookahead only occur occasionally for performance - * reasons. Therefore uninitialized memory will be accessed, and - * conditional jumps will be made that depend on those values. - * However the length of the match is limited to the lookahead, so - * the output of deflate is not affected by the uninitialized values. - */if(_win[match+best_len]!==scan_end||_win[match+best_len-1]!==scan_end1||_win[match]!==_win[scan]||_win[++match]!==_win[scan+1]){continue;}/* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */scan+=2;match++;// Assert(*scan == *match, "match[2]?"); -/* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */do{/*jshint noempty:false*/}while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&scanwindow+(unsigned)(s->window_size-1), "wild scan"); -len=MAX_MATCH-(strend-scan);scan=strend-MAX_MATCH;if(len>best_len){s.match_start=cur_match;best_len=len;if(len>=nice_match){break;}scan_end1=_win[scan+best_len-1];scan_end=_win[scan+best_len];}}while((cur_match=prev[cur_match&wmask])>limit&&--chain_length!==0);if(best_len<=s.lookahead){return best_len;}return s.lookahead;}/* =========================================================================== - * Fill the window when the lookahead becomes insufficient. - * Updates strstart and lookahead. - * - * IN assertion: lookahead < MIN_LOOKAHEAD - * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD - * At least one byte has been read, or avail_in == 0; reads are - * performed for at least two bytes (required for the zip translate_eol - * option -- not supported here). - */function fill_window(s){var _w_size=s.w_size;var p,n,m,more,str;//Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); -do{more=s.window_size-s.lookahead-s.strstart;// JS ints have 32 bit, block below not needed -/* Deal with !@#$% 64K limit: */ //if (sizeof(int) <= 2) { -// if (more == 0 && s->strstart == 0 && s->lookahead == 0) { -// more = wsize; -// -// } else if (more == (unsigned)(-1)) { -// /* Very unlikely, but possible on 16 bit machine if -// * strstart == 0 && lookahead == 1 (input done a byte at time) -// */ -// more--; -// } -//} -/* If the window is almost full and there is insufficient lookahead, - * move the upper half to the lower one to make room in the upper half. - */if(s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){arraySet(s.window,s.window,_w_size,_w_size,0);s.match_start-=_w_size;s.strstart-=_w_size;/* we now have strstart >= MAX_DIST */s.block_start-=_w_size;/* Slide the hash table (could be avoided with 32 bit values - at the expense of memory usage). We slide even when level == 0 - to keep the hash table consistent if we switch back to level > 0 - later. (Using level 0 permanently is not an optimal usage of - zlib, so we don't care about this pathological case.) - */n=s.hash_size;p=n;do{m=s.head[--p];s.head[p]=m>=_w_size?m-_w_size:0;}while(--n);n=_w_size;p=n;do{m=s.prev[--p];s.prev[p]=m>=_w_size?m-_w_size:0;/* If n is not on any hash chain, prev[n] is garbage but - * its value will never be used. - */}while(--n);more+=_w_size;}if(s.strm.avail_in===0){break;}/* If there was no sliding: - * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && - * more == window_size - lookahead - strstart - * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) - * => more >= window_size - 2*WSIZE + 2 - * In the BIG_MEM or MMAP case (not yet supported), - * window_size == input_size + MIN_LOOKAHEAD && - * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. - * Otherwise, window_size == 2*WSIZE so more >= 2. - * If there was sliding, more >= WSIZE. So in all cases, more >= 2. - */ //Assert(more >= 2, "more < 2"); -n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more);s.lookahead+=n;/* Initialize the hash value now that we have some input: */if(s.lookahead+s.insert>=MIN_MATCH){str=s.strstart-s.insert;s.ins_h=s.window[str];/* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */s.ins_h=(s.ins_h<ins_h, s->window[str + MIN_MATCH-1]); */s.ins_h=(s.ins_h< WIN_INIT) -// init = WIN_INIT; -// zmemzero(s->window + curr, (unsigned)init); -// s->high_water = curr + init; -// } -// else if (s->high_water < (ulg)curr + WIN_INIT) { -// /* High water mark at or above current data, but below current data -// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up -// * to end of window, whichever is less. -// */ -// init = (ulg)curr + WIN_INIT - s->high_water; -// if (init > s->window_size - s->high_water) -// init = s->window_size - s->high_water; -// zmemzero(s->window + s->high_water, (unsigned)init); -// s->high_water += init; -// } -// } -// -// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, -// "not enough room for search"); -}/* =========================================================================== - * Copy without compression as much as possible from the input stream, return - * the current block state. - * This function does not insert new strings in the dictionary since - * uncompressible data is probably not useful. This function is used - * only for the level=0 compression option. - * NOTE: this function should be optimized to avoid extra copying from - * window to pending_buf. - */function deflate_stored(s,flush){/* Stored blocks are limited to 0xffff bytes, pending_buf is limited - * to pending_buf_size, and each stored block has a 5 byte header: - */var max_block_size=0xffff;if(max_block_size>s.pending_buf_size-5){max_block_size=s.pending_buf_size-5;}/* Copy as much as possible from input to output: */for(;;){/* Fill the window as much as possible: */if(s.lookahead<=1){//Assert(s->strstart < s->w_size+MAX_DIST(s) || -// s->block_start >= (long)s->w_size, "slide too late"); -// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) || -// s.block_start >= s.w_size)) { -// throw new Error("slide too late"); -// } -fill_window(s);if(s.lookahead===0&&flush===Z_NO_FLUSH$1){return BS_NEED_MORE;}if(s.lookahead===0){break;}/* flush the current block */}//Assert(s->block_start >= 0L, "block gone"); -// if (s.block_start < 0) throw new Error("block gone"); -s.strstart+=s.lookahead;s.lookahead=0;/* Emit a stored block if pending_buf will be full: */var max_start=s.block_start+max_block_size;if(s.strstart===0||s.strstart>=max_start){/* strstart == 0 is possible when wraparound on 16-bit machine */s.lookahead=s.strstart-max_start;s.strstart=max_start;/*** FLUSH_BLOCK(s, 0); ***/flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE;}/***/}/* Flush if we may have to slide, otherwise block_start may become - * negative and the data will be gone: - */if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD){/*** FLUSH_BLOCK(s, 0); ***/flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE;}/***/}}s.insert=0;if(flush===Z_FINISH$2){/*** FLUSH_BLOCK(s, 1); ***/flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED;}/***/return BS_FINISH_DONE;}if(s.strstart>s.block_start){/*** FLUSH_BLOCK(s, 0); ***/flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE;}/***/}return BS_NEED_MORE;}/* =========================================================================== - * Compress as much as possible from the input stream, return the current - * block state. - * This function does not perform lazy evaluation of matches and inserts - * new strings in the dictionary only for unmatched strings or for short - * matches. It is used only for the fast compression options. - */function deflate_fast(s,flush){var hash_head;/* head of the hash chain */var bflush;/* set if current block must be flushed */for(;;){/* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */if(s.lookahead=MIN_MATCH){/*** INSERT_STRING(s, s.strstart, hash_head); ***/s.ins_h=(s.ins_h<=MIN_MATCH){// check_match(s, s.strstart, s.match_start, s.match_length); // for debug only -/*** _tr_tally_dist(s, s.strstart - s.match_start, - s.match_length - MIN_MATCH, bflush); ***/bflush=_tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;/* Insert new strings in the hash table only if the match length - * is not too large. This saves time but degrades compression. - */if(s.match_length<=s.max_lazy_match/*max_insert_length*/&&s.lookahead>=MIN_MATCH){s.match_length--;/* string at strstart already in table */do{s.strstart++;/*** INSERT_STRING(s, s.strstart, hash_head); ***/s.ins_h=(s.ins_h<=MIN_MATCH){/*** INSERT_STRING(s, s.strstart, hash_head); ***/s.ins_h=(s.ins_h<4096/*TOO_FAR*/)){/* If prev_match is also MIN_MATCH, match_start is garbage - * but we will ignore the current match anyway. - */s.match_length=MIN_MATCH-1;}}/* If there was a match at the previous step and the current - * match is not better, output the previous match: - */if(s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH;/* Do not insert strings in hash table beyond this. */ //check_match(s, s.strstart-1, s.prev_match, s.prev_length); -/***_tr_tally_dist(s, s.strstart - 1 - s.prev_match, - s.prev_length - MIN_MATCH, bflush);***/bflush=_tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH);/* Insert in hash table all strings up to the end of the match. - * strstart-1 and strstart are already inserted. If there is not - * enough lookahead, the last two strings are not inserted in - * the hash table. - */s.lookahead-=s.prev_length-1;s.prev_length-=2;do{if(++s.strstart<=max_insert){/*** INSERT_STRING(s, s.strstart, hash_head); ***/s.ins_h=(s.ins_h<window[s->strstart-1])); -/*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/bflush=_tr_tally(s,0,s.window[s.strstart-1]);if(bflush){/*** FLUSH_BLOCK_ONLY(s, 0) ***/flush_block_only(s,false);/***/}s.strstart++;s.lookahead--;if(s.strm.avail_out===0){return BS_NEED_MORE;}}else {/* There is no previous match to compare with, wait for - * the next step to decide. - */s.match_available=1;s.strstart++;s.lookahead--;}}//Assert (flush != Z_NO_FLUSH, "no flush?"); -if(s.match_available){//Tracevv((stderr,"%c", s->window[s->strstart-1])); -/*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/bflush=_tr_tally(s,0,s.window[s.strstart-1]);s.match_available=0;}s.insert=s.strstart=MIN_MATCH&&s.strstart>0){scan=s.strstart-1;prev=_win[scan];if(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]){strend=s.strstart+MAX_MATCH;do{/*jshint noempty:false*/}while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&scans.lookahead){s.match_length=s.lookahead;}}//Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); -}/* Emit match if have run of MIN_MATCH or longer, else emit literal */if(s.match_length>=MIN_MATCH){//check_match(s, s.strstart, s.strstart - 1, s.match_length); -/*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/bflush=_tr_tally(s,1,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;s.strstart+=s.match_length;s.match_length=0;}else {/* No match, output a literal byte */ //Tracevv((stderr,"%c", s->window[s->strstart])); -/*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/bflush=_tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;}if(bflush){/*** FLUSH_BLOCK(s, 0); ***/flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE;}/***/}}s.insert=0;if(flush===Z_FINISH$2){/*** FLUSH_BLOCK(s, 1); ***/flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED;}/***/return BS_FINISH_DONE;}if(s.last_lit){/*** FLUSH_BLOCK(s, 0); ***/flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE;}/***/}return BS_BLOCK_DONE;}/* =========================================================================== - * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. - * (It will be regenerated if this run of deflate switches away from Huffman.) - */function deflate_huff(s,flush){var bflush;/* set if current block must be flushed */for(;;){/* Make sure that we have a literal to write. */if(s.lookahead===0){fill_window(s);if(s.lookahead===0){if(flush===Z_NO_FLUSH$1){return BS_NEED_MORE;}break;/* flush the current block */}}/* Output a literal byte */s.match_length=0;//Tracevv((stderr,"%c", s->window[s->strstart])); -/*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/bflush=_tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;if(bflush){/*** FLUSH_BLOCK(s, 0); ***/flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE;}/***/}}s.insert=0;if(flush===Z_FINISH$2){/*** FLUSH_BLOCK(s, 1); ***/flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED;}/***/return BS_FINISH_DONE;}if(s.last_lit){/*** FLUSH_BLOCK(s, 0); ***/flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE;}/***/}return BS_BLOCK_DONE;}/* Values for max_lazy_match, good_match and max_chain_length, depending on - * the desired pack level (0..9). The values given below have been tuned to - * exclude worst case performance for pathological files. Better values may be - * found for specific files. - */function Config(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length;this.max_lazy=max_lazy;this.nice_length=nice_length;this.max_chain=max_chain;this.func=func;}var configuration_table;configuration_table=[/* good lazy nice chain */new Config(0,0,0,0,deflate_stored),/* 0 store only */new Config(4,4,8,4,deflate_fast),/* 1 max speed, no lazy matches */new Config(4,5,16,8,deflate_fast),/* 2 */new Config(4,6,32,32,deflate_fast),/* 3 */new Config(4,4,16,16,deflate_slow),/* 4 lazy matches */new Config(8,16,32,32,deflate_slow),/* 5 */new Config(8,16,128,128,deflate_slow),/* 6 */new Config(8,32,128,256,deflate_slow),/* 7 */new Config(32,128,258,1024,deflate_slow),/* 8 */new Config(32,258,258,4096,deflate_slow)/* 9 max compression */];/* =========================================================================== - * Initialize the "longest match" routines for a new zlib stream - */function lm_init(s){s.window_size=2*s.w_size;/*** CLEAR_HASH(s); ***/zero(s.head);// Fill with NIL (= 0); -/* Set the default configuration parameters: - */s.max_lazy_match=configuration_table[s.level].max_lazy;s.good_match=configuration_table[s.level].good_length;s.nice_match=configuration_table[s.level].nice_length;s.max_chain_length=configuration_table[s.level].max_chain;s.strstart=0;s.block_start=0;s.lookahead=0;s.insert=0;s.match_length=s.prev_length=MIN_MATCH-1;s.match_available=0;s.ins_h=0;}function DeflateState(){this.strm=null;/* pointer back to this zlib stream */this.status=0;/* as the name implies */this.pending_buf=null;/* output still pending */this.pending_buf_size=0;/* size of pending_buf */this.pending_out=0;/* next pending byte to output to the stream */this.pending=0;/* nb of bytes in the pending buffer */this.wrap=0;/* bit 0 true for zlib, bit 1 true for gzip */this.gzhead=null;/* gzip header information to write */this.gzindex=0;/* where in extra, name, or comment */this.method=Z_DEFLATED$2;/* can only be DEFLATED */this.last_flush=-1;/* value of flush param for previous deflate call */this.w_size=0;/* LZ77 window size (32K by default) */this.w_bits=0;/* log2(w_size) (8..16) */this.w_mask=0;/* w_size - 1 */this.window=null;/* Sliding window. Input bytes are read into the second half of the window, - * and move to the first half later to keep a dictionary of at least wSize - * bytes. With this organization, matches are limited to a distance of - * wSize-MAX_MATCH bytes, but this ensures that IO is always - * performed with a length multiple of the block size. - */this.window_size=0;/* Actual size of window: 2*wSize, except when the user input buffer - * is directly used as sliding window. - */this.prev=null;/* Link to older string with same hash index. To limit the size of this - * array to 64K, this link is maintained only for the last 32K strings. - * An index in this array is thus a window index modulo 32K. - */this.head=null;/* Heads of the hash chains or NIL. */this.ins_h=0;/* hash index of string to be inserted */this.hash_size=0;/* number of elements in hash table */this.hash_bits=0;/* log2(hash_size) */this.hash_mask=0;/* hash_size-1 */this.hash_shift=0;/* Number of bits by which ins_h must be shifted at each input - * step. It must be such that after MIN_MATCH steps, the oldest - * byte no longer takes part in the hash key, that is: - * hash_shift * MIN_MATCH >= hash_bits - */this.block_start=0;/* Window position at the beginning of the current output block. Gets - * negative when the window is moved backwards. - */this.match_length=0;/* length of best match */this.prev_match=0;/* previous match */this.match_available=0;/* set if previous match exists */this.strstart=0;/* start of string to insert */this.match_start=0;/* start of matching string */this.lookahead=0;/* number of valid bytes ahead in window */this.prev_length=0;/* Length of the best match at previous step. Matches not greater than this - * are discarded. This is used in the lazy match evaluation. - */this.max_chain_length=0;/* To speed up deflation, hash chains are never searched beyond this - * length. A higher limit improves compression ratio but degrades the - * speed. - */this.max_lazy_match=0;/* Attempt to find a better match only when the current match is strictly - * smaller than this value. This mechanism is used only for compression - * levels >= 4. - */ // That's alias to max_lazy_match, don't use directly -//this.max_insert_length = 0; -/* Insert new strings in the hash table only if the match length is not - * greater than this length. This saves time but degrades compression. - * max_insert_length is used only for compression levels <= 3. - */this.level=0;/* compression level (1..9) */this.strategy=0;/* favor or force Huffman coding*/this.good_match=0;/* Use a faster search when the previous match is longer than this */this.nice_match=0;/* Stop searching when current match exceeds this */ /* used by c: */ /* Didn't use ct_data typedef below to suppress compiler warning */ // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ -// struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ -// struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ -// Use flat array of DOUBLE size, with interleaved fata, -// because JS does not support effective -this.dyn_ltree=new Buf16(HEAP_SIZE*2);this.dyn_dtree=new Buf16((2*D_CODES+1)*2);this.bl_tree=new Buf16((2*BL_CODES+1)*2);zero(this.dyn_ltree);zero(this.dyn_dtree);zero(this.bl_tree);this.l_desc=null;/* desc. for literal tree */this.d_desc=null;/* desc. for distance tree */this.bl_desc=null;/* desc. for bit length tree */ //ush bl_count[MAX_BITS+1]; -this.bl_count=new Buf16(MAX_BITS+1);/* number of codes at each bit length for an optimal tree */ //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ -this.heap=new Buf16(2*L_CODES+1);/* heap used to build the Huffman trees */zero(this.heap);this.heap_len=0;/* number of elements in the heap */this.heap_max=0;/* element of largest frequency */ /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. - * The same heap array is used to build all - */this.depth=new Buf16(2*L_CODES+1);//uch depth[2*L_CODES+1]; -zero(this.depth);/* Depth of each subtree used as tie breaker for trees of equal frequency - */this.l_buf=0;/* buffer index for literals or lengths */this.lit_bufsize=0;/* Size of match buffer for literals/lengths. There are 4 reasons for - * limiting lit_bufsize to 64K: - * - frequencies can be kept in 16 bit counters - * - if compression is not successful for the first block, all input - * data is still in the window so we can still emit a stored block even - * when input comes from standard input. (This can also be done for - * all blocks if lit_bufsize is not greater than 32K.) - * - if compression is not successful for a file smaller than 64K, we can - * even emit a stored file instead of a stored block (saving 5 bytes). - * This is applicable only for zip (not gzip or zlib). - * - creating new Huffman trees less frequently may not provide fast - * adaptation to changes in the input data statistics. (Take for - * example a binary file with poorly compressible code followed by - * a highly compressible string table.) Smaller buffer sizes give - * fast adaptation but have of course the overhead of transmitting - * trees more frequently. - * - I can't count above 4 - */this.last_lit=0;/* running index in l_buf */this.d_buf=0;/* Buffer index for distances. To simplify the code, d_buf and l_buf have - * the same number of elements. To use different lengths, an extra flag - * array would be necessary. - */this.opt_len=0;/* bit length of current block with optimal trees */this.static_len=0;/* bit length of current block with static trees */this.matches=0;/* number of string matches in current block */this.insert=0;/* bytes at end of window left to insert */this.bi_buf=0;/* Output buffer. bits are inserted starting at the bottom (least - * significant bits). - */this.bi_valid=0;/* Number of valid bits in bi_buf. All bits above the last valid bit - * are always zero. - */ // Used for window memory init. We safely ignore it for JS. That makes -// sense only for pointers and memory check tools. -//this.high_water = 0; -/* High water mark offset in window for initialized bytes -- bytes above - * this are set to zero in order to avoid memory check warnings when - * longest match routines access bytes past the input. This is then - * updated to the new high water mark. - */}function deflateResetKeep(strm){var s;if(!strm||!strm.state){return err(strm,Z_STREAM_ERROR$2);}strm.total_in=strm.total_out=0;strm.data_type=Z_UNKNOWN$1;s=strm.state;s.pending=0;s.pending_out=0;if(s.wrap<0){s.wrap=-s.wrap;/* was made negative by deflate(..., Z_FINISH); */}s.status=s.wrap?INIT_STATE:BUSY_STATE;strm.adler=s.wrap===2?0// crc32(0, Z_NULL, 0) -:1;// adler32(0, Z_NULL, 0) -s.last_flush=Z_NO_FLUSH$1;_tr_init(s);return Z_OK$2;}function deflateReset(strm){var ret=deflateResetKeep(strm);if(ret===Z_OK$2){lm_init(strm.state);}return ret;}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm){// === Z_NULL -return Z_STREAM_ERROR$2;}var wrap=1;if(level===Z_DEFAULT_COMPRESSION$1){level=6;}if(windowBits<0){/* suppress zlib wrapper */wrap=0;windowBits=-windowBits;}else if(windowBits>15){wrap=2;/* write gzip wrapper instead */windowBits-=16;}if(memLevel<1||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED$2||windowBits<8||windowBits>15||level<0||level>9||strategy<0||strategy>Z_FIXED$1){return err(strm,Z_STREAM_ERROR$2);}if(windowBits===8){windowBits=9;}/* until 256-byte window bug fixed */var s=new DeflateState();strm.state=s;s.strm=strm;s.wrap=wrap;s.gzhead=null;s.w_bits=windowBits;s.w_size=1<window yet */ -s.lit_bufsize=1<lit_bufsize, sizeof(ush)+2); -//s->pending_buf = (uchf *) overlay; -s.pending_buf=new Buf8(s.pending_buf_size);// It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`) -//s->d_buf = overlay + s->lit_bufsize/sizeof(ush); -s.d_buf=1*s.lit_bufsize;//s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; -s.l_buf=(1+2)*s.lit_bufsize;s.level=level;s.strategy=strategy;s.method=method;return deflateReset(strm);}function deflate$1(strm,flush){var old_flush,s;var beg,val;// for gzip header write only -if(!strm||!strm.state||flush>Z_BLOCK$2||flush<0){return strm?err(strm,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;}s=strm.state;if(!strm.output||!strm.input&&strm.avail_in!==0||s.status===FINISH_STATE&&flush!==Z_FINISH$2){return err(strm,strm.avail_out===0?Z_BUF_ERROR$2:Z_STREAM_ERROR$2);}s.strm=strm;/* just in case */old_flush=s.last_flush;s.last_flush=flush;/* Write the header */if(s.status===INIT_STATE){if(s.wrap===2){// GZIP header -strm.adler=0;//crc32(0L, Z_NULL, 0); -put_byte(s,31);put_byte(s,139);put_byte(s,8);if(!s.gzhead){// s->gzhead == Z_NULL -put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY$1||s.level<2?4:0);put_byte(s,OS_CODE);s.status=BUSY_STATE;}else {put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(!s.gzhead.extra?0:4)+(!s.gzhead.name?0:8)+(!s.gzhead.comment?0:16));put_byte(s,s.gzhead.time&0xff);put_byte(s,s.gzhead.time>>8&0xff);put_byte(s,s.gzhead.time>>16&0xff);put_byte(s,s.gzhead.time>>24&0xff);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY$1||s.level<2?4:0);put_byte(s,s.gzhead.os&0xff);if(s.gzhead.extra&&s.gzhead.extra.length){put_byte(s,s.gzhead.extra.length&0xff);put_byte(s,s.gzhead.extra.length>>8&0xff);}if(s.gzhead.hcrc){strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0);}s.gzindex=0;s.status=EXTRA_STATE;}}else// DEFLATE header -{var header=Z_DEFLATED$2+(s.w_bits-8<<4)<<8;var level_flags=-1;if(s.strategy>=Z_HUFFMAN_ONLY$1||s.level<2){level_flags=0;}else if(s.level<6){level_flags=1;}else if(s.level===6){level_flags=2;}else {level_flags=3;}header|=level_flags<<6;if(s.strstart!==0){header|=PRESET_DICT;}header+=31-header%31;s.status=BUSY_STATE;putShortMSB(s,header);/* Save the adler32 of the preset dictionary: */if(s.strstart!==0){putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&0xffff);}strm.adler=1;// adler32(0L, Z_NULL, 0); -}}//#ifdef GZIP -if(s.status===EXTRA_STATE){if(s.gzhead.extra/* != Z_NULL*/){beg=s.pending;/* start of bytes to update crc */while(s.gzindex<(s.gzhead.extra.length&0xffff)){if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){break;}}put_byte(s,s.gzhead.extra[s.gzindex]&0xff);s.gzindex++;}if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);}if(s.gzindex===s.gzhead.extra.length){s.gzindex=0;s.status=NAME_STATE;}}else {s.status=NAME_STATE;}}if(s.status===NAME_STATE){if(s.gzhead.name/* != Z_NULL*/){beg=s.pending;/* start of bytes to update crc */ //int val; -do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break;}}// JS specific: little magic to add zero terminator to end of string -if(s.gzindexbeg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);}if(val===0){s.gzindex=0;s.status=COMMENT_STATE;}}else {s.status=COMMENT_STATE;}}if(s.status===COMMENT_STATE){if(s.gzhead.comment/* != Z_NULL*/){beg=s.pending;/* start of bytes to update crc */ //int val; -do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break;}}// JS specific: little magic to add zero terminator to end of string -if(s.gzindexbeg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg);}if(val===0){s.status=HCRC_STATE;}}else {s.status=HCRC_STATE;}}if(s.status===HCRC_STATE){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size){flush_pending(strm);}if(s.pending+2<=s.pending_buf_size){put_byte(s,strm.adler&0xff);put_byte(s,strm.adler>>8&0xff);strm.adler=0;//crc32(0L, Z_NULL, 0); -s.status=BUSY_STATE;}}else {s.status=BUSY_STATE;}}//#endif -/* Flush as much pending output as possible */if(s.pending!==0){flush_pending(strm);if(strm.avail_out===0){/* Since avail_out is 0, deflate will be called again with - * more output space, but possibly with both pending and - * avail_in equal to zero. There won't be anything to do, - * but this is not an error situation so make sure we - * return OK instead of BUF_ERROR at next call of deflate: - */s.last_flush=-1;return Z_OK$2;}/* Make sure there is something to do and avoid duplicate consecutive - * flushes. For repeated and useless calls with Z_FINISH, we keep - * returning Z_STREAM_END instead of Z_BUF_ERROR. - */}else if(strm.avail_in===0&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH$2){return err(strm,Z_BUF_ERROR$2);}/* User must not provide more input after the first FINISH: */if(s.status===FINISH_STATE&&strm.avail_in!==0){return err(strm,Z_BUF_ERROR$2);}/* Start a new block or continue the current one. - */if(strm.avail_in!==0||s.lookahead!==0||flush!==Z_NO_FLUSH$1&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY$1?deflate_huff(s,flush):s.strategy===Z_RLE$1?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if(bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE){s.status=FINISH_STATE;}if(bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED){if(strm.avail_out===0){s.last_flush=-1;/* avoid BUF_ERROR next call, see above */}return Z_OK$2;/* If flush != Z_NO_FLUSH && avail_out == 0, the next call - * of deflate should use the same flush parameter to make sure - * that the flush is complete. So we don't have to output an - * empty block here, this will be done at next call. This also - * ensures that for a very small output buffer, we emit at most - * one empty block. - */}if(bstate===BS_BLOCK_DONE){if(flush===Z_PARTIAL_FLUSH$1){_tr_align(s);}else if(flush!==Z_BLOCK$2){/* FULL_FLUSH or SYNC_FLUSH */_tr_stored_block(s,0,0,false);/* For a full flush, this empty block will be recognized - * as a special marker by inflate_sync(). - */if(flush===Z_FULL_FLUSH$1){/*** CLEAR_HASH(s); ***/ /* forget history */zero(s.head);// Fill with NIL (= 0); -if(s.lookahead===0){s.strstart=0;s.block_start=0;s.insert=0;}}}flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;/* avoid BUF_ERROR at next call, see above */return Z_OK$2;}}}//Assert(strm->avail_out > 0, "bug2"); -//if (strm.avail_out <= 0) { throw new Error("bug2");} -if(flush!==Z_FINISH$2){return Z_OK$2;}if(s.wrap<=0){return Z_STREAM_END$2;}/* Write the trailer */if(s.wrap===2){put_byte(s,strm.adler&0xff);put_byte(s,strm.adler>>8&0xff);put_byte(s,strm.adler>>16&0xff);put_byte(s,strm.adler>>24&0xff);put_byte(s,strm.total_in&0xff);put_byte(s,strm.total_in>>8&0xff);put_byte(s,strm.total_in>>16&0xff);put_byte(s,strm.total_in>>24&0xff);}else {putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&0xffff);}flush_pending(strm);/* If avail_out is zero, the application will call deflate again - * to flush the rest. - */if(s.wrap>0){s.wrap=-s.wrap;}/* write the trailer only once! */return s.pending!==0?Z_OK$2:Z_STREAM_END$2;}function deflateEnd(strm){var status;if(!strm/*== Z_NULL*/||!strm.state/*== Z_NULL*/){return Z_STREAM_ERROR$2;}status=strm.state.status;if(status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE){return err(strm,Z_STREAM_ERROR$2);}strm.state=null;return status===BUSY_STATE?err(strm,Z_DATA_ERROR$2):Z_OK$2;}/* Not implemented - exports.deflateBound = deflateBound; - exports.deflateCopy = deflateCopy; - exports.deflateParams = deflateParams; - exports.deflatePending = deflatePending; - exports.deflatePrime = deflatePrime; - exports.deflateTune = deflateTune; - */ // See state defs from inflate.js -var BAD$1=30;/* got a data error -- remain here until reset */var TYPE$2=12;/* i: waiting for type bits, including last-flag bit */ /* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state.mode === LEN - strm.avail_in >= 6 - strm.avail_out >= 258 - start >= strm.avail_out - state.bits < 8 - - On return, state.mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm.avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm.avail_out >= 258 for each loop to avoid checking for - output space. - */function inflate_fast(strm,start){var state;var _in;/* local strm.input */var last;/* have enough input while in < last */var _out;/* local strm.output */var beg;/* inflate()'s initial strm.output */var end;/* while out < end, enough space available */ //#ifdef INFLATE_STRICT -var dmax;/* maximum distance from zlib header */ //#endif -var wsize;/* window size or zero if not using window */var whave;/* valid bytes in the window */var wnext;/* window write index */ // Use `s_window` instead `window`, avoid conflict with instrumentation tools -var s_window;/* allocated sliding window, if wsize != 0 */var hold;/* local strm.hold */var bits;/* local strm.bits */var lcode;/* local strm.lencode */var dcode;/* local strm.distcode */var lmask;/* mask for first level of length codes */var dmask;/* mask for first level of distance codes */var here;/* retrieved table entry */var op;/* code bits, operation, extra bits, or */ /* window position, window bytes to copy */var len;/* match length, unused bytes */var dist;/* match distance */var from;/* where to copy match from */var from_source;var input,output;// JS specific, because we have no pointers -/* copy state to local variables */state=strm.state;//here = state.here; -_in=strm.next_in;input=strm.input;last=_in+(strm.avail_in-5);_out=strm.next_out;output=strm.output;beg=_out-(start-strm.avail_out);end=_out+(strm.avail_out-257);//#ifdef INFLATE_STRICT -dmax=state.dmax;//#endif -wsize=state.wsize;whave=state.whave;wnext=state.wnext;s_window=state.window;hold=state.hold;bits=state.bits;lcode=state.lencode;dcode=state.distcode;lmask=(1<>>24/*here.bits*/;hold>>>=op;bits-=op;op=here>>>16&0xff/*here.op*/;if(op===0){/* literal */ //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? -// "inflate: literal '%c'\n" : -// "inflate: literal 0x%02x\n", here.val)); -output[_out++]=here&0xffff/*here.val*/;}else if(op&16){/* length base */len=here&0xffff/*here.val*/;op&=15;/* number of extra bits */if(op){if(bits>>=op;bits-=op;}//Tracevv((stderr, "inflate: length %u\n", len)); -if(bits<15){hold+=input[_in++]<>>24/*here.bits*/;hold>>>=op;bits-=op;op=here>>>16&0xff/*here.op*/;if(op&16){/* distance base */dist=here&0xffff/*here.val*/;op&=15;/* number of extra bits */if(bitsdmax){strm.msg='invalid distance too far back';state.mode=BAD$1;break top;}//#endif -hold>>>=op;bits-=op;//Tracevv((stderr, "inflate: distance %u\n", dist)); -op=_out-beg;/* max distance in output */if(dist>op){/* see if copy from window */op=dist-op;/* distance back in window */if(op>whave){if(state.sane){strm.msg='invalid distance too far back';state.mode=BAD$1;break top;}// (!) This block is disabled in zlib defailts, -// don't enable it for binary compatibility -//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR -// if (len <= op - whave) { -// do { -// output[_out++] = 0; -// } while (--len); -// continue top; -// } -// len -= op - whave; -// do { -// output[_out++] = 0; -// } while (--op > whave); -// if (op === 0) { -// from = _out - dist; -// do { -// output[_out++] = output[from++]; -// } while (--len); -// continue top; -// } -//#endif -}from=0;// window index -from_source=s_window;if(wnext===0){/* very common case */from+=wsize-op;if(op2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3;}if(len){output[_out++]=from_source[from++];if(len>1){output[_out++]=from_source[from++];}}}else {from=_out-dist;/* copy direct from output */do{/* minimum length is three */output[_out++]=output[from++];output[_out++]=output[from++];output[_out++]=output[from++];len-=3;}while(len>2);if(len){output[_out++]=output[from++];if(len>1){output[_out++]=output[from++];}}}}else if((op&64)===0){/* 2nd level distance code */here=dcode[(here&0xffff)+(/*here.val*/hold&(1<>3;_in-=len;bits-=len<<3;hold&=(1< end */var count=new Buf16(MAXBITS+1);//[MAXBITS+1]; /* number of codes of each length */ -var offs=new Buf16(MAXBITS+1);//[MAXBITS+1]; /* offsets in table for each length */ -var extra=null;var extra_index=0;var here_bits,here_op,here_val;/* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */for(len=0;len<=MAXBITS;len++){count[len]=0;}for(sym=0;sym=1;max--){if(count[max]!==0){break;}}if(root>max){root=max;}if(max===0){/* no symbols to code at all */ //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ -//table.bits[opts.table_index] = 1; //here.bits = (var char)1; -//table.val[opts.table_index++] = 0; //here.val = (var short)0; -table[table_index++]=1<<24|64<<16|0;//table.op[opts.table_index] = 64; -//table.bits[opts.table_index] = 1; -//table.val[opts.table_index++] = 0; -table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0;/* no symbols, but wait for decoding to report error */}for(min=1;min0&&(type===CODES$1||max!==1)){return -1;/* incomplete set */}/* generate offsets into symbol table for each length for sorting */offs[1]=0;for(len=1;len root */used=1<ENOUGH_LENS$1||type===DISTS$1&&used>ENOUGH_DISTS$1){return 1;}/* process all codes and make table entries */for(;;){/* create table entry */here_bits=len-drop;if(work[sym]end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]];}else {here_op=32+64;/* end of block */here_val=0;}/* replicate for those indices with low len bits equal to huff */incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0;}while(fill!==0);/* backwards increment the len-bit code huff */incr=1<>=1;}if(incr!==0){huff&=incr-1;huff+=incr;}else {huff=0;}/* go to next symbol, update count, len */sym++;if(--count[len]===0){if(len===max){break;}len=lens[lens_index+work[sym]];}/* create new sub-table if needed */if(len>root&&(huff&mask)!==low){/* if first time, transition to sub-tables */if(drop===0){drop=root;}/* increment past last table */next+=min;/* here min is 1 << curr */ /* determine length of next table */curr=len-drop;left=1<ENOUGH_LENS$1||type===DISTS$1&&used>ENOUGH_DISTS$1){return 1;}/* point entry in root table to sub-table */low=huff&mask;/*table.op[low] = curr; - table.bits[low] = root; - table.val[low] = next - opts.table_index;*/table[low]=root<<24|curr<<16|next-table_index|0;}}/* fill in remaining table entry if code is incomplete (guaranteed to have - at most one remaining entry, since if the code is incomplete, the - maximum code length that was allowed to get this far is one bit) */if(huff!==0){//table.op[next + huff] = 64; /* invalid code marker */ -//table.bits[next + huff] = len - drop; -//table.val[next + huff] = 0; -table[next+huff]=len-drop<<24|64<<16|0;}/* set return parameters */ //opts.table_index += used; -opts.bits=root;return 0;}var CODES=0;var LENS=1;var DISTS=2;/* Public constants ==========================================================*/ /* ===========================================================================*/ /* Allowed flush values; see deflate() and inflate() below for details */ //var Z_NO_FLUSH = 0; -//var Z_PARTIAL_FLUSH = 1; -//var Z_SYNC_FLUSH = 2; -//var Z_FULL_FLUSH = 3; -var Z_FINISH$1=4;var Z_BLOCK$1=5;var Z_TREES$1=6;/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */var Z_OK$1=0;var Z_STREAM_END$1=1;var Z_NEED_DICT$1=2;//var Z_ERRNO = -1; -var Z_STREAM_ERROR$1=-2;var Z_DATA_ERROR$1=-3;var Z_MEM_ERROR=-4;var Z_BUF_ERROR$1=-5;//var Z_VERSION_ERROR = -6; -/* The deflate compression method */var Z_DEFLATED$1=8;/* STATES ====================================================================*/ /* ===========================================================================*/var HEAD=1;/* i: waiting for magic header */var FLAGS=2;/* i: waiting for method and flags (gzip) */var TIME=3;/* i: waiting for modification time (gzip) */var OS=4;/* i: waiting for extra flags and operating system (gzip) */var EXLEN=5;/* i: waiting for extra length (gzip) */var EXTRA=6;/* i: waiting for extra bytes (gzip) */var NAME=7;/* i: waiting for end of file name (gzip) */var COMMENT=8;/* i: waiting for end of comment (gzip) */var HCRC=9;/* i: waiting for header crc (gzip) */var DICTID=10;/* i: waiting for dictionary check value */var DICT=11;/* waiting for inflateSetDictionary() call */var TYPE$1=12;/* i: waiting for type bits, including last-flag bit */var TYPEDO=13;/* i: same, but skip check to exit inflate on new block */var STORED=14;/* i: waiting for stored size (length and complement) */var COPY_=15;/* i/o: same as COPY below, but only first time in */var COPY=16;/* i/o: waiting for input or output to copy stored block */var TABLE=17;/* i: waiting for dynamic block table lengths */var LENLENS=18;/* i: waiting for code length code lengths */var CODELENS=19;/* i: waiting for length/lit and distance code lengths */var LEN_=20;/* i: same as LEN below, but only first time in */var LEN=21;/* i: waiting for length/lit/eob code */var LENEXT=22;/* i: waiting for length extra bits */var DIST=23;/* i: waiting for distance code */var DISTEXT=24;/* i: waiting for distance extra bits */var MATCH=25;/* o: waiting for output space to copy string */var LIT=26;/* o: waiting for output space to write literal */var CHECK=27;/* i: waiting for 32-bit check value */var LENGTH=28;/* i: waiting for 32-bit length (gzip) */var DONE=29;/* finished check, done -- remain here until reset */var BAD=30;/* got a data error -- remain here until reset */var MEM=31;/* got an inflate() memory error -- remain here until reset */var SYNC=32;/* looking for synchronization bytes to restart inflate() */ /* ===========================================================================*/var ENOUGH_LENS=852;var ENOUGH_DISTS=592;function zswap32(q){return (q>>>24&0xff)+(q>>>8&0xff00)+((q&0xff00)<<8)+((q&0xff)<<24);}function InflateState(){this.mode=0;/* current inflate mode */this.last=false;/* true if processing last block */this.wrap=0;/* bit 0 true for zlib, bit 1 true for gzip */this.havedict=false;/* true if dictionary provided */this.flags=0;/* gzip header method and flags (0 if zlib) */this.dmax=0;/* zlib header max distance (INFLATE_STRICT) */this.check=0;/* protected copy of check value */this.total=0;/* protected copy of output count */ // TODO: may be {} -this.head=null;/* where to save gzip header information */ /* sliding window */this.wbits=0;/* log base 2 of requested window size */this.wsize=0;/* window size or zero if not using window */this.whave=0;/* valid bytes in the window */this.wnext=0;/* window write index */this.window=null;/* allocated sliding window, if needed */ /* bit accumulator */this.hold=0;/* input bit accumulator */this.bits=0;/* number of bits in "in" */ /* for string and stored block copying */this.length=0;/* literal or length of data to copy */this.offset=0;/* distance back to copy string from */ /* for table and code decoding */this.extra=0;/* extra bits needed */ /* fixed and dynamic code tables */this.lencode=null;/* starting table for length/literal codes */this.distcode=null;/* starting table for distance codes */this.lenbits=0;/* index bits for lencode */this.distbits=0;/* index bits for distcode */ /* dynamic table building */this.ncode=0;/* number of code length code lengths */this.nlen=0;/* number of length code lengths */this.ndist=0;/* number of distance code lengths */this.have=0;/* number of code lengths in lens[] */this.next=null;/* next available space in codes[] */this.lens=new Buf16(320);/* temporary storage for code lengths */this.work=new Buf16(288);/* work area for code table building */ /* - because we don't have pointers in js, we use lencode and distcode directly - as buffers so we don't need codes - */ //this.codes = new Buf32(ENOUGH); /* space for code tables */ -this.lendyn=null;/* dynamic table for length/literal codes (JS specific) */this.distdyn=null;/* dynamic table for distance codes (JS specific) */this.sane=0;/* if false, allow invalid distance too far */this.back=0;/* bits back of last unprocessed length/lit */this.was=0;/* initial length of match */}function inflateResetKeep(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR$1;}state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg='';/*Z_NULL*/if(state.wrap){/* to support ill-conceived Java test suite */strm.adler=state.wrap&1;}state.mode=HEAD;state.last=0;state.havedict=0;state.dmax=32768;state.head=null/*Z_NULL*/;state.hold=0;state.bits=0;//state.lencode = state.distcode = state.next = state.codes; -state.lencode=state.lendyn=new Buf32(ENOUGH_LENS);state.distcode=state.distdyn=new Buf32(ENOUGH_DISTS);state.sane=1;state.back=-1;//Tracev((stderr, "inflate: reset\n")); -return Z_OK$1;}function inflateReset(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR$1;}state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm);}function inflateReset2(strm,windowBits){var wrap;var state;/* get the state */if(!strm||!strm.state){return Z_STREAM_ERROR$1;}state=strm.state;/* extract wrap request from windowBits parameter */if(windowBits<0){wrap=0;windowBits=-windowBits;}else {wrap=(windowBits>>4)+1;if(windowBits<48){windowBits&=15;}}/* set number of window bits, free window if different */if(windowBits&&(windowBits<8||windowBits>15)){return Z_STREAM_ERROR$1;}if(state.window!==null&&state.wbits!==windowBits){state.window=null;}/* update state and reset the rest of it */state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm);}function inflateInit2(strm,windowBits){var ret;var state;if(!strm){return Z_STREAM_ERROR$1;}//strm.msg = Z_NULL; /* in case we return an error */ -state=new InflateState();//if (state === Z_NULL) return Z_MEM_ERROR; -//Tracev((stderr, "inflate: allocated\n")); -strm.state=state;state.window=null/*Z_NULL*/;ret=inflateReset2(strm,windowBits);if(ret!==Z_OK$1){strm.state=null/*Z_NULL*/;}return ret;}/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */var virgin=true;var lenfix,distfix;// We have no pointers in JS, so keep tables separate -function fixedtables(state){/* build fixed huffman tables if first call (may not be thread safe) */if(virgin){var sym;lenfix=new Buf32(512);distfix=new Buf32(32);/* literal/length table */sym=0;while(sym<144){state.lens[sym++]=8;}while(sym<256){state.lens[sym++]=9;}while(sym<280){state.lens[sym++]=7;}while(sym<288){state.lens[sym++]=8;}inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});/* distance table */sym=0;while(sym<32){state.lens[sym++]=5;}inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5});/* do this just once */virgin=false;}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5;}/* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */function updatewindow(strm,src,end,copy){var dist;var state=strm.state;/* if it hasn't been done already, allocate space for the window */if(state.window===null){state.wsize=1<wsize or less output bytes into the circular window */if(copy>=state.wsize){arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize;}else {dist=state.wsize-state.wnext;if(dist>copy){dist=copy;}//zmemcpy(state->window + state->wnext, end - copy, dist); -arraySet(state.window,src,end-copy,dist,state.wnext);copy-=dist;if(copy){//zmemcpy(state->window, end - copy, copy); -arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize;}else {state.wnext+=dist;if(state.wnext===state.wsize){state.wnext=0;}if(state.whave>>8&0xff;state.check=crc32(state.check,hbuf,2,0);//===// -//=== INITBITS(); -hold=0;bits=0;//===// -state.mode=FLAGS;break;}state.flags=0;/* expect zlib header */if(state.head){state.head.done=false;}if(!(state.wrap&1)||/* check if zlib header allowed */(((hold&0xff)<>8))%31){strm.msg='incorrect header check';state.mode=BAD;break;}if((hold&0x0f)!==/*BITS(4)*/Z_DEFLATED$1){strm.msg='unknown compression method';state.mode=BAD;break;}//--- DROPBITS(4) ---// -hold>>>=4;bits-=4;//---// -len=(hold&0x0f)+/*BITS(4)*/8;if(state.wbits===0){state.wbits=len;}else if(len>state.wbits){strm.msg='invalid window size';state.mode=BAD;break;}state.dmax=1<>8&1;}if(state.flags&0x0200){//=== CRC2(state.check, hold); -hbuf[0]=hold&0xff;hbuf[1]=hold>>>8&0xff;state.check=crc32(state.check,hbuf,2,0);//===// -}//=== INITBITS(); -hold=0;bits=0;//===// -state.mode=TIME;/* falls through */case TIME://=== NEEDBITS(32); */ -while(bits<32){if(have===0){break inf_leave;}have--;hold+=input[next++]<>>8&0xff;hbuf[2]=hold>>>16&0xff;hbuf[3]=hold>>>24&0xff;state.check=crc32(state.check,hbuf,4,0);//=== -}//=== INITBITS(); -hold=0;bits=0;//===// -state.mode=OS;/* falls through */case OS://=== NEEDBITS(16); */ -while(bits<16){if(have===0){break inf_leave;}have--;hold+=input[next++]<>8;}if(state.flags&0x0200){//=== CRC2(state.check, hold); -hbuf[0]=hold&0xff;hbuf[1]=hold>>>8&0xff;state.check=crc32(state.check,hbuf,2,0);//===// -}//=== INITBITS(); -hold=0;bits=0;//===// -state.mode=EXLEN;/* falls through */case EXLEN:if(state.flags&0x0400){//=== NEEDBITS(16); */ -while(bits<16){if(have===0){break inf_leave;}have--;hold+=input[next++]<>>8&0xff;state.check=crc32(state.check,hbuf,2,0);//===// -}//=== INITBITS(); -hold=0;bits=0;//===// -}else if(state.head){state.head.extra=null/*Z_NULL*/;}state.mode=EXTRA;/* falls through */case EXTRA:if(state.flags&0x0400){copy=state.length;if(copy>have){copy=have;}if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra){// Use untyped array for more conveniend processing later -state.head.extra=new Array(state.head.extra_len);}arraySet(state.head.extra,input,next,// extra field is limited to 65536 bytes -// - no need for additional size check -copy,/*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/len);//zmemcpy(state.head.extra + len, next, -// len + copy > state.head.extra_max ? -// state.head.extra_max - len : copy); -}if(state.flags&0x0200){state.check=crc32(state.check,input,copy,next);}have-=copy;next+=copy;state.length-=copy;}if(state.length){break inf_leave;}}state.length=0;state.mode=NAME;/* falls through */case NAME:if(state.flags&0x0800){if(have===0){break inf_leave;}copy=0;do{// TODO: 2 or 1 bytes? -len=input[next+copy++];/* use constant limit because in js we should not preallocate memory */if(state.head&&len&&state.length<65536/*state.head.name_max*/){state.head.name+=String.fromCharCode(len);}}while(len&©>9&1;state.head.done=true;}strm.adler=state.check=0;state.mode=TYPE$1;break;case DICTID://=== NEEDBITS(32); */ -while(bits<32){if(have===0){break inf_leave;}have--;hold+=input[next++]<>>=bits&7;bits-=bits&7;//---// -state.mode=CHECK;break;}//=== NEEDBITS(3); */ -while(bits<3){if(have===0){break inf_leave;}have--;hold+=input[next++]<>>=1;bits-=1;//---// -switch(hold&0x03){/*BITS(2)*/case 0:/* stored block */ //Tracev((stderr, "inflate: stored block%s\n", -// state.last ? " (last)" : "")); -state.mode=STORED;break;case 1:/* fixed block */fixedtables(state);//Tracev((stderr, "inflate: fixed codes block%s\n", -// state.last ? " (last)" : "")); -state.mode=LEN_;/* decode codes */if(flush===Z_TREES$1){//--- DROPBITS(2) ---// -hold>>>=2;bits-=2;//---// -break inf_leave;}break;case 2:/* dynamic block */ //Tracev((stderr, "inflate: dynamic codes block%s\n", -// state.last ? " (last)" : "")); -state.mode=TABLE;break;case 3:strm.msg='invalid block type';state.mode=BAD;}//--- DROPBITS(2) ---// -hold>>>=2;bits-=2;//---// -break;case STORED://--- BYTEBITS() ---// /* go to byte boundary */ -hold>>>=bits&7;bits-=bits&7;//---// -//=== NEEDBITS(32); */ -while(bits<32){if(have===0){break inf_leave;}have--;hold+=input[next++]<>>16^0xffff)){strm.msg='invalid stored block lengths';state.mode=BAD;break;}state.length=hold&0xffff;//Tracev((stderr, "inflate: stored length %u\n", -// state.length)); -//=== INITBITS(); -hold=0;bits=0;//===// -state.mode=COPY_;if(flush===Z_TREES$1){break inf_leave;}/* falls through */case COPY_:state.mode=COPY;/* falls through */case COPY:copy=state.length;if(copy){if(copy>have){copy=have;}if(copy>left){copy=left;}if(copy===0){break inf_leave;}//--- zmemcpy(put, next, copy); --- -arraySet(output,input,next,copy,put);//---// -have-=copy;next+=copy;left-=copy;put+=copy;state.length-=copy;break;}//Tracev((stderr, "inflate: stored end\n")); -state.mode=TYPE$1;break;case TABLE://=== NEEDBITS(14); */ -while(bits<14){if(have===0){break inf_leave;}have--;hold+=input[next++]<>>=5;bits-=5;//---// -state.ndist=(hold&0x1f)+/*BITS(5)*/1;//--- DROPBITS(5) ---// -hold>>>=5;bits-=5;//---// -state.ncode=(hold&0x0f)+/*BITS(4)*/4;//--- DROPBITS(4) ---// -hold>>>=4;bits-=4;//---// -//#ifndef PKZIP_BUG_WORKAROUND -if(state.nlen>286||state.ndist>30){strm.msg='too many length or distance symbols';state.mode=BAD;break;}//#endif -//Tracev((stderr, "inflate: table sizes ok\n")); -state.have=0;state.mode=LENLENS;/* falls through */case LENLENS:while(state.have>>=3;bits-=3;//---// -}while(state.have<19){state.lens[order[state.have++]]=0;}// We have separate tables & no pointers. 2 commented lines below not needed. -//state.next = state.codes; -//state.lencode = state.next; -// Switch to use dynamic table -state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg='invalid code lengths set';state.mode=BAD;break;}//Tracev((stderr, "inflate: code lengths ok\n")); -state.have=0;state.mode=CODELENS;/* falls through */case CODELENS:while(state.have>>24;here_op=here>>>16&0xff;here_val=here&0xffff;if(here_bits<=bits){break;}//--- PULLBYTE() ---// -if(have===0){break inf_leave;}have--;hold+=input[next++]<>>=here_bits;bits-=here_bits;//---// -state.lens[state.have++]=here_val;}else {if(here_val===16){//=== NEEDBITS(here.bits + 2); -n=here_bits+2;while(bits>>=here_bits;bits-=here_bits;//---// -if(state.have===0){strm.msg='invalid bit length repeat';state.mode=BAD;break;}len=state.lens[state.have-1];copy=3+(hold&0x03);//BITS(2); -//--- DROPBITS(2) ---// -hold>>>=2;bits-=2;//---// -}else if(here_val===17){//=== NEEDBITS(here.bits + 3); -n=here_bits+3;while(bits>>=here_bits;bits-=here_bits;//---// -len=0;copy=3+(hold&0x07);//BITS(3); -//--- DROPBITS(3) ---// -hold>>>=3;bits-=3;//---// -}else {//=== NEEDBITS(here.bits + 7); -n=here_bits+7;while(bits>>=here_bits;bits-=here_bits;//---// -len=0;copy=11+(hold&0x7f);//BITS(7); -//--- DROPBITS(7) ---// -hold>>>=7;bits-=7;//---// -}if(state.have+copy>state.nlen+state.ndist){strm.msg='invalid bit length repeat';state.mode=BAD;break;}while(copy--){state.lens[state.have++]=len;}}}/* handle error breaks in while */if(state.mode===BAD){break;}/* check for end-of-block code (better have one) */if(state.lens[256]===0){strm.msg='invalid code -- missing end-of-block';state.mode=BAD;break;}/* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */state.lenbits=9;opts={bits:state.lenbits};ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts);// We have separate tables & no pointers. 2 commented lines below not needed. -// state.next_index = opts.table_index; -state.lenbits=opts.bits;// state.lencode = state.next; -if(ret){strm.msg='invalid literal/lengths set';state.mode=BAD;break;}state.distbits=6;//state.distcode.copy(state.codes); -// Switch to use dynamic table -state.distcode=state.distdyn;opts={bits:state.distbits};ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts);// We have separate tables & no pointers. 2 commented lines below not needed. -// state.next_index = opts.table_index; -state.distbits=opts.bits;// state.distcode = state.next; -if(ret){strm.msg='invalid distances set';state.mode=BAD;break;}//Tracev((stderr, 'inflate: codes ok\n')); -state.mode=LEN_;if(flush===Z_TREES$1){break inf_leave;}/* falls through */case LEN_:state.mode=LEN;/* falls through */case LEN:if(have>=6&&left>=258){//--- RESTORE() --- -strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;//--- -inflate_fast(strm,_out);//--- LOAD() --- -put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;//--- -if(state.mode===TYPE$1){state.back=-1;}break;}state.back=0;for(;;){here=state.lencode[hold&(1<>>24;here_op=here>>>16&0xff;here_val=here&0xffff;if(here_bits<=bits){break;}//--- PULLBYTE() ---// -if(have===0){break inf_leave;}have--;hold+=input[next++]<>/*BITS(last.bits + last.op)*/last_bits)];here_bits=here>>>24;here_op=here>>>16&0xff;here_val=here&0xffff;if(last_bits+here_bits<=bits){break;}//--- PULLBYTE() ---// -if(have===0){break inf_leave;}have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;//---// -state.back+=last_bits;}//--- DROPBITS(here.bits) ---// -hold>>>=here_bits;bits-=here_bits;//---// -state.back+=here_bits;state.length=here_val;if(here_op===0){//Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? -// "inflate: literal '%c'\n" : -// "inflate: literal 0x%02x\n", here.val)); -state.mode=LIT;break;}if(here_op&32){//Tracevv((stderr, "inflate: end of block\n")); -state.back=-1;state.mode=TYPE$1;break;}if(here_op&64){strm.msg='invalid literal/length code';state.mode=BAD;break;}state.extra=here_op&15;state.mode=LENEXT;/* falls through */case LENEXT:if(state.extra){//=== NEEDBITS(state.extra); -n=state.extra;while(bits>>=state.extra;bits-=state.extra;//---// -state.back+=state.extra;}//Tracevv((stderr, "inflate: length %u\n", state.length)); -state.was=state.length;state.mode=DIST;/* falls through */case DIST:for(;;){here=state.distcode[hold&(1<>>24;here_op=here>>>16&0xff;here_val=here&0xffff;if(here_bits<=bits){break;}//--- PULLBYTE() ---// -if(have===0){break inf_leave;}have--;hold+=input[next++]<>/*BITS(last.bits + last.op)*/last_bits)];here_bits=here>>>24;here_op=here>>>16&0xff;here_val=here&0xffff;if(last_bits+here_bits<=bits){break;}//--- PULLBYTE() ---// -if(have===0){break inf_leave;}have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;//---// -state.back+=last_bits;}//--- DROPBITS(here.bits) ---// -hold>>>=here_bits;bits-=here_bits;//---// -state.back+=here_bits;if(here_op&64){strm.msg='invalid distance code';state.mode=BAD;break;}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;/* falls through */case DISTEXT:if(state.extra){//=== NEEDBITS(state.extra); -n=state.extra;while(bits>>=state.extra;bits-=state.extra;//---// -state.back+=state.extra;}//#ifdef INFLATE_STRICT -if(state.offset>state.dmax){strm.msg='invalid distance too far back';state.mode=BAD;break;}//#endif -//Tracevv((stderr, "inflate: distance %u\n", state.offset)); -state.mode=MATCH;/* falls through */case MATCH:if(left===0){break inf_leave;}copy=_out-left;if(state.offset>copy){/* copy from window */copy=state.offset-copy;if(copy>state.whave){if(state.sane){strm.msg='invalid distance too far back';state.mode=BAD;break;}// (!) This block is disabled in zlib defailts, -// don't enable it for binary compatibility -//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR -// Trace((stderr, "inflate.c too far\n")); -// copy -= state.whave; -// if (copy > state.length) { copy = state.length; } -// if (copy > left) { copy = left; } -// left -= copy; -// state.length -= copy; -// do { -// output[put++] = 0; -// } while (--copy); -// if (state.length === 0) { state.mode = LEN; } -// break; -//#endif -}if(copy>state.wnext){copy-=state.wnext;from=state.wsize-copy;}else {from=state.wnext-copy;}if(copy>state.length){copy=state.length;}from_source=state.window;}else {/* copy from output */from_source=output;from=put-state.offset;copy=state.length;}if(copy>left){copy=left;}left-=copy;state.length-=copy;do{output[put++]=from_source[from++];}while(--copy);if(state.length===0){state.mode=LEN;}break;case LIT:if(left===0){break inf_leave;}output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){//=== NEEDBITS(32); -while(bits<32){if(have===0){break inf_leave;}have--;// Use '|' insdead of '+' to make sure that result is signed -hold|=input[next++]<zfree == (free_func)0*/){return Z_STREAM_ERROR$1;}var state=strm.state;if(state.window){state.window=null;}strm.state=null;return Z_OK$1;}/* Not implemented - exports.inflateCopy = inflateCopy; - exports.inflateGetDictionary = inflateGetDictionary; - exports.inflateMark = inflateMark; - exports.inflatePrime = inflatePrime; - exports.inflateSync = inflateSync; - exports.inflateSyncPoint = inflateSyncPoint; - exports.inflateUndermine = inflateUndermine; - */ // import constants from './constants'; -// zlib modes -var NONE=0;var DEFLATE=1;var INFLATE=2;var GZIP=3;var GUNZIP=4;var DEFLATERAW=5;var INFLATERAW=6;var UNZIP=7;var Z_NO_FLUSH=0,Z_PARTIAL_FLUSH=1,Z_SYNC_FLUSH=2,Z_FULL_FLUSH=3,Z_FINISH=4,Z_BLOCK=5,Z_TREES=6,/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */Z_OK=0,Z_STREAM_END=1,Z_NEED_DICT=2,Z_ERRNO=-1,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,//Z_MEM_ERROR: -4, -Z_BUF_ERROR=-5,//Z_VERSION_ERROR: -6, -/* compression levels */Z_NO_COMPRESSION=0,Z_BEST_SPEED=1,Z_BEST_COMPRESSION=9,Z_DEFAULT_COMPRESSION=-1,Z_FILTERED=1,Z_HUFFMAN_ONLY=2,Z_RLE=3,Z_FIXED=4,Z_DEFAULT_STRATEGY=0,/* Possible values of the data_type field (though see inflate()) */Z_BINARY=0,Z_TEXT=1,//Z_ASCII: 1, // = Z_TEXT (deprecated) -Z_UNKNOWN=2,/* The deflate compression method */Z_DEFLATED=8;function Zlib$1(mode){if(modeUNZIP)throw new TypeError('Bad argument');this.mode=mode;this.init_done=false;this.write_in_progress=false;this.pending_close=false;this.windowBits=0;this.level=0;this.memLevel=0;this.strategy=0;this.dictionary=null;}Zlib$1.prototype.init=function(windowBits,level,memLevel,strategy,dictionary){this.windowBits=windowBits;this.level=level;this.memLevel=memLevel;this.strategy=strategy;// dictionary not supported. -if(this.mode===GZIP||this.mode===GUNZIP)this.windowBits+=16;if(this.mode===UNZIP)this.windowBits+=32;if(this.mode===DEFLATERAW||this.mode===INFLATERAW)this.windowBits=-this.windowBits;this.strm=new ZStream();var status;switch(this.mode){case DEFLATE:case GZIP:case DEFLATERAW:status=deflateInit2(this.strm,this.level,Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case INFLATE:case GUNZIP:case INFLATERAW:case UNZIP:status=inflateInit2(this.strm,this.windowBits);break;default:throw new Error('Unknown mode '+this.mode);}if(status!==Z_OK){this._error(status);return;}this.write_in_progress=false;this.init_done=true;};Zlib$1.prototype.params=function(){throw new Error('deflateParams Not supported');};Zlib$1.prototype._writeCheck=function(){if(!this.init_done)throw new Error('write before init');if(this.mode===NONE)throw new Error('already finalized');if(this.write_in_progress)throw new Error('write already in progress');if(this.pending_close)throw new Error('close is pending');};Zlib$1.prototype.write=function(flush,input,in_off,in_len,out,out_off,out_len){this._writeCheck();this.write_in_progress=true;var self=this;browser$1.nextTick(function(){self.write_in_progress=false;var res=self._write(flush,input,in_off,in_len,out,out_off,out_len);self.callback(res[0],res[1]);if(self.pending_close)self.close();});return this;};// set method for Node buffers, used by pako -function bufferSet(data,offset){for(var i=0;ibinding.Z_MAX_CHUNK){throw new Error('Invalid chunk size: '+opts.chunkSize);}}if(opts.windowBits){if(opts.windowBitsbinding.Z_MAX_WINDOWBITS){throw new Error('Invalid windowBits: '+opts.windowBits);}}if(opts.level){if(opts.levelbinding.Z_MAX_LEVEL){throw new Error('Invalid compression level: '+opts.level);}}if(opts.memLevel){if(opts.memLevelbinding.Z_MAX_MEMLEVEL){throw new Error('Invalid memLevel: '+opts.memLevel);}}if(opts.strategy){if(opts.strategy!=binding.Z_FILTERED&&opts.strategy!=binding.Z_HUFFMAN_ONLY&&opts.strategy!=binding.Z_RLE&&opts.strategy!=binding.Z_FIXED&&opts.strategy!=binding.Z_DEFAULT_STRATEGY){throw new Error('Invalid strategy: '+opts.strategy);}}if(opts.dictionary){if(!Buffer$1.isBuffer(opts.dictionary)){throw new Error('Invalid dictionary: it should be a Buffer instance');}}this._binding=new binding.Zlib(mode);var self=this;this._hadError=false;this._binding.onerror=function(message,errno){// there is no way to cleanly recover. -// continuing only obscures problems. -self._binding=null;self._hadError=true;var error=new Error(message);error.errno=errno;error.code=binding.codes[errno];self.emit('error',error);};var level=binding.Z_DEFAULT_COMPRESSION;if(typeof opts.level==='number')level=opts.level;var strategy=binding.Z_DEFAULT_STRATEGY;if(typeof opts.strategy==='number')strategy=opts.strategy;this._binding.init(opts.windowBits||binding.Z_DEFAULT_WINDOWBITS,level,opts.memLevel||binding.Z_DEFAULT_MEMLEVEL,strategy,opts.dictionary);this._buffer=new Buffer$1(this._chunkSize);this._offset=0;this._closed=false;this._level=level;this._strategy=strategy;this.once('end',this.close);}inherits$1(Zlib,Transform);Zlib.prototype.params=function(level,strategy,callback){if(levelbinding.Z_MAX_LEVEL){throw new RangeError('Invalid compression level: '+level);}if(strategy!=binding.Z_FILTERED&&strategy!=binding.Z_HUFFMAN_ONLY&&strategy!=binding.Z_RLE&&strategy!=binding.Z_FIXED&&strategy!=binding.Z_DEFAULT_STRATEGY){throw new TypeError('Invalid strategy: '+strategy);}if(this._level!==level||this._strategy!==strategy){var self=this;this.flush(binding.Z_SYNC_FLUSH,function(){self._binding.params(level,strategy);if(!self._hadError){self._level=level;self._strategy=strategy;if(callback)callback();}});}else {browser$1.nextTick(callback);}};Zlib.prototype.reset=function(){return this._binding.reset();};// This is the _flush function called by the transform class, -// internally, when the last chunk has been written. -Zlib.prototype._flush=function(callback){this._transform(new Buffer$1(0),'',callback);};Zlib.prototype.flush=function(kind,callback){var ws=this._writableState;if(typeof kind==='function'||kind===void 0&&!callback){callback=kind;kind=binding.Z_FULL_FLUSH;}if(ws.ended){if(callback)browser$1.nextTick(callback);}else if(ws.ending){if(callback)this.once('end',callback);}else if(ws.needDrain){var self=this;this.once('drain',function(){self.flush(callback);});}else {this._flushFlag=kind;this.write(new Buffer$1(0),'',callback);}};Zlib.prototype.close=function(callback){if(callback)browser$1.nextTick(callback);if(this._closed)return;this._closed=true;this._binding.close();var self=this;browser$1.nextTick(function(){self.emit('close');});};Zlib.prototype._transform=function(chunk,encoding,cb){var flushFlag;var ws=this._writableState;var ending=ws.ending||ws.ended;var last=ending&&(!chunk||ws.length===chunk.length);if(!chunk===null&&!Buffer$1.isBuffer(chunk))return cb(new Error('invalid input'));// If it's the last chunk, or a final flush, we use the Z_FINISH flush flag. -// If it's explicitly flushing at some other time, then we use -// Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression -// goodness. -if(last)flushFlag=binding.Z_FINISH;else {flushFlag=this._flushFlag;// once we've flushed the last of the queue, stop flushing and -// go back to the normal behavior. -if(chunk.length>=ws.length){this._flushFlag=this._opts.flush||binding.Z_NO_FLUSH;}}this._processChunk(chunk,flushFlag,cb);};Zlib.prototype._processChunk=function(chunk,flushFlag,cb){var availInBefore=chunk&&chunk.length;var availOutBefore=this._chunkSize-this._offset;var inOff=0;var self=this;var async=typeof cb==='function';if(!async){var buffers=[];var nread=0;var error;this.on('error',function(er){error=er;});do{var res=this._binding.writeSync(flushFlag,chunk,// in -inOff,// in_off -availInBefore,// in_len -this._buffer,// out -this._offset,//out_off -availOutBefore);// out_len -}while(!this._hadError&&callback(res[0],res[1]));if(this._hadError){throw error;}var buf=Buffer$1.concat(buffers,nread);this.close();return buf;}var req=this._binding.write(flushFlag,chunk,// in -inOff,// in_off -availInBefore,// in_len -this._buffer,// out -this._offset,//out_off -availOutBefore);// out_len -req.buffer=chunk;req.callback=callback;function callback(availInAfter,availOutAfter){if(self._hadError)return;var have=availOutBefore-availOutAfter;assert(have>=0,'have should not go down');if(have>0){var out=self._buffer.slice(self._offset,self._offset+have);self._offset+=have;// serve some output to the consumer. -if(async){self.push(out);}else {buffers.push(out);nread+=out.length;}}// exhausted the output buffer, or used all the input create a new one. -if(availOutAfter===0||self._offset>=self._chunkSize){availOutBefore=self._chunkSize;self._offset=0;self._buffer=new Buffer$1(self._chunkSize);}if(availOutAfter===0){// Not actually done. Need to reprocess. -// Also, update the availInBefore to the availInAfter value, -// so that if we have to hit it a third (fourth, etc.) time, -// it'll have the correct byte counts. -inOff+=availInBefore-availInAfter;availInBefore=availInAfter;if(!async)return true;var newReq=self._binding.write(flushFlag,chunk,inOff,availInBefore,self._buffer,self._offset,self._chunkSize);newReq.callback=callback;// this same function -newReq.buffer=chunk;return;}if(!async)return false;// finished with the chunk. -cb();}};inherits$1(Deflate,Zlib);inherits$1(Inflate,Zlib);inherits$1(Gzip,Zlib);inherits$1(Gunzip,Zlib);inherits$1(DeflateRaw,Zlib);inherits$1(InflateRaw,Zlib);inherits$1(Unzip,Zlib);var zlib={codes:codes,createDeflate:createDeflate,createInflate:createInflate,createDeflateRaw:createDeflateRaw,createInflateRaw:createInflateRaw,createGzip:createGzip,createGunzip:createGunzip,createUnzip:createUnzip,deflate:deflate,deflateSync:deflateSync,gzip:gzip,gzipSync:gzipSync,deflateRaw:deflateRaw,deflateRawSync:deflateRawSync,unzip:unzip,unzipSync:unzipSync,inflate:inflate,inflateSync:inflateSync,gunzip:gunzip,gunzipSync:gunzipSync,inflateRaw:inflateRaw,inflateRawSync:inflateRawSync,Deflate:Deflate,Inflate:Inflate,Gzip:Gzip,Gunzip:Gunzip,DeflateRaw:DeflateRaw,InflateRaw:InflateRaw,Unzip:Unzip,Zlib:Zlib};// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js -// fix for "Readable" isn't a named export issue -const Readable=Stream.Readable;const BUFFER=Symbol('buffer');const TYPE=Symbol('type');class Blob{constructor(){this[TYPE]='';const blobParts=arguments[0];const options=arguments[1];const buffers=[];let size=0;if(blobParts){const a=blobParts;const length=Number(a.length);for(let i=0;i1&&arguments[1]!==undefined?arguments[1]:{},_ref$size=_ref.size;let size=_ref$size===undefined?0:_ref$size;var _ref$timeout=_ref.timeout;let timeout=_ref$timeout===undefined?0:_ref$timeout;if(body==null){// body is undefined or null -body=null;}else if(isURLSearchParams(body)){// body is a URLSearchParams -body=Buffer.from(body.toString());}else if(isBlob(body));else if(Buffer.isBuffer(body));else if(Object.prototype.toString.call(body)==='[object ArrayBuffer]'){// body is ArrayBuffer -body=Buffer.from(body);}else if(ArrayBuffer.isView(body)){// body is ArrayBufferView -body=Buffer.from(body.buffer,body.byteOffset,body.byteLength);}else if(body instanceof Stream);else {// none of the above -// coerce to string then buffer -body=Buffer.from(String(body));}this[INTERNALS]={body,disturbed:false,error:null};this.size=size;this.timeout=timeout;if(body instanceof Stream){body.on('error',function(err){const error=err.name==='AbortError'?err:new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`,'system',err);_this[INTERNALS].error=error;});}}Body.prototype={get body(){return this[INTERNALS].body;},get bodyUsed(){return this[INTERNALS].disturbed;},/** - * Decode response as ArrayBuffer - * - * @return Promise - */arrayBuffer(){return consumeBody.call(this).then(function(buf){return buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.byteLength);});},/** - * Return raw response as Blob - * - * @return Promise - */blob(){let ct=this.headers&&this.headers.get('content-type')||'';return consumeBody.call(this).then(function(buf){return Object.assign(// Prevent copying -new Blob([],{type:ct.toLowerCase()}),{[BUFFER]:buf});});},/** - * Decode response as json - * - * @return Promise - */json(){var _this2=this;return consumeBody.call(this).then(function(buffer){try{return JSON.parse(buffer.toString());}catch(err){return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`,'invalid-json'));}});},/** - * Decode response as text - * - * @return Promise - */text(){return consumeBody.call(this).then(function(buffer){return buffer.toString();});},/** - * Decode response as buffer (non-spec api) - * - * @return Promise - */buffer(){return consumeBody.call(this);},/** - * Decode response as text, while automatically detecting the encoding and - * trying to decode to UTF-8 (non-spec api) - * - * @return Promise - */textConverted(){var _this3=this;return consumeBody.call(this).then(function(buffer){return convertBody(buffer,_this3.headers);});}};// In browsers, all properties are enumerable. -Object.defineProperties(Body.prototype,{body:{enumerable:true},bodyUsed:{enumerable:true},arrayBuffer:{enumerable:true},blob:{enumerable:true},json:{enumerable:true},text:{enumerable:true}});Body.mixIn=function(proto){for(const name of Object.getOwnPropertyNames(Body.prototype)){// istanbul ignore else: future proof -if(!(name in proto)){const desc=Object.getOwnPropertyDescriptor(Body.prototype,name);Object.defineProperty(proto,name,desc);}}};/** - * Consume and convert an entire Body to a Buffer. - * - * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body - * - * @return Promise - */function consumeBody(){var _this4=this;if(this[INTERNALS].disturbed){return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));}this[INTERNALS].disturbed=true;if(this[INTERNALS].error){return Body.Promise.reject(this[INTERNALS].error);}let body=this.body;// body is null -if(body===null){return Body.Promise.resolve(Buffer.alloc(0));}// body is blob -if(isBlob(body)){body=body.stream();}// body is buffer -if(Buffer.isBuffer(body)){return Body.Promise.resolve(body);}// istanbul ignore if: should never happen -if(!(body instanceof Stream)){return Body.Promise.resolve(Buffer.alloc(0));}// body is stream -// get ready to actually consume the body -let accum=[];let accumBytes=0;let abort=false;return new Body.Promise(function(resolve,reject){let resTimeout;// allow timeout on slow response body -if(_this4.timeout){resTimeout=setTimeout(function(){abort=true;reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`,'body-timeout'));},_this4.timeout);}// handle stream errors -body.on('error',function(err){if(err.name==='AbortError'){// if the request was aborted, reject with this Error -abort=true;reject(err);}else {// other errors, such as incorrect content-encoding -reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`,'system',err));}});body.on('data',function(chunk){if(abort||chunk===null){return;}if(_this4.size&&accumBytes+chunk.length>_this4.size){abort=true;reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`,'max-size'));return;}accumBytes+=chunk.length;accum.push(chunk);});body.on('end',function(){if(abort){return;}clearTimeout(resTimeout);try{resolve(Buffer.concat(accum,accumBytes));}catch(err){// handle streams that have accumulated too much data (issue #414) -reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`,'system',err));}});});}/** - * Detect buffer encoding and convert to target encoding - * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding - * - * @param Buffer buffer Incoming buffer - * @param String encoding Target encoding - * @return String - */function convertBody(buffer,headers){if(typeof convert$1!=='function'){throw new Error('The package `encoding` must be installed to use the textConverted() function');}const ct=headers.get('content-type');let charset='utf-8';let res,str;// header -if(ct){res=/charset=([^;]*)/i.exec(ct);}// no charset in content type, peek at response body for at most 1024 bytes -str=buffer.slice(0,1024).toString();// html5 -if(!res&&str){res=/0&&arguments[0]!==undefined?arguments[0]:undefined;this[MAP]=Object.create(null);if(init instanceof Headers){const rawHeaders=init.raw();const headerNames=Object.keys(rawHeaders);for(const headerName of headerNames){for(const value of rawHeaders[headerName]){this.append(headerName,value);}}return;}// We don't worry about converting prop to ByteString here as append() -// will handle it. -if(init==null);else if(typeof init==='object'){const method=init[Symbol.iterator];if(method!=null){if(typeof method!=='function'){throw new TypeError('Header pairs must be iterable');}// sequence> -// Note: per spec we have to first exhaust the lists then process them -const pairs=[];for(const pair of init){if(typeof pair!=='object'||typeof pair[Symbol.iterator]!=='function'){throw new TypeError('Each header pair must be iterable');}pairs.push(Array.from(pair));}for(const pair of pairs){if(pair.length!==2){throw new TypeError('Each header pair must be a name/value tuple');}this.append(pair[0],pair[1]);}}else {// record -for(const key of Object.keys(init)){const value=init[key];this.append(key,value);}}}else {throw new TypeError('Provided initializer must be an object');}}/** - * Return combined header value given name - * - * @param String name Header name - * @return Mixed - */get(name){name=`${name}`;validateName(name);const key=find(this[MAP],name);if(key===undefined){return null;}return this[MAP][key].join(', ');}/** - * Iterate over all headers - * - * @param Function callback Executed for each item with parameters (value, name, thisArg) - * @param Boolean thisArg `this` context for callback function - * @return Void - */forEach(callback){let thisArg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;let pairs=getHeaders(this);let i=0;while(i1&&arguments[1]!==undefined?arguments[1]:'key+value';const keys=Object.keys(headers[MAP]).sort();return keys.map(kind==='key'?function(k){return k.toLowerCase();}:kind==='value'?function(k){return headers[MAP][k].join(', ');}:function(k){return [k.toLowerCase(),headers[MAP][k].join(', ')];});}const INTERNAL=Symbol('internal');function createHeadersIterator(target,kind){const iterator=Object.create(HeadersIteratorPrototype);iterator[INTERNAL]={target,kind,index:0};return iterator;}const HeadersIteratorPrototype=Object.setPrototypeOf({next(){// istanbul ignore if -if(!this||Object.getPrototypeOf(this)!==HeadersIteratorPrototype){throw new TypeError('Value of `this` is not a HeadersIterator');}var _INTERNAL=this[INTERNAL];const target=_INTERNAL.target,kind=_INTERNAL.kind,index=_INTERNAL.index;const values=getHeaders(target,kind);const len=values.length;if(index>=len){return {value:undefined,done:true};}this[INTERNAL].index=index+1;return {value:values[index],done:false};}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(HeadersIteratorPrototype,Symbol.toStringTag,{value:'HeadersIterator',writable:false,enumerable:false,configurable:true});/** - * Export the Headers object in a form that Node.js can consume. - * - * @param Headers headers - * @return Object - */function exportNodeCompatibleHeaders(headers){const obj=Object.assign({__proto__:null},headers[MAP]);// http.request() only supports string as Host header. This hack makes -// specifying custom Host header possible. -const hostHeaderKey=find(headers[MAP],'Host');if(hostHeaderKey!==undefined){obj[hostHeaderKey]=obj[hostHeaderKey][0];}return obj;}/** - * Create a Headers object from an object of headers, ignoring those that do - * not conform to HTTP grammar productions. - * - * @param Object obj Object of headers - * @return Headers - */function createHeadersLenient(obj){const headers=new Headers();for(const name of Object.keys(obj)){if(invalidTokenRegex.test(name)){continue;}if(Array.isArray(obj[name])){for(const val of obj[name]){if(invalidHeaderCharRegex.test(val)){continue;}if(headers[MAP][name]===undefined){headers[MAP][name]=[val];}else {headers[MAP][name].push(val);}}}else if(!invalidHeaderCharRegex.test(obj[name])){headers[MAP][name]=[obj[name]];}}return headers;}const INTERNALS$1=Symbol('Response internals');// fix an issue where "STATUS_CODES" aren't a named export for node <10 -const STATUS_CODES=http$1.STATUS_CODES;/** - * Response class - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */class Response{constructor(){let body=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;let opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};Body.call(this,body,opts);const status=opts.status||200;const headers=new Headers(opts.headers);if(body!=null&&!headers.has('Content-Type')){const contentType=extractContentType(body);if(contentType){headers.append('Content-Type',contentType);}}this[INTERNALS$1]={url:opts.url,status,statusText:opts.statusText||STATUS_CODES[status],headers,counter:opts.counter};}get url(){return this[INTERNALS$1].url||'';}get status(){return this[INTERNALS$1].status;}/** - * Convenience property representing if the request ended normally - */get ok(){return this[INTERNALS$1].status>=200&&this[INTERNALS$1].status<300;}get redirected(){return this[INTERNALS$1].counter>0;}get statusText(){return this[INTERNALS$1].statusText;}get headers(){return this[INTERNALS$1].headers;}/** - * Clone this response - * - * @return Response - */clone(){return new Response(clone(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected});}}Body.mixIn(Response.prototype);Object.defineProperties(Response.prototype,{url:{enumerable:true},status:{enumerable:true},ok:{enumerable:true},redirected:{enumerable:true},statusText:{enumerable:true},headers:{enumerable:true},clone:{enumerable:true}});Object.defineProperty(Response.prototype,Symbol.toStringTag,{value:'Response',writable:false,enumerable:false,configurable:true});const INTERNALS$2=Symbol('Request internals');// fix an issue where "format", "parse" aren't a named export for node <10 -const parse_url=Url.parse;const format_url=Url.format;const streamDestructionSupported=('destroy'in Stream.Readable.prototype);/** - * Check if a value is an instance of Request. - * - * @param Mixed input - * @return Boolean - */function isRequest(input){return typeof input==='object'&&typeof input[INTERNALS$2]==='object';}function isAbortSignal(signal){const proto=signal&&typeof signal==='object'&&Object.getPrototypeOf(signal);return !!(proto&&proto.constructor.name==='AbortSignal');}/** - * Request class - * - * @param Mixed input Url or Request instance - * @param Object init Custom options - * @return Void - */class Request{constructor(input){let init=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};let parsedURL;// normalize input -if(!isRequest(input)){if(input&&input.href){// in order to support Node.js' Url objects; though WHATWG's URL objects -// will fall into this branch also (since their `toString()` will return -// `href` property anyway) -parsedURL=parse_url(input.href);}else {// coerce input to a string before attempting to parse -parsedURL=parse_url(`${input}`);}input={};}else {parsedURL=parse_url(input.url);}let method=init.method||input.method||'GET';method=method.toUpperCase();if((init.body!=null||isRequest(input)&&input.body!==null)&&(method==='GET'||method==='HEAD')){throw new TypeError('Request with GET/HEAD method cannot have body');}let inputBody=init.body!=null?init.body:isRequest(input)&&input.body!==null?clone(input):null;Body.call(this,inputBody,{timeout:init.timeout||input.timeout||0,size:init.size||input.size||0});const headers=new Headers(init.headers||input.headers||{});if(inputBody!=null&&!headers.has('Content-Type')){const contentType=extractContentType(inputBody);if(contentType){headers.append('Content-Type',contentType);}}let signal=isRequest(input)?input.signal:null;if('signal'in init)signal=init.signal;if(signal!=null&&!isAbortSignal(signal)){throw new TypeError('Expected signal to be an instanceof AbortSignal');}this[INTERNALS$2]={method,redirect:init.redirect||input.redirect||'follow',headers,parsedURL,signal};// node-fetch-only options -this.follow=init.follow!==undefined?init.follow:input.follow!==undefined?input.follow:20;this.compress=init.compress!==undefined?init.compress:input.compress!==undefined?input.compress:true;this.counter=init.counter||input.counter||0;this.agent=init.agent||input.agent;}get method(){return this[INTERNALS$2].method;}get url(){return format_url(this[INTERNALS$2].parsedURL);}get headers(){return this[INTERNALS$2].headers;}get redirect(){return this[INTERNALS$2].redirect;}get signal(){return this[INTERNALS$2].signal;}/** - * Clone this request - * - * @return Request - */clone(){return new Request(this);}}Body.mixIn(Request.prototype);Object.defineProperty(Request.prototype,Symbol.toStringTag,{value:'Request',writable:false,enumerable:false,configurable:true});Object.defineProperties(Request.prototype,{method:{enumerable:true},url:{enumerable:true},headers:{enumerable:true},redirect:{enumerable:true},clone:{enumerable:true},signal:{enumerable:true}});/** - * Convert a Request to Node.js http request options. - * - * @param Request A Request instance - * @return Object The options object to be passed to http.request - */function getNodeRequestOptions(request){const parsedURL=request[INTERNALS$2].parsedURL;const headers=new Headers(request[INTERNALS$2].headers);// fetch step 1.3 -if(!headers.has('Accept')){headers.set('Accept','*/*');}// Basic fetch -if(!parsedURL.protocol||!parsedURL.hostname){throw new TypeError('Only absolute URLs are supported');}if(!/^https?:$/.test(parsedURL.protocol)){throw new TypeError('Only HTTP(S) protocols are supported');}if(request.signal&&request.body instanceof Stream.Readable&&!streamDestructionSupported){throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');}// HTTP-network-or-cache fetch steps 2.4-2.7 -let contentLengthValue=null;if(request.body==null&&/^(POST|PUT)$/i.test(request.method)){contentLengthValue='0';}if(request.body!=null){const totalBytes=getTotalBytes(request);if(typeof totalBytes==='number'){contentLengthValue=String(totalBytes);}}if(contentLengthValue){headers.set('Content-Length',contentLengthValue);}// HTTP-network-or-cache fetch step 2.11 -if(!headers.has('User-Agent')){headers.set('User-Agent','node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');}// HTTP-network-or-cache fetch step 2.15 -if(request.compress&&!headers.has('Accept-Encoding')){headers.set('Accept-Encoding','gzip,deflate');}let agent=request.agent;if(typeof agent==='function'){agent=agent(parsedURL);}if(!headers.has('Connection')&&!agent){headers.set('Connection','close');}// HTTP-network fetch step 4.2 -// chunked encoding is handled by Node.js -return Object.assign({},parsedURL,{method:request.method,headers:exportNodeCompatibleHeaders(headers),agent});}/** - * abort-error.js - * - * AbortError interface for cancelled requests - */ /** - * Create AbortError instance - * - * @param String message Error message for human - * @return AbortError - */function AbortError(message){Error.call(this,message);this.type='aborted';this.message=message;// hide custom error implementation details from end-users -Error.captureStackTrace(this,this.constructor);}AbortError.prototype=Object.create(Error.prototype);AbortError.prototype.constructor=AbortError;AbortError.prototype.name='AbortError';// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 -const PassThrough$1=Stream.PassThrough;const resolve_url=Url.resolve;/** - * Fetch function - * - * @param Mixed url Absolute url or Request instance - * @param Object opts Fetch options - * @return Promise - */function fetch$1(url,opts){// allow custom promise -if(!fetch$1.Promise){throw new Error('native promise missing, set fetch.Promise to your favorite alternative');}Body.Promise=fetch$1.Promise;// wrap http.request into fetch -return new fetch$1.Promise(function(resolve,reject){// build request object -const request=new Request(url,opts);const options=getNodeRequestOptions(request);const send=(options.protocol==='https:'?http$1:http$1).request;const signal=request.signal;let response=null;const abort=function abort(){let error=new AbortError('The user aborted a request.');reject(error);if(request.body&&request.body instanceof Stream.Readable){request.body.destroy(error);}if(!response||!response.body)return;response.body.emit('error',error);};if(signal&&signal.aborted){abort();return;}const abortAndFinalize=function abortAndFinalize(){abort();finalize();};// send request -const req=send(options);let reqTimeout;if(signal){signal.addEventListener('abort',abortAndFinalize);}function finalize(){req.abort();if(signal)signal.removeEventListener('abort',abortAndFinalize);clearTimeout(reqTimeout);}if(request.timeout){req.once('socket',function(socket){reqTimeout=setTimeout(function(){reject(new FetchError(`network timeout at: ${request.url}`,'request-timeout'));finalize();},request.timeout);});}req.on('error',function(err){reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`,'system',err));finalize();});req.on('response',function(res){clearTimeout(reqTimeout);const headers=createHeadersLenient(res.headers);// HTTP fetch step 5 -if(fetch$1.isRedirect(res.statusCode)){// HTTP fetch step 5.2 -const location=headers.get('Location');// HTTP fetch step 5.3 -const locationURL=location===null?null:resolve_url(request.url,location);// HTTP fetch step 5.5 -switch(request.redirect){case'error':reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`,'no-redirect'));finalize();return;case'manual':// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. -if(locationURL!==null){// handle corrupted header -try{headers.set('Location',locationURL);}catch(err){// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request -reject(err);}}break;case'follow':// HTTP-redirect fetch step 2 -if(locationURL===null){break;}// HTTP-redirect fetch step 5 -if(request.counter>=request.follow){reject(new FetchError(`maximum redirect reached at: ${request.url}`,'max-redirect'));finalize();return;}// HTTP-redirect fetch step 6 (counter increment) -// Create a new Request object. -const requestOpts={headers:new Headers(request.headers),follow:request.follow,counter:request.counter+1,agent:request.agent,compress:request.compress,method:request.method,body:request.body,signal:request.signal,timeout:request.timeout,size:request.size};// HTTP-redirect fetch step 9 -if(res.statusCode!==303&&request.body&&getTotalBytes(request)===null){reject(new FetchError('Cannot follow redirect with body being a readable stream','unsupported-redirect'));finalize();return;}// HTTP-redirect fetch step 11 -if(res.statusCode===303||(res.statusCode===301||res.statusCode===302)&&request.method==='POST'){requestOpts.method='GET';requestOpts.body=undefined;requestOpts.headers.delete('content-length');}// HTTP-redirect fetch step 15 -resolve(fetch$1(new Request(locationURL,requestOpts)));finalize();return;}}// prepare response -res.once('end',function(){if(signal)signal.removeEventListener('abort',abortAndFinalize);});let body=res.pipe(new PassThrough$1());const response_options={url:request.url,status:res.statusCode,statusText:res.statusMessage,headers:headers,size:request.size,timeout:request.timeout,counter:request.counter};// HTTP-network fetch step 12.1.1.3 -const codings=headers.get('Content-Encoding');// HTTP-network fetch step 12.1.1.4: handle content codings -// in following scenarios we ignore compression support -// 1. compression support is disabled -// 2. HEAD request -// 3. no Content-Encoding header -// 4. no content response (204) -// 5. content not modified response (304) -if(!request.compress||request.method==='HEAD'||codings===null||res.statusCode===204||res.statusCode===304){response=new Response(body,response_options);resolve(response);return;}// For Node v6+ -// Be less strict when decoding compressed responses, since sometimes -// servers send slightly invalid responses that are still accepted -// by common browsers. -// Always using Z_SYNC_FLUSH is what cURL does. -const zlibOptions={flush:zlib.Z_SYNC_FLUSH,finishFlush:zlib.Z_SYNC_FLUSH};// for gzip -if(codings=='gzip'||codings=='x-gzip'){body=body.pipe(zlib.createGunzip(zlibOptions));response=new Response(body,response_options);resolve(response);return;}// for deflate -if(codings=='deflate'||codings=='x-deflate'){// handle the infamous raw deflate response from old servers -// a hack for old IIS and Apache servers -const raw=res.pipe(new PassThrough$1());raw.once('data',function(chunk){// see http://stackoverflow.com/questions/37519828 -if((chunk[0]&0x0F)===0x08){body=body.pipe(zlib.createInflate());}else {body=body.pipe(zlib.createInflateRaw());}response=new Response(body,response_options);resolve(response);});return;}// for br -if(codings=='br'&&typeof zlib.createBrotliDecompress==='function'){body=body.pipe(zlib.createBrotliDecompress());response=new Response(body,response_options);resolve(response);return;}// otherwise, use response as-is -response=new Response(body,response_options);resolve(response);});writeToStream(req,request);});}/** - * Redirect code matching - * - * @param Number code Status code - * @return Boolean - */fetch$1.isRedirect=function(code){return code===301||code===302||code===303||code===307||code===308;};// expose Promise -fetch$1.Promise=commonjsGlobal.Promise;var lib$2=/*#__PURE__*/Object.freeze({__proto__:null,'default':fetch$1,Headers:Headers,Request:Request,Response:Response,FetchError:FetchError});var title$5="AsyncAPI 1.0 schema.";var id$3="http://asyncapi.hitchhq.com/v1/schema.json#";var $schema$6="http://json-schema.org/draft-04/schema#";var type$8="object";var required$5=["asyncapi","info","topics"];var additionalProperties$5=false;var patternProperties$5={"^x-":{$ref:"#/definitions/vendorExtension"}};var properties$6={asyncapi:{type:"string","enum":["1.0.0"],description:"The AsyncAPI specification version of this document."},info:{$ref:"#/definitions/info"},baseTopic:{type:"string",pattern:"^[^/.]",description:"The base topic to the API. Example: 'hitch'.","default":""},servers:{type:"array",items:{$ref:"#/definitions/server"},uniqueItems:true},topics:{$ref:"#/definitions/topics"},components:{$ref:"#/definitions/components"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},security:{type:"array",items:{$ref:"#/definitions/SecurityRequirement"}},externalDocs:{$ref:"#/definitions/externalDocs"}};var definitions$6={Reference:{type:"object",required:["$ref"],properties:{$ref:{type:"string",format:"uri"}}},info:{type:"object",description:"General information about the API.",required:["version","title"],additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{title:{type:"string",description:"A unique and precise title of the API."},version:{type:"string",description:"A semantic version number of the API."},description:{type:"string",description:"A longer description of the API. Should be different from the title. CommonMark is allowed."},termsOfService:{type:"string",description:"A URL to the Terms of Service for the API. MUST be in the format of a URL.",format:"uri"},contact:{$ref:"#/definitions/contact"},license:{$ref:"#/definitions/license"}}},contact:{type:"object",description:"Contact information for the owners of the API.",additionalProperties:false,properties:{name:{type:"string",description:"The identifying name of the contact person/organization."},url:{type:"string",description:"The URL pointing to the contact information.",format:"uri"},email:{type:"string",description:"The email address of the contact person/organization.",format:"email"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},license:{type:"object",required:["name"],additionalProperties:false,properties:{name:{type:"string",description:"The name of the license type. It's encouraged to use an OSI compatible license."},url:{type:"string",description:"The URL pointing to the license.",format:"uri"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},server:{type:"object",description:"An object representing a Server.",required:["url","scheme"],additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{url:{type:"string"},description:{type:"string"},scheme:{type:"string",description:"The transfer protocol.","enum":["kafka","kafka-secure","amqp","amqps","mqtt","mqtts","secure-mqtt","ws","wss","stomp","stomps"]},schemeVersion:{type:"string"},variables:{$ref:"#/definitions/serverVariables"}}},serverVariables:{type:"object",additionalProperties:{$ref:"#/definitions/serverVariable"}},serverVariable:{type:"object",description:"An object representing a Server Variable for server URL template substitution.",minProperties:1,additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{"enum":{type:"array",items:{type:"string"},uniqueItems:true},"default":{type:"string"},description:{type:"string"}}},topics:{type:"object",description:"Relative paths to the individual topics. They must be relative to the 'baseTopic'.",patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"},"^[^.]":{$ref:"#/definitions/topicItem"}},additionalProperties:false},components:{type:"object",description:"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.",additionalProperties:false,properties:{schemas:{$ref:"#/definitions/schemas"},messages:{$ref:"#/definitions/messages"},securitySchemes:{type:"object",patternProperties:{"^[a-zA-Z0-9\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/SecurityScheme"}]}}}}},schemas:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},description:"JSON objects describing schemas the API uses."},messages:{type:"object",additionalProperties:{$ref:"#/definitions/message"},description:"JSON objects describing the messages being consumed and produced by the API."},schema:{type:"object",description:"A deterministic version of a JSON Schema object.",patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{$ref:{type:"string"},format:{type:"string"},title:{$ref:"http://json-schema.org/draft-04/schema#/properties/title"},description:{$ref:"http://json-schema.org/draft-04/schema#/properties/description"},"default":{$ref:"http://json-schema.org/draft-04/schema#/properties/default"},multipleOf:{$ref:"http://json-schema.org/draft-04/schema#/properties/multipleOf"},maximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/maximum"},exclusiveMaximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"},minimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/minimum"},exclusiveMinimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"},maxLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},pattern:{$ref:"http://json-schema.org/draft-04/schema#/properties/pattern"},maxItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},uniqueItems:{$ref:"http://json-schema.org/draft-04/schema#/properties/uniqueItems"},maxProperties:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minProperties:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},required:{$ref:"http://json-schema.org/draft-04/schema#/definitions/stringArray"},"enum":{$ref:"http://json-schema.org/draft-04/schema#/properties/enum"},additionalProperties:{anyOf:[{$ref:"#/definitions/schema"},{type:"boolean"}],"default":{}},type:{$ref:"http://json-schema.org/draft-04/schema#/properties/type"},items:{anyOf:[{$ref:"#/definitions/schema"},{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}}],"default":{}},allOf:{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}},properties:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},"default":{}},discriminator:{type:"string"},readOnly:{type:"boolean","default":false},xml:{$ref:"#/definitions/xml"},externalDocs:{$ref:"#/definitions/externalDocs"},example:{}},additionalProperties:false},xml:{type:"object",additionalProperties:false,properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean","default":false},wrapped:{type:"boolean","default":false}}},externalDocs:{type:"object",additionalProperties:false,description:"information about external documentation",required:["url"],properties:{description:{type:"string"},url:{type:"string",format:"uri"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},topicItem:{type:"object",additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},minProperties:1,properties:{$ref:{type:"string"},publish:{$ref:"#/definitions/message"},subscribe:{$ref:"#/definitions/message"},deprecated:{type:"boolean","default":false}}},message:{type:"object",additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{$ref:{type:"string"},headers:{$ref:"#/definitions/schema"},payload:{$ref:"#/definitions/schema"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},example:{}}},vendorExtension:{description:"Any property starting with x- is valid.",additionalProperties:true,additionalItems:true},tag:{type:"object",additionalProperties:false,required:["name"],properties:{name:{type:"string"},description:{type:"string"},externalDocs:{$ref:"#/definitions/externalDocs"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},SecurityScheme:{oneOf:[{$ref:"#/definitions/userPassword"},{$ref:"#/definitions/apiKey"},{$ref:"#/definitions/X509"},{$ref:"#/definitions/symmetricEncryption"},{$ref:"#/definitions/asymmetricEncryption"},{$ref:"#/definitions/HTTPSecurityScheme"}]},userPassword:{type:"object",required:["type"],properties:{type:{type:"string","enum":["userPassword"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},apiKey:{type:"object",required:["type","in"],properties:{type:{type:"string","enum":["apiKey"]},"in":{type:"string","enum":["user","password"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},X509:{type:"object",required:["type"],properties:{type:{type:"string","enum":["X509"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},symmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["symmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},asymmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["asymmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},HTTPSecurityScheme:{oneOf:[{$ref:"#/definitions/NonBearerHTTPSecurityScheme"},{$ref:"#/definitions/BearerHTTPSecurityScheme"},{$ref:"#/definitions/APIKeyHTTPSecurityScheme"}]},NonBearerHTTPSecurityScheme:{not:{type:"object",properties:{scheme:{type:"string","enum":["bearer"]}}},type:"object",required:["scheme","type"],properties:{scheme:{type:"string"},description:{type:"string"},type:{type:"string","enum":["http"]}},patternProperties:{"^x-":{}},additionalProperties:false},BearerHTTPSecurityScheme:{type:"object",required:["type","scheme"],properties:{scheme:{type:"string","enum":["bearer"]},bearerFormat:{type:"string"},type:{type:"string","enum":["http"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},APIKeyHTTPSecurityScheme:{type:"object",required:["type","name","in"],properties:{type:{type:"string","enum":["httpApiKey"]},name:{type:"string"},"in":{type:"string","enum":["header","query","cookie"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},SecurityRequirement:{type:"object",additionalProperties:{type:"array",items:{type:"string"}}},title:{$ref:"http://json-schema.org/draft-04/schema#/properties/title"},description:{$ref:"http://json-schema.org/draft-04/schema#/properties/description"},"default":{$ref:"http://json-schema.org/draft-04/schema#/properties/default"},multipleOf:{$ref:"http://json-schema.org/draft-04/schema#/properties/multipleOf"},maximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/maximum"},exclusiveMaximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"},minimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/minimum"},exclusiveMinimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"},maxLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},pattern:{$ref:"http://json-schema.org/draft-04/schema#/properties/pattern"},maxItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},uniqueItems:{$ref:"http://json-schema.org/draft-04/schema#/properties/uniqueItems"},"enum":{$ref:"http://json-schema.org/draft-04/schema#/properties/enum"}};var require$$0$3={title:title$5,id:id$3,$schema:$schema$6,type:type$8,required:required$5,additionalProperties:additionalProperties$5,patternProperties:patternProperties$5,properties:properties$6,definitions:definitions$6};var title$4="AsyncAPI 1.1.0 schema.";var id$2="http://asyncapi.hitchhq.com/v1/schema.json#";var $schema$5="http://json-schema.org/draft-04/schema#";var type$7="object";var required$4=["asyncapi","info","topics"];var additionalProperties$4=false;var patternProperties$4={"^x-":{$ref:"#/definitions/vendorExtension"}};var properties$5={asyncapi:{type:"string","enum":["1.0.0","1.1.0"],description:"The AsyncAPI specification version of this document."},info:{$ref:"#/definitions/info"},baseTopic:{type:"string",pattern:"^[^/.]",description:"The base topic to the API. Example: 'hitch'.","default":""},servers:{type:"array",items:{$ref:"#/definitions/server"},uniqueItems:true},topics:{$ref:"#/definitions/topics"},components:{$ref:"#/definitions/components"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},security:{type:"array",items:{$ref:"#/definitions/SecurityRequirement"}},externalDocs:{$ref:"#/definitions/externalDocs"}};var definitions$5={Reference:{type:"object",required:["$ref"],properties:{$ref:{type:"string",format:"uri"}}},info:{type:"object",description:"General information about the API.",required:["version","title"],additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{title:{type:"string",description:"A unique and precise title of the API."},version:{type:"string",description:"A semantic version number of the API."},description:{type:"string",description:"A longer description of the API. Should be different from the title. CommonMark is allowed."},termsOfService:{type:"string",description:"A URL to the Terms of Service for the API. MUST be in the format of a URL.",format:"uri"},contact:{$ref:"#/definitions/contact"},license:{$ref:"#/definitions/license"}}},contact:{type:"object",description:"Contact information for the owners of the API.",additionalProperties:false,properties:{name:{type:"string",description:"The identifying name of the contact person/organization."},url:{type:"string",description:"The URL pointing to the contact information.",format:"uri"},email:{type:"string",description:"The email address of the contact person/organization.",format:"email"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},license:{type:"object",required:["name"],additionalProperties:false,properties:{name:{type:"string",description:"The name of the license type. It's encouraged to use an OSI compatible license."},url:{type:"string",description:"The URL pointing to the license.",format:"uri"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},server:{type:"object",description:"An object representing a Server.",required:["url","scheme"],additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{url:{type:"string"},description:{type:"string"},scheme:{type:"string",description:"The transfer protocol.","enum":["kafka","kafka-secure","amqp","amqps","mqtt","mqtts","secure-mqtt","ws","wss","stomp","stomps","jms"]},schemeVersion:{type:"string"},variables:{$ref:"#/definitions/serverVariables"}}},serverVariables:{type:"object",additionalProperties:{$ref:"#/definitions/serverVariable"}},serverVariable:{type:"object",description:"An object representing a Server Variable for server URL template substitution.",minProperties:1,additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{"enum":{type:"array",items:{type:"string"},uniqueItems:true},"default":{type:"string"},description:{type:"string"}}},topics:{type:"object",description:"Relative paths to the individual topics. They must be relative to the 'baseTopic'.",patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"},"^[^.]":{$ref:"#/definitions/topicItem"}},additionalProperties:false},components:{type:"object",description:"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.",additionalProperties:false,properties:{schemas:{$ref:"#/definitions/schemas"},messages:{$ref:"#/definitions/messages"},securitySchemes:{type:"object",patternProperties:{"^[a-zA-Z0-9\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/SecurityScheme"}]}}}}},schemas:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},description:"JSON objects describing schemas the API uses."},messages:{type:"object",additionalProperties:{$ref:"#/definitions/message"},description:"JSON objects describing the messages being consumed and produced by the API."},schema:{type:"object",description:"A deterministic version of a JSON Schema object.",patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{$ref:{type:"string"},format:{type:"string"},title:{$ref:"http://json-schema.org/draft-04/schema#/properties/title"},description:{$ref:"http://json-schema.org/draft-04/schema#/properties/description"},"default":{$ref:"http://json-schema.org/draft-04/schema#/properties/default"},multipleOf:{$ref:"http://json-schema.org/draft-04/schema#/properties/multipleOf"},maximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/maximum"},exclusiveMaximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"},minimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/minimum"},exclusiveMinimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"},maxLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},pattern:{$ref:"http://json-schema.org/draft-04/schema#/properties/pattern"},maxItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},uniqueItems:{$ref:"http://json-schema.org/draft-04/schema#/properties/uniqueItems"},maxProperties:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minProperties:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},required:{$ref:"http://json-schema.org/draft-04/schema#/definitions/stringArray"},"enum":{$ref:"http://json-schema.org/draft-04/schema#/properties/enum"},additionalProperties:{anyOf:[{$ref:"#/definitions/schema"},{type:"boolean"}],"default":{}},type:{$ref:"http://json-schema.org/draft-04/schema#/properties/type"},items:{anyOf:[{$ref:"#/definitions/schema"},{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}}],"default":{}},allOf:{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}},oneOf:{type:"array",minItems:2,items:{$ref:"#/definitions/schema"}},anyOf:{type:"array",minItems:2,items:{$ref:"#/definitions/schema"}},not:{$ref:"#/definitions/schema"},properties:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},"default":{}},discriminator:{type:"string"},readOnly:{type:"boolean","default":false},xml:{$ref:"#/definitions/xml"},externalDocs:{$ref:"#/definitions/externalDocs"},example:{}},additionalProperties:false},xml:{type:"object",additionalProperties:false,properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean","default":false},wrapped:{type:"boolean","default":false}}},externalDocs:{type:"object",additionalProperties:false,description:"information about external documentation",required:["url"],properties:{description:{type:"string"},url:{type:"string",format:"uri"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},topicItem:{type:"object",additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},minProperties:1,properties:{$ref:{type:"string"},parameters:{type:"array",uniqueItems:true,minItems:1,items:{$ref:"#/definitions/parameter"}},publish:{$ref:"#/definitions/operation"},subscribe:{$ref:"#/definitions/operation"},deprecated:{type:"boolean","default":false}}},parameter:{additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{description:{type:"string",description:"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."},name:{type:"string",description:"The name of the parameter."},schema:{$ref:"#/definitions/schema"}}},operation:{oneOf:[{$ref:"#/definitions/message"},{type:"object",required:["oneOf"],additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{oneOf:{type:"array",minItems:2,items:{$ref:"#/definitions/message"}}}}]},message:{type:"object",additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{$ref:{type:"string"},headers:{$ref:"#/definitions/schema"},payload:{$ref:"#/definitions/schema"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},example:{}}},vendorExtension:{description:"Any property starting with x- is valid.",additionalProperties:true,additionalItems:true},tag:{type:"object",additionalProperties:false,required:["name"],properties:{name:{type:"string"},description:{type:"string"},externalDocs:{$ref:"#/definitions/externalDocs"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},SecurityScheme:{oneOf:[{$ref:"#/definitions/userPassword"},{$ref:"#/definitions/apiKey"},{$ref:"#/definitions/X509"},{$ref:"#/definitions/symmetricEncryption"},{$ref:"#/definitions/asymmetricEncryption"},{$ref:"#/definitions/HTTPSecurityScheme"}]},userPassword:{type:"object",required:["type"],properties:{type:{type:"string","enum":["userPassword"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},apiKey:{type:"object",required:["type","in"],properties:{type:{type:"string","enum":["apiKey"]},"in":{type:"string","enum":["user","password"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},X509:{type:"object",required:["type"],properties:{type:{type:"string","enum":["X509"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},symmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["symmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},asymmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["asymmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},HTTPSecurityScheme:{oneOf:[{$ref:"#/definitions/NonBearerHTTPSecurityScheme"},{$ref:"#/definitions/BearerHTTPSecurityScheme"},{$ref:"#/definitions/APIKeyHTTPSecurityScheme"}]},NonBearerHTTPSecurityScheme:{not:{type:"object",properties:{scheme:{type:"string","enum":["bearer"]}}},type:"object",required:["scheme","type"],properties:{scheme:{type:"string"},description:{type:"string"},type:{type:"string","enum":["http"]}},patternProperties:{"^x-":{}},additionalProperties:false},BearerHTTPSecurityScheme:{type:"object",required:["type","scheme"],properties:{scheme:{type:"string","enum":["bearer"]},bearerFormat:{type:"string"},type:{type:"string","enum":["http"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},APIKeyHTTPSecurityScheme:{type:"object",required:["type","name","in"],properties:{type:{type:"string","enum":["httpApiKey"]},name:{type:"string"},"in":{type:"string","enum":["header","query","cookie"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},SecurityRequirement:{type:"object",additionalProperties:{type:"array",items:{type:"string"}}},title:{$ref:"http://json-schema.org/draft-04/schema#/properties/title"},description:{$ref:"http://json-schema.org/draft-04/schema#/properties/description"},"default":{$ref:"http://json-schema.org/draft-04/schema#/properties/default"},multipleOf:{$ref:"http://json-schema.org/draft-04/schema#/properties/multipleOf"},maximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/maximum"},exclusiveMaximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"},minimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/minimum"},exclusiveMinimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"},maxLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},pattern:{$ref:"http://json-schema.org/draft-04/schema#/properties/pattern"},maxItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},uniqueItems:{$ref:"http://json-schema.org/draft-04/schema#/properties/uniqueItems"},"enum":{$ref:"http://json-schema.org/draft-04/schema#/properties/enum"}};var require$$1$1={title:title$4,id:id$2,$schema:$schema$5,type:type$7,required:required$4,additionalProperties:additionalProperties$4,patternProperties:patternProperties$4,properties:properties$5,definitions:definitions$5};var title$3="AsyncAPI 1.2.0 schema.";var id$1="http://asyncapi.hitchhq.com/v1/schema.json#";var $schema$4="http://json-schema.org/draft-04/schema#";var type$6="object";var required$3=["asyncapi","info"];var oneOf=[{required:["topics"]},{required:["stream"]},{required:["events"]}];var additionalProperties$3=false;var patternProperties$3={"^x-":{$ref:"#/definitions/vendorExtension"}};var properties$4={asyncapi:{type:"string","enum":["1.0.0","1.1.0","1.2.0"],description:"The AsyncAPI specification version of this document."},info:{$ref:"#/definitions/info"},baseTopic:{type:"string",pattern:"^[^/.]",description:"The base topic to the API. Example: 'hitch'.","default":""},servers:{type:"array",items:{$ref:"#/definitions/server"},uniqueItems:true},topics:{$ref:"#/definitions/topics"},stream:{$ref:"#/definitions/stream",description:"The list of messages a consumer can read or write from/to a streaming API."},events:{$ref:"#/definitions/events",description:"The list of messages an events API sends and/or receives."},components:{$ref:"#/definitions/components"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},security:{type:"array",items:{$ref:"#/definitions/SecurityRequirement"}},externalDocs:{$ref:"#/definitions/externalDocs"}};var definitions$4={Reference:{type:"object",required:["$ref"],properties:{$ref:{type:"string",format:"uri"}}},info:{type:"object",description:"General information about the API.",required:["version","title"],additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{title:{type:"string",description:"A unique and precise title of the API."},version:{type:"string",description:"A semantic version number of the API."},description:{type:"string",description:"A longer description of the API. Should be different from the title. CommonMark is allowed."},termsOfService:{type:"string",description:"A URL to the Terms of Service for the API. MUST be in the format of a URL.",format:"uri"},contact:{$ref:"#/definitions/contact"},license:{$ref:"#/definitions/license"}}},contact:{type:"object",description:"Contact information for the owners of the API.",additionalProperties:false,properties:{name:{type:"string",description:"The identifying name of the contact person/organization."},url:{type:"string",description:"The URL pointing to the contact information.",format:"uri"},email:{type:"string",description:"The email address of the contact person/organization.",format:"email"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},license:{type:"object",required:["name"],additionalProperties:false,properties:{name:{type:"string",description:"The name of the license type. It's encouraged to use an OSI compatible license."},url:{type:"string",description:"The URL pointing to the license.",format:"uri"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},server:{type:"object",description:"An object representing a Server.",required:["url","scheme"],additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{url:{type:"string"},description:{type:"string"},scheme:{type:"string",description:"The transfer protocol.","enum":["kafka","kafka-secure","amqp","amqps","mqtt","mqtts","secure-mqtt","ws","wss","stomp","stomps","jms","http","https"]},schemeVersion:{type:"string"},variables:{$ref:"#/definitions/serverVariables"}}},serverVariables:{type:"object",additionalProperties:{$ref:"#/definitions/serverVariable"}},serverVariable:{type:"object",description:"An object representing a Server Variable for server URL template substitution.",minProperties:1,additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{"enum":{type:"array",items:{type:"string"},uniqueItems:true},"default":{type:"string"},description:{type:"string"}}},topics:{type:"object",description:"Relative paths to the individual topics. They must be relative to the 'baseTopic'.",patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"},"^[^.]":{$ref:"#/definitions/topicItem"}},additionalProperties:false},components:{type:"object",description:"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.",additionalProperties:false,properties:{schemas:{$ref:"#/definitions/schemas"},messages:{$ref:"#/definitions/messages"},securitySchemes:{type:"object",patternProperties:{"^[a-zA-Z0-9\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/SecurityScheme"}]}}},parameters:{$ref:"#/definitions/parameters"}}},schemas:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},description:"JSON objects describing schemas the API uses."},messages:{type:"object",additionalProperties:{$ref:"#/definitions/message"},description:"JSON objects describing the messages being consumed and produced by the API."},parameters:{type:"object",additionalProperties:{$ref:"#/definitions/parameter"},description:"JSON objects describing re-usable topic parameters."},schema:{type:"object",description:"A deterministic version of a JSON Schema object.",patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{$ref:{type:"string"},format:{type:"string"},title:{$ref:"http://json-schema.org/draft-04/schema#/properties/title"},description:{$ref:"http://json-schema.org/draft-04/schema#/properties/description"},"default":{$ref:"http://json-schema.org/draft-04/schema#/properties/default"},multipleOf:{$ref:"http://json-schema.org/draft-04/schema#/properties/multipleOf"},maximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/maximum"},exclusiveMaximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"},minimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/minimum"},exclusiveMinimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"},maxLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},pattern:{$ref:"http://json-schema.org/draft-04/schema#/properties/pattern"},maxItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},uniqueItems:{$ref:"http://json-schema.org/draft-04/schema#/properties/uniqueItems"},maxProperties:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minProperties:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},required:{$ref:"http://json-schema.org/draft-04/schema#/definitions/stringArray"},"enum":{$ref:"http://json-schema.org/draft-04/schema#/properties/enum"},additionalProperties:{anyOf:[{$ref:"#/definitions/schema"},{type:"boolean"}],"default":{}},type:{$ref:"http://json-schema.org/draft-04/schema#/properties/type"},items:{anyOf:[{$ref:"#/definitions/schema"},{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}}],"default":{}},allOf:{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}},oneOf:{type:"array",minItems:2,items:{$ref:"#/definitions/schema"}},anyOf:{type:"array",minItems:2,items:{$ref:"#/definitions/schema"}},not:{$ref:"#/definitions/schema"},properties:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},"default":{}},discriminator:{type:"string"},readOnly:{type:"boolean","default":false},xml:{$ref:"#/definitions/xml"},externalDocs:{$ref:"#/definitions/externalDocs"},example:{}},additionalProperties:false},xml:{type:"object",additionalProperties:false,properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean","default":false},wrapped:{type:"boolean","default":false}}},externalDocs:{type:"object",additionalProperties:false,description:"information about external documentation",required:["url"],properties:{description:{type:"string"},url:{type:"string",format:"uri"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},topicItem:{type:"object",additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},minProperties:1,properties:{$ref:{type:"string"},parameters:{type:"array",uniqueItems:true,minItems:1,items:{$ref:"#/definitions/parameter"}},publish:{$ref:"#/definitions/operation"},subscribe:{$ref:"#/definitions/operation"},deprecated:{type:"boolean","default":false}}},parameter:{additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{description:{type:"string",description:"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."},name:{type:"string",description:"The name of the parameter."},schema:{$ref:"#/definitions/schema"},$ref:{type:"string"}}},operation:{oneOf:[{$ref:"#/definitions/message"},{type:"object",required:["oneOf"],additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{oneOf:{type:"array",minItems:2,items:{$ref:"#/definitions/message"}}}}]},stream:{title:"Stream Object",type:"object",additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},minProperties:1,properties:{framing:{title:"Stream Framing Object",type:"object",patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},minProperties:1,oneOf:[{additionalProperties:false,properties:{type:{type:"string","enum":["chunked"]},delimiter:{type:"string","enum":["\\r\\n","\\n"],"default":"\\r\\n"}}},{additionalProperties:false,properties:{type:{type:"string","enum":["sse"]},delimiter:{type:"string","enum":["\\n\\n"],"default":"\\n\\n"}}}]},read:{title:"Stream Read Object",type:"array",uniqueItems:true,minItems:1,items:{$ref:"#/definitions/message"}},write:{title:"Stream Write Object",type:"array",uniqueItems:true,minItems:1,items:{$ref:"#/definitions/message"}}}},events:{title:"Events Object",type:"object",additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},minProperties:1,anyOf:[{required:["receive"]},{required:["send"]}],properties:{receive:{title:"Events Receive Object",type:"array",uniqueItems:true,minItems:1,items:{$ref:"#/definitions/message"}},send:{title:"Events Send Object",type:"array",uniqueItems:true,minItems:1,items:{$ref:"#/definitions/message"}}}},message:{type:"object",additionalProperties:false,patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}},properties:{$ref:{type:"string"},headers:{$ref:"#/definitions/schema"},payload:{$ref:"#/definitions/schema"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},example:{}}},vendorExtension:{description:"Any property starting with x- is valid.",additionalProperties:true,additionalItems:true},tag:{type:"object",additionalProperties:false,required:["name"],properties:{name:{type:"string"},description:{type:"string"},externalDocs:{$ref:"#/definitions/externalDocs"}},patternProperties:{"^x-":{$ref:"#/definitions/vendorExtension"}}},SecurityScheme:{oneOf:[{$ref:"#/definitions/userPassword"},{$ref:"#/definitions/apiKey"},{$ref:"#/definitions/X509"},{$ref:"#/definitions/symmetricEncryption"},{$ref:"#/definitions/asymmetricEncryption"},{$ref:"#/definitions/HTTPSecurityScheme"}]},userPassword:{type:"object",required:["type"],properties:{type:{type:"string","enum":["userPassword"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},apiKey:{type:"object",required:["type","in"],properties:{type:{type:"string","enum":["apiKey"]},"in":{type:"string","enum":["user","password"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},X509:{type:"object",required:["type"],properties:{type:{type:"string","enum":["X509"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},symmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["symmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},asymmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["asymmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},HTTPSecurityScheme:{oneOf:[{$ref:"#/definitions/NonBearerHTTPSecurityScheme"},{$ref:"#/definitions/BearerHTTPSecurityScheme"},{$ref:"#/definitions/APIKeyHTTPSecurityScheme"}]},NonBearerHTTPSecurityScheme:{not:{type:"object",properties:{scheme:{type:"string","enum":["bearer"]}}},type:"object",required:["scheme","type"],properties:{scheme:{type:"string"},description:{type:"string"},type:{type:"string","enum":["http"]}},patternProperties:{"^x-":{}},additionalProperties:false},BearerHTTPSecurityScheme:{type:"object",required:["type","scheme"],properties:{scheme:{type:"string","enum":["bearer"]},bearerFormat:{type:"string"},type:{type:"string","enum":["http"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},APIKeyHTTPSecurityScheme:{type:"object",required:["type","name","in"],properties:{type:{type:"string","enum":["httpApiKey"]},name:{type:"string"},"in":{type:"string","enum":["header","query","cookie"]},description:{type:"string"}},patternProperties:{"^x-":{}},additionalProperties:false},SecurityRequirement:{type:"object",additionalProperties:{type:"array",items:{type:"string"}}},title:{$ref:"http://json-schema.org/draft-04/schema#/properties/title"},description:{$ref:"http://json-schema.org/draft-04/schema#/properties/description"},"default":{$ref:"http://json-schema.org/draft-04/schema#/properties/default"},multipleOf:{$ref:"http://json-schema.org/draft-04/schema#/properties/multipleOf"},maximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/maximum"},exclusiveMaximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"},minimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/minimum"},exclusiveMinimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"},maxLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},pattern:{$ref:"http://json-schema.org/draft-04/schema#/properties/pattern"},maxItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},uniqueItems:{$ref:"http://json-schema.org/draft-04/schema#/properties/uniqueItems"},"enum":{$ref:"http://json-schema.org/draft-04/schema#/properties/enum"}};var require$$2={title:title$3,id:id$1,$schema:$schema$4,type:type$6,required:required$3,oneOf:oneOf,additionalProperties:additionalProperties$3,patternProperties:patternProperties$3,properties:properties$4,definitions:definitions$4};var title$2="AsyncAPI 2.0.0-rc1 schema.";var $schema$3="http://json-schema.org/draft-07/schema#";var type$5="object";var required$2=["asyncapi","id","info","channels"];var additionalProperties$2=false;var patternProperties$2={"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}};var properties$3={asyncapi:{type:"string","enum":["2.0.0-rc1"],description:"The AsyncAPI specification version of this document."},id:{type:"string",description:"A unique id representing the application.",format:"uri-reference"},info:{$ref:"#/definitions/info"},servers:{type:"array",items:{$ref:"#/definitions/server"},uniqueItems:true},defaultContentType:{type:"string"},channels:{$ref:"#/definitions/channels"},components:{$ref:"#/definitions/components"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"}};var definitions$3={Reference:{type:"object",required:["$ref"],properties:{$ref:{$ref:"#/definitions/ReferenceObject"}}},ReferenceObject:{type:"string",format:"uri"},info:{type:"object",description:"General information about the API.",required:["version","title"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{title:{type:"string",description:"A unique and precise title of the API."},version:{type:"string",description:"A semantic version number of the API."},description:{type:"string",description:"A longer description of the API. Should be different from the title. CommonMark is allowed."},termsOfService:{type:"string",description:"A URL to the Terms of Service for the API. MUST be in the format of a URL.",format:"uri"},contact:{$ref:"#/definitions/contact"},license:{$ref:"#/definitions/license"}}},contact:{type:"object",description:"Contact information for the owners of the API.",additionalProperties:false,properties:{name:{type:"string",description:"The identifying name of the contact person/organization."},url:{type:"string",description:"The URL pointing to the contact information.",format:"uri"},email:{type:"string",description:"The email address of the contact person/organization.",format:"email"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},license:{type:"object",required:["name"],additionalProperties:false,properties:{name:{type:"string",description:"The name of the license type. It's encouraged to use an OSI compatible license."},url:{type:"string",description:"The URL pointing to the license.",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},server:{type:"object",description:"An object representing a Server.",required:["url","protocol"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{url:{type:"string"},description:{type:"string"},protocol:{type:"string",description:"The transfer protocol."},protocolVersion:{type:"string"},variables:{$ref:"#/definitions/serverVariables"},baseChannel:{type:"string","x-format":"uri-path"},security:{type:"array",items:{$ref:"#/definitions/SecurityRequirement"}}}},serverVariables:{type:"object",additionalProperties:{$ref:"#/definitions/serverVariable"}},serverVariable:{type:"object",description:"An object representing a Server Variable for server URL template substitution.",minProperties:1,additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{"enum":{type:"array",items:{type:"string"},uniqueItems:true},"default":{type:"string"},description:{type:"string"},examples:{type:"array",items:{type:"string"}}}},channels:{type:"object",propertyNames:{type:"string",format:"uri-template",minLength:1},additionalProperties:{$ref:"#/definitions/channelItem"}},components:{type:"object",description:"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.",additionalProperties:false,properties:{schemas:{$ref:"#/definitions/schemas"},messages:{$ref:"#/definitions/messages"},securitySchemes:{type:"object",patternProperties:{"^[\\w\\d\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/SecurityScheme"}]}}},parameters:{$ref:"#/definitions/parameters"},correlationIds:{type:"object",patternProperties:{"^[\\w\\d\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]}}},traits:{$ref:"#/definitions/traits"}}},schemas:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},description:"JSON objects describing schemas the API uses."},messages:{type:"object",additionalProperties:{$ref:"#/definitions/message"},description:"JSON objects describing the messages being consumed and produced by the API."},parameters:{type:"object",additionalProperties:{$ref:"#/definitions/parameter"},description:"JSON objects describing re-usable channel parameters."},schema:{type:"object",description:"A deterministic version of a JSON Schema object.",patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{$ref:{$ref:"#/definitions/ReferenceObject"},format:{type:"string"},title:{$ref:"http://json-schema.org/draft-04/schema#/properties/title"},description:{$ref:"http://json-schema.org/draft-04/schema#/properties/description"},"default":{$ref:"http://json-schema.org/draft-04/schema#/properties/default"},multipleOf:{$ref:"http://json-schema.org/draft-04/schema#/properties/multipleOf"},maximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/maximum"},exclusiveMaximum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"},minimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/minimum"},exclusiveMinimum:{$ref:"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"},maxLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minLength:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},pattern:{$ref:"http://json-schema.org/draft-04/schema#/properties/pattern"},maxItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minItems:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},uniqueItems:{$ref:"http://json-schema.org/draft-04/schema#/properties/uniqueItems"},maxProperties:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveInteger"},minProperties:{$ref:"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"},required:{$ref:"http://json-schema.org/draft-04/schema#/definitions/stringArray"},"enum":{$ref:"http://json-schema.org/draft-04/schema#/properties/enum"},deprecated:{type:"boolean","default":false},additionalProperties:{anyOf:[{$ref:"#/definitions/schema"},{type:"boolean"}],"default":{}},type:{$ref:"http://json-schema.org/draft-04/schema#/properties/type"},items:{anyOf:[{$ref:"#/definitions/schema"},{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}}],"default":{}},allOf:{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}},oneOf:{type:"array",minItems:2,items:{$ref:"#/definitions/schema"}},anyOf:{type:"array",minItems:2,items:{$ref:"#/definitions/schema"}},not:{$ref:"#/definitions/schema"},properties:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},"default":{}},discriminator:{type:"string"},readOnly:{type:"boolean","default":false},xml:{$ref:"#/definitions/xml"},externalDocs:{$ref:"#/definitions/externalDocs"},example:{},examples:{type:"array",items:{}}},additionalProperties:false},xml:{type:"object",additionalProperties:false,properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean","default":false},wrapped:{type:"boolean","default":false}}},externalDocs:{type:"object",additionalProperties:false,description:"information about external documentation",required:["url"],properties:{description:{type:"string"},url:{type:"string",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},channelItem:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},minProperties:1,properties:{$ref:{$ref:"#/definitions/ReferenceObject"},parameters:{type:"array",uniqueItems:true,minItems:1,items:{$ref:"#/definitions/parameter"}},publish:{$ref:"#/definitions/operation"},subscribe:{$ref:"#/definitions/operation"},deprecated:{type:"boolean","default":false},protocolInfo:{type:"object",additionalProperties:{type:"object"}}}},parameter:{additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{description:{type:"string",description:"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."},name:{type:"string",description:"The name of the parameter."},schema:{$ref:"#/definitions/schema"},$ref:{$ref:"#/definitions/ReferenceObject"}}},operation:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{traits:{type:"array",items:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/operationTrait"},{type:"array",items:[{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/operationTrait"}]},{type:"object",additionalItems:true}]}]}},summary:{type:"string"},description:{type:"string"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"},operationId:{type:"string"},protocolInfo:{type:"object",additionalProperties:{type:"object"}},message:{oneOf:[{$ref:"#/definitions/message"},{type:"object",required:["oneOf"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{oneOf:{type:"array",minItems:2,items:{$ref:"#/definitions/message"}}}}]}}},message:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{schemaFormat:{type:"string"},contentType:{type:"string"},headers:{type:"object",additionalProperties:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/schema"}]}},payload:{},correlationId:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},name:{type:"string",description:"Name of the message."},title:{type:"string",description:"A human-friendly title for the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},examples:{type:"array",items:{type:"object"}},protocolInfo:{type:"object",additionalProperties:{type:"object"}},traits:{type:"array",items:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/messageTrait"},{type:"array",items:[{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/messageTrait"}]},{type:"object",additionalItems:true}]}]}}}},correlationId:{type:"object",required:["location"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{description:{type:"string",description:"A optional description of the correlation ID. GitHub Flavored Markdown is allowed."},location:{type:"string",description:"A runtime expression that specifies the location of the correlation ID",pattern:"^\\$message\\.(header|payload)#(/\\w+)+"}}},specificationExtension:{description:"Any property starting with x- is valid.",additionalProperties:true,additionalItems:true},tag:{type:"object",additionalProperties:false,required:["name"],properties:{name:{type:"string"},description:{type:"string"},externalDocs:{$ref:"#/definitions/externalDocs"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},traits:{type:"object",additionalProperties:{anyOf:[{$ref:"#/definitions/operationTrait"},{$ref:"#/definitions/messageTrait"}]}},operationTrait:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{summary:{type:"string"},description:{type:"string"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"},operationId:{type:"string"},protocolInfo:{type:"object",additionalProperties:{type:"object"}}}},messageTrait:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{schemaFormat:{type:"string"},contentType:{type:"string"},headers:{type:"object",additionalProperties:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/schema"}]}},correlationId:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},name:{type:"string",description:"Name of the message."},title:{type:"string",description:"A human-friendly title for the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},examples:{type:"array",items:{type:"object"}},protocolInfo:{type:"object",additionalProperties:{type:"object"}}}},SecurityScheme:{oneOf:[{$ref:"#/definitions/userPassword"},{$ref:"#/definitions/apiKey"},{$ref:"#/definitions/X509"},{$ref:"#/definitions/symmetricEncryption"},{$ref:"#/definitions/asymmetricEncryption"},{$ref:"#/definitions/HTTPSecurityScheme"},{$ref:"#/definitions/oauth2Flows"},{$ref:"#/definitions/openIdConnect"}]},userPassword:{type:"object",required:["type"],properties:{type:{type:"string","enum":["userPassword"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},apiKey:{type:"object",required:["type","in"],properties:{type:{type:"string","enum":["apiKey"]},"in":{type:"string","enum":["user","password"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},X509:{type:"object",required:["type"],properties:{type:{type:"string","enum":["X509"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},symmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["symmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},asymmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["asymmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},HTTPSecurityScheme:{oneOf:[{$ref:"#/definitions/NonBearerHTTPSecurityScheme"},{$ref:"#/definitions/BearerHTTPSecurityScheme"},{$ref:"#/definitions/APIKeyHTTPSecurityScheme"}]},NonBearerHTTPSecurityScheme:{not:{type:"object",properties:{scheme:{type:"string","enum":["bearer"]}}},type:"object",required:["scheme","type"],properties:{scheme:{type:"string"},description:{type:"string"},type:{type:"string","enum":["http"]}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},BearerHTTPSecurityScheme:{type:"object",required:["type","scheme"],properties:{scheme:{type:"string","enum":["bearer"]},bearerFormat:{type:"string"},type:{type:"string","enum":["http"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},APIKeyHTTPSecurityScheme:{type:"object",required:["type","name","in"],properties:{type:{type:"string","enum":["httpApiKey"]},name:{type:"string"},"in":{type:"string","enum":["header","query","cookie"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},oauth2Flows:{type:"object",required:["type","flows"],properties:{type:{type:"string","enum":["oauth2"]},description:{type:"string"},flows:{type:"object",properties:{implicit:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["authorizationUrl","scopes"]},{not:{required:["tokenUrl"]}}]},password:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["tokenUrl","scopes"]},{not:{required:["authorizationUrl"]}}]},clientCredentials:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["tokenUrl","scopes"]},{not:{required:["authorizationUrl"]}}]},authorizationCode:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["authorizationUrl","tokenUrl","scopes"]}]}},additionalProperties:false,minProperties:1}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},oauth2Flow:{type:"object",properties:{authorizationUrl:{type:"string",format:"uri"},tokenUrl:{type:"string",format:"uri"},refreshUrl:{type:"string",format:"uri"},scopes:{$ref:"#/definitions/oauth2Scopes"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},oauth2Scopes:{type:"object",additionalProperties:{type:"string"}},openIdConnect:{type:"object",required:["type","openIdConnectUrl"],properties:{type:{type:"string","enum":["openIdConnect"]},description:{type:"string"},openIdConnectUrl:{type:"string",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},SecurityRequirement:{type:"object",additionalProperties:{type:"array",items:{type:"string"},uniqueItems:true}}};var require$$3$1={title:title$2,$schema:$schema$3,type:type$5,required:required$2,additionalProperties:additionalProperties$2,patternProperties:patternProperties$2,properties:properties$3,definitions:definitions$3};var title$1="AsyncAPI 2.0.0-rc2 schema.";var $schema$2="http://json-schema.org/draft-07/schema#";var type$4="object";var required$1=["asyncapi","info","channels"];var additionalProperties$1=false;var patternProperties$1={"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}};var properties$2={asyncapi:{type:"string","enum":["2.0.0-rc2"],description:"The AsyncAPI specification version of this document."},id:{type:"string",description:"A unique id representing the application.",format:"uri"},info:{$ref:"#/definitions/info"},servers:{type:"object",additionalProperties:{$ref:"#/definitions/server"}},defaultContentType:{type:"string"},channels:{$ref:"#/definitions/channels"},components:{$ref:"#/definitions/components"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"}};var definitions$2={Reference:{type:"object",required:["$ref"],properties:{$ref:{$ref:"#/definitions/ReferenceObject"}}},ReferenceObject:{type:"string",format:"uri-reference"},info:{type:"object",description:"General information about the API.",required:["version","title"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{title:{type:"string",description:"A unique and precise title of the API."},version:{type:"string",description:"A semantic version number of the API."},description:{type:"string",description:"A longer description of the API. Should be different from the title. CommonMark is allowed."},termsOfService:{type:"string",description:"A URL to the Terms of Service for the API. MUST be in the format of a URL.",format:"uri"},contact:{$ref:"#/definitions/contact"},license:{$ref:"#/definitions/license"}}},contact:{type:"object",description:"Contact information for the owners of the API.",additionalProperties:false,properties:{name:{type:"string",description:"The identifying name of the contact person/organization."},url:{type:"string",description:"The URL pointing to the contact information.",format:"uri"},email:{type:"string",description:"The email address of the contact person/organization.",format:"email"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},license:{type:"object",required:["name"],additionalProperties:false,properties:{name:{type:"string",description:"The name of the license type. It's encouraged to use an OSI compatible license."},url:{type:"string",description:"The URL pointing to the license.",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},server:{type:"object",description:"An object representing a Server.",required:["url","protocol"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{url:{type:"string"},description:{type:"string"},protocol:{type:"string",description:"The transfer protocol."},protocolVersion:{type:"string"},variables:{$ref:"#/definitions/serverVariables"},security:{type:"array",items:{$ref:"#/definitions/SecurityRequirement"}},bindings:{$ref:"#/definitions/bindingsObject"}}},serverVariables:{type:"object",additionalProperties:{$ref:"#/definitions/serverVariable"}},serverVariable:{type:"object",description:"An object representing a Server Variable for server URL template substitution.",minProperties:1,additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{"enum":{type:"array",items:{type:"string"},uniqueItems:true},"default":{type:"string"},description:{type:"string"},examples:{type:"array",items:{type:"string"}}}},channels:{type:"object",propertyNames:{type:"string",format:"uri-template",minLength:1},additionalProperties:{$ref:"#/definitions/channelItem"}},components:{type:"object",description:"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.",additionalProperties:false,properties:{schemas:{$ref:"#/definitions/schemas"},messages:{$ref:"#/definitions/messages"},securitySchemes:{type:"object",patternProperties:{"^[\\w\\d\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/SecurityScheme"}]}}},parameters:{$ref:"#/definitions/parameters"},correlationIds:{type:"object",patternProperties:{"^[\\w\\d\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]}}},operationTraits:{type:"object",additionalProperties:{$ref:"#/definitions/operationTrait"}},messageTraits:{type:"object",additionalProperties:{$ref:"#/definitions/messageTrait"}},serverBindings:{type:"object",additionalProperties:{$ref:"#/definitions/bindingsObject"}},channelBindings:{type:"object",additionalProperties:{$ref:"#/definitions/bindingsObject"}},operationBindings:{type:"object",additionalProperties:{$ref:"#/definitions/bindingsObject"}},messageBindings:{type:"object",additionalProperties:{$ref:"#/definitions/bindingsObject"}}}},schemas:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},description:"JSON objects describing schemas the API uses."},messages:{type:"object",additionalProperties:{$ref:"#/definitions/message"},description:"JSON objects describing the messages being consumed and produced by the API."},parameters:{type:"object",additionalProperties:{$ref:"#/definitions/parameter"},description:"JSON objects describing re-usable channel parameters."},schema:{allOf:[{$ref:"http://json-schema.org/draft-07/schema#"},{type:"object",patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{additionalProperties:{$ref:"#/definitions/schema"},items:{anyOf:[{$ref:"#/definitions/schema"},{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}}],"default":{}},allOf:{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}},oneOf:{type:"array",minItems:2,items:{$ref:"#/definitions/schema"}},anyOf:{type:"array",minItems:2,items:{$ref:"#/definitions/schema"}},not:{$ref:"#/definitions/schema"},properties:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},"default":{}},patternProperties:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},"default":{}},propertyNames:{$ref:"#/definitions/schema"},contains:{$ref:"#/definitions/schema"},discriminator:{type:"string"},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false}}}]},externalDocs:{type:"object",additionalProperties:false,description:"information about external documentation",required:["url"],properties:{description:{type:"string"},url:{type:"string",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},channelItem:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},minProperties:1,properties:{$ref:{$ref:"#/definitions/ReferenceObject"},parameters:{type:"object",additionalProperties:{$ref:"#/definitions/parameter"}},description:{type:"string",description:"A description of the channel."},publish:{$ref:"#/definitions/operation"},subscribe:{$ref:"#/definitions/operation"},deprecated:{type:"boolean","default":false},bindings:{$ref:"#/definitions/bindingsObject"}}},parameter:{additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{description:{type:"string",description:"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."},schema:{$ref:"#/definitions/schema"},location:{type:"string",description:"A runtime expression that specifies the location of the parameter value",pattern:"^\\$message\\.(header|payload)\\#(\\/(([^\\/~])|(~[01]))*)*"},$ref:{$ref:"#/definitions/ReferenceObject"}}},operation:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{traits:{type:"array",items:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/operationTrait"},{type:"array",items:[{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/operationTrait"}]},{type:"object",additionalItems:true}]}]}},summary:{type:"string"},description:{type:"string"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"},operationId:{type:"string"},bindings:{$ref:"#/definitions/bindingsObject"},message:{$ref:"#/definitions/message"}}},message:{oneOf:[{$ref:"#/definitions/Reference"},{oneOf:[{type:"object",required:["oneOf"],additionalProperties:false,properties:{oneOf:{type:"array",items:{$ref:"#/definitions/message"}}}},{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{schemaFormat:{type:"string"},contentType:{type:"string"},headers:{$ref:"#/definitions/schema"},payload:{},correlationId:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},name:{type:"string",description:"Name of the message."},title:{type:"string",description:"A human-friendly title for the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},examples:{type:"array",items:{type:"object"}},bindings:{$ref:"#/definitions/bindingsObject"},traits:{type:"array",items:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/messageTrait"},{type:"array",items:[{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/messageTrait"}]},{type:"object",additionalItems:true}]}]}}}}]}]},bindingsObject:{type:"object",additionalProperties:true,properties:{http:{},ws:{},amqp:{},amqp1:{},mqtt:{},mqtt5:{},kafka:{},nats:{},jms:{},sns:{},sqs:{},stomp:{},redis:{}}},correlationId:{type:"object",required:["location"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{description:{type:"string",description:"A optional description of the correlation ID. GitHub Flavored Markdown is allowed."},location:{type:"string",description:"A runtime expression that specifies the location of the correlation ID",pattern:"^\\$message\\.(header|payload)\\#(\\/(([^\\/~])|(~[01]))*)*"}}},specificationExtension:{description:"Any property starting with x- is valid.",additionalProperties:true,additionalItems:true},tag:{type:"object",additionalProperties:false,required:["name"],properties:{name:{type:"string"},description:{type:"string"},externalDocs:{$ref:"#/definitions/externalDocs"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},operationTrait:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{summary:{type:"string"},description:{type:"string"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"},operationId:{type:"string"},bindings:{$ref:"#/definitions/bindingsObject"}}},messageTrait:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{schemaFormat:{type:"string"},contentType:{type:"string"},headers:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/schema"}]},correlationId:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},name:{type:"string",description:"Name of the message."},title:{type:"string",description:"A human-friendly title for the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},examples:{type:"array",items:{type:"object"}},bindings:{$ref:"#/definitions/bindingsObject"}}},SecurityScheme:{oneOf:[{$ref:"#/definitions/userPassword"},{$ref:"#/definitions/apiKey"},{$ref:"#/definitions/X509"},{$ref:"#/definitions/symmetricEncryption"},{$ref:"#/definitions/asymmetricEncryption"},{$ref:"#/definitions/HTTPSecurityScheme"},{$ref:"#/definitions/oauth2Flows"},{$ref:"#/definitions/openIdConnect"}]},userPassword:{type:"object",required:["type"],properties:{type:{type:"string","enum":["userPassword"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},apiKey:{type:"object",required:["type","in"],properties:{type:{type:"string","enum":["apiKey"]},"in":{type:"string","enum":["user","password"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},X509:{type:"object",required:["type"],properties:{type:{type:"string","enum":["X509"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},symmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["symmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},asymmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["asymmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},HTTPSecurityScheme:{oneOf:[{$ref:"#/definitions/NonBearerHTTPSecurityScheme"},{$ref:"#/definitions/BearerHTTPSecurityScheme"},{$ref:"#/definitions/APIKeyHTTPSecurityScheme"}]},NonBearerHTTPSecurityScheme:{not:{type:"object",properties:{scheme:{type:"string","enum":["bearer"]}}},type:"object",required:["scheme","type"],properties:{scheme:{type:"string"},description:{type:"string"},type:{type:"string","enum":["http"]}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},BearerHTTPSecurityScheme:{type:"object",required:["type","scheme"],properties:{scheme:{type:"string","enum":["bearer"]},bearerFormat:{type:"string"},type:{type:"string","enum":["http"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},APIKeyHTTPSecurityScheme:{type:"object",required:["type","name","in"],properties:{type:{type:"string","enum":["httpApiKey"]},name:{type:"string"},"in":{type:"string","enum":["header","query","cookie"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},oauth2Flows:{type:"object",required:["type","flows"],properties:{type:{type:"string","enum":["oauth2"]},description:{type:"string"},flows:{type:"object",properties:{implicit:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["authorizationUrl","scopes"]},{not:{required:["tokenUrl"]}}]},password:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["tokenUrl","scopes"]},{not:{required:["authorizationUrl"]}}]},clientCredentials:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["tokenUrl","scopes"]},{not:{required:["authorizationUrl"]}}]},authorizationCode:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["authorizationUrl","tokenUrl","scopes"]}]}},additionalProperties:false,minProperties:1}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},oauth2Flow:{type:"object",properties:{authorizationUrl:{type:"string",format:"uri"},tokenUrl:{type:"string",format:"uri"},refreshUrl:{type:"string",format:"uri"},scopes:{$ref:"#/definitions/oauth2Scopes"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},oauth2Scopes:{type:"object",additionalProperties:{type:"string"}},openIdConnect:{type:"object",required:["type","openIdConnectUrl"],properties:{type:{type:"string","enum":["openIdConnect"]},description:{type:"string"},openIdConnectUrl:{type:"string",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},SecurityRequirement:{type:"object",additionalProperties:{type:"array",items:{type:"string"},uniqueItems:true}}};var require$$4={title:title$1,$schema:$schema$2,type:type$4,required:required$1,additionalProperties:additionalProperties$1,patternProperties:patternProperties$1,properties:properties$2,definitions:definitions$2};var title="AsyncAPI 2.0.0 schema.";var $schema$1="http://json-schema.org/draft-07/schema#";var type$3="object";var required=["asyncapi","info","channels"];var additionalProperties=false;var patternProperties={"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}};var properties$1={asyncapi:{type:"string","enum":["2.0.0"],description:"The AsyncAPI specification version of this document."},id:{type:"string",description:"A unique id representing the application.",format:"uri"},info:{$ref:"#/definitions/info"},servers:{type:"object",additionalProperties:{$ref:"#/definitions/server"}},defaultContentType:{type:"string"},channels:{$ref:"#/definitions/channels"},components:{$ref:"#/definitions/components"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"}};var definitions$1={Reference:{type:"object",required:["$ref"],properties:{$ref:{$ref:"#/definitions/ReferenceObject"}}},ReferenceObject:{type:"string",format:"uri-reference"},info:{type:"object",description:"General information about the API.",required:["version","title"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{title:{type:"string",description:"A unique and precise title of the API."},version:{type:"string",description:"A semantic version number of the API."},description:{type:"string",description:"A longer description of the API. Should be different from the title. CommonMark is allowed."},termsOfService:{type:"string",description:"A URL to the Terms of Service for the API. MUST be in the format of a URL.",format:"uri"},contact:{$ref:"#/definitions/contact"},license:{$ref:"#/definitions/license"}}},contact:{type:"object",description:"Contact information for the owners of the API.",additionalProperties:false,properties:{name:{type:"string",description:"The identifying name of the contact person/organization."},url:{type:"string",description:"The URL pointing to the contact information.",format:"uri"},email:{type:"string",description:"The email address of the contact person/organization.",format:"email"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},license:{type:"object",required:["name"],additionalProperties:false,properties:{name:{type:"string",description:"The name of the license type. It's encouraged to use an OSI compatible license."},url:{type:"string",description:"The URL pointing to the license.",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},server:{type:"object",description:"An object representing a Server.",required:["url","protocol"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{url:{type:"string"},description:{type:"string"},protocol:{type:"string",description:"The transfer protocol."},protocolVersion:{type:"string"},variables:{$ref:"#/definitions/serverVariables"},security:{type:"array",items:{$ref:"#/definitions/SecurityRequirement"}},bindings:{$ref:"#/definitions/bindingsObject"}}},serverVariables:{type:"object",additionalProperties:{$ref:"#/definitions/serverVariable"}},serverVariable:{type:"object",description:"An object representing a Server Variable for server URL template substitution.",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{"enum":{type:"array",items:{type:"string"},uniqueItems:true},"default":{type:"string"},description:{type:"string"},examples:{type:"array",items:{type:"string"}}}},channels:{type:"object",propertyNames:{type:"string",format:"uri-template",minLength:1},additionalProperties:{$ref:"#/definitions/channelItem"}},components:{type:"object",description:"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.",additionalProperties:false,properties:{schemas:{$ref:"#/definitions/schemas"},messages:{$ref:"#/definitions/messages"},securitySchemes:{type:"object",patternProperties:{"^[\\w\\d\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/SecurityScheme"}]}}},parameters:{$ref:"#/definitions/parameters"},correlationIds:{type:"object",patternProperties:{"^[\\w\\d\\.\\-_]+$":{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]}}},operationTraits:{type:"object",additionalProperties:{$ref:"#/definitions/operationTrait"}},messageTraits:{type:"object",additionalProperties:{$ref:"#/definitions/messageTrait"}},serverBindings:{type:"object",additionalProperties:{$ref:"#/definitions/bindingsObject"}},channelBindings:{type:"object",additionalProperties:{$ref:"#/definitions/bindingsObject"}},operationBindings:{type:"object",additionalProperties:{$ref:"#/definitions/bindingsObject"}},messageBindings:{type:"object",additionalProperties:{$ref:"#/definitions/bindingsObject"}}}},schemas:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},description:"JSON objects describing schemas the API uses."},messages:{type:"object",additionalProperties:{$ref:"#/definitions/message"},description:"JSON objects describing the messages being consumed and produced by the API."},parameters:{type:"object",additionalProperties:{$ref:"#/definitions/parameter"},description:"JSON objects describing re-usable channel parameters."},schema:{allOf:[{$ref:"http://json-schema.org/draft-07/schema#"},{type:"object",patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{additionalProperties:{anyOf:[{$ref:"#/definitions/schema"},{type:"boolean"}],"default":{}},items:{anyOf:[{$ref:"#/definitions/schema"},{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}}],"default":{}},allOf:{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}},oneOf:{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}},anyOf:{type:"array",minItems:1,items:{$ref:"#/definitions/schema"}},not:{$ref:"#/definitions/schema"},properties:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},"default":{}},patternProperties:{type:"object",additionalProperties:{$ref:"#/definitions/schema"},"default":{}},propertyNames:{$ref:"#/definitions/schema"},contains:{$ref:"#/definitions/schema"},discriminator:{type:"string"},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false}}}]},externalDocs:{type:"object",additionalProperties:false,description:"information about external documentation",required:["url"],properties:{description:{type:"string"},url:{type:"string",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},channelItem:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{$ref:{$ref:"#/definitions/ReferenceObject"},parameters:{type:"object",additionalProperties:{$ref:"#/definitions/parameter"}},description:{type:"string",description:"A description of the channel."},publish:{$ref:"#/definitions/operation"},subscribe:{$ref:"#/definitions/operation"},deprecated:{type:"boolean","default":false},bindings:{$ref:"#/definitions/bindingsObject"}}},parameter:{additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{description:{type:"string",description:"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."},schema:{$ref:"#/definitions/schema"},location:{type:"string",description:"A runtime expression that specifies the location of the parameter value",pattern:"^\\$message\\.(header|payload)\\#(\\/(([^\\/~])|(~[01]))*)*"},$ref:{$ref:"#/definitions/ReferenceObject"}}},operation:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{traits:{type:"array",items:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/operationTrait"},{type:"array",items:[{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/operationTrait"}]},{type:"object",additionalItems:true}]}]}},summary:{type:"string"},description:{type:"string"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"},operationId:{type:"string"},bindings:{$ref:"#/definitions/bindingsObject"},message:{$ref:"#/definitions/message"}}},message:{oneOf:[{$ref:"#/definitions/Reference"},{oneOf:[{type:"object",required:["oneOf"],additionalProperties:false,properties:{oneOf:{type:"array",items:{$ref:"#/definitions/message"}}}},{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{schemaFormat:{type:"string"},contentType:{type:"string"},headers:{allOf:[{$ref:"#/definitions/schema"},{properties:{type:{"const":"object"}}}]},payload:{},correlationId:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},name:{type:"string",description:"Name of the message."},title:{type:"string",description:"A human-friendly title for the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},examples:{type:"array",items:{type:"object",additionalProperties:false,properties:{headers:{type:"object"},payload:{}}}},bindings:{$ref:"#/definitions/bindingsObject"},traits:{type:"array",items:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/messageTrait"},{type:"array",items:[{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/messageTrait"}]},{type:"object",additionalItems:true}]}]}}}}]}]},bindingsObject:{type:"object",additionalProperties:true,properties:{http:{},ws:{},amqp:{},amqp1:{},mqtt:{},mqtt5:{},kafka:{},nats:{},jms:{},sns:{},sqs:{},stomp:{},redis:{}}},correlationId:{type:"object",required:["location"],additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{description:{type:"string",description:"A optional description of the correlation ID. GitHub Flavored Markdown is allowed."},location:{type:"string",description:"A runtime expression that specifies the location of the correlation ID",pattern:"^\\$message\\.(header|payload)\\#(\\/(([^\\/~])|(~[01]))*)*"}}},specificationExtension:{description:"Any property starting with x- is valid.",additionalProperties:true,additionalItems:true},tag:{type:"object",additionalProperties:false,required:["name"],properties:{name:{type:"string"},description:{type:"string"},externalDocs:{$ref:"#/definitions/externalDocs"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},operationTrait:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{summary:{type:"string"},description:{type:"string"},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},externalDocs:{$ref:"#/definitions/externalDocs"},operationId:{type:"string"},bindings:{$ref:"#/definitions/bindingsObject"}}},messageTrait:{type:"object",additionalProperties:false,patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},properties:{schemaFormat:{type:"string"},contentType:{type:"string"},headers:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/schema"}]},correlationId:{oneOf:[{$ref:"#/definitions/Reference"},{$ref:"#/definitions/correlationId"}]},tags:{type:"array",items:{$ref:"#/definitions/tag"},uniqueItems:true},summary:{type:"string",description:"A brief summary of the message."},name:{type:"string",description:"Name of the message."},title:{type:"string",description:"A human-friendly title for the message."},description:{type:"string",description:"A longer description of the message. CommonMark is allowed."},externalDocs:{$ref:"#/definitions/externalDocs"},deprecated:{type:"boolean","default":false},examples:{type:"array",items:{type:"object"}},bindings:{$ref:"#/definitions/bindingsObject"}}},SecurityScheme:{oneOf:[{$ref:"#/definitions/userPassword"},{$ref:"#/definitions/apiKey"},{$ref:"#/definitions/X509"},{$ref:"#/definitions/symmetricEncryption"},{$ref:"#/definitions/asymmetricEncryption"},{$ref:"#/definitions/HTTPSecurityScheme"},{$ref:"#/definitions/oauth2Flows"},{$ref:"#/definitions/openIdConnect"}]},userPassword:{type:"object",required:["type"],properties:{type:{type:"string","enum":["userPassword"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},apiKey:{type:"object",required:["type","in"],properties:{type:{type:"string","enum":["apiKey"]},"in":{type:"string","enum":["user","password"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},X509:{type:"object",required:["type"],properties:{type:{type:"string","enum":["X509"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},symmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["symmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},asymmetricEncryption:{type:"object",required:["type"],properties:{type:{type:"string","enum":["asymmetricEncryption"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},HTTPSecurityScheme:{oneOf:[{$ref:"#/definitions/NonBearerHTTPSecurityScheme"},{$ref:"#/definitions/BearerHTTPSecurityScheme"},{$ref:"#/definitions/APIKeyHTTPSecurityScheme"}]},NonBearerHTTPSecurityScheme:{not:{type:"object",properties:{scheme:{type:"string","enum":["bearer"]}}},type:"object",required:["scheme","type"],properties:{scheme:{type:"string"},description:{type:"string"},type:{type:"string","enum":["http"]}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},BearerHTTPSecurityScheme:{type:"object",required:["type","scheme"],properties:{scheme:{type:"string","enum":["bearer"]},bearerFormat:{type:"string"},type:{type:"string","enum":["http"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},APIKeyHTTPSecurityScheme:{type:"object",required:["type","name","in"],properties:{type:{type:"string","enum":["httpApiKey"]},name:{type:"string"},"in":{type:"string","enum":["header","query","cookie"]},description:{type:"string"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},oauth2Flows:{type:"object",required:["type","flows"],properties:{type:{type:"string","enum":["oauth2"]},description:{type:"string"},flows:{type:"object",properties:{implicit:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["authorizationUrl","scopes"]},{not:{required:["tokenUrl"]}}]},password:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["tokenUrl","scopes"]},{not:{required:["authorizationUrl"]}}]},clientCredentials:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["tokenUrl","scopes"]},{not:{required:["authorizationUrl"]}}]},authorizationCode:{allOf:[{$ref:"#/definitions/oauth2Flow"},{required:["authorizationUrl","tokenUrl","scopes"]}]}},additionalProperties:false}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}}},oauth2Flow:{type:"object",properties:{authorizationUrl:{type:"string",format:"uri"},tokenUrl:{type:"string",format:"uri"},refreshUrl:{type:"string",format:"uri"},scopes:{$ref:"#/definitions/oauth2Scopes"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},oauth2Scopes:{type:"object",additionalProperties:{type:"string"}},openIdConnect:{type:"object",required:["type","openIdConnectUrl"],properties:{type:{type:"string","enum":["openIdConnect"]},description:{type:"string"},openIdConnectUrl:{type:"string",format:"uri"}},patternProperties:{"^x-[\\w\\d\\.\\-\\_]+$":{$ref:"#/definitions/specificationExtension"}},additionalProperties:false},SecurityRequirement:{type:"object",additionalProperties:{type:"array",items:{type:"string"},uniqueItems:true}}};var require$$5={title:title,$schema:$schema$1,type:type$3,required:required,additionalProperties:additionalProperties,patternProperties:patternProperties,properties:properties$1,definitions:definitions$1};var specs={'1.0.0':require$$0$3,'1.1.0':require$$1$1,'1.2.0':require$$2,'2.0.0-rc1':require$$3$1,'2.0.0-rc2':require$$4,'2.0.0':require$$5};const nonJsonTypes=["function","symbol","undefined"];const protectedProps$1=["constructor","prototype","__proto__"];const objectPrototype=Object.getPrototypeOf({});/** - * Custom JSON serializer for Error objects. - * Returns all built-in error properties, as well as extended properties. - */function toJSON(){// HACK: We have to cast the objects to `any` so we can use symbol indexers. -// see https://github.com/Microsoft/TypeScript/issues/1863 -let pojo={};let error=this;for(let key of getDeepKeys(error)){if(typeof key==="string"){let value=error[key];let type=typeof value;if(!nonJsonTypes.includes(type)){pojo[key]=value;}}}return pojo;}/** - * Returns own, inherited, enumerable, non-enumerable, string, and symbol keys of `obj`. - * Does NOT return members of the base Object prototype, or the specified omitted keys. - */function getDeepKeys(obj,omit=[]){let keys=[];// Crawl the prototype chain, finding all the string and symbol keys -while(obj&&obj!==objectPrototype){keys=keys.concat(Object.getOwnPropertyNames(obj),Object.getOwnPropertySymbols(obj));obj=Object.getPrototypeOf(obj);}// De-duplicate the list of keys -let uniqueKeys=new Set(keys);// Remove any omitted keys -for(let key of omit.concat(protectedProps$1)){uniqueKeys.delete(key);}return uniqueKeys;}// The `inspect()` method is actually a Symbol, not a string key. -// https://nodejs.org/api/util.html#util_util_inspect_custom -const inspectMethod=inspect$1.custom||Symbol.for("nodejs.util.inspect.custom");/** - * Ono supports Node's `util.format()` formatting for error messages. - * - * @see https://nodejs.org/api/util.html#util_util_format_format_args - */const format=format$2;/** - * Adds an `inspect()` method to support Node's `util.inspect()` function. - * - * @see https://nodejs.org/api/util.html#util_util_inspect_custom - */function addInspectMethod(newError){// @ts-expect-error - TypeScript doesn't support symbol indexers -newError[inspectMethod]=inspect;}/** - * Returns a representation of the error for Node's `util.inspect()` method. - * - * @see https://nodejs.org/api/util.html#util_custom_inspection_functions_on_objects - */function inspect(){// HACK: We have to cast the objects to `any` so we can use symbol indexers. -// see https://github.com/Microsoft/TypeScript/issues/1863 -let pojo={};let error=this;for(let key of getDeepKeys(error)){let value=error[key];pojo[key]=value;}// Don't include the `inspect()` method on the output object, -// otherwise it will cause `util.inspect()` to go into an infinite loop -// eslint-disable-next-line @typescript-eslint/no-dynamic-delete -delete pojo[inspectMethod];return pojo;}const newline=/\r?\n/;const onoCall=/\bono[ @]/;/** - * Is the property lazily computed? - */function isLazyStack(stackProp){return Boolean(stackProp&&stackProp.configurable&&typeof stackProp.get==="function");}/** - * Is the stack property writable? - */function isWritableStack(stackProp){return Boolean(// If there is no stack property, then it's writable, since assigning it will create it -!stackProp||stackProp.writable||typeof stackProp.set==="function");}/** - * Appends the original `Error.stack` property to the new Error's stack. - */function joinStacks(newError,originalError){let newStack=popStack(newError.stack);let originalStack=originalError?originalError.stack:undefined;if(newStack&&originalStack){return newStack+"\n\n"+originalStack;}else {return newStack||originalStack;}}/** - * Calls `joinStacks` lazily, when the `Error.stack` property is accessed. - */function lazyJoinStacks(lazyStack,newError,originalError){if(originalError){Object.defineProperty(newError,"stack",{get:()=>{let newStack=lazyStack.get.apply(newError);return joinStacks({stack:newStack},originalError);},enumerable:false,configurable:true});}else {lazyPopStack(newError,lazyStack);}}/** - * Removes Ono from the stack, so that the stack starts at the original error location - */function popStack(stack){if(stack){let lines=stack.split(newline);// Find the Ono call(s) in the stack, and remove them -let onoStart;for(let i=0;i0){return lines.join("\n");}}// If we get here, then the stack doesn't contain a call to `ono`. -// This may be due to minification or some optimization of the JS engine. -// So just return the stack as-is. -return stack;}/** - * Calls `popStack` lazily, when the `Error.stack` property is accessed. - */function lazyPopStack(error,lazyStack){Object.defineProperty(error,"stack",{get:()=>popStack(lazyStack.get.apply(error)),enumerable:false,configurable:true});}const protectedProps=["name","message","stack"];/** - * Extends the new error with the properties of the original error and the `props` object. - * - * @param newError - The error object to extend - * @param originalError - The original error object, if any - * @param props - Additional properties to add, if any - */function extendError(error,originalError,props){let onoError=error;extendStack(onoError,originalError);// Copy properties from the original error -if(originalError&&typeof originalError==="object"){mergeErrors(onoError,originalError);}// The default `toJSON` method doesn't output props like `name`, `message`, `stack`, etc. -// So replace it with one that outputs every property of the error. -onoError.toJSON=toJSON;// On Node.js, add support for the `util.inspect()` method -// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -if(addInspectMethod){addInspectMethod(onoError);}// Finally, copy custom properties that were specified by the user. -// These props OVERWRITE any previous props -if(props&&typeof props==="object"){Object.assign(onoError,props);}return onoError;}/** - * Extend the error stack to include its cause - */function extendStack(newError,originalError){let stackProp=Object.getOwnPropertyDescriptor(newError,"stack");if(isLazyStack(stackProp)){lazyJoinStacks(stackProp,newError,originalError);}else if(isWritableStack(stackProp)){newError.stack=joinStacks(newError,originalError);}}/** - * Merges properties of the original error with the new error. - * - * @param newError - The error object to extend - * @param originalError - The original error object, if any - */function mergeErrors(newError,originalError){// Get the original error's keys -// NOTE: We specifically exclude properties that we have already set on the new error. -// This is _especially_ important for the `stack` property, because this property has -// a lazy getter in some environments -let keys=getDeepKeys(originalError,protectedProps);// HACK: We have to cast the errors to `any` so we can use symbol indexers. -// see https://github.com/Microsoft/TypeScript/issues/1863 -let _newError=newError;let _originalError=originalError;for(let key of keys){if(_newError[key]===undefined){try{_newError[key]=_originalError[key];}catch(e){// This property is read-only, so it can't be copied -}}}}/** - * Normalizes Ono options, accounting for defaults and optional options. - */function normalizeOptions(options){options=options||{};return {concatMessages:options.concatMessages===undefined?true:Boolean(options.concatMessages),format:options.format===undefined?format:typeof options.format==="function"?options.format:false};}/** - * Normalizes the Ono arguments, accounting for defaults, options, and optional arguments. - */function normalizeArgs$1(args,options){let originalError;let props;let formatArgs;let message="";// Determine which arguments were actually specified -if(typeof args[0]==="string"){formatArgs=args;}else if(typeof args[1]==="string"){if(args[0]instanceof Error){originalError=args[0];}else {props=args[0];}formatArgs=args.slice(1);}else {originalError=args[0];props=args[1];formatArgs=args.slice(2);}// If there are any format arguments, then format the error message -if(formatArgs.length>0){if(options.format){message=options.format.apply(undefined,formatArgs);}else {message=formatArgs.join(" ");}}if(options.concatMessages&&originalError&&originalError.message){// The inner-error's message will be added to the new message -message+=(message?" \n":"")+originalError.message;}return {originalError,props,message};}const constructor=Ono;/** - * Creates an `Ono` instance for a specifc error type. - */ // eslint-disable-next-line @typescript-eslint/naming-convention -function Ono(ErrorConstructor,options){options=normalizeOptions(options);function ono(...args){let{originalError,props,message}=normalizeArgs$1(args,options);// Create a new error of the specified type -let newError=new ErrorConstructor(message);// Extend the error with the properties of the original error and the `props` object -return extendError(newError,originalError,props);}ono[Symbol.species]=ErrorConstructor;return ono;}/** - * Returns an object containing all properties of the given Error object, - * which can be used with `JSON.stringify()`. - */Ono.toJSON=function toJSON$1(error){return toJSON.call(error);};/** - * Extends the given Error object with enhanced Ono functionality, such as nested stack traces, - * additional properties, and improved support for `JSON.stringify()`. - */Ono.extend=function extend(error,originalError,props){if(props||originalError instanceof Error){return extendError(error,originalError,props);}else if(originalError){return extendError(error,undefined,originalError);}else {return extendError(error);}};const singleton=ono$6;ono$6.error=new constructor(Error);ono$6.eval=new constructor(EvalError);ono$6.range=new constructor(RangeError);ono$6.reference=new constructor(ReferenceError);ono$6.syntax=new constructor(SyntaxError);ono$6.type=new constructor(TypeError);ono$6.uri=new constructor(URIError);const onoMap=ono$6;/** - * Creates a new error with the specified message, properties, and/or inner error. - * If an inner error is provided, then the new error will match its type, if possible. - */function ono$6(...args){let originalError=args[0];// Is the first argument an Error-like object? -if(typeof originalError==="object"&&typeof originalError.name==="string"){// Try to find an Ono singleton method that matches this error type -for(let typedOno of Object.values(onoMap)){if(typeof typedOno==="function"&&typedOno.name==="ono"){let species=typedOno[Symbol.species];if(species&&species!==Error&&(originalError instanceof species||originalError.name===species.name)){// Create an error of the same type -return typedOno.apply(undefined,args);}}}}// By default, create a base Error object -return ono$6.error.apply(undefined,args);}/* eslint-env commonjs */ // CommonJS default export hack -if(typeof module==="object"&&typeof module.exports==="object"){module.exports=Object.assign(module.exports.default,module.exports);}var esm$1=/*#__PURE__*/Object.freeze({__proto__:null,ono:singleton,'default':singleton,Ono:constructor});var require$$0$2=/*@__PURE__*/getAugmentedNamespace(url);var url_1=createCommonjsModule(function(module,exports){let isWindows=/^win/.test(browser$1.platform),forwardSlashPattern=/\//g,protocolPattern=/^(\w{2,}):\/\//i,url=module.exports,jsonPointerSlash=/~1/g,jsonPointerTilde=/~0/g;// RegExp patterns to URL-encode special characters in local filesystem paths -let urlEncodePatterns=[/\?/g,"%3F",/\#/g,"%23"];// RegExp patterns to URL-decode special characters for local filesystem paths -let urlDecodePatterns=[/\%23/g,"#",/\%24/g,"$",/\%26/g,"&",/\%2C/g,",",/\%40/g,"@"];exports.parse=require$$0$2.parse;exports.resolve=require$$0$2.resolve;/** - * Returns the current working directory (in Node) or the current page URL (in browsers). - * - * @returns {string} - */exports.cwd=function cwd(){if(browser$1.browser){return location.href;}let path=browser$1.cwd();let lastChar=path.slice(-1);if(lastChar==="/"||lastChar==="\\"){return path;}else {return path+"/";}};/** - * Returns the protocol of the given URL, or `undefined` if it has no protocol. - * - * @param {string} path - * @returns {?string} - */exports.getProtocol=function getProtocol(path){let match=protocolPattern.exec(path);if(match){return match[1].toLowerCase();}};/** - * Returns the lowercased file extension of the given URL, - * or an empty string if it has no extension. - * - * @param {string} path - * @returns {string} - */exports.getExtension=function getExtension(path){let lastDot=path.lastIndexOf(".");if(lastDot>=0){return path.substr(lastDot).toLowerCase();}return "";};/** - * Returns the hash (URL fragment), of the given path. - * If there is no hash, then the root hash ("#") is returned. - * - * @param {string} path - * @returns {string} - */exports.getHash=function getHash(path){let hashIndex=path.indexOf("#");if(hashIndex>=0){return path.substr(hashIndex);}return "#";};/** - * Removes the hash (URL fragment), if any, from the given path. - * - * @param {string} path - * @returns {string} - */exports.stripHash=function stripHash(path){let hashIndex=path.indexOf("#");if(hashIndex>=0){path=path.substr(0,hashIndex);}return path;};/** - * Determines whether the given path is an HTTP(S) URL. - * - * @param {string} path - * @returns {boolean} - */exports.isHttp=function isHttp(path){let protocol=url.getProtocol(path);if(protocol==="http"||protocol==="https"){return true;}else if(protocol===undefined){// There is no protocol. If we're running in a browser, then assume it's HTTP. -return browser$1.browser;}else {// It's some other protocol, such as "ftp://", "mongodb://", etc. -return false;}};/** - * Determines whether the given path is a filesystem path. - * This includes "file://" URLs. - * - * @param {string} path - * @returns {boolean} - */exports.isFileSystemPath=function isFileSystemPath(path){if(browser$1.browser){// We're running in a browser, so assume that all paths are URLs. -// This way, even relative paths will be treated as URLs rather than as filesystem paths -return false;}let protocol=url.getProtocol(path);return protocol===undefined||protocol==="file";};/** - * Converts a filesystem path to a properly-encoded URL. - * - * This is intended to handle situations where JSON Schema $Ref Parser is called - * with a filesystem path that contains characters which are not allowed in URLs. - * - * @example - * The following filesystem paths would be converted to the following URLs: - * - * <"!@#$%^&*+=?'>.json ==> %3C%22!@%23$%25%5E&*+=%3F\'%3E.json - * C:\\My Documents\\File (1).json ==> C:/My%20Documents/File%20(1).json - * file://Project #42/file.json ==> file://Project%20%2342/file.json - * - * @param {string} path - * @returns {string} - */exports.fromFileSystemPath=function fromFileSystemPath(path){// Step 1: On Windows, replace backslashes with forward slashes, -// rather than encoding them as "%5C" -if(isWindows){path=path.replace(/\\/g,"/");}// Step 2: `encodeURI` will take care of MOST characters -path=encodeURI(path);// Step 3: Manually encode characters that are not encoded by `encodeURI`. -// This includes characters such as "#" and "?", which have special meaning in URLs, -// but are just normal characters in a filesystem path. -for(let i=0;i} - */exports.safePointerToPath=function safePointerToPath(pointer){if(pointer.length<=1||pointer[0]!=="#"||pointer[1]!=="/"){return [];}return pointer.slice(2).split("/").map(value=>{return decodeURIComponent(value).replace(jsonPointerSlash,"/").replace(jsonPointerTilde,"~");});};});var require$$1=/*@__PURE__*/getAugmentedNamespace(esm$1);var errors=createCommonjsModule(function(module,exports){const{Ono}=require$$1;const{stripHash,toFileSystemPath}=url_1;const JSONParserError=exports.JSONParserError=class JSONParserError extends Error{constructor(message,source){super();this.code="EUNKNOWN";this.message=message;this.source=source;this.path=null;Ono.extend(this);}};setErrorName(JSONParserError);const JSONParserErrorGroup=exports.JSONParserErrorGroup=class JSONParserErrorGroup extends Error{constructor(parser){super();this.files=parser;this.message=`${this.errors.length} error${this.errors.length>1?"s":""} occurred while reading '${toFileSystemPath(parser.$refs._root$Ref.path)}'`;Ono.extend(this);}static getParserErrors(parser){const errors=[];for(const $ref of Object.values(parser.$refs._$refs)){if($ref.errors){errors.push(...$ref.errors);}}return errors;}get errors(){return JSONParserErrorGroup.getParserErrors(this.files);}};setErrorName(JSONParserErrorGroup);const ParserError=exports.ParserError=class ParserError extends JSONParserError{constructor(message,source){super(`Error parsing ${source}: ${message}`,source);this.code="EPARSER";}};setErrorName(ParserError);const UnmatchedParserError=exports.UnmatchedParserError=class UnmatchedParserError extends JSONParserError{constructor(source){super(`Could not find parser for "${source}"`,source);this.code="EUNMATCHEDPARSER";}};setErrorName(UnmatchedParserError);const ResolverError=exports.ResolverError=class ResolverError extends JSONParserError{constructor(ex,source){super(ex.message||`Error reading file "${source}"`,source);this.code="ERESOLVER";if("code"in ex){this.ioErrorCode=String(ex.code);}}};setErrorName(ResolverError);const UnmatchedResolverError=exports.UnmatchedResolverError=class UnmatchedResolverError extends JSONParserError{constructor(source){super(`Could not find resolver for "${source}"`,source);this.code="EUNMATCHEDRESOLVER";}};setErrorName(UnmatchedResolverError);const MissingPointerError=exports.MissingPointerError=class MissingPointerError extends JSONParserError{constructor(token,path){super(`Token "${token}" does not exist.`,stripHash(path));this.code="EMISSINGPOINTER";}};setErrorName(MissingPointerError);const InvalidPointerError=exports.InvalidPointerError=class InvalidPointerError extends JSONParserError{constructor(pointer,path){super(`Invalid $ref pointer "${pointer}". Pointers must begin with "#/"`,stripHash(path));this.code="EINVALIDPOINTER";}};setErrorName(InvalidPointerError);function setErrorName(err){Object.defineProperty(err.prototype,"name",{value:err.name,enumerable:true});}exports.isHandledError=function(err){return err instanceof JSONParserError||err instanceof JSONParserErrorGroup;};exports.normalizeError=function(err){if(err.path===null){err.path=[];}return err;};});var pointer=Pointer;const{JSONParserError:JSONParserError$1,InvalidPointerError:InvalidPointerError$2,MissingPointerError:MissingPointerError$1,isHandledError:isHandledError$4}=errors;const slashes=/\//g;const tildes=/~/g;const escapedSlash=/~1/g;const escapedTilde=/~0/g;/** - * This class represents a single JSON pointer and its resolved value. - * - * @param {$Ref} $ref - * @param {string} path - * @param {string} [friendlyPath] - The original user-specified path (used for error messages) - * @constructor - */function Pointer($ref,path,friendlyPath){/** - * The {@link $Ref} object that contains this {@link Pointer} object. - * @type {$Ref} - */this.$ref=$ref;/** - * The file path or URL, containing the JSON pointer in the hash. - * This path is relative to the path of the main JSON schema file. - * @type {string} - */this.path=path;/** - * The original path or URL, used for error messages. - * @type {string} - */this.originalPath=friendlyPath||path;/** - * The value of the JSON pointer. - * Can be any JSON type, not just objects. Unknown file types are represented as Buffers (byte arrays). - * @type {?*} - */this.value=undefined;/** - * Indicates whether the pointer references itself. - * @type {boolean} - */this.circular=false;/** - * The number of indirect references that were traversed to resolve the value. - * Resolving a single pointer may require resolving multiple $Refs. - * @type {number} - */this.indirections=0;}/** - * Resolves the value of a nested property within the given object. - * - * @param {*} obj - The object that will be crawled - * @param {$RefParserOptions} options - * @param {string} pathFromRoot - the path of place that initiated resolving - * - * @returns {Pointer} - * Returns a JSON pointer whose {@link Pointer#value} is the resolved value. - * If resolving this value required resolving other JSON references, then - * the {@link Pointer#$ref} and {@link Pointer#path} will reflect the resolution path - * of the resolved value. - */Pointer.prototype.resolve=function(obj,options,pathFromRoot){let tokens=Pointer.parse(this.path,this.originalPath);// Crawl the object, one token at a time -this.value=unwrapOrThrow(obj);for(let i=0;i ["definitions", "person", "name"]) - * - * The pointer is parsed according to RFC 6901 - * {@link https://tools.ietf.org/html/rfc6901#section-3} - * - * @param {string} path - * @param {string} [originalPath] - * @returns {string[]} - */Pointer.parse=function(path,originalPath){// Get the JSON pointer from the path's hash -let pointer=url_1.getHash(path).substr(1);// If there's no pointer, then there are no tokens, -// so return an empty array -if(!pointer){return [];}// Split into an array -pointer=pointer.split("/");// Decode each part, according to RFC 6901 -for(let i=0;i} - */this.errors=undefined;}/** - * Pushes an error to errors array. - * - * @param {Array} error - The error to be pushed - * @returns {void} - */$Ref.prototype.addError=function(err){if(this.errors===undefined){this.errors=[];}// the path has been almost certainly set at this point, -// but just in case something went wrong, let's inject path if necessary -if(Array.isArray(err.errors)){this.errors.push(...err.errors.map(normalizeError));}else {this.errors.push(normalizeError(err));}};/** - * Determines whether the given JSON reference exists within this {@link $Ref#value}. - * - * @param {string} path - The full path being resolved, optionally with a JSON pointer in the hash - * @param {$RefParserOptions} options - * @returns {boolean} - */$Ref.prototype.exists=function(path,options){try{this.resolve(path,options);return true;}catch(e){return false;}};/** - * Resolves the given JSON reference within this {@link $Ref#value} and returns the resolved value. - * - * @param {string} path - The full path being resolved, optionally with a JSON pointer in the hash - * @param {$RefParserOptions} options - * @returns {*} - Returns the resolved value - */$Ref.prototype.get=function(path,options){return this.resolve(path,options).value;};/** - * Resolves the given JSON reference within this {@link $Ref#value}. - * - * @param {string} path - The full path being resolved, optionally with a JSON pointer in the hash - * @param {$RefParserOptions} options - * @param {string} friendlyPath - The original user-specified path (used for error messages) - * @param {string} pathFromRoot - The path of `obj` from the schema root - * @returns {Pointer} - */$Ref.prototype.resolve=function(path,options,friendlyPath,pathFromRoot){let pointer$1=new pointer(this,path,friendlyPath);try{return pointer$1.resolve(this.value,options,pathFromRoot);}catch(err){if(!options||!options.continueOnError||!isHandledError$3(err)){throw err;}if(err.path===null){err.path=safePointerToPath(getHash(pathFromRoot));}if(err instanceof InvalidPointerError$1){// this is a special case - InvalidPointerError is thrown when dereferencing external file, -// but the issue is caused by the source file that referenced the file that undergoes dereferencing -err.source=stripHash(pathFromRoot);}this.addError(err);return null;}};/** - * Sets the value of a nested property within this {@link $Ref#value}. - * If the property, or any of its parents don't exist, they will be created. - * - * @param {string} path - The full path of the property to set, optionally with a JSON pointer in the hash - * @param {*} value - The value to assign - */$Ref.prototype.set=function(path,value){let pointer$1=new pointer(this,path);this.value=pointer$1.set(this.value,value);};/** - * Determines whether the given value is a JSON reference. - * - * @param {*} value - The value to inspect - * @returns {boolean} - */$Ref.is$Ref=function(value){return value&&typeof value==="object"&&typeof value.$ref==="string"&&value.$ref.length>0;};/** - * Determines whether the given value is an external JSON reference. - * - * @param {*} value - The value to inspect - * @returns {boolean} - */$Ref.isExternal$Ref=function(value){return $Ref.is$Ref(value)&&value.$ref[0]!=="#";};/** - * Determines whether the given value is a JSON reference, and whether it is allowed by the options. - * For example, if it references an external file, then options.resolve.external must be true. - * - * @param {*} value - The value to inspect - * @param {$RefParserOptions} options - * @returns {boolean} - */$Ref.isAllowed$Ref=function(value,options){if($Ref.is$Ref(value)){if(value.$ref.substr(0,2)==="#/"||value.$ref==="#"){// It's a JSON Pointer reference, which is always allowed -return true;}else if(value.$ref[0]!=="#"&&(!options||options.resolve.external)){// It's an external reference, which is allowed by the options -return true;}}};/** - * Determines whether the given value is a JSON reference that "extends" its resolved value. - * That is, it has extra properties (in addition to "$ref"), so rather than simply pointing to - * an existing value, this $ref actually creates a NEW value that is a shallow copy of the resolved - * value, plus the extra properties. - * - * @example: - * { - * person: { - * properties: { - * firstName: { type: string } - * lastName: { type: string } - * } - * } - * employee: { - * properties: { - * $ref: #/person/properties - * salary: { type: number } - * } - * } - * } - * - * In this example, "employee" is an extended $ref, since it extends "person" with an additional - * property (salary). The result is a NEW value that looks like this: - * - * { - * properties: { - * firstName: { type: string } - * lastName: { type: string } - * salary: { type: number } - * } - * } - * - * @param {*} value - The value to inspect - * @returns {boolean} - */$Ref.isExtended$Ref=function(value){return $Ref.is$Ref(value)&&Object.keys(value).length>1;};/** - * Returns the resolved value of a JSON Reference. - * If necessary, the resolved value is merged with the JSON Reference to create a new object - * - * @example: - * { - * person: { - * properties: { - * firstName: { type: string } - * lastName: { type: string } - * } - * } - * employee: { - * properties: { - * $ref: #/person/properties - * salary: { type: number } - * } - * } - * } - * - * When "person" and "employee" are merged, you end up with the following object: - * - * { - * properties: { - * firstName: { type: string } - * lastName: { type: string } - * salary: { type: number } - * } - * } - * - * @param {object} $ref - The JSON reference object (the one with the "$ref" property) - * @param {*} resolvedValue - The resolved value, which can be any type - * @returns {*} - Returns the dereferenced value - */$Ref.dereference=function($ref,resolvedValue){if(resolvedValue&&typeof resolvedValue==="object"&&$Ref.isExtended$Ref($ref)){let merged={};for(let key of Object.keys($ref)){if(key!=="$ref"){merged[key]=$ref[key];}}for(let key of Object.keys(resolvedValue)){if(!(key in merged)){merged[key]=resolvedValue[key];}}return merged;}else {// Completely replace the original reference with the resolved value -return resolvedValue;}};const{ono:ono$5}=require$$1;var refs=$Refs;/** - * This class is a map of JSON references and their resolved values. - */function $Refs(){/** - * Indicates whether the schema contains any circular references. - * - * @type {boolean} - */this.circular=false;/** - * A map of paths/urls to {@link $Ref} objects - * - * @type {object} - * @protected - */this._$refs={};/** - * The {@link $Ref} object that is the root of the JSON schema. - * - * @type {$Ref} - * @protected - */this._root$Ref=null;}/** - * Returns the paths of all the files/URLs that are referenced by the JSON schema, - * including the schema itself. - * - * @param {...string|string[]} [types] - Only return paths of the given types ("file", "http", etc.) - * @returns {string[]} - */$Refs.prototype.paths=function(types){// eslint-disable-line no-unused-vars -let paths=getPaths(this._$refs,arguments);return paths.map(path=>{return path.decoded;});};/** - * Returns the map of JSON references and their resolved values. - * - * @param {...string|string[]} [types] - Only return references of the given types ("file", "http", etc.) - * @returns {object} - */$Refs.prototype.values=function(types){// eslint-disable-line no-unused-vars -let $refs=this._$refs;let paths=getPaths($refs,arguments);return paths.reduce((obj,path)=>{obj[path.decoded]=$refs[path.encoded].value;return obj;},{});};/** - * Returns a POJO (plain old JavaScript object) for serialization as JSON. - * - * @returns {object} - */$Refs.prototype.toJSON=$Refs.prototype.values;/** - * Determines whether the given JSON reference exists. - * - * @param {string} path - The path being resolved, optionally with a JSON pointer in the hash - * @param {$RefParserOptions} [options] - * @returns {boolean} - */$Refs.prototype.exists=function(path,options){try{this._resolve(path,"",options);return true;}catch(e){return false;}};/** - * Resolves the given JSON reference and returns the resolved value. - * - * @param {string} path - The path being resolved, with a JSON pointer in the hash - * @param {$RefParserOptions} [options] - * @returns {*} - Returns the resolved value - */$Refs.prototype.get=function(path,options){return this._resolve(path,"",options).value;};/** - * Sets the value of a nested property within this {@link $Ref#value}. - * If the property, or any of its parents don't exist, they will be created. - * - * @param {string} path - The path of the property to set, optionally with a JSON pointer in the hash - * @param {*} value - The value to assign - */$Refs.prototype.set=function(path,value){let absPath=url_1.resolve(this._root$Ref.path,path);let withoutHash=url_1.stripHash(absPath);let $ref=this._$refs[withoutHash];if(!$ref){throw ono$5(`Error resolving $ref pointer "${path}". \n"${withoutHash}" not found.`);}$ref.set(absPath,value);};/** - * Creates a new {@link $Ref} object and adds it to this {@link $Refs} object. - * - * @param {string} path - The file path or URL of the referenced file - */$Refs.prototype._add=function(path){let withoutHash=url_1.stripHash(path);let $ref=new ref();$ref.path=withoutHash;$ref.$refs=this;this._$refs[withoutHash]=$ref;this._root$Ref=this._root$Ref||$ref;return $ref;};/** - * Resolves the given JSON reference. - * - * @param {string} path - The path being resolved, optionally with a JSON pointer in the hash - * @param {string} pathFromRoot - The path of `obj` from the schema root - * @param {$RefParserOptions} [options] - * @returns {Pointer} - * @protected - */$Refs.prototype._resolve=function(path,pathFromRoot,options){let absPath=url_1.resolve(this._root$Ref.path,path);let withoutHash=url_1.stripHash(absPath);let $ref=this._$refs[withoutHash];if(!$ref){throw ono$5(`Error resolving $ref pointer "${path}". \n"${withoutHash}" not found.`);}return $ref.resolve(absPath,options,path,pathFromRoot);};/** - * Returns the specified {@link $Ref} object, or undefined. - * - * @param {string} path - The path being resolved, optionally with a JSON pointer in the hash - * @returns {$Ref|undefined} - * @protected - */$Refs.prototype._get$Ref=function(path){path=url_1.resolve(this._root$Ref.path,path);let withoutHash=url_1.stripHash(path);return this._$refs[withoutHash];};/** - * Returns the encoded and decoded paths keys of the given object. - * - * @param {object} $refs - The object whose keys are URL-encoded paths - * @param {...string|string[]} [types] - Only return paths of the given types ("file", "http", etc.) - * @returns {object[]} - */function getPaths($refs,types){let paths=Object.keys($refs);// Filter the paths by type -types=Array.isArray(types[0])?types[0]:Array.prototype.slice.call(types);if(types.length>0&&types[0]){paths=paths.filter(key=>{return types.indexOf($refs[key].pathType)!==-1;});}// Decode local filesystem paths -return paths.map(path=>{return {encoded:path,decoded:$refs[path].pathType==="file"?url_1.toFileSystemPath(path,true):path};});}/** - * Returns the given plugins as an array, rather than an object map. - * All other methods in this module expect an array of plugins rather than an object map. - * - * @param {object} plugins - A map of plugin objects - * @return {object[]} - */var all=function(plugins){return Object.keys(plugins).filter(key=>{return typeof plugins[key]==="object";}).map(key=>{plugins[key].name=key;return plugins[key];});};/** - * Filters the given plugins, returning only the ones return `true` for the given method. - * - * @param {object[]} plugins - An array of plugin objects - * @param {string} method - The name of the filter method to invoke for each plugin - * @param {object} file - A file info object, which will be passed to each method - * @return {object[]} - */var filter=function(plugins,method,file){return plugins.filter(plugin=>{return !!getResult(plugin,method,file);});};/** - * Sorts the given plugins, in place, by their `order` property. - * - * @param {object[]} plugins - An array of plugin objects - * @returns {object[]} - */var sort=function(plugins){for(let plugin of plugins){plugin.order=plugin.order||Number.MAX_SAFE_INTEGER;}return plugins.sort((a,b)=>{return a.order-b.order;});};/** - * Runs the specified method of the given plugins, in order, until one of them returns a successful result. - * Each method can return a synchronous value, a Promise, or call an error-first callback. - * If the promise resolves successfully, or the callback is called without an error, then the result - * is immediately returned and no further plugins are called. - * If the promise rejects, or the callback is called with an error, then the next plugin is called. - * If ALL plugins fail, then the last error is thrown. - * - * @param {object[]} plugins - An array of plugin objects - * @param {string} method - The name of the method to invoke for each plugin - * @param {object} file - A file info object, which will be passed to each method - * @returns {Promise} - */var run=function(plugins,method,file,$refs){let plugin,lastError,index=0;return new Promise((resolve,reject)=>{runNextPlugin();function runNextPlugin(){plugin=plugins[index++];if(!plugin){// There are no more functions, so re-throw the last error -return reject(lastError);}try{// console.log(' %s', plugin.name); -let result=getResult(plugin,method,file,callback,$refs);if(result&&typeof result.then==="function"){// A promise was returned -result.then(onSuccess,onError);}else if(result!==undefined){// A synchronous result was returned -onSuccess(result);}else if(index===plugins.length){throw new Error("No promise has been returned or callback has been called.");}}catch(e){onError(e);}}function callback(err,result){if(err){onError(err);}else {onSuccess(result);}}function onSuccess(result){// console.log(' success'); -resolve({plugin,result});}function onError(error){// console.log(' %s', err.message || err); -lastError={plugin,error};runNextPlugin();}});};/** - * Returns the value of the given property. - * If the property is a function, then the result of the function is returned. - * If the value is a RegExp, then it will be tested against the file URL. - * If the value is an aray, then it will be compared against the file extension. - * - * @param {object} obj - The object whose property/method is called - * @param {string} prop - The name of the property/method to invoke - * @param {object} file - A file info object, which will be passed to the method - * @param {function} [callback] - A callback function, which will be passed to the method - * @returns {*} - */function getResult(obj,prop,file,callback,$refs){let value=obj[prop];if(typeof value==="function"){return value.apply(obj,[file,callback,$refs]);}if(!callback){// The synchronous plugin functions (canParse and canRead) -// allow a "shorthand" syntax, where the user can match -// files by RegExp or by file extension. -if(value instanceof RegExp){return value.test(file.url);}else if(typeof value==="string"){return value===file.extension;}else if(Array.isArray(value)){return value.indexOf(file.extension)!==-1;}}return value;}var plugins={all:all,filter:filter,sort:sort,run:run};const{ono:ono$4}=require$$1;const{ResolverError:ResolverError$3,ParserError:ParserError$5,UnmatchedParserError:UnmatchedParserError$1,UnmatchedResolverError:UnmatchedResolverError$1,isHandledError:isHandledError$2}=errors;var parse_1=parse$5;/** - * Reads and parses the specified file path or URL. - * - * @param {string} path - This path MUST already be resolved, since `read` doesn't know the resolution context - * @param {$Refs} $refs - * @param {$RefParserOptions} options - * - * @returns {Promise} - * The promise resolves with the parsed file contents, NOT the raw (Buffer) contents. - */async function parse$5(path,$refs,options){// Remove the URL fragment, if any -path=url_1.stripHash(path);// Add a new $Ref for this file, even though we don't have the value yet. -// This ensures that we don't simultaneously read & parse the same file multiple times -let $ref=$refs._add(path);// This "file object" will be passed to all resolvers and parsers. -let file={url:path,extension:url_1.getExtension(path)};// Read the file and then parse the data -try{const resolver=await readFile(file,options,$refs);$ref.pathType=resolver.plugin.name;file.data=resolver.result;const parser=await parseFile(file,options,$refs);$ref.value=parser.result;return parser.result;}catch(err){if(isHandledError$2(err)){$ref.value=err;}throw err;}}/** - * Reads the given file, using the configured resolver plugins - * - * @param {object} file - An object containing information about the referenced file - * @param {string} file.url - The full URL of the referenced file - * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.) - * @param {$RefParserOptions} options - * - * @returns {Promise} - * The promise resolves with the raw file contents and the resolver that was used. - */function readFile(file,options,$refs){return new Promise((resolve,reject)=>{// console.log('Reading %s', file.url); -// Find the resolvers that can read this file -let resolvers=plugins.all(options.resolve);resolvers=plugins.filter(resolvers,"canRead",file);// Run the resolvers, in order, until one of them succeeds -plugins.sort(resolvers);plugins.run(resolvers,"read",file,$refs).then(resolve,onError);function onError(err){if(!err&&options.continueOnError){// No resolver could be matched -reject(new UnmatchedResolverError$1(file.url));}else if(!err||!("error"in err)){// Throw a generic, friendly error. -reject(ono$4.syntax(`Unable to resolve $ref pointer "${file.url}"`));}// Throw the original error, if it's one of our own (user-friendly) errors. -else if(err.error instanceof ResolverError$3){reject(err.error);}else {reject(new ResolverError$3(err,file.url));}}});}/** - * Parses the given file's contents, using the configured parser plugins. - * - * @param {object} file - An object containing information about the referenced file - * @param {string} file.url - The full URL of the referenced file - * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.) - * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver - * @param {$RefParserOptions} options - * - * @returns {Promise} - * The promise resolves with the parsed file contents and the parser that was used. - */function parseFile(file,options,$refs){return new Promise((resolve,reject)=>{// console.log('Parsing %s', file.url); -// Find the parsers that can read this file type. -// If none of the parsers are an exact match for this file, then we'll try ALL of them. -// This handles situations where the file IS a supported type, just with an unknown extension. -let allParsers=plugins.all(options.parse);let filteredParsers=plugins.filter(allParsers,"canParse",file);let parsers=filteredParsers.length>0?filteredParsers:allParsers;// Run the parsers, in order, until one of them succeeds -plugins.sort(parsers);plugins.run(parsers,"parse",file,$refs).then(onParsed,onError);function onParsed(parser){if(!parser.plugin.allowEmpty&&isEmpty(parser.result)){reject(ono$4.syntax(`Error parsing "${file.url}" as ${parser.plugin.name}. \nParsed value is empty`));}else {resolve(parser);}}function onError(err){if(!err&&options.continueOnError){// No resolver could be matched -reject(new UnmatchedParserError$1(file.url));}else if(!err||!("error"in err)){reject(ono$4.syntax(`Unable to parse ${file.url}`));}else if(err.error instanceof ParserError$5){reject(err.error);}else {reject(new ParserError$5(err.error.message,file.url));}}});}/** - * Determines whether the parsed value is "empty". - * - * @param {*} value - * @returns {boolean} - */function isEmpty(value){return value===undefined||typeof value==="object"&&Object.keys(value).length===0||typeof value==="string"&&value.trim().length===0||Buffer$1.isBuffer(value)&&value.length===0;}const{ParserError:ParserError$4}=errors;var json$2={/** - * The order that this parser will run, in relation to other parsers. - * - * @type {number} - */order:100,/** - * Whether to allow "empty" files. This includes zero-byte files, as well as empty JSON objects. - * - * @type {boolean} - */allowEmpty:true,/** - * Determines whether this parser can parse a given file reference. - * Parsers that match will be tried, in order, until one successfully parses the file. - * Parsers that don't match will be skipped, UNLESS none of the parsers match, in which case - * every parser will be tried. - * - * @type {RegExp|string|string[]|function} - */canParse:".json",/** - * Parses the given file as JSON - * - * @param {object} file - An object containing information about the referenced file - * @param {string} file.url - The full URL of the referenced file - * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.) - * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver - * @returns {Promise} - */async parse(file){// eslint-disable-line require-await -let data=file.data;if(Buffer$1.isBuffer(data)){data=data.toString();}if(typeof data==="string"){if(data.trim().length===0){return;// This mirrors the YAML behavior -}else {try{return JSON.parse(data);}catch(e){throw new ParserError$4(e.message,file.url);}}}else {// data is already a JavaScript value (object, array, number, null, NaN, etc.) -return data;}}};function isNothing$1(subject){return typeof subject==='undefined'||subject===null;}function isObject$4(subject){return typeof subject==='object'&&subject!==null;}function toArray$1(sequence){if(Array.isArray(sequence))return sequence;else if(isNothing$1(sequence))return [];return [sequence];}function extend$1(target,source){var index,length,key,sourceKeys;if(source){sourceKeys=Object.keys(source);for(index=0,length=sourceKeys.length;index0&&'\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start-1))===-1){start-=1;if(this.position-start>maxLength/2-1){head=' ... ';start+=5;break;}}tail='';end=this.position;while(endmaxLength/2-1){tail=' ... ';end-=5;break;}}snippet=this.buffer.slice(start,end);return common$1.repeat(' ',indent)+head+snippet+tail+'\n'+common$1.repeat(' ',indent+this.position-start+head.length)+'^';};Mark$1.prototype.toString=function toString(compact){var snippet,where='';if(this.name){where+='in "'+this.name+'" ';}where+='at line '+(this.line+1)+', column '+(this.column+1);if(!compact){snippet=this.getSnippet();if(snippet){where+=':\n'+snippet;}}return where;};var mark$1=Mark$1;var TYPE_CONSTRUCTOR_OPTIONS$1=['kind','resolve','construct','instanceOf','predicate','represent','defaultStyle','styleAliases'];var YAML_NODE_KINDS$1=['scalar','sequence','mapping'];function compileStyleAliases$1(map){var result={};if(map!==null){Object.keys(map).forEach(function(style){map[style].forEach(function(alias){result[String(alias)]=style;});});}return result;}function Type$2(tag,options){options=options||{};Object.keys(options).forEach(function(name){if(TYPE_CONSTRUCTOR_OPTIONS$1.indexOf(name)===-1){throw new exception$1('Unknown option "'+name+'" is met in definition of "'+tag+'" YAML type.');}});// TODO: Add tag format check. -this.tag=tag;this.kind=options['kind']||null;this.resolve=options['resolve']||function(){return true;};this.construct=options['construct']||function(data){return data;};this.instanceOf=options['instanceOf']||null;this.predicate=options['predicate']||null;this.represent=options['represent']||null;this.defaultStyle=options['defaultStyle']||null;this.styleAliases=compileStyleAliases$1(options['styleAliases']||null);if(YAML_NODE_KINDS$1.indexOf(this.kind)===-1){throw new exception$1('Unknown kind "'+this.kind+'" is specified for "'+tag+'" YAML type.');}}var type$2=Type$2;/*eslint-disable max-len*/function compileList$1(schema,name,result){var exclude=[];schema.include.forEach(function(includedSchema){result=compileList$1(includedSchema,name,result);});schema[name].forEach(function(currentType){result.forEach(function(previousType,previousIndex){if(previousType.tag===currentType.tag&&previousType.kind===currentType.kind){exclude.push(previousIndex);}});result.push(currentType);});return result.filter(function(type,index){return exclude.indexOf(index)===-1;});}function compileMap$1()/* lists... */{var result={scalar:{},sequence:{},mapping:{},fallback:{}},index,length;function collectType(type){result[type.kind][type.tag]=result['fallback'][type.tag]=type;}for(index=0,length=arguments.length;index=0?'0b'+obj.toString(2):'-0b'+obj.toString(2).slice(1);},octal:function(obj){return obj>=0?'0'+obj.toString(8):'-0'+obj.toString(8).slice(1);},decimal:function(obj){return obj.toString(10);},/* eslint-disable max-len */hexadecimal:function(obj){return obj>=0?'0x'+obj.toString(16).toUpperCase():'-0x'+obj.toString(16).toUpperCase().slice(1);}},defaultStyle:'decimal',styleAliases:{binary:[2,'bin'],octal:[8,'oct'],decimal:[10,'dec'],hexadecimal:[16,'hex']}});var YAML_FLOAT_PATTERN$1=new RegExp(// 2.5e4, 2.5 and integers -'^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?'+// .2e4, .2 -// special case, seems not from spec -'|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?'+// 20:59 -'|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*'+// .inf -'|[-+]?\\.(?:inf|Inf|INF)'+// .nan -'|\\.(?:nan|NaN|NAN))$');function resolveYamlFloat$1(data){if(data===null)return false;if(!YAML_FLOAT_PATTERN$1.test(data)||// Quick hack to not allow integers end with `_` -// Probably should update regexp & check speed -data[data.length-1]==='_'){return false;}return true;}function constructYamlFloat$1(data){var value,sign,base,digits;value=data.replace(/_/g,'').toLowerCase();sign=value[0]==='-'?-1:1;digits=[];if('+-'.indexOf(value[0])>=0){value=value.slice(1);}if(value==='.inf'){return sign===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;}else if(value==='.nan'){return NaN;}else if(value.indexOf(':')>=0){value.split(':').forEach(function(v){digits.unshift(parseFloat(v,10));});value=0.0;base=1;digits.forEach(function(d){value+=d*base;base*=60;});return sign*value;}return sign*parseFloat(value,10);}var SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/;function representYamlFloat$1(object,style){var res;if(isNaN(object)){switch(style){case'lowercase':return '.nan';case'uppercase':return '.NAN';case'camelcase':return '.NaN';}}else if(Number.POSITIVE_INFINITY===object){switch(style){case'lowercase':return '.inf';case'uppercase':return '.INF';case'camelcase':return '.Inf';}}else if(Number.NEGATIVE_INFINITY===object){switch(style){case'lowercase':return '-.inf';case'uppercase':return '-.INF';case'camelcase':return '-.Inf';}}else if(common$1.isNegativeZero(object)){return '-0.0';}res=object.toString(10);// JS stringifier can build scientific format without dots: 5e-100, -// while YAML requres dot: 5.e-100. Fix it with simple hack -return SCIENTIFIC_WITHOUT_DOT.test(res)?res.replace('e','.e'):res;}function isFloat$1(object){return Object.prototype.toString.call(object)==='[object Number]'&&(object%1!==0||common$1.isNegativeZero(object));}var float$1=new type$2('tag:yaml.org,2002:float',{kind:'scalar',resolve:resolveYamlFloat$1,construct:constructYamlFloat$1,predicate:isFloat$1,represent:representYamlFloat$1,defaultStyle:'lowercase'});var json$1=new schema$5({include:[failsafe$1],implicit:[_null$1,bool$1,int$1,float$1]});var core$1=new schema$5({include:[json$1]});var YAML_DATE_REGEXP=new RegExp('^([0-9][0-9][0-9][0-9])'+// [1] year -'-([0-9][0-9])'+// [2] month -'-([0-9][0-9])$');// [3] day -var YAML_TIMESTAMP_REGEXP$1=new RegExp('^([0-9][0-9][0-9][0-9])'+// [1] year -'-([0-9][0-9]?)'+// [2] month -'-([0-9][0-9]?)'+// [3] day -'(?:[Tt]|[ \\t]+)'+// ... -'([0-9][0-9]?)'+// [4] hour -':([0-9][0-9])'+// [5] minute -':([0-9][0-9])'+// [6] second -'(?:\\.([0-9]*))?'+// [7] fraction -'(?:[ \\t]*(Z|([-+])([0-9][0-9]?)'+// [8] tz [9] tz_sign [10] tz_hour -'(?::([0-9][0-9]))?))?$');// [11] tz_minute -function resolveYamlTimestamp$1(data){if(data===null)return false;if(YAML_DATE_REGEXP.exec(data)!==null)return true;if(YAML_TIMESTAMP_REGEXP$1.exec(data)!==null)return true;return false;}function constructYamlTimestamp$1(data){var match,year,month,day,hour,minute,second,fraction=0,delta=null,tz_hour,tz_minute,date;match=YAML_DATE_REGEXP.exec(data);if(match===null)match=YAML_TIMESTAMP_REGEXP$1.exec(data);if(match===null)throw new Error('Date resolve error');// match: [1] year [2] month [3] day -year=+match[1];month=+match[2]-1;// JS month starts with 0 -day=+match[3];if(!match[4]){// no hour -return new Date(Date.UTC(year,month,day));}// match: [4] hour [5] minute [6] second [7] fraction -hour=+match[4];minute=+match[5];second=+match[6];if(match[7]){fraction=match[7].slice(0,3);while(fraction.length<3){// milli-seconds -fraction+='0';}fraction=+fraction;}// match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute -if(match[9]){tz_hour=+match[10];tz_minute=+(match[11]||0);delta=(tz_hour*60+tz_minute)*60000;// delta in mili-seconds -if(match[9]==='-')delta=-delta;}date=new Date(Date.UTC(year,month,day,hour,minute,second,fraction));if(delta)date.setTime(date.getTime()-delta);return date;}function representYamlTimestamp$1(object/*, style*/){return object.toISOString();}var timestamp$1=new type$2('tag:yaml.org,2002:timestamp',{kind:'scalar',resolve:resolveYamlTimestamp$1,construct:constructYamlTimestamp$1,instanceOf:Date,represent:representYamlTimestamp$1});function resolveYamlMerge$1(data){return data==='<<'||data===null;}var merge$2=new type$2('tag:yaml.org,2002:merge',{kind:'scalar',resolve:resolveYamlMerge$1});/*eslint-disable no-bitwise*/var NodeBuffer$1;try{// A trick for browserified version, to not include `Buffer` shim -var _require$1=commonjsRequire;NodeBuffer$1=_require$1('buffer').Buffer;}catch(__){}// [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP$1='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r';function resolveYamlBinary$1(data){if(data===null)return false;var code,idx,bitlen=0,max=data.length,map=BASE64_MAP$1;// Convert one by one. -for(idx=0;idx64)continue;// Fail on illegal characters -if(code<0)return false;bitlen+=6;}// If there are any bits left, source was corrupted -return bitlen%8===0;}function constructYamlBinary$1(data){var idx,tailbits,input=data.replace(/[\r\n=]/g,''),// remove CR/LF & padding to simplify scan -max=input.length,map=BASE64_MAP$1,bits=0,result=[];// Collect by 6*4 bits (3 bytes) -for(idx=0;idx>16&0xFF);result.push(bits>>8&0xFF);result.push(bits&0xFF);}bits=bits<<6|map.indexOf(input.charAt(idx));}// Dump tail -tailbits=max%4*6;if(tailbits===0){result.push(bits>>16&0xFF);result.push(bits>>8&0xFF);result.push(bits&0xFF);}else if(tailbits===18){result.push(bits>>10&0xFF);result.push(bits>>2&0xFF);}else if(tailbits===12){result.push(bits>>4&0xFF);}// Wrap into Buffer for NodeJS and leave Array for browser -if(NodeBuffer$1){// Support node 6.+ Buffer API when available -return NodeBuffer$1.from?NodeBuffer$1.from(result):new NodeBuffer$1(result);}return result;}function representYamlBinary$1(object/*, style*/){var result='',bits=0,idx,tail,max=object.length,map=BASE64_MAP$1;// Convert every three bytes to 4 ASCII characters. -for(idx=0;idx>18&0x3F];result+=map[bits>>12&0x3F];result+=map[bits>>6&0x3F];result+=map[bits&0x3F];}bits=(bits<<8)+object[idx];}// Dump tail -tail=max%3;if(tail===0){result+=map[bits>>18&0x3F];result+=map[bits>>12&0x3F];result+=map[bits>>6&0x3F];result+=map[bits&0x3F];}else if(tail===2){result+=map[bits>>10&0x3F];result+=map[bits>>4&0x3F];result+=map[bits<<2&0x3F];result+=map[64];}else if(tail===1){result+=map[bits>>2&0x3F];result+=map[bits<<4&0x3F];result+=map[64];result+=map[64];}return result;}function isBinary$1(object){return NodeBuffer$1&&NodeBuffer$1.isBuffer(object);}var binary$2=new type$2('tag:yaml.org,2002:binary',{kind:'scalar',resolve:resolveYamlBinary$1,construct:constructYamlBinary$1,predicate:isBinary$1,represent:representYamlBinary$1});var _hasOwnProperty$5=Object.prototype.hasOwnProperty;var _toString$5=Object.prototype.toString;function resolveYamlOmap$1(data){if(data===null)return true;var objectKeys=[],index,length,pair,pairKey,pairHasKey,object=data;for(index=0,length=object.length;index3)return false;// if expression starts with /, is should be properly terminated -if(regexp[regexp.length-modifiers.length-1]!=='/')return false;}return true;}function constructJavascriptRegExp$1(data){var regexp=data,tail=/\/([gim]*)$/.exec(data),modifiers='';// `/foo/gim` - tail can be maximum 4 chars -if(regexp[0]==='/'){if(tail)modifiers=tail[1];regexp=regexp.slice(1,regexp.length-modifiers.length-1);}return new RegExp(regexp,modifiers);}function representJavascriptRegExp$1(object/*, style*/){var result='/'+object.source+'/';if(object.global)result+='g';if(object.multiline)result+='m';if(object.ignoreCase)result+='i';return result;}function isRegExp$1(object){return Object.prototype.toString.call(object)==='[object RegExp]';}var regexp$1=new type$2('tag:yaml.org,2002:js/regexp',{kind:'scalar',resolve:resolveJavascriptRegExp$1,construct:constructJavascriptRegExp$1,predicate:isRegExp$1,represent:representJavascriptRegExp$1});var esprima;// Browserified version does not have esprima -// -// 1. For node.js just require module as deps -// 2. For browser try to require mudule via external AMD system. -// If not found - try to fallback to window.esprima. If not -// found too - then fail to parse. -// -try{// workaround to exclude package from browserify list. -var _require=commonjsRequire;esprima=_require('esprima');}catch(_){/* eslint-disable no-redeclare */ /* global window */if(typeof window!=='undefined')esprima=window.esprima;}function resolveJavascriptFunction(data){if(data===null)return false;try{var source='('+data+')',ast=esprima.parse(source,{range:true});if(ast.type!=='Program'||ast.body.length!==1||ast.body[0].type!=='ExpressionStatement'||ast.body[0].expression.type!=='ArrowFunctionExpression'&&ast.body[0].expression.type!=='FunctionExpression'){return false;}return true;}catch(err){return false;}}function constructJavascriptFunction(data){/*jslint evil:true*/var source='('+data+')',ast=esprima.parse(source,{range:true}),params=[],body;if(ast.type!=='Program'||ast.body.length!==1||ast.body[0].type!=='ExpressionStatement'||ast.body[0].expression.type!=='ArrowFunctionExpression'&&ast.body[0].expression.type!=='FunctionExpression'){throw new Error('Failed to resolve function');}ast.body[0].expression.params.forEach(function(param){params.push(param.name);});body=ast.body[0].expression.body.range;// Esprima's ranges include the first '{' and the last '}' characters on -// function expressions. So cut them out. -if(ast.body[0].expression.body.type==='BlockStatement'){/*eslint-disable no-new-func*/return new Function(params,source.slice(body[0]+1,body[1]-1));}// ES6 arrow functions can omit the BlockStatement. In that case, just return -// the body. -/*eslint-disable no-new-func*/return new Function(params,'return '+source.slice(body[0],body[1]));}function representJavascriptFunction(object/*, style*/){return object.toString();}function isFunction(object){return Object.prototype.toString.call(object)==='[object Function]';}var _function=new type$2('tag:yaml.org,2002:js/function',{kind:'scalar',resolve:resolveJavascriptFunction,construct:constructJavascriptFunction,predicate:isFunction,represent:representJavascriptFunction});var default_full$1=schema$5.DEFAULT=new schema$5({include:[default_safe$1],explicit:[_undefined$1,regexp$1,_function]});/*eslint-disable max-len,no-use-before-define*/var _hasOwnProperty$3=Object.prototype.hasOwnProperty;var CONTEXT_FLOW_IN=1;var CONTEXT_FLOW_OUT=2;var CONTEXT_BLOCK_IN=3;var CONTEXT_BLOCK_OUT=4;var CHOMPING_CLIP=1;var CHOMPING_STRIP=2;var CHOMPING_KEEP=3;var PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;var PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/;var PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/;var PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i;var PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function _class(obj){return Object.prototype.toString.call(obj);}function is_EOL(c){return c===0x0A/* LF */||c===0x0D/* CR */;}function is_WHITE_SPACE(c){return c===0x09/* Tab */||c===0x20/* Space */;}function is_WS_OR_EOL(c){return c===0x09/* Tab */||c===0x20/* Space */||c===0x0A/* LF */||c===0x0D/* CR */;}function is_FLOW_INDICATOR(c){return c===0x2C/* , */||c===0x5B/* [ */||c===0x5D/* ] */||c===0x7B/* { */||c===0x7D/* } */;}function fromHexCode(c){var lc;if(0x30/* 0 */<=c&&c<=0x39/* 9 */){return c-0x30;}/*eslint-disable no-bitwise*/lc=c|0x20;if(0x61/* a */<=lc&&lc<=0x66/* f */){return lc-0x61+10;}return -1;}function escapedHexLen(c){if(c===0x78/* x */){return 2;}if(c===0x75/* u */){return 4;}if(c===0x55/* U */){return 8;}return 0;}function fromDecimalCode(c){if(0x30/* 0 */<=c&&c<=0x39/* 9 */){return c-0x30;}return -1;}function simpleEscapeSequence(c){/* eslint-disable indent */return c===0x30/* 0 */?'\x00':c===0x61/* a */?'\x07':c===0x62/* b */?'\x08':c===0x74/* t */?'\x09':c===0x09/* Tab */?'\x09':c===0x6E/* n */?'\x0A':c===0x76/* v */?'\x0B':c===0x66/* f */?'\x0C':c===0x72/* r */?'\x0D':c===0x65/* e */?'\x1B':c===0x20/* Space */?' ':c===0x22/* " */?'\x22':c===0x2F/* / */?'/':c===0x5C/* \ */?'\x5C':c===0x4E/* N */?'\x85':c===0x5F/* _ */?'\xA0':c===0x4C/* L */?'\u2028':c===0x50/* P */?'\u2029':'';}function charFromCodepoint(c){if(c<=0xFFFF){return String.fromCharCode(c);}// Encode UTF-16 surrogate pair -// https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF -return String.fromCharCode((c-0x010000>>10)+0xD800,(c-0x010000&0x03FF)+0xDC00);}var simpleEscapeCheck=new Array(256);// integer, for fast access -var simpleEscapeMap=new Array(256);for(var i=0;i<256;i++){simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0;simpleEscapeMap[i]=simpleEscapeSequence(i);}function State$2(input,options){this.input=input;this.filename=options['filename']||null;this.schema=options['schema']||default_full$1;this.onWarning=options['onWarning']||null;this.legacy=options['legacy']||false;this.json=options['json']||false;this.listener=options['listener']||null;this.implicitTypes=this.schema.compiledImplicit;this.typeMap=this.schema.compiledTypeMap;this.length=input.length;this.position=0;this.line=0;this.lineStart=0;this.lineIndent=0;this.documents=[];/* - this.version; - this.checkLineBreaks; - this.tagMap; - this.anchorMap; - this.tag; - this.anchor; - this.kind; - this.result;*/}function generateError(state,message){return new exception$1(message,new mark$1(state.filename,state.input,state.position,state.line,state.position-state.lineStart));}function throwError(state,message){throw generateError(state,message);}function throwWarning(state,message){if(state.onWarning){state.onWarning.call(null,generateError(state,message));}}var directiveHandlers={YAML:function handleYamlDirective(state,name,args){var match,major,minor;if(state.version!==null){throwError(state,'duplication of %YAML directive');}if(args.length!==1){throwError(state,'YAML directive accepts exactly one argument');}match=/^([0-9]+)\.([0-9]+)$/.exec(args[0]);if(match===null){throwError(state,'ill-formed argument of the YAML directive');}major=parseInt(match[1],10);minor=parseInt(match[2],10);if(major!==1){throwError(state,'unacceptable YAML version of the document');}state.version=args[0];state.checkLineBreaks=minor<2;if(minor!==1&&minor!==2){throwWarning(state,'unsupported YAML version of the document');}},TAG:function handleTagDirective(state,name,args){var handle,prefix;if(args.length!==2){throwError(state,'TAG directive accepts exactly two arguments');}handle=args[0];prefix=args[1];if(!PATTERN_TAG_HANDLE.test(handle)){throwError(state,'ill-formed tag handle (first argument) of the TAG directive');}if(_hasOwnProperty$3.call(state.tagMap,handle)){throwError(state,'there is a previously declared suffix for "'+handle+'" tag handle');}if(!PATTERN_TAG_URI.test(prefix)){throwError(state,'ill-formed tag prefix (second argument) of the TAG directive');}state.tagMap[handle]=prefix;}};function captureSegment(state,start,end,checkJson){var _position,_length,_character,_result;if(start1){state.result+=common$1.repeat('\n',count-1);}}function readPlainScalar(state,nodeIndent,withinFlowCollection){var preceding,following,captureStart,captureEnd,hasPendingContent,_line,_lineStart,_lineIndent,_kind=state.kind,_result=state.result,ch;ch=state.input.charCodeAt(state.position);if(is_WS_OR_EOL(ch)||is_FLOW_INDICATOR(ch)||ch===0x23/* # */||ch===0x26/* & */||ch===0x2A/* * */||ch===0x21/* ! */||ch===0x7C/* | */||ch===0x3E/* > */||ch===0x27/* ' */||ch===0x22/* " */||ch===0x25/* % */||ch===0x40/* @ */||ch===0x60/* ` */){return false;}if(ch===0x3F/* ? */||ch===0x2D/* - */){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following)){return false;}}state.kind='scalar';state.result='';captureStart=captureEnd=state.position;hasPendingContent=false;while(ch!==0){if(ch===0x3A/* : */){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following)){break;}}else if(ch===0x23/* # */){preceding=state.input.charCodeAt(state.position-1);if(is_WS_OR_EOL(preceding)){break;}}else if(state.position===state.lineStart&&testDocumentSeparator(state)||withinFlowCollection&&is_FLOW_INDICATOR(ch)){break;}else if(is_EOL(ch)){_line=state.line;_lineStart=state.lineStart;_lineIndent=state.lineIndent;skipSeparationSpace(state,false,-1);if(state.lineIndent>=nodeIndent){hasPendingContent=true;ch=state.input.charCodeAt(state.position);continue;}else {state.position=captureEnd;state.line=_line;state.lineStart=_lineStart;state.lineIndent=_lineIndent;break;}}if(hasPendingContent){captureSegment(state,captureStart,captureEnd,false);writeFoldedLines(state,state.line-_line);captureStart=captureEnd=state.position;hasPendingContent=false;}if(!is_WHITE_SPACE(ch)){captureEnd=state.position+1;}ch=state.input.charCodeAt(++state.position);}captureSegment(state,captureStart,captureEnd,false);if(state.result){return true;}state.kind=_kind;state.result=_result;return false;}function readSingleQuotedScalar(state,nodeIndent){var ch,captureStart,captureEnd;ch=state.input.charCodeAt(state.position);if(ch!==0x27/* ' */){return false;}state.kind='scalar';state.result='';state.position++;captureStart=captureEnd=state.position;while((ch=state.input.charCodeAt(state.position))!==0){if(ch===0x27/* ' */){captureSegment(state,captureStart,state.position,true);ch=state.input.charCodeAt(++state.position);if(ch===0x27/* ' */){captureStart=state.position;state.position++;captureEnd=state.position;}else {return true;}}else if(is_EOL(ch)){captureSegment(state,captureStart,captureEnd,true);writeFoldedLines(state,skipSeparationSpace(state,false,nodeIndent));captureStart=captureEnd=state.position;}else if(state.position===state.lineStart&&testDocumentSeparator(state)){throwError(state,'unexpected end of the document within a single quoted scalar');}else {state.position++;captureEnd=state.position;}}throwError(state,'unexpected end of the stream within a single quoted scalar');}function readDoubleQuotedScalar(state,nodeIndent){var captureStart,captureEnd,hexLength,hexResult,tmp,ch;ch=state.input.charCodeAt(state.position);if(ch!==0x22/* " */){return false;}state.kind='scalar';state.result='';state.position++;captureStart=captureEnd=state.position;while((ch=state.input.charCodeAt(state.position))!==0){if(ch===0x22/* " */){captureSegment(state,captureStart,state.position,true);state.position++;return true;}else if(ch===0x5C/* \ */){captureSegment(state,captureStart,state.position,true);ch=state.input.charCodeAt(++state.position);if(is_EOL(ch)){skipSeparationSpace(state,false,nodeIndent);// TODO: rework to inline fn with no type cast? -}else if(ch<256&&simpleEscapeCheck[ch]){state.result+=simpleEscapeMap[ch];state.position++;}else if((tmp=escapedHexLen(ch))>0){hexLength=tmp;hexResult=0;for(;hexLength>0;hexLength--){ch=state.input.charCodeAt(++state.position);if((tmp=fromHexCode(ch))>=0){hexResult=(hexResult<<4)+tmp;}else {throwError(state,'expected hexadecimal character');}}state.result+=charFromCodepoint(hexResult);state.position++;}else {throwError(state,'unknown escape sequence');}captureStart=captureEnd=state.position;}else if(is_EOL(ch)){captureSegment(state,captureStart,captureEnd,true);writeFoldedLines(state,skipSeparationSpace(state,false,nodeIndent));captureStart=captureEnd=state.position;}else if(state.position===state.lineStart&&testDocumentSeparator(state)){throwError(state,'unexpected end of the document within a double quoted scalar');}else {state.position++;captureEnd=state.position;}}throwError(state,'unexpected end of the stream within a double quoted scalar');}function readFlowCollection(state,nodeIndent){var readNext=true,_line,_tag=state.tag,_result,_anchor=state.anchor,following,terminator,isPair,isExplicitPair,isMapping,overridableKeys={},keyNode,keyTag,valueNode,ch;ch=state.input.charCodeAt(state.position);if(ch===0x5B/* [ */){terminator=0x5D;/* ] */isMapping=false;_result=[];}else if(ch===0x7B/* { */){terminator=0x7D;/* } */isMapping=true;_result={};}else {return false;}if(state.anchor!==null){state.anchorMap[state.anchor]=_result;}ch=state.input.charCodeAt(++state.position);while(ch!==0){skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if(ch===terminator){state.position++;state.tag=_tag;state.anchor=_anchor;state.kind=isMapping?'mapping':'sequence';state.result=_result;return true;}else if(!readNext){throwError(state,'missed comma between flow collection entries');}keyTag=keyNode=valueNode=null;isPair=isExplicitPair=false;if(ch===0x3F/* ? */){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)){isPair=isExplicitPair=true;state.position++;skipSeparationSpace(state,true,nodeIndent);}}_line=state.line;composeNode(state,nodeIndent,CONTEXT_FLOW_IN,false,true);keyTag=state.tag;keyNode=state.result;skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if((isExplicitPair||state.line===_line)&&ch===0x3A/* : */){isPair=true;ch=state.input.charCodeAt(++state.position);skipSeparationSpace(state,true,nodeIndent);composeNode(state,nodeIndent,CONTEXT_FLOW_IN,false,true);valueNode=state.result;}if(isMapping){storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,valueNode);}else if(isPair){_result.push(storeMappingPair(state,null,overridableKeys,keyTag,keyNode,valueNode));}else {_result.push(keyNode);}skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if(ch===0x2C/* , */){readNext=true;ch=state.input.charCodeAt(++state.position);}else {readNext=false;}}throwError(state,'unexpected end of the stream within a flow collection');}function readBlockScalar(state,nodeIndent){var captureStart,folding,chomping=CHOMPING_CLIP,didReadContent=false,detectedIndent=false,textIndent=nodeIndent,emptyLines=0,atMoreIndented=false,tmp,ch;ch=state.input.charCodeAt(state.position);if(ch===0x7C/* | */){folding=false;}else if(ch===0x3E/* > */){folding=true;}else {return false;}state.kind='scalar';state.result='';while(ch!==0){ch=state.input.charCodeAt(++state.position);if(ch===0x2B/* + */||ch===0x2D/* - */){if(CHOMPING_CLIP===chomping){chomping=ch===0x2B/* + */?CHOMPING_KEEP:CHOMPING_STRIP;}else {throwError(state,'repeat of a chomping mode identifier');}}else if((tmp=fromDecimalCode(ch))>=0){if(tmp===0){throwError(state,'bad explicit indentation width of a block scalar; it cannot be less than one');}else if(!detectedIndent){textIndent=nodeIndent+tmp-1;detectedIndent=true;}else {throwError(state,'repeat of an indentation width identifier');}}else {break;}}if(is_WHITE_SPACE(ch)){do{ch=state.input.charCodeAt(++state.position);}while(is_WHITE_SPACE(ch));if(ch===0x23/* # */){do{ch=state.input.charCodeAt(++state.position);}while(!is_EOL(ch)&&ch!==0);}}while(ch!==0){readLineBreak(state);state.lineIndent=0;ch=state.input.charCodeAt(state.position);while((!detectedIndent||state.lineIndenttextIndent){textIndent=state.lineIndent;}if(is_EOL(ch)){emptyLines++;continue;}// End of the scalar. -if(state.lineIndentnodeIndent)&&ch!==0){throwError(state,'bad indentation of a sequence entry');}else if(state.lineIndentnodeIndent){if(composeNode(state,nodeIndent,CONTEXT_BLOCK_OUT,true,allowCompact)){if(atExplicitKey){keyNode=state.result;}else {valueNode=state.result;}}if(!atExplicitKey){storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,valueNode,_line,_pos);keyTag=keyNode=valueNode=null;}skipSeparationSpace(state,true,-1);ch=state.input.charCodeAt(state.position);}if(state.lineIndent>nodeIndent&&ch!==0){throwError(state,'bad indentation of a mapping entry');}else if(state.lineIndent */);if(state.positionparent, 0: this=parent, -1: thisparentIndent){indentStatus=1;}else if(state.lineIndent===parentIndent){indentStatus=0;}else if(state.lineIndentparentIndent){indentStatus=1;}else if(state.lineIndent===parentIndent){indentStatus=0;}else if(state.lineIndent [0]" -// -if(state.result!==null&&state.kind!=='scalar'){throwError(state,'unacceptable node kind for ! tag; it should be "scalar", not "'+state.kind+'"');}for(typeIndex=0,typeQuantity=state.implicitTypes.length;typeIndex tag; it should be "'+type.kind+'", not "'+state.kind+'"');}if(!type.resolve(state.result)){// `state.result` updated in resolver if matched -throwError(state,'cannot resolve a node with !<'+state.tag+'> explicit tag');}else {state.result=type.construct(state.result);if(state.anchor!==null){state.anchorMap[state.anchor]=state.result;}}}else {throwError(state,'unknown tag !<'+state.tag+'>');}}if(state.listener!==null){state.listener('close',state);}return state.tag!==null||state.anchor!==null||hasContent;}function readDocument(state){var documentStart=state.position,_position,directiveName,directiveArgs,hasDirectives=false,ch;state.version=null;state.checkLineBreaks=state.legacy;state.tagMap={};state.anchorMap={};while((ch=state.input.charCodeAt(state.position))!==0){skipSeparationSpace(state,true,-1);ch=state.input.charCodeAt(state.position);if(state.lineIndent>0||ch!==0x25/* % */){break;}hasDirectives=true;ch=state.input.charCodeAt(++state.position);_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch)){ch=state.input.charCodeAt(++state.position);}directiveName=state.input.slice(_position,state.position);directiveArgs=[];if(directiveName.length<1){throwError(state,'directive name must not be less than one character in length');}while(ch!==0){while(is_WHITE_SPACE(ch)){ch=state.input.charCodeAt(++state.position);}if(ch===0x23/* # */){do{ch=state.input.charCodeAt(++state.position);}while(ch!==0&&!is_EOL(ch));break;}if(is_EOL(ch))break;_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch)){ch=state.input.charCodeAt(++state.position);}directiveArgs.push(state.input.slice(_position,state.position));}if(ch!==0)readLineBreak(state);if(_hasOwnProperty$3.call(directiveHandlers,directiveName)){directiveHandlers[directiveName](state,directiveName,directiveArgs);}else {throwWarning(state,'unknown document directive "'+directiveName+'"');}}skipSeparationSpace(state,true,-1);if(state.lineIndent===0&&state.input.charCodeAt(state.position)===0x2D/* - */&&state.input.charCodeAt(state.position+1)===0x2D/* - */&&state.input.charCodeAt(state.position+2)===0x2D/* - */){state.position+=3;skipSeparationSpace(state,true,-1);}else if(hasDirectives){throwError(state,'directives end mark is expected');}composeNode(state,state.lineIndent-1,CONTEXT_BLOCK_OUT,false,true);skipSeparationSpace(state,true,-1);if(state.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart,state.position))){throwWarning(state,'non-ASCII line breaks are interpreted as content');}state.documents.push(state.result);if(state.position===state.lineStart&&testDocumentSeparator(state)){if(state.input.charCodeAt(state.position)===0x2E/* . */){state.position+=3;skipSeparationSpace(state,true,-1);}return;}if(state.position */var CHAR_QUESTION$1=0x3F;/* ? */var CHAR_COMMERCIAL_AT$1=0x40;/* @ */var CHAR_LEFT_SQUARE_BRACKET$1=0x5B;/* [ */var CHAR_RIGHT_SQUARE_BRACKET$1=0x5D;/* ] */var CHAR_GRAVE_ACCENT$1=0x60;/* ` */var CHAR_LEFT_CURLY_BRACKET$1=0x7B;/* { */var CHAR_VERTICAL_LINE$1=0x7C;/* | */var CHAR_RIGHT_CURLY_BRACKET$1=0x7D;/* } */var ESCAPE_SEQUENCES$1={};ESCAPE_SEQUENCES$1[0x00]='\\0';ESCAPE_SEQUENCES$1[0x07]='\\a';ESCAPE_SEQUENCES$1[0x08]='\\b';ESCAPE_SEQUENCES$1[0x09]='\\t';ESCAPE_SEQUENCES$1[0x0A]='\\n';ESCAPE_SEQUENCES$1[0x0B]='\\v';ESCAPE_SEQUENCES$1[0x0C]='\\f';ESCAPE_SEQUENCES$1[0x0D]='\\r';ESCAPE_SEQUENCES$1[0x1B]='\\e';ESCAPE_SEQUENCES$1[0x22]='\\"';ESCAPE_SEQUENCES$1[0x5C]='\\\\';ESCAPE_SEQUENCES$1[0x85]='\\N';ESCAPE_SEQUENCES$1[0xA0]='\\_';ESCAPE_SEQUENCES$1[0x2028]='\\L';ESCAPE_SEQUENCES$1[0x2029]='\\P';var DEPRECATED_BOOLEANS_SYNTAX$1=['y','Y','yes','Yes','YES','on','On','ON','n','N','no','No','NO','off','Off','OFF'];function compileStyleMap$1(schema,map){var result,keys,index,length,tag,style,type;if(map===null)return {};result={};keys=Object.keys(map);for(index=0,length=keys.length;index” | “'” | “"” -&&c!==CHAR_SHARP$1&&c!==CHAR_AMPERSAND$1&&c!==CHAR_ASTERISK$1&&c!==CHAR_EXCLAMATION$1&&c!==CHAR_VERTICAL_LINE$1&&c!==CHAR_EQUALS&&c!==CHAR_GREATER_THAN$1&&c!==CHAR_SINGLE_QUOTE$1&&c!==CHAR_DOUBLE_QUOTE$1// | “%” | “@” | “`”) -&&c!==CHAR_PERCENT$1&&c!==CHAR_COMMERCIAL_AT$1&&c!==CHAR_GRAVE_ACCENT$1;}// Determines whether block indentation indicator is required. -function needIndentIndicator(string){var leadingSpaceRe=/^\n* /;return leadingSpaceRe.test(string);}var STYLE_PLAIN=1,STYLE_SINGLE=2,STYLE_LITERAL=3,STYLE_FOLDED=4,STYLE_DOUBLE=5;// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle(string,singleLineOnly,indentPerLevel,lineWidth,testAmbiguousType){var i;var char,prev_char;var hasLineBreak=false;var hasFoldableLine=false;// only checked if shouldTrackWidth -var shouldTrackWidth=lineWidth!==-1;var previousLineBreak=-1;// count the first line correctly -var plain=isPlainSafeFirst(string.charCodeAt(0))&&!isWhitespace(string.charCodeAt(string.length-1));if(singleLineOnly){// Case: no block styles. -// Check for disallowed characters to rule out plain and single. -for(i=0;i0?string.charCodeAt(i-1):null;plain=plain&&isPlainSafe(char,prev_char);}}else {// Case: block styles permitted. -for(i=0;ilineWidth&&string[previousLineBreak+1]!==' ';previousLineBreak=i;}}else if(!isPrintable(char)){return STYLE_DOUBLE;}prev_char=i>0?string.charCodeAt(i-1):null;plain=plain&&isPlainSafe(char,prev_char);}// in case the end is missing a \n -hasFoldableLine=hasFoldableLine||shouldTrackWidth&&i-previousLineBreak-1>lineWidth&&string[previousLineBreak+1]!==' ';}// Although every style can represent \n without escaping, prefer block styles -// for multiline, since they're more readable and they don't add empty lines. -// Also prefer folding a super-long line. -if(!hasLineBreak&&!hasFoldableLine){// Strings interpretable as another type have to be quoted; -// e.g. the string 'true' vs. the boolean true. -return plain&&!testAmbiguousType(string)?STYLE_PLAIN:STYLE_SINGLE;}// Edge case: block indentation indicator can only have one digit. -if(indentPerLevel>9&&needIndentIndicator(string)){return STYLE_DOUBLE;}// At this point we know block styles are valid. -// Prefer literal style unless we want to fold. -return hasFoldableLine?STYLE_FOLDED:STYLE_LITERAL;}// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// • No ending newline => unaffected; already using strip "-" chomping. -// • Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar$1(state,string,level,iskey){state.dump=function(){if(string.length===0){return "''";}if(!state.noCompatMode&&DEPRECATED_BOOLEANS_SYNTAX$1.indexOf(string)!==-1){return "'"+string+"'";}var indent=state.indent*Math.max(1,level);// no 0-indent scalars -// As indentation gets deeper, let the width decrease monotonically -// to the lower bound min(state.lineWidth, 40). -// Note that this implies -// state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. -// state.lineWidth > 40 + state.indent: width decreases until the lower bound. -// This behaves better than a constant minimum width which disallows narrower options, -// or an indent threshold which causes the width to suddenly increase. -var lineWidth=state.lineWidth===-1?-1:Math.max(Math.min(state.lineWidth,40),state.lineWidth-indent);// Without knowing if keys are implicit/explicit, assume implicit for safety. -var singleLineOnly=iskey// No block styles in flow mode. -||state.flowLevel>-1&&level>=state.flowLevel;function testAmbiguity(string){return testImplicitResolving$1(state,string);}switch(chooseScalarStyle(string,singleLineOnly,state.indent,lineWidth,testAmbiguity)){case STYLE_PLAIN:return string;case STYLE_SINGLE:return "'"+string.replace(/'/g,"''")+"'";case STYLE_LITERAL:return '|'+blockHeader(string,state.indent)+dropEndingNewline(indentString$1(string,indent));case STYLE_FOLDED:return '>'+blockHeader(string,state.indent)+dropEndingNewline(indentString$1(foldString(string,lineWidth),indent));case STYLE_DOUBLE:return '"'+escapeString(string)+'"';default:throw new exception$1('impossible error: invalid scalar style');}}();}// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string,indentPerLevel){var indentIndicator=needIndentIndicator(string)?String(indentPerLevel):'';// note the special case: the string '\n' counts as a "trailing" empty line. -var clip=string[string.length-1]==='\n';var keep=clip&&(string[string.length-2]==='\n'||string==='\n');var chomp=keep?'+':clip?'':'-';return indentIndicator+chomp+'\n';}// (See the note for writeScalar.) -function dropEndingNewline(string){return string[string.length-1]==='\n'?string.slice(0,-1):string;}// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string,width){// In folded style, $k$ consecutive newlines output as $k+1$ newlines— -// unless they're before or after a more-indented line, or at the very -// beginning or end, in which case $k$ maps to $k$. -// Therefore, parse each chunk as newline(s) followed by a content line. -var lineRe=/(\n+)([^\n]*)/g;// first line (possibly an empty line) -var result=function(){var nextLF=string.indexOf('\n');nextLF=nextLF!==-1?nextLF:string.length;lineRe.lastIndex=nextLF;return foldLine$1(string.slice(0,nextLF),width);}();// If we haven't reached the first content line yet, don't add an extra \n. -var prevMoreIndented=string[0]==='\n'||string[0]===' ';var moreIndented;// rest of the lines -var match;while(match=lineRe.exec(string)){var prefix=match[1],line=match[2];moreIndented=line[0]===' ';result+=prefix+(!prevMoreIndented&&!moreIndented&&line!==''?'\n':'')+foldLine$1(line,width);prevMoreIndented=moreIndented;}return result;}// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine$1(line,width){if(line===''||line[0]===' ')return line;// Since a more-indented line adds a \n, breaks can't be followed by a space. -var breakRe=/ [^ ]/g;// note: the match index will always be <= length-2. -var match;// start is an inclusive index. end, curr, and next are exclusive. -var start=0,end,curr=0,next=0;var result='';// Invariants: 0 <= start <= length-1. -// 0 <= curr <= next <= max(0, length-2). curr - start <= width. -// Inside the loop: -// A match implies length >= 2, so curr and next are <= length-2. -while(match=breakRe.exec(line)){next=match.index;// maintain invariant: curr - start <= width -if(next-start>width){end=curr>start?curr:next;// derive end <= length-2 -result+='\n'+line.slice(start,end);// skip the space that was output as \n -start=end+1;// derive start <= length-1 -}curr=next;}// By the invariants, start <= length-1, so there is something left over. -// It is either the whole string or a part starting from non-whitespace. -result+='\n';// Insert a break if the remainder is too long and there is a break available. -if(line.length-start>width&&curr>start){result+=line.slice(start,curr)+'\n'+line.slice(curr+1);}else {result+=line.slice(start);}return result.slice(1);// drop extra \n joiner -}// Escapes a double-quoted string. -function escapeString(string){var result='';var char,nextChar;var escapeSeq;for(var i=0;i=0xD800&&char<=0xDBFF/* high surrogate */){nextChar=string.charCodeAt(i+1);if(nextChar>=0xDC00&&nextChar<=0xDFFF/* low surrogate */){// Combine the surrogate pair and store it escaped. -result+=encodeHex$1((char-0xD800)*0x400+nextChar-0xDC00+0x10000);// Advance index one extra since we already used that char here. -i++;continue;}}escapeSeq=ESCAPE_SEQUENCES$1[char];result+=!escapeSeq&&isPrintable(char)?string[i]:escapeSeq||encodeHex$1(char);}return result;}function writeFlowSequence$1(state,level,object){var _result='',_tag=state.tag,index,length;for(index=0,length=object.length;index1024)pairBuffer+='? ';pairBuffer+=state.dump+(state.condenseFlow?'"':'')+':'+(state.condenseFlow?'':' ');if(!writeNode$1(state,level,objectValue,false,false)){continue;// Skip this pair because of invalid value. -}pairBuffer+=state.dump;// Both key and value are valid. -_result+=pairBuffer;}state.tag=_tag;state.dump='{'+_result+'}';}function writeBlockMapping$1(state,level,object,compact){var _result='',_tag=state.tag,objectKeyList=Object.keys(object),index,length,objectKey,objectValue,explicitPair,pairBuffer;// Allow sorting keys so that the output file is deterministic -if(state.sortKeys===true){// Default sorting -objectKeyList.sort();}else if(typeof state.sortKeys==='function'){// Custom sort function -objectKeyList.sort(state.sortKeys);}else if(state.sortKeys){// Something is wrong -throw new exception$1('sortKeys must be a boolean or a function');}for(index=0,length=objectKeyList.length;index1024;if(explicitPair){if(state.dump&&CHAR_LINE_FEED$1===state.dump.charCodeAt(0)){pairBuffer+='?';}else {pairBuffer+='? ';}}pairBuffer+=state.dump;if(explicitPair){pairBuffer+=generateNextLine$1(state,level);}if(!writeNode$1(state,level+1,objectValue,true,explicitPair)){continue;// Skip this pair because of invalid value. -}if(state.dump&&CHAR_LINE_FEED$1===state.dump.charCodeAt(0)){pairBuffer+=':';}else {pairBuffer+=': ';}pairBuffer+=state.dump;// Both key and value are valid. -_result+=pairBuffer;}state.tag=_tag;state.dump=_result||'{}';// Empty mapping if no valid pairs. -}function detectType$1(state,object,explicit){var _result,typeList,index,length,type,style;typeList=explicit?state.explicitTypes:state.implicitTypes;for(index=0,length=typeList.length;index tag resolver accepts not "'+style+'" style');}state.dump=_result;}return true;}}return false;}// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode$1(state,level,object,block,compact,iskey){state.tag=null;state.dump=object;if(!detectType$1(state,object,false)){detectType$1(state,object,true);}var type=_toString$3.call(state.dump);if(block){block=state.flowLevel<0||state.flowLevel>level;}var objectOrArray=type==='[object Object]'||type==='[object Array]',duplicateIndex,duplicate;if(objectOrArray){duplicateIndex=state.duplicates.indexOf(object);duplicate=duplicateIndex!==-1;}if(state.tag!==null&&state.tag!=='?'||duplicate||state.indent!==2&&level>0){compact=false;}if(duplicate&&state.usedDuplicates[duplicateIndex]){state.dump='*ref_'+duplicateIndex;}else {if(objectOrArray&&duplicate&&!state.usedDuplicates[duplicateIndex]){state.usedDuplicates[duplicateIndex]=true;}if(type==='[object Object]'){if(block&&Object.keys(state.dump).length!==0){writeBlockMapping$1(state,level,state.dump,compact);if(duplicate){state.dump='&ref_'+duplicateIndex+state.dump;}}else {writeFlowMapping$1(state,level,state.dump);if(duplicate){state.dump='&ref_'+duplicateIndex+' '+state.dump;}}}else if(type==='[object Array]'){var arrayLevel=state.noArrayIndent&&level>0?level-1:level;if(block&&state.dump.length!==0){writeBlockSequence$1(state,arrayLevel,state.dump,compact);if(duplicate){state.dump='&ref_'+duplicateIndex+state.dump;}}else {writeFlowSequence$1(state,arrayLevel,state.dump);if(duplicate){state.dump='&ref_'+duplicateIndex+' '+state.dump;}}}else if(type==='[object String]'){if(state.tag!=='?'){writeScalar$1(state,state.dump,level,iskey);}}else {if(state.skipInvalid)return false;throw new exception$1('unacceptable kind of an object to dump '+type);}if(state.tag!==null&&state.tag!=='?'){state.dump='!<'+state.tag+'> '+state.dump;}}return true;}function getDuplicateReferences$1(object,state){var objects=[],duplicatesIndexes=[],index,length;inspectNode$1(object,objects,duplicatesIndexes);for(index=0,length=duplicatesIndexes.length;index} - */read(file){return new Promise((resolve,reject)=>{let path;try{path=url_1.toFileSystemPath(file.url);}catch(err){reject(new ResolverError$2(ono$3.uri(err,`Malformed URI: ${file.url}`),file.url));}// console.log('Opening file: %s', path); -try{fs.readFile(path,(err,data)=>{if(err){reject(new ResolverError$2(ono$3(err,`Error opening file "${path}"`),path));}else {resolve(data);}});}catch(err){reject(new ResolverError$2(ono$3(err,`Error opening file "${path}"`),path));}});}};var http=/*@__PURE__*/getAugmentedNamespace(http$2);const{ono:ono$2}=require$$1;const{ResolverError:ResolverError$1}=errors;var http_1={/** - * The order that this resolver will run, in relation to other resolvers. - * - * @type {number} - */order:200,/** - * HTTP headers to send when downloading files. - * - * @example: - * { - * "User-Agent": "JSON Schema $Ref Parser", - * Accept: "application/json" - * } - * - * @type {object} - */headers:null,/** - * HTTP request timeout (in milliseconds). - * - * @type {number} - */timeout:5000,// 5 seconds -/** - * The maximum number of HTTP redirects to follow. - * To disable automatic following of redirects, set this to zero. - * - * @type {number} - */redirects:5,/** - * The `withCredentials` option of XMLHttpRequest. - * Set this to `true` if you're downloading files from a CORS-enabled server that requires authentication - * - * @type {boolean} - */withCredentials:false,/** - * Determines whether this resolver can read a given file reference. - * Resolvers that return true will be tried in order, until one successfully resolves the file. - * Resolvers that return false will not be given a chance to resolve the file. - * - * @param {object} file - An object containing information about the referenced file - * @param {string} file.url - The full URL of the referenced file - * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.) - * @returns {boolean} - */canRead(file){return url_1.isHttp(file.url);},/** - * Reads the given URL and returns its raw contents as a Buffer. - * - * @param {object} file - An object containing information about the referenced file - * @param {string} file.url - The full URL of the referenced file - * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.) - * @returns {Promise} - */read(file){let u=url_1.parse(file.url);if(browser$1.browser&&!u.protocol){// Use the protocol of the current page -u.protocol=url_1.parse(location.href).protocol;}return download(u,this);}};/** - * Downloads the given file. - * - * @param {Url|string} u - The url to download (can be a parsed {@link Url} object) - * @param {object} httpOptions - The `options.resolve.http` object - * @param {number} [redirects] - The redirect URLs that have already been followed - * - * @returns {Promise} - * The promise resolves with the raw downloaded data, or rejects if there is an HTTP error. - */function download(u,httpOptions,redirects){return new Promise((resolve,reject)=>{u=url_1.parse(u);redirects=redirects||[];redirects.push(u.href);get(u,httpOptions).then(res=>{if(res.statusCode>=400){throw ono$2({status:res.statusCode},`HTTP ERROR ${res.statusCode}`);}else if(res.statusCode>=300){if(redirects.length>httpOptions.redirects){reject(new ResolverError$1(ono$2({status:res.statusCode},`Error downloading ${redirects[0]}. \nToo many redirects: \n ${redirects.join(" \n ")}`)));}else if(!res.headers.location){throw ono$2({status:res.statusCode},`HTTP ${res.statusCode} redirect with no location header`);}else {// console.log('HTTP %d redirect %s -> %s', res.statusCode, u.href, res.headers.location); -let redirectTo=url_1.resolve(u,res.headers.location);download(redirectTo,httpOptions,redirects).then(resolve,reject);}}else {resolve(res.body||Buffer$1.alloc(0));}}).catch(err=>{reject(new ResolverError$1(ono$2(err,`Error downloading ${u.href}`),u.href));});});}/** - * Sends an HTTP GET request. - * - * @param {Url} u - A parsed {@link Url} object - * @param {object} httpOptions - The `options.resolve.http` object - * - * @returns {Promise} - * The promise resolves with the HTTP Response object. - */function get(u,httpOptions){return new Promise((resolve,reject)=>{// console.log('GET', u.href); -let protocol=u.protocol==="https:"?http:http;let req=protocol.get({hostname:u.hostname,port:u.port,path:u.path,auth:u.auth,protocol:u.protocol,headers:httpOptions.headers||{},withCredentials:httpOptions.withCredentials});if(typeof req.setTimeout==="function"){req.setTimeout(httpOptions.timeout);}req.on("timeout",()=>{req.abort();});req.on("error",reject);req.once("response",res=>{res.body=Buffer$1.alloc(0);res.on("data",data=>{res.body=Buffer$1.concat([res.body,Buffer$1.from(data)]);});res.on("error",reject);res.on("end",()=>{resolve(res);});});});}/* eslint lines-around-comment: [2, {beforeBlockComment: false}] */var options=$RefParserOptions;/** - * Options that determine how JSON schemas are parsed, resolved, and dereferenced. - * - * @param {object|$RefParserOptions} [options] - Overridden options - * @constructor - */function $RefParserOptions(options){merge$1(this,$RefParserOptions.defaults);merge$1(this,options);}$RefParserOptions.defaults={/** - * Determines how different types of files will be parsed. - * - * You can add additional parsers of your own, replace an existing one with - * your own implementation, or disable any parser by setting it to false. - */parse:{json:json$2,yaml:yaml_1,text:text,binary:binary$1},/** - * Determines how JSON References will be resolved. - * - * You can add additional resolvers of your own, replace an existing one with - * your own implementation, or disable any resolver by setting it to false. - */resolve:{file:file,http:http_1,/** - * Determines whether external $ref pointers will be resolved. - * If this option is disabled, then none of above resolvers will be called. - * Instead, external $ref pointers will simply be ignored. - * - * @type {boolean} - */external:true},/** - * By default, JSON Schema $Ref Parser throws the first error it encounters. Setting `continueOnError` to `true` - * causes it to keep processing as much as possible and then throw a single error that contains all errors - * that were encountered. - */continueOnError:false,/** - * Determines the types of JSON references that are allowed. - */dereference:{/** - * Dereference circular (recursive) JSON references? - * If false, then a {@link ReferenceError} will be thrown if a circular reference is found. - * If "ignore", then circular references will not be dereferenced. - * - * @type {boolean|string} - */circular:true}};/** - * Merges the properties of the source object into the target object. - * - * @param {object} target - The object that we're populating - * @param {?object} source - The options that are being merged - * @returns {object} - */function merge$1(target,source){if(isMergeable(source)){let keys=Object.keys(source);for(let i=0;i{// Most people will expect references to be bundled into the the "definitions" property, -// so we always crawl that property first, if it exists. -if(a==="definitions"){return -1;}else if(b==="definitions"){return 1;}else {// Otherwise, crawl the keys based on their length. -// This produces the shortest possible bundled references -return a.length-b.length;}});// eslint-disable-next-line no-shadow -for(let key of keys){let keyPath=pointer.join(path,key);let keyPathFromRoot=pointer.join(pathFromRoot,key);let value=obj[key];if(ref.isAllowed$Ref(value)){inventory$Ref(obj,key,path,keyPathFromRoot,indirections,inventory,$refs,options);}else {crawl$1(obj,key,keyPath,keyPathFromRoot,indirections,inventory,$refs,options);}}}}}/** - * Inventories the given JSON Reference (i.e. records detailed information about it so we can - * optimize all $refs in the schema), and then crawls the resolved value. - * - * @param {object} $refParent - The object that contains a JSON Reference as one of its keys - * @param {string} $refKey - The key in `$refParent` that is a JSON Reference - * @param {string} path - The full path of the JSON Reference at `$refKey`, possibly with a JSON Pointer in the hash - * @param {string} pathFromRoot - The path of the JSON Reference at `$refKey`, from the schema root - * @param {object[]} inventory - An array of already-inventoried $ref pointers - * @param {$Refs} $refs - * @param {$RefParserOptions} options - */function inventory$Ref($refParent,$refKey,path,pathFromRoot,indirections,inventory,$refs,options){let $ref=$refKey===null?$refParent:$refParent[$refKey];let $refPath=url_1.resolve(path,$ref.$ref);let pointer$1=$refs._resolve($refPath,pathFromRoot,options);if(pointer$1===null){return;}let depth=pointer.parse(pathFromRoot).length;let file=url_1.stripHash(pointer$1.path);let hash=url_1.getHash(pointer$1.path);let external=file!==$refs._root$Ref.path;let extended=ref.isExtended$Ref($ref);indirections+=pointer$1.indirections;let existingEntry=findInInventory(inventory,$refParent,$refKey);if(existingEntry){// This $Ref has already been inventoried, so we don't need to process it again -if(depth{if(a.file!==b.file){// Group all the $refs that point to the same file -return a.file1){const extraKeys={};for(let key of refKeys){if(key!=="$ref"&&!(key in cache.value)){extraKeys[key]=$ref[key];}}return {circular:cache.circular,value:Object.assign({},cache.value,extraKeys)};}return cache;}let pointer=$refs._resolve($refPath,path,options);if(pointer===null){return {circular:false,value:null};}// Check for circular references -let directCircular=pointer.circular;let circular=directCircular||parents.indexOf(pointer.value)!==-1;circular&&foundCircularReference(path,$refs,options);// Dereference the JSON reference -let dereferencedValue=ref.dereference($ref,pointer.value);// Crawl the dereferenced value (unless it's circular) -if(!circular){// Determine if the dereferenced value is circular -let dereferenced=crawl(dereferencedValue,pointer.path,pathFromRoot,parents,processedObjects,dereferencedCache,$refs,options);circular=dereferenced.circular;dereferencedValue=dereferenced.value;}if(circular&&!directCircular&&options.dereference.circular==="ignore"){// The user has chosen to "ignore" circular references, so don't change the value -dereferencedValue=$ref;}if(directCircular){// The pointer is a DIRECT circular reference (i.e. it references itself). -// So replace the $ref path with the absolute path from the JSON Schema root -dereferencedValue.$ref=pathFromRoot;}const dereferencedObject={circular,value:dereferencedValue};// only cache if no extra properties than $ref -if(Object.keys($ref).length===1){dereferencedCache[$refPath]=dereferencedObject;}return dereferencedObject;}/** - * Called when a circular reference is found. - * It sets the {@link $Refs#circular} flag, and throws an error if options.dereference.circular is false. - * - * @param {string} keyPath - The JSON Reference path of the circular reference - * @param {$Refs} $refs - * @param {$RefParserOptions} options - * @returns {boolean} - always returns true, to indicate that a circular reference was found - */function foundCircularReference(keyPath,$refs,options){$refs.circular=true;if(!options.dereference.circular){throw ono$1.reference(`Circular $ref pointer found at ${keyPath}`);}return true;}var next=commonjsGlobal.process&&browser$1.nextTick||commonjsGlobal.setImmediate||function(f){setTimeout(f,0);};var callMeMaybe=function maybe(cb,promise){if(cb){promise.then(function(result){next(function(){cb(null,result);});},function(err){next(function(){cb(err);});});return undefined;}else {return promise;}};const{JSONParserError,InvalidPointerError,MissingPointerError,ResolverError,ParserError:ParserError$1,UnmatchedParserError,UnmatchedResolverError,isHandledError,JSONParserErrorGroup}=errors;const{ono}=require$$1;var lib$1=$RefParser;var _default=$RefParser;var JSONParserError_1=JSONParserError;var InvalidPointerError_1=InvalidPointerError;var MissingPointerError_1=MissingPointerError;var ResolverError_1=ResolverError;var ParserError_1=ParserError$1;var UnmatchedParserError_1=UnmatchedParserError;var UnmatchedResolverError_1=UnmatchedResolverError;/** - * This class parses a JSON schema, builds a map of its JSON references and their resolved values, - * and provides methods for traversing, manipulating, and dereferencing those references. - * - * @constructor - */function $RefParser(){/** - * The parsed (and possibly dereferenced) JSON schema object - * - * @type {object} - * @readonly - */this.schema=null;/** - * The resolved JSON references - * - * @type {$Refs} - * @readonly - */this.$refs=new refs();}/** - * Parses the given JSON schema. - * This method does not resolve any JSON references. - * It just reads a single file in JSON or YAML format, and parse it as a JavaScript object. - * - * @param {string} [path] - The file path or URL of the JSON schema - * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`. - * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed - * @param {function} [callback] - An error-first callback. The second parameter is the parsed JSON schema object. - * @returns {Promise} - The returned promise resolves with the parsed JSON schema object. - */$RefParser.parse=function parse(path,schema,options,callback){let Class=this;// eslint-disable-line consistent-this -let instance=new Class();return instance.parse.apply(instance,arguments);};/** - * Parses the given JSON schema. - * This method does not resolve any JSON references. - * It just reads a single file in JSON or YAML format, and parse it as a JavaScript object. - * - * @param {string} [path] - The file path or URL of the JSON schema - * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`. - * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed - * @param {function} [callback] - An error-first callback. The second parameter is the parsed JSON schema object. - * @returns {Promise} - The returned promise resolves with the parsed JSON schema object. - */$RefParser.prototype.parse=async function parse(path,schema,options,callback){let args=normalizeArgs_1(arguments);let promise;if(!args.path&&!args.schema){let err=ono(`Expected a file path, URL, or object. Got ${args.path||args.schema}`);return callMeMaybe(args.callback,Promise.reject(err));}// Reset everything -this.schema=null;this.$refs=new refs();// If the path is a filesystem path, then convert it to a URL. -// NOTE: According to the JSON Reference spec, these should already be URLs, -// but, in practice, many people use local filesystem paths instead. -// So we're being generous here and doing the conversion automatically. -// This is not intended to be a 100% bulletproof solution. -// If it doesn't work for your use-case, then use a URL instead. -let pathType="http";if(url_1.isFileSystemPath(args.path)){args.path=url_1.fromFileSystemPath(args.path);pathType="file";}// Resolve the absolute path of the schema -args.path=url_1.resolve(url_1.cwd(),args.path);if(args.schema&&typeof args.schema==="object"){// A schema object was passed-in. -// So immediately add a new $Ref with the schema object as its value -let $ref=this.$refs._add(args.path);$ref.value=args.schema;$ref.pathType=pathType;promise=Promise.resolve(args.schema);}else {// Parse the schema file/url -promise=parse_1(args.path,this.$refs,args.options);}let me=this;try{let result=await promise;if(result!==null&&typeof result==="object"&&!Buffer$1.isBuffer(result)){me.schema=result;return callMeMaybe(args.callback,Promise.resolve(me.schema));}else if(args.options.continueOnError){me.schema=null;// it's already set to null at line 79, but let's set it again for the sake of readability -return callMeMaybe(args.callback,Promise.resolve(me.schema));}else {throw ono.syntax(`"${me.$refs._root$Ref.path||result}" is not a valid JSON Schema`);}}catch(err){if(!args.options.continueOnError||!isHandledError(err)){return callMeMaybe(args.callback,Promise.reject(err));}if(this.$refs._$refs[url_1.stripHash(args.path)]){this.$refs._$refs[url_1.stripHash(args.path)].addError(err);}return callMeMaybe(args.callback,Promise.resolve(null));}};/** - * Parses the given JSON schema and resolves any JSON references, including references in - * externally-referenced files. - * - * @param {string} [path] - The file path or URL of the JSON schema - * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`. - * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed and resolved - * @param {function} [callback] - * - An error-first callback. The second parameter is a {@link $Refs} object containing the resolved JSON references - * - * @returns {Promise} - * The returned promise resolves with a {@link $Refs} object containing the resolved JSON references - */$RefParser.resolve=function resolve(path,schema,options,callback){let Class=this;// eslint-disable-line consistent-this -let instance=new Class();return instance.resolve.apply(instance,arguments);};/** - * Parses the given JSON schema and resolves any JSON references, including references in - * externally-referenced files. - * - * @param {string} [path] - The file path or URL of the JSON schema - * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`. - * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed and resolved - * @param {function} [callback] - * - An error-first callback. The second parameter is a {@link $Refs} object containing the resolved JSON references - * - * @returns {Promise} - * The returned promise resolves with a {@link $Refs} object containing the resolved JSON references - */$RefParser.prototype.resolve=async function resolve(path,schema,options,callback){let me=this;let args=normalizeArgs_1(arguments);try{await this.parse(args.path,args.schema,args.options);await resolveExternal_1(me,args.options);finalize(me);return callMeMaybe(args.callback,Promise.resolve(me.$refs));}catch(err){return callMeMaybe(args.callback,Promise.reject(err));}};/** - * Parses the given JSON schema, resolves any JSON references, and bundles all external references - * into the main JSON schema. This produces a JSON schema that only has *internal* references, - * not any *external* references. - * - * @param {string} [path] - The file path or URL of the JSON schema - * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`. - * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed, resolved, and dereferenced - * @param {function} [callback] - An error-first callback. The second parameter is the bundled JSON schema object - * @returns {Promise} - The returned promise resolves with the bundled JSON schema object. - */$RefParser.bundle=function bundle(path,schema,options,callback){let Class=this;// eslint-disable-line consistent-this -let instance=new Class();return instance.bundle.apply(instance,arguments);};/** - * Parses the given JSON schema, resolves any JSON references, and bundles all external references - * into the main JSON schema. This produces a JSON schema that only has *internal* references, - * not any *external* references. - * - * @param {string} [path] - The file path or URL of the JSON schema - * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`. - * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed, resolved, and dereferenced - * @param {function} [callback] - An error-first callback. The second parameter is the bundled JSON schema object - * @returns {Promise} - The returned promise resolves with the bundled JSON schema object. - */$RefParser.prototype.bundle=async function bundle(path,schema,options,callback){let me=this;let args=normalizeArgs_1(arguments);try{await this.resolve(args.path,args.schema,args.options);bundle_1(me,args.options);finalize(me);return callMeMaybe(args.callback,Promise.resolve(me.schema));}catch(err){return callMeMaybe(args.callback,Promise.reject(err));}};/** - * Parses the given JSON schema, resolves any JSON references, and dereferences the JSON schema. - * That is, all JSON references are replaced with their resolved values. - * - * @param {string} [path] - The file path or URL of the JSON schema - * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`. - * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed, resolved, and dereferenced - * @param {function} [callback] - An error-first callback. The second parameter is the dereferenced JSON schema object - * @returns {Promise} - The returned promise resolves with the dereferenced JSON schema object. - */$RefParser.dereference=function dereference(path,schema,options,callback){let Class=this;// eslint-disable-line consistent-this -let instance=new Class();return instance.dereference.apply(instance,arguments);};/** - * Parses the given JSON schema, resolves any JSON references, and dereferences the JSON schema. - * That is, all JSON references are replaced with their resolved values. - * - * @param {string} [path] - The file path or URL of the JSON schema - * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`. - * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed, resolved, and dereferenced - * @param {function} [callback] - An error-first callback. The second parameter is the dereferenced JSON schema object - * @returns {Promise} - The returned promise resolves with the dereferenced JSON schema object. - */$RefParser.prototype.dereference=async function dereference(path,schema,options,callback){let me=this;let args=normalizeArgs_1(arguments);try{await this.resolve(args.path,args.schema,args.options);dereference_1(me,args.options);finalize(me);return callMeMaybe(args.callback,Promise.resolve(me.schema));}catch(err){return callMeMaybe(args.callback,Promise.reject(err));}};function finalize(parser){const errors=JSONParserErrorGroup.getParserErrors(parser);if(errors.length>0){throw new JSONParserErrorGroup(parser);}}lib$1.default=_default;lib$1.JSONParserError=JSONParserError_1;lib$1.InvalidPointerError=InvalidPointerError_1;lib$1.MissingPointerError=MissingPointerError_1;lib$1.ResolverError=ResolverError_1;lib$1.ParserError=ParserError_1;lib$1.UnmatchedParserError=UnmatchedParserError_1;lib$1.UnmatchedResolverError=UnmatchedResolverError_1;/** - * Test if a value is a plain object. - * @param {*} val - A value. - * @return {boolean} true if `val` is a plain object. - */const isObject$3=val=>val!=null&&typeof val==='object'&&Array.isArray(val)===false;/** - * Apply a JSON merge patch. The origin is *not* modified, but unchanged - * properties will be recycled. - * - * @param {*} origin - The value to patch. - * @param {*} patch - An [RFC 7396](https://tools.ietf.org/html/rfc7396) patch. - * @return {*} The patched value. - */function apply(origin,patch){if(!isObject$3(patch)){// If the patch is not an object, it replaces the origin. -return patch;}const result=!isObject$3(origin)?// Non objects are being replaced. -{}:// Make sure we never modify the origin. -Object.assign({},origin);Object.keys(patch).forEach(key=>{const patchVal=patch[key];if(patchVal===null){delete result[key];}else {result[key]=apply(result[key],patchVal);}});return result;}var esm=/*#__PURE__*/Object.freeze({__proto__:null,apply:apply,'default':apply});const ERROR_URL_PREFIX='https://github.com/asyncapi/parser-js/';const buildError=(from,to)=>{to.type=from.type.startsWith(ERROR_URL_PREFIX)?from.type:`${ERROR_URL_PREFIX}${from.type}`;to.title=from.title;if(from.detail)to.detail=from.detail;if(from.validationErrors)to.validationErrors=from.validationErrors;if(from.parsedJSON)to.parsedJSON=from.parsedJSON;if(from.location)to.location=from.location;if(from.refs)to.refs=from.refs;return to;};/** - * Represents an error while trying to parse an AsyncAPI document. - * @alias module:@asyncapi/parser#ParserError - * @extends Error - */class ParserError extends Error{/** - * Instantiates an error - * @param {Object} definition - * @param {String} definition.type The type of the error. - * @param {String} definition.title The message of the error. - * @param {String} [definition.detail] A string containing more detailed information about the error. - * @param {Object} [definition.parsedJSON] The resulting JSON after YAML transformation. Or the JSON object if the this was the initial format. - * @param {Object[]} [definition.validationErrors] The errors resulting from the validation. For more information, see https://www.npmjs.com/package/better-ajv-errors. - * @param {String} definition.validationErrors.title A validation error message. - * @param {String} definition.validationErrors.jsonPointer The path to the field that contains the error. Uses JSON Pointer format. - * @param {Number} definition.validationErrors.startLine The line where the error starts in the AsyncAPI document. - * @param {Number} definition.validationErrors.startColumn The column where the error starts in the AsyncAPI document. - * @param {Number} definition.validationErrors.startOffset The offset (starting from the beginning of the document) where the error starts in the AsyncAPI document. - * @param {Number} definition.validationErrors.endLine The line where the error ends in the AsyncAPI document. - * @param {Number} definition.validationErrors.endColumn The column where the error ends in the AsyncAPI document. - * @param {Number} definition.validationErrors.endOffset The offset (starting from the beginning of the document) where the error ends in the AsyncAPI document. - * @param {Object} [definition.location] Error location details after trying to parse an invalid JSON or YAML document. - * @param {Number} definition.location.startLine The line of the YAML/JSON document where the error starts. - * @param {Number} definition.location.startColumn The column of the YAML/JSON document where the error starts. - * @param {Number} definition.location.startOffset The offset (starting from the beginning of the document) where the error starts in the YAML/JSON AsyncAPI document. - * @param {Object[]} [definition.refs] Error details after trying to resolve $ref's. - * @param {String} definition.refs.title A validation error message. - * @param {String} definition.refs.jsonPointer The path to the field that contains the error. Uses JSON Pointer format. - * @param {Number} definition.refs.startLine The line where the error starts in the AsyncAPI document. - * @param {Number} definition.refs.startColumn The column where the error starts in the AsyncAPI document. - * @param {Number} definition.refs.startOffset The offset (starting from the beginning of the document) where the error starts in the AsyncAPI document. - * @param {Number} definition.refs.endLine The line where the error ends in the AsyncAPI document. - * @param {Number} definition.refs.endColumn The column where the error ends in the AsyncAPI document. - * @param {Number} definition.refs.endOffset The offset (starting from the beginning of the document) where the error ends in the AsyncAPI document. - */constructor(def){super();buildError(def,this);this.message=def.title;}/** - * Returns a JS object representation of the error. - */toJS(){return buildError(this,{});}}var parserError=ParserError;var yamlAST$1=createCommonjsModule(function(module,exports){Object.defineProperty(exports,"__esModule",{value:true});var Kind;(function(Kind){Kind[Kind["SCALAR"]=0]="SCALAR";Kind[Kind["MAPPING"]=1]="MAPPING";Kind[Kind["MAP"]=2]="MAP";Kind[Kind["SEQ"]=3]="SEQ";Kind[Kind["ANCHOR_REF"]=4]="ANCHOR_REF";Kind[Kind["INCLUDE_REF"]=5]="INCLUDE_REF";})(Kind=exports.Kind||(exports.Kind={}));function newMapping(key,value){var end=value?value.endPosition:key.endPosition+1;var node={key:key,value:value,startPosition:key.startPosition,endPosition:end,kind:Kind.MAPPING,parent:null,errors:[]};return node;}exports.newMapping=newMapping;function newAnchorRef(key,start,end,value){return {errors:[],referencesAnchor:key,value:value,startPosition:start,endPosition:end,kind:Kind.ANCHOR_REF,parent:null};}exports.newAnchorRef=newAnchorRef;function newScalar(v){if(v===void 0){v="";}var result={errors:[],startPosition:-1,endPosition:-1,value:""+v,kind:Kind.SCALAR,parent:null,doubleQuoted:false,rawValue:""+v};if(typeof v!=="string"){result.valueObject=v;}return result;}exports.newScalar=newScalar;function newItems(){return {errors:[],startPosition:-1,endPosition:-1,items:[],kind:Kind.SEQ,parent:null};}exports.newItems=newItems;function newSeq(){return newItems();}exports.newSeq=newSeq;function newMap(mappings){return {errors:[],startPosition:-1,endPosition:-1,mappings:mappings?mappings:[],kind:Kind.MAP,parent:null};}exports.newMap=newMap;});function isNothing(subject){return typeof subject==='undefined'||null===subject;}var isNothing_1=isNothing;function isObject$2(subject){return typeof subject==='object'&&null!==subject;}var isObject_1$1=isObject$2;function toArray(sequence){if(Array.isArray(sequence)){return sequence;}else if(isNothing(sequence)){return [];}return [sequence];}var toArray_1=toArray;function extend(target,source){var index,length,key,sourceKeys;if(source){sourceKeys=Object.keys(source);for(index=0,length=sourceKeys.length;index0&&-1==='\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start-1))){start-=1;if(this.position-start>maxLength/2-1){head=' ... ';start+=5;break;}}tail='';end=this.position;while(endmaxLength/2-1){tail=' ... ';end-=5;break;}}snippet=this.buffer.slice(start,end);return common.repeat(' ',indent)+head+snippet+tail+'\n'+common.repeat(' ',indent+this.position-start+head.length)+'^';};Mark.prototype.toString=function(compact){if(compact===void 0){compact=true;}var snippet,where='';if(this.name){where+='in "'+this.name+'" ';}where+='at line '+(this.line+1)+', column '+(this.column+1);if(!compact){snippet=this.getSnippet();if(snippet){where+=':\n'+snippet;}}return where;};return Mark;}();var mark=Mark;var TYPE_CONSTRUCTOR_OPTIONS=['kind','resolve','construct','instanceOf','predicate','represent','defaultStyle','styleAliases'];var YAML_NODE_KINDS=['scalar','sequence','mapping'];function compileStyleAliases(map){var result={};if(null!==map){Object.keys(map).forEach(function(style){map[style].forEach(function(alias){result[String(alias)]=style;});});}return result;}var Type=function(){function Type(tag,options){options=options||{};Object.keys(options).forEach(function(name){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(name)){throw new exception('Unknown option "'+name+'" is met in definition of "'+tag+'" YAML type.');}});this.tag=tag;this.kind=options['kind']||null;this.resolve=options['resolve']||function(){return true;};this.construct=options['construct']||function(data){return data;};this.instanceOf=options['instanceOf']||null;this.predicate=options['predicate']||null;this.represent=options['represent']||null;this.defaultStyle=options['defaultStyle']||null;this.styleAliases=compileStyleAliases(options['styleAliases']||null);if(-1===YAML_NODE_KINDS.indexOf(this.kind)){throw new exception('Unknown kind "'+this.kind+'" is specified for "'+tag+'" YAML type.');}}return Type;}();var Type_1=Type;var type$1=/*#__PURE__*/Object.defineProperty({Type:Type_1},'__esModule',{value:true});function compileList(schema,name,result){var exclude=[];schema.include.forEach(function(includedSchema){result=compileList(includedSchema,name,result);});schema[name].forEach(function(currentType){result.forEach(function(previousType,previousIndex){if(previousType.tag===currentType.tag){exclude.push(previousIndex);}});result.push(currentType);});return result.filter(function(type,index){return -1===exclude.indexOf(index);});}function compileMap(){var result={},index,length;function collectType(type){result[type.tag]=type;}for(index=0,length=arguments.length;index64){continue;}if(code<0){return false;}bitlen+=6;}return bitlen%8===0;}function constructYamlBinary(data){var idx,tailbits,input=data.replace(/[\r\n=]/g,''),max=input.length,map=BASE64_MAP,bits=0,result=[];for(idx=0;idx>16&0xFF);result.push(bits>>8&0xFF);result.push(bits&0xFF);}bits=bits<<6|map.indexOf(input.charAt(idx));}tailbits=max%4*6;if(tailbits===0){result.push(bits>>16&0xFF);result.push(bits>>8&0xFF);result.push(bits&0xFF);}else if(tailbits===18){result.push(bits>>10&0xFF);result.push(bits>>2&0xFF);}else if(tailbits===12){result.push(bits>>4&0xFF);}if(NodeBuffer){return new NodeBuffer(result);}return result;}function representYamlBinary(object){var result='',bits=0,idx,tail,max=object.length,map=BASE64_MAP;for(idx=0;idx>18&0x3F];result+=map[bits>>12&0x3F];result+=map[bits>>6&0x3F];result+=map[bits&0x3F];}bits=(bits<<8)+object[idx];}tail=max%3;if(tail===0){result+=map[bits>>18&0x3F];result+=map[bits>>12&0x3F];result+=map[bits>>6&0x3F];result+=map[bits&0x3F];}else if(tail===2){result+=map[bits>>10&0x3F];result+=map[bits>>4&0x3F];result+=map[bits<<2&0x3F];result+=map[64];}else if(tail===1){result+=map[bits>>2&0x3F];result+=map[bits<<4&0x3F];result+=map[64];result+=map[64];}return result;}function isBinary(object){return NodeBuffer&&NodeBuffer.isBuffer(object);}var binary=new type$1.Type('tag:yaml.org,2002:binary',{kind:'scalar',resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary});var _hasOwnProperty$1=Object.prototype.hasOwnProperty;var _toString$2=Object.prototype.toString;function resolveYamlOmap(data){if(null===data){return true;}var objectKeys=[],index,length,pair,pairKey,pairHasKey,object=data;for(index=0,length=object.length;index3){return false;}if(regexp[regexp.length-modifiers.length-1]!=='/'){return false;}regexp=regexp.slice(1,regexp.length-modifiers.length-1);}try{var dummy=new RegExp(regexp,modifiers);return true;}catch(error){return false;}}function constructJavascriptRegExp(data){var regexp=data,tail=/\/([gim]*)$/.exec(data),modifiers='';if('/'===regexp[0]){if(tail){modifiers=tail[1];}regexp=regexp.slice(1,regexp.length-modifiers.length-1);}return new RegExp(regexp,modifiers);}function representJavascriptRegExp(object){var result='/'+object.source+'/';if(object.global){result+='g';}if(object.multiline){result+='m';}if(object.ignoreCase){result+='i';}return result;}function isRegExp(object){return '[object RegExp]'===Object.prototype.toString.call(object);}var regexp=new type$1.Type('tag:yaml.org,2002:js/regexp',{kind:'scalar',resolve:resolveJavascriptRegExp,construct:constructJavascriptRegExp,predicate:isRegExp,represent:representJavascriptRegExp});var schema$2=new schema$4.Schema({include:[default_safe],explicit:[_undefined,regexp]});schema$4.Schema.DEFAULT=schema$2;var default_full=schema$2;var loader=createCommonjsModule(function(module,exports){Object.defineProperty(exports,"__esModule",{value:true});var _hasOwnProperty=Object.prototype.hasOwnProperty;var CONTEXT_FLOW_IN=1;var CONTEXT_FLOW_OUT=2;var CONTEXT_BLOCK_IN=3;var CONTEXT_BLOCK_OUT=4;var CHOMPING_CLIP=1;var CHOMPING_STRIP=2;var CHOMPING_KEEP=3;var PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;var PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/;var PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/;var PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i;var PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function is_EOL(c){return c===0x0A||c===0x0D;}function is_WHITE_SPACE(c){return c===0x09||c===0x20;}function is_WS_OR_EOL(c){return c===0x09||c===0x20||c===0x0A||c===0x0D;}function is_FLOW_INDICATOR(c){return 0x2C===c||0x5B===c||0x5D===c||0x7B===c||0x7D===c;}function fromHexCode(c){var lc;if(0x30<=c&&c<=0x39){return c-0x30;}lc=c|0x20;if(0x61<=lc&&lc<=0x66){return lc-0x61+10;}return -1;}function escapedHexLen(c){if(c===0x78){return 2;}if(c===0x75){return 4;}if(c===0x55){return 8;}return 0;}function fromDecimalCode(c){if(0x30<=c&&c<=0x39){return c-0x30;}return -1;}function simpleEscapeSequence(c){return c===0x30?'\x00':c===0x61?'\x07':c===0x62?'\x08':c===0x74?'\x09':c===0x09?'\x09':c===0x6E?'\x0A':c===0x76?'\x0B':c===0x66?'\x0C':c===0x72?'\x0D':c===0x65?'\x1B':c===0x20?' ':c===0x22?'\x22':c===0x2F?'/':c===0x5C?'\x5C':c===0x4E?'\x85':c===0x5F?'\xA0':c===0x4C?'\u2028':c===0x50?'\u2029':'';}function charFromCodepoint(c){if(c<=0xFFFF){return String.fromCharCode(c);}return String.fromCharCode((c-0x010000>>10)+0xD800,(c-0x010000&0x03FF)+0xDC00);}var simpleEscapeCheck=new Array(256);var simpleEscapeMap=new Array(256);var customEscapeCheck=new Array(256);var customEscapeMap=new Array(256);for(var i=0;i<256;i++){customEscapeMap[i]=simpleEscapeMap[i]=simpleEscapeSequence(i);simpleEscapeCheck[i]=simpleEscapeMap[i]?1:0;customEscapeCheck[i]=1;if(!simpleEscapeCheck[i]){customEscapeMap[i]='\\'+String.fromCharCode(i);}}var State=function(){function State(input,options){this.errorMap={};this.errors=[];this.lines=[];this.input=input;this.filename=options['filename']||null;this.schema=options['schema']||default_full;this.onWarning=options['onWarning']||null;this.legacy=options['legacy']||false;this.allowAnyEscape=options['allowAnyEscape']||false;this.ignoreDuplicateKeys=options['ignoreDuplicateKeys']||false;this.implicitTypes=this.schema.compiledImplicit;this.typeMap=this.schema.compiledTypeMap;this.length=input.length;this.position=0;this.line=0;this.lineStart=0;this.lineIndent=0;this.documents=[];}return State;}();function generateError(state,message,isWarning){if(isWarning===void 0){isWarning=false;}return new exception(message,new mark(state.filename,state.input,state.position,state.line,state.position-state.lineStart),isWarning);}function throwErrorFromPosition(state,position,message,isWarning,toLineEnd){if(isWarning===void 0){isWarning=false;}if(toLineEnd===void 0){toLineEnd=false;}var line=positionToLine(state,position);if(!line){return;}var hash=message+position;if(state.errorMap[hash]){return;}var mark$1=new mark(state.filename,state.input,position,line.line,position-line.start);if(toLineEnd){mark$1.toLineEnd=true;}var error=new exception(message,mark$1,isWarning);state.errors.push(error);}function throwError(state,message){var error=generateError(state,message);var hash=error.message+error.mark.position;if(state.errorMap[hash]){return;}state.errors.push(error);state.errorMap[hash]=1;var or=state.position;while(true){if(state.position>=state.input.length-1){return;}var c=state.input.charAt(state.position);if(c=='\n'){state.position--;if(state.position==or){state.position+=1;}return;}if(c=='\r'){state.position--;if(state.position==or){state.position+=1;}return;}state.position++;}}function throwWarning(state,message){var error=generateError(state,message);if(state.onWarning){state.onWarning.call(null,error);}}var directiveHandlers={YAML:function handleYamlDirective(state,name,args){var match,major,minor;if(null!==state.version){throwError(state,'duplication of %YAML directive');}if(1!==args.length){throwError(state,'YAML directive accepts exactly one argument');}match=/^([0-9]+)\.([0-9]+)$/.exec(args[0]);if(null===match){throwError(state,'ill-formed argument of the YAML directive');}major=parseInt(match[1],10);minor=parseInt(match[2],10);if(1!==major){throwError(state,'found incompatible YAML document (version 1.2 is required)');}state.version=args[0];state.checkLineBreaks=minor<2;if(2!==minor){throwError(state,'found incompatible YAML document (version 1.2 is required)');}},TAG:function handleTagDirective(state,name,args){var handle,prefix;if(2!==args.length){throwError(state,'TAG directive accepts exactly two arguments');}handle=args[0];prefix=args[1];if(!PATTERN_TAG_HANDLE.test(handle)){throwError(state,'ill-formed tag handle (first argument) of the TAG directive');}if(_hasOwnProperty.call(state.tagMap,handle)){throwError(state,'there is a previously declared suffix for "'+handle+'" tag handle');}if(!PATTERN_TAG_URI.test(prefix)){throwError(state,'ill-formed tag prefix (second argument) of the TAG directive');}state.tagMap[handle]=prefix;}};function captureSegment(state,start,end,checkJson){var _position,_length,_character,_result;var scalar=state.result;if(scalar.startPosition==-1){scalar.startPosition=start;}if(start<=end){_result=state.input.slice(start,end);if(checkJson){for(_position=0,_length=_result.length;_position<_length;_position+=1){_character=_result.charCodeAt(_position);if(!(0x09===_character||0x20<=_character&&_character<=0x10FFFF)){throwError(state,'expected valid JSON character');}}}else if(PATTERN_NON_PRINTABLE.test(_result)){throwError(state,'the stream contains non-printable characters');}scalar.value+=_result;scalar.endPosition=end;}}function storeMappingPair(state,_result,keyTag,keyNode,valueNode){if(keyNode==null){return;}if(null===_result){_result={startPosition:keyNode.startPosition,endPosition:valueNode.endPosition,parent:null,errors:[],mappings:[],kind:yamlAST$1.Kind.MAP};}var mapping=yamlAST$1.newMapping(keyNode,valueNode);mapping.parent=_result;keyNode.parent=mapping;if(valueNode!=null){valueNode.parent=mapping;}!state.ignoreDuplicateKeys&&_result.mappings.forEach(function(sibling){if(sibling.key&&sibling.key.value===(mapping.key&&mapping.key.value)){throwErrorFromPosition(state,mapping.key.startPosition,'duplicate key');throwErrorFromPosition(state,sibling.key.startPosition,'duplicate key');}});_result.mappings.push(mapping);_result.endPosition=valueNode?valueNode.endPosition:keyNode.endPosition+1;return _result;}function readLineBreak(state){var ch;ch=state.input.charCodeAt(state.position);if(0x0A===ch){state.position++;}else if(0x0D===ch){state.position++;if(0x0A===state.input.charCodeAt(state.position)){state.position++;}}else {throwError(state,'a line break is expected');}state.line+=1;state.lineStart=state.position;state.lines.push({start:state.lineStart,line:state.line});}function positionToLine(state,position){var line;for(var i=0;iposition){break;}line=state.lines[i];}if(!line){return {start:0,line:0};}return line;}function skipSeparationSpace(state,allowComments,checkIndent){var lineBreaks=0,ch=state.input.charCodeAt(state.position);while(0!==ch){while(is_WHITE_SPACE(ch)){if(ch===0x09){state.errors.push(generateError(state,"Using tabs can lead to unpredictable results",true));}ch=state.input.charCodeAt(++state.position);}if(allowComments&&0x23===ch){do{ch=state.input.charCodeAt(++state.position);}while(ch!==0x0A&&ch!==0x0D&&0!==ch);}if(is_EOL(ch)){readLineBreak(state);ch=state.input.charCodeAt(state.position);lineBreaks++;state.lineIndent=0;while(0x20===ch){state.lineIndent++;ch=state.input.charCodeAt(++state.position);}}else {break;}}if(-1!==checkIndent&&0!==lineBreaks&&state.lineIndent1){scalar.value+=common.repeat('\n',count-1);}}function readPlainScalar(state,nodeIndent,withinFlowCollection){var preceding,following,captureStart,captureEnd,hasPendingContent,_line,_lineStart,_lineIndent,_kind=state.kind,_result=state.result,ch;var state_result=yamlAST$1.newScalar();state_result.plainScalar=true;state.result=state_result;ch=state.input.charCodeAt(state.position);if(is_WS_OR_EOL(ch)||is_FLOW_INDICATOR(ch)||0x23===ch||0x26===ch||0x2A===ch||0x21===ch||0x7C===ch||0x3E===ch||0x27===ch||0x22===ch||0x25===ch||0x40===ch||0x60===ch){return false;}if(0x3F===ch||0x2D===ch){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following)){return false;}}state.kind='scalar';captureStart=captureEnd=state.position;hasPendingContent=false;while(0!==ch){if(0x3A===ch){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following)){break;}}else if(0x23===ch){preceding=state.input.charCodeAt(state.position-1);if(is_WS_OR_EOL(preceding)){break;}}else if(state.position===state.lineStart&&testDocumentSeparator(state)||withinFlowCollection&&is_FLOW_INDICATOR(ch)){break;}else if(is_EOL(ch)){_line=state.line;_lineStart=state.lineStart;_lineIndent=state.lineIndent;skipSeparationSpace(state,false,-1);if(state.lineIndent>=nodeIndent){hasPendingContent=true;ch=state.input.charCodeAt(state.position);continue;}else {state.position=captureEnd;state.line=_line;state.lineStart=_lineStart;state.lineIndent=_lineIndent;break;}}if(hasPendingContent){captureSegment(state,captureStart,captureEnd,false);writeFoldedLines(state,state_result,state.line-_line);captureStart=captureEnd=state.position;hasPendingContent=false;}if(!is_WHITE_SPACE(ch)){captureEnd=state.position+1;}ch=state.input.charCodeAt(++state.position);if(state.position>=state.input.length){return false;}}captureSegment(state,captureStart,captureEnd,false);if(state.result.startPosition!=-1){state_result.rawValue=state.input.substring(state_result.startPosition,state_result.endPosition);return true;}state.kind=_kind;state.result=_result;return false;}function readSingleQuotedScalar(state,nodeIndent){var ch,captureStart,captureEnd;ch=state.input.charCodeAt(state.position);if(0x27!==ch){return false;}var scalar=yamlAST$1.newScalar();scalar.singleQuoted=true;state.kind='scalar';state.result=scalar;scalar.startPosition=state.position;state.position++;captureStart=captureEnd=state.position;while(0!==(ch=state.input.charCodeAt(state.position))){if(0x27===ch){captureSegment(state,captureStart,state.position,true);ch=state.input.charCodeAt(++state.position);scalar.endPosition=state.position;if(0x27===ch){captureStart=captureEnd=state.position;state.position++;}else {return true;}}else if(is_EOL(ch)){captureSegment(state,captureStart,captureEnd,true);writeFoldedLines(state,scalar,skipSeparationSpace(state,false,nodeIndent));captureStart=captureEnd=state.position;}else if(state.position===state.lineStart&&testDocumentSeparator(state)){throwError(state,'unexpected end of the document within a single quoted scalar');}else {state.position++;captureEnd=state.position;scalar.endPosition=state.position;}}throwError(state,'unexpected end of the stream within a single quoted scalar');}function readDoubleQuotedScalar(state,nodeIndent){var captureStart,captureEnd,hexLength,hexResult,tmp,ch;ch=state.input.charCodeAt(state.position);if(0x22!==ch){return false;}state.kind='scalar';var scalar=yamlAST$1.newScalar();scalar.doubleQuoted=true;state.result=scalar;scalar.startPosition=state.position;state.position++;captureStart=captureEnd=state.position;while(0!==(ch=state.input.charCodeAt(state.position))){if(0x22===ch){captureSegment(state,captureStart,state.position,true);state.position++;scalar.endPosition=state.position;scalar.rawValue=state.input.substring(scalar.startPosition,scalar.endPosition);return true;}else if(0x5C===ch){captureSegment(state,captureStart,state.position,true);ch=state.input.charCodeAt(++state.position);if(is_EOL(ch)){skipSeparationSpace(state,false,nodeIndent);}else if(ch<256&&(state.allowAnyEscape?customEscapeCheck[ch]:simpleEscapeCheck[ch])){scalar.value+=state.allowAnyEscape?customEscapeMap[ch]:simpleEscapeMap[ch];state.position++;}else if((tmp=escapedHexLen(ch))>0){hexLength=tmp;hexResult=0;for(;hexLength>0;hexLength--){ch=state.input.charCodeAt(++state.position);if((tmp=fromHexCode(ch))>=0){hexResult=(hexResult<<4)+tmp;}else {throwError(state,'expected hexadecimal character');}}scalar.value+=charFromCodepoint(hexResult);state.position++;}else {throwError(state,'unknown escape sequence');}captureStart=captureEnd=state.position;}else if(is_EOL(ch)){captureSegment(state,captureStart,captureEnd,true);writeFoldedLines(state,scalar,skipSeparationSpace(state,false,nodeIndent));captureStart=captureEnd=state.position;}else if(state.position===state.lineStart&&testDocumentSeparator(state)){throwError(state,'unexpected end of the document within a double quoted scalar');}else {state.position++;captureEnd=state.position;}}throwError(state,'unexpected end of the stream within a double quoted scalar');}function readFlowCollection(state,nodeIndent){var readNext=true,_line,_tag=state.tag,_result,_anchor=state.anchor,following,terminator,isPair,isExplicitPair,isMapping,keyNode,keyTag,valueNode,ch;ch=state.input.charCodeAt(state.position);if(ch===0x5B){terminator=0x5D;isMapping=false;_result=yamlAST$1.newItems();_result.startPosition=state.position;}else if(ch===0x7B){terminator=0x7D;isMapping=true;_result=yamlAST$1.newMap();_result.startPosition=state.position;}else {return false;}if(null!==state.anchor){_result.anchorId=state.anchor;state.anchorMap[state.anchor]=_result;}ch=state.input.charCodeAt(++state.position);while(0!==ch){skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if(ch===terminator){state.position++;state.tag=_tag;state.anchor=_anchor;state.kind=isMapping?'mapping':'sequence';state.result=_result;_result.endPosition=state.position;return true;}else if(!readNext){var p=state.position;throwError(state,'missed comma between flow collection entries');state.position=p+1;}keyTag=keyNode=valueNode=null;isPair=isExplicitPair=false;if(0x3F===ch){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)){isPair=isExplicitPair=true;state.position++;skipSeparationSpace(state,true,nodeIndent);}}_line=state.line;composeNode(state,nodeIndent,CONTEXT_FLOW_IN,false,true);keyTag=state.tag;keyNode=state.result;skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if((isExplicitPair||state.line===_line)&&0x3A===ch){isPair=true;ch=state.input.charCodeAt(++state.position);skipSeparationSpace(state,true,nodeIndent);composeNode(state,nodeIndent,CONTEXT_FLOW_IN,false,true);valueNode=state.result;}if(isMapping){storeMappingPair(state,_result,keyTag,keyNode,valueNode);}else if(isPair){var mp=storeMappingPair(state,null,keyTag,keyNode,valueNode);mp.parent=_result;_result.items.push(mp);}else {if(keyNode){keyNode.parent=_result;}_result.items.push(keyNode);}_result.endPosition=state.position+1;skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if(0x2C===ch){readNext=true;ch=state.input.charCodeAt(++state.position);}else {readNext=false;}}throwError(state,'unexpected end of the stream within a flow collection');}function readBlockScalar(state,nodeIndent){var captureStart,folding,chomping=CHOMPING_CLIP,detectedIndent=false,textIndent=nodeIndent,emptyLines=0,atMoreIndented=false,tmp,ch;ch=state.input.charCodeAt(state.position);if(ch===0x7C){folding=false;}else if(ch===0x3E){folding=true;}else {return false;}var sc=yamlAST$1.newScalar();state.kind='scalar';state.result=sc;sc.startPosition=state.position;while(0!==ch){ch=state.input.charCodeAt(++state.position);if(0x2B===ch||0x2D===ch){if(CHOMPING_CLIP===chomping){chomping=0x2B===ch?CHOMPING_KEEP:CHOMPING_STRIP;}else {throwError(state,'repeat of a chomping mode identifier');}}else if((tmp=fromDecimalCode(ch))>=0){if(tmp===0){throwError(state,'bad explicit indentation width of a block scalar; it cannot be less than one');}else if(!detectedIndent){textIndent=nodeIndent+tmp-1;detectedIndent=true;}else {throwError(state,'repeat of an indentation width identifier');}}else {break;}}if(is_WHITE_SPACE(ch)){do{ch=state.input.charCodeAt(++state.position);}while(is_WHITE_SPACE(ch));if(0x23===ch){do{ch=state.input.charCodeAt(++state.position);}while(!is_EOL(ch)&&0!==ch);}}while(0!==ch){readLineBreak(state);state.lineIndent=0;ch=state.input.charCodeAt(state.position);while((!detectedIndent||state.lineIndenttextIndent){textIndent=state.lineIndent;}if(is_EOL(ch)){emptyLines++;continue;}if(state.lineIndentnodeIndent)&&0!==ch){throwError(state,'bad indentation of a sequence entry');}else if(state.lineIndent0){ch=state.input.charCodeAt(--state.position);if(is_EOL(ch)){state.position++;break;}}}else {state.tag=_tag;state.anchor=_anchor;return true;}}else {break;}if(state.line===_line||state.lineIndent>nodeIndent){if(composeNode(state,nodeIndent,CONTEXT_BLOCK_OUT,true,allowCompact)){if(atExplicitKey){keyNode=state.result;}else {valueNode=state.result;}}if(!atExplicitKey){storeMappingPair(state,_result,keyTag,keyNode,valueNode);keyTag=keyNode=valueNode=null;}skipSeparationSpace(state,true,-1);ch=state.input.charCodeAt(state.position);}if(state.lineIndent>nodeIndent&&0!==ch){throwError(state,'bad indentation of a mapping entry');}else if(state.lineIndentparentIndent){indentStatus=1;}else if(state.lineIndent===parentIndent){indentStatus=0;}else if(state.lineIndentparentIndent){indentStatus=1;}else if(state.lineIndent===parentIndent){indentStatus=0;}else if(state.lineIndent tag; it should be "'+type.kind+'", not "'+state.kind+'"');}if(!type.resolve(state.result)){throwError(state,'cannot resolve a node with !<'+state.tag+'> explicit tag');}else {state.result=type.construct(state.result);if(null!==state.anchor){state.result.anchorId=state.anchor;state.anchorMap[state.anchor]=state.result;}}}else {throwErrorFromPosition(state,tagStart,'unknown tag <'+state.tag+'>',false,true);}}return null!==state.tag||null!==state.anchor||hasContent;}function readDocument(state){var documentStart=state.position,_position,directiveName,directiveArgs,hasDirectives=false,ch;state.version=null;state.checkLineBreaks=state.legacy;state.tagMap={};state.anchorMap={};while(0!==(ch=state.input.charCodeAt(state.position))){skipSeparationSpace(state,true,-1);ch=state.input.charCodeAt(state.position);if(state.lineIndent>0||0x25!==ch){break;}hasDirectives=true;ch=state.input.charCodeAt(++state.position);_position=state.position;while(0!==ch&&!is_WS_OR_EOL(ch)){ch=state.input.charCodeAt(++state.position);}directiveName=state.input.slice(_position,state.position);directiveArgs=[];if(directiveName.length<1){throwError(state,'directive name must not be less than one character in length');}while(0!==ch){while(is_WHITE_SPACE(ch)){ch=state.input.charCodeAt(++state.position);}if(0x23===ch){do{ch=state.input.charCodeAt(++state.position);}while(0!==ch&&!is_EOL(ch));break;}if(is_EOL(ch)){break;}_position=state.position;while(0!==ch&&!is_WS_OR_EOL(ch)){ch=state.input.charCodeAt(++state.position);}directiveArgs.push(state.input.slice(_position,state.position));}if(0!==ch){readLineBreak(state);}if(_hasOwnProperty.call(directiveHandlers,directiveName)){directiveHandlers[directiveName](state,directiveName,directiveArgs);}else {throwWarning(state,'unknown document directive "'+directiveName+'"');state.position++;}}skipSeparationSpace(state,true,-1);if(0===state.lineIndent&&0x2D===state.input.charCodeAt(state.position)&&0x2D===state.input.charCodeAt(state.position+1)&&0x2D===state.input.charCodeAt(state.position+2)){state.position+=3;skipSeparationSpace(state,true,-1);}else if(hasDirectives){throwError(state,'directives end mark is expected');}composeNode(state,state.lineIndent-1,CONTEXT_BLOCK_OUT,false,true);skipSeparationSpace(state,true,-1);if(state.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart,state.position))){throwWarning(state,'non-ASCII line breaks are interpreted as content');}state.documents.push(state.result);if(state.position===state.lineStart&&testDocumentSeparator(state)){if(0x2E===state.input.charCodeAt(state.position)){state.position+=3;skipSeparationSpace(state,true,-1);}return;}if(state.position0){documents[docsCount-1].endPosition=inputLength;}for(var _i=0,documents_1=documents;_ix.endPosition){x.startPosition=x.endPosition;}}return documents;}function loadAll(input,iterator,options){if(options===void 0){options={};}var documents=loadDocuments(input,options),index,length;for(index=0,length=documents.length;index checkpoint');er.position=position;er.checkpoint=this.checkpoint;throw er;}this.result+=this.source.slice(this.checkpoint,position);this.checkpoint=position;return this;};StringBuilder.prototype.escapeChar=function(){var character,esc;character=this.source.charCodeAt(this.checkpoint);esc=ESCAPE_SEQUENCES[character]||encodeHex(character);this.result+=esc;this.checkpoint+=1;return this;};StringBuilder.prototype.finish=function(){if(this.source.length>this.checkpoint){this.takeUpTo(this.source.length);}};function writeScalar(state,object,level){var simple,first,spaceWrap,folded,literal,single,double,sawLineFeed,linePosition,longestLine,indent,max,character,position,escapeSeq,hexEsc,previous,lineLength,modifier,trailingLineBreaks,result;if(0===object.length){state.dump="''";return;}if(object.indexOf("!include")==0){state.dump=""+object;return;}if(object.indexOf("!$$$novalue")==0){state.dump="";return;}if(-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(object)){state.dump="'"+object+"'";return;}simple=true;first=object.length?object.charCodeAt(0):0;spaceWrap=CHAR_SPACE===first||CHAR_SPACE===object.charCodeAt(object.length-1);if(CHAR_MINUS===first||CHAR_QUESTION===first||CHAR_COMMERCIAL_AT===first||CHAR_GRAVE_ACCENT===first){simple=false;}if(spaceWrap){simple=false;folded=false;literal=false;}else {folded=true;literal=true;}single=true;double=new StringBuilder(object);sawLineFeed=false;linePosition=0;longestLine=0;indent=state.indent*level;max=80;if(indent<40){max-=indent;}else {max=40;}for(position=0;position0){previous=object.charCodeAt(position-1);if(previous===CHAR_SPACE){literal=false;folded=false;}}if(folded){lineLength=position-linePosition;linePosition=position;if(lineLength>longestLine){longestLine=lineLength;}}}if(character!==CHAR_DOUBLE_QUOTE){single=false;}double.takeUpTo(position);double.escapeChar();}if(simple&&testImplicitResolving(state,object)){simple=false;}modifier='';if(folded||literal){trailingLineBreaks=0;if(object.charCodeAt(object.length-1)===CHAR_LINE_FEED){trailingLineBreaks+=1;if(object.charCodeAt(object.length-2)===CHAR_LINE_FEED){trailingLineBreaks+=1;}}if(trailingLineBreaks===0){modifier='-';}else if(trailingLineBreaks===2){modifier='+';}}if(literal&&longestLine'+modifier+'\n'+indentString(result,indent);}else if(literal){if(!modifier){object=object.replace(/\n$/,'');}state.dump='|'+modifier+'\n'+indentString(object,indent);}else if(double){double.finish();state.dump='"'+double.result+'"';}else {throw new Error('Failed to dump scalar value');}return;}function fold(object,max){var result='',position=0,length=object.length,trailing=/\n+$/.exec(object),newLine;if(trailing){length=trailing.index+1;}while(positionlength||newLine===-1){if(result){result+='\n\n';}result+=foldLine(object.slice(position,length),max);position=length;}else {if(result){result+='\n\n';}result+=foldLine(object.slice(position,newLine),max);position=newLine+1;}}if(trailing&&trailing[0]!=='\n'){result+=trailing[0];}return result;}function foldLine(line,max){if(line===''){return line;}var foldRe=/[^\s] [^\s]/g,result='',prevMatch=0,foldStart=0,match=foldRe.exec(line),index,foldEnd,folded;while(match){index=match.index;if(index-foldStart>max){if(prevMatch!==foldStart){foldEnd=prevMatch;}else {foldEnd=index;}if(result){result+='\n';}folded=line.slice(foldStart,foldEnd);result+=folded;foldStart=foldEnd+1;}prevMatch=index+1;match=foldRe.exec(line);}if(result){result+='\n';}if(foldStart!==prevMatch&&line.length-foldStart>max){result+=line.slice(foldStart,prevMatch)+'\n'+line.slice(prevMatch+1);}else {result+=line.slice(foldStart);}return result;}function simpleChar(character){return CHAR_TAB!==character&&CHAR_LINE_FEED!==character&&CHAR_CARRIAGE_RETURN!==character&&CHAR_COMMA!==character&&CHAR_LEFT_SQUARE_BRACKET!==character&&CHAR_RIGHT_SQUARE_BRACKET!==character&&CHAR_LEFT_CURLY_BRACKET!==character&&CHAR_RIGHT_CURLY_BRACKET!==character&&CHAR_SHARP!==character&&CHAR_AMPERSAND!==character&&CHAR_ASTERISK!==character&&CHAR_EXCLAMATION!==character&&CHAR_VERTICAL_LINE!==character&&CHAR_GREATER_THAN!==character&&CHAR_SINGLE_QUOTE!==character&&CHAR_DOUBLE_QUOTE!==character&&CHAR_PERCENT!==character&&CHAR_COLON!==character&&!ESCAPE_SEQUENCES[character]&&!needsHexEscape(character);}function needsHexEscape(character){return !(0x00020<=character&&character<=0x00007E||0x00085===character||0x000A0<=character&&character<=0x00D7FF||0x0E000<=character&&character<=0x00FFFD||0x10000<=character&&character<=0x10FFFF);}function writeFlowSequence(state,level,object){var _result='',_tag=state.tag,index,length;for(index=0,length=object.length;index1024){pairBuffer+='? ';}pairBuffer+=state.dump+': ';if(!writeNode(state,level,objectValue,false,false)){continue;}pairBuffer+=state.dump;_result+=pairBuffer;}state.tag=_tag;state.dump='{'+_result+'}';}function writeBlockMapping(state,level,object,compact){var _result='',_tag=state.tag,objectKeyList=Object.keys(object),index,length,objectKey,objectValue,explicitPair,pairBuffer;for(index=0,length=objectKeyList.length;index1024;if(explicitPair){if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0)){pairBuffer+='?';}else {pairBuffer+='? ';}}pairBuffer+=state.dump;if(explicitPair){pairBuffer+=generateNextLine(state,level);}if(!writeNode(state,level+1,objectValue,true,explicitPair)){continue;}if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0)){pairBuffer+=':';}else {pairBuffer+=': ';}pairBuffer+=state.dump;_result+=pairBuffer;}state.tag=_tag;state.dump=_result||'{}';}function detectType(state,object,explicit){var _result,typeList,index,length,type,style;typeList=explicit?state.explicitTypes:state.implicitTypes;for(index=0,length=typeList.length;index tag resolver accepts not "'+style+'" style');}state.dump=_result;}return true;}}return false;}function writeNode(state,level,object,block,compact){state.tag=null;state.dump=object;if(!detectType(state,object,false)){detectType(state,object,true);}var type=_toString.call(state.dump);if(block){block=0>state.flowLevel||state.flowLevel>level;}if(null!==state.tag&&'?'!==state.tag||2!==state.indent&&level>0){compact=false;}var objectOrArray='[object Object]'===type||'[object Array]'===type,duplicateIndex,duplicate;if(objectOrArray){duplicateIndex=state.duplicates.indexOf(object);duplicate=duplicateIndex!==-1;}if(duplicate&&state.usedDuplicates[duplicateIndex]){state.dump='*ref_'+duplicateIndex;}else {if(objectOrArray&&duplicate&&!state.usedDuplicates[duplicateIndex]){state.usedDuplicates[duplicateIndex]=true;}if('[object Object]'===type){if(block&&0!==Object.keys(state.dump).length){writeBlockMapping(state,level,state.dump,compact);if(duplicate){state.dump='&ref_'+duplicateIndex+(0===level?'\n':'')+state.dump;}}else {writeFlowMapping(state,level,state.dump);if(duplicate){state.dump='&ref_'+duplicateIndex+' '+state.dump;}}}else if('[object Array]'===type){if(block&&0!==state.dump.length){writeBlockSequence(state,level,state.dump,compact);if(duplicate){state.dump='&ref_'+duplicateIndex+(0===level?'\n':'')+state.dump;}}else {writeFlowSequence(state,level,state.dump);if(duplicate){state.dump='&ref_'+duplicateIndex+' '+state.dump;}}}else if('[object String]'===type){if('?'!==state.tag){writeScalar(state,state.dump,level);}}else {if(state.skipInvalid){return false;}throw new exception('unacceptable kind of an object to dump '+type);}if(null!==state.tag&&'?'!==state.tag){state.dump='!<'+state.tag+'> '+state.dump;}}return true;}function getDuplicateReferences(object,state){var objects=[],duplicatesIndexes=[],index,length;inspectNode(object,objects,duplicatesIndexes);for(index=0,length=duplicatesIndexes.length;index=0){return true;}else if(["false","False","FALSE"].lastIndexOf(input)>=0){return false;}throw "Invalid boolean \""+input+"\"";}exports.parseYamlBoolean=parseYamlBoolean;function safeParseYamlInteger(input){if(input.lastIndexOf('0o',0)===0){return parseInt(input.substring(2),8);}return parseInt(input);}function parseYamlInteger(input){var result=safeParseYamlInteger(input);if(isNaN(result)){throw "Invalid integer \""+input+"\"";}return result;}exports.parseYamlInteger=parseYamlInteger;function parseYamlFloat(input){if([".nan",".NaN",".NAN"].lastIndexOf(input)>=0){return NaN;}var infinity=/^([-+])?(?:\.inf|\.Inf|\.INF)$/;var match=infinity.exec(input);if(match){return match[1]==='-'?-Infinity:Infinity;}var result=parseFloat(input);if(!isNaN(result)){return result;}throw "Invalid float \""+input+"\"";}exports.parseYamlFloat=parseYamlFloat;var ScalarType;(function(ScalarType){ScalarType[ScalarType["null"]=0]="null";ScalarType[ScalarType["bool"]=1]="bool";ScalarType[ScalarType["int"]=2]="int";ScalarType[ScalarType["float"]=3]="float";ScalarType[ScalarType["string"]=4]="string";})(ScalarType=exports.ScalarType||(exports.ScalarType={}));function determineScalarType(node){if(node===undefined){return ScalarType.null;}if(node.doubleQuoted||!node.plainScalar||node['singleQuoted']){return ScalarType.string;}var value=node.value;if(["null","Null","NULL","~",''].indexOf(value)>=0){return ScalarType.null;}if(value===null||value===undefined){return ScalarType.null;}if(["true","True","TRUE","false","False","FALSE"].indexOf(value)>=0){return ScalarType.bool;}var base10=/^[-+]?[0-9]+$/;var base8=/^0o[0-7]+$/;var base16=/^0x[0-9a-fA-F]+$/;if(base10.test(value)||base8.test(value)||base16.test(value)){return ScalarType.int;}var float=/^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$/;var infinity=/^[-+]?(\.inf|\.Inf|\.INF)$/;if(float.test(value)||infinity.test(value)||[".nan",".NaN",".NAN"].indexOf(value)>=0){return ScalarType.float;}return ScalarType.string;}exports.determineScalarType=determineScalarType;});var src$1=createCommonjsModule(function(module,exports){function __export(m){for(var p in m)if(!exports.hasOwnProperty(p))exports[p]=m[p];}Object.defineProperty(exports,"__esModule",{value:true});exports.load=loader.load;exports.loadAll=loader.loadAll;exports.safeLoad=loader.safeLoad;exports.safeLoadAll=loader.safeLoadAll;exports.dump=dumper.dump;exports.safeDump=dumper.safeDump;exports.YAMLException=exception;__export(yamlAST$1);__export(scalarInference);});const{load,Kind}=src$1;const loc=Symbol('pseudo-yaml-ast-loc');const hasOwnProp=(obj,key)=>obj&&typeof obj==='object'&&Object.prototype.hasOwnProperty.call(obj,key);const isUndefined=v=>v===undefined;const isNull=v=>v===null;const isPrimitive=v=>Number.isNaN(v)||isNull(v)||isUndefined(v)||typeof v==='symbol';const isPrimitiveNode=node=>isPrimitive(node.value)||!hasOwnProp(node,'value');const isBetween=(start,pos,end)=>pos<=end&&pos>=start;const getLoc=(input,{start=0,end=0})=>{const lines=input.split(/\n/);const loc={start:{},end:{}};let sum=0;for(const i of lines.keys()){const line=lines[i];const ls=sum;const le=sum+line.length;if(isUndefined(loc.start.line)&&isBetween(ls,start,le)){loc.start.line=i+1;loc.start.column=start-ls;loc.start.offset=start;}if(isUndefined(loc.end.line)&&isBetween(ls,end,le)){loc.end.line=i+1;loc.end.column=end-ls;loc.end.offset=end;}sum=le+1;// +1 because the break is also a char -}return loc;};const visitors={MAP:(node={},input='',ctx={})=>Object.assign(walk(node.mappings,input),{[loc]:getLoc(input,{start:node.startPosition,end:node.endPosition})}),MAPPING:(node={},input='',ctx={})=>{const value=walk([node.value],input);if(!isPrimitive(value)){value[loc]=getLoc(input,{start:node.startPosition,end:node.endPosition});}return Object.assign(ctx,{[node.key.value]:value});},SCALAR:(node={},input='')=>{if(isPrimitiveNode(node)){return node.value;}const _loc=getLoc(input,{start:node.startPosition,end:node.endPosition});const wrappable=Constructor=>()=>{const v=new Constructor(node.value);v[loc]=_loc;return v;};const object=()=>{node.value[loc]=_loc;return node.value;};const types={boolean:wrappable(Boolean),number:wrappable(Number),string:wrappable(String),function:object,object};return types[typeof node.value]();},SEQ:(node={},input='')=>{const items=walk(node.items,input,[]);items[loc]=getLoc(input,{start:node.startPosition,end:node.endPosition});return items;}};const walk=(nodes=[],input,ctx={})=>{const onNode=(node,ctx,fallback)=>{let visitor;if(node)visitor=visitors[Kind[node.kind]];return visitor?visitor(node,input,ctx):fallback;};const walkObj=()=>nodes.reduce((sum,node)=>{return onNode(node,sum,sum);},ctx);const walkArr=()=>nodes.map(node=>onNode(node,ctx,null),ctx).filter(Boolean);return Array.isArray(ctx)?walkArr():walkObj();};var loc_1=loc;var yamlAST=input=>walk([load(input)],input);var src={loc:loc_1,yamlAST:yamlAST};var build=createCommonjsModule(function(module,exports){(function(global,factory){module.exports=factory();})(commonjsGlobal,function(){var commonjsGlobal$1=typeof window!=='undefined'?window:typeof commonjsGlobal!=='undefined'?commonjsGlobal:typeof self!=='undefined'?self:{};function createCommonjsModule(fn,module){return module={exports:{}},fn(module,module.exports),module.exports;}var graphemeSplitter=createCommonjsModule(function(module){/* - Breaks a Javascript string into individual user-perceived "characters" - called extended grapheme clusters by implementing the Unicode UAX-29 standard, version 10.0.0 - - Usage: - var splitter = new GraphemeSplitter(); - //returns an array of strings, one string for each grapheme cluster - var graphemes = splitter.splitGraphemes(string); - - */function GraphemeSplitter(){var CR=0,LF=1,Control=2,Extend=3,Regional_Indicator=4,SpacingMark=5,L=6,V=7,T=8,LV=9,LVT=10,Other=11,Prepend=12,E_Base=13,E_Modifier=14,ZWJ=15,Glue_After_Zwj=16,E_Base_GAZ=17;// BreakTypes -var NotBreak=0,BreakStart=1,Break=2,BreakLastRegional=3,BreakPenultimateRegional=4;function isSurrogate(str,pos){return 0xd800<=str.charCodeAt(pos)&&str.charCodeAt(pos)<=0xdbff&&0xdc00<=str.charCodeAt(pos+1)&&str.charCodeAt(pos+1)<=0xdfff;}// Private function, gets a Unicode code point from a JavaScript UTF-16 string -// handling surrogate pairs appropriately -function codePointAt(str,idx){if(idx===undefined){idx=0;}var code=str.charCodeAt(idx);// if a high surrogate -if(0xD800<=code&&code<=0xDBFF&&idx=1){var hi=str.charCodeAt(idx-1);var low=code;if(0xD800<=hi&&hi<=0xDBFF){return (hi-0xD800)*0x400+(low-0xDC00)+0x10000;}return low;}//just return the char if an unmatched surrogate half or a -//single-char codepoint -return code;}// Private function, returns whether a break is allowed between the -// two given grapheme breaking classes -function shouldBreak(start,mid,end){var all=[start].concat(mid).concat([end]);var previous=all[all.length-2];var next=end;// Lookahead termintor for: -// GB10. (E_Base | EBG) Extend* ? E_Modifier -var eModifierIndex=all.lastIndexOf(E_Modifier);if(eModifierIndex>1&&all.slice(1,eModifierIndex).every(function(c){return c==Extend;})&&[Extend,E_Base,E_Base_GAZ].indexOf(start)==-1){return Break;}// Lookahead termintor for: -// GB12. ^ (RI RI)* RI ? RI -// GB13. [^RI] (RI RI)* RI ? RI -var rIIndex=all.lastIndexOf(Regional_Indicator);if(rIIndex>0&&all.slice(1,rIIndex).every(function(c){return c==Regional_Indicator;})&&[Prepend,Regional_Indicator].indexOf(previous)==-1){if(all.filter(function(c){return c==Regional_Indicator;}).length%2==1){return BreakLastRegional;}else {return BreakPenultimateRegional;}}// GB3. CR X LF -if(previous==CR&&next==LF){return NotBreak;}// GB4. (Control|CR|LF) ÷ -else if(previous==Control||previous==CR||previous==LF){if(next==E_Modifier&&mid.every(function(c){return c==Extend;})){return Break;}else {return BreakStart;}}// GB5. ÷ (Control|CR|LF) -else if(next==Control||next==CR||next==LF){return BreakStart;}// GB6. L X (L|V|LV|LVT) -else if(previous==L&&(next==L||next==V||next==LV||next==LVT)){return NotBreak;}// GB7. (LV|V) X (V|T) -else if((previous==LV||previous==V)&&(next==V||next==T)){return NotBreak;}// GB8. (LVT|T) X (T) -else if((previous==LVT||previous==T)&&next==T){return NotBreak;}// GB9. X (Extend|ZWJ) -else if(next==Extend||next==ZWJ){return NotBreak;}// GB9a. X SpacingMark -else if(next==SpacingMark){return NotBreak;}// GB9b. Prepend X -else if(previous==Prepend){return NotBreak;}// GB10. (E_Base | EBG) Extend* ? E_Modifier -var previousNonExtendIndex=all.indexOf(Extend)!=-1?all.lastIndexOf(Extend)-1:all.length-2;if([E_Base,E_Base_GAZ].indexOf(all[previousNonExtendIndex])!=-1&&all.slice(previousNonExtendIndex+1,-1).every(function(c){return c==Extend;})&&next==E_Modifier){return NotBreak;}// GB11. ZWJ ? (Glue_After_Zwj | EBG) -if(previous==ZWJ&&[Glue_After_Zwj,E_Base_GAZ].indexOf(next)!=-1){return NotBreak;}// GB12. ^ (RI RI)* RI ? RI -// GB13. [^RI] (RI RI)* RI ? RI -if(mid.indexOf(Regional_Indicator)!=-1){return Break;}if(previous==Regional_Indicator&&next==Regional_Indicator){return NotBreak;}// GB999. Any ? Any -return BreakStart;}// Returns the next grapheme break in the string after the given index -this.nextBreak=function(string,index){if(index===undefined){index=0;}if(index<0){return 0;}if(index>=string.length-1){return string.length;}var prev=getGraphemeBreakProperty(codePointAt(string,index));var mid=[];for(var i=index+1;i -){return CR;}if(0x000A==code// Cc -){return LF;}if(0x0000<=code&&code<=0x0009||// Cc [10] .. -0x000B<=code&&code<=0x000C||// Cc [2] .. -0x000E<=code&&code<=0x001F||// Cc [18] .. -0x007F<=code&&code<=0x009F||// Cc [33] .. -0x00AD==code||// Cf SOFT HYPHEN -0x061C==code||// Cf ARABIC LETTER MARK -0x180E==code||// Cf MONGOLIAN VOWEL SEPARATOR -0x200B==code||// Cf ZERO WIDTH SPACE -0x200E<=code&&code<=0x200F||// Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK -0x2028==code||// Zl LINE SEPARATOR -0x2029==code||// Zp PARAGRAPH SEPARATOR -0x202A<=code&&code<=0x202E||// Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE -0x2060<=code&&code<=0x2064||// Cf [5] WORD JOINER..INVISIBLE PLUS -0x2065==code||// Cn -0x2066<=code&&code<=0x206F||// Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES -0xD800<=code&&code<=0xDFFF||// Cs [2048] .. -0xFEFF==code||// Cf ZERO WIDTH NO-BREAK SPACE -0xFFF0<=code&&code<=0xFFF8||// Cn [9] .. -0xFFF9<=code&&code<=0xFFFB||// Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR -0x1BCA0<=code&&code<=0x1BCA3||// Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP -0x1D173<=code&&code<=0x1D17A||// Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE -0xE0000==code||// Cn -0xE0001==code||// Cf LANGUAGE TAG -0xE0002<=code&&code<=0xE001F||// Cn [30] .. -0xE0080<=code&&code<=0xE00FF||// Cn [128] .. -0xE01F0<=code&&code<=0xE0FFF// Cn [3600] .. -){return Control;}if(0x0300<=code&&code<=0x036F||// Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X -0x0483<=code&&code<=0x0487||// Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE -0x0488<=code&&code<=0x0489||// Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN -0x0591<=code&&code<=0x05BD||// Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG -0x05BF==code||// Mn HEBREW POINT RAFE -0x05C1<=code&&code<=0x05C2||// Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT -0x05C4<=code&&code<=0x05C5||// Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT -0x05C7==code||// Mn HEBREW POINT QAMATS QATAN -0x0610<=code&&code<=0x061A||// Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA -0x064B<=code&&code<=0x065F||// Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW -0x0670==code||// Mn ARABIC LETTER SUPERSCRIPT ALEF -0x06D6<=code&&code<=0x06DC||// Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN -0x06DF<=code&&code<=0x06E4||// Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA -0x06E7<=code&&code<=0x06E8||// Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON -0x06EA<=code&&code<=0x06ED||// Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM -0x0711==code||// Mn SYRIAC LETTER SUPERSCRIPT ALAPH -0x0730<=code&&code<=0x074A||// Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH -0x07A6<=code&&code<=0x07B0||// Mn [11] THAANA ABAFILI..THAANA SUKUN -0x07EB<=code&&code<=0x07F3||// Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE -0x0816<=code&&code<=0x0819||// Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH -0x081B<=code&&code<=0x0823||// Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A -0x0825<=code&&code<=0x0827||// Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U -0x0829<=code&&code<=0x082D||// Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA -0x0859<=code&&code<=0x085B||// Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK -0x08D4<=code&&code<=0x08E1||// Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA -0x08E3<=code&&code<=0x0902||// Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA -0x093A==code||// Mn DEVANAGARI VOWEL SIGN OE -0x093C==code||// Mn DEVANAGARI SIGN NUKTA -0x0941<=code&&code<=0x0948||// Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI -0x094D==code||// Mn DEVANAGARI SIGN VIRAMA -0x0951<=code&&code<=0x0957||// Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE -0x0962<=code&&code<=0x0963||// Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL -0x0981==code||// Mn BENGALI SIGN CANDRABINDU -0x09BC==code||// Mn BENGALI SIGN NUKTA -0x09BE==code||// Mc BENGALI VOWEL SIGN AA -0x09C1<=code&&code<=0x09C4||// Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR -0x09CD==code||// Mn BENGALI SIGN VIRAMA -0x09D7==code||// Mc BENGALI AU LENGTH MARK -0x09E2<=code&&code<=0x09E3||// Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL -0x0A01<=code&&code<=0x0A02||// Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI -0x0A3C==code||// Mn GURMUKHI SIGN NUKTA -0x0A41<=code&&code<=0x0A42||// Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU -0x0A47<=code&&code<=0x0A48||// Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI -0x0A4B<=code&&code<=0x0A4D||// Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA -0x0A51==code||// Mn GURMUKHI SIGN UDAAT -0x0A70<=code&&code<=0x0A71||// Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK -0x0A75==code||// Mn GURMUKHI SIGN YAKASH -0x0A81<=code&&code<=0x0A82||// Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA -0x0ABC==code||// Mn GUJARATI SIGN NUKTA -0x0AC1<=code&&code<=0x0AC5||// Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E -0x0AC7<=code&&code<=0x0AC8||// Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI -0x0ACD==code||// Mn GUJARATI SIGN VIRAMA -0x0AE2<=code&&code<=0x0AE3||// Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL -0x0AFA<=code&&code<=0x0AFF||// Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE -0x0B01==code||// Mn ORIYA SIGN CANDRABINDU -0x0B3C==code||// Mn ORIYA SIGN NUKTA -0x0B3E==code||// Mc ORIYA VOWEL SIGN AA -0x0B3F==code||// Mn ORIYA VOWEL SIGN I -0x0B41<=code&&code<=0x0B44||// Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR -0x0B4D==code||// Mn ORIYA SIGN VIRAMA -0x0B56==code||// Mn ORIYA AI LENGTH MARK -0x0B57==code||// Mc ORIYA AU LENGTH MARK -0x0B62<=code&&code<=0x0B63||// Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL -0x0B82==code||// Mn TAMIL SIGN ANUSVARA -0x0BBE==code||// Mc TAMIL VOWEL SIGN AA -0x0BC0==code||// Mn TAMIL VOWEL SIGN II -0x0BCD==code||// Mn TAMIL SIGN VIRAMA -0x0BD7==code||// Mc TAMIL AU LENGTH MARK -0x0C00==code||// Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE -0x0C3E<=code&&code<=0x0C40||// Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II -0x0C46<=code&&code<=0x0C48||// Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI -0x0C4A<=code&&code<=0x0C4D||// Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA -0x0C55<=code&&code<=0x0C56||// Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK -0x0C62<=code&&code<=0x0C63||// Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL -0x0C81==code||// Mn KANNADA SIGN CANDRABINDU -0x0CBC==code||// Mn KANNADA SIGN NUKTA -0x0CBF==code||// Mn KANNADA VOWEL SIGN I -0x0CC2==code||// Mc KANNADA VOWEL SIGN UU -0x0CC6==code||// Mn KANNADA VOWEL SIGN E -0x0CCC<=code&&code<=0x0CCD||// Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA -0x0CD5<=code&&code<=0x0CD6||// Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK -0x0CE2<=code&&code<=0x0CE3||// Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL -0x0D00<=code&&code<=0x0D01||// Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU -0x0D3B<=code&&code<=0x0D3C||// Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA -0x0D3E==code||// Mc MALAYALAM VOWEL SIGN AA -0x0D41<=code&&code<=0x0D44||// Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR -0x0D4D==code||// Mn MALAYALAM SIGN VIRAMA -0x0D57==code||// Mc MALAYALAM AU LENGTH MARK -0x0D62<=code&&code<=0x0D63||// Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL -0x0DCA==code||// Mn SINHALA SIGN AL-LAKUNA -0x0DCF==code||// Mc SINHALA VOWEL SIGN AELA-PILLA -0x0DD2<=code&&code<=0x0DD4||// Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA -0x0DD6==code||// Mn SINHALA VOWEL SIGN DIGA PAA-PILLA -0x0DDF==code||// Mc SINHALA VOWEL SIGN GAYANUKITTA -0x0E31==code||// Mn THAI CHARACTER MAI HAN-AKAT -0x0E34<=code&&code<=0x0E3A||// Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU -0x0E47<=code&&code<=0x0E4E||// Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN -0x0EB1==code||// Mn LAO VOWEL SIGN MAI KAN -0x0EB4<=code&&code<=0x0EB9||// Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU -0x0EBB<=code&&code<=0x0EBC||// Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO -0x0EC8<=code&&code<=0x0ECD||// Mn [6] LAO TONE MAI EK..LAO NIGGAHITA -0x0F18<=code&&code<=0x0F19||// Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS -0x0F35==code||// Mn TIBETAN MARK NGAS BZUNG NYI ZLA -0x0F37==code||// Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS -0x0F39==code||// Mn TIBETAN MARK TSA -PHRU -0x0F71<=code&&code<=0x0F7E||// Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO -0x0F80<=code&&code<=0x0F84||// Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA -0x0F86<=code&&code<=0x0F87||// Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS -0x0F8D<=code&&code<=0x0F97||// Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA -0x0F99<=code&&code<=0x0FBC||// Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA -0x0FC6==code||// Mn TIBETAN SYMBOL PADMA GDAN -0x102D<=code&&code<=0x1030||// Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU -0x1032<=code&&code<=0x1037||// Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW -0x1039<=code&&code<=0x103A||// Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT -0x103D<=code&&code<=0x103E||// Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA -0x1058<=code&&code<=0x1059||// Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL -0x105E<=code&&code<=0x1060||// Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA -0x1071<=code&&code<=0x1074||// Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE -0x1082==code||// Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA -0x1085<=code&&code<=0x1086||// Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y -0x108D==code||// Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE -0x109D==code||// Mn MYANMAR VOWEL SIGN AITON AI -0x135D<=code&&code<=0x135F||// Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK -0x1712<=code&&code<=0x1714||// Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA -0x1732<=code&&code<=0x1734||// Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD -0x1752<=code&&code<=0x1753||// Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U -0x1772<=code&&code<=0x1773||// Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U -0x17B4<=code&&code<=0x17B5||// Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA -0x17B7<=code&&code<=0x17BD||// Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA -0x17C6==code||// Mn KHMER SIGN NIKAHIT -0x17C9<=code&&code<=0x17D3||// Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT -0x17DD==code||// Mn KHMER SIGN ATTHACAN -0x180B<=code&&code<=0x180D||// Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE -0x1885<=code&&code<=0x1886||// Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA -0x18A9==code||// Mn MONGOLIAN LETTER ALI GALI DAGALGA -0x1920<=code&&code<=0x1922||// Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U -0x1927<=code&&code<=0x1928||// Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O -0x1932==code||// Mn LIMBU SMALL LETTER ANUSVARA -0x1939<=code&&code<=0x193B||// Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I -0x1A17<=code&&code<=0x1A18||// Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U -0x1A1B==code||// Mn BUGINESE VOWEL SIGN AE -0x1A56==code||// Mn TAI THAM CONSONANT SIGN MEDIAL LA -0x1A58<=code&&code<=0x1A5E||// Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA -0x1A60==code||// Mn TAI THAM SIGN SAKOT -0x1A62==code||// Mn TAI THAM VOWEL SIGN MAI SAT -0x1A65<=code&&code<=0x1A6C||// Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW -0x1A73<=code&&code<=0x1A7C||// Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN -0x1A7F==code||// Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT -0x1AB0<=code&&code<=0x1ABD||// Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW -0x1ABE==code||// Me COMBINING PARENTHESES OVERLAY -0x1B00<=code&&code<=0x1B03||// Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG -0x1B34==code||// Mn BALINESE SIGN REREKAN -0x1B36<=code&&code<=0x1B3A||// Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA -0x1B3C==code||// Mn BALINESE VOWEL SIGN LA LENGA -0x1B42==code||// Mn BALINESE VOWEL SIGN PEPET -0x1B6B<=code&&code<=0x1B73||// Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG -0x1B80<=code&&code<=0x1B81||// Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR -0x1BA2<=code&&code<=0x1BA5||// Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU -0x1BA8<=code&&code<=0x1BA9||// Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG -0x1BAB<=code&&code<=0x1BAD||// Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA -0x1BE6==code||// Mn BATAK SIGN TOMPI -0x1BE8<=code&&code<=0x1BE9||// Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE -0x1BED==code||// Mn BATAK VOWEL SIGN KARO O -0x1BEF<=code&&code<=0x1BF1||// Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H -0x1C2C<=code&&code<=0x1C33||// Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T -0x1C36<=code&&code<=0x1C37||// Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA -0x1CD0<=code&&code<=0x1CD2||// Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA -0x1CD4<=code&&code<=0x1CE0||// Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA -0x1CE2<=code&&code<=0x1CE8||// Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL -0x1CED==code||// Mn VEDIC SIGN TIRYAK -0x1CF4==code||// Mn VEDIC TONE CANDRA ABOVE -0x1CF8<=code&&code<=0x1CF9||// Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE -0x1DC0<=code&&code<=0x1DF9||// Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW -0x1DFB<=code&&code<=0x1DFF||// Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW -0x200C==code||// Cf ZERO WIDTH NON-JOINER -0x20D0<=code&&code<=0x20DC||// Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE -0x20DD<=code&&code<=0x20E0||// Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH -0x20E1==code||// Mn COMBINING LEFT RIGHT ARROW ABOVE -0x20E2<=code&&code<=0x20E4||// Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE -0x20E5<=code&&code<=0x20F0||// Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE -0x2CEF<=code&&code<=0x2CF1||// Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS -0x2D7F==code||// Mn TIFINAGH CONSONANT JOINER -0x2DE0<=code&&code<=0x2DFF||// Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS -0x302A<=code&&code<=0x302D||// Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK -0x302E<=code&&code<=0x302F||// Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK -0x3099<=code&&code<=0x309A||// Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -0xA66F==code||// Mn COMBINING CYRILLIC VZMET -0xA670<=code&&code<=0xA672||// Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN -0xA674<=code&&code<=0xA67D||// Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK -0xA69E<=code&&code<=0xA69F||// Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E -0xA6F0<=code&&code<=0xA6F1||// Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS -0xA802==code||// Mn SYLOTI NAGRI SIGN DVISVARA -0xA806==code||// Mn SYLOTI NAGRI SIGN HASANTA -0xA80B==code||// Mn SYLOTI NAGRI SIGN ANUSVARA -0xA825<=code&&code<=0xA826||// Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E -0xA8C4<=code&&code<=0xA8C5||// Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU -0xA8E0<=code&&code<=0xA8F1||// Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA -0xA926<=code&&code<=0xA92D||// Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU -0xA947<=code&&code<=0xA951||// Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R -0xA980<=code&&code<=0xA982||// Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR -0xA9B3==code||// Mn JAVANESE SIGN CECAK TELU -0xA9B6<=code&&code<=0xA9B9||// Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT -0xA9BC==code||// Mn JAVANESE VOWEL SIGN PEPET -0xA9E5==code||// Mn MYANMAR SIGN SHAN SAW -0xAA29<=code&&code<=0xAA2E||// Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE -0xAA31<=code&&code<=0xAA32||// Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE -0xAA35<=code&&code<=0xAA36||// Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA -0xAA43==code||// Mn CHAM CONSONANT SIGN FINAL NG -0xAA4C==code||// Mn CHAM CONSONANT SIGN FINAL M -0xAA7C==code||// Mn MYANMAR SIGN TAI LAING TONE-2 -0xAAB0==code||// Mn TAI VIET MAI KANG -0xAAB2<=code&&code<=0xAAB4||// Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U -0xAAB7<=code&&code<=0xAAB8||// Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA -0xAABE<=code&&code<=0xAABF||// Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK -0xAAC1==code||// Mn TAI VIET TONE MAI THO -0xAAEC<=code&&code<=0xAAED||// Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI -0xAAF6==code||// Mn MEETEI MAYEK VIRAMA -0xABE5==code||// Mn MEETEI MAYEK VOWEL SIGN ANAP -0xABE8==code||// Mn MEETEI MAYEK VOWEL SIGN UNAP -0xABED==code||// Mn MEETEI MAYEK APUN IYEK -0xFB1E==code||// Mn HEBREW POINT JUDEO-SPANISH VARIKA -0xFE00<=code&&code<=0xFE0F||// Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 -0xFE20<=code&&code<=0xFE2F||// Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF -0xFF9E<=code&&code<=0xFF9F||// Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK -0x101FD==code||// Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE -0x102E0==code||// Mn COPTIC EPACT THOUSANDS MARK -0x10376<=code&&code<=0x1037A||// Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII -0x10A01<=code&&code<=0x10A03||// Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R -0x10A05<=code&&code<=0x10A06||// Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O -0x10A0C<=code&&code<=0x10A0F||// Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA -0x10A38<=code&&code<=0x10A3A||// Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW -0x10A3F==code||// Mn KHAROSHTHI VIRAMA -0x10AE5<=code&&code<=0x10AE6||// Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW -0x11001==code||// Mn BRAHMI SIGN ANUSVARA -0x11038<=code&&code<=0x11046||// Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA -0x1107F<=code&&code<=0x11081||// Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA -0x110B3<=code&&code<=0x110B6||// Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI -0x110B9<=code&&code<=0x110BA||// Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA -0x11100<=code&&code<=0x11102||// Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA -0x11127<=code&&code<=0x1112B||// Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU -0x1112D<=code&&code<=0x11134||// Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA -0x11173==code||// Mn MAHAJANI SIGN NUKTA -0x11180<=code&&code<=0x11181||// Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA -0x111B6<=code&&code<=0x111BE||// Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O -0x111CA<=code&&code<=0x111CC||// Mn [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK -0x1122F<=code&&code<=0x11231||// Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI -0x11234==code||// Mn KHOJKI SIGN ANUSVARA -0x11236<=code&&code<=0x11237||// Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA -0x1123E==code||// Mn KHOJKI SIGN SUKUN -0x112DF==code||// Mn KHUDAWADI SIGN ANUSVARA -0x112E3<=code&&code<=0x112EA||// Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA -0x11300<=code&&code<=0x11301||// Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU -0x1133C==code||// Mn GRANTHA SIGN NUKTA -0x1133E==code||// Mc GRANTHA VOWEL SIGN AA -0x11340==code||// Mn GRANTHA VOWEL SIGN II -0x11357==code||// Mc GRANTHA AU LENGTH MARK -0x11366<=code&&code<=0x1136C||// Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX -0x11370<=code&&code<=0x11374||// Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA -0x11438<=code&&code<=0x1143F||// Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI -0x11442<=code&&code<=0x11444||// Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA -0x11446==code||// Mn NEWA SIGN NUKTA -0x114B0==code||// Mc TIRHUTA VOWEL SIGN AA -0x114B3<=code&&code<=0x114B8||// Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL -0x114BA==code||// Mn TIRHUTA VOWEL SIGN SHORT E -0x114BD==code||// Mc TIRHUTA VOWEL SIGN SHORT O -0x114BF<=code&&code<=0x114C0||// Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA -0x114C2<=code&&code<=0x114C3||// Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA -0x115AF==code||// Mc SIDDHAM VOWEL SIGN AA -0x115B2<=code&&code<=0x115B5||// Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR -0x115BC<=code&&code<=0x115BD||// Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA -0x115BF<=code&&code<=0x115C0||// Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA -0x115DC<=code&&code<=0x115DD||// Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU -0x11633<=code&&code<=0x1163A||// Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI -0x1163D==code||// Mn MODI SIGN ANUSVARA -0x1163F<=code&&code<=0x11640||// Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA -0x116AB==code||// Mn TAKRI SIGN ANUSVARA -0x116AD==code||// Mn TAKRI VOWEL SIGN AA -0x116B0<=code&&code<=0x116B5||// Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU -0x116B7==code||// Mn TAKRI SIGN NUKTA -0x1171D<=code&&code<=0x1171F||// Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA -0x11722<=code&&code<=0x11725||// Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU -0x11727<=code&&code<=0x1172B||// Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER -0x11A01<=code&&code<=0x11A06||// Mn [6] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL SIGN O -0x11A09<=code&&code<=0x11A0A||// Mn [2] ZANABAZAR SQUARE VOWEL SIGN REVERSED I..ZANABAZAR SQUARE VOWEL LENGTH MARK -0x11A33<=code&&code<=0x11A38||// Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA -0x11A3B<=code&&code<=0x11A3E||// Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA -0x11A47==code||// Mn ZANABAZAR SQUARE SUBJOINER -0x11A51<=code&&code<=0x11A56||// Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE -0x11A59<=code&&code<=0x11A5B||// Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK -0x11A8A<=code&&code<=0x11A96||// Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA -0x11A98<=code&&code<=0x11A99||// Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER -0x11C30<=code&&code<=0x11C36||// Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L -0x11C38<=code&&code<=0x11C3D||// Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA -0x11C3F==code||// Mn BHAIKSUKI SIGN VIRAMA -0x11C92<=code&&code<=0x11CA7||// Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA -0x11CAA<=code&&code<=0x11CB0||// Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA -0x11CB2<=code&&code<=0x11CB3||// Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E -0x11CB5<=code&&code<=0x11CB6||// Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU -0x11D31<=code&&code<=0x11D36||// Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R -0x11D3A==code||// Mn MASARAM GONDI VOWEL SIGN E -0x11D3C<=code&&code<=0x11D3D||// Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O -0x11D3F<=code&&code<=0x11D45||// Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA -0x11D47==code||// Mn MASARAM GONDI RA-KARA -0x16AF0<=code&&code<=0x16AF4||// Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE -0x16B30<=code&&code<=0x16B36||// Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM -0x16F8F<=code&&code<=0x16F92||// Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW -0x1BC9D<=code&&code<=0x1BC9E||// Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK -0x1D165==code||// Mc MUSICAL SYMBOL COMBINING STEM -0x1D167<=code&&code<=0x1D169||// Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 -0x1D16E<=code&&code<=0x1D172||// Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5 -0x1D17B<=code&&code<=0x1D182||// Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE -0x1D185<=code&&code<=0x1D18B||// Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE -0x1D1AA<=code&&code<=0x1D1AD||// Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO -0x1D242<=code&&code<=0x1D244||// Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME -0x1DA00<=code&&code<=0x1DA36||// Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN -0x1DA3B<=code&&code<=0x1DA6C||// Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT -0x1DA75==code||// Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS -0x1DA84==code||// Mn SIGNWRITING LOCATION HEAD NECK -0x1DA9B<=code&&code<=0x1DA9F||// Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 -0x1DAA1<=code&&code<=0x1DAAF||// Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 -0x1E000<=code&&code<=0x1E006||// Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE -0x1E008<=code&&code<=0x1E018||// Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU -0x1E01B<=code&&code<=0x1E021||// Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI -0x1E023<=code&&code<=0x1E024||// Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS -0x1E026<=code&&code<=0x1E02A||// Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA -0x1E8D0<=code&&code<=0x1E8D6||// Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS -0x1E944<=code&&code<=0x1E94A||// Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA -0xE0020<=code&&code<=0xE007F||// Cf [96] TAG SPACE..CANCEL TAG -0xE0100<=code&&code<=0xE01EF// Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -){return Extend;}if(0x1F1E6<=code&&code<=0x1F1FF)// So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z -{return Regional_Indicator;}if(0x0903==code||// Mc DEVANAGARI SIGN VISARGA -0x093B==code||// Mc DEVANAGARI VOWEL SIGN OOE -0x093E<=code&&code<=0x0940||// Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II -0x0949<=code&&code<=0x094C||// Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU -0x094E<=code&&code<=0x094F||// Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW -0x0982<=code&&code<=0x0983||// Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA -0x09BF<=code&&code<=0x09C0||// Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II -0x09C7<=code&&code<=0x09C8||// Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI -0x09CB<=code&&code<=0x09CC||// Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU -0x0A03==code||// Mc GURMUKHI SIGN VISARGA -0x0A3E<=code&&code<=0x0A40||// Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II -0x0A83==code||// Mc GUJARATI SIGN VISARGA -0x0ABE<=code&&code<=0x0AC0||// Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II -0x0AC9==code||// Mc GUJARATI VOWEL SIGN CANDRA O -0x0ACB<=code&&code<=0x0ACC||// Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU -0x0B02<=code&&code<=0x0B03||// Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA -0x0B40==code||// Mc ORIYA VOWEL SIGN II -0x0B47<=code&&code<=0x0B48||// Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI -0x0B4B<=code&&code<=0x0B4C||// Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU -0x0BBF==code||// Mc TAMIL VOWEL SIGN I -0x0BC1<=code&&code<=0x0BC2||// Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU -0x0BC6<=code&&code<=0x0BC8||// Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI -0x0BCA<=code&&code<=0x0BCC||// Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU -0x0C01<=code&&code<=0x0C03||// Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA -0x0C41<=code&&code<=0x0C44||// Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR -0x0C82<=code&&code<=0x0C83||// Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA -0x0CBE==code||// Mc KANNADA VOWEL SIGN AA -0x0CC0<=code&&code<=0x0CC1||// Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U -0x0CC3<=code&&code<=0x0CC4||// Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR -0x0CC7<=code&&code<=0x0CC8||// Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI -0x0CCA<=code&&code<=0x0CCB||// Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO -0x0D02<=code&&code<=0x0D03||// Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA -0x0D3F<=code&&code<=0x0D40||// Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II -0x0D46<=code&&code<=0x0D48||// Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI -0x0D4A<=code&&code<=0x0D4C||// Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU -0x0D82<=code&&code<=0x0D83||// Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA -0x0DD0<=code&&code<=0x0DD1||// Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA -0x0DD8<=code&&code<=0x0DDE||// Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA -0x0DF2<=code&&code<=0x0DF3||// Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA -0x0E33==code||// Lo THAI CHARACTER SARA AM -0x0EB3==code||// Lo LAO VOWEL SIGN AM -0x0F3E<=code&&code<=0x0F3F||// Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES -0x0F7F==code||// Mc TIBETAN SIGN RNAM BCAD -0x1031==code||// Mc MYANMAR VOWEL SIGN E -0x103B<=code&&code<=0x103C||// Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA -0x1056<=code&&code<=0x1057||// Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR -0x1084==code||// Mc MYANMAR VOWEL SIGN SHAN E -0x17B6==code||// Mc KHMER VOWEL SIGN AA -0x17BE<=code&&code<=0x17C5||// Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU -0x17C7<=code&&code<=0x17C8||// Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU -0x1923<=code&&code<=0x1926||// Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU -0x1929<=code&&code<=0x192B||// Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA -0x1930<=code&&code<=0x1931||// Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA -0x1933<=code&&code<=0x1938||// Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA -0x1A19<=code&&code<=0x1A1A||// Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O -0x1A55==code||// Mc TAI THAM CONSONANT SIGN MEDIAL RA -0x1A57==code||// Mc TAI THAM CONSONANT SIGN LA TANG LAI -0x1A6D<=code&&code<=0x1A72||// Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI -0x1B04==code||// Mc BALINESE SIGN BISAH -0x1B35==code||// Mc BALINESE VOWEL SIGN TEDUNG -0x1B3B==code||// Mc BALINESE VOWEL SIGN RA REPA TEDUNG -0x1B3D<=code&&code<=0x1B41||// Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG -0x1B43<=code&&code<=0x1B44||// Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG -0x1B82==code||// Mc SUNDANESE SIGN PANGWISAD -0x1BA1==code||// Mc SUNDANESE CONSONANT SIGN PAMINGKAL -0x1BA6<=code&&code<=0x1BA7||// Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG -0x1BAA==code||// Mc SUNDANESE SIGN PAMAAEH -0x1BE7==code||// Mc BATAK VOWEL SIGN E -0x1BEA<=code&&code<=0x1BEC||// Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O -0x1BEE==code||// Mc BATAK VOWEL SIGN U -0x1BF2<=code&&code<=0x1BF3||// Mc [2] BATAK PANGOLAT..BATAK PANONGONAN -0x1C24<=code&&code<=0x1C2B||// Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU -0x1C34<=code&&code<=0x1C35||// Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG -0x1CE1==code||// Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA -0x1CF2<=code&&code<=0x1CF3||// Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA -0x1CF7==code||// Mc VEDIC SIGN ATIKRAMA -0xA823<=code&&code<=0xA824||// Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I -0xA827==code||// Mc SYLOTI NAGRI VOWEL SIGN OO -0xA880<=code&&code<=0xA881||// Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA -0xA8B4<=code&&code<=0xA8C3||// Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU -0xA952<=code&&code<=0xA953||// Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA -0xA983==code||// Mc JAVANESE SIGN WIGNYAN -0xA9B4<=code&&code<=0xA9B5||// Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG -0xA9BA<=code&&code<=0xA9BB||// Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE -0xA9BD<=code&&code<=0xA9C0||// Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON -0xAA2F<=code&&code<=0xAA30||// Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI -0xAA33<=code&&code<=0xAA34||// Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA -0xAA4D==code||// Mc CHAM CONSONANT SIGN FINAL H -0xAAEB==code||// Mc MEETEI MAYEK VOWEL SIGN II -0xAAEE<=code&&code<=0xAAEF||// Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU -0xAAF5==code||// Mc MEETEI MAYEK VOWEL SIGN VISARGA -0xABE3<=code&&code<=0xABE4||// Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP -0xABE6<=code&&code<=0xABE7||// Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP -0xABE9<=code&&code<=0xABEA||// Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG -0xABEC==code||// Mc MEETEI MAYEK LUM IYEK -0x11000==code||// Mc BRAHMI SIGN CANDRABINDU -0x11002==code||// Mc BRAHMI SIGN VISARGA -0x11082==code||// Mc KAITHI SIGN VISARGA -0x110B0<=code&&code<=0x110B2||// Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II -0x110B7<=code&&code<=0x110B8||// Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU -0x1112C==code||// Mc CHAKMA VOWEL SIGN E -0x11182==code||// Mc SHARADA SIGN VISARGA -0x111B3<=code&&code<=0x111B5||// Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II -0x111BF<=code&&code<=0x111C0||// Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA -0x1122C<=code&&code<=0x1122E||// Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II -0x11232<=code&&code<=0x11233||// Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU -0x11235==code||// Mc KHOJKI SIGN VIRAMA -0x112E0<=code&&code<=0x112E2||// Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II -0x11302<=code&&code<=0x11303||// Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA -0x1133F==code||// Mc GRANTHA VOWEL SIGN I -0x11341<=code&&code<=0x11344||// Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR -0x11347<=code&&code<=0x11348||// Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI -0x1134B<=code&&code<=0x1134D||// Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA -0x11362<=code&&code<=0x11363||// Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL -0x11435<=code&&code<=0x11437||// Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II -0x11440<=code&&code<=0x11441||// Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU -0x11445==code||// Mc NEWA SIGN VISARGA -0x114B1<=code&&code<=0x114B2||// Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II -0x114B9==code||// Mc TIRHUTA VOWEL SIGN E -0x114BB<=code&&code<=0x114BC||// Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O -0x114BE==code||// Mc TIRHUTA VOWEL SIGN AU -0x114C1==code||// Mc TIRHUTA SIGN VISARGA -0x115B0<=code&&code<=0x115B1||// Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II -0x115B8<=code&&code<=0x115BB||// Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU -0x115BE==code||// Mc SIDDHAM SIGN VISARGA -0x11630<=code&&code<=0x11632||// Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II -0x1163B<=code&&code<=0x1163C||// Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU -0x1163E==code||// Mc MODI SIGN VISARGA -0x116AC==code||// Mc TAKRI SIGN VISARGA -0x116AE<=code&&code<=0x116AF||// Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II -0x116B6==code||// Mc TAKRI SIGN VIRAMA -0x11720<=code&&code<=0x11721||// Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA -0x11726==code||// Mc AHOM VOWEL SIGN E -0x11A07<=code&&code<=0x11A08||// Mc [2] ZANABAZAR SQUARE VOWEL SIGN AI..ZANABAZAR SQUARE VOWEL SIGN AU -0x11A39==code||// Mc ZANABAZAR SQUARE SIGN VISARGA -0x11A57<=code&&code<=0x11A58||// Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU -0x11A97==code||// Mc SOYOMBO SIGN VISARGA -0x11C2F==code||// Mc BHAIKSUKI VOWEL SIGN AA -0x11C3E==code||// Mc BHAIKSUKI SIGN VISARGA -0x11CA9==code||// Mc MARCHEN SUBJOINED LETTER YA -0x11CB1==code||// Mc MARCHEN VOWEL SIGN I -0x11CB4==code||// Mc MARCHEN VOWEL SIGN O -0x16F51<=code&&code<=0x16F7E||// Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG -0x1D166==code||// Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM -0x1D16D==code// Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT -){return SpacingMark;}if(0x1100<=code&&code<=0x115F||// Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER -0xA960<=code&&code<=0xA97C// Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH -){return L;}if(0x1160<=code&&code<=0x11A7||// Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE -0xD7B0<=code&&code<=0xD7C6// Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E -){return V;}if(0x11A8<=code&&code<=0x11FF||// Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN -0xD7CB<=code&&code<=0xD7FB// Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH -){return T;}if(0xAC00==code||// Lo HANGUL SYLLABLE GA -0xAC1C==code||// Lo HANGUL SYLLABLE GAE -0xAC38==code||// Lo HANGUL SYLLABLE GYA -0xAC54==code||// Lo HANGUL SYLLABLE GYAE -0xAC70==code||// Lo HANGUL SYLLABLE GEO -0xAC8C==code||// Lo HANGUL SYLLABLE GE -0xACA8==code||// Lo HANGUL SYLLABLE GYEO -0xACC4==code||// Lo HANGUL SYLLABLE GYE -0xACE0==code||// Lo HANGUL SYLLABLE GO -0xACFC==code||// Lo HANGUL SYLLABLE GWA -0xAD18==code||// Lo HANGUL SYLLABLE GWAE -0xAD34==code||// Lo HANGUL SYLLABLE GOE -0xAD50==code||// Lo HANGUL SYLLABLE GYO -0xAD6C==code||// Lo HANGUL SYLLABLE GU -0xAD88==code||// Lo HANGUL SYLLABLE GWEO -0xADA4==code||// Lo HANGUL SYLLABLE GWE -0xADC0==code||// Lo HANGUL SYLLABLE GWI -0xADDC==code||// Lo HANGUL SYLLABLE GYU -0xADF8==code||// Lo HANGUL SYLLABLE GEU -0xAE14==code||// Lo HANGUL SYLLABLE GYI -0xAE30==code||// Lo HANGUL SYLLABLE GI -0xAE4C==code||// Lo HANGUL SYLLABLE GGA -0xAE68==code||// Lo HANGUL SYLLABLE GGAE -0xAE84==code||// Lo HANGUL SYLLABLE GGYA -0xAEA0==code||// Lo HANGUL SYLLABLE GGYAE -0xAEBC==code||// Lo HANGUL SYLLABLE GGEO -0xAED8==code||// Lo HANGUL SYLLABLE GGE -0xAEF4==code||// Lo HANGUL SYLLABLE GGYEO -0xAF10==code||// Lo HANGUL SYLLABLE GGYE -0xAF2C==code||// Lo HANGUL SYLLABLE GGO -0xAF48==code||// Lo HANGUL SYLLABLE GGWA -0xAF64==code||// Lo HANGUL SYLLABLE GGWAE -0xAF80==code||// Lo HANGUL SYLLABLE GGOE -0xAF9C==code||// Lo HANGUL SYLLABLE GGYO -0xAFB8==code||// Lo HANGUL SYLLABLE GGU -0xAFD4==code||// Lo HANGUL SYLLABLE GGWEO -0xAFF0==code||// Lo HANGUL SYLLABLE GGWE -0xB00C==code||// Lo HANGUL SYLLABLE GGWI -0xB028==code||// Lo HANGUL SYLLABLE GGYU -0xB044==code||// Lo HANGUL SYLLABLE GGEU -0xB060==code||// Lo HANGUL SYLLABLE GGYI -0xB07C==code||// Lo HANGUL SYLLABLE GGI -0xB098==code||// Lo HANGUL SYLLABLE NA -0xB0B4==code||// Lo HANGUL SYLLABLE NAE -0xB0D0==code||// Lo HANGUL SYLLABLE NYA -0xB0EC==code||// Lo HANGUL SYLLABLE NYAE -0xB108==code||// Lo HANGUL SYLLABLE NEO -0xB124==code||// Lo HANGUL SYLLABLE NE -0xB140==code||// Lo HANGUL SYLLABLE NYEO -0xB15C==code||// Lo HANGUL SYLLABLE NYE -0xB178==code||// Lo HANGUL SYLLABLE NO -0xB194==code||// Lo HANGUL SYLLABLE NWA -0xB1B0==code||// Lo HANGUL SYLLABLE NWAE -0xB1CC==code||// Lo HANGUL SYLLABLE NOE -0xB1E8==code||// Lo HANGUL SYLLABLE NYO -0xB204==code||// Lo HANGUL SYLLABLE NU -0xB220==code||// Lo HANGUL SYLLABLE NWEO -0xB23C==code||// Lo HANGUL SYLLABLE NWE -0xB258==code||// Lo HANGUL SYLLABLE NWI -0xB274==code||// Lo HANGUL SYLLABLE NYU -0xB290==code||// Lo HANGUL SYLLABLE NEU -0xB2AC==code||// Lo HANGUL SYLLABLE NYI -0xB2C8==code||// Lo HANGUL SYLLABLE NI -0xB2E4==code||// Lo HANGUL SYLLABLE DA -0xB300==code||// Lo HANGUL SYLLABLE DAE -0xB31C==code||// Lo HANGUL SYLLABLE DYA -0xB338==code||// Lo HANGUL SYLLABLE DYAE -0xB354==code||// Lo HANGUL SYLLABLE DEO -0xB370==code||// Lo HANGUL SYLLABLE DE -0xB38C==code||// Lo HANGUL SYLLABLE DYEO -0xB3A8==code||// Lo HANGUL SYLLABLE DYE -0xB3C4==code||// Lo HANGUL SYLLABLE DO -0xB3E0==code||// Lo HANGUL SYLLABLE DWA -0xB3FC==code||// Lo HANGUL SYLLABLE DWAE -0xB418==code||// Lo HANGUL SYLLABLE DOE -0xB434==code||// Lo HANGUL SYLLABLE DYO -0xB450==code||// Lo HANGUL SYLLABLE DU -0xB46C==code||// Lo HANGUL SYLLABLE DWEO -0xB488==code||// Lo HANGUL SYLLABLE DWE -0xB4A4==code||// Lo HANGUL SYLLABLE DWI -0xB4C0==code||// Lo HANGUL SYLLABLE DYU -0xB4DC==code||// Lo HANGUL SYLLABLE DEU -0xB4F8==code||// Lo HANGUL SYLLABLE DYI -0xB514==code||// Lo HANGUL SYLLABLE DI -0xB530==code||// Lo HANGUL SYLLABLE DDA -0xB54C==code||// Lo HANGUL SYLLABLE DDAE -0xB568==code||// Lo HANGUL SYLLABLE DDYA -0xB584==code||// Lo HANGUL SYLLABLE DDYAE -0xB5A0==code||// Lo HANGUL SYLLABLE DDEO -0xB5BC==code||// Lo HANGUL SYLLABLE DDE -0xB5D8==code||// Lo HANGUL SYLLABLE DDYEO -0xB5F4==code||// Lo HANGUL SYLLABLE DDYE -0xB610==code||// Lo HANGUL SYLLABLE DDO -0xB62C==code||// Lo HANGUL SYLLABLE DDWA -0xB648==code||// Lo HANGUL SYLLABLE DDWAE -0xB664==code||// Lo HANGUL SYLLABLE DDOE -0xB680==code||// Lo HANGUL SYLLABLE DDYO -0xB69C==code||// Lo HANGUL SYLLABLE DDU -0xB6B8==code||// Lo HANGUL SYLLABLE DDWEO -0xB6D4==code||// Lo HANGUL SYLLABLE DDWE -0xB6F0==code||// Lo HANGUL SYLLABLE DDWI -0xB70C==code||// Lo HANGUL SYLLABLE DDYU -0xB728==code||// Lo HANGUL SYLLABLE DDEU -0xB744==code||// Lo HANGUL SYLLABLE DDYI -0xB760==code||// Lo HANGUL SYLLABLE DDI -0xB77C==code||// Lo HANGUL SYLLABLE RA -0xB798==code||// Lo HANGUL SYLLABLE RAE -0xB7B4==code||// Lo HANGUL SYLLABLE RYA -0xB7D0==code||// Lo HANGUL SYLLABLE RYAE -0xB7EC==code||// Lo HANGUL SYLLABLE REO -0xB808==code||// Lo HANGUL SYLLABLE RE -0xB824==code||// Lo HANGUL SYLLABLE RYEO -0xB840==code||// Lo HANGUL SYLLABLE RYE -0xB85C==code||// Lo HANGUL SYLLABLE RO -0xB878==code||// Lo HANGUL SYLLABLE RWA -0xB894==code||// Lo HANGUL SYLLABLE RWAE -0xB8B0==code||// Lo HANGUL SYLLABLE ROE -0xB8CC==code||// Lo HANGUL SYLLABLE RYO -0xB8E8==code||// Lo HANGUL SYLLABLE RU -0xB904==code||// Lo HANGUL SYLLABLE RWEO -0xB920==code||// Lo HANGUL SYLLABLE RWE -0xB93C==code||// Lo HANGUL SYLLABLE RWI -0xB958==code||// Lo HANGUL SYLLABLE RYU -0xB974==code||// Lo HANGUL SYLLABLE REU -0xB990==code||// Lo HANGUL SYLLABLE RYI -0xB9AC==code||// Lo HANGUL SYLLABLE RI -0xB9C8==code||// Lo HANGUL SYLLABLE MA -0xB9E4==code||// Lo HANGUL SYLLABLE MAE -0xBA00==code||// Lo HANGUL SYLLABLE MYA -0xBA1C==code||// Lo HANGUL SYLLABLE MYAE -0xBA38==code||// Lo HANGUL SYLLABLE MEO -0xBA54==code||// Lo HANGUL SYLLABLE ME -0xBA70==code||// Lo HANGUL SYLLABLE MYEO -0xBA8C==code||// Lo HANGUL SYLLABLE MYE -0xBAA8==code||// Lo HANGUL SYLLABLE MO -0xBAC4==code||// Lo HANGUL SYLLABLE MWA -0xBAE0==code||// Lo HANGUL SYLLABLE MWAE -0xBAFC==code||// Lo HANGUL SYLLABLE MOE -0xBB18==code||// Lo HANGUL SYLLABLE MYO -0xBB34==code||// Lo HANGUL SYLLABLE MU -0xBB50==code||// Lo HANGUL SYLLABLE MWEO -0xBB6C==code||// Lo HANGUL SYLLABLE MWE -0xBB88==code||// Lo HANGUL SYLLABLE MWI -0xBBA4==code||// Lo HANGUL SYLLABLE MYU -0xBBC0==code||// Lo HANGUL SYLLABLE MEU -0xBBDC==code||// Lo HANGUL SYLLABLE MYI -0xBBF8==code||// Lo HANGUL SYLLABLE MI -0xBC14==code||// Lo HANGUL SYLLABLE BA -0xBC30==code||// Lo HANGUL SYLLABLE BAE -0xBC4C==code||// Lo HANGUL SYLLABLE BYA -0xBC68==code||// Lo HANGUL SYLLABLE BYAE -0xBC84==code||// Lo HANGUL SYLLABLE BEO -0xBCA0==code||// Lo HANGUL SYLLABLE BE -0xBCBC==code||// Lo HANGUL SYLLABLE BYEO -0xBCD8==code||// Lo HANGUL SYLLABLE BYE -0xBCF4==code||// Lo HANGUL SYLLABLE BO -0xBD10==code||// Lo HANGUL SYLLABLE BWA -0xBD2C==code||// Lo HANGUL SYLLABLE BWAE -0xBD48==code||// Lo HANGUL SYLLABLE BOE -0xBD64==code||// Lo HANGUL SYLLABLE BYO -0xBD80==code||// Lo HANGUL SYLLABLE BU -0xBD9C==code||// Lo HANGUL SYLLABLE BWEO -0xBDB8==code||// Lo HANGUL SYLLABLE BWE -0xBDD4==code||// Lo HANGUL SYLLABLE BWI -0xBDF0==code||// Lo HANGUL SYLLABLE BYU -0xBE0C==code||// Lo HANGUL SYLLABLE BEU -0xBE28==code||// Lo HANGUL SYLLABLE BYI -0xBE44==code||// Lo HANGUL SYLLABLE BI -0xBE60==code||// Lo HANGUL SYLLABLE BBA -0xBE7C==code||// Lo HANGUL SYLLABLE BBAE -0xBE98==code||// Lo HANGUL SYLLABLE BBYA -0xBEB4==code||// Lo HANGUL SYLLABLE BBYAE -0xBED0==code||// Lo HANGUL SYLLABLE BBEO -0xBEEC==code||// Lo HANGUL SYLLABLE BBE -0xBF08==code||// Lo HANGUL SYLLABLE BBYEO -0xBF24==code||// Lo HANGUL SYLLABLE BBYE -0xBF40==code||// Lo HANGUL SYLLABLE BBO -0xBF5C==code||// Lo HANGUL SYLLABLE BBWA -0xBF78==code||// Lo HANGUL SYLLABLE BBWAE -0xBF94==code||// Lo HANGUL SYLLABLE BBOE -0xBFB0==code||// Lo HANGUL SYLLABLE BBYO -0xBFCC==code||// Lo HANGUL SYLLABLE BBU -0xBFE8==code||// Lo HANGUL SYLLABLE BBWEO -0xC004==code||// Lo HANGUL SYLLABLE BBWE -0xC020==code||// Lo HANGUL SYLLABLE BBWI -0xC03C==code||// Lo HANGUL SYLLABLE BBYU -0xC058==code||// Lo HANGUL SYLLABLE BBEU -0xC074==code||// Lo HANGUL SYLLABLE BBYI -0xC090==code||// Lo HANGUL SYLLABLE BBI -0xC0AC==code||// Lo HANGUL SYLLABLE SA -0xC0C8==code||// Lo HANGUL SYLLABLE SAE -0xC0E4==code||// Lo HANGUL SYLLABLE SYA -0xC100==code||// Lo HANGUL SYLLABLE SYAE -0xC11C==code||// Lo HANGUL SYLLABLE SEO -0xC138==code||// Lo HANGUL SYLLABLE SE -0xC154==code||// Lo HANGUL SYLLABLE SYEO -0xC170==code||// Lo HANGUL SYLLABLE SYE -0xC18C==code||// Lo HANGUL SYLLABLE SO -0xC1A8==code||// Lo HANGUL SYLLABLE SWA -0xC1C4==code||// Lo HANGUL SYLLABLE SWAE -0xC1E0==code||// Lo HANGUL SYLLABLE SOE -0xC1FC==code||// Lo HANGUL SYLLABLE SYO -0xC218==code||// Lo HANGUL SYLLABLE SU -0xC234==code||// Lo HANGUL SYLLABLE SWEO -0xC250==code||// Lo HANGUL SYLLABLE SWE -0xC26C==code||// Lo HANGUL SYLLABLE SWI -0xC288==code||// Lo HANGUL SYLLABLE SYU -0xC2A4==code||// Lo HANGUL SYLLABLE SEU -0xC2C0==code||// Lo HANGUL SYLLABLE SYI -0xC2DC==code||// Lo HANGUL SYLLABLE SI -0xC2F8==code||// Lo HANGUL SYLLABLE SSA -0xC314==code||// Lo HANGUL SYLLABLE SSAE -0xC330==code||// Lo HANGUL SYLLABLE SSYA -0xC34C==code||// Lo HANGUL SYLLABLE SSYAE -0xC368==code||// Lo HANGUL SYLLABLE SSEO -0xC384==code||// Lo HANGUL SYLLABLE SSE -0xC3A0==code||// Lo HANGUL SYLLABLE SSYEO -0xC3BC==code||// Lo HANGUL SYLLABLE SSYE -0xC3D8==code||// Lo HANGUL SYLLABLE SSO -0xC3F4==code||// Lo HANGUL SYLLABLE SSWA -0xC410==code||// Lo HANGUL SYLLABLE SSWAE -0xC42C==code||// Lo HANGUL SYLLABLE SSOE -0xC448==code||// Lo HANGUL SYLLABLE SSYO -0xC464==code||// Lo HANGUL SYLLABLE SSU -0xC480==code||// Lo HANGUL SYLLABLE SSWEO -0xC49C==code||// Lo HANGUL SYLLABLE SSWE -0xC4B8==code||// Lo HANGUL SYLLABLE SSWI -0xC4D4==code||// Lo HANGUL SYLLABLE SSYU -0xC4F0==code||// Lo HANGUL SYLLABLE SSEU -0xC50C==code||// Lo HANGUL SYLLABLE SSYI -0xC528==code||// Lo HANGUL SYLLABLE SSI -0xC544==code||// Lo HANGUL SYLLABLE A -0xC560==code||// Lo HANGUL SYLLABLE AE -0xC57C==code||// Lo HANGUL SYLLABLE YA -0xC598==code||// Lo HANGUL SYLLABLE YAE -0xC5B4==code||// Lo HANGUL SYLLABLE EO -0xC5D0==code||// Lo HANGUL SYLLABLE E -0xC5EC==code||// Lo HANGUL SYLLABLE YEO -0xC608==code||// Lo HANGUL SYLLABLE YE -0xC624==code||// Lo HANGUL SYLLABLE O -0xC640==code||// Lo HANGUL SYLLABLE WA -0xC65C==code||// Lo HANGUL SYLLABLE WAE -0xC678==code||// Lo HANGUL SYLLABLE OE -0xC694==code||// Lo HANGUL SYLLABLE YO -0xC6B0==code||// Lo HANGUL SYLLABLE U -0xC6CC==code||// Lo HANGUL SYLLABLE WEO -0xC6E8==code||// Lo HANGUL SYLLABLE WE -0xC704==code||// Lo HANGUL SYLLABLE WI -0xC720==code||// Lo HANGUL SYLLABLE YU -0xC73C==code||// Lo HANGUL SYLLABLE EU -0xC758==code||// Lo HANGUL SYLLABLE YI -0xC774==code||// Lo HANGUL SYLLABLE I -0xC790==code||// Lo HANGUL SYLLABLE JA -0xC7AC==code||// Lo HANGUL SYLLABLE JAE -0xC7C8==code||// Lo HANGUL SYLLABLE JYA -0xC7E4==code||// Lo HANGUL SYLLABLE JYAE -0xC800==code||// Lo HANGUL SYLLABLE JEO -0xC81C==code||// Lo HANGUL SYLLABLE JE -0xC838==code||// Lo HANGUL SYLLABLE JYEO -0xC854==code||// Lo HANGUL SYLLABLE JYE -0xC870==code||// Lo HANGUL SYLLABLE JO -0xC88C==code||// Lo HANGUL SYLLABLE JWA -0xC8A8==code||// Lo HANGUL SYLLABLE JWAE -0xC8C4==code||// Lo HANGUL SYLLABLE JOE -0xC8E0==code||// Lo HANGUL SYLLABLE JYO -0xC8FC==code||// Lo HANGUL SYLLABLE JU -0xC918==code||// Lo HANGUL SYLLABLE JWEO -0xC934==code||// Lo HANGUL SYLLABLE JWE -0xC950==code||// Lo HANGUL SYLLABLE JWI -0xC96C==code||// Lo HANGUL SYLLABLE JYU -0xC988==code||// Lo HANGUL SYLLABLE JEU -0xC9A4==code||// Lo HANGUL SYLLABLE JYI -0xC9C0==code||// Lo HANGUL SYLLABLE JI -0xC9DC==code||// Lo HANGUL SYLLABLE JJA -0xC9F8==code||// Lo HANGUL SYLLABLE JJAE -0xCA14==code||// Lo HANGUL SYLLABLE JJYA -0xCA30==code||// Lo HANGUL SYLLABLE JJYAE -0xCA4C==code||// Lo HANGUL SYLLABLE JJEO -0xCA68==code||// Lo HANGUL SYLLABLE JJE -0xCA84==code||// Lo HANGUL SYLLABLE JJYEO -0xCAA0==code||// Lo HANGUL SYLLABLE JJYE -0xCABC==code||// Lo HANGUL SYLLABLE JJO -0xCAD8==code||// Lo HANGUL SYLLABLE JJWA -0xCAF4==code||// Lo HANGUL SYLLABLE JJWAE -0xCB10==code||// Lo HANGUL SYLLABLE JJOE -0xCB2C==code||// Lo HANGUL SYLLABLE JJYO -0xCB48==code||// Lo HANGUL SYLLABLE JJU -0xCB64==code||// Lo HANGUL SYLLABLE JJWEO -0xCB80==code||// Lo HANGUL SYLLABLE JJWE -0xCB9C==code||// Lo HANGUL SYLLABLE JJWI -0xCBB8==code||// Lo HANGUL SYLLABLE JJYU -0xCBD4==code||// Lo HANGUL SYLLABLE JJEU -0xCBF0==code||// Lo HANGUL SYLLABLE JJYI -0xCC0C==code||// Lo HANGUL SYLLABLE JJI -0xCC28==code||// Lo HANGUL SYLLABLE CA -0xCC44==code||// Lo HANGUL SYLLABLE CAE -0xCC60==code||// Lo HANGUL SYLLABLE CYA -0xCC7C==code||// Lo HANGUL SYLLABLE CYAE -0xCC98==code||// Lo HANGUL SYLLABLE CEO -0xCCB4==code||// Lo HANGUL SYLLABLE CE -0xCCD0==code||// Lo HANGUL SYLLABLE CYEO -0xCCEC==code||// Lo HANGUL SYLLABLE CYE -0xCD08==code||// Lo HANGUL SYLLABLE CO -0xCD24==code||// Lo HANGUL SYLLABLE CWA -0xCD40==code||// Lo HANGUL SYLLABLE CWAE -0xCD5C==code||// Lo HANGUL SYLLABLE COE -0xCD78==code||// Lo HANGUL SYLLABLE CYO -0xCD94==code||// Lo HANGUL SYLLABLE CU -0xCDB0==code||// Lo HANGUL SYLLABLE CWEO -0xCDCC==code||// Lo HANGUL SYLLABLE CWE -0xCDE8==code||// Lo HANGUL SYLLABLE CWI -0xCE04==code||// Lo HANGUL SYLLABLE CYU -0xCE20==code||// Lo HANGUL SYLLABLE CEU -0xCE3C==code||// Lo HANGUL SYLLABLE CYI -0xCE58==code||// Lo HANGUL SYLLABLE CI -0xCE74==code||// Lo HANGUL SYLLABLE KA -0xCE90==code||// Lo HANGUL SYLLABLE KAE -0xCEAC==code||// Lo HANGUL SYLLABLE KYA -0xCEC8==code||// Lo HANGUL SYLLABLE KYAE -0xCEE4==code||// Lo HANGUL SYLLABLE KEO -0xCF00==code||// Lo HANGUL SYLLABLE KE -0xCF1C==code||// Lo HANGUL SYLLABLE KYEO -0xCF38==code||// Lo HANGUL SYLLABLE KYE -0xCF54==code||// Lo HANGUL SYLLABLE KO -0xCF70==code||// Lo HANGUL SYLLABLE KWA -0xCF8C==code||// Lo HANGUL SYLLABLE KWAE -0xCFA8==code||// Lo HANGUL SYLLABLE KOE -0xCFC4==code||// Lo HANGUL SYLLABLE KYO -0xCFE0==code||// Lo HANGUL SYLLABLE KU -0xCFFC==code||// Lo HANGUL SYLLABLE KWEO -0xD018==code||// Lo HANGUL SYLLABLE KWE -0xD034==code||// Lo HANGUL SYLLABLE KWI -0xD050==code||// Lo HANGUL SYLLABLE KYU -0xD06C==code||// Lo HANGUL SYLLABLE KEU -0xD088==code||// Lo HANGUL SYLLABLE KYI -0xD0A4==code||// Lo HANGUL SYLLABLE KI -0xD0C0==code||// Lo HANGUL SYLLABLE TA -0xD0DC==code||// Lo HANGUL SYLLABLE TAE -0xD0F8==code||// Lo HANGUL SYLLABLE TYA -0xD114==code||// Lo HANGUL SYLLABLE TYAE -0xD130==code||// Lo HANGUL SYLLABLE TEO -0xD14C==code||// Lo HANGUL SYLLABLE TE -0xD168==code||// Lo HANGUL SYLLABLE TYEO -0xD184==code||// Lo HANGUL SYLLABLE TYE -0xD1A0==code||// Lo HANGUL SYLLABLE TO -0xD1BC==code||// Lo HANGUL SYLLABLE TWA -0xD1D8==code||// Lo HANGUL SYLLABLE TWAE -0xD1F4==code||// Lo HANGUL SYLLABLE TOE -0xD210==code||// Lo HANGUL SYLLABLE TYO -0xD22C==code||// Lo HANGUL SYLLABLE TU -0xD248==code||// Lo HANGUL SYLLABLE TWEO -0xD264==code||// Lo HANGUL SYLLABLE TWE -0xD280==code||// Lo HANGUL SYLLABLE TWI -0xD29C==code||// Lo HANGUL SYLLABLE TYU -0xD2B8==code||// Lo HANGUL SYLLABLE TEU -0xD2D4==code||// Lo HANGUL SYLLABLE TYI -0xD2F0==code||// Lo HANGUL SYLLABLE TI -0xD30C==code||// Lo HANGUL SYLLABLE PA -0xD328==code||// Lo HANGUL SYLLABLE PAE -0xD344==code||// Lo HANGUL SYLLABLE PYA -0xD360==code||// Lo HANGUL SYLLABLE PYAE -0xD37C==code||// Lo HANGUL SYLLABLE PEO -0xD398==code||// Lo HANGUL SYLLABLE PE -0xD3B4==code||// Lo HANGUL SYLLABLE PYEO -0xD3D0==code||// Lo HANGUL SYLLABLE PYE -0xD3EC==code||// Lo HANGUL SYLLABLE PO -0xD408==code||// Lo HANGUL SYLLABLE PWA -0xD424==code||// Lo HANGUL SYLLABLE PWAE -0xD440==code||// Lo HANGUL SYLLABLE POE -0xD45C==code||// Lo HANGUL SYLLABLE PYO -0xD478==code||// Lo HANGUL SYLLABLE PU -0xD494==code||// Lo HANGUL SYLLABLE PWEO -0xD4B0==code||// Lo HANGUL SYLLABLE PWE -0xD4CC==code||// Lo HANGUL SYLLABLE PWI -0xD4E8==code||// Lo HANGUL SYLLABLE PYU -0xD504==code||// Lo HANGUL SYLLABLE PEU -0xD520==code||// Lo HANGUL SYLLABLE PYI -0xD53C==code||// Lo HANGUL SYLLABLE PI -0xD558==code||// Lo HANGUL SYLLABLE HA -0xD574==code||// Lo HANGUL SYLLABLE HAE -0xD590==code||// Lo HANGUL SYLLABLE HYA -0xD5AC==code||// Lo HANGUL SYLLABLE HYAE -0xD5C8==code||// Lo HANGUL SYLLABLE HEO -0xD5E4==code||// Lo HANGUL SYLLABLE HE -0xD600==code||// Lo HANGUL SYLLABLE HYEO -0xD61C==code||// Lo HANGUL SYLLABLE HYE -0xD638==code||// Lo HANGUL SYLLABLE HO -0xD654==code||// Lo HANGUL SYLLABLE HWA -0xD670==code||// Lo HANGUL SYLLABLE HWAE -0xD68C==code||// Lo HANGUL SYLLABLE HOE -0xD6A8==code||// Lo HANGUL SYLLABLE HYO -0xD6C4==code||// Lo HANGUL SYLLABLE HU -0xD6E0==code||// Lo HANGUL SYLLABLE HWEO -0xD6FC==code||// Lo HANGUL SYLLABLE HWE -0xD718==code||// Lo HANGUL SYLLABLE HWI -0xD734==code||// Lo HANGUL SYLLABLE HYU -0xD750==code||// Lo HANGUL SYLLABLE HEU -0xD76C==code||// Lo HANGUL SYLLABLE HYI -0xD788==code// Lo HANGUL SYLLABLE HI -){return LV;}if(0xAC01<=code&&code<=0xAC1B||// Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH -0xAC1D<=code&&code<=0xAC37||// Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH -0xAC39<=code&&code<=0xAC53||// Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH -0xAC55<=code&&code<=0xAC6F||// Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH -0xAC71<=code&&code<=0xAC8B||// Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH -0xAC8D<=code&&code<=0xACA7||// Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH -0xACA9<=code&&code<=0xACC3||// Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH -0xACC5<=code&&code<=0xACDF||// Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH -0xACE1<=code&&code<=0xACFB||// Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH -0xACFD<=code&&code<=0xAD17||// Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH -0xAD19<=code&&code<=0xAD33||// Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH -0xAD35<=code&&code<=0xAD4F||// Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH -0xAD51<=code&&code<=0xAD6B||// Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH -0xAD6D<=code&&code<=0xAD87||// Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH -0xAD89<=code&&code<=0xADA3||// Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH -0xADA5<=code&&code<=0xADBF||// Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH -0xADC1<=code&&code<=0xADDB||// Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH -0xADDD<=code&&code<=0xADF7||// Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH -0xADF9<=code&&code<=0xAE13||// Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH -0xAE15<=code&&code<=0xAE2F||// Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH -0xAE31<=code&&code<=0xAE4B||// Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH -0xAE4D<=code&&code<=0xAE67||// Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH -0xAE69<=code&&code<=0xAE83||// Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH -0xAE85<=code&&code<=0xAE9F||// Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH -0xAEA1<=code&&code<=0xAEBB||// Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH -0xAEBD<=code&&code<=0xAED7||// Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH -0xAED9<=code&&code<=0xAEF3||// Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH -0xAEF5<=code&&code<=0xAF0F||// Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH -0xAF11<=code&&code<=0xAF2B||// Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH -0xAF2D<=code&&code<=0xAF47||// Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH -0xAF49<=code&&code<=0xAF63||// Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH -0xAF65<=code&&code<=0xAF7F||// Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH -0xAF81<=code&&code<=0xAF9B||// Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH -0xAF9D<=code&&code<=0xAFB7||// Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH -0xAFB9<=code&&code<=0xAFD3||// Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH -0xAFD5<=code&&code<=0xAFEF||// Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH -0xAFF1<=code&&code<=0xB00B||// Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH -0xB00D<=code&&code<=0xB027||// Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH -0xB029<=code&&code<=0xB043||// Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH -0xB045<=code&&code<=0xB05F||// Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH -0xB061<=code&&code<=0xB07B||// Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH -0xB07D<=code&&code<=0xB097||// Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH -0xB099<=code&&code<=0xB0B3||// Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH -0xB0B5<=code&&code<=0xB0CF||// Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH -0xB0D1<=code&&code<=0xB0EB||// Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH -0xB0ED<=code&&code<=0xB107||// Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH -0xB109<=code&&code<=0xB123||// Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH -0xB125<=code&&code<=0xB13F||// Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH -0xB141<=code&&code<=0xB15B||// Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH -0xB15D<=code&&code<=0xB177||// Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH -0xB179<=code&&code<=0xB193||// Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH -0xB195<=code&&code<=0xB1AF||// Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH -0xB1B1<=code&&code<=0xB1CB||// Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH -0xB1CD<=code&&code<=0xB1E7||// Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH -0xB1E9<=code&&code<=0xB203||// Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH -0xB205<=code&&code<=0xB21F||// Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH -0xB221<=code&&code<=0xB23B||// Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH -0xB23D<=code&&code<=0xB257||// Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH -0xB259<=code&&code<=0xB273||// Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH -0xB275<=code&&code<=0xB28F||// Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH -0xB291<=code&&code<=0xB2AB||// Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH -0xB2AD<=code&&code<=0xB2C7||// Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH -0xB2C9<=code&&code<=0xB2E3||// Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH -0xB2E5<=code&&code<=0xB2FF||// Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH -0xB301<=code&&code<=0xB31B||// Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH -0xB31D<=code&&code<=0xB337||// Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH -0xB339<=code&&code<=0xB353||// Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH -0xB355<=code&&code<=0xB36F||// Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH -0xB371<=code&&code<=0xB38B||// Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH -0xB38D<=code&&code<=0xB3A7||// Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH -0xB3A9<=code&&code<=0xB3C3||// Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH -0xB3C5<=code&&code<=0xB3DF||// Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH -0xB3E1<=code&&code<=0xB3FB||// Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH -0xB3FD<=code&&code<=0xB417||// Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH -0xB419<=code&&code<=0xB433||// Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH -0xB435<=code&&code<=0xB44F||// Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH -0xB451<=code&&code<=0xB46B||// Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH -0xB46D<=code&&code<=0xB487||// Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH -0xB489<=code&&code<=0xB4A3||// Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH -0xB4A5<=code&&code<=0xB4BF||// Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH -0xB4C1<=code&&code<=0xB4DB||// Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH -0xB4DD<=code&&code<=0xB4F7||// Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH -0xB4F9<=code&&code<=0xB513||// Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH -0xB515<=code&&code<=0xB52F||// Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH -0xB531<=code&&code<=0xB54B||// Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH -0xB54D<=code&&code<=0xB567||// Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH -0xB569<=code&&code<=0xB583||// Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH -0xB585<=code&&code<=0xB59F||// Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH -0xB5A1<=code&&code<=0xB5BB||// Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH -0xB5BD<=code&&code<=0xB5D7||// Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH -0xB5D9<=code&&code<=0xB5F3||// Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH -0xB5F5<=code&&code<=0xB60F||// Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH -0xB611<=code&&code<=0xB62B||// Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH -0xB62D<=code&&code<=0xB647||// Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH -0xB649<=code&&code<=0xB663||// Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH -0xB665<=code&&code<=0xB67F||// Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH -0xB681<=code&&code<=0xB69B||// Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH -0xB69D<=code&&code<=0xB6B7||// Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH -0xB6B9<=code&&code<=0xB6D3||// Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH -0xB6D5<=code&&code<=0xB6EF||// Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH -0xB6F1<=code&&code<=0xB70B||// Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH -0xB70D<=code&&code<=0xB727||// Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH -0xB729<=code&&code<=0xB743||// Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH -0xB745<=code&&code<=0xB75F||// Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH -0xB761<=code&&code<=0xB77B||// Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH -0xB77D<=code&&code<=0xB797||// Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH -0xB799<=code&&code<=0xB7B3||// Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH -0xB7B5<=code&&code<=0xB7CF||// Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH -0xB7D1<=code&&code<=0xB7EB||// Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH -0xB7ED<=code&&code<=0xB807||// Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH -0xB809<=code&&code<=0xB823||// Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH -0xB825<=code&&code<=0xB83F||// Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH -0xB841<=code&&code<=0xB85B||// Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH -0xB85D<=code&&code<=0xB877||// Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH -0xB879<=code&&code<=0xB893||// Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH -0xB895<=code&&code<=0xB8AF||// Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH -0xB8B1<=code&&code<=0xB8CB||// Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH -0xB8CD<=code&&code<=0xB8E7||// Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH -0xB8E9<=code&&code<=0xB903||// Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH -0xB905<=code&&code<=0xB91F||// Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH -0xB921<=code&&code<=0xB93B||// Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH -0xB93D<=code&&code<=0xB957||// Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH -0xB959<=code&&code<=0xB973||// Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH -0xB975<=code&&code<=0xB98F||// Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH -0xB991<=code&&code<=0xB9AB||// Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH -0xB9AD<=code&&code<=0xB9C7||// Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH -0xB9C9<=code&&code<=0xB9E3||// Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH -0xB9E5<=code&&code<=0xB9FF||// Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH -0xBA01<=code&&code<=0xBA1B||// Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH -0xBA1D<=code&&code<=0xBA37||// Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH -0xBA39<=code&&code<=0xBA53||// Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH -0xBA55<=code&&code<=0xBA6F||// Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH -0xBA71<=code&&code<=0xBA8B||// Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH -0xBA8D<=code&&code<=0xBAA7||// Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH -0xBAA9<=code&&code<=0xBAC3||// Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH -0xBAC5<=code&&code<=0xBADF||// Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH -0xBAE1<=code&&code<=0xBAFB||// Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH -0xBAFD<=code&&code<=0xBB17||// Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH -0xBB19<=code&&code<=0xBB33||// Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH -0xBB35<=code&&code<=0xBB4F||// Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH -0xBB51<=code&&code<=0xBB6B||// Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH -0xBB6D<=code&&code<=0xBB87||// Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH -0xBB89<=code&&code<=0xBBA3||// Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH -0xBBA5<=code&&code<=0xBBBF||// Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH -0xBBC1<=code&&code<=0xBBDB||// Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH -0xBBDD<=code&&code<=0xBBF7||// Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH -0xBBF9<=code&&code<=0xBC13||// Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH -0xBC15<=code&&code<=0xBC2F||// Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH -0xBC31<=code&&code<=0xBC4B||// Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH -0xBC4D<=code&&code<=0xBC67||// Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH -0xBC69<=code&&code<=0xBC83||// Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH -0xBC85<=code&&code<=0xBC9F||// Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH -0xBCA1<=code&&code<=0xBCBB||// Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH -0xBCBD<=code&&code<=0xBCD7||// Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH -0xBCD9<=code&&code<=0xBCF3||// Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH -0xBCF5<=code&&code<=0xBD0F||// Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH -0xBD11<=code&&code<=0xBD2B||// Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH -0xBD2D<=code&&code<=0xBD47||// Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH -0xBD49<=code&&code<=0xBD63||// Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH -0xBD65<=code&&code<=0xBD7F||// Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH -0xBD81<=code&&code<=0xBD9B||// Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH -0xBD9D<=code&&code<=0xBDB7||// Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH -0xBDB9<=code&&code<=0xBDD3||// Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH -0xBDD5<=code&&code<=0xBDEF||// Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH -0xBDF1<=code&&code<=0xBE0B||// Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH -0xBE0D<=code&&code<=0xBE27||// Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH -0xBE29<=code&&code<=0xBE43||// Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH -0xBE45<=code&&code<=0xBE5F||// Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH -0xBE61<=code&&code<=0xBE7B||// Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH -0xBE7D<=code&&code<=0xBE97||// Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH -0xBE99<=code&&code<=0xBEB3||// Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH -0xBEB5<=code&&code<=0xBECF||// Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH -0xBED1<=code&&code<=0xBEEB||// Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH -0xBEED<=code&&code<=0xBF07||// Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH -0xBF09<=code&&code<=0xBF23||// Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH -0xBF25<=code&&code<=0xBF3F||// Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH -0xBF41<=code&&code<=0xBF5B||// Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH -0xBF5D<=code&&code<=0xBF77||// Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH -0xBF79<=code&&code<=0xBF93||// Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH -0xBF95<=code&&code<=0xBFAF||// Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH -0xBFB1<=code&&code<=0xBFCB||// Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH -0xBFCD<=code&&code<=0xBFE7||// Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH -0xBFE9<=code&&code<=0xC003||// Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH -0xC005<=code&&code<=0xC01F||// Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH -0xC021<=code&&code<=0xC03B||// Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH -0xC03D<=code&&code<=0xC057||// Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH -0xC059<=code&&code<=0xC073||// Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH -0xC075<=code&&code<=0xC08F||// Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH -0xC091<=code&&code<=0xC0AB||// Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH -0xC0AD<=code&&code<=0xC0C7||// Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH -0xC0C9<=code&&code<=0xC0E3||// Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH -0xC0E5<=code&&code<=0xC0FF||// Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH -0xC101<=code&&code<=0xC11B||// Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH -0xC11D<=code&&code<=0xC137||// Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH -0xC139<=code&&code<=0xC153||// Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH -0xC155<=code&&code<=0xC16F||// Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH -0xC171<=code&&code<=0xC18B||// Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH -0xC18D<=code&&code<=0xC1A7||// Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH -0xC1A9<=code&&code<=0xC1C3||// Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH -0xC1C5<=code&&code<=0xC1DF||// Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH -0xC1E1<=code&&code<=0xC1FB||// Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH -0xC1FD<=code&&code<=0xC217||// Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH -0xC219<=code&&code<=0xC233||// Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH -0xC235<=code&&code<=0xC24F||// Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH -0xC251<=code&&code<=0xC26B||// Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH -0xC26D<=code&&code<=0xC287||// Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH -0xC289<=code&&code<=0xC2A3||// Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH -0xC2A5<=code&&code<=0xC2BF||// Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH -0xC2C1<=code&&code<=0xC2DB||// Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH -0xC2DD<=code&&code<=0xC2F7||// Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH -0xC2F9<=code&&code<=0xC313||// Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH -0xC315<=code&&code<=0xC32F||// Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH -0xC331<=code&&code<=0xC34B||// Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH -0xC34D<=code&&code<=0xC367||// Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH -0xC369<=code&&code<=0xC383||// Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH -0xC385<=code&&code<=0xC39F||// Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH -0xC3A1<=code&&code<=0xC3BB||// Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH -0xC3BD<=code&&code<=0xC3D7||// Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH -0xC3D9<=code&&code<=0xC3F3||// Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH -0xC3F5<=code&&code<=0xC40F||// Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH -0xC411<=code&&code<=0xC42B||// Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH -0xC42D<=code&&code<=0xC447||// Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH -0xC449<=code&&code<=0xC463||// Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH -0xC465<=code&&code<=0xC47F||// Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH -0xC481<=code&&code<=0xC49B||// Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH -0xC49D<=code&&code<=0xC4B7||// Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH -0xC4B9<=code&&code<=0xC4D3||// Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH -0xC4D5<=code&&code<=0xC4EF||// Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH -0xC4F1<=code&&code<=0xC50B||// Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH -0xC50D<=code&&code<=0xC527||// Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH -0xC529<=code&&code<=0xC543||// Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH -0xC545<=code&&code<=0xC55F||// Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH -0xC561<=code&&code<=0xC57B||// Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH -0xC57D<=code&&code<=0xC597||// Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH -0xC599<=code&&code<=0xC5B3||// Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH -0xC5B5<=code&&code<=0xC5CF||// Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH -0xC5D1<=code&&code<=0xC5EB||// Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH -0xC5ED<=code&&code<=0xC607||// Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH -0xC609<=code&&code<=0xC623||// Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH -0xC625<=code&&code<=0xC63F||// Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH -0xC641<=code&&code<=0xC65B||// Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH -0xC65D<=code&&code<=0xC677||// Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH -0xC679<=code&&code<=0xC693||// Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH -0xC695<=code&&code<=0xC6AF||// Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH -0xC6B1<=code&&code<=0xC6CB||// Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH -0xC6CD<=code&&code<=0xC6E7||// Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH -0xC6E9<=code&&code<=0xC703||// Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH -0xC705<=code&&code<=0xC71F||// Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH -0xC721<=code&&code<=0xC73B||// Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH -0xC73D<=code&&code<=0xC757||// Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH -0xC759<=code&&code<=0xC773||// Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH -0xC775<=code&&code<=0xC78F||// Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH -0xC791<=code&&code<=0xC7AB||// Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH -0xC7AD<=code&&code<=0xC7C7||// Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH -0xC7C9<=code&&code<=0xC7E3||// Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH -0xC7E5<=code&&code<=0xC7FF||// Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH -0xC801<=code&&code<=0xC81B||// Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH -0xC81D<=code&&code<=0xC837||// Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH -0xC839<=code&&code<=0xC853||// Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH -0xC855<=code&&code<=0xC86F||// Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH -0xC871<=code&&code<=0xC88B||// Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH -0xC88D<=code&&code<=0xC8A7||// Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH -0xC8A9<=code&&code<=0xC8C3||// Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH -0xC8C5<=code&&code<=0xC8DF||// Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH -0xC8E1<=code&&code<=0xC8FB||// Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH -0xC8FD<=code&&code<=0xC917||// Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH -0xC919<=code&&code<=0xC933||// Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH -0xC935<=code&&code<=0xC94F||// Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH -0xC951<=code&&code<=0xC96B||// Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH -0xC96D<=code&&code<=0xC987||// Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH -0xC989<=code&&code<=0xC9A3||// Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH -0xC9A5<=code&&code<=0xC9BF||// Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH -0xC9C1<=code&&code<=0xC9DB||// Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH -0xC9DD<=code&&code<=0xC9F7||// Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH -0xC9F9<=code&&code<=0xCA13||// Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH -0xCA15<=code&&code<=0xCA2F||// Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH -0xCA31<=code&&code<=0xCA4B||// Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH -0xCA4D<=code&&code<=0xCA67||// Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH -0xCA69<=code&&code<=0xCA83||// Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH -0xCA85<=code&&code<=0xCA9F||// Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH -0xCAA1<=code&&code<=0xCABB||// Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH -0xCABD<=code&&code<=0xCAD7||// Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH -0xCAD9<=code&&code<=0xCAF3||// Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH -0xCAF5<=code&&code<=0xCB0F||// Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH -0xCB11<=code&&code<=0xCB2B||// Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH -0xCB2D<=code&&code<=0xCB47||// Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH -0xCB49<=code&&code<=0xCB63||// Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH -0xCB65<=code&&code<=0xCB7F||// Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH -0xCB81<=code&&code<=0xCB9B||// Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH -0xCB9D<=code&&code<=0xCBB7||// Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH -0xCBB9<=code&&code<=0xCBD3||// Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH -0xCBD5<=code&&code<=0xCBEF||// Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH -0xCBF1<=code&&code<=0xCC0B||// Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH -0xCC0D<=code&&code<=0xCC27||// Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH -0xCC29<=code&&code<=0xCC43||// Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH -0xCC45<=code&&code<=0xCC5F||// Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH -0xCC61<=code&&code<=0xCC7B||// Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH -0xCC7D<=code&&code<=0xCC97||// Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH -0xCC99<=code&&code<=0xCCB3||// Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH -0xCCB5<=code&&code<=0xCCCF||// Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH -0xCCD1<=code&&code<=0xCCEB||// Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH -0xCCED<=code&&code<=0xCD07||// Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH -0xCD09<=code&&code<=0xCD23||// Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH -0xCD25<=code&&code<=0xCD3F||// Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH -0xCD41<=code&&code<=0xCD5B||// Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH -0xCD5D<=code&&code<=0xCD77||// Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH -0xCD79<=code&&code<=0xCD93||// Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH -0xCD95<=code&&code<=0xCDAF||// Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH -0xCDB1<=code&&code<=0xCDCB||// Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH -0xCDCD<=code&&code<=0xCDE7||// Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH -0xCDE9<=code&&code<=0xCE03||// Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH -0xCE05<=code&&code<=0xCE1F||// Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH -0xCE21<=code&&code<=0xCE3B||// Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH -0xCE3D<=code&&code<=0xCE57||// Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH -0xCE59<=code&&code<=0xCE73||// Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH -0xCE75<=code&&code<=0xCE8F||// Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH -0xCE91<=code&&code<=0xCEAB||// Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH -0xCEAD<=code&&code<=0xCEC7||// Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH -0xCEC9<=code&&code<=0xCEE3||// Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH -0xCEE5<=code&&code<=0xCEFF||// Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH -0xCF01<=code&&code<=0xCF1B||// Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH -0xCF1D<=code&&code<=0xCF37||// Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH -0xCF39<=code&&code<=0xCF53||// Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH -0xCF55<=code&&code<=0xCF6F||// Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH -0xCF71<=code&&code<=0xCF8B||// Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH -0xCF8D<=code&&code<=0xCFA7||// Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH -0xCFA9<=code&&code<=0xCFC3||// Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH -0xCFC5<=code&&code<=0xCFDF||// Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH -0xCFE1<=code&&code<=0xCFFB||// Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH -0xCFFD<=code&&code<=0xD017||// Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH -0xD019<=code&&code<=0xD033||// Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH -0xD035<=code&&code<=0xD04F||// Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH -0xD051<=code&&code<=0xD06B||// Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH -0xD06D<=code&&code<=0xD087||// Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH -0xD089<=code&&code<=0xD0A3||// Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH -0xD0A5<=code&&code<=0xD0BF||// Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH -0xD0C1<=code&&code<=0xD0DB||// Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH -0xD0DD<=code&&code<=0xD0F7||// Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH -0xD0F9<=code&&code<=0xD113||// Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH -0xD115<=code&&code<=0xD12F||// Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH -0xD131<=code&&code<=0xD14B||// Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH -0xD14D<=code&&code<=0xD167||// Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH -0xD169<=code&&code<=0xD183||// Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH -0xD185<=code&&code<=0xD19F||// Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH -0xD1A1<=code&&code<=0xD1BB||// Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH -0xD1BD<=code&&code<=0xD1D7||// Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH -0xD1D9<=code&&code<=0xD1F3||// Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH -0xD1F5<=code&&code<=0xD20F||// Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH -0xD211<=code&&code<=0xD22B||// Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH -0xD22D<=code&&code<=0xD247||// Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH -0xD249<=code&&code<=0xD263||// Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH -0xD265<=code&&code<=0xD27F||// Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH -0xD281<=code&&code<=0xD29B||// Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH -0xD29D<=code&&code<=0xD2B7||// Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH -0xD2B9<=code&&code<=0xD2D3||// Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH -0xD2D5<=code&&code<=0xD2EF||// Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH -0xD2F1<=code&&code<=0xD30B||// Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH -0xD30D<=code&&code<=0xD327||// Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH -0xD329<=code&&code<=0xD343||// Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH -0xD345<=code&&code<=0xD35F||// Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH -0xD361<=code&&code<=0xD37B||// Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH -0xD37D<=code&&code<=0xD397||// Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH -0xD399<=code&&code<=0xD3B3||// Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH -0xD3B5<=code&&code<=0xD3CF||// Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH -0xD3D1<=code&&code<=0xD3EB||// Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH -0xD3ED<=code&&code<=0xD407||// Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH -0xD409<=code&&code<=0xD423||// Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH -0xD425<=code&&code<=0xD43F||// Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH -0xD441<=code&&code<=0xD45B||// Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH -0xD45D<=code&&code<=0xD477||// Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH -0xD479<=code&&code<=0xD493||// Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH -0xD495<=code&&code<=0xD4AF||// Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH -0xD4B1<=code&&code<=0xD4CB||// Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH -0xD4CD<=code&&code<=0xD4E7||// Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH -0xD4E9<=code&&code<=0xD503||// Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH -0xD505<=code&&code<=0xD51F||// Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH -0xD521<=code&&code<=0xD53B||// Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH -0xD53D<=code&&code<=0xD557||// Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH -0xD559<=code&&code<=0xD573||// Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH -0xD575<=code&&code<=0xD58F||// Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH -0xD591<=code&&code<=0xD5AB||// Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH -0xD5AD<=code&&code<=0xD5C7||// Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH -0xD5C9<=code&&code<=0xD5E3||// Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH -0xD5E5<=code&&code<=0xD5FF||// Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH -0xD601<=code&&code<=0xD61B||// Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH -0xD61D<=code&&code<=0xD637||// Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH -0xD639<=code&&code<=0xD653||// Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH -0xD655<=code&&code<=0xD66F||// Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH -0xD671<=code&&code<=0xD68B||// Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH -0xD68D<=code&&code<=0xD6A7||// Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH -0xD6A9<=code&&code<=0xD6C3||// Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH -0xD6C5<=code&&code<=0xD6DF||// Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH -0xD6E1<=code&&code<=0xD6FB||// Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH -0xD6FD<=code&&code<=0xD717||// Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH -0xD719<=code&&code<=0xD733||// Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH -0xD735<=code&&code<=0xD74F||// Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH -0xD751<=code&&code<=0xD76B||// Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH -0xD76D<=code&&code<=0xD787||// Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH -0xD789<=code&&code<=0xD7A3// Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH -){return LVT;}if(0x261D==code||// So WHITE UP POINTING INDEX -0x26F9==code||// So PERSON WITH BALL -0x270A<=code&&code<=0x270D||// So [4] RAISED FIST..WRITING HAND -0x1F385==code||// So FATHER CHRISTMAS -0x1F3C2<=code&&code<=0x1F3C4||// So [3] SNOWBOARDER..SURFER -0x1F3C7==code||// So HORSE RACING -0x1F3CA<=code&&code<=0x1F3CC||// So [3] SWIMMER..GOLFER -0x1F442<=code&&code<=0x1F443||// So [2] EAR..NOSE -0x1F446<=code&&code<=0x1F450||// So [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN -0x1F46E==code||// So POLICE OFFICER -0x1F470<=code&&code<=0x1F478||// So [9] BRIDE WITH VEIL..PRINCESS -0x1F47C==code||// So BABY ANGEL -0x1F481<=code&&code<=0x1F483||// So [3] INFORMATION DESK PERSON..DANCER -0x1F485<=code&&code<=0x1F487||// So [3] NAIL POLISH..HAIRCUT -0x1F4AA==code||// So FLEXED BICEPS -0x1F574<=code&&code<=0x1F575||// So [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY -0x1F57A==code||// So MAN DANCING -0x1F590==code||// So RAISED HAND WITH FINGERS SPLAYED -0x1F595<=code&&code<=0x1F596||// So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS -0x1F645<=code&&code<=0x1F647||// So [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY -0x1F64B<=code&&code<=0x1F64F||// So [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS -0x1F6A3==code||// So ROWBOAT -0x1F6B4<=code&&code<=0x1F6B6||// So [3] BICYCLIST..PEDESTRIAN -0x1F6C0==code||// So BATH -0x1F6CC==code||// So SLEEPING ACCOMMODATION -0x1F918<=code&&code<=0x1F91C||// So [5] SIGN OF THE HORNS..RIGHT-FACING FIST -0x1F91E<=code&&code<=0x1F91F||// So [2] HAND WITH INDEX AND MIDDLE FINGERS CROSSED..I LOVE YOU HAND SIGN -0x1F926==code||// So FACE PALM -0x1F930<=code&&code<=0x1F939||// So [10] PREGNANT WOMAN..JUGGLING -0x1F93D<=code&&code<=0x1F93E||// So [2] WATER POLO..HANDBALL -0x1F9D1<=code&&code<=0x1F9DD// So [13] ADULT..ELF -){return E_Base;}if(0x1F3FB<=code&&code<=0x1F3FF)// Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 -{return E_Modifier;}if(0x200D==code// Cf ZERO WIDTH JOINER -){return ZWJ;}if(0x2640==code||// So FEMALE SIGN -0x2642==code||// So MALE SIGN -0x2695<=code&&code<=0x2696||// So [2] STAFF OF AESCULAPIUS..SCALES -0x2708==code||// So AIRPLANE -0x2764==code||// So HEAVY BLACK HEART -0x1F308==code||// So RAINBOW -0x1F33E==code||// So EAR OF RICE -0x1F373==code||// So COOKING -0x1F393==code||// So GRADUATION CAP -0x1F3A4==code||// So MICROPHONE -0x1F3A8==code||// So ARTIST PALETTE -0x1F3EB==code||// So SCHOOL -0x1F3ED==code||// So FACTORY -0x1F48B==code||// So KISS MARK -0x1F4BB<=code&&code<=0x1F4BC||// So [2] PERSONAL COMPUTER..BRIEFCASE -0x1F527==code||// So WRENCH -0x1F52C==code||// So MICROSCOPE -0x1F5E8==code||// So LEFT SPEECH BUBBLE -0x1F680==code||// So ROCKET -0x1F692==code// So FIRE ENGINE -){return Glue_After_Zwj;}if(0x1F466<=code&&code<=0x1F469)// So [4] BOY..WOMAN -{return E_Base_GAZ;}//all unlisted characters have a grapheme break property of "Other" -return Other;}return this;}if(module.exports){module.exports=GraphemeSplitter;}});var splitter=new graphemeSplitter();var substring=function substring(str,start,end){var iterator=splitter.iterateGraphemes(str.substring(start));var value='';for(var pos=0;pos AAAAA - * ``` - * - * @param {String} `string` The string to repeat - * @param {Number} `number` The number of times to repeat the string - * @return {String} Repeated string - * @api public - */function repeat(str,num){if(typeof str!=='string'){throw new TypeError('expected a string');}// cover common, quick use cases -if(num===1)return str;if(num===2)return str+str;var max=str.length*num;if(cache!==str||typeof cache==='undefined'){cache=str;res='';}else if(res.length>=max){return res.substr(0,max);}while(max>res.length&&num>1){if(num&1){res+=str;}num>>=1;str+=str;}res+=str;res=res.substr(0,max);return res;}var padStart=function padStart(string,maxLength,fillString){if(string==null||maxLength==null){return string;}var result=String(string);var targetLen=typeof maxLength==='number'?maxLength:parseInt(maxLength,10);if(isNaN(targetLen)||!isFinite(targetLen)){return result;}var length=result.length;if(length>=targetLen){return result;}var fill=fillString==null?'':String(fillString);if(fill===''){fill=' ';}var fillLen=targetLen-length;while(fill.lengthfillLen?fill.substr(0,fillLen):fill;return truncated+result;};var _extends=Object.assign||function(target){for(var i=1;i1?_len-1:0),_key=1;_key<_len;_key++){position[_key-1]=arguments[_key];}return 'Unexpected token <'+token+'> at '+position.filter(Boolean).join(':');}};var tokenizeErrorTypes={unexpectedSymbol:function unexpectedSymbol(symbol){for(var _len=arguments.length,position=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){position[_key-1]=arguments[_key];}return 'Unexpected symbol <'+symbol+'> at '+position.filter(Boolean).join(':');}};var tokenTypes={LEFT_BRACE:0,// { -RIGHT_BRACE:1,// } -LEFT_BRACKET:2,// [ -RIGHT_BRACKET:3,// ] -COLON:4,// : -COMMA:5,// , -STRING:6,// -NUMBER:7,// -TRUE:8,// true -FALSE:9,// false -NULL:10// null -};var punctuatorTokensMap={// Lexeme: Token -'{':tokenTypes.LEFT_BRACE,'}':tokenTypes.RIGHT_BRACE,'[':tokenTypes.LEFT_BRACKET,']':tokenTypes.RIGHT_BRACKET,':':tokenTypes.COLON,',':tokenTypes.COMMA};var keywordTokensMap={// Lexeme: Token -'true':tokenTypes.TRUE,'false':tokenTypes.FALSE,'null':tokenTypes.NULL};var stringStates={_START_:0,START_QUOTE_OR_CHAR:1,ESCAPE:2};var escapes$1={'"':0,// Quotation mask -'\\':1,// Reverse solidus -'/':2,// Solidus -'b':3,// Backspace -'f':4,// Form feed -'n':5,// New line -'r':6,// Carriage return -'t':7,// Horizontal tab -'u':8// 4 hexadecimal digits -};var numberStates={_START_:0,MINUS:1,ZERO:2,DIGIT:3,POINT:4,DIGIT_FRACTION:5,EXP:6,EXP_DIGIT_OR_SIGN:7};// HELPERS -function isDigit1to9(char){return char>='1'&&char<='9';}function isDigit(char){return char>='0'&&char<='9';}function isHex(char){return isDigit(char)||char>='a'&&char<='f'||char>='A'&&char<='F';}function isExp(char){return char==='e'||char==='E';}// PARSERS -function parseWhitespace(input,index,line,column){var char=input.charAt(index);if(char==='\r'){// CR (Unix) -index++;line++;column=1;if(input.charAt(index)==='\n'){// CRLF (Windows) -index++;}}else if(char==='\n'){// LF (MacOS) -index++;line++;column=1;}else if(char==='\t'||char===' '){index++;column++;}else {return null;}return {index:index,line:line,column:column};}function parseChar(input,index,line,column){var char=input.charAt(index);if(char in punctuatorTokensMap){return {type:punctuatorTokensMap[char],line:line,column:column+1,index:index+1,value:null};}return null;}function parseKeyword(input,index,line,column){for(var name in keywordTokensMap){if(keywordTokensMap.hasOwnProperty(name)&&input.substr(index,name.length)===name){return {type:keywordTokensMap[name],line:line,column:column+name.length,index:index+name.length,value:name};}}return null;}function parseString$1(input,index,line,column){var startIndex=index;var state=stringStates._START_;while(index0){return {type:tokenTypes.NUMBER,line:line,column:column+passedValueIndex-startIndex,index:passedValueIndex,value:input.slice(startIndex,passedValueIndex)};}return null;}var tokenize=function tokenize(input,settings){var line=1;var column=1;var index=0;var tokens=[];while(index0?tokenList[tokenList.length-1].loc.end:{line:1,column:1};error(parseErrorTypes.unexpectedEnd(),input,settings.source,loc.line,loc.column);}/** @param hexCode {string} hexCode without '\u' prefix */function parseHexEscape(hexCode){var charCode=0;for(var i=0;i<4;i++){charCode=charCode*16+parseInt(hexCode[i],16);}return String.fromCharCode(charCode);}var escapes={'b':'\b',// Backspace -'f':'\f',// Form feed -'n':'\n',// New line -'r':'\r',// Carriage return -'t':'\t'// Horizontal tab -};var passEscapes=['"','\\','/'];function parseString(/** string */string){var result='';for(var i=0;i{try{return JSON.parse(txt,reviver);}catch(e){handleJsonNotString(txt);const syntaxErr=e.message.match(/^Unexpected token.*position\s+(\d+)/i);const errIdxBrokenJson=e.message.match(/^Unexpected end of JSON.*/i)?txt.length-1:null;const errIdx=syntaxErr?+syntaxErr[1]:errIdxBrokenJson;handleErrIdxNotNull(e,txt,errIdx,context);e.offset=errIdx;const lines=txt.substr(0,errIdx).split('\n');e.startLine=lines.length;e.startColumn=lines[lines.length-1].length;throw e;}};function handleJsonNotString(txt){if(typeof txt!=='string'){const isEmptyArray=Array.isArray(txt)&&txt.length===0;const errorMessage=`Cannot parse ${isEmptyArray?'an empty array':String(txt)}`;throw new TypeError(errorMessage);}}function handleErrIdxNotNull(e,txt,errIdx,context){if(errIdx!==null){const start=errIdx<=context?0:errIdx-context;const end=errIdx+context>=txt.length?txt.length:errIdx+context;e.message+=` while parsing near '${start===0?'':'...'}${txt.slice(start,end)}${end===txt.length?'':'...'}'`;}else {e.message+=` while parsing '${txt.slice(0,context*2)}'`;}}var utils_1=createCommonjsModule(function(module){const{yamlAST,loc}=src;const jsonPointerToArray=jsonPointer=>(jsonPointer||'/').split('/').splice(1);const utils=module.exports;const getAST=(asyncapiYAMLorJSON,initialFormat)=>{if(initialFormat==='yaml'){return yamlAST(asyncapiYAMLorJSON);}else if(initialFormat==='json'){return build(asyncapiYAMLorJSON);}};const findNode=(obj,location)=>{for(const key of location){obj=obj?obj[utils.untilde(key)]:null;}return obj;};const findNodeInAST=(ast,location)=>{let obj=ast;for(const key of location){if(!Array.isArray(obj.children))return;let childArray;const child=obj.children.find(c=>{if(!c)return;if(c.type==='Object')return childArray=c.children.find(a=>a.key.value===utils.untilde(key));return c.type==='Property'&&c.key&&c.key.value===utils.untilde(key);});if(!child)return;obj=childArray?childArray.value:child.value;}return obj;};const findLocationOf=(keys,ast,initialFormat)=>{if(initialFormat==='js')return {jsonPointer:`/${keys.join('/')}`};let node;if(initialFormat==='yaml'){node=findNode(ast,keys);}else if(initialFormat==='json'){node=findNodeInAST(ast,keys);}if(!node)return {jsonPointer:`/${keys.join('/')}`};let info;if(initialFormat==='yaml'){// disable eslint because loc is a Symbol -// eslint-disable-next-line security/detect-object-injection -info=node[loc];}else if(initialFormat==='json'){info=node.loc;}if(!info)return {jsonPointer:`/${keys.join('/')}`};return {jsonPointer:`/${keys.join('/')}`,startLine:info.start.line,startColumn:info.start.column+1,startOffset:info.start.offset,endLine:info.end?info.end.line:undefined,endColumn:info.end?info.end.column+1:undefined,endOffset:info.end?info.end.offset:undefined};};const getMapValue=(obj,key,Type)=>{if(typeof key!=='string'||!obj)return null;const v=obj[String(key)];if(v===undefined)return null;return Type?new Type(v):v;};utils.tilde=str=>{return str.replace(/[~\/]{1}/g,m=>{switch(m){case'/':return '~1';case'~':return '~0';}return m;});};utils.untilde=str=>{if(!str.includes('~'))return str;return str.replace(/~[01]/g,m=>{switch(m){case'~1':return '/';case'~0':return '~';}return m;});};utils.toJS=asyncapiYAMLorJSON=>{if(!asyncapiYAMLorJSON){throw new parserError({type:'null-or-falsey-document',title:'Document can\'t be null or falsey.'});}if(asyncapiYAMLorJSON.constructor&&asyncapiYAMLorJSON.constructor.name==='Object'){return {initialFormat:'js',parsedJSON:asyncapiYAMLorJSON};}if(typeof asyncapiYAMLorJSON!=='string'){throw new parserError({type:'invalid-document-type',title:'The AsyncAPI document has to be either a string or a JS object.'});}if(asyncapiYAMLorJSON.trimLeft().startsWith('{')){try{return {initialFormat:'json',parsedJSON:jsonParse(asyncapiYAMLorJSON)};}catch(e){throw new parserError({type:'invalid-json',title:'The provided JSON is not valid.',detail:e.message,location:{startOffset:e.offset,startLine:e.startLine,startColumn:e.startColumn}});}}else {try{return {initialFormat:'yaml',parsedJSON:jsYaml.safeLoad(asyncapiYAMLorJSON)};}catch(err){throw new parserError({type:'invalid-yaml',title:'The provided YAML is not valid.',detail:err.message,location:{startOffset:err.mark.position,startLine:err.mark.line+1,startColumn:err.mark.column+1}});}}};utils.createMapOfType=(obj,Type)=>{const result={};if(!obj)return result;Object.entries(obj).forEach(([key,value])=>{result[String(key)]=new Type(value);});return result;};utils.getMapValueOfType=(obj,key,Type)=>{return getMapValue(obj,key,Type);};utils.getMapValueByKey=(obj,key)=>{return getMapValue(obj,key);};/** - * Extends a given model with additional methods related to frequently recurring models - * @function mix - * @private - * @param {Object} model model to extend - * @param {Array} mixins array with mixins to extend the model with - */utils.mix=(model,...mixins)=>{let duplicatedMethods=false;function checkDuplication(mixin){// check duplication of model in mixins array -if(model===mixin)return true;// check duplication of model's methods -duplicatedMethods=Object.keys(mixin).some(mixinMethod=>model.prototype.hasOwnProperty(mixinMethod));return duplicatedMethods;}if(mixins.some(checkDuplication)){if(duplicatedMethods){throw new Error(`invalid mix function: model ${model.name} has at least one method that it is trying to replace by mixin`);}else {throw new Error(`invalid mix function: cannot use the model ${model.name} as a mixin`);}}mixins.forEach(mixin=>Object.assign(model.prototype,mixin));return model;};utils.findRefs=(errors,initialFormat,asyncapiYAMLorJSON)=>{let refs=[];errors.map(({path})=>refs.push({location:[...path.map(utils.tilde),'$ref']}));if(initialFormat==='js'){return refs.map(ref=>({jsonPointer:`/${ref.location.join('/')}`}));}if(initialFormat==='yaml'){const pseudoAST=yamlAST(asyncapiYAMLorJSON);refs=refs.map(ref=>findLocationOf(ref.location,pseudoAST,initialFormat));}else if(initialFormat==='json'){const ast=build(asyncapiYAMLorJSON);refs=refs.map(ref=>findLocationOf(ref.location,ast,initialFormat));}return refs;};utils.getLocationOf=(jsonPointer,asyncapiYAMLorJSON,initialFormat)=>{const ast=getAST(asyncapiYAMLorJSON,initialFormat);if(!ast)return {jsonPointer};return findLocationOf(jsonPointerToArray(jsonPointer),ast,initialFormat);};utils.improveAjvErrors=(errors,asyncapiYAMLorJSON,initialFormat)=>{const ast=getAST(asyncapiYAMLorJSON,initialFormat);return errors.map(error=>{const defaultLocation={jsonPointer:error.dataPath||'/'};return {title:`${error.dataPath||'/'} ${error.message}`,location:ast?findLocationOf(jsonPointerToArray(error.dataPath),ast,initialFormat):defaultLocation};});};/** - * It parses the string and returns an array with all values that are between curly braces, including braces - * @function parseUrlVariables - * @private - */utils.parseUrlVariables=str=>{if(typeof str!=='string')return;return str.match(/{(.+?)}/g);};/** - * It parses the string and returns url parameters as string - * @function parseUrlQueryParameters - * @private - */utils.parseUrlQueryParameters=str=>{if(typeof str!=='string')return;return str.match(/\?((.*=.*)(&?))/g);};/** - * Returns an array of not existing properties in provided object with names specified in provided array - * @function getMissingProps - * @private - */utils.getMissingProps=(arr,obj)=>{arr=arr.map(val=>val.replace(/[{}]/g,''));if(!obj)return arr;return arr.filter(val=>{return !obj.hasOwnProperty(val);});};/** - * Returns array of errors messages compatible with validationErrors parameter from ParserError - * - * @function groupValidationErrors - * @private - * @param {String} root name of the root element in the AsyncAPI document, for example channels - * @param {String} errorMessage the text of the custom error message that will follow the path that points the error - * @param {Map} errorElements map of error elements cause the validation error might happen in many places in the document. - * The key should have a path information where the error was found, the value holds information about error element but it is not mandatory - * @param {String} asyncapiYAMLorJSON AsyncAPI document in string - * @param {String} initialFormat information of the document was oryginally JSON or YAML - * @returns {Array} Object has always 2 keys, title and location. Title is a combination of errorElement key + errorMessage + errorElement value. - * Location is the object with information about location of the issue in the file and json Pointer - */utils.groupValidationErrors=(root,errorMessage,errorElements,asyncapiYAMLorJSON,initialFormat)=>{const errors=[];errorElements.forEach((val,key)=>{if(typeof val==='string')val=utils.untilde(val);errors.push({title:val?`${utils.untilde(key)} ${errorMessage}: ${val}`:`${utils.untilde(key)} ${errorMessage}`,location:utils.getLocationOf(`/${root}/${key}`,asyncapiYAMLorJSON,initialFormat)});});return errors;};/** - * extend map with channel params missing corresponding param object - * - * @function setNotProvidedParams - * @private - * @param {Array} variables array of all identified URL variables in a channel name - * @param {Object} val the channel object for which to identify the missing parameters - * @param {String} key the channel name. - * @param {Array} notProvidedChannelParams concatinated list of missing parameters for all channels - * @param {Map} notProvidedParams result map of all missing parameters extended by this function - */utils.setNotProvidedParams=(variables,val,key,notProvidedChannelParams,notProvidedParams)=>{const missingChannelParams=utils.getMissingProps(variables,val.parameters);if(missingChannelParams.length){notProvidedParams.set(utils.tilde(key),notProvidedChannelParams?notProvidedChannelParams.concat(missingChannelParams):missingChannelParams);}};});const{parseUrlVariables,getMissingProps,groupValidationErrors,tilde,parseUrlQueryParameters,setNotProvidedParams}=utils_1;const validationError='validation-errors';/** - * Validates if variables provided in the url have corresponding variable object defined and if example is correct - * @private - * @param {Object} parsedJSON parsed AsyncAPI document - * @param {String} asyncapiYAMLorJSON AsyncAPI document in string - * @param {String} initialFormat information of the document was oryginally JSON or YAML - * @returns {Boolean} true in case the document is valid, otherwise throws ParserError - */function validateServerVariables$1(parsedJSON,asyncapiYAMLorJSON,initialFormat){const srvs=parsedJSON.servers;if(!srvs)return true;const srvsMap=new Map(Object.entries(srvs));const notProvidedVariables=new Map();const notProvidedExamplesInEnum=new Map();srvsMap.forEach((srvr,srvrName)=>{const variables=parseUrlVariables(srvr.url);const variablesObj=srvr.variables;const notProvidedServerVars=notProvidedVariables.get(tilde(srvrName));if(!variables)return;const missingServerVariables=getMissingProps(variables,variablesObj);if(missingServerVariables.length){notProvidedVariables.set(tilde(srvrName),notProvidedServerVars?notProvidedServerVars.concat(missingServerVariables):missingServerVariables);}if(variablesObj){setNotValidExamples(variablesObj,srvrName,notProvidedExamplesInEnum);}});if(notProvidedVariables.size){throw new parserError({type:validationError,title:'Not all server variables are described with variable object',parsedJSON,validationErrors:groupValidationErrors('servers','server does not have a corresponding variable object for',notProvidedVariables,asyncapiYAMLorJSON,initialFormat)});}if(notProvidedExamplesInEnum.size){throw new parserError({type:validationError,title:'Check your server variables. The example does not match the enum list',parsedJSON,validationErrors:groupValidationErrors('servers','server variable provides an example that does not match the enum list',notProvidedExamplesInEnum,asyncapiYAMLorJSON,initialFormat)});}return true;}/** - * extend map with info about examples that are not part of the enum - * - * @function setNotValidExamples - * @private - * @param {Array} variables server variables object - * @param {String} srvrName name of the server where variables object is located - * @param {Map} notProvidedExamplesInEnum result map of all wrong examples and what variable they belong to - */function setNotValidExamples(variables,srvrName,notProvidedExamplesInEnum){const variablesMap=new Map(Object.entries(variables));variablesMap.forEach((variable,variableName)=>{if(variable.enum&&variable.examples){const wrongExamples=variable.examples.filter(r=>!variable.enum.includes(r));if(wrongExamples.length){notProvidedExamplesInEnum.set(`${tilde(srvrName)}/variables/${tilde(variableName)}`,wrongExamples);}}});}/** - * Validates if operationIds are duplicated in the document - * - * @private - * @param {Object} parsedJSON parsed AsyncAPI document - * @param {String} asyncapiYAMLorJSON AsyncAPI document in string - * @param {String} initialFormat information of the document was oryginally JSON or YAML - * @returns {Boolean} true in case the document is valid, otherwise throws ParserError - */function validateOperationId$1(parsedJSON,asyncapiYAMLorJSON,initialFormat,operations){const chnls=parsedJSON.channels;if(!chnls)return true;const chnlsMap=new Map(Object.entries(chnls));//it is a map of paths, the one that is a duplicate and the one that is duplicated -const duplicatedOperations=new Map();//is is a 2-dimentional array that holds information with operationId value and its path -const allOperations=[];const addDuplicateToMap=(op,channelName,opName)=>{const operationId=op.operationId;if(!operationId)return;const operationPath=`${tilde(channelName)}/${opName}/operationId`;const isOperationIdDuplicated=allOperations.filter(v=>v[0]===operationId);if(!isOperationIdDuplicated.length)return allOperations.push([operationId,operationPath]);//isOperationIdDuplicated always holds one record and it is an array of paths, the one that is a duplicate and the one that is duplicated -duplicatedOperations.set(operationPath,isOperationIdDuplicated[0][1]);};chnlsMap.forEach((chnlObj,chnlName)=>{operations.forEach(opName=>{const op=chnlObj[String(opName)];if(op)addDuplicateToMap(op,chnlName,opName);});});if(duplicatedOperations.size){throw new parserError({type:validationError,title:'operationId must be unique across all the operations.',parsedJSON,validationErrors:groupValidationErrors('channels','is a duplicate of',duplicatedOperations,asyncapiYAMLorJSON,initialFormat)});}return true;}/** - * Validates if server security is declared properly and the name has a corresponding security schema definition in components with the same name - * - * @private - * @param {Object} parsedJSON parsed AsyncAPI document - * @param {String} asyncapiYAMLorJSON AsyncAPI document in string - * @param {String} initialFormat information of the document was oryginally JSON or YAML - * @param {String[]} specialSecTypes list of security types that can have data in array - * @returns {Boolean} true in case the document is valid, otherwise throws ParserError - */function validateServerSecurity$1(parsedJSON,asyncapiYAMLorJSON,initialFormat,specialSecTypes){const srvs=parsedJSON.servers;if(!srvs)return true;const root='servers';const srvsMap=new Map(Object.entries(srvs));const missingSecSchema=new Map(),invalidSecurityValues=new Map();//we need to validate every server specified in the document -srvsMap.forEach((server,serverName)=>{const serverSecInfo=server.security;if(!serverSecInfo)return true;//server security info is an array of many possible values -serverSecInfo.forEach(secObj=>{Object.keys(secObj).forEach(secName=>{//security schema is located in components object, we need to find if there is security schema with the same name as the server security info object -const schema=findSecuritySchema(secName,parsedJSON.components);const srvrSecurityPath=`${serverName}/security/${secName}`;if(!schema.length)return missingSecSchema.set(srvrSecurityPath);//findSecuritySchema returns type always on index 1. Type is needed further to validate if server security info can be or not an empty array -const schemaType=schema[1];if(!isSrvrSecProperArray(schemaType,specialSecTypes,secObj,secName))invalidSecurityValues.set(srvrSecurityPath,schemaType);});});});if(missingSecSchema.size){throw new parserError({type:validationError,title:'Server security name must correspond to a security scheme which is declared in the security schemes under the components object.',parsedJSON,validationErrors:groupValidationErrors(root,'doesn\'t have a corresponding security schema under the components object',missingSecSchema,asyncapiYAMLorJSON,initialFormat)});}if(invalidSecurityValues.size){throw new parserError({type:validationError,title:'Server security value must be an empty array if corresponding security schema type is not oauth2 or openIdConnect.',parsedJSON,validationErrors:groupValidationErrors(root,'security info must have an empty array because its corresponding security schema type is',invalidSecurityValues,asyncapiYAMLorJSON,initialFormat)});}return true;}/** - * Searches for server security corresponding object in security schema object - * @private - * @param {String} securityName name of the server security element that you want to localize in the security schema object - * @param {Object} components components object from the AsyncAPI document - * @returns {String[]} there are 2 elements in array, index 0 is the name of the security schema object and index 1 is it's type - */function findSecuritySchema(securityName,components){const secSchemes=components&&components.securitySchemes;const secSchemesMap=secSchemes?new Map(Object.entries(secSchemes)):new Map();const schemaInfo=[];//using for loop here as there is no point to iterate over all entries as it is enough to find first matching element -for(const[schemaName,schema]of secSchemesMap.entries()){if(schemaName===securityName){schemaInfo.push(schemaName,schema.type);return schemaInfo;}}return schemaInfo;}/** - * Validates if given server security is a proper empty array when security type requires it - * @private - * @param {String} schemaType security type, like httpApiKey or userPassword - * @param {String[]} specialSecTypes list of special types that do not have to be an empty array - * @param {Object} secObj server security object - * @param {String} secName name os server security object - * @returns {String[]} there are 2 elements in array, index 0 is the name of the security schema object and index 1 is it's type - */function isSrvrSecProperArray(schemaType,specialSecTypes,secObj,secName){if(!specialSecTypes.includes(schemaType)){const securityObjValue=secObj[String(secName)];return !securityObjValue.length;}return true;}/** - * Validates if parameters specified in the channel have corresponding parameters object defined and if name does not contain url parameters - * - * @private - * @param {Object} parsedJSON parsed AsyncAPI document - * @param {String} asyncapiYAMLorJSON AsyncAPI document in string - * @param {String} initialFormat information of the document was oryginally JSON or YAML - * @returns {Boolean} true in case the document is valid, otherwise throws ParserError - */function validateChannels$1(parsedJSON,asyncapiYAMLorJSON,initialFormat){const chnls=parsedJSON.channels;if(!chnls)return true;const chnlsMap=new Map(Object.entries(chnls));const notProvidedParams=new Map();//return object for missing parameters -const invalidChannelName=new Map();//return object for invalid channel names with query parameters -chnlsMap.forEach((val,key)=>{const variables=parseUrlVariables(key);const notProvidedChannelParams=notProvidedParams.get(tilde(key));const queryParameters=parseUrlQueryParameters(key);//channel variable validation: fill return obeject with missing parameters -if(variables){setNotProvidedParams(variables,val,key,notProvidedChannelParams,notProvidedParams);}//channel name validation: fill return object with channels containing query parameters -if(queryParameters){invalidChannelName.set(tilde(key),queryParameters);}});//combine validation errors of both checks and output them as one array -const parameterValidationErrors=groupValidationErrors('channels','channel does not have a corresponding parameter object for',notProvidedParams,asyncapiYAMLorJSON,initialFormat);const nameValidationErrors=groupValidationErrors('channels','channel contains invalid name with url query parameters',invalidChannelName,asyncapiYAMLorJSON,initialFormat);const allValidationErrors=parameterValidationErrors.concat(nameValidationErrors);//channel variable validation: throw exception if channel validation failes -if(notProvidedParams.size||invalidChannelName.size){throw new parserError({type:validationError,title:'Channel validation failed',parsedJSON,validationErrors:allValidationErrors});}return true;}var customValidators={validateServerVariables:validateServerVariables$1,validateOperationId:validateOperationId$1,validateServerSecurity:validateServerSecurity$1,validateChannels:validateChannels$1};/** - * Implements common functionality for all the models. - * @class - * @alias module:@asyncapi/parser#Base - * @returns {Base} - */class Base{constructor(json){if(!json)throw new parserError(`Invalid JSON to instantiate the ${this.constructor.name} object.`);this._json=json;}/** - * @returns {any} - */json(key){if(key===undefined)return this._json;if(!this._json)return;return this._json[String(key)];}}var base=Base;/** - * Implements functions to deal with the SpecificationExtensions object. - * @mixin - */const MixinSpecificationExtensions={/** - * @returns {boolean} - */hasExtensions(){return !!this.extensionKeys().length;},/** - * @returns {Object} - */extensions(){const result={};Object.entries(this._json).forEach(([key,value])=>{if(/^x-[\w\d\.\-\_]+$/.test(key)){result[String(key)]=value;}});return result;},/** - * @returns {string[]} - */extensionKeys(){return Object.keys(this.extensions());},/** - * @returns {string[]} - */extKeys(){return this.extensionKeys();},/** - * @param {string} key - Extension key. - * @returns {boolean} - */hasExtension(key){if(!key.startsWith('x-')){return false;}return !!this._json[String(key)];},/** - * @param {string} key - Extension key. - * @returns {any} - */extension(key){if(!key.startsWith('x-')){return null;}return this._json[String(key)];},/** - * @param {string} key - Extension key. - * @returns {boolean} - */hasExt(key){return this.hasExtension(key);},/** - * @param {string} key - Extension key. - * @returns {any} - */ext(key){return this.extension(key);}};var specificationExtensions=MixinSpecificationExtensions;const{mix:mix$g}=utils_1;/** - * Implements functions to deal with the License object. - * @class - * @alias module:@asyncapi/parser#License - * @extends Base - * @mixes MixinSpecificationExtensions - * @returns {License} - */class License extends base{/** - * @returns {string} - */name(){return this._json.name;}/** - * @returns {string} - */url(){return this._json.url;}}var license=mix$g(License,specificationExtensions);const{mix:mix$f}=utils_1;/** - * Implements functions to deal with the Contact object. - * @class - * @alias module:@asyncapi/parser#Contact - * @extends Base - * @mixes MixinSpecificationExtensions - * @returns {Contact} - */class Contact extends base{/** - * @returns {string} - */name(){return this._json.name;}/** - * @returns {string} - */url(){return this._json.url;}/** - * @returns {string} - */email(){return this._json.email;}}var contact=mix$f(Contact,specificationExtensions);const{getMapValueByKey:getMapValueByKey$1}=utils_1;/** - * Implements functions to deal with the description field. - * @mixin - */const MixinDescription={/** - * @returns {boolean} - */hasDescription(){return !!this._json.description;},/** - * @returns {(string | null)} - */description(){return getMapValueByKey$1(this._json,'description');}};var description$1=MixinDescription;const{mix:mix$e}=utils_1;/** - * Implements functions to deal with the Info object. - * @class - * @alias module:@asyncapi/parser#Info - * @extends Base - * @mixes MixinDescription - * @mixes MixinSpecificationExtensions - * @returns {Info} - */class Info extends base{/** - * @returns {string} - */title(){return this._json.title;}/** - * @returns {string} - */version(){return this._json.version;}/** - * @returns {(string | undefined)} - */termsOfService(){return this._json.termsOfService;}/** - * @returns {License} - */license(){if(!this._json.license)return null;return new license(this._json.license);}/** - * @returns {Contact} - */contact(){if(!this._json.contact)return null;return new contact(this._json.contact);}}var info=mix$e(Info,description$1,specificationExtensions);const{mix:mix$d}=utils_1;/** - * Implements functions to deal with a ServerVariable object. - * @class - * @alias module:@asyncapi/parser#ServerVariable - * @extends Base - * @mixes MixinDescription - * @mixes MixinSpecificationExtensions - * @returns {ServerVariable} - */class ServerVariable extends base{/** - * @returns {any[]} - */allowedValues(){return this._json.enum;}/** - * @param {string} name - Name of the variable. - * @returns {boolean} - */allows(name){if(this._json.enum===undefined)return true;return this._json.enum.includes(name);}/** - * @returns {boolean} - */hasAllowedValues(){return this._json.enum!==undefined;}/** - * @returns {string} - */defaultValue(){return this._json.default;}/** - * @returns {boolean} - */hasDefaultValue(){return this._json.default!==undefined;}/** - * @returns {string[]} - */examples(){return this._json.examples;}}var serverVariable=mix$d(ServerVariable,description$1,specificationExtensions);/** - * Implements functions to deal with a ServerSecurityRequirement object. - * @class - * @alias module:@asyncapi/parser#ServerSecurityRequirement - * @extends Base - * @returns {ServerSecurityRequirement} - */class ServerSecurityRequirement extends base{}var serverSecurityRequirement=ServerSecurityRequirement;const{getMapValueByKey}=utils_1;/** - * Implements functions to deal with the common Bindings object. - * @mixin - */const MixinBindings={/** - * @returns {boolean} - */hasBindings(){return !!(this._json.bindings&&Object.keys(this._json.bindings).length);},/** - * @returns {Object} - */bindings(){return this.hasBindings()?this._json.bindings:{};},/** - * @returns {string[]} - */bindingProtocols(){return Object.keys(this.bindings());},/** - * @param {string} name - Name of the binding. - * @returns {boolean} - */hasBinding(name){return this.hasBindings()&&!!this._json.bindings[String(name)];},/** - * @param {string} name - Name of the binding. - * @returns {(Object | null)} - */binding(name){return getMapValueByKey(this._json.bindings,name);}};var bindings=MixinBindings;const{createMapOfType:createMapOfType$5,getMapValueOfType:getMapValueOfType$6,mix:mix$c}=utils_1;/** - * Implements functions to deal with a Server object. - * @class - * @alias module:@asyncapi/parser#Server - * @extends Base - * @mixes MixinDescription - * @mixes MixinBindings - * @mixes MixinSpecificationExtensions - * @returns {Server} - */class Server extends base{/** - * @returns {string} - */url(){return this._json.url;}/** - * @returns {string} - */protocol(){return this._json.protocol;}/** - * @returns {string} - */protocolVersion(){return this._json.protocolVersion;}/** - * @returns {Object} - */variables(){return createMapOfType$5(this._json.variables,serverVariable);}/** - * @param {string} name - Name of the server variable. - * @returns {ServerVariable} - */variable(name){return getMapValueOfType$6(this._json.variables,name,serverVariable);}/** - * @returns {boolean} - */hasVariables(){return !!this._json.variables;}/** - * @returns {ServerSecurityRequirement[]} - */security(){if(!this._json.security)return null;return this._json.security.map(sec=>new serverSecurityRequirement(sec));}}var server=mix$c(Server,description$1,bindings,specificationExtensions);const{mix:mix$b}=utils_1;/** - * Implements functions to deal with an ExternalDocs object. - * @class - * @alias module:@asyncapi/parser#ExternalDocs - * @extends Base - * @mixes MixinDescription - * @mixes MixinSpecificationExtensions - * @returns {ExternalDocs} - */class ExternalDocs extends base{/** - * @returns {string} - */url(){return this._json.url;}}var externalDocs$1=mix$b(ExternalDocs,description$1,specificationExtensions);const{getMapValueOfType:getMapValueOfType$5}=utils_1;/** - * Implements functions to deal with the ExternalDocs object. - * @mixin - */const MixinExternalDocs={/** - * @returns {boolean} - */hasExternalDocs(){return !!(this._json.externalDocs&&Object.keys(this._json.externalDocs).length);},/** - * @returns {(ExternalDocs | null)} - */externalDocs(){return getMapValueOfType$5(this._json,'externalDocs',externalDocs$1);}};var externalDocs=MixinExternalDocs;const{createMapOfType:createMapOfType$4,getMapValueOfType:getMapValueOfType$4,mix:mix$a}=utils_1;/** - * Implements functions to deal with a Schema object. - * @class - * @alias module:@asyncapi/parser#Schema - * @extends Base - * @mixes MixinDescription - * @mixes MixinExternalDocs - * @mixes MixinSpecificationExtensions - * @returns {Schema} - */class Schema extends base{/** - * @returns {string} - */uid(){return this.$id()||this.ext('x-parser-schema-id');}/** - * @returns {string} - */$id(){return this._json.$id;}/** - * @returns {number} - */multipleOf(){return this._json.multipleOf;}/** - * @returns {number} - */maximum(){return this._json.maximum;}/** - * @returns {number} - */exclusiveMaximum(){return this._json.exclusiveMaximum;}/** - * @returns {number} - */minimum(){return this._json.minimum;}/** - * @returns {number} - */exclusiveMinimum(){return this._json.exclusiveMinimum;}/** - * @returns {number} - */maxLength(){return this._json.maxLength;}/** - * @returns {number} - */minLength(){return this._json.minLength;}/** - * @returns {string} - */pattern(){return this._json.pattern;}/** - * @returns {number} - */maxItems(){return this._json.maxItems;}/** - * @returns {number} - */minItems(){return this._json.minItems;}/** - * @returns {boolean} - */uniqueItems(){return !!this._json.uniqueItems;}/** - * @returns {number} - */maxProperties(){return this._json.maxProperties;}/** - * @returns {number} - */minProperties(){return this._json.minProperties;}/** - * @returns {string[]} - */required(){return this._json.required;}/** - * @returns {any[]} - */enum(){return this._json.enum;}/** - * @returns {string|string[]} - */type(){return this._json.type;}/** - * @returns {Schema[]} - */allOf(){if(!this._json.allOf)return null;return this._json.allOf.map(s=>new Schema(s));}/** - * @returns {Schema[]} - */oneOf(){if(!this._json.oneOf)return null;return this._json.oneOf.map(s=>new Schema(s));}/** - * @returns {Schema[]} - */anyOf(){if(!this._json.anyOf)return null;return this._json.anyOf.map(s=>new Schema(s));}/** - * @returns {Schema} - */not(){if(!this._json.not)return null;return new Schema(this._json.not);}/** - * @returns {Schema|Schema[]} - */items(){if(!this._json.items)return null;if(Array.isArray(this._json.items)){return this._json.items.map(s=>new Schema(s));}return new Schema(this._json.items);}/** - * @returns {Object} - */properties(){return createMapOfType$4(this._json.properties,Schema);}/** - * @param {string} name - Name of the property. - * @returns {Schema} - */property(name){return getMapValueOfType$4(this._json.properties,name,Schema);}/** - * @returns {boolean|Schema} - */additionalProperties(){const ap=this._json.additionalProperties;if(ap===undefined||ap===null)return;if(typeof ap==='boolean')return ap;return new Schema(ap);}/** - * @returns {Schema} - */additionalItems(){const ai=this._json.additionalItems;if(ai===undefined||ai===null)return;return new Schema(ai);}/** - * @returns {Object} - */patternProperties(){return createMapOfType$4(this._json.patternProperties,Schema);}/** - * @returns {any} - */const(){return this._json.const;}/** - * @returns {Schema} - */contains(){if(!this._json.contains)return null;return new Schema(this._json.contains);}/** - * @returns {Object} - */dependencies(){if(!this._json.dependencies)return null;const result={};Object.entries(this._json.dependencies).forEach(([key,value])=>{result[String(key)]=!Array.isArray(value)?new Schema(value):value;});return result;}/** - * @returns {Schema} - */propertyNames(){if(!this._json.propertyNames)return null;return new Schema(this._json.propertyNames);}/** - * @returns {Schema} - */if(){if(!this._json.if)return null;return new Schema(this._json.if);}/** - * @returns {Schema} - */then(){if(!this._json.then)return null;return new Schema(this._json.then);}/** - * @returns {Schema} - */else(){if(!this._json.else)return null;return new Schema(this._json.else);}/** - * @returns {string} - */format(){return this._json.format;}/** - * @returns {string} - */contentEncoding(){return this._json.contentEncoding;}/** - * @returns {string} - */contentMediaType(){return this._json.contentMediaType;}/** - * @returns {Object} - */definitions(){return createMapOfType$4(this._json.definitions,Schema);}/** - * @returns {string} - */title(){return this._json.title;}/** - * @returns {any} - */default(){return this._json.default;}/** - * @returns {boolean} - */deprecated(){return this._json.deprecated;}/** - * @returns {string} - */discriminator(){return this._json.discriminator;}/** - * @returns {boolean} - */readOnly(){return !!this._json.readOnly;}/** - * @returns {boolean} - */writeOnly(){return !!this._json.writeOnly;}/** - * @returns {any[]} - */examples(){return this._json.examples;}/** - * @returns {boolean} - */isCircular(){return !!this.ext('x-parser-circular');}/** - * @returns {boolean} - */hasCircularProps(){return !!this.ext('x-parser-circular-props');}/** - * @returns {string[]} - */circularProps(){return this.ext('x-parser-circular-props');}}var schema$1=mix$a(Schema,description$1,externalDocs,specificationExtensions);const{mix:mix$9}=utils_1;/** - * Implements functions to deal with a ChannelParameter object. - * @class - * @alias module:@asyncapi/parser#ChannelParameter - * @extends Base - * @mixes MixinDescription - * @mixes MixinSpecificationExtensions - * @returns {ChannelParameter} - */class ChannelParameter extends base{/** - * @returns {string} - */location(){return this._json.location;}/** - * @returns {Schema} - */schema(){if(!this._json.schema)return null;return new schema$1(this._json.schema);}}var channelParameter=mix$9(ChannelParameter,description$1,specificationExtensions);const{mix:mix$8}=utils_1;/** - * Implements functions to deal with a Tag object. - * @class - * @alias module:@asyncapi/parser#Tag - * @extends Base - * @mixes MixinDescription - * @mixes MixinExternalDocs - * @mixes MixinSpecificationExtensions - * @returns {Tag} - */class Tag extends base{/** - * @returns {string} - */name(){return this._json.name;}}var tag=mix$8(Tag,description$1,externalDocs,specificationExtensions);/** - * Implements functions to deal with the Tags object. - * @mixin - */const MixinTags={/** - * @returns {boolean} - */hasTags(){return !!(Array.isArray(this._json.tags)&&this._json.tags.length);},/** - * @returns {Tag[]} - */tags(){return this.hasTags()?this._json.tags.map(t=>new tag(t)):[];},/** - * @returns {string[]} - */tagNames(){return this.hasTags()?this._json.tags.map(t=>t.name):[];},/** - * @param {string} name - Name of the tag. - * @returns {boolean} - */hasTag(name){return this.hasTags()&&this._json.tags.some(t=>t.name===name);},/** - * @param {string} name - Name of the tag. - * @returns {(Tag | null)} - */tag(name){const tg=this.hasTags()&&this._json.tags.find(t=>t.name===name);return tg?new tag(tg):null;}};var tags=MixinTags;const{mix:mix$7}=utils_1;/** - * Implements functions to deal with the common properties Operation and OperationTrait object have. - * @class - * @alias module:@asyncapi/parser#OperationTraitable - * @extends Base - * @mixes MixinDescription - * @mixes MixinTags - * @mixes MixinExternalDocs - * @mixes MixinBindings - * @mixes MixinSpecificationExtensions - * @returns {OperationTraitable} - */class OperationTraitable extends base{/** - * @returns {string} - */id(){return this._json.operationId;}/** - * @returns {string} - */summary(){return this._json.summary;}}var operationTraitable=mix$7(OperationTraitable,description$1,tags,externalDocs,bindings,specificationExtensions);const{mix:mix$6}=utils_1;/** - * Implements functions to deal with a CorrelationId object. - * @class - * @alias module:@asyncapi/parser#CorrelationId - * @extends Base - * @mixes MixinDescription - * @mixes MixinSpecificationExtensions - * @returns {CorrelationId} - */class CorrelationId extends base{/** - * @returns {string} - */location(){return this._json.location;}}var correlationId=mix$6(CorrelationId,specificationExtensions,description$1);const{getMapValueOfType:getMapValueOfType$3,mix:mix$5}=utils_1;/** - * Implements functions to deal with a the common properties that Message and MessageTrait objects have. - * @class - * @alias module:@asyncapi/parser#MessageTraitable - * @extends Base - * @mixes MixinDescription - * @mixes MixinTags - * @mixes MixinExternalDocs - * @mixes MixinBindings - * @mixes MixinSpecificationExtensions - * @returns {MessageTraitable} - */class MessageTraitable extends base{/** - * @returns {Schema} - */headers(){if(!this._json.headers)return null;return new schema$1(this._json.headers);}/** - * @param {string} name - Name of the header. - * @returns {Schema} - */header(name){if(!this._json.headers)return null;return getMapValueOfType$3(this._json.headers.properties,name,schema$1);}/** - * @returns {CorrelationId} - */correlationId(){if(!this._json.correlationId)return null;return new correlationId(this._json.correlationId);}/** - * @returns {string} - */schemaFormat(){return 'application/schema+json;version=draft-07';}/** - * @returns {string} - */contentType(){return this._json.contentType;}/** - * @returns {string} - */name(){return this._json.name;}/** - * @returns {string} - */title(){return this._json.title;}/** - * @returns {string} - */summary(){return this._json.summary;}/** - * @returns {any[]} - */examples(){return this._json.examples;}}var messageTraitable=mix$5(MessageTraitable,description$1,tags,externalDocs,bindings,specificationExtensions);/** - * Implements functions to deal with a Message object. - * @class - * @alias module:@asyncapi/parser#Message - * @extends MessageTraitable - * @returns {Message} - */class Message extends messageTraitable{/** - * @returns {string} - */uid(){return this.name()||this.ext('x-parser-message-name')||Buffer$1.from(JSON.stringify(this._json)).toString('base64');}/** - * @returns {Schema} - */payload(){if(!this._json.payload)return null;return new schema$1(this._json.payload);}/** - * @returns {any} - */originalPayload(){return this._json['x-parser-original-payload']||this.payload();}/** - * @returns {string} - */originalSchemaFormat(){return this._json['x-parser-original-schema-format']||this.schemaFormat();}}var message=Message;/** - * Implements functions to deal with an Operation object. - * @class - * @alias module:@asyncapi/parser#Operation - * @extends OperationTraitable - * @returns {Operation} - */class Operation extends operationTraitable{/** - * @returns {boolean} - */hasMultipleMessages(){if(this._json.message&&this._json.message.oneOf&&this._json.message.oneOf.length>1)return true;if(!this._json.message)return false;return false;}/** - * @returns {Message[]} - */messages(){if(!this._json.message)return [];if(this._json.message.oneOf)return this._json.message.oneOf.map(m=>new message(m));return [new message(this._json.message)];}/** - * @returns {Message} - */message(index){if(!this._json.message)return null;if(!this._json.message.oneOf)return new message(this._json.message);if(typeof index!=='number')return null;if(index>this._json.message.oneOf.length-1)return null;return new message(this._json.message.oneOf[+index]);}}var operation=Operation;/** - * Implements functions to deal with a PublishOperation object. - * @class - * @alias module:@asyncapi/parser#PublishOperation - * @extends Operation - * @returns {PublishOperation} - */class PublishOperation extends operation{/** - * @returns {boolean} - */isPublish(){return true;}/** - * @returns {boolean} - */isSubscribe(){return false;}/** - * @returns {string} - */kind(){return 'publish';}}var publishOperation=PublishOperation;/** - * Implements functions to deal with a SubscribeOperation object. - * @class - * @alias module:@asyncapi/parser#SubscribeOperation - * @extends Operation - * @returns {SubscribeOperation} - */class SubscribeOperation extends operation{/** - * @returns {boolean} - */isPublish(){return false;}/** - * @returns {boolean} - */isSubscribe(){return true;}/** - * @returns {string} - */kind(){return 'subscribe';}}var subscribeOperation=SubscribeOperation;const{createMapOfType:createMapOfType$3,getMapValueOfType:getMapValueOfType$2,mix:mix$4}=utils_1;/** - * Implements functions to deal with a Channel object. - * @class - * @alias module:@asyncapi/parser#Channel - * @extends Base - * @mixes MixinDescription - * @mixes MixinBindings - * @mixes MixinSpecificationExtensions - * @returns {Channel} - */class Channel extends base{/** - * @returns {Object} - */parameters(){return createMapOfType$3(this._json.parameters,channelParameter);}/** - * @param {string} name - Name of the parameter. - * @returns {ChannelParameter} - */parameter(name){return getMapValueOfType$2(this._json.parameters,name,channelParameter);}/** - * @returns {boolean} - */hasParameters(){return !!this._json.parameters;}/** - * @returns {PublishOperation} - */publish(){if(!this._json.publish)return null;return new publishOperation(this._json.publish);}/** - * @returns {SubscribeOperation} - */subscribe(){if(!this._json.subscribe)return null;return new subscribeOperation(this._json.subscribe);}/** - * @returns {boolean} - */hasPublish(){return !!this._json.publish;}/** - * @returns {boolean} - */hasSubscribe(){return !!this._json.subscribe;}}var channel=mix$4(Channel,description$1,bindings,specificationExtensions);const{mix:mix$3}=utils_1;/** - * Implements functions to deal with a OAuthFlow object. - * @class - * @alias module:@asyncapi/parser#OAuthFlow - * @extends Base - * @mixes MixinSpecificationExtensions - * @returns {OAuthFlow} - */class OAuthFlow extends base{/** - * @returns {string} - */authorizationUrl(){return this._json.authorizationUrl;}/** - * @returns {string} - */tokenUrl(){return this._json.tokenUrl;}/** - * @returns {string} - */refreshUrl(){return this._json.refreshUrl;}/** - * @returns {Object} - */scopes(){return this._json.scopes;}}var oauthFlow=mix$3(OAuthFlow,specificationExtensions);const{createMapOfType:createMapOfType$2,mix:mix$2}=utils_1;/** - * Implements functions to deal with a SecurityScheme object. - * @class - * @alias module:@asyncapi/parser#SecurityScheme - * @extends Base - * @mixes MixinDescription - * @mixes MixinSpecificationExtensions - * @returns {SecurityScheme} - */class SecurityScheme extends base{/** - * @returns {string} - */type(){return this._json.type;}/** - * @returns {string} - */name(){return this._json.name;}/** - * @returns {string} - */in(){return this._json.in;}/** - * @returns {string} - */scheme(){return this._json.scheme;}/** - * @returns {string} - */bearerFormat(){return this._json.bearerFormat;}/** - * @returns {string} - */openIdConnectUrl(){return this._json.openIdConnectUrl;}/** - * @returns {Object} - */flows(){return createMapOfType$2(this._json.flows,oauthFlow);}}var securityScheme=mix$2(SecurityScheme,description$1,specificationExtensions);/** - * Implements functions to deal with a OperationTrait object. - * @class - * @alias module:@asyncapi/parser#OperationTrait - * @extends OperationTraitable - * @returns {OperationTrait} - */class OperationTrait extends operationTraitable{}var operationTrait=OperationTrait;/** - * Implements functions to deal with a MessageTrait object. - * @class - * @alias module:@asyncapi/parser#MessageTrait - * @extends MessageTraitable - * @returns {MessageTrait} - */class MessageTrait extends messageTraitable{}var messageTrait=MessageTrait;const{createMapOfType:createMapOfType$1,getMapValueOfType:getMapValueOfType$1,mix:mix$1}=utils_1;/** - * Implements functions to deal with a Components object. - * @class - * @alias module:@asyncapi/parser#Components - * @extends Base - * @mixes MixinSpecificationExtensions - * @returns {Components} - */class Components extends base{/** - * @returns {Object} - */messages(){return createMapOfType$1(this._json.messages,message);}/** - * @returns {boolean} - */hasMessages(){return !!this._json.messages;}/** - * @param {string} name - Name of the message. - * @returns {Message} - */message(name){return getMapValueOfType$1(this._json.messages,name,message);}/** - * @returns {Object} - */schemas(){return createMapOfType$1(this._json.schemas,schema$1);}/** - * @returns {boolean} - */hasSchemas(){return !!this._json.schemas;}/** - * @param {string} name - Name of the schema. - * @returns {Schema} - */schema(name){return getMapValueOfType$1(this._json.schemas,name,schema$1);}/** - * @returns {Object} - */securitySchemes(){return createMapOfType$1(this._json.securitySchemes,securityScheme);}/** - * @returns {boolean} - */hasSecuritySchemes(){return !!this._json.securitySchemes;}/** - * @param {string} name - Name of the security schema. - * @returns {SecurityScheme} - */securityScheme(name){return getMapValueOfType$1(this._json.securitySchemes,name,securityScheme);}/** - * @returns {Object} - */parameters(){return createMapOfType$1(this._json.parameters,channelParameter);}/** - * @returns {boolean} - */hasParameters(){return !!this._json.parameters;}/** - * @param {string} name - Name of the channel parameter. - * @returns {ChannelParameter} - */parameter(name){return getMapValueOfType$1(this._json.parameters,name,channelParameter);}/** - * @returns {Object} - */correlationIds(){return createMapOfType$1(this._json.correlationIds,correlationId);}/** - * @returns {boolean} - */hasCorrelationIds(){return !!this._json.correlationIds;}/** - * @param {string} name - Name of the correlationId. - * @returns {CorrelationId} - */correlationId(name){return getMapValueOfType$1(this._json.correlationIds,name,correlationId);}/** - * @returns {Object} - */operationTraits(){return createMapOfType$1(this._json.operationTraits,operationTrait);}/** - * @returns {boolean} - */hasOperationTraits(){return !!this._json.operationTraits;}/** - * @param {string} name - Name of the operation trait. - * @returns {OperationTrait} - */operationTrait(name){return getMapValueOfType$1(this._json.operationTraits,name,operationTrait);}/** - * @returns {Object} - */messageTraits(){return createMapOfType$1(this._json.messageTraits,messageTrait);}/** - * @returns {boolean} - */hasMessageTraits(){return !!this._json.messageTraits;}/** - * @param {string} name - Name of the message trait. - * @returns {MessageTrait} - */messageTrait(name){return getMapValueOfType$1(this._json.messageTraits,name,messageTrait);}}var components=mix$1(Components,specificationExtensions);const xParserMessageName$1='x-parser-message-name';const xParserSchemaId$1='x-parser-schema-id';const xParserCircle$2='x-parser-circular';const xParserCircleProps$1='x-parser-circular-props';var constants={xParserMessageName:xParserMessageName$1,xParserSchemaId:xParserSchemaId$1,xParserCircle:xParserCircle$2,xParserCircleProps:xParserCircleProps$1};/** - * The different kind of stages when crawling a schema. - * - * @typedef SchemaIteratorCallbackType - * @property {string} NEW_SCHEMA The crawler just started crawling a schema. - * @property {string} END_SCHEMA The crawler just finished crawling a schema. - */ /** - * @readonly - * @enum {SchemaIteratorCallbackType} - */const SchemaIteratorCallbackType$1=Object.freeze({NEW_SCHEMA:'NEW_SCHEMA',END_SCHEMA:'END_SCHEMA'});/** - * The different types of schemas you can iterate - * - * @typedef SchemaTypesToIterate - * @property {string} parameters Crawl all schemas in parameters - * @property {string} payloads Crawl all schemas in payloads - * @property {string} headers Crawl all schemas in headers - * @property {string} components Crawl all schemas in components - * @property {string} objects Crawl all schemas of type object - * @property {string} arrays Crawl all schemas of type array - * @property {string} oneOfs Crawl all schemas in oneOf's - * @property {string} allOfs Crawl all schemas in allOf's - * @property {string} anyOfs Crawl all schemas in anyOf's - */ /** - * - * @readonly - * @enum {SchemaTypesToIterate} - */const SchemaTypesToIterate=Object.freeze({parameters:'parameters',payloads:'payloads',headers:'headers',components:'components',objects:'objects',arrays:'arrays',oneOfs:'oneOfs',allOfs:'allOfs',anyOfs:'anyOfs'});/** - * Traverse current schema and all nested schemas. - * - * @private - * @param {Schema} schemaContent schema. - * @param {TraverseSchemas} callback - * @param {SchemaTypesToIterate[]} schemaTypesToIterate - */function traverseSchema(schema,callback,prop,schemaTypesToIterate){if(schema===null)return;if(!schemaTypesToIterate.includes(SchemaTypesToIterate.arrays)&&schema.type()==='array')return;if(!schemaTypesToIterate.includes(SchemaTypesToIterate.objects)&&schema.type()==='object')return;if(schema.isCircular())return;if(callback(schema,prop,SchemaIteratorCallbackType$1.NEW_SCHEMA)===false)return;if(schema.type()!==undefined){switch(schema.type()){case'object':recursiveSchemaObject(schema,callback,schemaTypesToIterate);break;case'array':recursiveSchemaArray(schema,callback,schemaTypesToIterate);break;}}else {traverseCombinedSchemas(schema,callback,schemaTypesToIterate);}callback(schema,prop,SchemaIteratorCallbackType$1.END_SCHEMA);}/** - * Traverse combined notions - * - * @private - * @param {Schema} schemaContent schema. - * @param {TraverseSchemas} callback - * @param {SchemaTypesToIterate[]} schemaTypesToIterate - */function traverseCombinedSchemas(schema,callback,schemaTypesToIterate){//check for allOf, oneOf, anyOf -const checkCombiningSchemas=combineArray=>{(combineArray||[]).forEach(combineSchema=>{traverseSchema(combineSchema,callback,null,schemaTypesToIterate);});};if(schemaTypesToIterate.includes(SchemaTypesToIterate.allOfs)){checkCombiningSchemas(schema.allOf());}if(schemaTypesToIterate.includes(SchemaTypesToIterate.anyOfs)){checkCombiningSchemas(schema.anyOf());}if(schemaTypesToIterate.includes(SchemaTypesToIterate.oneOfs)){checkCombiningSchemas(schema.oneOf());}}/** - * Go through each channel and for each parameter, and message payload and headers recursively call the callback for each schema. - * - * @private - * @param {AsyncAPIDocument} doc - * @param {FoundSchemaCallback} callback - * @param {SchemaTypesToIterate[]} schemaTypesToIterate - */function traverseAsyncApiDocument$2(doc,callback,schemaTypesToIterate){if(!schemaTypesToIterate){schemaTypesToIterate=Object.values(SchemaTypesToIterate);}if(doc.hasChannels()){doc.channelNames().forEach(channelName=>{const channel=doc.channel(channelName);traverseChannel(channel,callback,schemaTypesToIterate);});}if(doc.hasComponents()&&schemaTypesToIterate.includes(SchemaTypesToIterate.components)){Object.values(doc.components().schemas()).forEach(s=>{traverseSchema(s,callback,null,schemaTypesToIterate);});Object.values(doc.components().messages()).forEach(m=>{traverseMessage(m,callback,schemaTypesToIterate);});}}/** - * Go through each schema in channel - * - * @private - * @param {Channel} channel - * @param {FoundSchemaCallback} callback - * @param {SchemaTypesToIterate[]} schemaTypesToIterate - */function traverseChannel(channel,callback,schemaTypesToIterate){if(schemaTypesToIterate.includes(SchemaTypesToIterate.parameters)){Object.values(channel.parameters()).forEach(p=>{traverseSchema(p.schema(),callback,null,schemaTypesToIterate);});}if(channel.hasPublish()){channel.publish().messages().forEach(m=>{traverseMessage(m,callback,schemaTypesToIterate);});}if(channel.hasSubscribe()){channel.subscribe().messages().forEach(m=>{traverseMessage(m,callback,schemaTypesToIterate);});}}/** - * Go through each schema in a message - * - * @private - * @param {Message} message - * @param {FoundSchemaCallback} callback - * @param {SchemaTypesToIterate[]} schemaTypesToIterate - */function traverseMessage(message,callback,schemaTypesToIterate){if(message===null)return;if(schemaTypesToIterate.includes(SchemaTypesToIterate.headers)){traverseSchema(message.headers(),callback,null,schemaTypesToIterate);}if(schemaTypesToIterate.includes(SchemaTypesToIterate.payloads)){traverseSchema(message.payload(),callback,null,schemaTypesToIterate);}}/** - * Recursively go through schema of object type and execute callback. - * - * @private - * @param {Schema} schema Object type. - * @param {TraverseSchemas} callback - * @param {SchemaTypesToIterate[]} schemaTypesToIterate - */function recursiveSchemaObject(schema,callback,schemaTypesToIterate){if(schema.additionalProperties()!==undefined&&typeof schema.additionalProperties()!=='boolean'){const additionalSchema=schema.additionalProperties();traverseSchema(additionalSchema,callback,null,schemaTypesToIterate);}if(schema.properties()!==null){const props=schema.properties();for(const[prop,propertySchema]of Object.entries(props)){const circularProps=schema.circularProps();if(circularProps!==undefined&&circularProps.includes(prop))continue;traverseSchema(propertySchema,callback,prop,schemaTypesToIterate);}}}/** - * Recursively go through schema of array type and execute callback. - * - * @private - * @param {Schema} schema Array type. - * @param {TraverseSchemas} callback - * @param {SchemaTypesToIterate[]} schemaTypesToIterate - */function recursiveSchemaArray(schema,callback,schemaTypesToIterate){if(schema.additionalItems()!==undefined){const additionalArrayItems=schema.additionalItems();traverseSchema(additionalArrayItems,callback,null,schemaTypesToIterate);}if(schema.items()!==null){if(Array.isArray(schema.items())){schema.items().forEach(arraySchema=>{traverseSchema(arraySchema,callback,null,schemaTypesToIterate);});}else {traverseSchema(schema.items(),callback,null,schemaTypesToIterate);}}}var iterators={SchemaIteratorCallbackType:SchemaIteratorCallbackType$1,SchemaTypesToIterate,traverseSchema,traverseAsyncApiDocument:traverseAsyncApiDocument$2,traverseChannel,traverseMessage,recursiveSchemaObject,recursiveSchemaArray};const{xParserMessageName,xParserSchemaId}=constants;const{traverseAsyncApiDocument:traverseAsyncApiDocument$1}=iterators;/** - * Assign message keys as message name to all the component messages. - * - * @private - * @param {AsyncAPIDocument} doc - */function assignNameToComponentMessages$1(doc){if(doc.hasComponents()){for(const[key,m]of Object.entries(doc.components().messages())){if(m.name()===undefined){m.json()[String(xParserMessageName)]=key;}}}}/** - * Assign parameter keys as uid for the parameter schema. - * - * @private - * @param {AsyncAPIDocument} doc - */function assignUidToParameterSchemas$1(doc){doc.channelNames().forEach(channelName=>{const channel=doc.channel(channelName);for(const[parameterKey,parameterSchema]of Object.entries(channel.parameters())){parameterSchema.json()[String(xParserSchemaId)]=parameterKey;}});}/** - * Assign uid to component schemas. - * - * @private - * @param {AsyncAPIDocument} doc - */function assignUidToComponentSchemas$1(doc){if(doc.hasComponents()){for(const[key,s]of Object.entries(doc.components().schemas())){s.json()[String(xParserSchemaId)]=key;}}}/** - * Assign anonymous names to nameless messages. - * - * @private - * @param {AsyncAPIDocument} doc - */function assignNameToAnonymousMessages$1(doc){let anonymousMessageCounter=0;if(doc.hasChannels()){doc.channelNames().forEach(channelName=>{const channel=doc.channel(channelName);if(channel.hasPublish())addNameToKey(channel.publish().messages(),++anonymousMessageCounter);if(channel.hasSubscribe())addNameToKey(channel.subscribe().messages(),++anonymousMessageCounter);});}}/** - * Add anonymous name to key if no name provided. - * - * @private - * @param {Message} map of messages - */function addNameToKey(messages,number){messages.forEach(m=>{if(m.name()===undefined){m.json()[String(xParserMessageName)]=``;}});}/** - * Gives schemas id to all anonymous schemas. - * - * @private - * @param {AsyncAPIDocument} doc - */function assignIdToAnonymousSchemas$1(doc){let anonymousSchemaCounter=0;const callback=schema=>{if(!schema.uid()){schema.json()[String(xParserSchemaId)]=``;}};traverseAsyncApiDocument$1(doc,callback);}var anonymousNaming={assignNameToComponentMessages:assignNameToComponentMessages$1,assignUidToParameterSchemas:assignUidToParameterSchemas$1,assignUidToComponentSchemas:assignUidToComponentSchemas$1,assignNameToAnonymousMessages:assignNameToAnonymousMessages$1,assignIdToAnonymousSchemas:assignIdToAnonymousSchemas$1};const{createMapOfType,getMapValueOfType,mix}=utils_1;const{xParserCircle:xParserCircle$1,xParserCircleProps}=constants;const{assignNameToAnonymousMessages,assignNameToComponentMessages,assignUidToComponentSchemas,assignUidToParameterSchemas,assignIdToAnonymousSchemas}=anonymousNaming;const{traverseAsyncApiDocument,SchemaIteratorCallbackType}=iterators;/** - * Implements functions to deal with the AsyncAPI document. - * @class - * @alias module:@asyncapi/parser#AsyncAPIDocument - * @extends Base - * @mixes MixinTags - * @mixes MixinExternalDocs - * @mixes MixinSpecificationExtensions - * @returns {AsyncAPIDocument} - */class AsyncAPIDocument extends base{constructor(...args){super(...args);assignNameToAnonymousMessages(this);assignNameToComponentMessages(this);markCircularSchemas(this);assignUidToComponentSchemas(this);assignUidToParameterSchemas(this);assignIdToAnonymousSchemas(this);}/** - * @returns {string} - */version(){return this._json.asyncapi;}/** - * @returns {Info} - */info(){return new info(this._json.info);}/** - * @returns {string} - */id(){return this._json.id;}/** - * @returns {boolean} - */hasServers(){return !!this._json.servers;}/** - * @returns {Object} - */servers(){return createMapOfType(this._json.servers,server);}/** - * @returns {string[]} - */serverNames(){if(!this._json.servers)return [];return Object.keys(this._json.servers);}/** - * @param {string} name - Name of the server. - * @returns {Server} - */server(name){return getMapValueOfType(this._json.servers,name,server);}/** - * @returns {boolean} - */hasDefaultContentType(){return !!this._json.defaultContentType;}/** - * @returns {string|null} - */defaultContentType(){return this._json.defaultContentType||null;}/** - * @returns {boolean} - */hasChannels(){return !!this._json.channels;}/** - * @returns {Object} - */channels(){return createMapOfType(this._json.channels,channel,this);}/** - * @returns {string[]} - */channelNames(){if(!this._json.channels)return [];return Object.keys(this._json.channels);}/** - * @param {string} name - Name of the channel. - * @returns {Channel} - */channel(name){return getMapValueOfType(this._json.channels,name,channel,this);}/** - * @returns {boolean} - */hasComponents(){return !!this._json.components;}/** - * @returns {Components} - */components(){if(!this._json.components)return null;return new components(this._json.components);}/** - * @returns {boolean} - */hasMessages(){return !!this.allMessages().size;}/** - * @returns {Map} - */allMessages(){const messages=new Map();if(this.hasChannels()){this.channelNames().forEach(channelName=>{const channel=this.channel(channelName);if(channel.hasPublish()){channel.publish().messages().forEach(m=>{messages.set(m.uid(),m);});}if(channel.hasSubscribe()){channel.subscribe().messages().forEach(m=>{messages.set(m.uid(),m);});}});}if(this.hasComponents()){Object.values(this.components().messages()).forEach(m=>{messages.set(m.uid(),m);});}return messages;}/** - * @returns {Map} - */allSchemas(){const schemas=new Map();const allSchemasCallback=schema=>{if(schema.uid()){schemas.set(schema.uid(),schema);}};traverseAsyncApiDocument(this,allSchemasCallback);return schemas;}/** - * @returns {boolean} - */hasCircular(){return !!this._json[String(xParserCircle$1)];}/** - * Callback used when crawling a schema. - * @callback TraverseSchemas - * @param {Schema} schema which is being crawled - * @param {String} propName if the schema is from a property get the name of such - * @param {SchemaIteratorCallbackType} callbackType is the schema a new one or is the crawler finishing one. - * @returns {boolean} should the crawler continue crawling the schema? - * - */ /** - * Traverse schemas in the document and select which types of schemas to include. - * By default all schemas are iterated - * - * @param {TraverseSchemas} callback - * @param {SchemaTypesToIterate[]} schemaTypesToIterate - */traverseSchemas(callback,schemaTypesToIterate){traverseAsyncApiDocument(this,callback,schemaTypesToIterate);}}/** - * Marks all recursive schemas as recursive. - * - * @private - * @param {AsyncAPIDocument} doc - */function markCircularSchemas(doc){const seenObj=[];const lastSchema=[];//Mark the schema as recursive -const markCircular=(schema,prop)=>{if(schema.type()==='array')return schema.json()[String(xParserCircle$1)]=true;const circPropsList=schema.json()[String(xParserCircleProps)]||[];if(prop!==undefined){circPropsList.push(prop);}schema.json()[String(xParserCircleProps)]=circPropsList;};//callback to use for iterating through the schemas -const circularCheckCallback=(schema,propName,type)=>{switch(type){case SchemaIteratorCallbackType.END_SCHEMA:lastSchema.pop();seenObj.pop();break;case SchemaIteratorCallbackType.NEW_SCHEMA:const schemaJson=schema.json();if(seenObj.includes(schemaJson)){const schemaToUse=lastSchema.length>0?lastSchema[lastSchema.length-1]:schema;markCircular(schemaToUse,propName);return false;}//Save a list of seen objects and last schema which should be marked if its recursive -seenObj.push(schemaJson);lastSchema.push(schema);return true;}};traverseAsyncApiDocument(doc,circularCheckCallback);}var asyncapi=mix(AsyncAPIDocument,tags,externalDocs,specificationExtensions);var id="http://json-schema.org/draft-04/schema#";var $schema="http://json-schema.org/draft-04/schema#";var description="Core schema meta-schema";var definitions={schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{"default":0}]},simpleTypes:{"enum":["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:true}};var type="object";var properties={id:{type:"string"},$schema:{type:"string"},title:{type:"string"},description:{type:"string"},"default":{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:true},maximum:{type:"number"},exclusiveMaximum:{type:"boolean","default":false},minimum:{type:"number"},exclusiveMinimum:{type:"boolean","default":false},maxLength:{$ref:"#/definitions/positiveInteger"},minLength:{$ref:"#/definitions/positiveIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],"default":{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],"default":{}},maxItems:{$ref:"#/definitions/positiveInteger"},minItems:{$ref:"#/definitions/positiveIntegerDefault0"},uniqueItems:{type:"boolean","default":false},maxProperties:{$ref:"#/definitions/positiveInteger"},minProperties:{$ref:"#/definitions/positiveIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],"default":{}},definitions:{type:"object",additionalProperties:{$ref:"#"},"default":{}},properties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},"enum":{type:"array",minItems:1,uniqueItems:true},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:true}]},format:{type:"string"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}};var dependencies={exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]};var require$$3={id:id,$schema:$schema,description:description,definitions:definitions,type:type,properties:properties,dependencies:dependencies,"default":{}};var path=/*@__PURE__*/getAugmentedNamespace(path$2);var fetch=/*@__PURE__*/getAugmentedNamespace(lib$2);var require$$0=/*@__PURE__*/getAugmentedNamespace(esm);const mergePatch=require$$0.apply;const{validateChannels,validateServerVariables,validateOperationId,validateServerSecurity}=customValidators;const{toJS,findRefs,getLocationOf,improveAjvErrors:improveAjvErrors$1}=utils_1;const DEFAULT_SCHEMA_FORMAT='application/vnd.aai.asyncapi;version=2.0.0';const OPERATIONS=['publish','subscribe'];//the only security types that can have a non empty array in the server security item -const SPECIAL_SECURITY_TYPES=['oauth2','openIdConnect'];const PARSERS={};const xParserCircle='x-parser-circular';const xParserMessageParsed='x-parser-message-parsed';/** - * @module @asyncapi/parser - */var parser={parse:parse$3,parseFromUrl,registerSchemaParser,ParserError:parserError,AsyncAPIDocument:asyncapi};/** - * Parses and validate an AsyncAPI document from YAML or JSON. - * - * @param {String} asyncapiYAMLorJSON An AsyncAPI document in JSON or YAML format. - * @param {Object} [options] Configuration options. - * @param {String} [options.path] Path to the AsyncAPI document. It will be used to resolve relative references. Defaults to current working dir. - * @param {Object} [options.parse] Options object to pass to {@link https://apidevtools.org/json-schema-ref-parser/docs/options.html|json-schema-ref-parser}. - * @param {Object} [options.resolve] Options object to pass to {@link https://apidevtools.org/json-schema-ref-parser/docs/options.html|json-schema-ref-parser}. - * @param {Object} [options.applyTraits=true] Whether to resolve and apply traits or not. - * @returns {Promise} The parsed AsyncAPI document. - */async function parse$3(asyncapiYAMLorJSON,options={}){let parsedJSON;let initialFormat;options.path=options.path||`${browser$1.cwd()}${path.sep}`;try{({initialFormat,parsedJSON}=toJS(asyncapiYAMLorJSON));if(typeof parsedJSON!=='object'){throw new parserError({type:'impossible-to-convert-to-json',title:'Could not convert AsyncAPI to JSON.',detail:'Most probably the AsyncAPI document contains invalid YAML or YAML features not supported in JSON.'});}if(!parsedJSON.asyncapi){throw new parserError({type:'missing-asyncapi-field',title:'The `asyncapi` field is missing.',parsedJSON});}if(parsedJSON.asyncapi.startsWith('1.')||!specs[parsedJSON.asyncapi]){throw new parserError({type:'unsupported-version',title:`Version ${parsedJSON.asyncapi} is not supported.`,detail:'Please use latest version of the specification.',parsedJSON,validationErrors:[getLocationOf('/asyncapi',asyncapiYAMLorJSON,initialFormat)]});}if(options.applyTraits===undefined)options.applyTraits=true;const refParser=new lib$1();//because of Ajv lacks support for circular refs, parser should not resolve them before Ajv validation and first needs to ignore them and leave circular $refs to successfully validate the document -//this is done pair to advice from Ajv creator https://github.com/ajv-validator/ajv/issues/1122#issuecomment-559378449 -//later we perform full dereference of circular refs if they occure -await dereference(refParser,parsedJSON,initialFormat,asyncapiYAMLorJSON,{...options,dereference:{circular:'ignore'}});const ajv$1=new ajv({jsonPointers:true,allErrors:true,schemaId:'id',logger:false});ajv$1.addMetaSchema(require$$3);const validate=ajv$1.compile(specs[parsedJSON.asyncapi]);const valid=validate(parsedJSON);if(!valid)throw new parserError({type:'validation-errors',title:'There were errors validating the AsyncAPI document.',parsedJSON,validationErrors:improveAjvErrors$1(validate.errors,asyncapiYAMLorJSON,initialFormat)});await customDocumentOperations(parsedJSON,asyncapiYAMLorJSON,initialFormat,options);if(refParser.$refs.circular)await handleCircularRefs(refParser,parsedJSON,initialFormat,asyncapiYAMLorJSON,options);}catch(e){if(e instanceof parserError)throw e;throw new parserError({type:'unexpected-error',title:e.message,parsedJSON});}return new asyncapi(parsedJSON);}/** - * Fetches an AsyncAPI document from the given URL and passes its content to the `parse` method. - * - * @param {String} url URL where the AsyncAPI document is located. - * @param {Object} [fetchOptions] Configuration to pass to the {@link https://developer.mozilla.org/en-US/docs/Web/API/Request|fetch} call. - * @param {Object} [options] Configuration to pass to the {@link module:Parser#parse} method. - * @returns {Promise} The parsed AsyncAPI document. - */function parseFromUrl(url,fetchOptions,options){//Why not just addinga default to the arguments list? -//All function parameters with default values should be declared after the function parameters without default values. Otherwise, it makes it impossible for callers to take advantage of defaults; they must re-specify the defaulted values or pass undefined in order to "get to" the non-default parameters. -//To not break the API by changing argument position and to silet the linter it is just better to move adding -if(!fetchOptions)fetchOptions={};return new Promise((resolve,reject)=>{fetch(url,fetchOptions).then(res=>res.text()).then(doc=>parse$3(doc,options)).then(result=>resolve(result)).catch(reject);});}async function dereference(refParser,parsedJSON,initialFormat,asyncapiYAMLorJSON,options){try{return await refParser.dereference(options.path,parsedJSON,{continueOnError:true,parse:options.parse,resolve:options.resolve,dereference:options.dereference});}catch(err){throw new parserError({type:'dereference-error',title:err.errors[0].message,parsedJSON,refs:findRefs(err.errors,initialFormat,asyncapiYAMLorJSON)});}}/* - * In case of circular refs, this function dereferences the spec again to dereference circular dependencies - * Special property is added to the document that indicates it contains circular refs - */async function handleCircularRefs(refParser,parsedJSON,initialFormat,asyncapiYAMLorJSON,options){await dereference(refParser,parsedJSON,initialFormat,asyncapiYAMLorJSON,{...options,dereference:{circular:true}});//mark entire document as containing circular references -parsedJSON[String(xParserCircle)]=true;}async function customDocumentOperations(parsedJSON,asyncapiYAMLorJSON,initialFormat,options){validateServerVariables(parsedJSON,asyncapiYAMLorJSON,initialFormat);validateServerSecurity(parsedJSON,asyncapiYAMLorJSON,initialFormat,SPECIAL_SECURITY_TYPES);if(!parsedJSON.channels)return;validateChannels(parsedJSON,asyncapiYAMLorJSON,initialFormat);validateOperationId(parsedJSON,asyncapiYAMLorJSON,initialFormat,OPERATIONS);await customComponentsMsgOperations(parsedJSON,asyncapiYAMLorJSON,initialFormat,options);await customChannelsOperations(parsedJSON,asyncapiYAMLorJSON,initialFormat,options);}async function validateAndConvertMessage(msg,originalAsyncAPIDocument,fileFormat,parsedAsyncAPIDocument,pathToPayload){//check if the message has been parsed before -if(xParserMessageParsed in msg&&msg[String(xParserMessageParsed)]===true)return;const schemaFormat=msg.schemaFormat||DEFAULT_SCHEMA_FORMAT;await PARSERS[String(schemaFormat)]({schemaFormat,message:msg,defaultSchemaFormat:DEFAULT_SCHEMA_FORMAT,originalAsyncAPIDocument,parsedAsyncAPIDocument,fileFormat,pathToPayload});msg.schemaFormat=DEFAULT_SCHEMA_FORMAT;msg[String(xParserMessageParsed)]=true;}/** - * Registers a new schema parser. Schema parsers are in charge of parsing and transforming payloads to AsyncAPI Schema format. - * - * @param {Object} parserModule The schema parser module containing parse() and getMimeTypes() functions. - */function registerSchemaParser(parserModule){if(typeof parserModule!=='object'||typeof parserModule.parse!=='function'||typeof parserModule.getMimeTypes!=='function')throw new parserError({type:'impossible-to-register-parser',title:'parserModule must have parse() and getMimeTypes() functions.'});parserModule.getMimeTypes().forEach(schemaFormat=>{PARSERS[String(schemaFormat)]=parserModule.parse;});}function applyTraits(js){if(Array.isArray(js.traits)){for(const trait of js.traits){for(const key in trait){js[String(key)]=mergePatch(js[String(key)],trait[String(key)]);}}js['x-parser-original-traits']=js.traits;delete js.traits;}}/** - * Triggers additional operations on the AsyncAPI channels like traits application or message validation and conversion - * - * @private - * - * @param {Object} parsedJSON parsed AsyncAPI document - * @param {String} asyncapiYAMLorJSON AsyncAPI document in string - * @param {String} initialFormat information of the document was originally JSON or YAML - * @param {Object} options Configuration options. - */async function customChannelsOperations(parsedJSON,asyncapiYAMLorJSON,initialFormat,options){const promisesArray=[];Object.entries(parsedJSON.channels).forEach(([channelName,channel])=>{promisesArray.push(...OPERATIONS.map(async opName=>{const op=channel[String(opName)];if(!op)return;const messages=op.message?op.message.oneOf||[op.message]:[];if(options.applyTraits){applyTraits(op);messages.forEach(m=>applyTraits(m));}const pathToPayload=`/channels/${channelName}/${opName}/message/payload`;for(const m of messages){await validateAndConvertMessage(m,asyncapiYAMLorJSON,initialFormat,parsedJSON,pathToPayload);}}));});await Promise.all(promisesArray);}/** - * Triggers additional operations on the AsyncAPI messages located in the components section of the document. It triggers operations like traits application, validation and conversion - * - * @private - * - * @param {Object} parsedJSON parsed AsyncAPI document - * @param {String} asyncapiYAMLorJSON AsyncAPI document in string - * @param {String} initialFormat information of the document was originally JSON or YAML - * @param {Object} options Configuration options. - */async function customComponentsMsgOperations(parsedJSON,asyncapiYAMLorJSON,initialFormat,options){if(!parsedJSON.components||!parsedJSON.components.messages)return;const promisesArray=[];Object.entries(parsedJSON.components.messages).forEach(([messageName,message])=>{if(options.applyTraits){applyTraits(message);}const pathToPayload=`/components/messages/${messageName}/payload`;promisesArray.push(validateAndConvertMessage(message,asyncapiYAMLorJSON,initialFormat,parsedJSON,pathToPayload));});await Promise.all(promisesArray);}const{improveAjvErrors}=utils_1;var asyncapiSchemaFormatParser={parse:parse$2,getMimeTypes:getMimeTypes$2};/** - * @private - */async function parse$2({message,originalAsyncAPIDocument,fileFormat,parsedAsyncAPIDocument,pathToPayload}){const payload=message.payload;if(!payload)return;const ajv$1=new ajv({jsonPointers:true,allErrors:true,schemaId:'id',logger:false});const payloadSchema=preparePayloadSchema(specs[parsedAsyncAPIDocument.asyncapi]);const validate=ajv$1.compile(payloadSchema);const valid=validate(payload);if(!valid)throw new parserError({type:'schema-validation-errors',title:'This is not a valid AsyncAPI Schema Object.',parsedJSON:parsedAsyncAPIDocument,validationErrors:improveAjvErrors(addFullPathToDataPath(validate.errors,pathToPayload),originalAsyncAPIDocument,fileFormat)});}/** - * @private - */function getMimeTypes$2(){return ['application/vnd.aai.asyncapi;version=2.0.0','application/vnd.aai.asyncapi+json;version=2.0.0','application/vnd.aai.asyncapi+yaml;version=2.0.0','application/schema;version=draft-07','application/schema+json;version=draft-07','application/schema+yaml;version=draft-07'];}/** - * To validate schema of the payload we just need a small portion of official AsyncAPI spec JSON Schema, the definition of the schema must be - * a main part of the JSON Schema - * - * @private - * @param {Object} asyncapiSchema AsyncAPI specification JSON Schema - * @returns {Object} valid JSON Schema document describing format of AsyncAPI-valid schema for message payload - */function preparePayloadSchema(asyncapiSchema){return {$ref:'#/definitions/schema',definitions:asyncapiSchema.definitions};}/** - * Errors from Ajv contain dataPath information about parameter relative to parsed payload message. - * This function enriches dataPath with additional information on where is the parameter located in AsyncAPI document - * - * @private - * @param {Array} errors Ajv errors - * @param {String} path Path to location of the payload schema in AsyncAPI Document - * @returns {Array} same object as received in input but with modified datePath property so it contain full path relative to AsyncAPI document - */function addFullPathToDataPath(errors,path){return errors.map(err=>({...err,...{dataPath:`${path}${err.dataPath}`}}));}parser.registerSchemaParser(asyncapiSchemaFormatParser);var lib=parser;var isObject_1=function(maybeObj){return maybeObj!==null&&typeof maybeObj==='object';};var isObject$1={isObject:isObject_1};var invalidTypeError=InvalidTypeError;function InvalidTypeError(message){this.name='InvalidTypeError';this.message=message;}InvalidTypeError.prototype=Error.prototype;var isObject=isObject$1.isObject;var schema=convertFromSchema;// Convert from OpenAPI 3.0 `SchemaObject` to JSON schema v4 -function convertFromSchema(schema,options){schema=convertSchema(schema,options);schema.$schema='http://json-schema.org/draft-04/schema#';return schema;}function convertSchema(schema,options){if(options.cloneSchema){schema=Object.assign({},schema);}var structs=options._structs;var notSupported=options._notSupported;var strictMode=options.strictMode;var i=0;var j=0;var struct=null;for(i;isettings.MAX_INT_32){schema.maximum=settings.MAX_INT_32;}return schema;}function convertFormatInt64(schema,settings){if(!schema.minimum&&schema.minimum!==0||schema.minimumsettings.MAX_INT_64){schema.maximum=settings.MAX_INT_64;}return schema;}function convertFormatFloat(schema,settings){if(!schema.minimum&&schema.minimum!==0||schema.minimumsettings.MAX_FLOAT){schema.maximum=settings.MAX_FLOAT;}return schema;}function convertFormatDouble(schema,settings){if(!schema.minimum&&schema.minimum!==0||schema.minimumsettings.MAX_DOUBLE){schema.maximum=settings.MAX_DOUBLE;}return schema;}function convertFormatDate(schema){schema.format='date-time';return schema;}function convertFormatByte(schema,settings){schema.pattern=settings.BYTE_PATTERN;return schema;}function convertPatternProperties(schema,handler){if(isObject(schema['x-patternProperties'])){schema.patternProperties=schema['x-patternProperties'];}delete schema['x-patternProperties'];return handler(schema);}function cleanRequired(required,properties){required=required||[];properties=properties||{};let remainedRequired=[];for(let i=0;i=0){notSupported.splice(index,1);}}return notSupported;}openapiSchemaToJsonSchema_1.fromSchema=fromSchema;openapiSchemaToJsonSchema_1.fromParameter=fromParameter;var openapiSchemaParser={parse:parse$1,getMimeTypes:getMimeTypes$1};async function parse$1({message,defaultSchemaFormat}){const transformed=openapiSchemaToJsonSchema_1(message.payload,{cloneSchema:true,keepNotSupported:['discriminator','readOnly','writeOnly','deprecated','xml','example']});iterateSchema(transformed);message['x-parser-original-schema-format']=message.schemaFormat||defaultSchemaFormat;message['x-parser-original-payload']=message.payload;message.payload=transformed;delete message.schemaFormat;}function iterateSchema(schema){if(schema.example!==undefined){const examples=schema.examples||[];examples.push(schema.example);schema.examples=examples;delete schema.example;}if(schema.$schema!==undefined){delete schema.$schema;}aliasProps(schema.properties);aliasProps(schema.patternProperties);aliasProps(schema.additionalProperties);aliasProps(schema.items);aliasProps(schema.additionalItems);aliasProps(schema.oneOf);aliasProps(schema.anyOf);aliasProps(schema.allOf);aliasProps(schema.not);}function aliasProps(obj){for(const key in obj){const prop=obj[key];if(prop.xml!==undefined){prop['x-xml']=prop.xml;delete prop.xml;}iterateSchema(obj[key]);}}function getMimeTypes$1(){return ['application/vnd.oai.openapi;version=3.0.0','application/vnd.oai.openapi+json;version=3.0.0','application/vnd.oai.openapi+yaml;version=3.0.0'];}const BYTES_PATTERN='^[\u0000-\u00ff]*$';const INT_MIN=Math.pow(-2,31);const INT_MAX=Math.pow(2,31)-1;const LONG_MIN=Math.pow(-2,63);const LONG_MAX=Math.pow(2,63)-1;const typeMappings={null:'null',boolean:'boolean',int:'integer',long:'integer',float:'number',double:'number',bytes:'string',string:'string',fixed:'string',map:'object',array:'array',enum:'string',record:'object',uuid:'string'};var avroToJsonSchema$1=async function avroToJsonSchema(avroDefinition){const jsonSchema={};const isUnion=Array.isArray(avroDefinition);if(isUnion){jsonSchema.oneOf=[];for(const avroDef of avroDefinition){const def=await avroToJsonSchema(avroDef);jsonSchema.oneOf.push(def);}return jsonSchema;}// Avro definition can be a string (e.g. "int") -// or an object like { type: "int" } -const type=avroDefinition.type||avroDefinition;jsonSchema.type=typeMappings[type];switch(type){case'int':jsonSchema.minimum=INT_MIN;jsonSchema.maximum=INT_MAX;break;case'long':jsonSchema.minimum=LONG_MIN;jsonSchema.maximum=LONG_MAX;break;case'bytes':jsonSchema.pattern=BYTES_PATTERN;break;case'fixed':jsonSchema.pattern=BYTES_PATTERN;jsonSchema.minLength=avroDefinition.size;jsonSchema.maxLength=avroDefinition.size;break;case'map':jsonSchema.additionalProperties=await avroToJsonSchema(avroDefinition.values);break;case'array':jsonSchema.items=await avroToJsonSchema(avroDefinition.items);break;case'enum':jsonSchema.enum=avroDefinition.symbols;break;case'record':const propsMap=new Map();for(const field of avroDefinition.fields){const def=await avroToJsonSchema(field.type);if(field.doc)def.description=field.doc;if(field.default)def.default=field.default;propsMap.set(field.name,def);}jsonSchema.properties=Object.fromEntries(propsMap.entries());break;}if(avroDefinition.doc)jsonSchema.description=avroDefinition.doc;if(avroDefinition.default!==undefined)jsonSchema.default=avroDefinition.default;return jsonSchema;};var toJsonSchema={avroToJsonSchema:avroToJsonSchema$1};const{avroToJsonSchema}=toJsonSchema;var parse=async({message,defaultSchemaFormat})=>{const transformed=await avroToJsonSchema(message.payload);message['x-parser-original-schema-format']=message.schemaFormat||defaultSchemaFormat;message['x-parser-original-payload']=message.payload;message.payload=transformed;delete message.schemaFormat;};var getMimeTypes=()=>{return ['application/vnd.apache.avro;version=1.9.0','application/vnd.apache.avro+json;version=1.9.0','application/vnd.apache.avro+yaml;version=1.9.0','application/vnd.apache.avro;version=1.8.2','application/vnd.apache.avro+json;version=1.8.2','application/vnd.apache.avro+yaml;version=1.8.2'];};var avroSchemaParser={parse:parse,getMimeTypes:getMimeTypes};var __awaiter$1=function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value);});}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value));}catch(e){reject(e);}}function rejected(value){try{step(generator["throw"](value));}catch(e){reject(e);}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected);}step((generator=generator.apply(thisArg,_arguments||[])).next());});};var __generator$1=function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{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;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return {value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]1?_len-1:0),_key=1;_key<_len;_key++){splitValues[_key-1]=arguments[_key];}var Context=React.createContext(NO_PROVIDER);var Provider=function Provider(props){var value=useValue(props);var createMemoDeps=splitValues[0];var deps=createMemoDeps&&createMemoDeps(value);if(Array.isArray(deps)){// eslint-disable-next-line no-console -console.warn("[constate] Passing `createMemoDeps` as the second argument is deprecated.","Please, use `React.useMemo` in your custom hook instead.","See https://github.com/diegohaz/constate/issues/98");}// deps won't change between renders -var memoizedValue=Array.isArray(deps)?React.useMemo(function(){return value;},deps):value;return React.createElement(Context.Provider,{value:memoizedValue},props.children);};if(useValue.name){Context.displayName=useValue.name+".Context";Provider.displayName=useValue.name+".Provider";}// const useCounterContext = constate(...) -var useContext=createUseContext(Context);// const { Context, Provider } = constate(...) -useContext.Context=Context;useContext.Provider=Provider;var tuple=[];if(!splitValues.length){// const [Provider, useCounterContext] = constate(...); -tuple.push(Provider,createUseContext(Context));}else {var contexts=[];var SplitProvider=function SplitProvider(props){var value=useValue(props);var children=props.children;for(var i=0;i0&&React__default['default'].createElement("div",null,"Enum: ",enumElements),el.schema.content.default&&React__default['default'].createElement("div",null,"Default: ",React__default['default'].createElement("span",null,el.schema.content.default)),el.schema.content.hasOwnProperty('const')&&React__default['default'].createElement("div",null,"Const:",' ',React__default['default'].createElement("span",null,typeof el.schema.content.const!=='object'?String(el.schema.content.const):JSON.stringify(el.schema.content.const))));};var SchemaPropertiesComponent=function(_a){var name=_a.name,_b=_a.hasDynamicName,hasDynamicName=_b===void 0?false:_b,properties=_a.properties,treeSpace=_a.treeSpace,_c=_a.required,required=_c===void 0?false:_c;var alteredProperties=handleNotProperty(properties);var space=treeSpace+1;var element={schema:{key:name,content:alteredProperties},treeSpace:treeSpace,required:required};return React__default['default'].createElement("div",null,React__default['default'].createElement("div",{className:"flex py-2"},React__default['default'].createElement("div",{className:"flex-1 "+(hasDynamicName&&'font-italic')},renderPropertyName(element)),React__default['default'].createElement("div",{className:"flex-1"},React__default['default'].createElement("span",{className:"capitalize text-sm text-teal font-bold"},element.schema.content.type,element.schema.content.anyOf?" "+element.schema.content.anyOf:'',element.schema.content.oneOf?" "+element.schema.content.oneOf:'',element.schema.content.items&&element.schema.content.items.type?" ("+element.schema.content.items.type+")":''),element.schema.content.format&&React__default['default'].createElement("span",{className:"bg-yellow-dark font-bold no-underline text-black rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'}},element.schema.content.format),element.schema.content.pattern&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded normal-case ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'}},"must match ",element.schema.content.pattern),element.schema.content.uniqueItems&&React__default['default'].createElement("span",{className:"bg-red-700 font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'}},"Unique"),typeof element.schema.content.minItems==='number'&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'},title:"At least "+element.schema.content.minItems+" items"},">= ",element.schema.content.minItems," items"),typeof element.schema.content.maxItems==='number'&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'},title:"At most "+element.schema.content.maxItems+" items"},"<= ",element.schema.content.maxItems," items"),typeof element.schema.content.minLength==='number'&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'},title:"At least "+element.schema.content.minLength+" characters long"},"length >= ",element.schema.content.minLength),typeof element.schema.content.maxLength==='number'&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'},title:"At most "+element.schema.content.maxLength+" characters long"},"length <= ",element.schema.content.maxLength),typeof element.schema.content.minimum==='number'&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'},title:"At least "+element.schema.content.minimum},">= ",element.schema.content.minimum),typeof element.schema.content.maximum==='number'&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'},title:"At most "+element.schema.content.maximum},"<= ",element.schema.content.maximum),element.schema.content.exclusiveMinimum&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'},title:"Greater than "+element.schema.content.exclusiveMinimum},"> ",element.schema.content.exclusiveMinimum),element.schema.content.exclusiveMaximum&&React__default['default'].createElement("span",{className:"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2",style:{height:'20px',fontSize:'11px',padding:'3px'},title:"Less than "+element.schema.content.exclusiveMaximum},"< ",element.schema.content.exclusiveMaximum),React__default['default'].createElement("div",{className:"py-2"},renderPropertyDescription(element)),element.schema.content.type==='object'&&React__default['default'].createElement("div",{className:"font-italic text-gray-600 text-sm"},(!element.schema.content.additionalProperties||typeof element.schema.content.additionalProperties==='boolean')&&React__default['default'].createElement("p",{className:"my-0"},"Additional properties are",' ',element.schema.content.additionalProperties===false&&'NOT',' ',"allowed."),element.schema.content.additionalProperties&&typeof element.schema.content.additionalProperties==='object'&&React__default['default'].createElement("p",{className:"my-0"},"Additional properties must adhere to the following schema.")),element.schema.content.items&&React__default['default'].createElement("div",{className:"font-italic text-gray-600 text-sm"},element.schema.content.items&&typeof element.schema.content.items==='object'&&React__default['default'].createElement("p",{className:"my-0"},"Array items must adhere to the following schema.")))),renderOf(space,alteredProperties.anyOf),renderOf(space,alteredProperties.oneOf),renderProperties(alteredProperties,space),renderAdditionalProperties(alteredProperties,space),renderItems(alteredProperties,space));};var SchemaExampleComponent=function(_a){var title=_a.title,schema=_a.schema,example=_a.example;var schemaExample=schema&&schema.example?schema.example:schema&&generateExampleSchema(schema);var exampleString=JSON.stringify(example||schemaExample||'',null,2);if(!exampleString){return null;}return React__default['default'].createElement("div",{className:bemClasses.element("schema-example")},React__default['default'].createElement(CodeComponent,{code:exampleString,title:React__default['default'].createElement("div",{className:bemClasses.element("schema-example-header")},React__default['default'].createElement("span",{className:bemClasses.element("schema-example-header-title")},title?title:SCHEMA_EXAMPLE_TEXT),example||schema&&schema.example?null:React__default['default'].createElement("div",{className:bemClasses.element("schema-example-header-generated-badge")},React__default['default'].createElement(Badge,{type:BadgeType.GENERATED})))}));};var renderSchemaProps=function(schemaName,schema,required){var properties=schema.properties;if(properties){return Object.entries(properties).map(function(_a){var key=_a[0],prop=_a[1];return React__default['default'].createElement(SchemaPropertiesComponent,{key:key,name:key,properties:prop,treeSpace:0,required:schema.required&&schema.required.includes(key)});});}return React__default['default'].createElement(SchemaPropertiesComponent,{name:schemaName,hasDynamicName:true,properties:schema,treeSpace:0,required:required});};var SchemaComponent=function(_a){var name=_a.name,schema=_a.schema,description=_a.description,exampleTitle=_a.exampleTitle,_b=_a.hideTitle,hideTitle=_b===void 0?false:_b,_c=_a.toggle,toggle=_c===void 0?false:_c,_d=_a.toggleExpand,toggleExpand=_d===void 0?false:_d,_e=_a.examples,examples=_e===void 0?[]:_e,_f=_a.required,required=_f===void 0?false:_f;if(!schema){return null;}schema.description=schema.description||description||'';var className=ITEM_LABELS.SCHEMA;var hasNotField=searchForNestedObject(schema,'not');var header=React__default['default'].createElement("h3",null,React__default['default'].createElement("span",{className:bemClasses.element(className+"-header-title")},name));var hasExamples=examples.length;var content=React__default['default'].createElement(React__default['default'].Fragment,null,React__default['default'].createElement("div",{className:bemClasses.element(className+"-table")+" p-4"},renderSchemaProps(name,schema,required)),hasExamples?examples.map(function(el,i){return React__default['default'].createElement(SchemaExampleComponent,{title:hasExamples>1?exampleTitle+" "+i:exampleTitle,example:el,key:i});}):hasNotField?null:React__default['default'].createElement(SchemaExampleComponent,{title:exampleTitle,schema:schema}));var schemaID=toggle?bemClasses.identifier([CONTAINER_LABELS.SCHEMAS,name]):undefined;var schemaDataID=toggle?bemClasses.identifier([CONTAINER_LABELS.SCHEMAS,removeSpecialChars(name)]):undefined;return React__default['default'].createElement("section",{className:bemClasses.element(className),id:schemaID,"data-asyncapi-id":schemaDataID},toggle?React__default['default'].createElement(Toggle,{header:header,className:className,expanded:toggleExpand,label:ITEM_LABELS.SCHEMA,itemName:name,toggleInState:true},content):React__default['default'].createElement(React__default['default'].Fragment,null,hideTitle?null:React__default['default'].createElement("header",{className:bemClasses.element(className+"-header")},header),content));};var PayloadComponent=function(_a){var payload=_a.payload,_b=_a.oneOf,oneOf=_b===void 0?false:_b,_c=_a.anyOf,anyOf=_c===void 0?false:_c,identifier=_a.identifier,dataIdentifier=_a.dataIdentifier,id=_a.id,examples=_a.examples;var className="message-payload";var payloadsID=identifier?identifier+"s":undefined;if(isOneOfPayload(payload)){return React__default['default'].createElement("div",{className:bemClasses.element(className+"-oneOf"),id:payloadsID,"data-asyncapi-id":dataIdentifier},React__default['default'].createElement("header",{className:bemClasses.element(className+"-oneOf-header")},React__default['default'].createElement("h4",null,ONE_OF_PAYLOADS_TEXT)),React__default['default'].createElement("ul",{className:bemClasses.element(className+"-oneOf-list")},payload.oneOf.map(function(elem,index){return React__default['default'].createElement("li",{key:index,className:bemClasses.element(className+"-oneOf-list-item")},React__default['default'].createElement(PayloadComponent,{payload:elem,key:index,oneOf:true,identifier:identifier,id:index,examples:examples}));})));}if(isAnyOfPayload(payload)){return React__default['default'].createElement("div",{className:bemClasses.element(className+"-anyOf"),id:payloadsID,"data-asyncapi-id":dataIdentifier},React__default['default'].createElement("header",{className:bemClasses.element(className+"-anyOf-header")},React__default['default'].createElement("h4",null,ANY_OF_PAYLOADS_TEXT)),React__default['default'].createElement("ul",{className:bemClasses.element(className+"-anyOf-list")},payload.anyOf.map(function(elem,index){return React__default['default'].createElement("li",{key:index,className:bemClasses.element(className+"-anyOf-list-item")},React__default['default'].createElement(PayloadComponent,{payload:elem,key:index,anyOf:true,identifier:identifier,id:index,examples:examples}));})));}var inferredId=payload['x-parser-schema-id']||'';inferredId=inferredId.includes('anonymous-schema')?'':inferredId;var title=id!==undefined?inferredId?id+" "+inferredId:id:PAYLOAD_TEXT;var header=React__default['default'].createElement("header",{className:bemClasses.element(className+"-header")},React__default['default'].createElement("h4",null,title));var content=React__default['default'].createElement("div",{className:bemClasses.element(className+"-schema")},React__default['default'].createElement(SchemaComponent,{name:MESSAGE_PAYLOAD_TEXT,schema:payload,exampleTitle:PAYLOAD_EXAMPLE_TEXT,hideTitle:true,examples:examples}));var payloadID;if(identifier){payloadID=payload.title&&payload.title.length?identifier+"-"+payload.title:""+identifier+(id!==undefined?"-"+id:'');}var payloadDataID;if(dataIdentifier){payloadDataID=payload.title&&payload.title.length?dataIdentifier+"-"+payload.title:""+dataIdentifier+(id!==undefined?"-"+id:'');}if(oneOf||anyOf){return React__default['default'].createElement("section",{className:bemClasses.element(className),id:payloadID,"data-asyncapi-id":payloadDataID},React__default['default'].createElement(Toggle,{header:header,className:className},content));}return React__default['default'].createElement("section",{className:bemClasses.element(className),id:payloadID,"data-asyncapi-id":payloadDataID},header,content);};var MessageComponent=function(_a){var title=_a.title,message=_a.message,hideTags=_a.hideTags,_b=_a.inChannel,inChannel=_b===void 0?false:_b,_c=_a.toggleExpand,toggleExpand=_c===void 0?false:_c;_a.oneOf;if(!message){return null;}var className=ITEM_LABELS.MESSAGE;var messageID=title&&title.length?bemClasses.identifier([CONTAINER_LABELS.MESSAGES,title]):bemClasses.identifier([CONTAINER_LABELS.MESSAGES]);var messageDataID=title&&title.length?bemClasses.identifier([CONTAINER_LABELS.MESSAGES,removeSpecialChars(title)]):bemClasses.identifier([CONTAINER_LABELS.MESSAGES]);if(!isRawMessage(message)){return React__default['default'].createElement("ul",{className:bemClasses.element("messages-oneOf-list")},message.oneOf.map(function(elem,index){return React__default['default'].createElement("li",{key:index,className:bemClasses.element("messages-oneOf-list-item")},React__default['default'].createElement(MessageComponent,{message:elem,key:index,title:elem.title,inChannel:inChannel,oneOf:true}));}));}title=title||message.title||message.name;var examples=message.examples;var summary=message.summary&&React__default['default'].createElement("div",{className:bemClasses.element(className+"-summary")},React__default['default'].createElement(Markdown,null,message.summary));var description=message.description&&React__default['default'].createElement("div",{className:bemClasses.element(className+"-description")},React__default['default'].createElement(Markdown,null,message.description));var header=!(title||summary)?null:React__default['default'].createElement("h3",null,message.deprecated&&React__default['default'].createElement("div",{className:bemClasses.element(className+"-header-deprecated-badge")},React__default['default'].createElement(Badge,{type:BadgeType.DEPRECATED},DEPRECATED_TEXT)),title?React__default['default'].createElement("span",{className:bemClasses.element(className+"-header-title")},title):null,React__default['default'].createElement("span",{className:bemClasses.element(className+"-header-summary")},summary));var headersID=!inChannel?bemClasses.identifier([{id:messageID,toKebabCase:false},'headers']):undefined;var headers=message.headers&&React__default['default'].createElement("section",{className:bemClasses.element(className+"-headers"),id:headersID,"data-asyncapi-id":headersID},React__default['default'].createElement("header",{className:bemClasses.element(className+"-headers-header")},React__default['default'].createElement("h4",null,HEADERS_TEXT)),React__default['default'].createElement("div",{className:bemClasses.element(className+"-headers-schema")},React__default['default'].createElement(SchemaComponent,{name:MESSAGE_HEADERS_TEXT,schema:message.headers,exampleTitle:HEADERS_EXAMPLE_TEXT,hideTitle:true,examples:examples&&getExamplesFromSpec(examples,'headers')})));var payloadID=!inChannel?bemClasses.identifier([{id:messageID,toKebabCase:false},'payload']):undefined;var payloadDataID=!inChannel?bemClasses.identifier([{id:messageDataID,toKebabCase:false},'payload']):undefined;var payload=message.payload&&React__default['default'].createElement(PayloadComponent,{payload:message.payload,identifier:payloadID,dataIdentifier:payloadDataID,examples:examples&&getExamplesFromSpec(examples,'payload')});var content=React__default['default'].createElement(React__default['default'].Fragment,null,headers,payload);var isBody=!!(message.description||message.headers||message.payload||!hideTags&&message.tags);var identifier=!inChannel?messageID:undefined;var dataIdentifier=!inChannel?messageDataID:undefined;return React__default['default'].createElement("section",{className:bemClasses.element(className),id:identifier,"data-asyncapi-id":dataIdentifier},!inChannel?React__default['default'].createElement(Toggle,{header:header,className:className,expanded:toggleExpand,label:ITEM_LABELS.MESSAGE,itemName:title,toggleInState:true},!isBody?null:React__default['default'].createElement(React__default['default'].Fragment,null,description,content)):React__default['default'].createElement(React__default['default'].Fragment,null,content));};var MessagesComponent=function(_a){var messages=_a.messages,expand=_a.expand,_b=_a.inChannel,inChannel=_b===void 0?false:_b;if(!messages){return null;}var className=CONTAINER_LABELS.MESSAGES;var messagesLength=Object.keys(messages).length;var wrapper=function(children){return React__default['default'].createElement("section",{className:bemClasses.element(className),id:bemClasses.identifier([className])},children);};var header=React__default['default'].createElement("h2",null,MESSAGES_TEXT);var content=React__default['default'].createElement("ul",{className:bemClasses.element(className+"-list")},Object.entries(messages).map(function(_a){var key=_a[0],message=_a[1];var msg=message;var inferredName=msg['x-parser-message-name']||'';inferredName=inferredName.includes('anonymous-message')?'':inferredName;var title=messagesLength<2&&inChannel?'':message.title||message.name||inferredName||key;return React__default['default'].createElement("li",{key:key,className:bemClasses.element(className+"-list-item")},React__default['default'].createElement(MessageComponent,{title:title,message:message,hideTags:true,inChannel:false,toggleExpand:expand&&expand.elements}));}));if(inChannel){return wrapper(content);}return wrapper(React__default['default'].createElement(Toggle,{header:header,className:className,expanded:expand&&expand.root,label:CONTAINER_LABELS.MESSAGES,toggleInState:true},content));};var OperationComponent=function(_a){var _b=_a.payloadType,payloadType=_b===void 0?PayloadType.PUBLISH:_b,operation=_a.operation,_c=_a.oneOf,oneOf=_c===void 0?false:_c,_d=_a.otherOneOf,otherOneOf=_d===void 0?false:_d,_e=_a.isPublish,isPublish=_e===void 0?false:_e,_f=_a.isSubscribe,isSubscribe=_f===void 0?false:_f;if(!operation||!operation.message){return null;}var className="channel-operation";var messages={};if(oneOf&&!isRawMessage(operation.message)){messages=operation.message.oneOf.map(function(message,index){var _a;return _a={},_a[index.toString()]=message,_a;}).reduce(function(obj,item){return Object.assign(obj,item);},{});}if(!oneOf&&otherOneOf){messages={0:operation.message};}if(oneOf||otherOneOf){return React__default['default'].createElement("section",{className:bemClasses.element(className+"-oneOf-"+payloadType)},React__default['default'].createElement("header",{className:bemClasses.element(className+"-oneOf-"+payloadType+"-header")},React__default['default'].createElement("h4",null,isPublish&&isSubscribe?React__default['default'].createElement(Badge,{type:payloadType===PayloadType.PUBLISH?BadgeType.PUBLISH:BadgeType.SUBSCRIBE}):null,React__default['default'].createElement("span",null,payloadType===PayloadType.PUBLISH?ONE_OF_FOLLOWING_MESSAGES_PUBLISH_TEXT:ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_TEXT))),operation.description&&React__default['default'].createElement("div",{className:bemClasses.element(className+"-description")},React__default['default'].createElement(Markdown,null,operation.description)),React__default['default'].createElement(MessagesComponent,{messages:messages,inChannel:true}));}return React__default['default'].createElement("section",{className:bemClasses.element(className)},operation.description&&React__default['default'].createElement("div",{className:bemClasses.element(className+"-description")},React__default['default'].createElement(Markdown,null,operation.description)),React__default['default'].createElement(MessageComponent,{message:operation.message,inChannel:true}));};var Parameter=function(_a){var _b=_a.param,description=_b.description,location=_b.location,schema=_b.schema,_c=_a.name,name=_c===void 0?'':_c;return React__default['default'].createElement("div",{className:bemClasses.element("channel-parameter")},React__default['default'].createElement("header",{className:bemClasses.element("channel-parameter-header")},location&&React__default['default'].createElement("h4",null,LOCATION_TEXT,": ",location)),React__default['default'].createElement("div",{className:bemClasses.element("channel-parameter-schema")},React__default['default'].createElement(SchemaComponent,{name:name,schema:schema,hideTitle:true,description:description,required:true})));};var Parameters=function(_a){var parameters=_a.parameters,identifier=_a.identifier,dataIdentifier=_a.dataIdentifier;if(!parameters){return null;}return React__default['default'].createElement("div",{className:bemClasses.element("channel-parameters"),id:identifier,"data-asyncapi-id":dataIdentifier},React__default['default'].createElement("header",{className:bemClasses.element("channel-parameters-header")},React__default['default'].createElement("h4",null,PARAMETERS_TEXT)),React__default['default'].createElement("ul",{className:bemClasses.element("channel-parameters-list")},Object.entries(parameters).map(function(_a){var name=_a[0],param=_a[1];return React__default['default'].createElement("li",{key:name,className:bemClasses.element("channel-parameters-list-item")},React__default['default'].createElement(Parameter,{param:param,name:name}));})));};var ChannelComponent=function(_a){var _b,_c;var name=_a.name,channel=_a.channel,_d=_a.toggleExpand,toggleExpand=_d===void 0?false:_d;var className=ITEM_LABELS.CHANNEL;var identifier=bemClasses.identifier([CONTAINER_LABELS.CHANNELS,name]);var dataIdentifier=bemClasses.identifier([CONTAINER_LABELS.CHANNELS,removeSpecialChars(name)]);var message=channel.publish&&channel.publish.message||channel.subscribe&&channel.subscribe.message;var oneOfPublish=channel.publish&&channel.publish.message&&!isRawMessage(channel.publish.message);var oneOfSubscribe=channel.subscribe&&channel.subscribe.message&&!isRawMessage(channel.subscribe.message);var oneOfExists=Boolean(oneOfPublish||oneOfSubscribe);var header=React__default['default'].createElement("h3",null,React__default['default'].createElement("ul",{className:bemClasses.element(className+"-header-badges")},channel.deprecated&&React__default['default'].createElement("li",{className:bemClasses.element(className+"-header-badges-deprecated-badge")},React__default['default'].createElement(Badge,{type:BadgeType.DEPRECATED})),channel.publish&&React__default['default'].createElement("li",{className:bemClasses.element(className+"-header-publish-badge")},React__default['default'].createElement(Badge,{type:BadgeType.PUBLISH})),channel.subscribe&&React__default['default'].createElement("li",{className:bemClasses.element(className+"-header-subscribe-badge")},React__default['default'].createElement(Badge,{type:BadgeType.SUBSCRIBE}))),React__default['default'].createElement("span",{className:bemClasses.element(className+"-header-title")},name));var content=React__default['default'].createElement(React__default['default'].Fragment,null,channel.description&&React__default['default'].createElement("div",{className:bemClasses.element(className+"-description")},React__default['default'].createElement(Markdown,null,channel.description)),React__default['default'].createElement(Parameters,{parameters:channel.parameters,identifier:bemClasses.identifier([{id:identifier,toKebabCase:false},'parameters']),dataIdentifier:bemClasses.identifier([{id:dataIdentifier,toKebabCase:false},'parameters'])}),React__default['default'].createElement("div",{className:bemClasses.element(className+"-operations")},oneOfExists?null:React__default['default'].createElement("header",{className:bemClasses.element(className+"-operations-header")},React__default['default'].createElement("h4",null,React__default['default'].createElement("span",null,((_b=message)===null||_b===void 0?void 0:_b.title)||((_c=message)===null||_c===void 0?void 0:_c.name)||MESSAGE_TEXT))),React__default['default'].createElement("ul",{className:bemClasses.element(className+"-operations-list")},channel.subscribe&&React__default['default'].createElement("li",{className:bemClasses.element(className+"-operations-subscribe")},React__default['default'].createElement(OperationComponent,{payloadType:PayloadType.SUBSCRIBE,operation:channel.subscribe,oneOf:oneOfSubscribe,otherOneOf:oneOfPublish,isPublish:!!channel.publish,isSubscribe:!!channel.subscribe})),channel.publish&&React__default['default'].createElement("li",{className:bemClasses.element(className+"-operations-publish")},React__default['default'].createElement(OperationComponent,{payloadType:PayloadType.PUBLISH,operation:channel.publish,otherOneOf:oneOfSubscribe,oneOf:oneOfPublish,isPublish:!!channel.publish,isSubscribe:!!channel.subscribe})))));var body=(channel.subscribe||channel.publish)&&content;return React__default['default'].createElement("section",{className:bemClasses.element(className),id:identifier,"data-asyncapi-id":dataIdentifier},React__default['default'].createElement(Toggle,{header:header,className:className,expanded:toggleExpand,label:ITEM_LABELS.CHANNEL,itemName:name,toggleInState:true},body));};var ChannelsComponent=function(_a){var channels=_a.channels,expand=_a.expand;var className=CONTAINER_LABELS.CHANNELS;var header=React__default['default'].createElement("h2",null,CHANNELS_TEXT);var content=React__default['default'].createElement("ul",{className:bemClasses.element(className+"-list")},Object.entries(channels).map(function(_a){var name=_a[0],channel=_a[1];return React__default['default'].createElement("li",{key:name,className:bemClasses.element(className+"-list-item")},React__default['default'].createElement(ChannelComponent,{name:name,channel:channel,toggleExpand:expand&&expand.elements}));}));return React__default['default'].createElement("section",{className:bemClasses.element(className),id:bemClasses.identifier([className])},React__default['default'].createElement(Toggle,{header:header,className:className,expanded:expand&&expand.root,label:CONTAINER_LABELS.CHANNELS,toggleInState:true},content));};var serverVariablesAccessors=[function(el){return React__default['default'].createElement("span",null,el.key);},function(el){return el.content.default?React__default['default'].createElement("span",null,el.content.default):React__default['default'].createElement("em",null,NONE_TEXT);},function(el){return el.content.enum?React__default['default'].createElement("ul",{className:bemClasses.element("server-variables-enum-list")},el.content.enum.map(function(value){return React__default['default'].createElement("li",{className:bemClasses.element("server-variables-enum-list-item"),key:value},value);})):React__default['default'].createElement("em",null,ANY_TEXT);},function(el){return el.content.description&&React__default['default'].createElement(Markdown,null,el.content.description);}];var ServerVariablesComponent=function(_a){var variables=_a.variables,id=_a.identifier,dataId=_a.dataIdentifier;if(!variables.length){return null;}var className="server-variables";var rows=variables.map(function(variable){return {key:variable.key,accessors:serverVariablesAccessors,element:variable};});var identifier=bemClasses.identifier([{id:id,toKebabCase:false},'url-variables']);var dataIdentifier=bemClasses.identifier([{id:dataId,toKebabCase:false},'url-variables']);return React__default['default'].createElement("section",{className:bemClasses.element(className),id:identifier,"data-asyncapi-id":dataIdentifier},React__default['default'].createElement("header",{className:bemClasses.element(className+"-header")},React__default['default'].createElement("h4",null,URL_VARIABLES_TEXT)),React__default['default'].createElement("div",{className:bemClasses.element(className+"-table")},React__default['default'].createElement(Table,{header:{columns:SERVER_COLUMN_NAMES},rows:rows})));};var ServerSecurityFlowScopes=function(_a){var scopes=_a.scopes;return React__default['default'].createElement("ul",{className:bemClasses.element("server-security-scopes-list")},Object.entries(scopes).map(function(_a){var name=_a[0],description=_a[1];return React__default['default'].createElement("li",{className:bemClasses.element("server-security-scopes-list-item"),title:description,key:name},React__default['default'].createElement("span",{className:bemClasses.element("server-security-scope")},name));}));};var ServerSecurityFlow=function(_a){var name=_a.name,flow=_a.flow;return React__default['default'].createElement("div",{className:bemClasses.element("server-security-flow")},React__default['default'].createElement("ul",{className:bemClasses.element("server-security-flow-list")},React__default['default'].createElement("li",{className:bemClasses.element("server-security-flow-list-item")},React__default['default'].createElement("strong",null,FLOWS_TEXTS.FLOW),":",React__default['default'].createElement("span",null,OAuthFlowsType[name])),flow.authorizationUrl&&React__default['default'].createElement("li",{className:bemClasses.element("server-security-flow-list-item")},React__default['default'].createElement("strong",null,FLOWS_TEXTS.AUTHORIZATION_URL,":"),React__default['default'].createElement(Href,{href:flow.authorizationUrl},flow.authorizationUrl)),flow.tokenUrl&&React__default['default'].createElement("li",{className:bemClasses.element("server-security-flow-list-item")},React__default['default'].createElement("strong",null,FLOWS_TEXTS.TOKEN_URL),":",React__default['default'].createElement(Href,{href:flow.tokenUrl},flow.tokenUrl)),flow.refreshUrl&&React__default['default'].createElement("li",{className:bemClasses.element("server-security-flow-list-item")},React__default['default'].createElement("strong",null,FLOWS_TEXTS.REFRESH_URL),":",React__default['default'].createElement(Href,{href:flow.refreshUrl},flow.refreshUrl)),flow.scopes&&React__default['default'].createElement("li",{className:bemClasses.element("server-security-flow-list-item")},React__default['default'].createElement("strong",null,FLOWS_TEXTS.SCOPES),":",React__default['default'].createElement(ServerSecurityFlowScopes,{scopes:flow.scopes}))));};var ServerSecurityFlows=function(_a){var flows=_a.flows;if(!Object.keys(flows).length){return null;}var sortedFlows=Object.keys(flows).sort().reduce(function(accumulator,currentValue){accumulator[currentValue]=flows[currentValue];return accumulator;},{});var nodes=Object.entries(sortedFlows).map(function(_a){var flowName=_a[0],flow=_a[1];return React__default['default'].createElement("li",{key:flowName,className:bemClasses.element("server-security-flows-list-item")},React__default['default'].createElement(ServerSecurityFlow,{name:flowName,flow:flow}));});var nestedTableCellClassName=bemClasses.modifier("nested","table-cell");var flowsTableCellClassName=bemClasses.element("server-security-flows-table-cell");var className=bemClasses.concatenate([nestedTableCellClassName,flowsTableCellClassName]);var element=React__default['default'].createElement("td",{className:className,colSpan:6},React__default['default'].createElement("ul",{className:bemClasses.element("server-security-flows-list")},nodes));return React__default['default'].createElement(TableRow,{element:element,nested:true});};var securitySchemeAccessors=[function(el){return React__default['default'].createElement("span",null,el.type);},function(el){return React__default['default'].createElement("span",null,el.bearerFormat);},function(el){return React__default['default'].createElement("span",null,el.in);},function(el){return React__default['default'].createElement("span",null,el.scheme);},function(el){return React__default['default'].createElement("span",null,el.name);},function(el){return el.description&&React__default['default'].createElement(Markdown,null,el.description);}];var ServerSecurityItemComponent=function(_a){var securityScheme=_a.securityScheme;return React__default['default'].createElement(React__default['default'].Fragment,null,React__default['default'].createElement(TableRow,{element:securityScheme,accessors:securitySchemeAccessors,className:bemClasses.element("server-security-"+securityScheme.type)}),securityScheme.flows&&React__default['default'].createElement(ServerSecurityFlows,{flows:securityScheme.flows}));};var ServerSecurityComponent=function(_a){var requirements=_a.requirements,schemes=_a.schemes,id=_a.identifier,dataId=_a.dataIdentifier;var identifier=bemClasses.identifier([{id:id,toKebabCase:false},'security']);var dataIdentifier=bemClasses.identifier([{id:dataId,toKebabCase:false},'security']);var className="server-security";var rows=requirements.map(function(requirement){var def=schemes[Object.keys(requirement)[0]];if(!def){return null;}return React__default['default'].createElement(ServerSecurityItemComponent,{securityScheme:def,key:def.type});}).filter(Boolean);if(!rows||!rows.length){return null;}return React__default['default'].createElement("section",{className:bemClasses.element(className),"data-asyncapi-id":dataIdentifier,id:identifier},React__default['default'].createElement("header",{className:bemClasses.element(className+"-header")},React__default['default'].createElement("h4",null,SECURITY_TEXT)),React__default['default'].createElement("div",{className:bemClasses.element(className+"-table")},React__default['default'].createElement(Table,{header:{columns:SERVER_SECURITY_COLUMN_NAMES}},rows)));};var ServerComponent=function(_a){var server=_a.server,stage=_a.stage,securitySchemes=_a.securitySchemes,_b=_a.toggleExpand,toggleExpand=_b===void 0?false:_b;var className=ITEM_LABELS.SERVER;var variables=server.variables?Object.entries(server.variables).map(function(_a){var key=_a[0],variable=_a[1];return {key:key,content:variable};}):[];var header=React__default['default'].createElement(React__default['default'].Fragment,null,React__default['default'].createElement("h4",null,React__default['default'].createElement("span",{className:bemClasses.concatenate([bemClasses.element(className+"-header-protocol"),bemClasses.element("badge")])},""+server.protocol+(server.protocolVersion?" "+server.protocolVersion:"")),React__default['default'].createElement("span",{className:bemClasses.concatenate([bemClasses.element(className+"-header-stage"),bemClasses.element("badge")])},stage),React__default['default'].createElement("span",null,server.url)));var identifier=bemClasses.identifier([CONTAINER_LABELS.SERVERS,server.url]);var dataIdentifier=bemClasses.identifier([CONTAINER_LABELS.SERVERS,removeSpecialChars(server.url)]);var content=React__default['default'].createElement(React__default['default'].Fragment,null,server.description&&React__default['default'].createElement("div",{className:bemClasses.element(className+"-description")},React__default['default'].createElement(Markdown,null,server.description)),React__default['default'].createElement(ServerVariablesComponent,{variables:variables,identifier:identifier,dataIdentifier:dataIdentifier}),server.security&&securitySchemes&&React__default['default'].createElement(ServerSecurityComponent,{requirements:server.security,schemes:securitySchemes,identifier:identifier,dataIdentifier:dataIdentifier}));var body=(server.description||server.security||server.variables)&&content;return React__default['default'].createElement("section",{className:bemClasses.element(className),id:identifier,"data-asyncapi-id":dataIdentifier},React__default['default'].createElement(Toggle,{header:header,className:className,expanded:toggleExpand,label:ITEM_LABELS.SERVER,itemName:server.url,toggleInState:!!body},body));};var ServersComponent=function(_a){var servers=_a.servers,securitySchemes=_a.securitySchemes,expand=_a.expand;if(!servers){return null;}var className=CONTAINER_LABELS.SERVERS;var header=React__default['default'].createElement("h2",null,SERVERS);var content=React__default['default'].createElement("ul",{className:bemClasses.element(className+"-list")},Object.entries(servers).map(function(_a){var stage=_a[0],server=_a[1];return React__default['default'].createElement("li",{key:stage,className:bemClasses.element(className+"-list-item")},React__default['default'].createElement(ServerComponent,{key:""+server.url+stage,server:server,stage:stage,securitySchemes:securitySchemes,toggleExpand:expand&&expand.elements}));}));return React__default['default'].createElement("section",{className:bemClasses.element(className),id:bemClasses.identifier([className])},React__default['default'].createElement(Toggle,{header:header,className:className,expanded:expand&&expand.root,label:CONTAINER_LABELS.SERVERS,toggleInState:true},content));};var SchemasComponent=function(_a){var schemas=_a.schemas,expand=_a.expand;if(!schemas){return null;}var className=CONTAINER_LABELS.SCHEMAS;var header=React__default['default'].createElement("h2",null,SCHEMAS_TEXT);var content=React__default['default'].createElement("ul",{className:bemClasses.element(className+"-list")},Object.entries(schemas).map(function(_a){var key=_a[0],schema=_a[1];return React__default['default'].createElement("li",{key:key,className:bemClasses.element(className+"-list-item")},React__default['default'].createElement(SchemaComponent,{name:key,schema:schema,toggle:true,toggleExpand:expand&&expand.elements}));}));return React__default['default'].createElement("section",{className:bemClasses.element(className),id:bemClasses.identifier([className])},React__default['default'].createElement(Toggle,{header:header,className:className,expanded:expand&&expand.root,label:CONTAINER_LABELS.SCHEMAS,toggleInState:true},content));};var __extends=function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b;}||function(d,b){for(var p in b)if(Object.prototype.hasOwnProperty.call(b,p))d[p]=b[p];};return extendStatics(d,b);};return function(d,b){extendStatics(d,b);function __(){this.constructor=d;}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __());};}();var __assign=function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1] 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply$1(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone$1(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply$1(hasOwnProperty$2, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n var text$2 = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.1.1';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone$1(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text$2)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify. */\n var RETURN_DOM_IMPORT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone$1(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone$1(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone$1(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text$2)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone$1(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone$1(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n node.parentNode.removeChild(node);\n } catch (_) {\n node.outerHTML = emptyHTML;\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /* Use the DOMParser API by default, fallback later if needs be */\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, 'text/html');\n } catch (_) {}\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createHTMLDocument('');\n var _doc = doc,\n body = _doc.body;\n\n body.parentNode.removeChild(body.parentNode.firstElementChild);\n body.outerHTML = dirtyPayload;\n }\n\n if (dirty && leadingWhitespace) {\n doc.body.insertBefore(document.createTextNode(leadingWhitespace), doc.body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n return NodeFilter.FILTER_ACCEPT;\n }, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = stringToLowerCase(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Take care of an mXSS pattern using p, br inside svg, math */\n if ((tagName === 'svg' || tagName === 'math') && currentNode.querySelectorAll('p, br').length !== 0) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[!/\\w]/g, currentNode.innerHTML) && regExpTest(/<[!/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && typeof currentNode.insertAdjacentHTML === 'function') {\n try {\n var htmlToInsert = currentNode.innerHTML;\n currentNode.insertAdjacentHTML('AfterEnd', trustedTypesPolicy ? trustedTypesPolicy.createHTML(htmlToInsert) : htmlToInsert);\n } catch (_) {}\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove in case a noscript/noembed XSS is suspected */\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = stringToLowerCase(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = currentNode.nodeName.toLowerCase();\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n if (!dirty) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) ; else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = stringToLowerCase(tag);\n var lcName = stringToLowerCase(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n var Aacute = \"Á\";\n var aacute = \"á\";\n var Abreve = \"Ă\";\n var abreve = \"ă\";\n var ac = \"∾\";\n var acd = \"∿\";\n var acE = \"∾̳\";\n var Acirc = \"Â\";\n var acirc = \"â\";\n var acute = \"´\";\n var Acy = \"А\";\n var acy = \"а\";\n var AElig = \"Æ\";\n var aelig = \"æ\";\n var af = \"⁡\";\n var Afr = \"𝔄\";\n var afr = \"𝔞\";\n var Agrave = \"À\";\n var agrave = \"à\";\n var alefsym = \"ℵ\";\n var aleph = \"ℵ\";\n var Alpha = \"Α\";\n var alpha = \"α\";\n var Amacr = \"Ā\";\n var amacr = \"ā\";\n var amalg = \"⨿\";\n var amp = \"&\";\n var AMP = \"&\";\n var andand = \"⩕\";\n var And = \"⩓\";\n var and = \"∧\";\n var andd = \"⩜\";\n var andslope = \"⩘\";\n var andv = \"⩚\";\n var ang = \"∠\";\n var ange = \"⦤\";\n var angle = \"∠\";\n var angmsdaa = \"⦨\";\n var angmsdab = \"⦩\";\n var angmsdac = \"⦪\";\n var angmsdad = \"⦫\";\n var angmsdae = \"⦬\";\n var angmsdaf = \"⦭\";\n var angmsdag = \"⦮\";\n var angmsdah = \"⦯\";\n var angmsd = \"∡\";\n var angrt = \"∟\";\n var angrtvb = \"⊾\";\n var angrtvbd = \"⦝\";\n var angsph = \"∢\";\n var angst = \"Å\";\n var angzarr = \"⍼\";\n var Aogon = \"Ą\";\n var aogon = \"ą\";\n var Aopf = \"𝔸\";\n var aopf = \"𝕒\";\n var apacir = \"⩯\";\n var ap = \"≈\";\n var apE = \"⩰\";\n var ape = \"≊\";\n var apid = \"≋\";\n var apos = \"'\";\n var ApplyFunction = \"⁡\";\n var approx = \"≈\";\n var approxeq = \"≊\";\n var Aring = \"Å\";\n var aring = \"å\";\n var Ascr = \"𝒜\";\n var ascr = \"𝒶\";\n var Assign = \"≔\";\n var ast = \"*\";\n var asymp = \"≈\";\n var asympeq = \"≍\";\n var Atilde = \"Ã\";\n var atilde = \"ã\";\n var Auml = \"Ä\";\n var auml = \"ä\";\n var awconint = \"∳\";\n var awint = \"⨑\";\n var backcong = \"≌\";\n var backepsilon = \"϶\";\n var backprime = \"‵\";\n var backsim = \"∽\";\n var backsimeq = \"⋍\";\n var Backslash = \"∖\";\n var Barv = \"⫧\";\n var barvee = \"⊽\";\n var barwed = \"⌅\";\n var Barwed = \"⌆\";\n var barwedge = \"⌅\";\n var bbrk = \"⎵\";\n var bbrktbrk = \"⎶\";\n var bcong = \"≌\";\n var Bcy = \"Б\";\n var bcy = \"б\";\n var bdquo = \"„\";\n var becaus = \"∵\";\n var because = \"∵\";\n var Because = \"∵\";\n var bemptyv = \"⦰\";\n var bepsi = \"϶\";\n var bernou = \"ℬ\";\n var Bernoullis = \"ℬ\";\n var Beta = \"Β\";\n var beta = \"β\";\n var beth = \"ℶ\";\n var between = \"≬\";\n var Bfr = \"𝔅\";\n var bfr = \"𝔟\";\n var bigcap = \"⋂\";\n var bigcirc = \"◯\";\n var bigcup = \"⋃\";\n var bigodot = \"⨀\";\n var bigoplus = \"⨁\";\n var bigotimes = \"⨂\";\n var bigsqcup = \"⨆\";\n var bigstar = \"★\";\n var bigtriangledown = \"▽\";\n var bigtriangleup = \"△\";\n var biguplus = \"⨄\";\n var bigvee = \"⋁\";\n var bigwedge = \"⋀\";\n var bkarow = \"⤍\";\n var blacklozenge = \"⧫\";\n var blacksquare = \"▪\";\n var blacktriangle = \"▴\";\n var blacktriangledown = \"▾\";\n var blacktriangleleft = \"◂\";\n var blacktriangleright = \"▸\";\n var blank = \"␣\";\n var blk12 = \"▒\";\n var blk14 = \"░\";\n var blk34 = \"▓\";\n var block$1 = \"█\";\n var bne = \"=⃥\";\n var bnequiv = \"≡⃥\";\n var bNot = \"⫭\";\n var bnot = \"⌐\";\n var Bopf = \"𝔹\";\n var bopf = \"𝕓\";\n var bot = \"⊥\";\n var bottom = \"⊥\";\n var bowtie = \"⋈\";\n var boxbox = \"⧉\";\n var boxdl = \"┐\";\n var boxdL = \"╕\";\n var boxDl = \"╖\";\n var boxDL = \"╗\";\n var boxdr = \"┌\";\n var boxdR = \"╒\";\n var boxDr = \"╓\";\n var boxDR = \"╔\";\n var boxh = \"─\";\n var boxH = \"═\";\n var boxhd = \"┬\";\n var boxHd = \"╤\";\n var boxhD = \"╥\";\n var boxHD = \"╦\";\n var boxhu = \"┴\";\n var boxHu = \"╧\";\n var boxhU = \"╨\";\n var boxHU = \"╩\";\n var boxminus = \"⊟\";\n var boxplus = \"⊞\";\n var boxtimes = \"⊠\";\n var boxul = \"┘\";\n var boxuL = \"╛\";\n var boxUl = \"╜\";\n var boxUL = \"╝\";\n var boxur = \"└\";\n var boxuR = \"╘\";\n var boxUr = \"╙\";\n var boxUR = \"╚\";\n var boxv = \"│\";\n var boxV = \"║\";\n var boxvh = \"┼\";\n var boxvH = \"╪\";\n var boxVh = \"╫\";\n var boxVH = \"╬\";\n var boxvl = \"┤\";\n var boxvL = \"╡\";\n var boxVl = \"╢\";\n var boxVL = \"╣\";\n var boxvr = \"├\";\n var boxvR = \"╞\";\n var boxVr = \"╟\";\n var boxVR = \"╠\";\n var bprime = \"‵\";\n var breve = \"˘\";\n var Breve = \"˘\";\n var brvbar = \"¦\";\n var bscr = \"𝒷\";\n var Bscr = \"ℬ\";\n var bsemi = \"⁏\";\n var bsim = \"∽\";\n var bsime = \"⋍\";\n var bsolb = \"⧅\";\n var bsol = \"\\\\\";\n var bsolhsub = \"⟈\";\n var bull = \"•\";\n var bullet = \"•\";\n var bump = \"≎\";\n var bumpE = \"⪮\";\n var bumpe = \"≏\";\n var Bumpeq = \"≎\";\n var bumpeq = \"≏\";\n var Cacute = \"Ć\";\n var cacute = \"ć\";\n var capand = \"⩄\";\n var capbrcup = \"⩉\";\n var capcap = \"⩋\";\n var cap = \"∩\";\n var Cap = \"⋒\";\n var capcup = \"⩇\";\n var capdot = \"⩀\";\n var CapitalDifferentialD = \"ⅅ\";\n var caps = \"∩︀\";\n var caret = \"⁁\";\n var caron = \"ˇ\";\n var Cayleys = \"ℭ\";\n var ccaps = \"⩍\";\n var Ccaron = \"Č\";\n var ccaron = \"č\";\n var Ccedil = \"Ç\";\n var ccedil = \"ç\";\n var Ccirc = \"Ĉ\";\n var ccirc = \"ĉ\";\n var Cconint = \"∰\";\n var ccups = \"⩌\";\n var ccupssm = \"⩐\";\n var Cdot = \"Ċ\";\n var cdot = \"ċ\";\n var cedil = \"¸\";\n var Cedilla = \"¸\";\n var cemptyv = \"⦲\";\n var cent = \"¢\";\n var centerdot = \"·\";\n var CenterDot = \"·\";\n var cfr = \"𝔠\";\n var Cfr = \"ℭ\";\n var CHcy = \"Ч\";\n var chcy = \"ч\";\n var check = \"✓\";\n var checkmark = \"✓\";\n var Chi = \"Χ\";\n var chi = \"χ\";\n var circ = \"ˆ\";\n var circeq = \"≗\";\n var circlearrowleft = \"↺\";\n var circlearrowright = \"↻\";\n var circledast = \"⊛\";\n var circledcirc = \"⊚\";\n var circleddash = \"⊝\";\n var CircleDot = \"⊙\";\n var circledR = \"®\";\n var circledS = \"Ⓢ\";\n var CircleMinus = \"⊖\";\n var CirclePlus = \"⊕\";\n var CircleTimes = \"⊗\";\n var cir = \"○\";\n var cirE = \"⧃\";\n var cire = \"≗\";\n var cirfnint = \"⨐\";\n var cirmid = \"⫯\";\n var cirscir = \"⧂\";\n var ClockwiseContourIntegral = \"∲\";\n var CloseCurlyDoubleQuote = \"”\";\n var CloseCurlyQuote = \"’\";\n var clubs = \"♣\";\n var clubsuit = \"♣\";\n var colon = \":\";\n var Colon = \"∷\";\n var Colone = \"⩴\";\n var colone = \"≔\";\n var coloneq = \"≔\";\n var comma = \",\";\n var commat = \"@\";\n var comp = \"∁\";\n var compfn = \"∘\";\n var complement = \"∁\";\n var complexes = \"ℂ\";\n var cong = \"≅\";\n var congdot = \"⩭\";\n var Congruent = \"≡\";\n var conint = \"∮\";\n var Conint = \"∯\";\n var ContourIntegral = \"∮\";\n var copf = \"𝕔\";\n var Copf = \"ℂ\";\n var coprod = \"∐\";\n var Coproduct = \"∐\";\n var copy$1 = \"©\";\n var COPY$1 = \"©\";\n var copysr = \"℗\";\n var CounterClockwiseContourIntegral = \"∳\";\n var crarr = \"↵\";\n var cross = \"✗\";\n var Cross = \"⨯\";\n var Cscr = \"𝒞\";\n var cscr = \"𝒸\";\n var csub = \"⫏\";\n var csube = \"⫑\";\n var csup = \"⫐\";\n var csupe = \"⫒\";\n var ctdot = \"⋯\";\n var cudarrl = \"⤸\";\n var cudarrr = \"⤵\";\n var cuepr = \"⋞\";\n var cuesc = \"⋟\";\n var cularr = \"↶\";\n var cularrp = \"⤽\";\n var cupbrcap = \"⩈\";\n var cupcap = \"⩆\";\n var CupCap = \"≍\";\n var cup = \"∪\";\n var Cup = \"⋓\";\n var cupcup = \"⩊\";\n var cupdot = \"⊍\";\n var cupor = \"⩅\";\n var cups = \"∪︀\";\n var curarr = \"↷\";\n var curarrm = \"⤼\";\n var curlyeqprec = \"⋞\";\n var curlyeqsucc = \"⋟\";\n var curlyvee = \"⋎\";\n var curlywedge = \"⋏\";\n var curren = \"¤\";\n var curvearrowleft = \"↶\";\n var curvearrowright = \"↷\";\n var cuvee = \"⋎\";\n var cuwed = \"⋏\";\n var cwconint = \"∲\";\n var cwint = \"∱\";\n var cylcty = \"⌭\";\n var dagger = \"†\";\n var Dagger = \"‡\";\n var daleth = \"ℸ\";\n var darr = \"↓\";\n var Darr = \"↡\";\n var dArr = \"⇓\";\n var dash = \"‐\";\n var Dashv = \"⫤\";\n var dashv = \"⊣\";\n var dbkarow = \"⤏\";\n var dblac = \"˝\";\n var Dcaron = \"Ď\";\n var dcaron = \"ď\";\n var Dcy = \"Д\";\n var dcy = \"д\";\n var ddagger = \"‡\";\n var ddarr = \"⇊\";\n var DD = \"ⅅ\";\n var dd = \"ⅆ\";\n var DDotrahd = \"⤑\";\n var ddotseq = \"⩷\";\n var deg = \"°\";\n var Del = \"∇\";\n var Delta = \"Δ\";\n var delta = \"δ\";\n var demptyv = \"⦱\";\n var dfisht = \"⥿\";\n var Dfr = \"𝔇\";\n var dfr = \"𝔡\";\n var dHar = \"⥥\";\n var dharl = \"⇃\";\n var dharr = \"⇂\";\n var DiacriticalAcute = \"´\";\n var DiacriticalDot = \"˙\";\n var DiacriticalDoubleAcute = \"˝\";\n var DiacriticalGrave = \"`\";\n var DiacriticalTilde = \"˜\";\n var diam = \"⋄\";\n var diamond = \"⋄\";\n var Diamond = \"⋄\";\n var diamondsuit = \"♦\";\n var diams = \"♦\";\n var die = \"¨\";\n var DifferentialD = \"ⅆ\";\n var digamma = \"ϝ\";\n var disin = \"⋲\";\n var div = \"÷\";\n var divide = \"÷\";\n var divideontimes = \"⋇\";\n var divonx = \"⋇\";\n var DJcy = \"Ђ\";\n var djcy = \"ђ\";\n var dlcorn = \"⌞\";\n var dlcrop = \"⌍\";\n var dollar = \"$\";\n var Dopf = \"𝔻\";\n var dopf = \"𝕕\";\n var Dot = \"¨\";\n var dot = \"˙\";\n var DotDot = \"⃜\";\n var doteq = \"≐\";\n var doteqdot = \"≑\";\n var DotEqual = \"≐\";\n var dotminus = \"∸\";\n var dotplus = \"∔\";\n var dotsquare = \"⊡\";\n var doublebarwedge = \"⌆\";\n var DoubleContourIntegral = \"∯\";\n var DoubleDot = \"¨\";\n var DoubleDownArrow = \"⇓\";\n var DoubleLeftArrow = \"⇐\";\n var DoubleLeftRightArrow = \"⇔\";\n var DoubleLeftTee = \"⫤\";\n var DoubleLongLeftArrow = \"⟸\";\n var DoubleLongLeftRightArrow = \"⟺\";\n var DoubleLongRightArrow = \"⟹\";\n var DoubleRightArrow = \"⇒\";\n var DoubleRightTee = \"⊨\";\n var DoubleUpArrow = \"⇑\";\n var DoubleUpDownArrow = \"⇕\";\n var DoubleVerticalBar = \"∥\";\n var DownArrowBar = \"⤓\";\n var downarrow = \"↓\";\n var DownArrow = \"↓\";\n var Downarrow = \"⇓\";\n var DownArrowUpArrow = \"⇵\";\n var DownBreve = \"̑\";\n var downdownarrows = \"⇊\";\n var downharpoonleft = \"⇃\";\n var downharpoonright = \"⇂\";\n var DownLeftRightVector = \"⥐\";\n var DownLeftTeeVector = \"⥞\";\n var DownLeftVectorBar = \"⥖\";\n var DownLeftVector = \"↽\";\n var DownRightTeeVector = \"⥟\";\n var DownRightVectorBar = \"⥗\";\n var DownRightVector = \"⇁\";\n var DownTeeArrow = \"↧\";\n var DownTee = \"⊤\";\n var drbkarow = \"⤐\";\n var drcorn = \"⌟\";\n var drcrop = \"⌌\";\n var Dscr = \"𝒟\";\n var dscr = \"𝒹\";\n var DScy = \"Ѕ\";\n var dscy = \"ѕ\";\n var dsol = \"⧶\";\n var Dstrok = \"Đ\";\n var dstrok = \"đ\";\n var dtdot = \"⋱\";\n var dtri = \"▿\";\n var dtrif = \"▾\";\n var duarr = \"⇵\";\n var duhar = \"⥯\";\n var dwangle = \"⦦\";\n var DZcy = \"Џ\";\n var dzcy = \"џ\";\n var dzigrarr = \"⟿\";\n var Eacute = \"É\";\n var eacute = \"é\";\n var easter = \"⩮\";\n var Ecaron = \"Ě\";\n var ecaron = \"ě\";\n var Ecirc = \"Ê\";\n var ecirc = \"ê\";\n var ecir = \"≖\";\n var ecolon = \"≕\";\n var Ecy = \"Э\";\n var ecy = \"э\";\n var eDDot = \"⩷\";\n var Edot = \"Ė\";\n var edot = \"ė\";\n var eDot = \"≑\";\n var ee = \"ⅇ\";\n var efDot = \"≒\";\n var Efr = \"𝔈\";\n var efr = \"𝔢\";\n var eg = \"⪚\";\n var Egrave = \"È\";\n var egrave = \"è\";\n var egs = \"⪖\";\n var egsdot = \"⪘\";\n var el = \"⪙\";\n var Element = \"∈\";\n var elinters = \"⏧\";\n var ell = \"ℓ\";\n var els = \"⪕\";\n var elsdot = \"⪗\";\n var Emacr = \"Ē\";\n var emacr = \"ē\";\n var empty$2 = \"∅\";\n var emptyset = \"∅\";\n var EmptySmallSquare = \"◻\";\n var emptyv = \"∅\";\n var EmptyVerySmallSquare = \"▫\";\n var emsp13 = \" \";\n var emsp14 = \" \";\n var emsp = \" \";\n var ENG = \"Ŋ\";\n var eng = \"ŋ\";\n var ensp = \" \";\n var Eogon = \"Ę\";\n var eogon = \"ę\";\n var Eopf = \"𝔼\";\n var eopf = \"𝕖\";\n var epar = \"⋕\";\n var eparsl = \"⧣\";\n var eplus = \"⩱\";\n var epsi = \"ε\";\n var Epsilon = \"Ε\";\n var epsilon = \"ε\";\n var epsiv = \"ϵ\";\n var eqcirc = \"≖\";\n var eqcolon = \"≕\";\n var eqsim = \"≂\";\n var eqslantgtr = \"⪖\";\n var eqslantless = \"⪕\";\n var Equal = \"⩵\";\n var equals = \"=\";\n var EqualTilde = \"≂\";\n var equest = \"≟\";\n var Equilibrium = \"⇌\";\n var equiv = \"≡\";\n var equivDD = \"⩸\";\n var eqvparsl = \"⧥\";\n var erarr = \"⥱\";\n var erDot = \"≓\";\n var escr = \"ℯ\";\n var Escr = \"ℰ\";\n var esdot = \"≐\";\n var Esim = \"⩳\";\n var esim = \"≂\";\n var Eta = \"Η\";\n var eta = \"η\";\n var ETH = \"Ð\";\n var eth = \"ð\";\n var Euml = \"Ë\";\n var euml = \"ë\";\n var euro = \"€\";\n var excl = \"!\";\n var exist = \"∃\";\n var Exists = \"∃\";\n var expectation = \"ℰ\";\n var exponentiale = \"ⅇ\";\n var ExponentialE = \"ⅇ\";\n var fallingdotseq = \"≒\";\n var Fcy = \"Ф\";\n var fcy = \"ф\";\n var female = \"♀\";\n var ffilig = \"ffi\";\n var fflig = \"ff\";\n var ffllig = \"ffl\";\n var Ffr = \"𝔉\";\n var ffr = \"𝔣\";\n var filig = \"fi\";\n var FilledSmallSquare = \"◼\";\n var FilledVerySmallSquare = \"▪\";\n var fjlig = \"fj\";\n var flat = \"♭\";\n var fllig = \"fl\";\n var fltns = \"▱\";\n var fnof = \"ƒ\";\n var Fopf = \"𝔽\";\n var fopf = \"𝕗\";\n var forall = \"∀\";\n var ForAll = \"∀\";\n var fork = \"⋔\";\n var forkv = \"⫙\";\n var Fouriertrf = \"ℱ\";\n var fpartint = \"⨍\";\n var frac12 = \"½\";\n var frac13 = \"⅓\";\n var frac14 = \"¼\";\n var frac15 = \"⅕\";\n var frac16 = \"⅙\";\n var frac18 = \"⅛\";\n var frac23 = \"⅔\";\n var frac25 = \"⅖\";\n var frac34 = \"¾\";\n var frac35 = \"⅗\";\n var frac38 = \"⅜\";\n var frac45 = \"⅘\";\n var frac56 = \"⅚\";\n var frac58 = \"⅝\";\n var frac78 = \"⅞\";\n var frasl = \"⁄\";\n var frown = \"⌢\";\n var fscr = \"𝒻\";\n var Fscr = \"ℱ\";\n var gacute = \"ǵ\";\n var Gamma = \"Γ\";\n var gamma = \"γ\";\n var Gammad = \"Ϝ\";\n var gammad = \"ϝ\";\n var gap = \"⪆\";\n var Gbreve = \"Ğ\";\n var gbreve = \"ğ\";\n var Gcedil = \"Ģ\";\n var Gcirc = \"Ĝ\";\n var gcirc = \"ĝ\";\n var Gcy = \"Г\";\n var gcy = \"г\";\n var Gdot = \"Ġ\";\n var gdot = \"ġ\";\n var ge = \"≥\";\n var gE = \"≧\";\n var gEl = \"⪌\";\n var gel = \"⋛\";\n var geq = \"≥\";\n var geqq = \"≧\";\n var geqslant = \"⩾\";\n var gescc = \"⪩\";\n var ges = \"⩾\";\n var gesdot = \"⪀\";\n var gesdoto = \"⪂\";\n var gesdotol = \"⪄\";\n var gesl = \"⋛︀\";\n var gesles = \"⪔\";\n var Gfr = \"𝔊\";\n var gfr = \"𝔤\";\n var gg = \"≫\";\n var Gg = \"⋙\";\n var ggg = \"⋙\";\n var gimel = \"ℷ\";\n var GJcy = \"Ѓ\";\n var gjcy = \"ѓ\";\n var gla = \"⪥\";\n var gl = \"≷\";\n var glE = \"⪒\";\n var glj = \"⪤\";\n var gnap = \"⪊\";\n var gnapprox = \"⪊\";\n var gne = \"⪈\";\n var gnE = \"≩\";\n var gneq = \"⪈\";\n var gneqq = \"≩\";\n var gnsim = \"⋧\";\n var Gopf = \"𝔾\";\n var gopf = \"𝕘\";\n var grave = \"`\";\n var GreaterEqual = \"≥\";\n var GreaterEqualLess = \"⋛\";\n var GreaterFullEqual = \"≧\";\n var GreaterGreater = \"⪢\";\n var GreaterLess = \"≷\";\n var GreaterSlantEqual = \"⩾\";\n var GreaterTilde = \"≳\";\n var Gscr = \"𝒢\";\n var gscr = \"ℊ\";\n var gsim = \"≳\";\n var gsime = \"⪎\";\n var gsiml = \"⪐\";\n var gtcc = \"⪧\";\n var gtcir = \"⩺\";\n var gt = \">\";\n var GT = \">\";\n var Gt = \"≫\";\n var gtdot = \"⋗\";\n var gtlPar = \"⦕\";\n var gtquest = \"⩼\";\n var gtrapprox = \"⪆\";\n var gtrarr = \"⥸\";\n var gtrdot = \"⋗\";\n var gtreqless = \"⋛\";\n var gtreqqless = \"⪌\";\n var gtrless = \"≷\";\n var gtrsim = \"≳\";\n var gvertneqq = \"≩︀\";\n var gvnE = \"≩︀\";\n var Hacek = \"ˇ\";\n var hairsp = \" \";\n var half = \"½\";\n var hamilt = \"ℋ\";\n var HARDcy = \"Ъ\";\n var hardcy = \"ъ\";\n var harrcir = \"⥈\";\n var harr = \"↔\";\n var hArr = \"⇔\";\n var harrw = \"↭\";\n var Hat = \"^\";\n var hbar = \"ℏ\";\n var Hcirc = \"Ĥ\";\n var hcirc = \"ĥ\";\n var hearts = \"♥\";\n var heartsuit = \"♥\";\n var hellip = \"…\";\n var hercon = \"⊹\";\n var hfr = \"𝔥\";\n var Hfr = \"ℌ\";\n var HilbertSpace = \"ℋ\";\n var hksearow = \"⤥\";\n var hkswarow = \"⤦\";\n var hoarr = \"⇿\";\n var homtht = \"∻\";\n var hookleftarrow = \"↩\";\n var hookrightarrow = \"↪\";\n var hopf = \"𝕙\";\n var Hopf = \"ℍ\";\n var horbar = \"―\";\n var HorizontalLine = \"─\";\n var hscr = \"𝒽\";\n var Hscr = \"ℋ\";\n var hslash = \"ℏ\";\n var Hstrok = \"Ħ\";\n var hstrok = \"ħ\";\n var HumpDownHump = \"≎\";\n var HumpEqual = \"≏\";\n var hybull = \"⁃\";\n var hyphen = \"‐\";\n var Iacute = \"Í\";\n var iacute = \"í\";\n var ic = \"⁣\";\n var Icirc = \"Î\";\n var icirc = \"î\";\n var Icy = \"И\";\n var icy = \"и\";\n var Idot = \"İ\";\n var IEcy = \"Е\";\n var iecy = \"е\";\n var iexcl = \"¡\";\n var iff = \"⇔\";\n var ifr = \"𝔦\";\n var Ifr = \"ℑ\";\n var Igrave = \"Ì\";\n var igrave = \"ì\";\n var ii = \"ⅈ\";\n var iiiint = \"⨌\";\n var iiint = \"∭\";\n var iinfin = \"⧜\";\n var iiota = \"℩\";\n var IJlig = \"IJ\";\n var ijlig = \"ij\";\n var Imacr = \"Ī\";\n var imacr = \"ī\";\n var image$1 = \"ℑ\";\n var ImaginaryI = \"ⅈ\";\n var imagline = \"ℐ\";\n var imagpart = \"ℑ\";\n var imath = \"ı\";\n var Im = \"ℑ\";\n var imof = \"⊷\";\n var imped = \"Ƶ\";\n var Implies = \"⇒\";\n var incare = \"℅\";\n var infin = \"∞\";\n var infintie = \"⧝\";\n var inodot = \"ı\";\n var intcal = \"⊺\";\n var int$2 = \"∫\";\n var Int = \"∬\";\n var integers = \"ℤ\";\n var Integral = \"∫\";\n var intercal = \"⊺\";\n var Intersection = \"⋂\";\n var intlarhk = \"⨗\";\n var intprod = \"⨼\";\n var InvisibleComma = \"⁣\";\n var InvisibleTimes = \"⁢\";\n var IOcy = \"Ё\";\n var iocy = \"ё\";\n var Iogon = \"Į\";\n var iogon = \"į\";\n var Iopf = \"𝕀\";\n var iopf = \"𝕚\";\n var Iota = \"Ι\";\n var iota = \"ι\";\n var iprod = \"⨼\";\n var iquest = \"¿\";\n var iscr = \"𝒾\";\n var Iscr = \"ℐ\";\n var isin = \"∈\";\n var isindot = \"⋵\";\n var isinE = \"⋹\";\n var isins = \"⋴\";\n var isinsv = \"⋳\";\n var isinv = \"∈\";\n var it = \"⁢\";\n var Itilde = \"Ĩ\";\n var itilde = \"ĩ\";\n var Iukcy = \"І\";\n var iukcy = \"і\";\n var Iuml = \"Ï\";\n var iuml = \"ï\";\n var Jcirc = \"Ĵ\";\n var jcirc = \"ĵ\";\n var Jcy = \"Й\";\n var jcy = \"й\";\n var Jfr = \"𝔍\";\n var jfr = \"𝔧\";\n var jmath = \"ȷ\";\n var Jopf = \"𝕁\";\n var jopf = \"𝕛\";\n var Jscr = \"𝒥\";\n var jscr = \"𝒿\";\n var Jsercy = \"Ј\";\n var jsercy = \"ј\";\n var Jukcy = \"Є\";\n var jukcy = \"є\";\n var Kappa = \"Κ\";\n var kappa = \"κ\";\n var kappav = \"ϰ\";\n var Kcedil = \"Ķ\";\n var kcedil = \"ķ\";\n var Kcy = \"К\";\n var kcy = \"к\";\n var Kfr = \"𝔎\";\n var kfr = \"𝔨\";\n var kgreen = \"ĸ\";\n var KHcy = \"Х\";\n var khcy = \"х\";\n var KJcy = \"Ќ\";\n var kjcy = \"ќ\";\n var Kopf = \"𝕂\";\n var kopf = \"𝕜\";\n var Kscr = \"𝒦\";\n var kscr = \"𝓀\";\n var lAarr = \"⇚\";\n var Lacute = \"Ĺ\";\n var lacute = \"ĺ\";\n var laemptyv = \"⦴\";\n var lagran = \"ℒ\";\n var Lambda = \"Λ\";\n var lambda = \"λ\";\n var lang = \"⟨\";\n var Lang = \"⟪\";\n var langd = \"⦑\";\n var langle = \"⟨\";\n var lap = \"⪅\";\n var Laplacetrf = \"ℒ\";\n var laquo = \"«\";\n var larrb = \"⇤\";\n var larrbfs = \"⤟\";\n var larr = \"←\";\n var Larr = \"↞\";\n var lArr = \"⇐\";\n var larrfs = \"⤝\";\n var larrhk = \"↩\";\n var larrlp = \"↫\";\n var larrpl = \"⤹\";\n var larrsim = \"⥳\";\n var larrtl = \"↢\";\n var latail = \"⤙\";\n var lAtail = \"⤛\";\n var lat = \"⪫\";\n var late = \"⪭\";\n var lates = \"⪭︀\";\n var lbarr = \"⤌\";\n var lBarr = \"⤎\";\n var lbbrk = \"❲\";\n var lbrace = \"{\";\n var lbrack = \"[\";\n var lbrke = \"⦋\";\n var lbrksld = \"⦏\";\n var lbrkslu = \"⦍\";\n var Lcaron = \"Ľ\";\n var lcaron = \"ľ\";\n var Lcedil = \"Ļ\";\n var lcedil = \"ļ\";\n var lceil = \"⌈\";\n var lcub = \"{\";\n var Lcy = \"Л\";\n var lcy = \"л\";\n var ldca = \"⤶\";\n var ldquo = \"“\";\n var ldquor = \"„\";\n var ldrdhar = \"⥧\";\n var ldrushar = \"⥋\";\n var ldsh = \"↲\";\n var le = \"≤\";\n var lE = \"≦\";\n var LeftAngleBracket = \"⟨\";\n var LeftArrowBar = \"⇤\";\n var leftarrow = \"←\";\n var LeftArrow = \"←\";\n var Leftarrow = \"⇐\";\n var LeftArrowRightArrow = \"⇆\";\n var leftarrowtail = \"↢\";\n var LeftCeiling = \"⌈\";\n var LeftDoubleBracket = \"⟦\";\n var LeftDownTeeVector = \"⥡\";\n var LeftDownVectorBar = \"⥙\";\n var LeftDownVector = \"⇃\";\n var LeftFloor = \"⌊\";\n var leftharpoondown = \"↽\";\n var leftharpoonup = \"↼\";\n var leftleftarrows = \"⇇\";\n var leftrightarrow = \"↔\";\n var LeftRightArrow = \"↔\";\n var Leftrightarrow = \"⇔\";\n var leftrightarrows = \"⇆\";\n var leftrightharpoons = \"⇋\";\n var leftrightsquigarrow = \"↭\";\n var LeftRightVector = \"⥎\";\n var LeftTeeArrow = \"↤\";\n var LeftTee = \"⊣\";\n var LeftTeeVector = \"⥚\";\n var leftthreetimes = \"⋋\";\n var LeftTriangleBar = \"⧏\";\n var LeftTriangle = \"⊲\";\n var LeftTriangleEqual = \"⊴\";\n var LeftUpDownVector = \"⥑\";\n var LeftUpTeeVector = \"⥠\";\n var LeftUpVectorBar = \"⥘\";\n var LeftUpVector = \"↿\";\n var LeftVectorBar = \"⥒\";\n var LeftVector = \"↼\";\n var lEg = \"⪋\";\n var leg = \"⋚\";\n var leq = \"≤\";\n var leqq = \"≦\";\n var leqslant = \"⩽\";\n var lescc = \"⪨\";\n var les = \"⩽\";\n var lesdot = \"⩿\";\n var lesdoto = \"⪁\";\n var lesdotor = \"⪃\";\n var lesg = \"⋚︀\";\n var lesges = \"⪓\";\n var lessapprox = \"⪅\";\n var lessdot = \"⋖\";\n var lesseqgtr = \"⋚\";\n var lesseqqgtr = \"⪋\";\n var LessEqualGreater = \"⋚\";\n var LessFullEqual = \"≦\";\n var LessGreater = \"≶\";\n var lessgtr = \"≶\";\n var LessLess = \"⪡\";\n var lesssim = \"≲\";\n var LessSlantEqual = \"⩽\";\n var LessTilde = \"≲\";\n var lfisht = \"⥼\";\n var lfloor = \"⌊\";\n var Lfr = \"𝔏\";\n var lfr = \"𝔩\";\n var lg = \"≶\";\n var lgE = \"⪑\";\n var lHar = \"⥢\";\n var lhard = \"↽\";\n var lharu = \"↼\";\n var lharul = \"⥪\";\n var lhblk = \"▄\";\n var LJcy = \"Љ\";\n var ljcy = \"љ\";\n var llarr = \"⇇\";\n var ll = \"≪\";\n var Ll = \"⋘\";\n var llcorner = \"⌞\";\n var Lleftarrow = \"⇚\";\n var llhard = \"⥫\";\n var lltri = \"◺\";\n var Lmidot = \"Ŀ\";\n var lmidot = \"ŀ\";\n var lmoustache = \"⎰\";\n var lmoust = \"⎰\";\n var lnap = \"⪉\";\n var lnapprox = \"⪉\";\n var lne = \"⪇\";\n var lnE = \"≨\";\n var lneq = \"⪇\";\n var lneqq = \"≨\";\n var lnsim = \"⋦\";\n var loang = \"⟬\";\n var loarr = \"⇽\";\n var lobrk = \"⟦\";\n var longleftarrow = \"⟵\";\n var LongLeftArrow = \"⟵\";\n var Longleftarrow = \"⟸\";\n var longleftrightarrow = \"⟷\";\n var LongLeftRightArrow = \"⟷\";\n var Longleftrightarrow = \"⟺\";\n var longmapsto = \"⟼\";\n var longrightarrow = \"⟶\";\n var LongRightArrow = \"⟶\";\n var Longrightarrow = \"⟹\";\n var looparrowleft = \"↫\";\n var looparrowright = \"↬\";\n var lopar = \"⦅\";\n var Lopf = \"𝕃\";\n var lopf = \"𝕝\";\n var loplus = \"⨭\";\n var lotimes = \"⨴\";\n var lowast = \"∗\";\n var lowbar = \"_\";\n var LowerLeftArrow = \"↙\";\n var LowerRightArrow = \"↘\";\n var loz = \"◊\";\n var lozenge = \"◊\";\n var lozf = \"⧫\";\n var lpar = \"(\";\n var lparlt = \"⦓\";\n var lrarr = \"⇆\";\n var lrcorner = \"⌟\";\n var lrhar = \"⇋\";\n var lrhard = \"⥭\";\n var lrm = \"‎\";\n var lrtri = \"⊿\";\n var lsaquo = \"‹\";\n var lscr = \"𝓁\";\n var Lscr = \"ℒ\";\n var lsh = \"↰\";\n var Lsh = \"↰\";\n var lsim = \"≲\";\n var lsime = \"⪍\";\n var lsimg = \"⪏\";\n var lsqb = \"[\";\n var lsquo = \"‘\";\n var lsquor = \"‚\";\n var Lstrok = \"Ł\";\n var lstrok = \"ł\";\n var ltcc = \"⪦\";\n var ltcir = \"⩹\";\n var lt = \"<\";\n var LT = \"<\";\n var Lt = \"≪\";\n var ltdot = \"⋖\";\n var lthree = \"⋋\";\n var ltimes = \"⋉\";\n var ltlarr = \"⥶\";\n var ltquest = \"⩻\";\n var ltri = \"◃\";\n var ltrie = \"⊴\";\n var ltrif = \"◂\";\n var ltrPar = \"⦖\";\n var lurdshar = \"⥊\";\n var luruhar = \"⥦\";\n var lvertneqq = \"≨︀\";\n var lvnE = \"≨︀\";\n var macr = \"¯\";\n var male = \"♂\";\n var malt = \"✠\";\n var maltese = \"✠\";\n var map$4 = \"↦\";\n var mapsto = \"↦\";\n var mapstodown = \"↧\";\n var mapstoleft = \"↤\";\n var mapstoup = \"↥\";\n var marker = \"▮\";\n var mcomma = \"⨩\";\n var Mcy = \"М\";\n var mcy = \"м\";\n var mdash = \"—\";\n var mDDot = \"∺\";\n var measuredangle = \"∡\";\n var MediumSpace = \" \";\n var Mellintrf = \"ℳ\";\n var Mfr = \"𝔐\";\n var mfr = \"𝔪\";\n var mho = \"℧\";\n var micro = \"µ\";\n var midast = \"*\";\n var midcir = \"⫰\";\n var mid = \"∣\";\n var middot = \"·\";\n var minusb = \"⊟\";\n var minus = \"−\";\n var minusd = \"∸\";\n var minusdu = \"⨪\";\n var MinusPlus = \"∓\";\n var mlcp = \"⫛\";\n var mldr = \"…\";\n var mnplus = \"∓\";\n var models = \"⊧\";\n var Mopf = \"𝕄\";\n var mopf = \"𝕞\";\n var mp = \"∓\";\n var mscr = \"𝓂\";\n var Mscr = \"ℳ\";\n var mstpos = \"∾\";\n var Mu = \"Μ\";\n var mu = \"μ\";\n var multimap = \"⊸\";\n var mumap = \"⊸\";\n var nabla = \"∇\";\n var Nacute = \"Ń\";\n var nacute = \"ń\";\n var nang = \"∠⃒\";\n var nap = \"≉\";\n var napE = \"⩰̸\";\n var napid = \"≋̸\";\n var napos = \"ʼn\";\n var napprox = \"≉\";\n var natural = \"♮\";\n var naturals = \"ℕ\";\n var natur = \"♮\";\n var nbsp = \" \";\n var nbump = \"≎̸\";\n var nbumpe = \"≏̸\";\n var ncap = \"⩃\";\n var Ncaron = \"Ň\";\n var ncaron = \"ň\";\n var Ncedil = \"Ņ\";\n var ncedil = \"ņ\";\n var ncong = \"≇\";\n var ncongdot = \"⩭̸\";\n var ncup = \"⩂\";\n var Ncy = \"Н\";\n var ncy = \"н\";\n var ndash = \"–\";\n var nearhk = \"⤤\";\n var nearr = \"↗\";\n var neArr = \"⇗\";\n var nearrow = \"↗\";\n var ne = \"≠\";\n var nedot = \"≐̸\";\n var NegativeMediumSpace = \"​\";\n var NegativeThickSpace = \"​\";\n var NegativeThinSpace = \"​\";\n var NegativeVeryThinSpace = \"​\";\n var nequiv = \"≢\";\n var nesear = \"⤨\";\n var nesim = \"≂̸\";\n var NestedGreaterGreater = \"≫\";\n var NestedLessLess = \"≪\";\n var NewLine = \"\\n\";\n var nexist = \"∄\";\n var nexists = \"∄\";\n var Nfr = \"𝔑\";\n var nfr = \"𝔫\";\n var ngE = \"≧̸\";\n var nge = \"≱\";\n var ngeq = \"≱\";\n var ngeqq = \"≧̸\";\n var ngeqslant = \"⩾̸\";\n var nges = \"⩾̸\";\n var nGg = \"⋙̸\";\n var ngsim = \"≵\";\n var nGt = \"≫⃒\";\n var ngt = \"≯\";\n var ngtr = \"≯\";\n var nGtv = \"≫̸\";\n var nharr = \"↮\";\n var nhArr = \"⇎\";\n var nhpar = \"⫲\";\n var ni = \"∋\";\n var nis = \"⋼\";\n var nisd = \"⋺\";\n var niv = \"∋\";\n var NJcy = \"Њ\";\n var njcy = \"њ\";\n var nlarr = \"↚\";\n var nlArr = \"⇍\";\n var nldr = \"‥\";\n var nlE = \"≦̸\";\n var nle = \"≰\";\n var nleftarrow = \"↚\";\n var nLeftarrow = \"⇍\";\n var nleftrightarrow = \"↮\";\n var nLeftrightarrow = \"⇎\";\n var nleq = \"≰\";\n var nleqq = \"≦̸\";\n var nleqslant = \"⩽̸\";\n var nles = \"⩽̸\";\n var nless = \"≮\";\n var nLl = \"⋘̸\";\n var nlsim = \"≴\";\n var nLt = \"≪⃒\";\n var nlt = \"≮\";\n var nltri = \"⋪\";\n var nltrie = \"⋬\";\n var nLtv = \"≪̸\";\n var nmid = \"∤\";\n var NoBreak = \"⁠\";\n var NonBreakingSpace = \" \";\n var nopf = \"𝕟\";\n var Nopf = \"ℕ\";\n var Not = \"⫬\";\n var not$1 = \"¬\";\n var NotCongruent = \"≢\";\n var NotCupCap = \"≭\";\n var NotDoubleVerticalBar = \"∦\";\n var NotElement = \"∉\";\n var NotEqual = \"≠\";\n var NotEqualTilde = \"≂̸\";\n var NotExists = \"∄\";\n var NotGreater = \"≯\";\n var NotGreaterEqual = \"≱\";\n var NotGreaterFullEqual = \"≧̸\";\n var NotGreaterGreater = \"≫̸\";\n var NotGreaterLess = \"≹\";\n var NotGreaterSlantEqual = \"⩾̸\";\n var NotGreaterTilde = \"≵\";\n var NotHumpDownHump = \"≎̸\";\n var NotHumpEqual = \"≏̸\";\n var notin = \"∉\";\n var notindot = \"⋵̸\";\n var notinE = \"⋹̸\";\n var notinva = \"∉\";\n var notinvb = \"⋷\";\n var notinvc = \"⋶\";\n var NotLeftTriangleBar = \"⧏̸\";\n var NotLeftTriangle = \"⋪\";\n var NotLeftTriangleEqual = \"⋬\";\n var NotLess = \"≮\";\n var NotLessEqual = \"≰\";\n var NotLessGreater = \"≸\";\n var NotLessLess = \"≪̸\";\n var NotLessSlantEqual = \"⩽̸\";\n var NotLessTilde = \"≴\";\n var NotNestedGreaterGreater = \"⪢̸\";\n var NotNestedLessLess = \"⪡̸\";\n var notni = \"∌\";\n var notniva = \"∌\";\n var notnivb = \"⋾\";\n var notnivc = \"⋽\";\n var NotPrecedes = \"⊀\";\n var NotPrecedesEqual = \"⪯̸\";\n var NotPrecedesSlantEqual = \"⋠\";\n var NotReverseElement = \"∌\";\n var NotRightTriangleBar = \"⧐̸\";\n var NotRightTriangle = \"⋫\";\n var NotRightTriangleEqual = \"⋭\";\n var NotSquareSubset = \"⊏̸\";\n var NotSquareSubsetEqual = \"⋢\";\n var NotSquareSuperset = \"⊐̸\";\n var NotSquareSupersetEqual = \"⋣\";\n var NotSubset = \"⊂⃒\";\n var NotSubsetEqual = \"⊈\";\n var NotSucceeds = \"⊁\";\n var NotSucceedsEqual = \"⪰̸\";\n var NotSucceedsSlantEqual = \"⋡\";\n var NotSucceedsTilde = \"≿̸\";\n var NotSuperset = \"⊃⃒\";\n var NotSupersetEqual = \"⊉\";\n var NotTilde = \"≁\";\n var NotTildeEqual = \"≄\";\n var NotTildeFullEqual = \"≇\";\n var NotTildeTilde = \"≉\";\n var NotVerticalBar = \"∤\";\n var nparallel = \"∦\";\n var npar = \"∦\";\n var nparsl = \"⫽⃥\";\n var npart = \"∂̸\";\n var npolint = \"⨔\";\n var npr = \"⊀\";\n var nprcue = \"⋠\";\n var nprec = \"⊀\";\n var npreceq = \"⪯̸\";\n var npre = \"⪯̸\";\n var nrarrc = \"⤳̸\";\n var nrarr = \"↛\";\n var nrArr = \"⇏\";\n var nrarrw = \"↝̸\";\n var nrightarrow = \"↛\";\n var nRightarrow = \"⇏\";\n var nrtri = \"⋫\";\n var nrtrie = \"⋭\";\n var nsc = \"⊁\";\n var nsccue = \"⋡\";\n var nsce = \"⪰̸\";\n var Nscr = \"𝒩\";\n var nscr = \"𝓃\";\n var nshortmid = \"∤\";\n var nshortparallel = \"∦\";\n var nsim = \"≁\";\n var nsime = \"≄\";\n var nsimeq = \"≄\";\n var nsmid = \"∤\";\n var nspar = \"∦\";\n var nsqsube = \"⋢\";\n var nsqsupe = \"⋣\";\n var nsub = \"⊄\";\n var nsubE = \"⫅̸\";\n var nsube = \"⊈\";\n var nsubset = \"⊂⃒\";\n var nsubseteq = \"⊈\";\n var nsubseteqq = \"⫅̸\";\n var nsucc = \"⊁\";\n var nsucceq = \"⪰̸\";\n var nsup = \"⊅\";\n var nsupE = \"⫆̸\";\n var nsupe = \"⊉\";\n var nsupset = \"⊃⃒\";\n var nsupseteq = \"⊉\";\n var nsupseteqq = \"⫆̸\";\n var ntgl = \"≹\";\n var Ntilde = \"Ñ\";\n var ntilde = \"ñ\";\n var ntlg = \"≸\";\n var ntriangleleft = \"⋪\";\n var ntrianglelefteq = \"⋬\";\n var ntriangleright = \"⋫\";\n var ntrianglerighteq = \"⋭\";\n var Nu = \"Ν\";\n var nu = \"ν\";\n var num = \"#\";\n var numero = \"№\";\n var numsp = \" \";\n var nvap = \"≍⃒\";\n var nvdash = \"⊬\";\n var nvDash = \"⊭\";\n var nVdash = \"⊮\";\n var nVDash = \"⊯\";\n var nvge = \"≥⃒\";\n var nvgt = \">⃒\";\n var nvHarr = \"⤄\";\n var nvinfin = \"⧞\";\n var nvlArr = \"⤂\";\n var nvle = \"≤⃒\";\n var nvlt = \"<⃒\";\n var nvltrie = \"⊴⃒\";\n var nvrArr = \"⤃\";\n var nvrtrie = \"⊵⃒\";\n var nvsim = \"∼⃒\";\n var nwarhk = \"⤣\";\n var nwarr = \"↖\";\n var nwArr = \"⇖\";\n var nwarrow = \"↖\";\n var nwnear = \"⤧\";\n var Oacute = \"Ó\";\n var oacute = \"ó\";\n var oast = \"⊛\";\n var Ocirc = \"Ô\";\n var ocirc = \"ô\";\n var ocir = \"⊚\";\n var Ocy = \"О\";\n var ocy = \"о\";\n var odash = \"⊝\";\n var Odblac = \"Ő\";\n var odblac = \"ő\";\n var odiv = \"⨸\";\n var odot = \"⊙\";\n var odsold = \"⦼\";\n var OElig = \"Œ\";\n var oelig = \"œ\";\n var ofcir = \"⦿\";\n var Ofr = \"𝔒\";\n var ofr = \"𝔬\";\n var ogon = \"˛\";\n var Ograve = \"Ò\";\n var ograve = \"ò\";\n var ogt = \"⧁\";\n var ohbar = \"⦵\";\n var ohm = \"Ω\";\n var oint = \"∮\";\n var olarr = \"↺\";\n var olcir = \"⦾\";\n var olcross = \"⦻\";\n var oline = \"‾\";\n var olt = \"⧀\";\n var Omacr = \"Ō\";\n var omacr = \"ō\";\n var Omega = \"Ω\";\n var omega = \"ω\";\n var Omicron = \"Ο\";\n var omicron = \"ο\";\n var omid = \"⦶\";\n var ominus = \"⊖\";\n var Oopf = \"𝕆\";\n var oopf = \"𝕠\";\n var opar = \"⦷\";\n var OpenCurlyDoubleQuote = \"“\";\n var OpenCurlyQuote = \"‘\";\n var operp = \"⦹\";\n var oplus = \"⊕\";\n var orarr = \"↻\";\n var Or = \"⩔\";\n var or = \"∨\";\n var ord = \"⩝\";\n var order = \"ℴ\";\n var orderof = \"ℴ\";\n var ordf = \"ª\";\n var ordm = \"º\";\n var origof = \"⊶\";\n var oror = \"⩖\";\n var orslope = \"⩗\";\n var orv = \"⩛\";\n var oS = \"Ⓢ\";\n var Oscr = \"𝒪\";\n var oscr = \"ℴ\";\n var Oslash = \"Ø\";\n var oslash = \"ø\";\n var osol = \"⊘\";\n var Otilde = \"Õ\";\n var otilde = \"õ\";\n var otimesas = \"⨶\";\n var Otimes = \"⨷\";\n var otimes = \"⊗\";\n var Ouml = \"Ö\";\n var ouml = \"ö\";\n var ovbar = \"⌽\";\n var OverBar = \"‾\";\n var OverBrace = \"⏞\";\n var OverBracket = \"⎴\";\n var OverParenthesis = \"⏜\";\n var para = \"¶\";\n var parallel = \"∥\";\n var par = \"∥\";\n var parsim = \"⫳\";\n var parsl = \"⫽\";\n var part = \"∂\";\n var PartialD = \"∂\";\n var Pcy = \"П\";\n var pcy = \"п\";\n var percnt = \"%\";\n var period = \".\";\n var permil = \"‰\";\n var perp = \"⊥\";\n var pertenk = \"‱\";\n var Pfr = \"𝔓\";\n var pfr = \"𝔭\";\n var Phi = \"Φ\";\n var phi = \"φ\";\n var phiv = \"ϕ\";\n var phmmat = \"ℳ\";\n var phone = \"☎\";\n var Pi = \"Π\";\n var pi = \"π\";\n var pitchfork = \"⋔\";\n var piv = \"ϖ\";\n var planck = \"ℏ\";\n var planckh = \"ℎ\";\n var plankv = \"ℏ\";\n var plusacir = \"⨣\";\n var plusb = \"⊞\";\n var pluscir = \"⨢\";\n var plus = \"+\";\n var plusdo = \"∔\";\n var plusdu = \"⨥\";\n var pluse = \"⩲\";\n var PlusMinus = \"±\";\n var plusmn = \"±\";\n var plussim = \"⨦\";\n var plustwo = \"⨧\";\n var pm = \"±\";\n var Poincareplane = \"ℌ\";\n var pointint = \"⨕\";\n var popf = \"𝕡\";\n var Popf = \"ℙ\";\n var pound = \"£\";\n var prap = \"⪷\";\n var Pr = \"⪻\";\n var pr = \"≺\";\n var prcue = \"≼\";\n var precapprox = \"⪷\";\n var prec = \"≺\";\n var preccurlyeq = \"≼\";\n var Precedes = \"≺\";\n var PrecedesEqual = \"⪯\";\n var PrecedesSlantEqual = \"≼\";\n var PrecedesTilde = \"≾\";\n var preceq = \"⪯\";\n var precnapprox = \"⪹\";\n var precneqq = \"⪵\";\n var precnsim = \"⋨\";\n var pre = \"⪯\";\n var prE = \"⪳\";\n var precsim = \"≾\";\n var prime = \"′\";\n var Prime = \"″\";\n var primes = \"ℙ\";\n var prnap = \"⪹\";\n var prnE = \"⪵\";\n var prnsim = \"⋨\";\n var prod = \"∏\";\n var Product = \"∏\";\n var profalar = \"⌮\";\n var profline = \"⌒\";\n var profsurf = \"⌓\";\n var prop = \"∝\";\n var Proportional = \"∝\";\n var Proportion = \"∷\";\n var propto = \"∝\";\n var prsim = \"≾\";\n var prurel = \"⊰\";\n var Pscr = \"𝒫\";\n var pscr = \"𝓅\";\n var Psi = \"Ψ\";\n var psi = \"ψ\";\n var puncsp = \" \";\n var Qfr = \"𝔔\";\n var qfr = \"𝔮\";\n var qint = \"⨌\";\n var qopf = \"𝕢\";\n var Qopf = \"ℚ\";\n var qprime = \"⁗\";\n var Qscr = \"𝒬\";\n var qscr = \"𝓆\";\n var quaternions = \"ℍ\";\n var quatint = \"⨖\";\n var quest = \"?\";\n var questeq = \"≟\";\n var quot = \"\\\"\";\n var QUOT = \"\\\"\";\n var rAarr = \"⇛\";\n var race = \"∽̱\";\n var Racute = \"Ŕ\";\n var racute = \"ŕ\";\n var radic = \"√\";\n var raemptyv = \"⦳\";\n var rang = \"⟩\";\n var Rang = \"⟫\";\n var rangd = \"⦒\";\n var range = \"⦥\";\n var rangle = \"⟩\";\n var raquo = \"»\";\n var rarrap = \"⥵\";\n var rarrb = \"⇥\";\n var rarrbfs = \"⤠\";\n var rarrc = \"⤳\";\n var rarr = \"→\";\n var Rarr = \"↠\";\n var rArr = \"⇒\";\n var rarrfs = \"⤞\";\n var rarrhk = \"↪\";\n var rarrlp = \"↬\";\n var rarrpl = \"⥅\";\n var rarrsim = \"⥴\";\n var Rarrtl = \"⤖\";\n var rarrtl = \"↣\";\n var rarrw = \"↝\";\n var ratail = \"⤚\";\n var rAtail = \"⤜\";\n var ratio = \"∶\";\n var rationals = \"ℚ\";\n var rbarr = \"⤍\";\n var rBarr = \"⤏\";\n var RBarr = \"⤐\";\n var rbbrk = \"❳\";\n var rbrace = \"}\";\n var rbrack = \"]\";\n var rbrke = \"⦌\";\n var rbrksld = \"⦎\";\n var rbrkslu = \"⦐\";\n var Rcaron = \"Ř\";\n var rcaron = \"ř\";\n var Rcedil = \"Ŗ\";\n var rcedil = \"ŗ\";\n var rceil = \"⌉\";\n var rcub = \"}\";\n var Rcy = \"Р\";\n var rcy = \"р\";\n var rdca = \"⤷\";\n var rdldhar = \"⥩\";\n var rdquo = \"”\";\n var rdquor = \"”\";\n var rdsh = \"↳\";\n var real = \"ℜ\";\n var realine = \"ℛ\";\n var realpart = \"ℜ\";\n var reals = \"ℝ\";\n var Re = \"ℜ\";\n var rect = \"▭\";\n var reg = \"®\";\n var REG = \"®\";\n var ReverseElement = \"∋\";\n var ReverseEquilibrium = \"⇋\";\n var ReverseUpEquilibrium = \"⥯\";\n var rfisht = \"⥽\";\n var rfloor = \"⌋\";\n var rfr = \"𝔯\";\n var Rfr = \"ℜ\";\n var rHar = \"⥤\";\n var rhard = \"⇁\";\n var rharu = \"⇀\";\n var rharul = \"⥬\";\n var Rho = \"Ρ\";\n var rho = \"ρ\";\n var rhov = \"ϱ\";\n var RightAngleBracket = \"⟩\";\n var RightArrowBar = \"⇥\";\n var rightarrow = \"→\";\n var RightArrow = \"→\";\n var Rightarrow = \"⇒\";\n var RightArrowLeftArrow = \"⇄\";\n var rightarrowtail = \"↣\";\n var RightCeiling = \"⌉\";\n var RightDoubleBracket = \"⟧\";\n var RightDownTeeVector = \"⥝\";\n var RightDownVectorBar = \"⥕\";\n var RightDownVector = \"⇂\";\n var RightFloor = \"⌋\";\n var rightharpoondown = \"⇁\";\n var rightharpoonup = \"⇀\";\n var rightleftarrows = \"⇄\";\n var rightleftharpoons = \"⇌\";\n var rightrightarrows = \"⇉\";\n var rightsquigarrow = \"↝\";\n var RightTeeArrow = \"↦\";\n var RightTee = \"⊢\";\n var RightTeeVector = \"⥛\";\n var rightthreetimes = \"⋌\";\n var RightTriangleBar = \"⧐\";\n var RightTriangle = \"⊳\";\n var RightTriangleEqual = \"⊵\";\n var RightUpDownVector = \"⥏\";\n var RightUpTeeVector = \"⥜\";\n var RightUpVectorBar = \"⥔\";\n var RightUpVector = \"↾\";\n var RightVectorBar = \"⥓\";\n var RightVector = \"⇀\";\n var ring = \"˚\";\n var risingdotseq = \"≓\";\n var rlarr = \"⇄\";\n var rlhar = \"⇌\";\n var rlm = \"‏\";\n var rmoustache = \"⎱\";\n var rmoust = \"⎱\";\n var rnmid = \"⫮\";\n var roang = \"⟭\";\n var roarr = \"⇾\";\n var robrk = \"⟧\";\n var ropar = \"⦆\";\n var ropf = \"𝕣\";\n var Ropf = \"ℝ\";\n var roplus = \"⨮\";\n var rotimes = \"⨵\";\n var RoundImplies = \"⥰\";\n var rpar = \")\";\n var rpargt = \"⦔\";\n var rppolint = \"⨒\";\n var rrarr = \"⇉\";\n var Rrightarrow = \"⇛\";\n var rsaquo = \"›\";\n var rscr = \"𝓇\";\n var Rscr = \"ℛ\";\n var rsh = \"↱\";\n var Rsh = \"↱\";\n var rsqb = \"]\";\n var rsquo = \"’\";\n var rsquor = \"’\";\n var rthree = \"⋌\";\n var rtimes = \"⋊\";\n var rtri = \"▹\";\n var rtrie = \"⊵\";\n var rtrif = \"▸\";\n var rtriltri = \"⧎\";\n var RuleDelayed = \"⧴\";\n var ruluhar = \"⥨\";\n var rx = \"℞\";\n var Sacute = \"Ś\";\n var sacute = \"ś\";\n var sbquo = \"‚\";\n var scap = \"⪸\";\n var Scaron = \"Š\";\n var scaron = \"š\";\n var Sc = \"⪼\";\n var sc = \"≻\";\n var sccue = \"≽\";\n var sce = \"⪰\";\n var scE = \"⪴\";\n var Scedil = \"Ş\";\n var scedil = \"ş\";\n var Scirc = \"Ŝ\";\n var scirc = \"ŝ\";\n var scnap = \"⪺\";\n var scnE = \"⪶\";\n var scnsim = \"⋩\";\n var scpolint = \"⨓\";\n var scsim = \"≿\";\n var Scy = \"С\";\n var scy = \"с\";\n var sdotb = \"⊡\";\n var sdot = \"⋅\";\n var sdote = \"⩦\";\n var searhk = \"⤥\";\n var searr = \"↘\";\n var seArr = \"⇘\";\n var searrow = \"↘\";\n var sect = \"§\";\n var semi = \";\";\n var seswar = \"⤩\";\n var setminus = \"∖\";\n var setmn = \"∖\";\n var sext = \"✶\";\n var Sfr = \"𝔖\";\n var sfr = \"𝔰\";\n var sfrown = \"⌢\";\n var sharp = \"♯\";\n var SHCHcy = \"Щ\";\n var shchcy = \"щ\";\n var SHcy = \"Ш\";\n var shcy = \"ш\";\n var ShortDownArrow = \"↓\";\n var ShortLeftArrow = \"←\";\n var shortmid = \"∣\";\n var shortparallel = \"∥\";\n var ShortRightArrow = \"→\";\n var ShortUpArrow = \"↑\";\n var shy = \"­\";\n var Sigma = \"Σ\";\n var sigma = \"σ\";\n var sigmaf = \"ς\";\n var sigmav = \"ς\";\n var sim = \"∼\";\n var simdot = \"⩪\";\n var sime = \"≃\";\n var simeq = \"≃\";\n var simg = \"⪞\";\n var simgE = \"⪠\";\n var siml = \"⪝\";\n var simlE = \"⪟\";\n var simne = \"≆\";\n var simplus = \"⨤\";\n var simrarr = \"⥲\";\n var slarr = \"←\";\n var SmallCircle = \"∘\";\n var smallsetminus = \"∖\";\n var smashp = \"⨳\";\n var smeparsl = \"⧤\";\n var smid = \"∣\";\n var smile = \"⌣\";\n var smt = \"⪪\";\n var smte = \"⪬\";\n var smtes = \"⪬︀\";\n var SOFTcy = \"Ь\";\n var softcy = \"ь\";\n var solbar = \"⌿\";\n var solb = \"⧄\";\n var sol = \"/\";\n var Sopf = \"𝕊\";\n var sopf = \"𝕤\";\n var spades = \"♠\";\n var spadesuit = \"♠\";\n var spar = \"∥\";\n var sqcap = \"⊓\";\n var sqcaps = \"⊓︀\";\n var sqcup = \"⊔\";\n var sqcups = \"⊔︀\";\n var Sqrt = \"√\";\n var sqsub = \"⊏\";\n var sqsube = \"⊑\";\n var sqsubset = \"⊏\";\n var sqsubseteq = \"⊑\";\n var sqsup = \"⊐\";\n var sqsupe = \"⊒\";\n var sqsupset = \"⊐\";\n var sqsupseteq = \"⊒\";\n var square = \"□\";\n var Square = \"□\";\n var SquareIntersection = \"⊓\";\n var SquareSubset = \"⊏\";\n var SquareSubsetEqual = \"⊑\";\n var SquareSuperset = \"⊐\";\n var SquareSupersetEqual = \"⊒\";\n var SquareUnion = \"⊔\";\n var squarf = \"▪\";\n var squ = \"□\";\n var squf = \"▪\";\n var srarr = \"→\";\n var Sscr = \"𝒮\";\n var sscr = \"𝓈\";\n var ssetmn = \"∖\";\n var ssmile = \"⌣\";\n var sstarf = \"⋆\";\n var Star = \"⋆\";\n var star = \"☆\";\n var starf = \"★\";\n var straightepsilon = \"ϵ\";\n var straightphi = \"ϕ\";\n var strns = \"¯\";\n var sub = \"⊂\";\n var Sub = \"⋐\";\n var subdot = \"⪽\";\n var subE = \"⫅\";\n var sube = \"⊆\";\n var subedot = \"⫃\";\n var submult = \"⫁\";\n var subnE = \"⫋\";\n var subne = \"⊊\";\n var subplus = \"⪿\";\n var subrarr = \"⥹\";\n var subset = \"⊂\";\n var Subset = \"⋐\";\n var subseteq = \"⊆\";\n var subseteqq = \"⫅\";\n var SubsetEqual = \"⊆\";\n var subsetneq = \"⊊\";\n var subsetneqq = \"⫋\";\n var subsim = \"⫇\";\n var subsub = \"⫕\";\n var subsup = \"⫓\";\n var succapprox = \"⪸\";\n var succ = \"≻\";\n var succcurlyeq = \"≽\";\n var Succeeds = \"≻\";\n var SucceedsEqual = \"⪰\";\n var SucceedsSlantEqual = \"≽\";\n var SucceedsTilde = \"≿\";\n var succeq = \"⪰\";\n var succnapprox = \"⪺\";\n var succneqq = \"⪶\";\n var succnsim = \"⋩\";\n var succsim = \"≿\";\n var SuchThat = \"∋\";\n var sum = \"∑\";\n var Sum = \"∑\";\n var sung = \"♪\";\n var sup1 = \"¹\";\n var sup2 = \"²\";\n var sup3 = \"³\";\n var sup = \"⊃\";\n var Sup = \"⋑\";\n var supdot = \"⪾\";\n var supdsub = \"⫘\";\n var supE = \"⫆\";\n var supe = \"⊇\";\n var supedot = \"⫄\";\n var Superset = \"⊃\";\n var SupersetEqual = \"⊇\";\n var suphsol = \"⟉\";\n var suphsub = \"⫗\";\n var suplarr = \"⥻\";\n var supmult = \"⫂\";\n var supnE = \"⫌\";\n var supne = \"⊋\";\n var supplus = \"⫀\";\n var supset = \"⊃\";\n var Supset = \"⋑\";\n var supseteq = \"⊇\";\n var supseteqq = \"⫆\";\n var supsetneq = \"⊋\";\n var supsetneqq = \"⫌\";\n var supsim = \"⫈\";\n var supsub = \"⫔\";\n var supsup = \"⫖\";\n var swarhk = \"⤦\";\n var swarr = \"↙\";\n var swArr = \"⇙\";\n var swarrow = \"↙\";\n var swnwar = \"⤪\";\n var szlig = \"ß\";\n var Tab = \"\\t\";\n var target = \"⌖\";\n var Tau = \"Τ\";\n var tau = \"τ\";\n var tbrk = \"⎴\";\n var Tcaron = \"Ť\";\n var tcaron = \"ť\";\n var Tcedil = \"Ţ\";\n var tcedil = \"ţ\";\n var Tcy = \"Т\";\n var tcy = \"т\";\n var tdot = \"⃛\";\n var telrec = \"⌕\";\n var Tfr = \"𝔗\";\n var tfr = \"𝔱\";\n var there4 = \"∴\";\n var therefore = \"∴\";\n var Therefore = \"∴\";\n var Theta = \"Θ\";\n var theta = \"θ\";\n var thetasym = \"ϑ\";\n var thetav = \"ϑ\";\n var thickapprox = \"≈\";\n var thicksim = \"∼\";\n var ThickSpace = \"  \";\n var ThinSpace = \" \";\n var thinsp = \" \";\n var thkap = \"≈\";\n var thksim = \"∼\";\n var THORN = \"Þ\";\n var thorn = \"þ\";\n var tilde$1 = \"˜\";\n var Tilde = \"∼\";\n var TildeEqual = \"≃\";\n var TildeFullEqual = \"≅\";\n var TildeTilde = \"≈\";\n var timesbar = \"⨱\";\n var timesb = \"⊠\";\n var times = \"×\";\n var timesd = \"⨰\";\n var tint = \"∭\";\n var toea = \"⤨\";\n var topbot = \"⌶\";\n var topcir = \"⫱\";\n var top = \"⊤\";\n var Topf = \"𝕋\";\n var topf = \"𝕥\";\n var topfork = \"⫚\";\n var tosa = \"⤩\";\n var tprime = \"‴\";\n var trade = \"™\";\n var TRADE = \"™\";\n var triangle = \"▵\";\n var triangledown = \"▿\";\n var triangleleft = \"◃\";\n var trianglelefteq = \"⊴\";\n var triangleq = \"≜\";\n var triangleright = \"▹\";\n var trianglerighteq = \"⊵\";\n var tridot = \"◬\";\n var trie = \"≜\";\n var triminus = \"⨺\";\n var TripleDot = \"⃛\";\n var triplus = \"⨹\";\n var trisb = \"⧍\";\n var tritime = \"⨻\";\n var trpezium = \"⏢\";\n var Tscr = \"𝒯\";\n var tscr = \"𝓉\";\n var TScy = \"Ц\";\n var tscy = \"ц\";\n var TSHcy = \"Ћ\";\n var tshcy = \"ћ\";\n var Tstrok = \"Ŧ\";\n var tstrok = \"ŧ\";\n var twixt = \"≬\";\n var twoheadleftarrow = \"↞\";\n var twoheadrightarrow = \"↠\";\n var Uacute = \"Ú\";\n var uacute = \"ú\";\n var uarr = \"↑\";\n var Uarr = \"↟\";\n var uArr = \"⇑\";\n var Uarrocir = \"⥉\";\n var Ubrcy = \"Ў\";\n var ubrcy = \"ў\";\n var Ubreve = \"Ŭ\";\n var ubreve = \"ŭ\";\n var Ucirc = \"Û\";\n var ucirc = \"û\";\n var Ucy = \"У\";\n var ucy = \"у\";\n var udarr = \"⇅\";\n var Udblac = \"Ű\";\n var udblac = \"ű\";\n var udhar = \"⥮\";\n var ufisht = \"⥾\";\n var Ufr = \"𝔘\";\n var ufr = \"𝔲\";\n var Ugrave = \"Ù\";\n var ugrave = \"ù\";\n var uHar = \"⥣\";\n var uharl = \"↿\";\n var uharr = \"↾\";\n var uhblk = \"▀\";\n var ulcorn = \"⌜\";\n var ulcorner = \"⌜\";\n var ulcrop = \"⌏\";\n var ultri = \"◸\";\n var Umacr = \"Ū\";\n var umacr = \"ū\";\n var uml = \"¨\";\n var UnderBar = \"_\";\n var UnderBrace = \"⏟\";\n var UnderBracket = \"⎵\";\n var UnderParenthesis = \"⏝\";\n var Union = \"⋃\";\n var UnionPlus = \"⊎\";\n var Uogon = \"Ų\";\n var uogon = \"ų\";\n var Uopf = \"𝕌\";\n var uopf = \"𝕦\";\n var UpArrowBar = \"⤒\";\n var uparrow = \"↑\";\n var UpArrow = \"↑\";\n var Uparrow = \"⇑\";\n var UpArrowDownArrow = \"⇅\";\n var updownarrow = \"↕\";\n var UpDownArrow = \"↕\";\n var Updownarrow = \"⇕\";\n var UpEquilibrium = \"⥮\";\n var upharpoonleft = \"↿\";\n var upharpoonright = \"↾\";\n var uplus = \"⊎\";\n var UpperLeftArrow = \"↖\";\n var UpperRightArrow = \"↗\";\n var upsi = \"υ\";\n var Upsi = \"ϒ\";\n var upsih = \"ϒ\";\n var Upsilon = \"Υ\";\n var upsilon = \"υ\";\n var UpTeeArrow = \"↥\";\n var UpTee = \"⊥\";\n var upuparrows = \"⇈\";\n var urcorn = \"⌝\";\n var urcorner = \"⌝\";\n var urcrop = \"⌎\";\n var Uring = \"Ů\";\n var uring = \"ů\";\n var urtri = \"◹\";\n var Uscr = \"𝒰\";\n var uscr = \"𝓊\";\n var utdot = \"⋰\";\n var Utilde = \"Ũ\";\n var utilde = \"ũ\";\n var utri = \"▵\";\n var utrif = \"▴\";\n var uuarr = \"⇈\";\n var Uuml = \"Ü\";\n var uuml = \"ü\";\n var uwangle = \"⦧\";\n var vangrt = \"⦜\";\n var varepsilon = \"ϵ\";\n var varkappa = \"ϰ\";\n var varnothing = \"∅\";\n var varphi = \"ϕ\";\n var varpi = \"ϖ\";\n var varpropto = \"∝\";\n var varr = \"↕\";\n var vArr = \"⇕\";\n var varrho = \"ϱ\";\n var varsigma = \"ς\";\n var varsubsetneq = \"⊊︀\";\n var varsubsetneqq = \"⫋︀\";\n var varsupsetneq = \"⊋︀\";\n var varsupsetneqq = \"⫌︀\";\n var vartheta = \"ϑ\";\n var vartriangleleft = \"⊲\";\n var vartriangleright = \"⊳\";\n var vBar = \"⫨\";\n var Vbar = \"⫫\";\n var vBarv = \"⫩\";\n var Vcy = \"В\";\n var vcy = \"в\";\n var vdash = \"⊢\";\n var vDash = \"⊨\";\n var Vdash = \"⊩\";\n var VDash = \"⊫\";\n var Vdashl = \"⫦\";\n var veebar = \"⊻\";\n var vee = \"∨\";\n var Vee = \"⋁\";\n var veeeq = \"≚\";\n var vellip = \"⋮\";\n var verbar = \"|\";\n var Verbar = \"‖\";\n var vert = \"|\";\n var Vert = \"‖\";\n var VerticalBar = \"∣\";\n var VerticalLine = \"|\";\n var VerticalSeparator = \"❘\";\n var VerticalTilde = \"≀\";\n var VeryThinSpace = \" \";\n var Vfr = \"𝔙\";\n var vfr = \"𝔳\";\n var vltri = \"⊲\";\n var vnsub = \"⊂⃒\";\n var vnsup = \"⊃⃒\";\n var Vopf = \"𝕍\";\n var vopf = \"𝕧\";\n var vprop = \"∝\";\n var vrtri = \"⊳\";\n var Vscr = \"𝒱\";\n var vscr = \"𝓋\";\n var vsubnE = \"⫋︀\";\n var vsubne = \"⊊︀\";\n var vsupnE = \"⫌︀\";\n var vsupne = \"⊋︀\";\n var Vvdash = \"⊪\";\n var vzigzag = \"⦚\";\n var Wcirc = \"Ŵ\";\n var wcirc = \"ŵ\";\n var wedbar = \"⩟\";\n var wedge = \"∧\";\n var Wedge = \"⋀\";\n var wedgeq = \"≙\";\n var weierp = \"℘\";\n var Wfr = \"𝔚\";\n var wfr = \"𝔴\";\n var Wopf = \"𝕎\";\n var wopf = \"𝕨\";\n var wp = \"℘\";\n var wr = \"≀\";\n var wreath = \"≀\";\n var Wscr = \"𝒲\";\n var wscr = \"𝓌\";\n var xcap = \"⋂\";\n var xcirc = \"◯\";\n var xcup = \"⋃\";\n var xdtri = \"▽\";\n var Xfr = \"𝔛\";\n var xfr = \"𝔵\";\n var xharr = \"⟷\";\n var xhArr = \"⟺\";\n var Xi = \"Ξ\";\n var xi = \"ξ\";\n var xlarr = \"⟵\";\n var xlArr = \"⟸\";\n var xmap = \"⟼\";\n var xnis = \"⋻\";\n var xodot = \"⨀\";\n var Xopf = \"𝕏\";\n var xopf = \"𝕩\";\n var xoplus = \"⨁\";\n var xotime = \"⨂\";\n var xrarr = \"⟶\";\n var xrArr = \"⟹\";\n var Xscr = \"𝒳\";\n var xscr = \"𝓍\";\n var xsqcup = \"⨆\";\n var xuplus = \"⨄\";\n var xutri = \"△\";\n var xvee = \"⋁\";\n var xwedge = \"⋀\";\n var Yacute = \"Ý\";\n var yacute = \"ý\";\n var YAcy = \"Я\";\n var yacy = \"я\";\n var Ycirc = \"Ŷ\";\n var ycirc = \"ŷ\";\n var Ycy = \"Ы\";\n var ycy = \"ы\";\n var yen = \"¥\";\n var Yfr = \"𝔜\";\n var yfr = \"𝔶\";\n var YIcy = \"Ї\";\n var yicy = \"ї\";\n var Yopf = \"𝕐\";\n var yopf = \"𝕪\";\n var Yscr = \"𝒴\";\n var yscr = \"𝓎\";\n var YUcy = \"Ю\";\n var yucy = \"ю\";\n var yuml = \"ÿ\";\n var Yuml = \"Ÿ\";\n var Zacute = \"Ź\";\n var zacute = \"ź\";\n var Zcaron = \"Ž\";\n var zcaron = \"ž\";\n var Zcy = \"З\";\n var zcy = \"з\";\n var Zdot = \"Ż\";\n var zdot = \"ż\";\n var zeetrf = \"ℨ\";\n var ZeroWidthSpace = \"​\";\n var Zeta = \"Ζ\";\n var zeta = \"ζ\";\n var zfr = \"𝔷\";\n var Zfr = \"ℨ\";\n var ZHcy = \"Ж\";\n var zhcy = \"ж\";\n var zigrarr = \"⇝\";\n var zopf = \"𝕫\";\n var Zopf = \"ℤ\";\n var Zscr = \"𝒵\";\n var zscr = \"𝓏\";\n var zwj = \"‍\";\n var zwnj = \"‌\";\n var require$$0$4 = {\n Aacute: Aacute,\n aacute: aacute,\n Abreve: Abreve,\n abreve: abreve,\n ac: ac,\n acd: acd,\n acE: acE,\n Acirc: Acirc,\n acirc: acirc,\n acute: acute,\n Acy: Acy,\n acy: acy,\n AElig: AElig,\n aelig: aelig,\n af: af,\n Afr: Afr,\n afr: afr,\n Agrave: Agrave,\n agrave: agrave,\n alefsym: alefsym,\n aleph: aleph,\n Alpha: Alpha,\n alpha: alpha,\n Amacr: Amacr,\n amacr: amacr,\n amalg: amalg,\n amp: amp,\n AMP: AMP,\n andand: andand,\n And: And,\n and: and,\n andd: andd,\n andslope: andslope,\n andv: andv,\n ang: ang,\n ange: ange,\n angle: angle,\n angmsdaa: angmsdaa,\n angmsdab: angmsdab,\n angmsdac: angmsdac,\n angmsdad: angmsdad,\n angmsdae: angmsdae,\n angmsdaf: angmsdaf,\n angmsdag: angmsdag,\n angmsdah: angmsdah,\n angmsd: angmsd,\n angrt: angrt,\n angrtvb: angrtvb,\n angrtvbd: angrtvbd,\n angsph: angsph,\n angst: angst,\n angzarr: angzarr,\n Aogon: Aogon,\n aogon: aogon,\n Aopf: Aopf,\n aopf: aopf,\n apacir: apacir,\n ap: ap,\n apE: apE,\n ape: ape,\n apid: apid,\n apos: apos,\n ApplyFunction: ApplyFunction,\n approx: approx,\n approxeq: approxeq,\n Aring: Aring,\n aring: aring,\n Ascr: Ascr,\n ascr: ascr,\n Assign: Assign,\n ast: ast,\n asymp: asymp,\n asympeq: asympeq,\n Atilde: Atilde,\n atilde: atilde,\n Auml: Auml,\n auml: auml,\n awconint: awconint,\n awint: awint,\n backcong: backcong,\n backepsilon: backepsilon,\n backprime: backprime,\n backsim: backsim,\n backsimeq: backsimeq,\n Backslash: Backslash,\n Barv: Barv,\n barvee: barvee,\n barwed: barwed,\n Barwed: Barwed,\n barwedge: barwedge,\n bbrk: bbrk,\n bbrktbrk: bbrktbrk,\n bcong: bcong,\n Bcy: Bcy,\n bcy: bcy,\n bdquo: bdquo,\n becaus: becaus,\n because: because,\n Because: Because,\n bemptyv: bemptyv,\n bepsi: bepsi,\n bernou: bernou,\n Bernoullis: Bernoullis,\n Beta: Beta,\n beta: beta,\n beth: beth,\n between: between,\n Bfr: Bfr,\n bfr: bfr,\n bigcap: bigcap,\n bigcirc: bigcirc,\n bigcup: bigcup,\n bigodot: bigodot,\n bigoplus: bigoplus,\n bigotimes: bigotimes,\n bigsqcup: bigsqcup,\n bigstar: bigstar,\n bigtriangledown: bigtriangledown,\n bigtriangleup: bigtriangleup,\n biguplus: biguplus,\n bigvee: bigvee,\n bigwedge: bigwedge,\n bkarow: bkarow,\n blacklozenge: blacklozenge,\n blacksquare: blacksquare,\n blacktriangle: blacktriangle,\n blacktriangledown: blacktriangledown,\n blacktriangleleft: blacktriangleleft,\n blacktriangleright: blacktriangleright,\n blank: blank,\n blk12: blk12,\n blk14: blk14,\n blk34: blk34,\n block: block$1,\n bne: bne,\n bnequiv: bnequiv,\n bNot: bNot,\n bnot: bnot,\n Bopf: Bopf,\n bopf: bopf,\n bot: bot,\n bottom: bottom,\n bowtie: bowtie,\n boxbox: boxbox,\n boxdl: boxdl,\n boxdL: boxdL,\n boxDl: boxDl,\n boxDL: boxDL,\n boxdr: boxdr,\n boxdR: boxdR,\n boxDr: boxDr,\n boxDR: boxDR,\n boxh: boxh,\n boxH: boxH,\n boxhd: boxhd,\n boxHd: boxHd,\n boxhD: boxhD,\n boxHD: boxHD,\n boxhu: boxhu,\n boxHu: boxHu,\n boxhU: boxhU,\n boxHU: boxHU,\n boxminus: boxminus,\n boxplus: boxplus,\n boxtimes: boxtimes,\n boxul: boxul,\n boxuL: boxuL,\n boxUl: boxUl,\n boxUL: boxUL,\n boxur: boxur,\n boxuR: boxuR,\n boxUr: boxUr,\n boxUR: boxUR,\n boxv: boxv,\n boxV: boxV,\n boxvh: boxvh,\n boxvH: boxvH,\n boxVh: boxVh,\n boxVH: boxVH,\n boxvl: boxvl,\n boxvL: boxvL,\n boxVl: boxVl,\n boxVL: boxVL,\n boxvr: boxvr,\n boxvR: boxvR,\n boxVr: boxVr,\n boxVR: boxVR,\n bprime: bprime,\n breve: breve,\n Breve: Breve,\n brvbar: brvbar,\n bscr: bscr,\n Bscr: Bscr,\n bsemi: bsemi,\n bsim: bsim,\n bsime: bsime,\n bsolb: bsolb,\n bsol: bsol,\n bsolhsub: bsolhsub,\n bull: bull,\n bullet: bullet,\n bump: bump,\n bumpE: bumpE,\n bumpe: bumpe,\n Bumpeq: Bumpeq,\n bumpeq: bumpeq,\n Cacute: Cacute,\n cacute: cacute,\n capand: capand,\n capbrcup: capbrcup,\n capcap: capcap,\n cap: cap,\n Cap: Cap,\n capcup: capcup,\n capdot: capdot,\n CapitalDifferentialD: CapitalDifferentialD,\n caps: caps,\n caret: caret,\n caron: caron,\n Cayleys: Cayleys,\n ccaps: ccaps,\n Ccaron: Ccaron,\n ccaron: ccaron,\n Ccedil: Ccedil,\n ccedil: ccedil,\n Ccirc: Ccirc,\n ccirc: ccirc,\n Cconint: Cconint,\n ccups: ccups,\n ccupssm: ccupssm,\n Cdot: Cdot,\n cdot: cdot,\n cedil: cedil,\n Cedilla: Cedilla,\n cemptyv: cemptyv,\n cent: cent,\n centerdot: centerdot,\n CenterDot: CenterDot,\n cfr: cfr,\n Cfr: Cfr,\n CHcy: CHcy,\n chcy: chcy,\n check: check,\n checkmark: checkmark,\n Chi: Chi,\n chi: chi,\n circ: circ,\n circeq: circeq,\n circlearrowleft: circlearrowleft,\n circlearrowright: circlearrowright,\n circledast: circledast,\n circledcirc: circledcirc,\n circleddash: circleddash,\n CircleDot: CircleDot,\n circledR: circledR,\n circledS: circledS,\n CircleMinus: CircleMinus,\n CirclePlus: CirclePlus,\n CircleTimes: CircleTimes,\n cir: cir,\n cirE: cirE,\n cire: cire,\n cirfnint: cirfnint,\n cirmid: cirmid,\n cirscir: cirscir,\n ClockwiseContourIntegral: ClockwiseContourIntegral,\n CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,\n CloseCurlyQuote: CloseCurlyQuote,\n clubs: clubs,\n clubsuit: clubsuit,\n colon: colon,\n Colon: Colon,\n Colone: Colone,\n colone: colone,\n coloneq: coloneq,\n comma: comma,\n commat: commat,\n comp: comp,\n compfn: compfn,\n complement: complement,\n complexes: complexes,\n cong: cong,\n congdot: congdot,\n Congruent: Congruent,\n conint: conint,\n Conint: Conint,\n ContourIntegral: ContourIntegral,\n copf: copf,\n Copf: Copf,\n coprod: coprod,\n Coproduct: Coproduct,\n copy: copy$1,\n COPY: COPY$1,\n copysr: copysr,\n CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,\n crarr: crarr,\n cross: cross,\n Cross: Cross,\n Cscr: Cscr,\n cscr: cscr,\n csub: csub,\n csube: csube,\n csup: csup,\n csupe: csupe,\n ctdot: ctdot,\n cudarrl: cudarrl,\n cudarrr: cudarrr,\n cuepr: cuepr,\n cuesc: cuesc,\n cularr: cularr,\n cularrp: cularrp,\n cupbrcap: cupbrcap,\n cupcap: cupcap,\n CupCap: CupCap,\n cup: cup,\n Cup: Cup,\n cupcup: cupcup,\n cupdot: cupdot,\n cupor: cupor,\n cups: cups,\n curarr: curarr,\n curarrm: curarrm,\n curlyeqprec: curlyeqprec,\n curlyeqsucc: curlyeqsucc,\n curlyvee: curlyvee,\n curlywedge: curlywedge,\n curren: curren,\n curvearrowleft: curvearrowleft,\n curvearrowright: curvearrowright,\n cuvee: cuvee,\n cuwed: cuwed,\n cwconint: cwconint,\n cwint: cwint,\n cylcty: cylcty,\n dagger: dagger,\n Dagger: Dagger,\n daleth: daleth,\n darr: darr,\n Darr: Darr,\n dArr: dArr,\n dash: dash,\n Dashv: Dashv,\n dashv: dashv,\n dbkarow: dbkarow,\n dblac: dblac,\n Dcaron: Dcaron,\n dcaron: dcaron,\n Dcy: Dcy,\n dcy: dcy,\n ddagger: ddagger,\n ddarr: ddarr,\n DD: DD,\n dd: dd,\n DDotrahd: DDotrahd,\n ddotseq: ddotseq,\n deg: deg,\n Del: Del,\n Delta: Delta,\n delta: delta,\n demptyv: demptyv,\n dfisht: dfisht,\n Dfr: Dfr,\n dfr: dfr,\n dHar: dHar,\n dharl: dharl,\n dharr: dharr,\n DiacriticalAcute: DiacriticalAcute,\n DiacriticalDot: DiacriticalDot,\n DiacriticalDoubleAcute: DiacriticalDoubleAcute,\n DiacriticalGrave: DiacriticalGrave,\n DiacriticalTilde: DiacriticalTilde,\n diam: diam,\n diamond: diamond,\n Diamond: Diamond,\n diamondsuit: diamondsuit,\n diams: diams,\n die: die,\n DifferentialD: DifferentialD,\n digamma: digamma,\n disin: disin,\n div: div,\n divide: divide,\n divideontimes: divideontimes,\n divonx: divonx,\n DJcy: DJcy,\n djcy: djcy,\n dlcorn: dlcorn,\n dlcrop: dlcrop,\n dollar: dollar,\n Dopf: Dopf,\n dopf: dopf,\n Dot: Dot,\n dot: dot,\n DotDot: DotDot,\n doteq: doteq,\n doteqdot: doteqdot,\n DotEqual: DotEqual,\n dotminus: dotminus,\n dotplus: dotplus,\n dotsquare: dotsquare,\n doublebarwedge: doublebarwedge,\n DoubleContourIntegral: DoubleContourIntegral,\n DoubleDot: DoubleDot,\n DoubleDownArrow: DoubleDownArrow,\n DoubleLeftArrow: DoubleLeftArrow,\n DoubleLeftRightArrow: DoubleLeftRightArrow,\n DoubleLeftTee: DoubleLeftTee,\n DoubleLongLeftArrow: DoubleLongLeftArrow,\n DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,\n DoubleLongRightArrow: DoubleLongRightArrow,\n DoubleRightArrow: DoubleRightArrow,\n DoubleRightTee: DoubleRightTee,\n DoubleUpArrow: DoubleUpArrow,\n DoubleUpDownArrow: DoubleUpDownArrow,\n DoubleVerticalBar: DoubleVerticalBar,\n DownArrowBar: DownArrowBar,\n downarrow: downarrow,\n DownArrow: DownArrow,\n Downarrow: Downarrow,\n DownArrowUpArrow: DownArrowUpArrow,\n DownBreve: DownBreve,\n downdownarrows: downdownarrows,\n downharpoonleft: downharpoonleft,\n downharpoonright: downharpoonright,\n DownLeftRightVector: DownLeftRightVector,\n DownLeftTeeVector: DownLeftTeeVector,\n DownLeftVectorBar: DownLeftVectorBar,\n DownLeftVector: DownLeftVector,\n DownRightTeeVector: DownRightTeeVector,\n DownRightVectorBar: DownRightVectorBar,\n DownRightVector: DownRightVector,\n DownTeeArrow: DownTeeArrow,\n DownTee: DownTee,\n drbkarow: drbkarow,\n drcorn: drcorn,\n drcrop: drcrop,\n Dscr: Dscr,\n dscr: dscr,\n DScy: DScy,\n dscy: dscy,\n dsol: dsol,\n Dstrok: Dstrok,\n dstrok: dstrok,\n dtdot: dtdot,\n dtri: dtri,\n dtrif: dtrif,\n duarr: duarr,\n duhar: duhar,\n dwangle: dwangle,\n DZcy: DZcy,\n dzcy: dzcy,\n dzigrarr: dzigrarr,\n Eacute: Eacute,\n eacute: eacute,\n easter: easter,\n Ecaron: Ecaron,\n ecaron: ecaron,\n Ecirc: Ecirc,\n ecirc: ecirc,\n ecir: ecir,\n ecolon: ecolon,\n Ecy: Ecy,\n ecy: ecy,\n eDDot: eDDot,\n Edot: Edot,\n edot: edot,\n eDot: eDot,\n ee: ee,\n efDot: efDot,\n Efr: Efr,\n efr: efr,\n eg: eg,\n Egrave: Egrave,\n egrave: egrave,\n egs: egs,\n egsdot: egsdot,\n el: el,\n Element: Element,\n elinters: elinters,\n ell: ell,\n els: els,\n elsdot: elsdot,\n Emacr: Emacr,\n emacr: emacr,\n empty: empty$2,\n emptyset: emptyset,\n EmptySmallSquare: EmptySmallSquare,\n emptyv: emptyv,\n EmptyVerySmallSquare: EmptyVerySmallSquare,\n emsp13: emsp13,\n emsp14: emsp14,\n emsp: emsp,\n ENG: ENG,\n eng: eng,\n ensp: ensp,\n Eogon: Eogon,\n eogon: eogon,\n Eopf: Eopf,\n eopf: eopf,\n epar: epar,\n eparsl: eparsl,\n eplus: eplus,\n epsi: epsi,\n Epsilon: Epsilon,\n epsilon: epsilon,\n epsiv: epsiv,\n eqcirc: eqcirc,\n eqcolon: eqcolon,\n eqsim: eqsim,\n eqslantgtr: eqslantgtr,\n eqslantless: eqslantless,\n Equal: Equal,\n equals: equals,\n EqualTilde: EqualTilde,\n equest: equest,\n Equilibrium: Equilibrium,\n equiv: equiv,\n equivDD: equivDD,\n eqvparsl: eqvparsl,\n erarr: erarr,\n erDot: erDot,\n escr: escr,\n Escr: Escr,\n esdot: esdot,\n Esim: Esim,\n esim: esim,\n Eta: Eta,\n eta: eta,\n ETH: ETH,\n eth: eth,\n Euml: Euml,\n euml: euml,\n euro: euro,\n excl: excl,\n exist: exist,\n Exists: Exists,\n expectation: expectation,\n exponentiale: exponentiale,\n ExponentialE: ExponentialE,\n fallingdotseq: fallingdotseq,\n Fcy: Fcy,\n fcy: fcy,\n female: female,\n ffilig: ffilig,\n fflig: fflig,\n ffllig: ffllig,\n Ffr: Ffr,\n ffr: ffr,\n filig: filig,\n FilledSmallSquare: FilledSmallSquare,\n FilledVerySmallSquare: FilledVerySmallSquare,\n fjlig: fjlig,\n flat: flat,\n fllig: fllig,\n fltns: fltns,\n fnof: fnof,\n Fopf: Fopf,\n fopf: fopf,\n forall: forall,\n ForAll: ForAll,\n fork: fork,\n forkv: forkv,\n Fouriertrf: Fouriertrf,\n fpartint: fpartint,\n frac12: frac12,\n frac13: frac13,\n frac14: frac14,\n frac15: frac15,\n frac16: frac16,\n frac18: frac18,\n frac23: frac23,\n frac25: frac25,\n frac34: frac34,\n frac35: frac35,\n frac38: frac38,\n frac45: frac45,\n frac56: frac56,\n frac58: frac58,\n frac78: frac78,\n frasl: frasl,\n frown: frown,\n fscr: fscr,\n Fscr: Fscr,\n gacute: gacute,\n Gamma: Gamma,\n gamma: gamma,\n Gammad: Gammad,\n gammad: gammad,\n gap: gap,\n Gbreve: Gbreve,\n gbreve: gbreve,\n Gcedil: Gcedil,\n Gcirc: Gcirc,\n gcirc: gcirc,\n Gcy: Gcy,\n gcy: gcy,\n Gdot: Gdot,\n gdot: gdot,\n ge: ge,\n gE: gE,\n gEl: gEl,\n gel: gel,\n geq: geq,\n geqq: geqq,\n geqslant: geqslant,\n gescc: gescc,\n ges: ges,\n gesdot: gesdot,\n gesdoto: gesdoto,\n gesdotol: gesdotol,\n gesl: gesl,\n gesles: gesles,\n Gfr: Gfr,\n gfr: gfr,\n gg: gg,\n Gg: Gg,\n ggg: ggg,\n gimel: gimel,\n GJcy: GJcy,\n gjcy: gjcy,\n gla: gla,\n gl: gl,\n glE: glE,\n glj: glj,\n gnap: gnap,\n gnapprox: gnapprox,\n gne: gne,\n gnE: gnE,\n gneq: gneq,\n gneqq: gneqq,\n gnsim: gnsim,\n Gopf: Gopf,\n gopf: gopf,\n grave: grave,\n GreaterEqual: GreaterEqual,\n GreaterEqualLess: GreaterEqualLess,\n GreaterFullEqual: GreaterFullEqual,\n GreaterGreater: GreaterGreater,\n GreaterLess: GreaterLess,\n GreaterSlantEqual: GreaterSlantEqual,\n GreaterTilde: GreaterTilde,\n Gscr: Gscr,\n gscr: gscr,\n gsim: gsim,\n gsime: gsime,\n gsiml: gsiml,\n gtcc: gtcc,\n gtcir: gtcir,\n gt: gt,\n GT: GT,\n Gt: Gt,\n gtdot: gtdot,\n gtlPar: gtlPar,\n gtquest: gtquest,\n gtrapprox: gtrapprox,\n gtrarr: gtrarr,\n gtrdot: gtrdot,\n gtreqless: gtreqless,\n gtreqqless: gtreqqless,\n gtrless: gtrless,\n gtrsim: gtrsim,\n gvertneqq: gvertneqq,\n gvnE: gvnE,\n Hacek: Hacek,\n hairsp: hairsp,\n half: half,\n hamilt: hamilt,\n HARDcy: HARDcy,\n hardcy: hardcy,\n harrcir: harrcir,\n harr: harr,\n hArr: hArr,\n harrw: harrw,\n Hat: Hat,\n hbar: hbar,\n Hcirc: Hcirc,\n hcirc: hcirc,\n hearts: hearts,\n heartsuit: heartsuit,\n hellip: hellip,\n hercon: hercon,\n hfr: hfr,\n Hfr: Hfr,\n HilbertSpace: HilbertSpace,\n hksearow: hksearow,\n hkswarow: hkswarow,\n hoarr: hoarr,\n homtht: homtht,\n hookleftarrow: hookleftarrow,\n hookrightarrow: hookrightarrow,\n hopf: hopf,\n Hopf: Hopf,\n horbar: horbar,\n HorizontalLine: HorizontalLine,\n hscr: hscr,\n Hscr: Hscr,\n hslash: hslash,\n Hstrok: Hstrok,\n hstrok: hstrok,\n HumpDownHump: HumpDownHump,\n HumpEqual: HumpEqual,\n hybull: hybull,\n hyphen: hyphen,\n Iacute: Iacute,\n iacute: iacute,\n ic: ic,\n Icirc: Icirc,\n icirc: icirc,\n Icy: Icy,\n icy: icy,\n Idot: Idot,\n IEcy: IEcy,\n iecy: iecy,\n iexcl: iexcl,\n iff: iff,\n ifr: ifr,\n Ifr: Ifr,\n Igrave: Igrave,\n igrave: igrave,\n ii: ii,\n iiiint: iiiint,\n iiint: iiint,\n iinfin: iinfin,\n iiota: iiota,\n IJlig: IJlig,\n ijlig: ijlig,\n Imacr: Imacr,\n imacr: imacr,\n image: image$1,\n ImaginaryI: ImaginaryI,\n imagline: imagline,\n imagpart: imagpart,\n imath: imath,\n Im: Im,\n imof: imof,\n imped: imped,\n Implies: Implies,\n incare: incare,\n \"in\": \"∈\",\n infin: infin,\n infintie: infintie,\n inodot: inodot,\n intcal: intcal,\n int: int$2,\n Int: Int,\n integers: integers,\n Integral: Integral,\n intercal: intercal,\n Intersection: Intersection,\n intlarhk: intlarhk,\n intprod: intprod,\n InvisibleComma: InvisibleComma,\n InvisibleTimes: InvisibleTimes,\n IOcy: IOcy,\n iocy: iocy,\n Iogon: Iogon,\n iogon: iogon,\n Iopf: Iopf,\n iopf: iopf,\n Iota: Iota,\n iota: iota,\n iprod: iprod,\n iquest: iquest,\n iscr: iscr,\n Iscr: Iscr,\n isin: isin,\n isindot: isindot,\n isinE: isinE,\n isins: isins,\n isinsv: isinsv,\n isinv: isinv,\n it: it,\n Itilde: Itilde,\n itilde: itilde,\n Iukcy: Iukcy,\n iukcy: iukcy,\n Iuml: Iuml,\n iuml: iuml,\n Jcirc: Jcirc,\n jcirc: jcirc,\n Jcy: Jcy,\n jcy: jcy,\n Jfr: Jfr,\n jfr: jfr,\n jmath: jmath,\n Jopf: Jopf,\n jopf: jopf,\n Jscr: Jscr,\n jscr: jscr,\n Jsercy: Jsercy,\n jsercy: jsercy,\n Jukcy: Jukcy,\n jukcy: jukcy,\n Kappa: Kappa,\n kappa: kappa,\n kappav: kappav,\n Kcedil: Kcedil,\n kcedil: kcedil,\n Kcy: Kcy,\n kcy: kcy,\n Kfr: Kfr,\n kfr: kfr,\n kgreen: kgreen,\n KHcy: KHcy,\n khcy: khcy,\n KJcy: KJcy,\n kjcy: kjcy,\n Kopf: Kopf,\n kopf: kopf,\n Kscr: Kscr,\n kscr: kscr,\n lAarr: lAarr,\n Lacute: Lacute,\n lacute: lacute,\n laemptyv: laemptyv,\n lagran: lagran,\n Lambda: Lambda,\n lambda: lambda,\n lang: lang,\n Lang: Lang,\n langd: langd,\n langle: langle,\n lap: lap,\n Laplacetrf: Laplacetrf,\n laquo: laquo,\n larrb: larrb,\n larrbfs: larrbfs,\n larr: larr,\n Larr: Larr,\n lArr: lArr,\n larrfs: larrfs,\n larrhk: larrhk,\n larrlp: larrlp,\n larrpl: larrpl,\n larrsim: larrsim,\n larrtl: larrtl,\n latail: latail,\n lAtail: lAtail,\n lat: lat,\n late: late,\n lates: lates,\n lbarr: lbarr,\n lBarr: lBarr,\n lbbrk: lbbrk,\n lbrace: lbrace,\n lbrack: lbrack,\n lbrke: lbrke,\n lbrksld: lbrksld,\n lbrkslu: lbrkslu,\n Lcaron: Lcaron,\n lcaron: lcaron,\n Lcedil: Lcedil,\n lcedil: lcedil,\n lceil: lceil,\n lcub: lcub,\n Lcy: Lcy,\n lcy: lcy,\n ldca: ldca,\n ldquo: ldquo,\n ldquor: ldquor,\n ldrdhar: ldrdhar,\n ldrushar: ldrushar,\n ldsh: ldsh,\n le: le,\n lE: lE,\n LeftAngleBracket: LeftAngleBracket,\n LeftArrowBar: LeftArrowBar,\n leftarrow: leftarrow,\n LeftArrow: LeftArrow,\n Leftarrow: Leftarrow,\n LeftArrowRightArrow: LeftArrowRightArrow,\n leftarrowtail: leftarrowtail,\n LeftCeiling: LeftCeiling,\n LeftDoubleBracket: LeftDoubleBracket,\n LeftDownTeeVector: LeftDownTeeVector,\n LeftDownVectorBar: LeftDownVectorBar,\n LeftDownVector: LeftDownVector,\n LeftFloor: LeftFloor,\n leftharpoondown: leftharpoondown,\n leftharpoonup: leftharpoonup,\n leftleftarrows: leftleftarrows,\n leftrightarrow: leftrightarrow,\n LeftRightArrow: LeftRightArrow,\n Leftrightarrow: Leftrightarrow,\n leftrightarrows: leftrightarrows,\n leftrightharpoons: leftrightharpoons,\n leftrightsquigarrow: leftrightsquigarrow,\n LeftRightVector: LeftRightVector,\n LeftTeeArrow: LeftTeeArrow,\n LeftTee: LeftTee,\n LeftTeeVector: LeftTeeVector,\n leftthreetimes: leftthreetimes,\n LeftTriangleBar: LeftTriangleBar,\n LeftTriangle: LeftTriangle,\n LeftTriangleEqual: LeftTriangleEqual,\n LeftUpDownVector: LeftUpDownVector,\n LeftUpTeeVector: LeftUpTeeVector,\n LeftUpVectorBar: LeftUpVectorBar,\n LeftUpVector: LeftUpVector,\n LeftVectorBar: LeftVectorBar,\n LeftVector: LeftVector,\n lEg: lEg,\n leg: leg,\n leq: leq,\n leqq: leqq,\n leqslant: leqslant,\n lescc: lescc,\n les: les,\n lesdot: lesdot,\n lesdoto: lesdoto,\n lesdotor: lesdotor,\n lesg: lesg,\n lesges: lesges,\n lessapprox: lessapprox,\n lessdot: lessdot,\n lesseqgtr: lesseqgtr,\n lesseqqgtr: lesseqqgtr,\n LessEqualGreater: LessEqualGreater,\n LessFullEqual: LessFullEqual,\n LessGreater: LessGreater,\n lessgtr: lessgtr,\n LessLess: LessLess,\n lesssim: lesssim,\n LessSlantEqual: LessSlantEqual,\n LessTilde: LessTilde,\n lfisht: lfisht,\n lfloor: lfloor,\n Lfr: Lfr,\n lfr: lfr,\n lg: lg,\n lgE: lgE,\n lHar: lHar,\n lhard: lhard,\n lharu: lharu,\n lharul: lharul,\n lhblk: lhblk,\n LJcy: LJcy,\n ljcy: ljcy,\n llarr: llarr,\n ll: ll,\n Ll: Ll,\n llcorner: llcorner,\n Lleftarrow: Lleftarrow,\n llhard: llhard,\n lltri: lltri,\n Lmidot: Lmidot,\n lmidot: lmidot,\n lmoustache: lmoustache,\n lmoust: lmoust,\n lnap: lnap,\n lnapprox: lnapprox,\n lne: lne,\n lnE: lnE,\n lneq: lneq,\n lneqq: lneqq,\n lnsim: lnsim,\n loang: loang,\n loarr: loarr,\n lobrk: lobrk,\n longleftarrow: longleftarrow,\n LongLeftArrow: LongLeftArrow,\n Longleftarrow: Longleftarrow,\n longleftrightarrow: longleftrightarrow,\n LongLeftRightArrow: LongLeftRightArrow,\n Longleftrightarrow: Longleftrightarrow,\n longmapsto: longmapsto,\n longrightarrow: longrightarrow,\n LongRightArrow: LongRightArrow,\n Longrightarrow: Longrightarrow,\n looparrowleft: looparrowleft,\n looparrowright: looparrowright,\n lopar: lopar,\n Lopf: Lopf,\n lopf: lopf,\n loplus: loplus,\n lotimes: lotimes,\n lowast: lowast,\n lowbar: lowbar,\n LowerLeftArrow: LowerLeftArrow,\n LowerRightArrow: LowerRightArrow,\n loz: loz,\n lozenge: lozenge,\n lozf: lozf,\n lpar: lpar,\n lparlt: lparlt,\n lrarr: lrarr,\n lrcorner: lrcorner,\n lrhar: lrhar,\n lrhard: lrhard,\n lrm: lrm,\n lrtri: lrtri,\n lsaquo: lsaquo,\n lscr: lscr,\n Lscr: Lscr,\n lsh: lsh,\n Lsh: Lsh,\n lsim: lsim,\n lsime: lsime,\n lsimg: lsimg,\n lsqb: lsqb,\n lsquo: lsquo,\n lsquor: lsquor,\n Lstrok: Lstrok,\n lstrok: lstrok,\n ltcc: ltcc,\n ltcir: ltcir,\n lt: lt,\n LT: LT,\n Lt: Lt,\n ltdot: ltdot,\n lthree: lthree,\n ltimes: ltimes,\n ltlarr: ltlarr,\n ltquest: ltquest,\n ltri: ltri,\n ltrie: ltrie,\n ltrif: ltrif,\n ltrPar: ltrPar,\n lurdshar: lurdshar,\n luruhar: luruhar,\n lvertneqq: lvertneqq,\n lvnE: lvnE,\n macr: macr,\n male: male,\n malt: malt,\n maltese: maltese,\n \"Map\": \"⤅\",\n map: map$4,\n mapsto: mapsto,\n mapstodown: mapstodown,\n mapstoleft: mapstoleft,\n mapstoup: mapstoup,\n marker: marker,\n mcomma: mcomma,\n Mcy: Mcy,\n mcy: mcy,\n mdash: mdash,\n mDDot: mDDot,\n measuredangle: measuredangle,\n MediumSpace: MediumSpace,\n Mellintrf: Mellintrf,\n Mfr: Mfr,\n mfr: mfr,\n mho: mho,\n micro: micro,\n midast: midast,\n midcir: midcir,\n mid: mid,\n middot: middot,\n minusb: minusb,\n minus: minus,\n minusd: minusd,\n minusdu: minusdu,\n MinusPlus: MinusPlus,\n mlcp: mlcp,\n mldr: mldr,\n mnplus: mnplus,\n models: models,\n Mopf: Mopf,\n mopf: mopf,\n mp: mp,\n mscr: mscr,\n Mscr: Mscr,\n mstpos: mstpos,\n Mu: Mu,\n mu: mu,\n multimap: multimap,\n mumap: mumap,\n nabla: nabla,\n Nacute: Nacute,\n nacute: nacute,\n nang: nang,\n nap: nap,\n napE: napE,\n napid: napid,\n napos: napos,\n napprox: napprox,\n natural: natural,\n naturals: naturals,\n natur: natur,\n nbsp: nbsp,\n nbump: nbump,\n nbumpe: nbumpe,\n ncap: ncap,\n Ncaron: Ncaron,\n ncaron: ncaron,\n Ncedil: Ncedil,\n ncedil: ncedil,\n ncong: ncong,\n ncongdot: ncongdot,\n ncup: ncup,\n Ncy: Ncy,\n ncy: ncy,\n ndash: ndash,\n nearhk: nearhk,\n nearr: nearr,\n neArr: neArr,\n nearrow: nearrow,\n ne: ne,\n nedot: nedot,\n NegativeMediumSpace: NegativeMediumSpace,\n NegativeThickSpace: NegativeThickSpace,\n NegativeThinSpace: NegativeThinSpace,\n NegativeVeryThinSpace: NegativeVeryThinSpace,\n nequiv: nequiv,\n nesear: nesear,\n nesim: nesim,\n NestedGreaterGreater: NestedGreaterGreater,\n NestedLessLess: NestedLessLess,\n NewLine: NewLine,\n nexist: nexist,\n nexists: nexists,\n Nfr: Nfr,\n nfr: nfr,\n ngE: ngE,\n nge: nge,\n ngeq: ngeq,\n ngeqq: ngeqq,\n ngeqslant: ngeqslant,\n nges: nges,\n nGg: nGg,\n ngsim: ngsim,\n nGt: nGt,\n ngt: ngt,\n ngtr: ngtr,\n nGtv: nGtv,\n nharr: nharr,\n nhArr: nhArr,\n nhpar: nhpar,\n ni: ni,\n nis: nis,\n nisd: nisd,\n niv: niv,\n NJcy: NJcy,\n njcy: njcy,\n nlarr: nlarr,\n nlArr: nlArr,\n nldr: nldr,\n nlE: nlE,\n nle: nle,\n nleftarrow: nleftarrow,\n nLeftarrow: nLeftarrow,\n nleftrightarrow: nleftrightarrow,\n nLeftrightarrow: nLeftrightarrow,\n nleq: nleq,\n nleqq: nleqq,\n nleqslant: nleqslant,\n nles: nles,\n nless: nless,\n nLl: nLl,\n nlsim: nlsim,\n nLt: nLt,\n nlt: nlt,\n nltri: nltri,\n nltrie: nltrie,\n nLtv: nLtv,\n nmid: nmid,\n NoBreak: NoBreak,\n NonBreakingSpace: NonBreakingSpace,\n nopf: nopf,\n Nopf: Nopf,\n Not: Not,\n not: not$1,\n NotCongruent: NotCongruent,\n NotCupCap: NotCupCap,\n NotDoubleVerticalBar: NotDoubleVerticalBar,\n NotElement: NotElement,\n NotEqual: NotEqual,\n NotEqualTilde: NotEqualTilde,\n NotExists: NotExists,\n NotGreater: NotGreater,\n NotGreaterEqual: NotGreaterEqual,\n NotGreaterFullEqual: NotGreaterFullEqual,\n NotGreaterGreater: NotGreaterGreater,\n NotGreaterLess: NotGreaterLess,\n NotGreaterSlantEqual: NotGreaterSlantEqual,\n NotGreaterTilde: NotGreaterTilde,\n NotHumpDownHump: NotHumpDownHump,\n NotHumpEqual: NotHumpEqual,\n notin: notin,\n notindot: notindot,\n notinE: notinE,\n notinva: notinva,\n notinvb: notinvb,\n notinvc: notinvc,\n NotLeftTriangleBar: NotLeftTriangleBar,\n NotLeftTriangle: NotLeftTriangle,\n NotLeftTriangleEqual: NotLeftTriangleEqual,\n NotLess: NotLess,\n NotLessEqual: NotLessEqual,\n NotLessGreater: NotLessGreater,\n NotLessLess: NotLessLess,\n NotLessSlantEqual: NotLessSlantEqual,\n NotLessTilde: NotLessTilde,\n NotNestedGreaterGreater: NotNestedGreaterGreater,\n NotNestedLessLess: NotNestedLessLess,\n notni: notni,\n notniva: notniva,\n notnivb: notnivb,\n notnivc: notnivc,\n NotPrecedes: NotPrecedes,\n NotPrecedesEqual: NotPrecedesEqual,\n NotPrecedesSlantEqual: NotPrecedesSlantEqual,\n NotReverseElement: NotReverseElement,\n NotRightTriangleBar: NotRightTriangleBar,\n NotRightTriangle: NotRightTriangle,\n NotRightTriangleEqual: NotRightTriangleEqual,\n NotSquareSubset: NotSquareSubset,\n NotSquareSubsetEqual: NotSquareSubsetEqual,\n NotSquareSuperset: NotSquareSuperset,\n NotSquareSupersetEqual: NotSquareSupersetEqual,\n NotSubset: NotSubset,\n NotSubsetEqual: NotSubsetEqual,\n NotSucceeds: NotSucceeds,\n NotSucceedsEqual: NotSucceedsEqual,\n NotSucceedsSlantEqual: NotSucceedsSlantEqual,\n NotSucceedsTilde: NotSucceedsTilde,\n NotSuperset: NotSuperset,\n NotSupersetEqual: NotSupersetEqual,\n NotTilde: NotTilde,\n NotTildeEqual: NotTildeEqual,\n NotTildeFullEqual: NotTildeFullEqual,\n NotTildeTilde: NotTildeTilde,\n NotVerticalBar: NotVerticalBar,\n nparallel: nparallel,\n npar: npar,\n nparsl: nparsl,\n npart: npart,\n npolint: npolint,\n npr: npr,\n nprcue: nprcue,\n nprec: nprec,\n npreceq: npreceq,\n npre: npre,\n nrarrc: nrarrc,\n nrarr: nrarr,\n nrArr: nrArr,\n nrarrw: nrarrw,\n nrightarrow: nrightarrow,\n nRightarrow: nRightarrow,\n nrtri: nrtri,\n nrtrie: nrtrie,\n nsc: nsc,\n nsccue: nsccue,\n nsce: nsce,\n Nscr: Nscr,\n nscr: nscr,\n nshortmid: nshortmid,\n nshortparallel: nshortparallel,\n nsim: nsim,\n nsime: nsime,\n nsimeq: nsimeq,\n nsmid: nsmid,\n nspar: nspar,\n nsqsube: nsqsube,\n nsqsupe: nsqsupe,\n nsub: nsub,\n nsubE: nsubE,\n nsube: nsube,\n nsubset: nsubset,\n nsubseteq: nsubseteq,\n nsubseteqq: nsubseteqq,\n nsucc: nsucc,\n nsucceq: nsucceq,\n nsup: nsup,\n nsupE: nsupE,\n nsupe: nsupe,\n nsupset: nsupset,\n nsupseteq: nsupseteq,\n nsupseteqq: nsupseteqq,\n ntgl: ntgl,\n Ntilde: Ntilde,\n ntilde: ntilde,\n ntlg: ntlg,\n ntriangleleft: ntriangleleft,\n ntrianglelefteq: ntrianglelefteq,\n ntriangleright: ntriangleright,\n ntrianglerighteq: ntrianglerighteq,\n Nu: Nu,\n nu: nu,\n num: num,\n numero: numero,\n numsp: numsp,\n nvap: nvap,\n nvdash: nvdash,\n nvDash: nvDash,\n nVdash: nVdash,\n nVDash: nVDash,\n nvge: nvge,\n nvgt: nvgt,\n nvHarr: nvHarr,\n nvinfin: nvinfin,\n nvlArr: nvlArr,\n nvle: nvle,\n nvlt: nvlt,\n nvltrie: nvltrie,\n nvrArr: nvrArr,\n nvrtrie: nvrtrie,\n nvsim: nvsim,\n nwarhk: nwarhk,\n nwarr: nwarr,\n nwArr: nwArr,\n nwarrow: nwarrow,\n nwnear: nwnear,\n Oacute: Oacute,\n oacute: oacute,\n oast: oast,\n Ocirc: Ocirc,\n ocirc: ocirc,\n ocir: ocir,\n Ocy: Ocy,\n ocy: ocy,\n odash: odash,\n Odblac: Odblac,\n odblac: odblac,\n odiv: odiv,\n odot: odot,\n odsold: odsold,\n OElig: OElig,\n oelig: oelig,\n ofcir: ofcir,\n Ofr: Ofr,\n ofr: ofr,\n ogon: ogon,\n Ograve: Ograve,\n ograve: ograve,\n ogt: ogt,\n ohbar: ohbar,\n ohm: ohm,\n oint: oint,\n olarr: olarr,\n olcir: olcir,\n olcross: olcross,\n oline: oline,\n olt: olt,\n Omacr: Omacr,\n omacr: omacr,\n Omega: Omega,\n omega: omega,\n Omicron: Omicron,\n omicron: omicron,\n omid: omid,\n ominus: ominus,\n Oopf: Oopf,\n oopf: oopf,\n opar: opar,\n OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,\n OpenCurlyQuote: OpenCurlyQuote,\n operp: operp,\n oplus: oplus,\n orarr: orarr,\n Or: Or,\n or: or,\n ord: ord,\n order: order,\n orderof: orderof,\n ordf: ordf,\n ordm: ordm,\n origof: origof,\n oror: oror,\n orslope: orslope,\n orv: orv,\n oS: oS,\n Oscr: Oscr,\n oscr: oscr,\n Oslash: Oslash,\n oslash: oslash,\n osol: osol,\n Otilde: Otilde,\n otilde: otilde,\n otimesas: otimesas,\n Otimes: Otimes,\n otimes: otimes,\n Ouml: Ouml,\n ouml: ouml,\n ovbar: ovbar,\n OverBar: OverBar,\n OverBrace: OverBrace,\n OverBracket: OverBracket,\n OverParenthesis: OverParenthesis,\n para: para,\n parallel: parallel,\n par: par,\n parsim: parsim,\n parsl: parsl,\n part: part,\n PartialD: PartialD,\n Pcy: Pcy,\n pcy: pcy,\n percnt: percnt,\n period: period,\n permil: permil,\n perp: perp,\n pertenk: pertenk,\n Pfr: Pfr,\n pfr: pfr,\n Phi: Phi,\n phi: phi,\n phiv: phiv,\n phmmat: phmmat,\n phone: phone,\n Pi: Pi,\n pi: pi,\n pitchfork: pitchfork,\n piv: piv,\n planck: planck,\n planckh: planckh,\n plankv: plankv,\n plusacir: plusacir,\n plusb: plusb,\n pluscir: pluscir,\n plus: plus,\n plusdo: plusdo,\n plusdu: plusdu,\n pluse: pluse,\n PlusMinus: PlusMinus,\n plusmn: plusmn,\n plussim: plussim,\n plustwo: plustwo,\n pm: pm,\n Poincareplane: Poincareplane,\n pointint: pointint,\n popf: popf,\n Popf: Popf,\n pound: pound,\n prap: prap,\n Pr: Pr,\n pr: pr,\n prcue: prcue,\n precapprox: precapprox,\n prec: prec,\n preccurlyeq: preccurlyeq,\n Precedes: Precedes,\n PrecedesEqual: PrecedesEqual,\n PrecedesSlantEqual: PrecedesSlantEqual,\n PrecedesTilde: PrecedesTilde,\n preceq: preceq,\n precnapprox: precnapprox,\n precneqq: precneqq,\n precnsim: precnsim,\n pre: pre,\n prE: prE,\n precsim: precsim,\n prime: prime,\n Prime: Prime,\n primes: primes,\n prnap: prnap,\n prnE: prnE,\n prnsim: prnsim,\n prod: prod,\n Product: Product,\n profalar: profalar,\n profline: profline,\n profsurf: profsurf,\n prop: prop,\n Proportional: Proportional,\n Proportion: Proportion,\n propto: propto,\n prsim: prsim,\n prurel: prurel,\n Pscr: Pscr,\n pscr: pscr,\n Psi: Psi,\n psi: psi,\n puncsp: puncsp,\n Qfr: Qfr,\n qfr: qfr,\n qint: qint,\n qopf: qopf,\n Qopf: Qopf,\n qprime: qprime,\n Qscr: Qscr,\n qscr: qscr,\n quaternions: quaternions,\n quatint: quatint,\n quest: quest,\n questeq: questeq,\n quot: quot,\n QUOT: QUOT,\n rAarr: rAarr,\n race: race,\n Racute: Racute,\n racute: racute,\n radic: radic,\n raemptyv: raemptyv,\n rang: rang,\n Rang: Rang,\n rangd: rangd,\n range: range,\n rangle: rangle,\n raquo: raquo,\n rarrap: rarrap,\n rarrb: rarrb,\n rarrbfs: rarrbfs,\n rarrc: rarrc,\n rarr: rarr,\n Rarr: Rarr,\n rArr: rArr,\n rarrfs: rarrfs,\n rarrhk: rarrhk,\n rarrlp: rarrlp,\n rarrpl: rarrpl,\n rarrsim: rarrsim,\n Rarrtl: Rarrtl,\n rarrtl: rarrtl,\n rarrw: rarrw,\n ratail: ratail,\n rAtail: rAtail,\n ratio: ratio,\n rationals: rationals,\n rbarr: rbarr,\n rBarr: rBarr,\n RBarr: RBarr,\n rbbrk: rbbrk,\n rbrace: rbrace,\n rbrack: rbrack,\n rbrke: rbrke,\n rbrksld: rbrksld,\n rbrkslu: rbrkslu,\n Rcaron: Rcaron,\n rcaron: rcaron,\n Rcedil: Rcedil,\n rcedil: rcedil,\n rceil: rceil,\n rcub: rcub,\n Rcy: Rcy,\n rcy: rcy,\n rdca: rdca,\n rdldhar: rdldhar,\n rdquo: rdquo,\n rdquor: rdquor,\n rdsh: rdsh,\n real: real,\n realine: realine,\n realpart: realpart,\n reals: reals,\n Re: Re,\n rect: rect,\n reg: reg,\n REG: REG,\n ReverseElement: ReverseElement,\n ReverseEquilibrium: ReverseEquilibrium,\n ReverseUpEquilibrium: ReverseUpEquilibrium,\n rfisht: rfisht,\n rfloor: rfloor,\n rfr: rfr,\n Rfr: Rfr,\n rHar: rHar,\n rhard: rhard,\n rharu: rharu,\n rharul: rharul,\n Rho: Rho,\n rho: rho,\n rhov: rhov,\n RightAngleBracket: RightAngleBracket,\n RightArrowBar: RightArrowBar,\n rightarrow: rightarrow,\n RightArrow: RightArrow,\n Rightarrow: Rightarrow,\n RightArrowLeftArrow: RightArrowLeftArrow,\n rightarrowtail: rightarrowtail,\n RightCeiling: RightCeiling,\n RightDoubleBracket: RightDoubleBracket,\n RightDownTeeVector: RightDownTeeVector,\n RightDownVectorBar: RightDownVectorBar,\n RightDownVector: RightDownVector,\n RightFloor: RightFloor,\n rightharpoondown: rightharpoondown,\n rightharpoonup: rightharpoonup,\n rightleftarrows: rightleftarrows,\n rightleftharpoons: rightleftharpoons,\n rightrightarrows: rightrightarrows,\n rightsquigarrow: rightsquigarrow,\n RightTeeArrow: RightTeeArrow,\n RightTee: RightTee,\n RightTeeVector: RightTeeVector,\n rightthreetimes: rightthreetimes,\n RightTriangleBar: RightTriangleBar,\n RightTriangle: RightTriangle,\n RightTriangleEqual: RightTriangleEqual,\n RightUpDownVector: RightUpDownVector,\n RightUpTeeVector: RightUpTeeVector,\n RightUpVectorBar: RightUpVectorBar,\n RightUpVector: RightUpVector,\n RightVectorBar: RightVectorBar,\n RightVector: RightVector,\n ring: ring,\n risingdotseq: risingdotseq,\n rlarr: rlarr,\n rlhar: rlhar,\n rlm: rlm,\n rmoustache: rmoustache,\n rmoust: rmoust,\n rnmid: rnmid,\n roang: roang,\n roarr: roarr,\n robrk: robrk,\n ropar: ropar,\n ropf: ropf,\n Ropf: Ropf,\n roplus: roplus,\n rotimes: rotimes,\n RoundImplies: RoundImplies,\n rpar: rpar,\n rpargt: rpargt,\n rppolint: rppolint,\n rrarr: rrarr,\n Rrightarrow: Rrightarrow,\n rsaquo: rsaquo,\n rscr: rscr,\n Rscr: Rscr,\n rsh: rsh,\n Rsh: Rsh,\n rsqb: rsqb,\n rsquo: rsquo,\n rsquor: rsquor,\n rthree: rthree,\n rtimes: rtimes,\n rtri: rtri,\n rtrie: rtrie,\n rtrif: rtrif,\n rtriltri: rtriltri,\n RuleDelayed: RuleDelayed,\n ruluhar: ruluhar,\n rx: rx,\n Sacute: Sacute,\n sacute: sacute,\n sbquo: sbquo,\n scap: scap,\n Scaron: Scaron,\n scaron: scaron,\n Sc: Sc,\n sc: sc,\n sccue: sccue,\n sce: sce,\n scE: scE,\n Scedil: Scedil,\n scedil: scedil,\n Scirc: Scirc,\n scirc: scirc,\n scnap: scnap,\n scnE: scnE,\n scnsim: scnsim,\n scpolint: scpolint,\n scsim: scsim,\n Scy: Scy,\n scy: scy,\n sdotb: sdotb,\n sdot: sdot,\n sdote: sdote,\n searhk: searhk,\n searr: searr,\n seArr: seArr,\n searrow: searrow,\n sect: sect,\n semi: semi,\n seswar: seswar,\n setminus: setminus,\n setmn: setmn,\n sext: sext,\n Sfr: Sfr,\n sfr: sfr,\n sfrown: sfrown,\n sharp: sharp,\n SHCHcy: SHCHcy,\n shchcy: shchcy,\n SHcy: SHcy,\n shcy: shcy,\n ShortDownArrow: ShortDownArrow,\n ShortLeftArrow: ShortLeftArrow,\n shortmid: shortmid,\n shortparallel: shortparallel,\n ShortRightArrow: ShortRightArrow,\n ShortUpArrow: ShortUpArrow,\n shy: shy,\n Sigma: Sigma,\n sigma: sigma,\n sigmaf: sigmaf,\n sigmav: sigmav,\n sim: sim,\n simdot: simdot,\n sime: sime,\n simeq: simeq,\n simg: simg,\n simgE: simgE,\n siml: siml,\n simlE: simlE,\n simne: simne,\n simplus: simplus,\n simrarr: simrarr,\n slarr: slarr,\n SmallCircle: SmallCircle,\n smallsetminus: smallsetminus,\n smashp: smashp,\n smeparsl: smeparsl,\n smid: smid,\n smile: smile,\n smt: smt,\n smte: smte,\n smtes: smtes,\n SOFTcy: SOFTcy,\n softcy: softcy,\n solbar: solbar,\n solb: solb,\n sol: sol,\n Sopf: Sopf,\n sopf: sopf,\n spades: spades,\n spadesuit: spadesuit,\n spar: spar,\n sqcap: sqcap,\n sqcaps: sqcaps,\n sqcup: sqcup,\n sqcups: sqcups,\n Sqrt: Sqrt,\n sqsub: sqsub,\n sqsube: sqsube,\n sqsubset: sqsubset,\n sqsubseteq: sqsubseteq,\n sqsup: sqsup,\n sqsupe: sqsupe,\n sqsupset: sqsupset,\n sqsupseteq: sqsupseteq,\n square: square,\n Square: Square,\n SquareIntersection: SquareIntersection,\n SquareSubset: SquareSubset,\n SquareSubsetEqual: SquareSubsetEqual,\n SquareSuperset: SquareSuperset,\n SquareSupersetEqual: SquareSupersetEqual,\n SquareUnion: SquareUnion,\n squarf: squarf,\n squ: squ,\n squf: squf,\n srarr: srarr,\n Sscr: Sscr,\n sscr: sscr,\n ssetmn: ssetmn,\n ssmile: ssmile,\n sstarf: sstarf,\n Star: Star,\n star: star,\n starf: starf,\n straightepsilon: straightepsilon,\n straightphi: straightphi,\n strns: strns,\n sub: sub,\n Sub: Sub,\n subdot: subdot,\n subE: subE,\n sube: sube,\n subedot: subedot,\n submult: submult,\n subnE: subnE,\n subne: subne,\n subplus: subplus,\n subrarr: subrarr,\n subset: subset,\n Subset: Subset,\n subseteq: subseteq,\n subseteqq: subseteqq,\n SubsetEqual: SubsetEqual,\n subsetneq: subsetneq,\n subsetneqq: subsetneqq,\n subsim: subsim,\n subsub: subsub,\n subsup: subsup,\n succapprox: succapprox,\n succ: succ,\n succcurlyeq: succcurlyeq,\n Succeeds: Succeeds,\n SucceedsEqual: SucceedsEqual,\n SucceedsSlantEqual: SucceedsSlantEqual,\n SucceedsTilde: SucceedsTilde,\n succeq: succeq,\n succnapprox: succnapprox,\n succneqq: succneqq,\n succnsim: succnsim,\n succsim: succsim,\n SuchThat: SuchThat,\n sum: sum,\n Sum: Sum,\n sung: sung,\n sup1: sup1,\n sup2: sup2,\n sup3: sup3,\n sup: sup,\n Sup: Sup,\n supdot: supdot,\n supdsub: supdsub,\n supE: supE,\n supe: supe,\n supedot: supedot,\n Superset: Superset,\n SupersetEqual: SupersetEqual,\n suphsol: suphsol,\n suphsub: suphsub,\n suplarr: suplarr,\n supmult: supmult,\n supnE: supnE,\n supne: supne,\n supplus: supplus,\n supset: supset,\n Supset: Supset,\n supseteq: supseteq,\n supseteqq: supseteqq,\n supsetneq: supsetneq,\n supsetneqq: supsetneqq,\n supsim: supsim,\n supsub: supsub,\n supsup: supsup,\n swarhk: swarhk,\n swarr: swarr,\n swArr: swArr,\n swarrow: swarrow,\n swnwar: swnwar,\n szlig: szlig,\n Tab: Tab,\n target: target,\n Tau: Tau,\n tau: tau,\n tbrk: tbrk,\n Tcaron: Tcaron,\n tcaron: tcaron,\n Tcedil: Tcedil,\n tcedil: tcedil,\n Tcy: Tcy,\n tcy: tcy,\n tdot: tdot,\n telrec: telrec,\n Tfr: Tfr,\n tfr: tfr,\n there4: there4,\n therefore: therefore,\n Therefore: Therefore,\n Theta: Theta,\n theta: theta,\n thetasym: thetasym,\n thetav: thetav,\n thickapprox: thickapprox,\n thicksim: thicksim,\n ThickSpace: ThickSpace,\n ThinSpace: ThinSpace,\n thinsp: thinsp,\n thkap: thkap,\n thksim: thksim,\n THORN: THORN,\n thorn: thorn,\n tilde: tilde$1,\n Tilde: Tilde,\n TildeEqual: TildeEqual,\n TildeFullEqual: TildeFullEqual,\n TildeTilde: TildeTilde,\n timesbar: timesbar,\n timesb: timesb,\n times: times,\n timesd: timesd,\n tint: tint,\n toea: toea,\n topbot: topbot,\n topcir: topcir,\n top: top,\n Topf: Topf,\n topf: topf,\n topfork: topfork,\n tosa: tosa,\n tprime: tprime,\n trade: trade,\n TRADE: TRADE,\n triangle: triangle,\n triangledown: triangledown,\n triangleleft: triangleleft,\n trianglelefteq: trianglelefteq,\n triangleq: triangleq,\n triangleright: triangleright,\n trianglerighteq: trianglerighteq,\n tridot: tridot,\n trie: trie,\n triminus: triminus,\n TripleDot: TripleDot,\n triplus: triplus,\n trisb: trisb,\n tritime: tritime,\n trpezium: trpezium,\n Tscr: Tscr,\n tscr: tscr,\n TScy: TScy,\n tscy: tscy,\n TSHcy: TSHcy,\n tshcy: tshcy,\n Tstrok: Tstrok,\n tstrok: tstrok,\n twixt: twixt,\n twoheadleftarrow: twoheadleftarrow,\n twoheadrightarrow: twoheadrightarrow,\n Uacute: Uacute,\n uacute: uacute,\n uarr: uarr,\n Uarr: Uarr,\n uArr: uArr,\n Uarrocir: Uarrocir,\n Ubrcy: Ubrcy,\n ubrcy: ubrcy,\n Ubreve: Ubreve,\n ubreve: ubreve,\n Ucirc: Ucirc,\n ucirc: ucirc,\n Ucy: Ucy,\n ucy: ucy,\n udarr: udarr,\n Udblac: Udblac,\n udblac: udblac,\n udhar: udhar,\n ufisht: ufisht,\n Ufr: Ufr,\n ufr: ufr,\n Ugrave: Ugrave,\n ugrave: ugrave,\n uHar: uHar,\n uharl: uharl,\n uharr: uharr,\n uhblk: uhblk,\n ulcorn: ulcorn,\n ulcorner: ulcorner,\n ulcrop: ulcrop,\n ultri: ultri,\n Umacr: Umacr,\n umacr: umacr,\n uml: uml,\n UnderBar: UnderBar,\n UnderBrace: UnderBrace,\n UnderBracket: UnderBracket,\n UnderParenthesis: UnderParenthesis,\n Union: Union,\n UnionPlus: UnionPlus,\n Uogon: Uogon,\n uogon: uogon,\n Uopf: Uopf,\n uopf: uopf,\n UpArrowBar: UpArrowBar,\n uparrow: uparrow,\n UpArrow: UpArrow,\n Uparrow: Uparrow,\n UpArrowDownArrow: UpArrowDownArrow,\n updownarrow: updownarrow,\n UpDownArrow: UpDownArrow,\n Updownarrow: Updownarrow,\n UpEquilibrium: UpEquilibrium,\n upharpoonleft: upharpoonleft,\n upharpoonright: upharpoonright,\n uplus: uplus,\n UpperLeftArrow: UpperLeftArrow,\n UpperRightArrow: UpperRightArrow,\n upsi: upsi,\n Upsi: Upsi,\n upsih: upsih,\n Upsilon: Upsilon,\n upsilon: upsilon,\n UpTeeArrow: UpTeeArrow,\n UpTee: UpTee,\n upuparrows: upuparrows,\n urcorn: urcorn,\n urcorner: urcorner,\n urcrop: urcrop,\n Uring: Uring,\n uring: uring,\n urtri: urtri,\n Uscr: Uscr,\n uscr: uscr,\n utdot: utdot,\n Utilde: Utilde,\n utilde: utilde,\n utri: utri,\n utrif: utrif,\n uuarr: uuarr,\n Uuml: Uuml,\n uuml: uuml,\n uwangle: uwangle,\n vangrt: vangrt,\n varepsilon: varepsilon,\n varkappa: varkappa,\n varnothing: varnothing,\n varphi: varphi,\n varpi: varpi,\n varpropto: varpropto,\n varr: varr,\n vArr: vArr,\n varrho: varrho,\n varsigma: varsigma,\n varsubsetneq: varsubsetneq,\n varsubsetneqq: varsubsetneqq,\n varsupsetneq: varsupsetneq,\n varsupsetneqq: varsupsetneqq,\n vartheta: vartheta,\n vartriangleleft: vartriangleleft,\n vartriangleright: vartriangleright,\n vBar: vBar,\n Vbar: Vbar,\n vBarv: vBarv,\n Vcy: Vcy,\n vcy: vcy,\n vdash: vdash,\n vDash: vDash,\n Vdash: Vdash,\n VDash: VDash,\n Vdashl: Vdashl,\n veebar: veebar,\n vee: vee,\n Vee: Vee,\n veeeq: veeeq,\n vellip: vellip,\n verbar: verbar,\n Verbar: Verbar,\n vert: vert,\n Vert: Vert,\n VerticalBar: VerticalBar,\n VerticalLine: VerticalLine,\n VerticalSeparator: VerticalSeparator,\n VerticalTilde: VerticalTilde,\n VeryThinSpace: VeryThinSpace,\n Vfr: Vfr,\n vfr: vfr,\n vltri: vltri,\n vnsub: vnsub,\n vnsup: vnsup,\n Vopf: Vopf,\n vopf: vopf,\n vprop: vprop,\n vrtri: vrtri,\n Vscr: Vscr,\n vscr: vscr,\n vsubnE: vsubnE,\n vsubne: vsubne,\n vsupnE: vsupnE,\n vsupne: vsupne,\n Vvdash: Vvdash,\n vzigzag: vzigzag,\n Wcirc: Wcirc,\n wcirc: wcirc,\n wedbar: wedbar,\n wedge: wedge,\n Wedge: Wedge,\n wedgeq: wedgeq,\n weierp: weierp,\n Wfr: Wfr,\n wfr: wfr,\n Wopf: Wopf,\n wopf: wopf,\n wp: wp,\n wr: wr,\n wreath: wreath,\n Wscr: Wscr,\n wscr: wscr,\n xcap: xcap,\n xcirc: xcirc,\n xcup: xcup,\n xdtri: xdtri,\n Xfr: Xfr,\n xfr: xfr,\n xharr: xharr,\n xhArr: xhArr,\n Xi: Xi,\n xi: xi,\n xlarr: xlarr,\n xlArr: xlArr,\n xmap: xmap,\n xnis: xnis,\n xodot: xodot,\n Xopf: Xopf,\n xopf: xopf,\n xoplus: xoplus,\n xotime: xotime,\n xrarr: xrarr,\n xrArr: xrArr,\n Xscr: Xscr,\n xscr: xscr,\n xsqcup: xsqcup,\n xuplus: xuplus,\n xutri: xutri,\n xvee: xvee,\n xwedge: xwedge,\n Yacute: Yacute,\n yacute: yacute,\n YAcy: YAcy,\n yacy: yacy,\n Ycirc: Ycirc,\n ycirc: ycirc,\n Ycy: Ycy,\n ycy: ycy,\n yen: yen,\n Yfr: Yfr,\n yfr: yfr,\n YIcy: YIcy,\n yicy: yicy,\n Yopf: Yopf,\n yopf: yopf,\n Yscr: Yscr,\n yscr: yscr,\n YUcy: YUcy,\n yucy: yucy,\n yuml: yuml,\n Yuml: Yuml,\n Zacute: Zacute,\n zacute: zacute,\n Zcaron: Zcaron,\n zcaron: zcaron,\n Zcy: Zcy,\n zcy: zcy,\n Zdot: Zdot,\n zdot: zdot,\n zeetrf: zeetrf,\n ZeroWidthSpace: ZeroWidthSpace,\n Zeta: Zeta,\n zeta: zeta,\n zfr: zfr,\n Zfr: Zfr,\n ZHcy: ZHcy,\n zhcy: zhcy,\n zigrarr: zigrarr,\n zopf: zopf,\n Zopf: Zopf,\n Zscr: Zscr,\n zscr: zscr,\n zwj: zwj,\n zwnj: zwnj\n };\n\n /*eslint quotes:0*/\n var entities = require$$0$4;\n\n var regex$5=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/;\n\n var encodeCache = {};\n\n\n // Create a lookup array where anything but characters in `chars` string\n // and alphanumeric chars is percent-encoded.\n //\n function getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n }\n\n\n // Encode unsafe characters with percent-encoding, skipping already\n // encoded sequences.\n //\n // - string - string to encode\n // - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n // - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n //\n function encode$2(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode$2.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n }\n\n encode$2.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\n encode$2.componentChars = \"-_.!~*'()\";\n\n\n var encode_1 = encode$2;\n\n /* eslint-disable no-bitwise */\n\n var decodeCache = {};\n\n function getDecodeCache(exclude) {\n var i, ch, cache = decodeCache[exclude];\n if (cache) { return cache; }\n\n cache = decodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n cache.push(ch);\n }\n\n for (i = 0; i < exclude.length; i++) {\n ch = exclude.charCodeAt(i);\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n }\n\n return cache;\n }\n\n\n // Decode percent-encoded string.\n //\n function decode$2(string, exclude) {\n var cache;\n\n if (typeof exclude !== 'string') {\n exclude = decode$2.defaultChars;\n }\n\n cache = getDecodeCache(exclude);\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function(seq) {\n var i, l, b1, b2, b3, b4, chr,\n result = '';\n\n for (i = 0, l = seq.length; i < l; i += 3) {\n b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n if (b1 < 0x80) {\n result += cache[b1];\n continue;\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n if ((b2 & 0xC0) === 0x80) {\n chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 3;\n continue;\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 6;\n continue;\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n } else {\n chr -= 0x10000;\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n }\n\n i += 9;\n continue;\n }\n }\n\n result += '\\ufffd';\n }\n\n return result;\n });\n }\n\n\n decode$2.defaultChars = ';/?:@&=+$,#';\n decode$2.componentChars = '';\n\n\n var decode_1 = decode$2;\n\n var format$5 = function format(url) {\n var result = '';\n\n result += url.protocol || '';\n result += url.slashes ? '//' : '';\n result += url.auth ? url.auth + '@' : '';\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']';\n } else {\n result += url.hostname || '';\n }\n\n result += url.port ? ':' + url.port : '';\n result += url.pathname || '';\n result += url.search || '';\n result += url.hash || '';\n\n return result;\n };\n\n // Copyright Joyent, Inc. and other Node contributors.\n\n //\n // Changes from joyent/node:\n //\n // 1. No leading slash in paths,\n // e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n //\n // 2. Backslashes are not replaced with slashes,\n // so `http:\\\\example.org\\` is treated like a relative path\n //\n // 3. Trailing colon is treated like a part of the path,\n // i.e. in `http://example.org:foo` pathname is `:foo`\n //\n // 4. Nothing is URL-encoded in the resulting object,\n // (in joyent/node some chars in auth and paths are encoded)\n //\n // 5. `url.parse()` does not have `parseQueryString` argument\n //\n // 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n // which can be constructed using other parts of the url.\n //\n\n\n function Url$2() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.pathname = null;\n }\n\n // Reference: RFC 3986, RFC 1808, RFC 2396\n\n // define these here so at least they only have to be\n // compiled once on the first module load.\n var protocolPattern$1 = /^([a-z0-9.+-]+:)/i,\n portPattern$1 = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern$1 = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims$1 = [ '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t' ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise$1 = [ '{', '}', '|', '\\\\', '^', '`' ].concat(delims$1),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape$1 = [ '\\'' ].concat(unwise$1),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars$1 = [ '%', '/', '?', ';', '#' ].concat(autoEscape$1),\n hostEndingChars$1 = [ '/', '?', '#' ],\n hostnameMaxLen$1 = 255,\n hostnamePartPattern$1 = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart$1 = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n /* eslint-disable no-script-url */\n // protocols that never have a hostname.\n hostlessProtocol$1 = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol$1 = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n /* eslint-enable no-script-url */\n\n function urlParse$1(url, slashesDenoteHost) {\n if (url && url instanceof Url$2) { return url; }\n\n var u = new Url$2();\n u.parse(url, slashesDenoteHost);\n return u;\n }\n\n Url$2.prototype.parse = function(url, slashesDenoteHost) {\n var i, l, lowerProto, hec, slashes,\n rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern$1.exec(rest);\n if (simplePath) {\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n }\n return this;\n }\n }\n\n var proto = protocolPattern$1.exec(rest);\n if (proto) {\n proto = proto[0];\n lowerProto = proto.toLowerCase();\n this.protocol = proto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol$1[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol$1[proto] &&\n (slashes || (proto && !slashedProtocol$1[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars$1.length; i++) {\n hec = rest.indexOf(hostEndingChars$1[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = auth;\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars$1.length; i++) {\n hec = rest.indexOf(nonHostChars$1[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length;\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd--; }\n var host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost(host);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern$1)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern$1)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart$1);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen$1) {\n this.hostname = '';\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n rest = rest.slice(0, qm);\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol$1[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '';\n }\n\n return this;\n };\n\n Url$2.prototype.parseHost = function(host) {\n var port = portPattern$1.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n };\n\n var parse$9 = urlParse$1;\n\n var encode$1 = encode_1;\n var decode$1 = decode_1;\n var format$4 = format$5;\n var parse$8 = parse$9;\n\n var mdurl = {\n encode: encode$1,\n decode: decode$1,\n format: format$4,\n parse: parse$8\n };\n\n var regex$4=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\n var regex$3=/[\\0-\\x1F\\x7F-\\x9F]/;\n\n var regex$2=/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/;\n\n var regex$1=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n\n var Any = regex$4;\n var Cc = regex$3;\n var Cf = regex$2;\n var P = regex$5;\n var Z = regex$1;\n\n var uc_micro = {\n Any: Any,\n Cc: Cc,\n Cf: Cf,\n P: P,\n Z: Z\n };\n\n var utils = createCommonjsModule(function (module, exports) {\n\n\n function _class(obj) { return Object.prototype.toString.call(obj); }\n\n function isString(obj) { return _class(obj) === '[object String]'; }\n\n var _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n function has(object, key) {\n return _hasOwnProperty.call(object, key);\n }\n\n // Merge objects\n //\n function assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n }\n\n // Remove element from array and put another array at those position.\n // Useful for some operations with tokens\n function arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n }\n\n ////////////////////////////////////////////////////////////////////////////////\n\n function isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false; }\n if (c === 0x0B) { return false; }\n if (c >= 0x0E && c <= 0x1F) { return false; }\n if (c >= 0x7F && c <= 0x9F) { return false; }\n // out of range\n if (c > 0x10FFFF) { return false; }\n return true;\n }\n\n function fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n }\n\n\n var UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\n var ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\n var UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\n var DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\n\n\n function replaceEntityPattern(match, name) {\n var code = 0;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ?\n parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n }\n\n /*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n }*/\n\n function unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) { return str; }\n return str.replace(UNESCAPE_MD_RE, '$1');\n }\n\n function unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped; }\n return replaceEntityPattern(match, entity);\n });\n }\n\n ////////////////////////////////////////////////////////////////////////////////\n\n var HTML_ESCAPE_TEST_RE = /[&<>\"]/;\n var HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\n var HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n };\n\n function replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n }\n\n function escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n }\n\n ////////////////////////////////////////////////////////////////////////////////\n\n var REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\n function escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n }\n\n ////////////////////////////////////////////////////////////////////////////////\n\n function isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n }\n\n // Zs (unicode class) || [\\t\\f\\v\\r\\n]\n function isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) { return true; }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n }\n\n ////////////////////////////////////////////////////////////////////////////////\n\n /*eslint-disable max-len*/\n\n\n // Currently without astral characters support.\n function isPunctChar(ch) {\n return regex$5.test(ch);\n }\n\n\n // Markdown ASCII punctuation characters.\n //\n // !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n // http://spec.commonmark.org/0.15/#ascii-punctuation-character\n //\n // Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n //\n function isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n }\n\n // Hepler to unify [reference labels].\n //\n function normalizeReference(str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ');\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß');\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase();\n }\n\n ////////////////////////////////////////////////////////////////////////////////\n\n // Re-export libraries commonly used in both markdown-it and its plugins,\n // so plugins won't have to depend on them explicitly, which reduces their\n // bundled size (e.g. a browser build).\n //\n exports.lib = {};\n exports.lib.mdurl = mdurl;\n exports.lib.ucmicro = uc_micro;\n\n exports.assign = assign;\n exports.isString = isString;\n exports.has = has;\n exports.unescapeMd = unescapeMd;\n exports.unescapeAll = unescapeAll;\n exports.isValidEntityCode = isValidEntityCode;\n exports.fromCodePoint = fromCodePoint;\n // exports.replaceEntities = replaceEntities;\n exports.escapeHtml = escapeHtml;\n exports.arrayReplaceAt = arrayReplaceAt;\n exports.isSpace = isSpace;\n exports.isWhiteSpace = isWhiteSpace;\n exports.isMdAsciiPunct = isMdAsciiPunct;\n exports.isPunctChar = isPunctChar;\n exports.escapeRE = escapeRE;\n exports.normalizeReference = normalizeReference;\n });\n\n // Parse link label\n\n var parse_link_label = function parseLinkLabel(state, start, disableNested) {\n var level, found, marker, prevPos,\n labelEnd = -1,\n max = state.posMax,\n oldPos = state.pos;\n\n state.pos = start + 1;\n level = 1;\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos);\n if (marker === 0x5D /* ] */) {\n level--;\n if (level === 0) {\n found = true;\n break;\n }\n }\n\n prevPos = state.pos;\n state.md.inline.skipToken(state);\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++;\n } else if (disableNested) {\n state.pos = oldPos;\n return -1;\n }\n }\n }\n\n if (found) {\n labelEnd = state.pos;\n }\n\n // restore old state\n state.pos = oldPos;\n\n return labelEnd;\n };\n\n var unescapeAll$2 = utils.unescapeAll;\n\n\n var parse_link_destination = function parseLinkDestination(str, pos, max) {\n var code, level,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x0A /* \\n */) { return result; }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1;\n result.str = unescapeAll$2(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n pos++;\n }\n\n // no closing '>'\n return result;\n }\n\n // this should be ... } else { ... branch\n\n level = 0;\n while (pos < max) {\n code = str.charCodeAt(pos);\n\n if (code === 0x20) { break; }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break; }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n if (code === 0x28 /* ( */) {\n level++;\n }\n\n if (code === 0x29 /* ) */) {\n if (level === 0) { break; }\n level--;\n }\n\n pos++;\n }\n\n if (start === pos) { return result; }\n if (level !== 0) { return result; }\n\n result.str = unescapeAll$2(str.slice(start, pos));\n result.lines = lines;\n result.pos = pos;\n result.ok = true;\n return result;\n };\n\n var unescapeAll$1 = utils.unescapeAll;\n\n\n var parse_link_title = function parseLinkTitle(str, pos, max) {\n var code,\n marker,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (pos >= max) { return result; }\n\n marker = str.charCodeAt(pos);\n\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n pos++;\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29; }\n\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === marker) {\n result.pos = pos + 1;\n result.lines = lines;\n result.str = unescapeAll$1(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n } else if (code === 0x0A) {\n lines++;\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++;\n if (str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n\n pos++;\n }\n\n return result;\n };\n\n var parseLinkLabel = parse_link_label;\n var parseLinkDestination = parse_link_destination;\n var parseLinkTitle = parse_link_title;\n\n var helpers = {\n parseLinkLabel: parseLinkLabel,\n parseLinkDestination: parseLinkDestination,\n parseLinkTitle: parseLinkTitle\n };\n\n /**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n\n\n var assign$1 = utils.assign;\n var unescapeAll = utils.unescapeAll;\n var escapeHtml = utils.escapeHtml;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n\n var default_rules = {};\n\n\n default_rules.code_inline = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n return '' +\n escapeHtml(tokens[idx].content) +\n '';\n };\n\n\n default_rules.code_block = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n return '' +\n escapeHtml(tokens[idx].content) +\n '\\n';\n };\n\n\n default_rules.fence = function (tokens, idx, options, env, slf) {\n var token = tokens[idx],\n info = token.info ? unescapeAll(token.info).trim() : '',\n langName = '',\n highlighted, i, tmpAttrs, tmpToken;\n\n if (info) {\n langName = info.split(/\\s+/g)[0];\n }\n\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName) || escapeHtml(token.content);\n } else {\n highlighted = escapeHtml(token.content);\n }\n\n if (highlighted.indexOf(''\n + highlighted\n + '\\n';\n }\n\n\n return '
'\n          + highlighted\n          + '
\\n';\n };\n\n\n default_rules.image = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env);\n\n return slf.renderToken(tokens, idx, options);\n };\n\n\n default_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '
\\n' : '
\\n';\n };\n default_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '
\\n' : '
\\n') : '\\n';\n };\n\n\n default_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content);\n };\n\n\n default_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n };\n default_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n };\n\n\n /**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\n function Renderer() {\n\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return ''; };\n * md.renderer.rules.strong_close = function () { return ''; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independent static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)\n * for more details and examples.\n **/\n this.rules = assign$1({}, default_rules);\n }\n\n\n /**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\n Renderer.prototype.renderAttrs = function renderAttrs(token) {\n var i, l, result;\n\n if (!token.attrs) { return ''; }\n\n result = '';\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n }\n\n return result;\n };\n\n\n /**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\n Renderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n var nextToken,\n result = '',\n needLf = false,\n token = tokens[idx];\n\n // Tight list paragraphs\n if (token.hidden) {\n return '';\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n';\n }\n\n // Add token name, e.g. ``.\n //\n needLf = false;\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>';\n\n return result;\n };\n\n\n /**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\n Renderer.prototype.renderInline = function (tokens, options, env) {\n var type,\n result = '',\n rules = this.rules;\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options);\n }\n }\n\n return result;\n };\n\n\n /** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\n Renderer.prototype.renderInlineAsText = function (tokens, options, env) {\n var result = '';\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n if (tokens[i].type === 'text') {\n result += tokens[i].content;\n } else if (tokens[i].type === 'image') {\n result += this.renderInlineAsText(tokens[i].children, options, env);\n }\n }\n\n return result;\n };\n\n\n /**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\n Renderer.prototype.render = function (tokens, options, env) {\n var i, len, type,\n result = '',\n rules = this.rules;\n\n for (i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env);\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[tokens[i].type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options, env);\n }\n }\n\n return result;\n };\n\n var renderer = Renderer;\n\n /**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n\n\n /**\n * new Ruler()\n **/\n function Ruler() {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = [];\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null;\n }\n\n ////////////////////////////////////////////////////////////////////////////////\n // Helper methods, should not be used directly\n\n\n // Find rule index by name\n //\n Ruler.prototype.__find__ = function (name) {\n for (var i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i;\n }\n }\n return -1;\n };\n\n\n // Build rules lookup cache\n //\n Ruler.prototype.__compile__ = function () {\n var self = this;\n var chains = [ '' ];\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName);\n }\n });\n });\n\n self.__cache__ = {};\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = [];\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return; }\n\n self.__cache__[chain].push(rule.fn);\n });\n });\n };\n\n\n /**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\n Ruler.prototype.at = function (name, fn, options) {\n var index = this.__find__(name);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name); }\n\n this.__rules__[index].fn = fn;\n this.__rules__[index].alt = opt.alt || [];\n this.__cache__ = null;\n };\n\n\n /**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\n Ruler.prototype.before = function (beforeName, ruleName, fn, options) {\n var index = this.__find__(beforeName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName); }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n };\n\n\n /**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\n Ruler.prototype.after = function (afterName, ruleName, fn, options) {\n var index = this.__find__(afterName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName); }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n };\n\n /**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\n Ruler.prototype.push = function (ruleName, fn, options) {\n var opt = options || {};\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n };\n\n\n /**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\n Ruler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and enable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = true;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n };\n\n\n /**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\n Ruler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false; });\n\n this.enable(list, ignoreInvalid);\n };\n\n\n /**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\n Ruler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and disable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = false;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n };\n\n\n /**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\n Ruler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__();\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || [];\n };\n\n var ruler = Ruler;\n\n // Normalize input string\n\n\n // https://spec.commonmark.org/0.29/#line-ending\n var NEWLINES_RE = /\\r\\n?|\\n/g;\n var NULL_RE = /\\0/g;\n\n\n var normalize$1 = function normalize(state) {\n var str;\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n');\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD');\n\n state.src = str;\n };\n\n var block = function block(state) {\n var token;\n\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0);\n token.content = state.src;\n token.map = [ 0, 1 ];\n token.children = [];\n state.tokens.push(token);\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens);\n }\n };\n\n var inline = function inline(state) {\n var tokens = state.tokens, tok, i, l;\n\n // Parse inlines\n for (i = 0, l = tokens.length; i < l; i++) {\n tok = tokens[i];\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n }\n }\n };\n\n var arrayReplaceAt = utils.arrayReplaceAt;\n\n\n function isLinkOpen(str) {\n return /^\\s]/i.test(str);\n }\n function isLinkClose(str) {\n return /^<\\/a\\s*>/i.test(str);\n }\n\n\n var linkify = function linkify(state) {\n var i, j, l, tokens, token, currentToken, nodes, ln, text, pos, lastPos,\n level, htmlLinkLevel, url, fullUrl, urlText,\n blockTokens = state.tokens,\n links;\n\n if (!state.md.options.linkify) { return; }\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' ||\n !state.md.linkify.pretest(blockTokens[j].content)) {\n continue;\n }\n\n tokens = blockTokens[j].children;\n\n htmlLinkLevel = 0;\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (i = tokens.length - 1; i >= 0; i--) {\n currentToken = tokens[i];\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--;\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--;\n }\n continue;\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--;\n }\n if (isLinkClose(currentToken.content)) {\n htmlLinkLevel++;\n }\n }\n if (htmlLinkLevel > 0) { continue; }\n\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n\n text = currentToken.content;\n links = state.md.linkify.match(text);\n\n // Now split string to nodes\n nodes = [];\n level = currentToken.level;\n lastPos = 0;\n\n for (ln = 0; ln < links.length; ln++) {\n\n url = links[ln].url;\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { continue; }\n\n urlText = links[ln].text;\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '');\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '');\n } else {\n urlText = state.md.normalizeLinkText(urlText);\n }\n\n pos = links[ln].index;\n\n if (pos > lastPos) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos, pos);\n token.level = level;\n nodes.push(token);\n }\n\n token = new state.Token('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.level = level++;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n token = new state.Token('text', '', 0);\n token.content = urlText;\n token.level = level;\n nodes.push(token);\n\n token = new state.Token('link_close', 'a', -1);\n token.level = --level;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n lastPos = links[ln].lastIndex;\n }\n if (lastPos < text.length) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos);\n token.level = level;\n nodes.push(token);\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n }\n }\n }\n };\n\n // Simple typographic replacements\n\n // TODO:\n // - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n // - miltiplication 2 x 4 -> 2 × 4\n\n var RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n // Workaround for phantomjs - need regex without /g flag,\n // or root check will fail every second time\n var SCOPED_ABBR_TEST_RE = /\\((c|tm|r|p)\\)/i;\n\n var SCOPED_ABBR_RE = /\\((c|tm|r|p)\\)/ig;\n var SCOPED_ABBR = {\n c: '©',\n r: '®',\n p: '§',\n tm: '™'\n };\n\n function replaceFn(match, name) {\n return SCOPED_ABBR[name.toLowerCase()];\n }\n\n function replace_scoped(inlineTokens) {\n var i, token, inside_autolink = 0;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n }\n\n function replace_rare(inlineTokens) {\n var i, token, inside_autolink = 0;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013')\n .replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013');\n }\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n }\n\n\n var replacements = function replace(state) {\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline') { continue; }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children);\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children);\n }\n\n }\n };\n\n var isWhiteSpace$1 = utils.isWhiteSpace;\n var isPunctChar$1 = utils.isPunctChar;\n var isMdAsciiPunct$1 = utils.isMdAsciiPunct;\n\n var QUOTE_TEST_RE = /['\"]/;\n var QUOTE_RE = /['\"]/g;\n var APOSTROPHE = '\\u2019'; /* ’ */\n\n\n function replaceAt(str, index, ch) {\n return str.substr(0, index) + ch + str.substr(index + 1);\n }\n\n function process_inlines(tokens, state) {\n var i, token, text, t, pos, max, thisLevel, item, lastChar, nextChar,\n isLastPunctChar, isNextPunctChar, isLastWhiteSpace, isNextWhiteSpace,\n canOpen, canClose, j, isSingle, stack, openQuote, closeQuote;\n\n stack = [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n\n thisLevel = tokens[i].level;\n\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) { break; }\n }\n stack.length = j + 1;\n\n if (token.type !== 'text') { continue; }\n\n text = token.content;\n pos = 0;\n max = text.length;\n\n /*eslint no-labels:0,block-scoped-var:0*/\n OUTER:\n while (pos < max) {\n QUOTE_RE.lastIndex = pos;\n t = QUOTE_RE.exec(text);\n if (!t) { break; }\n\n canOpen = canClose = true;\n pos = t.index + 1;\n isSingle = (t[0] === \"'\");\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n lastChar = 0x20;\n\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1);\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // lastChar defaults to 0x20\n if (!tokens[j].content) continue; // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1);\n break;\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n nextChar = 0x20;\n\n if (pos < max) {\n nextChar = text.charCodeAt(pos);\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // nextChar defaults to 0x20\n if (!tokens[j].content) continue; // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n nextChar = tokens[j].content.charCodeAt(0);\n break;\n }\n }\n\n isLastPunctChar = isMdAsciiPunct$1(lastChar) || isPunctChar$1(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct$1(nextChar) || isPunctChar$1(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace$1(lastChar);\n isNextWhiteSpace = isWhiteSpace$1(nextChar);\n\n if (isNextWhiteSpace) {\n canOpen = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false;\n }\n }\n\n if (isLastWhiteSpace) {\n canClose = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false;\n }\n }\n\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false;\n }\n }\n\n if (canOpen && canClose) {\n // Replace quotes in the middle of punctuation sequence, but not\n // in the middle of the words, i.e.:\n //\n // 1. foo \" bar \" baz - not replaced\n // 2. foo-\"-bar-\"-baz - replaced\n // 3. foo\"bar\"baz - not replaced\n //\n canOpen = isLastPunctChar;\n canClose = isNextPunctChar;\n }\n\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n continue;\n }\n\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n item = stack[j];\n if (stack[j].level < thisLevel) { break; }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j];\n\n if (isSingle) {\n openQuote = state.md.options.quotes[2];\n closeQuote = state.md.options.quotes[3];\n } else {\n openQuote = state.md.options.quotes[0];\n closeQuote = state.md.options.quotes[1];\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote);\n tokens[item.token].content = replaceAt(\n tokens[item.token].content, item.pos, openQuote);\n\n pos += closeQuote.length - 1;\n if (item.token === i) { pos += openQuote.length - 1; }\n\n text = token.content;\n max = text.length;\n\n stack.length = j;\n continue OUTER;\n }\n }\n }\n\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n });\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n }\n }\n }\n\n\n var smartquotes = function smartquotes(state) {\n /*eslint max-depth:0*/\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline' ||\n !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue;\n }\n\n process_inlines(state.tokens[blkIdx].children, state);\n }\n };\n\n // Token class\n\n\n /**\n * class Token\n **/\n\n /**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\n function Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * fence infostring\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n }\n\n\n /**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\n Token.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) { return -1; }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i; }\n }\n return -1;\n };\n\n\n /**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\n Token.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [ attrData ];\n }\n };\n\n\n /**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\n Token.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [ name, value ];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n };\n\n\n /**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\n Token.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name), value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n };\n\n\n /**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\n Token.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([ name, value ]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n };\n\n\n var token = Token;\n\n function StateCore(src, md, env) {\n this.src = src;\n this.env = env;\n this.tokens = [];\n this.inlineMode = false;\n this.md = md; // link to parser instance\n }\n\n // re-export Token class to use in core rules\n StateCore.prototype.Token = token;\n\n\n var state_core = StateCore;\n\n /** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n\n\n\n\n\n var _rules$2 = [\n [ 'normalize', normalize$1 ],\n [ 'block', block ],\n [ 'inline', inline ],\n [ 'linkify', linkify ],\n [ 'replacements', replacements ],\n [ 'smartquotes', smartquotes ]\n ];\n\n\n /**\n * new Core()\n **/\n function Core() {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new ruler();\n\n for (var i = 0; i < _rules$2.length; i++) {\n this.ruler.push(_rules$2[i][0], _rules$2[i][1]);\n }\n }\n\n\n /**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\n Core.prototype.process = function (state) {\n var i, l, rules;\n\n rules = this.ruler.getRules('');\n\n for (i = 0, l = rules.length; i < l; i++) {\n rules[i](state);\n }\n };\n\n Core.prototype.State = state_core;\n\n\n var parser_core = Core;\n\n var isSpace$a = utils.isSpace;\n\n\n function getLine(state, line) {\n var pos = state.bMarks[line] + state.blkIndent,\n max = state.eMarks[line];\n\n return state.src.substr(pos, max - pos);\n }\n\n function escapedSplit(str) {\n var result = [],\n pos = 0,\n max = str.length,\n ch,\n escapes = 0,\n lastPos = 0,\n backTicked = false,\n lastBackTick = 0;\n\n ch = str.charCodeAt(pos);\n\n while (pos < max) {\n if (ch === 0x60/* ` */) {\n if (backTicked) {\n // make \\` close code sequence, but not open it;\n // the reason is: `\\` is correct code block\n backTicked = false;\n lastBackTick = pos;\n } else if (escapes % 2 === 0) {\n backTicked = true;\n lastBackTick = pos;\n }\n } else if (ch === 0x7c/* | */ && (escapes % 2 === 0) && !backTicked) {\n result.push(str.substring(lastPos, pos));\n lastPos = pos + 1;\n }\n\n if (ch === 0x5c/* \\ */) {\n escapes++;\n } else {\n escapes = 0;\n }\n\n pos++;\n\n // If there was an un-closed backtick, go back to just after\n // the last backtick, but as if it was a normal character\n if (pos === max && backTicked) {\n backTicked = false;\n pos = lastBackTick + 1;\n }\n\n ch = str.charCodeAt(pos);\n }\n\n result.push(str.substring(lastPos));\n\n return result;\n }\n\n\n var table = function table(state, startLine, endLine, silent) {\n var ch, lineText, pos, i, nextLine, columns, columnCount, token,\n aligns, t, tableLines, tbodyLines;\n\n // should have at least two lines\n if (startLine + 2 > endLine) { return false; }\n\n nextLine = startLine + 1;\n\n if (state.sCount[nextLine] < state.blkIndent) { return false; }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false; }\n\n // first character of the second line should be '|', '-', ':',\n // and no other characters are allowed but spaces;\n // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n if (pos >= state.eMarks[nextLine]) { return false; }\n\n ch = state.src.charCodeAt(pos++);\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */) { return false; }\n\n while (pos < state.eMarks[nextLine]) {\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace$a(ch)) { return false; }\n\n pos++;\n }\n\n lineText = getLine(state, startLine + 1);\n\n columns = lineText.split('|');\n aligns = [];\n for (i = 0; i < columns.length; i++) {\n t = columns[i].trim();\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue;\n } else {\n return false;\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false; }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right');\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left');\n } else {\n aligns.push('');\n }\n }\n\n lineText = getLine(state, startLine).trim();\n if (lineText.indexOf('|') === -1) { return false; }\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n // header row will define an amount of columns in the entire table,\n // and align row shouldn't be smaller than that (the rest of the rows can)\n columnCount = columns.length;\n if (columnCount > aligns.length) { return false; }\n\n if (silent) { return true; }\n\n token = state.push('table_open', 'table', 1);\n token.map = tableLines = [ startLine, 0 ];\n\n token = state.push('thead_open', 'thead', 1);\n token.map = [ startLine, startLine + 1 ];\n\n token = state.push('tr_open', 'tr', 1);\n token.map = [ startLine, startLine + 1 ];\n\n for (i = 0; i < columns.length; i++) {\n token = state.push('th_open', 'th', 1);\n token.map = [ startLine, startLine + 1 ];\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i].trim();\n token.map = [ startLine, startLine + 1 ];\n token.children = [];\n\n token = state.push('th_close', 'th', -1);\n }\n\n token = state.push('tr_close', 'tr', -1);\n token = state.push('thead_close', 'thead', -1);\n\n token = state.push('tbody_open', 'tbody', 1);\n token.map = tbodyLines = [ startLine + 2, 0 ];\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n lineText = getLine(state, nextLine).trim();\n if (lineText.indexOf('|') === -1) { break; }\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break; }\n columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n token = state.push('tr_open', 'tr', 1);\n for (i = 0; i < columnCount; i++) {\n token = state.push('td_open', 'td', 1);\n token.map = [ nextLine, nextLine + 1 ];\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.map = [ nextLine, nextLine + 1 ];\n token.content = columns[i] ? columns[i].trim() : '';\n token.children = [];\n\n token = state.push('td_close', 'td', -1);\n }\n token = state.push('tr_close', 'tr', -1);\n }\n token = state.push('tbody_close', 'tbody', -1);\n token = state.push('table_close', 'table', -1);\n\n tableLines[1] = tbodyLines[1] = nextLine;\n state.line = nextLine;\n return true;\n };\n\n // Code block (4 spaces padded)\n\n\n var code = function code(state, startLine, endLine/*, silent*/) {\n var nextLine, last, token;\n\n if (state.sCount[startLine] - state.blkIndent < 4) { return false; }\n\n last = nextLine = startLine + 1;\n\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n nextLine++;\n continue;\n }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++;\n last = nextLine;\n continue;\n }\n break;\n }\n\n state.line = last;\n\n token = state.push('code_block', 'code', 0);\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, true);\n token.map = [ startLine, state.line ];\n\n return true;\n };\n\n // fences (``` lang, ~~~ lang)\n\n\n var fence = function fence(state, startLine, endLine, silent) {\n var marker, len, params, nextLine, mem, token, markup,\n haveEndMarker = false,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (pos + 3 > max) { return false; }\n\n marker = state.src.charCodeAt(pos);\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false;\n }\n\n // scan marker length\n mem = pos;\n pos = state.skipChars(pos, marker);\n\n len = pos - mem;\n\n if (len < 3) { return false; }\n\n markup = state.src.slice(mem, pos);\n params = state.src.slice(pos, max);\n\n if (marker === 0x60 /* ` */) {\n if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n return false;\n }\n }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true; }\n\n // search end of block\n nextLine = startLine;\n\n for (;;) {\n nextLine++;\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break;\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break;\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue; }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue;\n }\n\n pos = state.skipChars(pos, marker);\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue; }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos);\n\n if (pos < max) { continue; }\n\n haveEndMarker = true;\n // found!\n break;\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine];\n\n state.line = nextLine + (haveEndMarker ? 1 : 0);\n\n token = state.push('fence', 'code', 0);\n token.info = params;\n token.content = state.getLines(startLine + 1, nextLine, len, true);\n token.markup = markup;\n token.map = [ startLine, state.line ];\n\n return true;\n };\n\n var isSpace$9 = utils.isSpace;\n\n\n var blockquote = function blockquote(state, startLine, endLine, silent) {\n var adjustTab,\n ch,\n i,\n initial,\n l,\n lastLineEmpty,\n lines,\n nextLine,\n offset,\n oldBMarks,\n oldBSCount,\n oldIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n spaceAfterMarker,\n terminate,\n terminatorRules,\n token,\n isOutdented,\n oldLineMax = state.lineMax,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n // check the block quote marker\n if (state.src.charCodeAt(pos++) !== 0x3E/* > */) { return false; }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) { return true; }\n\n // set offset past spaces and \">\"\n initial = offset = state.sCount[startLine] + 1;\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n spaceAfterMarker = true;\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true;\n\n if ((state.bsCount[startLine] + offset) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true;\n }\n } else {\n spaceAfterMarker = false;\n }\n\n oldBMarks = [ state.bMarks[startLine] ];\n state.bMarks[startLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace$9(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[startLine] + (adjustTab ? 1 : 0)) % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n oldBSCount = [ state.bsCount[startLine] ];\n state.bsCount[startLine] = state.sCount[startLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n lastLineEmpty = pos >= max;\n\n oldSCount = [ state.sCount[startLine] ];\n state.sCount[startLine] = offset - initial;\n\n oldTShift = [ state.tShift[startLine] ];\n state.tShift[startLine] = pos - state.bMarks[startLine];\n\n terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n oldParentType = state.parentType;\n state.parentType = 'blockquote';\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag:\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine + 1; nextLine < endLine; nextLine++) {\n // check if it's outdented, i.e. it's inside list item and indented\n // less than said list item:\n //\n // ```\n // 1. anything\n // > current blockquote\n // 2. checking this line\n // ```\n isOutdented = state.sCount[nextLine] < state.blkIndent;\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break;\n }\n\n if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !isOutdented) {\n // This line is inside the blockquote.\n\n // set offset past spaces and \">\"\n initial = offset = state.sCount[nextLine] + 1;\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n spaceAfterMarker = true;\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true;\n\n if ((state.bsCount[nextLine] + offset) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true;\n }\n } else {\n spaceAfterMarker = false;\n }\n\n oldBMarks.push(state.bMarks[nextLine]);\n state.bMarks[nextLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace$9(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n lastLineEmpty = pos >= max;\n\n oldBSCount.push(state.bsCount[nextLine]);\n state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] = offset - initial;\n\n oldTShift.push(state.tShift[nextLine]);\n state.tShift[nextLine] = pos - state.bMarks[nextLine];\n continue;\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) { break; }\n\n // Case 3: another tag found.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n\n if (terminate) {\n // Quirk to enforce \"hard termination mode\" for paragraphs;\n // normally if you call `tokenize(state, startLine, nextLine)`,\n // paragraphs will look below nextLine for paragraph continuation,\n // but if blockquote is terminated by another tag, they shouldn't\n state.lineMax = nextLine;\n\n if (state.blkIndent !== 0) {\n // state.blkIndent was non-zero, we now set it to zero,\n // so we need to re-calculate all offsets to appear as\n // if indent wasn't changed\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] -= state.blkIndent;\n }\n\n break;\n }\n\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1;\n }\n\n oldIndent = state.blkIndent;\n state.blkIndent = 0;\n\n token = state.push('blockquote_open', 'blockquote', 1);\n token.markup = '>';\n token.map = lines = [ startLine, 0 ];\n\n state.md.block.tokenize(state, startLine, nextLine);\n\n token = state.push('blockquote_close', 'blockquote', -1);\n token.markup = '>';\n\n state.lineMax = oldLineMax;\n state.parentType = oldParentType;\n lines[1] = state.line;\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i];\n state.tShift[i + startLine] = oldTShift[i];\n state.sCount[i + startLine] = oldSCount[i];\n state.bsCount[i + startLine] = oldBSCount[i];\n }\n state.blkIndent = oldIndent;\n\n return true;\n };\n\n var isSpace$8 = utils.isSpace;\n\n\n var hr = function hr(state, startLine, endLine, silent) {\n var marker, cnt, ch, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n marker = state.src.charCodeAt(pos++);\n\n // Check hr marker\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x5F/* _ */) {\n return false;\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n cnt = 1;\n while (pos < max) {\n ch = state.src.charCodeAt(pos++);\n if (ch !== marker && !isSpace$8(ch)) { return false; }\n if (ch === marker) { cnt++; }\n }\n\n if (cnt < 3) { return false; }\n\n if (silent) { return true; }\n\n state.line = startLine + 1;\n\n token = state.push('hr', 'hr', 0);\n token.map = [ startLine, state.line ];\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker));\n\n return true;\n };\n\n var isSpace$7 = utils.isSpace;\n\n\n // Search `[-+*][\\n ]`, returns next pos after marker on success\n // or -1 on fail.\n function skipBulletListMarker(state, startLine) {\n var marker, pos, max, ch;\n\n pos = state.bMarks[startLine] + state.tShift[startLine];\n max = state.eMarks[startLine];\n\n marker = state.src.charCodeAt(pos++);\n // Check bullet\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x2B/* + */) {\n return -1;\n }\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace$7(ch)) {\n // \" -test \" - is not a list item\n return -1;\n }\n }\n\n return pos;\n }\n\n // Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n // or -1 on fail.\n function skipOrderedListMarker(state, startLine) {\n var ch,\n start = state.bMarks[startLine] + state.tShift[startLine],\n pos = start,\n max = state.eMarks[startLine];\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1; }\n\n for (;;) {\n // EOL -> fail\n if (pos >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) { return -1; }\n\n continue;\n }\n\n // found valid marker\n if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n break;\n }\n\n return -1;\n }\n\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace$7(ch)) {\n // \" 1.test \" - is not a list item\n return -1;\n }\n }\n return pos;\n }\n\n function markTightParagraphs(state, idx) {\n var i, l,\n level = state.level + 2;\n\n for (i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true;\n state.tokens[i].hidden = true;\n i += 2;\n }\n }\n }\n\n\n var list = function list(state, startLine, endLine, silent) {\n var ch,\n contentStart,\n i,\n indent,\n indentAfterMarker,\n initial,\n isOrdered,\n itemLines,\n l,\n listLines,\n listTokIdx,\n markerCharCode,\n markerValue,\n max,\n nextLine,\n offset,\n oldListIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n oldTight,\n pos,\n posAfterMarker,\n prevEmptyEnd,\n start,\n terminate,\n terminatorRules,\n token,\n isTerminatingParagraph = false,\n tight = true;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n // Special case:\n // - item 1\n // - item 2\n // - item 3\n // - item 4\n // - this one is a paragraph continuation\n if (state.listIndent >= 0 &&\n state.sCount[startLine] - state.listIndent >= 4 &&\n state.sCount[startLine] < state.blkIndent) {\n return false;\n }\n\n // limit conditions when list can interrupt\n // a paragraph (validation mode only)\n if (silent && state.parentType === 'paragraph') {\n // Next list item should still terminate previous list item;\n //\n // This code can fail if plugins use blkIndent as well as lists,\n // but I hope the spec gets fixed long before that happens.\n //\n if (state.tShift[startLine] >= state.blkIndent) {\n isTerminatingParagraph = true;\n }\n }\n\n // Detect list type and position after marker\n if ((posAfterMarker = skipOrderedListMarker(state, startLine)) >= 0) {\n isOrdered = true;\n start = state.bMarks[startLine] + state.tShift[startLine];\n markerValue = Number(state.src.substr(start, posAfterMarker - start - 1));\n\n // If we're starting a new ordered list right after\n // a paragraph, it should start with 1.\n if (isTerminatingParagraph && markerValue !== 1) return false;\n\n } else if ((posAfterMarker = skipBulletListMarker(state, startLine)) >= 0) {\n isOrdered = false;\n\n } else {\n return false;\n }\n\n // If we're starting a new unordered list right after\n // a paragraph, first line should not be empty.\n if (isTerminatingParagraph) {\n if (state.skipSpaces(posAfterMarker) >= state.eMarks[startLine]) return false;\n }\n\n // We should terminate list on style change. Remember first one to compare.\n markerCharCode = state.src.charCodeAt(posAfterMarker - 1);\n\n // For validation mode we can terminate immediately\n if (silent) { return true; }\n\n // Start list\n listTokIdx = state.tokens.length;\n\n if (isOrdered) {\n token = state.push('ordered_list_open', 'ol', 1);\n if (markerValue !== 1) {\n token.attrs = [ [ 'start', markerValue ] ];\n }\n\n } else {\n token = state.push('bullet_list_open', 'ul', 1);\n }\n\n token.map = listLines = [ startLine, 0 ];\n token.markup = String.fromCharCode(markerCharCode);\n\n //\n // Iterate list items\n //\n\n nextLine = startLine;\n prevEmptyEnd = false;\n terminatorRules = state.md.block.ruler.getRules('list');\n\n oldParentType = state.parentType;\n state.parentType = 'list';\n\n while (nextLine < endLine) {\n pos = posAfterMarker;\n max = state.eMarks[nextLine];\n\n initial = offset = state.sCount[nextLine] + posAfterMarker - (state.bMarks[startLine] + state.tShift[startLine]);\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine]) % 4;\n } else if (ch === 0x20) {\n offset++;\n } else {\n break;\n }\n\n pos++;\n }\n\n contentStart = pos;\n\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1;\n } else {\n indentAfterMarker = offset - initial;\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) { indentAfterMarker = 1; }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n indent = initial + indentAfterMarker;\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1);\n token.markup = String.fromCharCode(markerCharCode);\n token.map = itemLines = [ startLine, 0 ];\n\n // change current state, then restore it after parser subcall\n oldTight = state.tight;\n oldTShift = state.tShift[startLine];\n oldSCount = state.sCount[startLine];\n\n // - example list\n // ^ listIndent position will be here\n // ^ blkIndent position will be here\n //\n oldListIndent = state.listIndent;\n state.listIndent = state.blkIndent;\n state.blkIndent = indent;\n\n state.tight = true;\n state.tShift[startLine] = contentStart - state.bMarks[startLine];\n state.sCount[startLine] = offset;\n\n if (contentStart >= max && state.isEmpty(startLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine);\n } else {\n state.md.block.tokenize(state, startLine, endLine, true);\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false;\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - startLine) > 1 && state.isEmpty(state.line - 1);\n\n state.blkIndent = state.listIndent;\n state.listIndent = oldListIndent;\n state.tShift[startLine] = oldTShift;\n state.sCount[startLine] = oldSCount;\n state.tight = oldTight;\n\n token = state.push('list_item_close', 'li', -1);\n token.markup = String.fromCharCode(markerCharCode);\n\n nextLine = startLine = state.line;\n itemLines[1] = nextLine;\n contentStart = state.bMarks[startLine];\n\n if (nextLine >= endLine) { break; }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { break; }\n\n // fail if terminating block found\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n }\n\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }\n }\n\n // Finalize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1);\n } else {\n token = state.push('bullet_list_close', 'ul', -1);\n }\n token.markup = String.fromCharCode(markerCharCode);\n\n listLines[1] = nextLine;\n state.line = nextLine;\n\n state.parentType = oldParentType;\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx);\n }\n\n return true;\n };\n\n var normalizeReference$2 = utils.normalizeReference;\n var isSpace$6 = utils.isSpace;\n\n\n var reference = function reference(state, startLine, _endLine, silent) {\n var ch,\n destEndPos,\n destEndLineNo,\n endLine,\n href,\n i,\n l,\n label,\n labelEnd,\n oldParentType,\n res,\n start,\n str,\n terminate,\n terminatorRules,\n title,\n lines = 0,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine],\n nextLine = startLine + 1;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false; }\n\n // Simple check to quickly interrupt scan on [link](url) at the start of line.\n // Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54\n while (++pos < max) {\n if (state.src.charCodeAt(pos) === 0x5D /* ] */ &&\n state.src.charCodeAt(pos - 1) !== 0x5C/* \\ */) {\n if (pos + 1 === max) { return false; }\n if (state.src.charCodeAt(pos + 1) !== 0x3A/* : */) { return false; }\n break;\n }\n }\n\n endLine = state.lineMax;\n\n // jump line-by-line until empty one or EOF\n terminatorRules = state.md.block.ruler.getRules('reference');\n\n oldParentType = state.parentType;\n state.parentType = 'reference';\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n str = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n max = str.length;\n\n for (pos = 1; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x5B /* [ */) {\n return false;\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos;\n break;\n } else if (ch === 0x0A /* \\n */) {\n lines++;\n } else if (ch === 0x5C /* \\ */) {\n pos++;\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n }\n\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false; }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace$6(ch)) ; else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n res = state.md.helpers.parseLinkDestination(str, pos, max);\n if (!res.ok) { return false; }\n\n href = state.md.normalizeLink(res.str);\n if (!state.md.validateLink(href)) { return false; }\n\n pos = res.pos;\n lines += res.lines;\n\n // save cursor state, we could require to rollback later\n destEndPos = pos;\n destEndLineNo = lines;\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n start = pos;\n for (; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace$6(ch)) ; else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n res = state.md.helpers.parseLinkTitle(str, pos, max);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n lines += res.lines;\n } else {\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace$6(ch)) { break; }\n pos++;\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace$6(ch)) { break; }\n pos++;\n }\n }\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false;\n }\n\n label = normalizeReference$2(str.slice(1, labelEnd));\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false;\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /*istanbul ignore if*/\n if (silent) { return true; }\n\n if (typeof state.env.references === 'undefined') {\n state.env.references = {};\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = { title: title, href: href };\n }\n\n state.parentType = oldParentType;\n\n state.line = startLine + lines + 1;\n return true;\n };\n\n var isSpace$5 = utils.isSpace;\n\n\n var heading = function heading(state, startLine, endLine, silent) {\n var ch, level, tmp, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x23/* # */ || pos >= max) { return false; }\n\n // count heading level\n level = 1;\n ch = state.src.charCodeAt(++pos);\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++;\n ch = state.src.charCodeAt(++pos);\n }\n\n if (level > 6 || (pos < max && !isSpace$5(ch))) { return false; }\n\n if (silent) { return true; }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos);\n tmp = state.skipCharsBack(max, 0x23, pos); // #\n if (tmp > pos && isSpace$5(state.src.charCodeAt(tmp - 1))) {\n max = tmp;\n }\n\n state.line = startLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = '########'.slice(0, level);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = state.src.slice(pos, max).trim();\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = '########'.slice(0, level);\n\n return true;\n };\n\n // lheading (---, ===)\n\n\n var lheading = function lheading(state, startLine, endLine/*, silent*/) {\n var content, terminate, i, l, token, pos, max, level, marker,\n nextLine = startLine + 1, oldParentType,\n terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n oldParentType = state.parentType;\n state.parentType = 'paragraph'; // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos);\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker);\n pos = state.skipSpaces(pos);\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2);\n break;\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false;\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = String.fromCharCode(marker);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line - 1 ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = String.fromCharCode(marker);\n\n state.parentType = oldParentType;\n\n return true;\n };\n\n // List of valid html blocks names, accorting to commonmark spec\n\n\n var html_blocks = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'meta',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n ];\n\n // Regexps to match html elements\n\n var attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\n var unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\n var single_quoted = \"'[^']*'\";\n var double_quoted = '\"[^\"]*\"';\n\n var attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\n var attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\n var open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\n var close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\n var comment$1 = '|';\n var processing = '<[?].*?[?]>';\n var declaration = ']*>';\n var cdata = '';\n\n var HTML_TAG_RE$1 = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment$1 +\n '|' + processing + '|' + declaration + '|' + cdata + ')');\n var HTML_OPEN_CLOSE_TAG_RE$1 = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\n var HTML_TAG_RE_1 = HTML_TAG_RE$1;\n var HTML_OPEN_CLOSE_TAG_RE_1 = HTML_OPEN_CLOSE_TAG_RE$1;\n\n var html_re = {\n HTML_TAG_RE: HTML_TAG_RE_1,\n HTML_OPEN_CLOSE_TAG_RE: HTML_OPEN_CLOSE_TAG_RE_1\n };\n\n var HTML_OPEN_CLOSE_TAG_RE = html_re.HTML_OPEN_CLOSE_TAG_RE;\n\n // An array of opening and corresponding closing sequences for html tags,\n // last argument defines whether it can terminate a paragraph or not\n //\n var HTML_SEQUENCES = [\n [ /^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true ],\n [ /^/, true ],\n [ /^<\\?/, /\\?>/, true ],\n [ /^/, true ],\n [ /^/, true ],\n [ new RegExp('^|$))', 'i'), /^$/, true ],\n [ new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false ]\n ];\n\n\n var html_block = function html_block(state, startLine, endLine, silent) {\n var i, nextLine, token, lineText,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (!state.md.options.html) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n lineText = state.src.slice(pos, max);\n\n for (i = 0; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break; }\n }\n\n if (i === HTML_SEQUENCES.length) { return false; }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2];\n }\n\n nextLine = startLine + 1;\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n lineText = state.src.slice(pos, max);\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++; }\n break;\n }\n }\n }\n\n state.line = nextLine;\n\n token = state.push('html_block', '', 0);\n token.map = [ startLine, nextLine ];\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n\n return true;\n };\n\n // Paragraph\n\n\n var paragraph = function paragraph(state, startLine/*, endLine*/) {\n var content, terminate, i, l, token, oldParentType,\n nextLine = startLine + 1,\n terminatorRules = state.md.block.ruler.getRules('paragraph'),\n endLine = state.lineMax;\n\n oldParentType = state.parentType;\n state.parentType = 'paragraph';\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine;\n\n token = state.push('paragraph_open', 'p', 1);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('paragraph_close', 'p', -1);\n\n state.parentType = oldParentType;\n\n return true;\n };\n\n var isSpace$4 = utils.isSpace;\n\n\n function StateBlock(src, md, env, tokens) {\n var ch, s, start, pos, len, indent, offset, indent_found;\n\n this.src = src;\n\n // link to parser instance\n this.md = md;\n\n this.env = env;\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens;\n\n this.bMarks = []; // line begin offsets for fast jumps\n this.eMarks = []; // line end offsets for fast jumps\n this.tShift = []; // offsets of the first non-space characters (tabs not expanded)\n this.sCount = []; // indents for each line (tabs expanded)\n\n // An amount of virtual spaces (tabs expanded) between beginning\n // of each line (bMarks) and real beginning of that line.\n //\n // It exists only as a hack because blockquotes override bMarks\n // losing information in the process.\n //\n // It's used only when expanding tabs, you can think about it as\n // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n // means first tab should be expanded to 4-21%4 === 3 spaces.\n //\n this.bsCount = [];\n\n // block parser variables\n this.blkIndent = 0; // required block content indent (for example, if we are\n // inside a list, it would be positioned after list marker)\n this.line = 0; // line index in src\n this.lineMax = 0; // lines count\n this.tight = false; // loose/tight mode for lists\n this.ddIndent = -1; // indent of the current dd block (-1 if there isn't any)\n this.listIndent = -1; // indent of the current list block (-1 if there isn't any)\n\n // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n // used in lists to determine if they interrupt a paragraph\n this.parentType = 'root';\n\n this.level = 0;\n\n // renderer\n this.result = '';\n\n // Create caches\n // Generate markers.\n s = this.src;\n indent_found = false;\n\n for (start = pos = indent = offset = 0, len = s.length; pos < len; pos++) {\n ch = s.charCodeAt(pos);\n\n if (!indent_found) {\n if (isSpace$4(ch)) {\n indent++;\n\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n continue;\n } else {\n indent_found = true;\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++; }\n this.bMarks.push(start);\n this.eMarks.push(pos);\n this.tShift.push(indent);\n this.sCount.push(offset);\n this.bsCount.push(0);\n\n indent_found = false;\n indent = 0;\n offset = 0;\n start = pos + 1;\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length);\n this.eMarks.push(s.length);\n this.tShift.push(0);\n this.sCount.push(0);\n this.bsCount.push(0);\n\n this.lineMax = this.bMarks.length - 1; // don't count last fake line\n }\n\n // Push new token to \"stream\".\n //\n StateBlock.prototype.push = function (type, tag, nesting) {\n var token$1 = new token(type, tag, nesting);\n token$1.block = true;\n\n if (nesting < 0) this.level--; // closing tag\n token$1.level = this.level;\n if (nesting > 0) this.level++; // opening tag\n\n this.tokens.push(token$1);\n return token$1;\n };\n\n StateBlock.prototype.isEmpty = function isEmpty(line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n };\n\n StateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n for (var max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break;\n }\n }\n return from;\n };\n\n // Skip spaces from given position.\n StateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n var ch;\n\n for (var max = this.src.length; pos < max; pos++) {\n ch = this.src.charCodeAt(pos);\n if (!isSpace$4(ch)) { break; }\n }\n return pos;\n };\n\n // Skip spaces from given position in reverse.\n StateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (!isSpace$4(this.src.charCodeAt(--pos))) { return pos + 1; }\n }\n return pos;\n };\n\n // Skip char codes from given position\n StateBlock.prototype.skipChars = function skipChars(pos, code) {\n for (var max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break; }\n }\n return pos;\n };\n\n // Skip char codes reverse from given position - 1\n StateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1; }\n }\n return pos;\n };\n\n // cut lines range from source.\n StateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n var i, lineIndent, ch, first, last, queue, lineStart,\n line = begin;\n\n if (begin >= end) {\n return '';\n }\n\n queue = new Array(end - begin);\n\n for (i = 0; line < end; line++, i++) {\n lineIndent = 0;\n lineStart = first = this.bMarks[line];\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1;\n } else {\n last = this.eMarks[line];\n }\n\n while (first < last && lineIndent < indent) {\n ch = this.src.charCodeAt(first);\n\n if (isSpace$4(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4;\n } else {\n lineIndent++;\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++;\n } else {\n break;\n }\n\n first++;\n }\n\n if (lineIndent > indent) {\n // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n // with indent=2 becomes ' \\tfoobar'\n queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last);\n } else {\n queue[i] = this.src.slice(first, last);\n }\n }\n\n return queue.join('');\n };\n\n // re-export Token class to use in block rules\n StateBlock.prototype.Token = token;\n\n\n var state_block = StateBlock;\n\n /** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n\n\n\n\n\n var _rules$1 = [\n // First 2 params - rule name & source. Secondary array - list of rules,\n // which can be terminated by this one.\n [ 'table', table, [ 'paragraph', 'reference' ] ],\n [ 'code', code ],\n [ 'fence', fence, [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'blockquote', blockquote, [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'hr', hr, [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'list', list, [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'reference', reference ],\n [ 'heading', heading, [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'lheading', lheading ],\n [ 'html_block', html_block, [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'paragraph', paragraph ]\n ];\n\n\n /**\n * new ParserBlock()\n **/\n function ParserBlock() {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new ruler();\n\n for (var i = 0; i < _rules$1.length; i++) {\n this.ruler.push(_rules$1[i][0], _rules$1[i][1], { alt: (_rules$1[i][2] || []).slice() });\n }\n }\n\n\n // Generate tokens for input range\n //\n ParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n line = startLine,\n hasEmptyLines = false,\n maxNesting = state.md.options.maxNesting;\n\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line);\n if (line >= endLine) { break; }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) { break; }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine;\n break;\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n\n for (i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false);\n if (ok) { break; }\n }\n\n // set state.tight if we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines;\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true;\n }\n\n line = state.line;\n\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true;\n line++;\n state.line = line;\n }\n }\n };\n\n\n /**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\n ParserBlock.prototype.parse = function (src, md, env, outTokens) {\n var state;\n\n if (!src) { return; }\n\n state = new this.State(src, md, env, outTokens);\n\n this.tokenize(state, state.line, state.lineMax);\n };\n\n\n ParserBlock.prototype.State = state_block;\n\n\n var parser_block = ParserBlock;\n\n // Skip text characters for text token, place those to pending buffer\n\n\n // Rule to skip pure text\n // '{}$%@~+=:' reserved for extentions\n\n // !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n // !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n // http://spec.commonmark.org/0.15/#ascii-punctuation-character\n function isTerminatorChar(ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n }\n\n var text$1 = function text(state, silent) {\n var pos = state.pos;\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++;\n }\n\n if (pos === state.pos) { return false; }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos); }\n\n state.pos = pos;\n\n return true;\n };\n\n var isSpace$3 = utils.isSpace;\n\n\n var newline$1 = function newline(state, silent) {\n var pmax, max, pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n pmax = state.pending.length - 1;\n max = state.posMax;\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n state.pending = state.pending.replace(/ +$/, '');\n state.push('hardbreak', 'br', 0);\n } else {\n state.pending = state.pending.slice(0, -1);\n state.push('softbreak', 'br', 0);\n }\n\n } else {\n state.push('softbreak', 'br', 0);\n }\n }\n\n pos++;\n\n // skip heading spaces for next line\n while (pos < max && isSpace$3(state.src.charCodeAt(pos))) { pos++; }\n\n state.pos = pos;\n return true;\n };\n\n var isSpace$2 = utils.isSpace;\n\n var ESCAPED = [];\n\n for (var i$1 = 0; i$1 < 256; i$1++) { ESCAPED.push(0); }\n\n '\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });\n\n\n var _escape = function escape(state, silent) {\n var ch, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) { return false; }\n\n pos++;\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (ch < 256 && ESCAPED[ch] !== 0) {\n if (!silent) { state.pending += state.src[pos]; }\n state.pos += 2;\n return true;\n }\n\n if (ch === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0);\n }\n\n pos++;\n // skip leading whitespaces from next line\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n if (!isSpace$2(ch)) { break; }\n pos++;\n }\n\n state.pos = pos;\n return true;\n }\n }\n\n if (!silent) { state.pending += '\\\\'; }\n state.pos++;\n return true;\n };\n\n // Parse backticks\n\n var backticks = function backtick(state, silent) {\n var start, max, marker, matchStart, matchEnd, token,\n pos = state.pos,\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x60/* ` */) { return false; }\n\n start = pos;\n pos++;\n max = state.posMax;\n\n while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }\n\n marker = state.src.slice(start, pos);\n\n matchStart = matchEnd = pos;\n\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1;\n\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }\n\n if (matchEnd - matchStart === marker.length) {\n if (!silent) {\n token = state.push('code_inline', 'code', 0);\n token.markup = marker;\n token.content = state.src.slice(pos, matchStart)\n .replace(/\\n/g, ' ')\n .replace(/^ (.+) $/, '$1');\n }\n state.pos = matchEnd;\n return true;\n }\n }\n\n if (!silent) { state.pending += marker; }\n state.pos += marker.length;\n return true;\n };\n\n // ~~strike through~~\n\n\n // Insert each marker as a separate text token, and add it to delimiter list\n //\n var tokenize$1 = function strikethrough(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x7E/* ~ */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n jump: i,\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n };\n\n\n function postProcess$1(state, delimiters) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n max = delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n }\n\n\n // Walk through delimiter list and replace text tokens with tags\n //\n var postProcess_1$1 = function strikethrough(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess$1(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess$1(state, tokens_meta[curr].delimiters);\n }\n }\n };\n\n var strikethrough = {\n tokenize: tokenize$1,\n postProcess: postProcess_1$1\n };\n\n // Process *this* and _that_\n\n\n // Insert each marker as a separate text token, and add it to delimiter list\n //\n var tokenize = function emphasis(state, silent) {\n var i, scanned, token,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n for (i = 0; i < scanned.length; i++) {\n token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker: marker,\n\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n\n // An amount of characters before this one that's equivalent to\n // current one. In plain English: if this delimiter does not open\n // an emphasis, neither do previous `jump` characters.\n //\n // Used to skip sequences like \"*****\" in one step, for 1st asterisk\n // value will be 0, for 2nd it's 1 and so on.\n //\n jump: i,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n };\n\n\n function postProcess(state, delimiters) {\n var i,\n startDelim,\n endDelim,\n token,\n ch,\n isStrong,\n max = delimiters.length;\n\n for (i = max - 1; i >= 0; i--) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue;\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n isStrong = i > 0 &&\n delimiters[i - 1].end === startDelim.end + 1 &&\n delimiters[i - 1].token === startDelim.token - 1 &&\n delimiters[startDelim.end + 1].token === endDelim.token + 1 &&\n delimiters[i - 1].marker === startDelim.marker;\n\n ch = String.fromCharCode(startDelim.marker);\n\n token = state.tokens[startDelim.token];\n token.type = isStrong ? 'strong_open' : 'em_open';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = 1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = isStrong ? 'strong_close' : 'em_close';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = -1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = '';\n state.tokens[delimiters[startDelim.end + 1].token].content = '';\n i--;\n }\n }\n }\n\n\n // Walk through delimiter list and replace text tokens with tags\n //\n var postProcess_1 = function emphasis(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n };\n\n var emphasis = {\n tokenize: tokenize,\n postProcess: postProcess_1\n };\n\n var normalizeReference$1 = utils.normalizeReference;\n var isSpace$1 = utils.isSpace;\n\n\n var link = function link(state, silent) {\n var attrs,\n code,\n label,\n labelEnd,\n labelStart,\n pos,\n res,\n ref,\n title,\n token,\n href = '',\n oldPos = state.pos,\n max = state.posMax,\n start = state.pos,\n parseReference = true;\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 1;\n labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace$1(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace$1(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace$1(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true;\n }\n pos++;\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference$1(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n token = state.push('link_open', 'a', 1);\n token.attrs = attrs = [ [ 'href', href ] ];\n if (title) {\n attrs.push([ 'title', title ]);\n }\n\n state.md.inline.tokenize(state);\n\n token = state.push('link_close', 'a', -1);\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n };\n\n var normalizeReference = utils.normalizeReference;\n var isSpace = utils.isSpace;\n\n\n var image = function image(state, silent) {\n var attrs,\n code,\n content,\n label,\n labelEnd,\n labelStart,\n pos,\n ref,\n res,\n title,\n token,\n tokens,\n start,\n href = '',\n oldPos = state.pos,\n max = state.posMax;\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false; }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 2;\n labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd);\n\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens = []\n );\n\n token = state.push('image', 'img', 0);\n token.attrs = attrs = [ [ 'src', href ], [ 'alt', '' ] ];\n token.children = tokens;\n token.content = content;\n\n if (title) {\n attrs.push([ 'title', title ]);\n }\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n };\n\n // Process autolinks ''\n\n\n /*eslint max-len:0*/\n var EMAIL_RE = /^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;\n var AUTOLINK_RE = /^<([a-zA-Z][a-zA-Z0-9+.\\-]{1,31}):([^<>\\x00-\\x20]*)>/;\n\n\n var autolink = function autolink(state, silent) {\n var tail, linkMatch, emailMatch, url, fullUrl, token,\n pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n tail = state.src.slice(pos);\n\n if (tail.indexOf('>') < 0) { return false; }\n\n if (AUTOLINK_RE.test(tail)) {\n linkMatch = tail.match(AUTOLINK_RE);\n\n url = linkMatch[0].slice(1, -1);\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += linkMatch[0].length;\n return true;\n }\n\n if (EMAIL_RE.test(tail)) {\n emailMatch = tail.match(EMAIL_RE);\n\n url = emailMatch[0].slice(1, -1);\n fullUrl = state.md.normalizeLink('mailto:' + url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += emailMatch[0].length;\n return true;\n }\n\n return false;\n };\n\n var HTML_TAG_RE = html_re.HTML_TAG_RE;\n\n\n function isLetter(ch) {\n /*eslint no-bitwise:0*/\n var lc = ch | 0x20; // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n }\n\n\n var html_inline = function html_inline(state, silent) {\n var ch, match, max, token,\n pos = state.pos;\n\n if (!state.md.options.html) { return false; }\n\n // Check start\n max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false;\n }\n\n // Quick fail on second char\n ch = state.src.charCodeAt(pos + 1);\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false;\n }\n\n match = state.src.slice(pos).match(HTML_TAG_RE);\n if (!match) { return false; }\n\n if (!silent) {\n token = state.push('html_inline', '', 0);\n token.content = state.src.slice(pos, pos + match[0].length);\n }\n state.pos += match[0].length;\n return true;\n };\n\n var has = utils.has;\n var isValidEntityCode = utils.isValidEntityCode;\n var fromCodePoint = utils.fromCodePoint;\n\n\n var DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i;\n var NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;\n\n\n var entity = function entity(state, silent) {\n var ch, code, match, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) { return false; }\n\n if (pos + 1 < max) {\n ch = state.src.charCodeAt(pos + 1);\n\n if (ch === 0x23 /* # */) {\n match = state.src.slice(pos).match(DIGITAL_RE);\n if (match) {\n if (!silent) {\n code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n state.pending += isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n }\n state.pos += match[0].length;\n return true;\n }\n } else {\n match = state.src.slice(pos).match(NAMED_RE);\n if (match) {\n if (has(entities, match[1])) {\n if (!silent) { state.pending += entities[match[1]]; }\n state.pos += match[0].length;\n return true;\n }\n }\n }\n }\n\n if (!silent) { state.pending += '&'; }\n state.pos++;\n return true;\n };\n\n // For each opening emphasis-like marker find a matching closing one\n\n\n function processDelimiters(state, delimiters) {\n var closerIdx, openerIdx, closer, opener, minOpenerIdx, newMinOpenerIdx,\n isOddMatch, lastJump,\n openersBottom = {},\n max = delimiters.length;\n\n for (closerIdx = 0; closerIdx < max; closerIdx++) {\n closer = delimiters[closerIdx];\n\n // Length is only used for emphasis-specific \"rule of 3\",\n // if it's not defined (in strikethrough or 3rd party plugins),\n // we can default it to 0 to disable those checks.\n //\n closer.length = closer.length || 0;\n\n if (!closer.close) continue;\n\n // Previously calculated lower bounds (previous fails)\n // for each marker and each delimiter length modulo 3.\n if (!openersBottom.hasOwnProperty(closer.marker)) {\n openersBottom[closer.marker] = [ -1, -1, -1 ];\n }\n\n minOpenerIdx = openersBottom[closer.marker][closer.length % 3];\n newMinOpenerIdx = -1;\n\n openerIdx = closerIdx - closer.jump - 1;\n\n for (; openerIdx > minOpenerIdx; openerIdx -= opener.jump + 1) {\n opener = delimiters[openerIdx];\n\n if (opener.marker !== closer.marker) continue;\n\n if (newMinOpenerIdx === -1) newMinOpenerIdx = openerIdx;\n\n if (opener.open && opener.end < 0) {\n\n isOddMatch = false;\n\n // from spec:\n //\n // If one of the delimiters can both open and close emphasis, then the\n // sum of the lengths of the delimiter runs containing the opening and\n // closing delimiters must not be a multiple of 3 unless both lengths\n // are multiples of 3.\n //\n if (opener.close || closer.open) {\n if ((opener.length + closer.length) % 3 === 0) {\n if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n isOddMatch = true;\n }\n }\n }\n\n if (!isOddMatch) {\n // If previous delimiter cannot be an opener, we can safely skip\n // the entire sequence in future checks. This is required to make\n // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n //\n lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open ?\n delimiters[openerIdx - 1].jump + 1 :\n 0;\n\n closer.jump = closerIdx - openerIdx + lastJump;\n closer.open = false;\n opener.end = closerIdx;\n opener.jump = lastJump;\n opener.close = false;\n newMinOpenerIdx = -1;\n break;\n }\n }\n }\n\n if (newMinOpenerIdx !== -1) {\n // If match for this delimiter run failed, we want to set lower bound for\n // future lookups. This is required to make sure algorithm has linear\n // complexity.\n //\n // See details here:\n // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n //\n openersBottom[closer.marker][(closer.length || 0) % 3] = newMinOpenerIdx;\n }\n }\n }\n\n\n var balance_pairs = function link_pairs(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n processDelimiters(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n processDelimiters(state, tokens_meta[curr].delimiters);\n }\n }\n };\n\n // Clean up tokens after emphasis and strikethrough postprocessing:\n\n\n var text_collapse = function text_collapse(state) {\n var curr, last,\n level = 0,\n tokens = state.tokens,\n max = state.tokens.length;\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels after emphasis/strikethrough turns some text nodes\n // into opening/closing tags\n if (tokens[curr].nesting < 0) level--; // closing tag\n tokens[curr].level = level;\n if (tokens[curr].nesting > 0) level++; // opening tag\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) { tokens[last] = tokens[curr]; }\n\n last++;\n }\n }\n\n if (curr !== last) {\n tokens.length = last;\n }\n };\n\n var isWhiteSpace = utils.isWhiteSpace;\n var isPunctChar = utils.isPunctChar;\n var isMdAsciiPunct = utils.isMdAsciiPunct;\n\n\n function StateInline(src, md, env, outTokens) {\n this.src = src;\n this.env = env;\n this.md = md;\n this.tokens = outTokens;\n this.tokens_meta = Array(outTokens.length);\n\n this.pos = 0;\n this.posMax = this.src.length;\n this.level = 0;\n this.pending = '';\n this.pendingLevel = 0;\n\n // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n this.cache = {};\n\n // List of emphasis-like delimiters for current tag\n this.delimiters = [];\n\n // Stack of delimiter lists for upper level tags\n this._prev_delimiters = [];\n }\n\n\n // Flush pending text\n //\n StateInline.prototype.pushPending = function () {\n var token$1 = new token('text', '', 0);\n token$1.content = this.pending;\n token$1.level = this.pendingLevel;\n this.tokens.push(token$1);\n this.pending = '';\n return token$1;\n };\n\n\n // Push new token to \"stream\".\n // If pending text exists - flush it as text token\n //\n StateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending();\n }\n\n var token$1 = new token(type, tag, nesting);\n var token_meta = null;\n\n if (nesting < 0) {\n // closing tag\n this.level--;\n this.delimiters = this._prev_delimiters.pop();\n }\n\n token$1.level = this.level;\n\n if (nesting > 0) {\n // opening tag\n this.level++;\n this._prev_delimiters.push(this.delimiters);\n this.delimiters = [];\n token_meta = { delimiters: this.delimiters };\n }\n\n this.pendingLevel = this.level;\n this.tokens.push(token$1);\n this.tokens_meta.push(token_meta);\n return token$1;\n };\n\n\n // Scan a sequence of emphasis-like markers, and determine whether\n // it can start an emphasis sequence or end an emphasis sequence.\n //\n // - start - position to scan from (it should point at a valid marker);\n // - canSplitWord - determine if these markers can be found inside a word\n //\n StateInline.prototype.scanDelims = function (start, canSplitWord) {\n var pos = start, lastChar, nextChar, count, can_open, can_close,\n isLastWhiteSpace, isLastPunctChar,\n isNextWhiteSpace, isNextPunctChar,\n left_flanking = true,\n right_flanking = true,\n max = this.posMax,\n marker = this.src.charCodeAt(start);\n\n // treat beginning of the line as a whitespace\n lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n count = pos - start;\n\n // treat end of the line as a whitespace\n nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n left_flanking = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n left_flanking = false;\n }\n }\n\n if (isLastWhiteSpace) {\n right_flanking = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n right_flanking = false;\n }\n }\n\n if (!canSplitWord) {\n can_open = left_flanking && (!right_flanking || isLastPunctChar);\n can_close = right_flanking && (!left_flanking || isNextPunctChar);\n } else {\n can_open = left_flanking;\n can_close = right_flanking;\n }\n\n return {\n can_open: can_open,\n can_close: can_close,\n length: count\n };\n };\n\n\n // re-export Token class to use in block rules\n StateInline.prototype.Token = token;\n\n\n var state_inline = StateInline;\n\n /** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n\n\n\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Parser rules\n\n var _rules = [\n [ 'text', text$1 ],\n [ 'newline', newline$1 ],\n [ 'escape', _escape ],\n [ 'backticks', backticks ],\n [ 'strikethrough', strikethrough.tokenize ],\n [ 'emphasis', emphasis.tokenize ],\n [ 'link', link ],\n [ 'image', image ],\n [ 'autolink', autolink ],\n [ 'html_inline', html_inline ],\n [ 'entity', entity ]\n ];\n\n var _rules2 = [\n [ 'balance_pairs', balance_pairs ],\n [ 'strikethrough', strikethrough.postProcess ],\n [ 'emphasis', emphasis.postProcess ],\n [ 'text_collapse', text_collapse ]\n ];\n\n\n /**\n * new ParserInline()\n **/\n function ParserInline() {\n var i;\n\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new ruler();\n\n for (i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new ruler();\n\n for (i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n }\n }\n\n\n // Skip single token by running all rules in validation mode;\n // returns `true` if any rule reported success\n //\n ParserInline.prototype.skipToken = function (state) {\n var ok, i, pos = state.pos,\n rules = this.ruler.getRules(''),\n len = rules.length,\n maxNesting = state.md.options.maxNesting,\n cache = state.cache;\n\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos];\n return;\n }\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++;\n ok = rules[i](state, true);\n state.level--;\n\n if (ok) { break; }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax;\n }\n\n if (!ok) { state.pos++; }\n cache[pos] = state.pos;\n };\n\n\n // Generate tokens for input range\n //\n ParserInline.prototype.tokenize = function (state) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n end = state.posMax,\n maxNesting = state.md.options.maxNesting;\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n ok = rules[i](state, false);\n if (ok) { break; }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break; }\n continue;\n }\n\n state.pending += state.src[state.pos++];\n }\n\n if (state.pending) {\n state.pushPending();\n }\n };\n\n\n /**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\n ParserInline.prototype.parse = function (str, md, env, outTokens) {\n var i, rules, len;\n var state = new this.State(str, md, env, outTokens);\n\n this.tokenize(state);\n\n rules = this.ruler2.getRules('');\n len = rules.length;\n\n for (i = 0; i < len; i++) {\n rules[i](state);\n }\n };\n\n\n ParserInline.prototype.State = state_inline;\n\n\n var parser_inline = ParserInline;\n\n var re = function (opts) {\n var re = {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = regex$4.source;\n re.src_Cc = regex$3.source;\n re.src_Z = regex$1.source;\n re.src_P = regex$5.source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-]).|' + // allow `I'm_king` if no pair found\n '\\\\.{2,}[a-zA-Z0-9%/&]|' + // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]).|' +\n (opts && opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n '\\\\,(?!' + re.src_ZCc + ').|' + // allow `,,,` in paths\n '\\\\!+(?!' + re.src_ZCc + '|[!]).|' + // allow `!!!` in paths, but not at the end\n '\\\\?(?!' + re.src_ZCc + '|[?]).' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n };\n\n ////////////////////////////////////////////////////////////////////////////////\n // Helpers\n\n // Merge objects\n //\n function assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n }\n\n function _class$1(obj) { return Object.prototype.toString.call(obj); }\n function isString$1(obj) { return _class$1(obj) === '[object String]'; }\n function isObject$6(obj) { return _class$1(obj) === '[object Object]'; }\n function isRegExp$3(obj) { return _class$1(obj) === '[object RegExp]'; }\n function isFunction$3(obj) { return _class$1(obj) === '[object Function]'; }\n\n\n function escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n ////////////////////////////////////////////////////////////////////////////////\n\n\n var defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n };\n\n\n function isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n }\n\n\n var defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n };\n\n /*eslint-disable max-len*/\n\n // RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\n var tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n // DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\n var tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n /*eslint-enable max-len*/\n\n ////////////////////////////////////////////////////////////////////////////////\n\n function resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n }\n\n function createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n }\n\n function createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n }\n\n // Schemas compiler. Build regexps.\n //\n function compile$2(self) {\n\n // Load & clone RE patterns.\n var re$1 = self.re = re(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re$1.src_xn);\n\n re$1.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re$1.src_tlds); }\n\n re$1.email_fuzzy = RegExp(untpl(re$1.tpl_email_fuzzy), 'i');\n re$1.link_fuzzy = RegExp(untpl(re$1.tpl_link_fuzzy), 'i');\n re$1.link_no_ip_fuzzy = RegExp(untpl(re$1.tpl_link_no_ip_fuzzy), 'i');\n re$1.host_fuzzy_test = RegExp(untpl(re$1.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject$6(val)) {\n if (isRegExp$3(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction$3(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction$3(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString$1(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re$1.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re$1.src_ZPCc + '))(' + slist + ')', 'ig');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n }\n\n /**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\n function Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n }\n\n function createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n }\n\n\n /**\n * class LinkifyIt\n **/\n\n /**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\n function LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile$2(this);\n }\n\n\n /** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\n LinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile$2(this);\n return this;\n };\n\n\n /** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\n LinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n };\n\n\n /**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\n LinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n };\n\n\n /**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\n LinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n };\n\n\n /**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\n LinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n };\n\n\n /**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\n LinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n };\n\n\n /** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\n LinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile$2(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile$2(this);\n return this;\n };\n\n /**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\n LinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n };\n\n\n /**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\n LinkifyIt.prototype.onCompile = function onCompile() {\n };\n\n\n var linkifyIt = LinkifyIt;\n\n /*! https://mths.be/punycode v1.4.1 by @mathias */\n\n\n /** Highest positive signed 32-bit float value */\n var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n var base$1 = 36;\n var tMin = 1;\n var tMax = 26;\n var skew = 38;\n var damp = 700;\n var initialBias = 72;\n var initialN = 128; // 0x80\n var delimiter$1 = '-'; // '\\x2D'\n\n /** Regular expressions */\n var regexPunycode = /^xn--/;\n var regexNonASCII = /[^\\x20-\\x7E]/; // unprintable ASCII chars + non-ASCII chars\n var regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n /** Error messages */\n var errors$1 = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n };\n\n /** Convenience shortcuts */\n var baseMinusTMin = base$1 - tMin;\n var floor = Math.floor;\n var stringFromCharCode = String.fromCharCode;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n function error(type) {\n throw new RangeError(errors$1[type]);\n }\n\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n function map$3(array, fn) {\n var length = array.length;\n var result = [];\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n }\n\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n }\n // Avoid `split(regex)` for IE8 compatibility. See #17.\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map$3(labels, fn).join('.');\n return result + encoded;\n }\n\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n while (counter < length) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n }\n\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n function ucs2encode(array) {\n return map$3(array, function(value) {\n var output = '';\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n return base$1;\n }\n\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for ( /* no initialization */ ; delta > baseMinusTMin * tMax >> 1; k += base$1) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n /** Cached calculation results */\n baseMinusT;\n\n // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter$1);\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n output.push(input.charCodeAt(j));\n }\n\n // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */ ) {\n\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base$1; /* no condition */ ; k += base$1) {\n\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base$1 || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base$1 - t;\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0);\n\n // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out;\n\n // Insert `n` at position `i` of the output\n output.splice(i++, 0, n);\n\n }\n\n return ucs2encode(output);\n }\n\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT;\n\n // Convert the input in UCS-2 to Unicode\n input = ucs2decode(input);\n\n // Cache the length\n inputLength = input.length;\n\n // Initialize the state\n n = initialN;\n delta = 0;\n bias = initialBias;\n\n // Handle the basic code points\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length;\n\n // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n\n // Finish the basic string - if it is not empty - with a delimiter\n if (basicLength) {\n output.push(delimiter$1);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow\n handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base$1; /* no condition */ ; k += base$1) {\n t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) {\n break;\n }\n qMinusT = q - t;\n baseMinusT = base$1 - t;\n output.push(\n stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n );\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n\n }\n return output.join('');\n }\n\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n function toUnicode(input) {\n return mapDomain(input, function(string) {\n return regexPunycode.test(string) ?\n decode(string.slice(4).toLowerCase()) :\n string;\n });\n }\n\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n function toASCII(input) {\n return mapDomain(input, function(string) {\n return regexNonASCII.test(string) ?\n 'xn--' + encode(string) :\n string;\n });\n }\n var version$1 = '1.4.1';\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n\n var ucs2 = {\n decode: ucs2decode,\n encode: ucs2encode\n };\n var punycode$1 = {\n version: version$1,\n ucs2: ucs2,\n toASCII: toASCII,\n toUnicode: toUnicode,\n encode: encode,\n decode: decode\n };\n\n var punycode$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n decode: decode,\n encode: encode,\n toUnicode: toUnicode,\n toASCII: toASCII,\n version: version$1,\n ucs2: ucs2,\n 'default': punycode$1\n });\n\n // markdown-it default options\n\n\n var _default$1 = {\n options: {\n html: false, // Enable HTML tags in source\n xhtmlOut: false, // Use '/' to close single tags (
)\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with = 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed));\n }\n\n function normalizeLinkText(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.decode(mdurl.format(parsed));\n }\n\n\n /**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n /**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
`). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with `):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '
' +\n   *                hljs.highlight(lang, str, true).value +\n   *                '
';\n * } catch (__) {}\n * }\n *\n * return '
' + md.utils.escapeHtml(str) + '
';\n * }\n * });\n * ```\n *\n **/\n function MarkdownIt(presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options);\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {};\n presetName = 'default';\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new parser_inline();\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new parser_block();\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new parser_core();\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n **/\n this.renderer = new renderer();\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n * rule.\n **/\n this.linkify = new linkifyIt();\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink;\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink;\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText;\n\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n **/\n this.utils = utils;\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = utils.assign({}, helpers);\n\n\n this.options = {};\n this.configure(presetName);\n\n if (options) { this.set(options); }\n }\n\n\n /** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\n MarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options);\n return this;\n };\n\n\n /** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you will - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\n MarkdownIt.prototype.configure = function (presets) {\n var self = this, presetName;\n\n if (utils.isString(presets)) {\n presetName = presets;\n presets = config$1[presetName];\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n if (presets.options) { self.set(presets.options); }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules);\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2);\n }\n });\n }\n return this;\n };\n\n\n /** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\n MarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.enable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n }\n\n return this;\n };\n\n\n /** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\n MarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.disable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n }\n return this;\n };\n\n\n /** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\n MarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n };\n\n\n /** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and return list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\n MarkdownIt.prototype.parse = function (src, env) {\n if (typeof src !== 'string') {\n throw new Error('Input data should be a String');\n }\n\n var state = new this.core.State(src, this, env);\n\n this.core.process(state);\n\n return state.tokens;\n };\n\n\n /**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\n MarkdownIt.prototype.render = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parse(src, env), this.options, env);\n };\n\n\n /** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\n MarkdownIt.prototype.parseInline = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n state.inlineMode = true;\n this.core.process(state);\n\n return state.tokens;\n };\n\n\n /**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `

` tags.\n **/\n MarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parseInline(src, env), this.options, env);\n };\n\n\n var lib$3 = MarkdownIt;\n\n var markdownIt$1 = lib$3;\n\n var markdownIt = new markdownIt$1();\n function renderMd(md) {\n if (typeof md !== 'string') {\n return md;\n }\n\n var html = markdownIt.render(md || '');\n return React__default['default'].createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: purify.sanitize(html)\n }\n });\n }\n\n var __assign$4 = undefined && undefined.__assign || function () {\n __assign$4 = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign$4.apply(this, arguments);\n };\n\n var Beautifier = function () {\n function Beautifier() {}\n\n Beautifier.prototype.beautify = function (asyncApi) {\n if (asyncApi.info && asyncApi.info.description) {\n asyncApi.info.description = renderMd(asyncApi.info.description);\n }\n\n if (asyncApi.servers) {\n asyncApi.servers = this.beautifyServers(asyncApi.servers);\n }\n\n if (asyncApi.channels) {\n asyncApi.channels = this.beautifyChannels(asyncApi.channels);\n }\n\n if (asyncApi.components) {\n asyncApi.components.messages = this.beautifyMessages(asyncApi.components.messages);\n asyncApi.components.schemas = this.beautifySchemas(asyncApi.components.schemas);\n }\n\n return asyncApi;\n };\n\n Beautifier.prototype.resolveAllOf = function (schema) {\n var _this = this;\n\n if (!schema || !Object.keys(schema).length) {\n return schema;\n }\n\n if (schema.allOf) {\n var schemas_1 = [];\n schema.allOf.forEach(function (s) {\n schemas_1.push(_this.resolveAllOf(s) || s);\n });\n schemas_1 = schemas_1.filter(Boolean);\n return merge$3.recursive.apply(merge$3, schemas_1);\n }\n\n if (schema.properties) {\n var transformed = {};\n\n for (var _i = 0, _a = Object.entries(schema.properties); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n property = _b[1];\n\n if (typeof property !== 'object' || !property) {\n continue;\n }\n\n if (property.allOf) {\n transformed[key] = this.resolveAllOf(property) || property;\n continue;\n }\n\n transformed[key] = property;\n }\n\n return __assign$4(__assign$4({}, schema), {\n properties: transformed\n });\n }\n\n return schema;\n };\n\n Beautifier.prototype.beautifySchema = function (schema) {\n if (!schema || !Object.keys(schema).length) {\n return schema;\n }\n\n if (schema.description) {\n schema.description = renderMd(schema.description);\n }\n\n if (schema.properties) {\n var properties = schema.properties;\n var newProperties = properties;\n\n for (var _i = 0, _a = Object.entries(properties); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n prop = _b[1];\n\n if (prop.description) {\n prop.description = renderMd(prop.description);\n }\n\n if (prop.properties) {\n var propProperties = prop.properties;\n var newPropProperties = {};\n\n for (var _c = 0, _d = Object.entries(propProperties); _c < _d.length; _c++) {\n var _e = _d[_c],\n propKey = _e[0],\n propValue = _e[1];\n newPropProperties[propKey] = this.beautifySchema(propValue) || propValue;\n }\n\n prop.properties = newPropProperties;\n }\n\n if (prop.items) {\n prop.items = this.beautifySchema(prop.items);\n }\n\n newProperties[key] = prop;\n }\n\n schema.properties = newProperties;\n }\n\n if (schema.additionalProperties) {\n var additionalProperties = schema.additionalProperties;\n var newAdditionalProperties = additionalProperties;\n\n for (var _f = 0, _g = Object.entries(additionalProperties); _f < _g.length; _f++) {\n var _h = _g[_f],\n key = _h[0],\n prop = _h[1];\n\n if (prop.description) {\n prop.description = renderMd(prop.description);\n }\n\n if (typeof prop.additionalProperties === 'object' && prop.additionalProperties !== null) {\n var propAdditionalProperties = prop.additionalProperties;\n var newPropAdditionalProperties = {};\n\n for (var _j = 0, _k = Object.entries(propAdditionalProperties); _j < _k.length; _j++) {\n var _l = _k[_j],\n propKey = _l[0],\n propValue = _l[1];\n newPropAdditionalProperties[propKey] = this.beautifySchema(propValue) || propValue;\n }\n\n prop.properties = newPropAdditionalProperties;\n }\n\n newAdditionalProperties[key] = prop;\n }\n\n schema.additionalProperties = newAdditionalProperties;\n }\n\n if (schema.items) {\n schema.items = this.beautifySchema(schema.items);\n }\n\n return schema;\n };\n\n Beautifier.prototype.beautifySchemas = function (schemas) {\n if (!schemas || !Object.keys(schemas).length) {\n return schemas;\n }\n\n var newSchemas = {};\n\n for (var _i = 0, _a = Object.entries(schemas); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n schema = _b[1];\n\n if (typeof schema === 'object') {\n newSchemas[key] = this.resolveAllOf(schema) || schema;\n newSchemas[key] = this.beautifySchema(newSchemas[key]) || newSchemas[key];\n }\n }\n\n return newSchemas;\n };\n\n Beautifier.prototype.beautifyMessage = function (message) {\n var _this = this;\n\n if (!isRawMessage(message)) {\n var beautified = __assign$4(__assign$4({}, message), {\n oneOf: message.oneOf.map(function (el) {\n return _this.beautifyMessage(el);\n })\n });\n\n return beautified;\n }\n\n if (message.payload) {\n message.payload = this.resolveAllOf(message.payload);\n message.payload = this.beautifySchema(message.payload);\n }\n\n if (message.headers) {\n message.headers = this.resolveAllOf(message.headers);\n }\n\n if (message.summary) {\n message.summary = renderMd(message.summary);\n }\n\n if (message.description) {\n message.description = renderMd(message.description);\n }\n\n return message;\n };\n\n Beautifier.prototype.beautifyMessages = function (messages) {\n if (!messages || !Object.keys(messages).length) {\n return messages;\n }\n\n var newMessages = {};\n\n for (var _i = 0, _a = Object.entries(messages); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n message = _b[1];\n newMessages[key] = this.beautifyMessage(message);\n }\n\n return newMessages;\n };\n\n Beautifier.prototype.beautifyServers = function (servers) {\n var copiedServers = JSON.parse(JSON.stringify(servers || {}));\n Object.entries(copiedServers).forEach(function (_a) {\n _a[0];\n var server = _a[1];\n server.description = renderMd(server.description);\n\n if (server.variables) {\n var variables = server.variables;\n var newVariables = variables;\n\n for (var _i = 0, _b = Object.entries(variables); _i < _b.length; _i++) {\n var _c = _b[_i],\n key = _c[0],\n variable = _c[1];\n newVariables[key].description = renderMd(variable.description);\n }\n\n server.variables = newVariables;\n }\n });\n return copiedServers;\n };\n\n Beautifier.prototype.beautifyOperation = function (operation) {\n if (operation.description) {\n operation.description = renderMd(operation.description);\n }\n\n if (!operation.message) {\n return operation;\n }\n\n return __assign$4(__assign$4({}, operation), {\n message: this.beautifyMessage(operation.message)\n });\n };\n\n Beautifier.prototype.beautifyChannels = function (channels) {\n var newChannels = {};\n\n for (var _i = 0, _a = Object.entries(channels); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n channel = _b[1];\n newChannels[key] = {};\n var publish = channel.publish;\n\n if (publish) {\n newChannels[key].publish = this.beautifyOperation(publish);\n }\n\n var subscribe = channel.subscribe;\n\n if (subscribe) {\n newChannels[key].subscribe = this.beautifyOperation(subscribe);\n }\n\n if (channel.parameters) {\n newChannels[key].parameters = this.beautifyParameters(channel.parameters);\n }\n\n newChannels[key] = channel;\n }\n\n return newChannels;\n };\n\n Beautifier.prototype.beautifyParameters = function (params) {\n var newParams = {};\n Object.entries(params).map(function (_a) {\n var key = _a[0],\n prop = _a[1];\n\n if (prop.description) {\n prop.description = renderMd(prop.description);\n }\n\n newParams[key] = prop;\n });\n return newParams;\n };\n\n return Beautifier;\n }();\n\n var beautifier = new Beautifier();\n\n var CSS_PREFIX = 'asyncapi';\n var CONTENT_TYPES_SITE = 'https://www.iana.org/assignments/media-types';\n var COLLAPSE_ALL_TEXT = 'Collapse All';\n var EXPAND_ALL_TEXT = 'Expand All';\n var VALIDATION_ERRORS_TYPE = 'https://github.com/asyncapi/parser-js/validation-errors';\n var SERVERS = 'Servers';\n var ONE_OF_PAYLOADS_TEXT = 'One of those payloads:';\n var ANY_OF_PAYLOADS_TEXT = 'Any of those payloads:';\n var ONE_OF_FOLLOWING_MESSAGES_PUBLISH_TEXT = 'You can send one of the following messages:';\n var ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_TEXT = 'You can subscribe to one of the following messages:';\n var TERMS_OF_SERVICE_TEXT = 'Terms of service';\n var URL_SUPPORT_TEXT = 'Support';\n var EMAIL_SUPPORT_TEXT = 'Email support';\n var LOCATION_TEXT = 'Location';\n var DEPRECATED_TEXT = 'Deprecated';\n var PUBLISH_TEXT = 'Publish';\n var SUBSCRIBE_TEXT = 'Subscribe';\n var REQUIRED_TEXT = 'Required';\n var GENERATED_TEXT = 'Generated';\n var MESSAGES_TEXT = 'Messages';\n var SCHEMAS_TEXT = 'Schemas';\n var MESSAGE_TEXT = 'Message';\n var CHANNELS_TEXT = 'Channels';\n var PARAMETERS_TEXT = 'Parameters';\n var HEADERS_TEXT = 'Headers';\n var MESSAGE_HEADERS_TEXT = 'Message Headers';\n var HEADERS_EXAMPLE_TEXT = 'Example of headers';\n var PAYLOAD_TEXT = 'Payload';\n var MESSAGE_PAYLOAD_TEXT = 'Message Payload';\n var PAYLOAD_EXAMPLE_TEXT = 'Example of payload';\n var SCHEMA_EXAMPLE_TEXT = 'Example';\n var NONE_TEXT = 'None';\n var ANY_TEXT = 'Any';\n var ERROR_TEXT = 'Error';\n var SECURITY_TEXT = 'Security';\n var URL_VARIABLES_TEXT = 'URL Variables';\n var FLOWS_TEXTS = {\n FLOW: 'Flow',\n AUTHORIZATION_URL: 'Authorization URL',\n TOKEN_URL: 'Token URL',\n REFRESH_URL: 'Refresh URL',\n SCOPES: 'Scopes'\n };\n var SERVER_COLUMN_NAMES = ['URL', 'Default', 'Possible values', 'Description'];\n var SERVER_SECURITY_COLUMN_NAMES = ['Type', 'Bearer format', 'In', 'Scheme', 'Header', 'Description'];\n var CONTAINER_LABELS;\n\n (function (CONTAINER_LABELS) {\n CONTAINER_LABELS[\"INFO\"] = \"info\";\n CONTAINER_LABELS[\"CHANNELS\"] = \"channels\";\n CONTAINER_LABELS[\"SERVERS\"] = \"servers\";\n CONTAINER_LABELS[\"MESSAGES\"] = \"messages\";\n CONTAINER_LABELS[\"SCHEMAS\"] = \"schemas\";\n })(CONTAINER_LABELS || (CONTAINER_LABELS = {}));\n\n var CONTAINER_LABELS_VALUES = Object.values(CONTAINER_LABELS);\n var ITEM_LABELS;\n\n (function (ITEM_LABELS) {\n ITEM_LABELS[\"CHANNEL\"] = \"channel\";\n ITEM_LABELS[\"SERVER\"] = \"server\";\n ITEM_LABELS[\"MESSAGE\"] = \"message\";\n ITEM_LABELS[\"SCHEMA\"] = \"schema\";\n })(ITEM_LABELS || (ITEM_LABELS = {}));\n\n var ITEM_LABELS_VALUES = Object.values(ITEM_LABELS);\n\n function toKebabCase(str) {\n if (!str) {\n return '';\n }\n\n var matched = str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);\n\n if (matched) {\n return matched.map(function (x) {\n return x.toLowerCase();\n }).join('-');\n }\n\n return str;\n }\n\n var BEMCLasses = function () {\n function BEMCLasses() {\n this.schemaID = CSS_PREFIX;\n }\n\n BEMCLasses.prototype.getSchemaID = function () {\n return this.schemaID;\n };\n\n BEMCLasses.prototype.setSchemaID = function (id) {\n this.schemaID = id ? toKebabCase(id) : this.schemaID;\n };\n\n BEMCLasses.prototype.element = function (element) {\n return element ? CSS_PREFIX + \"__\" + element : '';\n };\n\n BEMCLasses.prototype.modifier = function (modifier, element) {\n return modifier ? \"\" + CSS_PREFIX + (element ? \"__\" + element : '') + \"--\" + modifier : '';\n };\n\n BEMCLasses.prototype.concatenate = function (classes) {\n return classes.filter(Boolean).join(' ');\n };\n\n BEMCLasses.prototype.identifier = function (identifiers) {\n var _this = this;\n\n var id = identifiers.map(function (i) {\n if (!i) {\n return;\n }\n\n if (_this.isIdentifier(i)) {\n return i.toKebabCase ? toKebabCase(i.id) : i.id;\n }\n\n return i;\n }).filter(Boolean).join('--');\n return id.startsWith(this.schemaID) ? id : this.schemaID + \"--\" + id;\n };\n\n BEMCLasses.prototype.isIdentifier = function (v) {\n return v.hasOwnProperty('id');\n };\n\n return BEMCLasses;\n }();\n\n var bemClasses = new BEMCLasses();\n\n var createNestedClassName = function (className, nested) {\n return nested ? bemClasses.modifier(\"nested\", className) : bemClasses.element(className);\n };\n\n var CONTAINERS_REGEX = new RegExp(\"(.*?)--(\" + Object.values(CONTAINER_LABELS).join('|') + \")$\");\n var ITEMS_REGEX = new RegExp(\"(.*?)--(\" + Object.values(CONTAINER_LABELS).join('|') + \")--(.*?)$\");\n var PROPERTIES_REGEX = new RegExp(\"(.*?)--(.*?)$\");\n\n function removeHash(str) {\n return str.startsWith('#') ? str.substr(1) : str;\n }\n\n function extractHashData(hash) {\n var hashData = hash.match(CONTAINERS_REGEX);\n\n if (hashData && hashData.length === 3) {\n return {\n schema: removeHash(hashData[1]),\n container: hashData[2]\n };\n }\n\n hashData = hash.match(ITEMS_REGEX);\n\n if (!hashData || hashData.length !== 4) {\n return;\n }\n\n var container = hashData[2];\n var item = hashData[3];\n var itemProperties = item.match(PROPERTIES_REGEX);\n\n if (itemProperties && itemProperties.length === 3) {\n item = itemProperties[1];\n }\n\n return {\n schema: removeHash(hashData[1]),\n container: container,\n item: item\n };\n }\n\n function removeSpecialChars(str) {\n if (!str) {\n return '';\n }\n\n return str.replace(/[^\\w\\s]/gi, '').replace(/[0-9]/gi, '');\n }\n\n function parseHashForDataId(hash) {\n var hashData = extractHashData(hash);\n\n if (!hashData || !Object.keys(hashData).length) {\n return;\n }\n\n var item = hashData.item;\n\n if (!item) {\n return hash;\n }\n\n return hash.replace('#', '').replace(item, removeSpecialChars(item));\n }\n\n function scroll(target) {\n if (!target) {\n return;\n }\n\n var scrollIntoView = target.scrollIntoView;\n\n if (typeof scrollIntoView === 'function') {\n target.scrollIntoView(true);\n return;\n }\n\n var top = 0;\n\n while (target) {\n top += target.offsetTop;\n target = target && target.offsetParent;\n }\n\n window.scrollTo(0, top);\n }\n function scrollIntoViewOfAnchor(hash) {\n var target;\n\n try {\n target = document.querySelector(hash);\n scroll(target);\n } catch (e) {\n try {\n setTimeout(function () {\n target = document.querySelector(\"[data-asyncapi-id=\\\"\" + parseHashForDataId(hash) + \"\\\"]\");\n scroll(target);\n }, 50);\n } catch (error) {\n return;\n }\n }\n }\n\n var searchForNestedObject = function (input, key) {\n if (!input) {\n return null;\n }\n\n if (input.hasOwnProperty(key)) {\n return input;\n }\n\n for (var i = 0; i < Object.keys(input).length; i++) {\n var nextInputObject = input[Object.keys(input)[i]];\n\n if (typeof nextInputObject === 'object') {\n var o = searchForNestedObject(nextInputObject, key);\n\n if (o !== null) {\n return o;\n }\n }\n }\n\n return null;\n };\n\n var openapiSampler = createCommonjsModule(function (module, exports) {\n (function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u=\"function\"==typeof commonjsRequire&&commonjsRequire,i=0;i value) dictionary for an object\n *\n * @param obj\n * @param {function} descend\n * @returns {}\n */\n api.dict = function dict (obj, descend) {\n var results = {};\n api.walk(obj, function (value, pointer) {\n results[pointer] = value;\n }, descend);\n return results;\n };\n\n /**\n * Iterates over an object\n * Iterator: function (value, pointer) {}\n *\n * @param obj\n * @param {function} iterator\n * @param {function} descend\n */\n api.walk = function walk (obj, iterator, descend) {\n var refTokens = [];\n\n descend = descend || function (value) {\n var type = Object.prototype.toString.call(value);\n return type === '[object Object]' || type === '[object Array]';\n };\n\n (function next (cur) {\n each(cur, function (value, key) {\n refTokens.push(String(key));\n if (descend(value)) {\n next(value);\n } else {\n iterator(value, api.compile(refTokens));\n }\n refTokens.pop();\n });\n }(obj));\n };\n\n /**\n * Tests if an object has a value for a json pointer\n *\n * @param obj\n * @param pointer\n * @returns {boolean}\n */\n api.has = function has (obj, pointer) {\n try {\n api.get(obj, pointer);\n } catch (e) {\n return false;\n }\n return true;\n };\n\n /**\n * Escapes a reference token\n *\n * @param str\n * @returns {string}\n */\n api.escape = function escape (str) {\n return str.toString().replace(/~/g, '~0').replace(/\\//g, '~1');\n };\n\n /**\n * Unescapes a reference token\n *\n * @param str\n * @returns {string}\n */\n api.unescape = function unescape (str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n };\n\n /**\n * Converts a json pointer into a array of reference tokens\n *\n * @param pointer\n * @returns {Array}\n */\n api.parse = function parse (pointer) {\n if (pointer === '') { return []; }\n if (pointer.charAt(0) !== '/') { throw new Error('Invalid JSON pointer: ' + pointer); }\n return pointer.substring(1).split(/\\//).map(api.unescape);\n };\n\n /**\n * Builds a json pointer from a array of reference tokens\n *\n * @param refTokens\n * @returns {string}\n */\n api.compile = function compile (refTokens) {\n if (refTokens.length === 0) { return ''; }\n return '/' + refTokens.map(api.escape).join('/');\n };\n\n },{\"foreach\":1}],3:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.allOfSample = allOfSample;\n\n var _traverse2 = require(\"./traverse\");\n\n var _utils = require(\"./utils\");\n\n function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\n function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\n function _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\n function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\n function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n function allOfSample(into, children, options, spec) {\n var res = (0, _traverse2.traverse)(into, options, spec);\n var subSamples = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subSchema = _step.value;\n\n var _traverse = (0, _traverse2.traverse)(_objectSpread({\n type: type\n }, subSchema), options, spec),\n type = _traverse.type,\n readOnly = _traverse.readOnly,\n writeOnly = _traverse.writeOnly,\n value = _traverse.value;\n\n if (res.type && type && type !== res.type) {\n console.warn('allOf: schemas with different types can\\'t be merged');\n res.type = type;\n }\n\n res.type = res.type || type;\n res.readOnly = res.readOnly || readOnly;\n res.writeOnly = res.writeOnly || writeOnly;\n if (value != null) subSamples.push(value);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n if (res.type === 'object') {\n res.value = _utils.mergeDeep.apply(void 0, [res.value || {}].concat(_toConsumableArray(subSamples.filter(function (sample) {\n return _typeof(sample) === 'object';\n }))));\n return res;\n } else {\n if (res.type === 'array') {\n // TODO: implement arrays\n if (!options.quiet) console.warn('OpenAPI Sampler: found allOf with \"array\" type. Result may be incorrect');\n }\n\n var lastSample = subSamples[subSamples.length - 1];\n res.value = lastSample != null ? lastSample : res.value;\n return res;\n }\n }\n\n },{\"./traverse\":12,\"./utils\":13}],4:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.inferType = inferType;\n var schemaKeywordTypes = {\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n additionalItems: 'array',\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n additionalProperties: 'object',\n properties: 'object',\n patternProperties: 'object',\n dependencies: 'object'\n };\n\n function inferType(schema) {\n if (schema.type !== undefined) {\n return schema.type;\n }\n\n var keywords = Object.keys(schemaKeywordTypes);\n\n for (var i = 0; i < keywords.length; i++) {\n var keyword = keywords[i];\n var type = schemaKeywordTypes[keyword];\n\n if (schema[keyword] !== undefined) {\n return type;\n }\n }\n\n return null;\n }\n\n },{}],5:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.sample = sample;\n exports._registerSampler = _registerSampler;\n Object.defineProperty(exports, \"inferType\", {\n enumerable: true,\n get: function get() {\n return _infer.inferType;\n }\n });\n exports._samplers = void 0;\n\n var _traverse = require(\"./traverse\");\n\n var _index = require(\"./samplers/index\");\n\n var _infer = require(\"./infer\");\n\n var _samplers = {};\n exports._samplers = _samplers;\n var defaults = {\n skipReadOnly: false\n };\n\n function sample(schema, options, spec) {\n var opts = Object.assign({}, defaults, options);\n (0, _traverse.clearCache)();\n return (0, _traverse.traverse)(schema, opts, spec).value;\n }\n\n function _registerSampler(type, sampler) {\n _samplers[type] = sampler;\n }\n\n _registerSampler('array', _index.sampleArray);\n\n _registerSampler('boolean', _index.sampleBoolean);\n\n _registerSampler('integer', _index.sampleNumber);\n\n _registerSampler('number', _index.sampleNumber);\n\n _registerSampler('object', _index.sampleObject);\n\n _registerSampler('string', _index.sampleString);\n\n },{\"./infer\":4,\"./samplers/index\":8,\"./traverse\":12}],6:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.sampleArray = sampleArray;\n\n var _traverse2 = require(\"../traverse\");\n\n function sampleArray(schema) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var spec = arguments.length > 2 ? arguments[2] : undefined;\n var arrayLength = schema.minItems || 1;\n\n if (Array.isArray(schema.items)) {\n arrayLength = Math.max(arrayLength, schema.items.length);\n }\n\n var itemSchemaGetter = function itemSchemaGetter(itemNumber) {\n if (Array.isArray(schema.items)) {\n return schema.items[itemNumber] || {};\n }\n\n return schema.items || {};\n };\n\n var res = [];\n if (!schema.items) return res;\n\n for (var i = 0; i < arrayLength; i++) {\n var itemSchema = itemSchemaGetter(i);\n\n var _traverse = (0, _traverse2.traverse)(itemSchema, options, spec),\n sample = _traverse.value;\n\n res.push(sample);\n }\n\n return res;\n }\n\n },{\"../traverse\":12}],7:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.sampleBoolean = sampleBoolean;\n\n function sampleBoolean(schema) {\n return true; // let be optimistic :)\n }\n\n },{}],8:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(exports, \"sampleArray\", {\n enumerable: true,\n get: function get() {\n return _array.sampleArray;\n }\n });\n Object.defineProperty(exports, \"sampleBoolean\", {\n enumerable: true,\n get: function get() {\n return _boolean.sampleBoolean;\n }\n });\n Object.defineProperty(exports, \"sampleNumber\", {\n enumerable: true,\n get: function get() {\n return _number.sampleNumber;\n }\n });\n Object.defineProperty(exports, \"sampleObject\", {\n enumerable: true,\n get: function get() {\n return _object.sampleObject;\n }\n });\n Object.defineProperty(exports, \"sampleString\", {\n enumerable: true,\n get: function get() {\n return _string.sampleString;\n }\n });\n\n var _array = require(\"./array\");\n\n var _boolean = require(\"./boolean\");\n\n var _number = require(\"./number\");\n\n var _object = require(\"./object\");\n\n var _string = require(\"./string\");\n\n },{\"./array\":6,\"./boolean\":7,\"./number\":9,\"./object\":10,\"./string\":11}],9:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.sampleNumber = sampleNumber;\n\n function sampleNumber(schema) {\n var res;\n\n if (schema.maximum && schema.minimum) {\n res = schema.exclusiveMinimum ? Math.floor(schema.minimum) + 1 : schema.minimum;\n\n if (schema.exclusiveMaximum && res >= schema.maximum || !schema.exclusiveMaximum && res > schema.maximum) {\n res = (schema.maximum + schema.minimum) / 2;\n }\n\n return res;\n }\n\n if (schema.minimum) {\n if (schema.exclusiveMinimum) {\n return Math.floor(schema.minimum) + 1;\n } else {\n return schema.minimum;\n }\n }\n\n if (schema.maximum) {\n if (schema.exclusiveMaximum) {\n return schema.maximum > 0 ? 0 : Math.floor(schema.maximum) - 1;\n } else {\n return schema.maximum > 0 ? 0 : schema.maximum;\n }\n }\n\n return 0;\n }\n\n },{}],10:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.sampleObject = sampleObject;\n\n var _traverse = require(\"../traverse\");\n\n function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n function sampleObject(schema) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var spec = arguments.length > 2 ? arguments[2] : undefined;\n var res = {};\n\n if (schema && _typeof(schema.properties) === 'object') {\n var requiredKeys = Array.isArray(schema.required) ? schema.required : [];\n var requiredKeyDict = requiredKeys.reduce(function (dict, key) {\n dict[key] = true;\n return dict;\n }, {});\n Object.keys(schema.properties).forEach(function (propertyName) {\n // skip before traverse that could be costly\n if (options.skipNonRequired && !requiredKeyDict.hasOwnProperty(propertyName)) {\n return;\n }\n\n var sample = (0, _traverse.traverse)(schema.properties[propertyName], options, spec, {\n propertyName: propertyName\n });\n\n if (options.skipReadOnly && sample.readOnly) {\n return;\n }\n\n if (options.skipWriteOnly && sample.writeOnly) {\n return;\n }\n\n res[propertyName] = sample.value;\n });\n }\n\n if (schema && _typeof(schema.additionalProperties) === 'object') {\n res.property1 = (0, _traverse.traverse)(schema.additionalProperties, options, spec).value;\n res.property2 = (0, _traverse.traverse)(schema.additionalProperties, options, spec).value;\n }\n\n return res;\n }\n\n },{\"../traverse\":12}],11:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.sampleString = sampleString;\n\n var _utils = require(\"../utils\");\n\n var passwordSymbols = 'qwerty!@#$%^123456';\n\n function emailSample() {\n return 'user@example.com';\n }\n\n function passwordSample(min, max) {\n var res = 'pa$$word';\n\n if (min > res.length) {\n res += '_';\n res += (0, _utils.ensureMinLength)(passwordSymbols, min - res.length).substring(0, min - res.length);\n }\n\n return res;\n }\n\n function commonDateTimeSample(min, max, omitTime) {\n var res = (0, _utils.toRFCDateTime)(new Date('2019-08-24T14:15:22.123Z'), omitTime, false);\n\n if (res.length < min) {\n console.warn(\"Using minLength = \".concat(min, \" is incorrect with format \\\"date-time\\\"\"));\n }\n\n if (max && res.length > max) {\n console.warn(\"Using maxLength = \".concat(max, \" is incorrect with format \\\"date-time\\\"\"));\n }\n\n return res;\n }\n\n function dateTimeSample(min, max) {\n return commonDateTimeSample(min, max);\n }\n\n function dateSample(min, max) {\n return commonDateTimeSample(min, max, true);\n }\n\n function defaultSample(min, max) {\n var res = (0, _utils.ensureMinLength)('string', min);\n\n if (max && res.length > max) {\n res = res.substring(0, max);\n }\n\n return res;\n }\n\n function ipv4Sample() {\n return '192.168.0.1';\n }\n\n function ipv6Sample() {\n return '2001:0db8:85a3:0000:0000:8a2e:0370:7334';\n }\n\n function hostnameSample() {\n return 'example.com';\n }\n\n function uriSample() {\n return 'http://example.com';\n }\n\n function uuidSample(_min, _max, propertyName) {\n return (0, _utils.uuid)(propertyName || 'id');\n }\n\n var stringFormats = {\n 'email': emailSample,\n 'password': passwordSample,\n 'date-time': dateTimeSample,\n 'date': dateSample,\n 'ipv4': ipv4Sample,\n 'ipv6': ipv6Sample,\n 'hostname': hostnameSample,\n 'uri': uriSample,\n 'uuid': uuidSample,\n 'default': defaultSample\n };\n\n function sampleString(schema, options, spec, context) {\n var format = schema.format || 'default';\n var sampler = stringFormats[format] || defaultSample;\n var propertyName = context && context.propertyName;\n return sampler(schema.minLength | 0, schema.maxLength, propertyName);\n }\n\n },{\"../utils\":13}],12:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.clearCache = clearCache;\n exports.traverse = traverse;\n\n var _openapiSampler = require(\"./openapi-sampler\");\n\n var _allOf = require(\"./allOf\");\n\n var _infer = require(\"./infer\");\n\n var _jsonPointer = _interopRequireDefault(require(\"json-pointer\"));\n\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\n function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n var $refCache = {};\n\n function clearCache() {\n $refCache = {};\n }\n\n function traverse(schema, options, spec, context) {\n if (schema.$ref) {\n if (!spec) {\n throw new Error('Your schema contains $ref. You must provide full specification in the third parameter.');\n }\n\n var ref = decodeURIComponent(schema.$ref);\n\n if (ref.startsWith('#')) {\n ref = ref.substring(1);\n }\n\n var referenced = _jsonPointer.default.get(spec, ref);\n\n var result;\n\n if ($refCache[ref] !== true) {\n $refCache[ref] = true;\n result = traverse(referenced, options, spec);\n $refCache[ref] = false;\n } else {\n var referencedType = (0, _infer.inferType)(referenced);\n result = {\n value: referencedType === 'object' ? {} : referencedType === 'array' ? [] : undefined\n };\n }\n\n return result;\n }\n\n if (schema.example !== undefined) {\n return {\n value: schema.example,\n readOnly: schema.readOnly,\n writeOnly: schema.writeOnly,\n type: schema.type\n };\n }\n\n if (schema.allOf !== undefined) {\n return (0, _allOf.allOfSample)(_objectSpread({}, schema, {\n allOf: undefined\n }), schema.allOf, options, spec);\n }\n\n if (schema.oneOf && schema.oneOf.length) {\n if (schema.anyOf) {\n if (!options.quiet) console.warn('oneOf and anyOf are not supported on the same level. Skipping anyOf');\n }\n\n return traverse(schema.oneOf[0], options, spec);\n }\n\n if (schema.anyOf && schema.anyOf.length) {\n return traverse(schema.anyOf[0], options, spec);\n }\n\n var example = null;\n var type = null;\n\n if (schema.default !== undefined) {\n example = schema.default;\n } else if (schema.const !== undefined) {\n example = schema.const;\n } else if (schema.enum !== undefined && schema.enum.length) {\n example = schema.enum[0];\n } else if (schema.examples !== undefined && schema.examples.length) {\n example = schema.examples[0];\n } else {\n type = schema.type;\n\n if (!type) {\n type = (0, _infer.inferType)(schema);\n }\n\n var sampler = _openapiSampler._samplers[type];\n\n if (sampler) {\n example = sampler(schema, options, spec, context);\n }\n }\n\n return {\n value: example,\n readOnly: schema.readOnly,\n writeOnly: schema.writeOnly,\n type: type\n };\n }\n\n },{\"./allOf\":3,\"./infer\":4,\"./openapi-sampler\":5,\"json-pointer\":2}],13:[function(require,module,exports){\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.toRFCDateTime = toRFCDateTime;\n exports.ensureMinLength = ensureMinLength;\n exports.mergeDeep = mergeDeep;\n exports.uuid = uuid;\n\n function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n function pad(number) {\n if (number < 10) {\n return '0' + number;\n }\n\n return number;\n }\n\n function toRFCDateTime(date, omitTime, milliseconds) {\n var res = date.getUTCFullYear() + '-' + pad(date.getUTCMonth() + 1) + '-' + pad(date.getUTCDate());\n\n if (!omitTime) {\n res += 'T' + pad(date.getUTCHours()) + ':' + pad(date.getUTCMinutes()) + ':' + pad(date.getUTCSeconds()) + (milliseconds ? '.' + (date.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) : '') + 'Z';\n }\n\n return res;\n }\n\n function ensureMinLength(sample, min) {\n if (min > sample.length) {\n return sample.repeat(Math.trunc(min / sample.length) + 1).substring(0, min);\n }\n\n return sample;\n }\n\n function mergeDeep() {\n var isObject = function isObject(obj) {\n return obj && _typeof(obj) === 'object';\n };\n\n for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n objects[_key] = arguments[_key];\n }\n\n return objects.reduce(function (prev, obj) {\n Object.keys(obj).forEach(function (key) {\n var pVal = prev[key];\n var oVal = obj[key];\n\n if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, Array.isArray(objects[objects.length - 1]) ? [] : {});\n } // deterministic UUID sampler\n\n\n function uuid(str) {\n var hash = hashCode(str);\n var random = jsf32(hash, hash, hash, hash);\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = random() * 16 % 16 | 0;\n return (c == 'x' ? r : r & 0x3 | 0x8).toString(16);\n });\n return uuid;\n }\n\n function hashCode(str) {\n var hash = 0;\n if (str.length == 0) return hash;\n\n for (var i = 0; i < str.length; i++) {\n var char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n\n return hash;\n }\n\n function jsf32(a, b, c, d) {\n return function () {\n a |= 0;\n b |= 0;\n c |= 0;\n d |= 0;\n var t = a - (b << 27 | b >>> 5) | 0;\n a = b ^ (c << 17 | c >>> 15);\n b = c + d | 0;\n c = d + t | 0;\n d = a + t | 0;\n return (d >>> 0) / 4294967296;\n };\n }\n\n },{}]},{},[5])(5)\n });\n });\n\n var generateExampleSchema = function (schema) {\n try {\n return openapiSampler.sample(schema);\n } catch (e) {\n return;\n }\n };\n\n function inContainer(item) {\n switch (item) {\n case ITEM_LABELS.CHANNEL:\n return CONTAINER_LABELS.CHANNELS;\n\n case ITEM_LABELS.SERVER:\n return CONTAINER_LABELS.SERVERS;\n\n case ITEM_LABELS.MESSAGE:\n return CONTAINER_LABELS.MESSAGES;\n\n case ITEM_LABELS.SCHEMA:\n return CONTAINER_LABELS.SCHEMAS;\n\n default:\n return '';\n }\n }\n\n var StateHelpers = function () {\n function StateHelpers() {\n var _this = this;\n\n this.calculateNumberOfElements = function (_a) {\n var spec = _a.spec,\n showConfig = _a.showConfig;\n var showConfigKeys = Object.keys(showConfig);\n\n var fn = function (obj) {\n var numberOfElements = 0;\n Object.entries(obj).map(function (_a) {\n var key = _a[0],\n value = _a[1];\n var condition = Boolean(key !== 'info' && showConfigKeys.includes(key) && showConfig[key]);\n\n if (condition) {\n numberOfElements += 1;\n\n if (Array.isArray(value)) {\n numberOfElements += value.length;\n }\n\n if (typeof value === 'object') {\n if (_this.isServers(value)) {\n numberOfElements += _this.calculateServers(value);\n } else {\n numberOfElements += Object.keys(value).length;\n }\n }\n }\n });\n return numberOfElements;\n };\n\n return fn(spec) + fn(spec.components || {});\n };\n\n this.calculateInitialExpandedElements = function (_a) {\n var spec = _a.spec,\n showConfig = _a.showConfig,\n expandConfig = _a.expandConfig;\n var showConfigKeys = Object.keys(showConfig);\n var collapseConfigKeys = Object.keys(showConfig);\n\n var fn = function (obj) {\n var numberOfElements = 0;\n Object.entries(obj).map(function (_a) {\n var key = _a[0],\n value = _a[1];\n var condition = Boolean(key !== 'info' && showConfigKeys.includes(key) && showConfig[key] && collapseConfigKeys.includes(key) && expandConfig[key]);\n\n if (condition) {\n var field = expandConfig[key];\n\n if (field.root) {\n numberOfElements += 1;\n }\n\n if (!field.elements) {\n return;\n }\n\n if (Array.isArray(value)) {\n numberOfElements += value.length;\n }\n\n if (typeof value === 'object') {\n if (_this.isServers(value)) {\n numberOfElements += _this.calculateServers(value);\n } else {\n numberOfElements += Object.keys(value).length;\n }\n }\n }\n });\n return numberOfElements;\n };\n\n return fn(spec) + fn(spec.components || {});\n };\n }\n\n StateHelpers.prototype.calculateServers = function (servers) {\n if (!servers || !Object.keys(servers).length) {\n return 0;\n }\n\n var elements = 0;\n Object.entries(servers).map(function (_a) {\n _a[0];\n var server = _a[1];\n elements += Number(Boolean(server.description && server.security && server.variables));\n });\n return elements;\n };\n\n StateHelpers.prototype.isServers = function (v) {\n if (!v || !Object.keys(v).length) {\n return false;\n }\n\n return !!v[Object.keys(v)[0]].protocol;\n };\n\n return StateHelpers;\n }();\n\n var stateHelpers = new StateHelpers();\n\n var global$1 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\n // shim for using process in browser\n // based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n }\n var cachedSetTimeout = defaultSetTimout;\n var cachedClearTimeout = defaultClearTimeout;\n if (typeof global$1.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n }\n if (typeof global$1.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n }\n\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n }\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n }\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n }\n\n function drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n }\n // v8 likes predictible objects\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n var title$7 = 'browser';\n var platform = 'browser';\n var browser = true;\n var env = {};\n var argv = [];\n var version = ''; // empty string to avoid regexp issues\n var versions = {};\n var release = {};\n var config = {};\n\n function noop$1() {}\n\n var on$1 = noop$1;\n var addListener = noop$1;\n var once = noop$1;\n var off$1 = noop$1;\n var removeListener = noop$1;\n var removeAllListeners = noop$1;\n var emit = noop$1;\n\n function binding$1(name) {\n throw new Error('process.binding is not supported');\n }\n\n function cwd () { return '/' }\n function chdir (dir) {\n throw new Error('process.chdir is not supported');\n }function umask() { return 0; }\n\n // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\n var performance = global$1.performance || {};\n var performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n // generate timestamp or delta\n // see http://nodejs.org/api/process.html#process_process_hrtime\n function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n }\n\n var startTime = new Date();\n function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n }\n\n var browser$1 = {\n nextTick: nextTick,\n title: title$7,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on$1,\n addListener: addListener,\n once: once,\n off: off$1,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding$1,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n };\n\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n // resolves . and .. elements in a path array with directory names there\n // must be no slashes, empty elements, or device names (c:\\) in the array\n // (so also no leading and trailing slashes - it does not distinguish\n // relative and absolute paths)\n function normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n }\n\n // Split a filename into [root, dir, basename, ext], unix version\n // 'root' is just a slash, or nothing.\n var splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n var splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n };\n\n // path.resolve([from ...], to)\n // posix version\n function resolve$1() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : '/';\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter$1(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n }\n // path.normalize(path)\n // posix version\n function normalize(path) {\n var isPathAbsolute = isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter$1(path.split('/'), function(p) {\n return !!p;\n }), !isPathAbsolute).join('/');\n\n if (!path && !isPathAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + path;\n }\n // posix version\n function isAbsolute(path) {\n return path.charAt(0) === '/';\n }\n\n // posix version\n function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return normalize(filter$1(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n }\n\n\n // path.relative(from, to)\n // posix version\n function relative(from, to) {\n from = resolve$1(from).substr(1);\n to = resolve$1(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n }\n\n var sep = '/';\n var delimiter = ':';\n\n function dirname(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n }\n\n function basename(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n }\n\n\n function extname(path) {\n return splitPath(path)[3];\n }\n var path$1 = {\n extname: extname,\n basename: basename,\n dirname: dirname,\n sep: sep,\n delimiter: delimiter,\n relative: relative,\n join: join,\n isAbsolute: isAbsolute,\n normalize: normalize,\n resolve: resolve$1\n };\n function filter$1 (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n }\n\n // String.prototype.substr - negative index don't work in IE8\n var substr = 'ab'.substr(-1) === 'b' ?\n function (str, start, len) { return str.substr(start, len) } :\n function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n ;\n\n var path$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n resolve: resolve$1,\n normalize: normalize,\n isAbsolute: isAbsolute,\n join: join,\n relative: relative,\n sep: sep,\n delimiter: delimiter,\n dirname: dirname,\n basename: basename,\n extname: extname,\n 'default': path$1\n });\n\n /** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n\n var uri_all = createCommonjsModule(function (module, exports) {\n (function (global, factory) {\n factory(exports) ;\n }(commonjsGlobal, (function (exports) {\n function merge() {\n for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {\n sets[_key] = arguments[_key];\n }\n\n if (sets.length > 1) {\n sets[0] = sets[0].slice(0, -1);\n var xl = sets.length - 1;\n for (var x = 1; x < xl; ++x) {\n sets[x] = sets[x].slice(1, -1);\n }\n sets[xl] = sets[xl].slice(1);\n return sets.join('');\n } else {\n return sets[0];\n }\n }\n function subexp(str) {\n return \"(?:\" + str + \")\";\n }\n function typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n }\n function toUpperCase(str) {\n return str.toUpperCase();\n }\n function toArray(obj) {\n return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n }\n function assign(target, source) {\n var obj = target;\n if (source) {\n for (var key in source) {\n obj[key] = source[key];\n }\n }\n return obj;\n }\n\n function buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n DIGIT$$ = \"[0-9]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),\n //expanded\n GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",\n //subset, excludes bidi control characters\n IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",\n //subset\n UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$);\n subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\");\n subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\");\n var DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),\n //relaxed parsing rules\n IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n H16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$),\n // 6( h16 \":\" ) ls32\n IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$),\n // \"::\" 5( h16 \":\" ) ls32\n IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$),\n //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$),\n //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$),\n //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$),\n //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$),\n //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$),\n //[ *5( h16 \":\" ) h16 ] \"::\" h16\n IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"),\n //[ *6( h16 \":\" ) h16 ] \"::\"\n IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\");\n //RFC 6874, with relaxed parsing rules\n subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\");\n //RFC 6874\n subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\");\n var PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\"));\n subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\");\n subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\");\n return {\n NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n };\n }\n var URI_PROTOCOL = buildExps(false);\n\n var IRI_PROTOCOL = buildExps(true);\n\n var slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n\n\n\n\n\n\n\n\n\n\n\n\n var toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n };\n\n /** Highest positive signed 32-bit float value */\n\n var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n var base = 36;\n var tMin = 1;\n var tMax = 26;\n var skew = 38;\n var damp = 700;\n var initialBias = 72;\n var initialN = 128; // 0x80\n var delimiter = '-'; // '\\x2D'\n\n /** Regular expressions */\n var regexPunycode = /^xn--/;\n var regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\n var regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n /** Error messages */\n var errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n };\n\n /** Convenience shortcuts */\n var baseMinusTMin = base - tMin;\n var floor = Math.floor;\n var stringFromCharCode = String.fromCharCode;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n function error$1(type) {\n throw new RangeError(errors[type]);\n }\n\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n function map(array, fn) {\n var result = [];\n var length = array.length;\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n }\n\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n }\n // Avoid `split(regex)` for IE8 compatibility. See #17.\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n function ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) {\n // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n }\n\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n var ucs2encode = function ucs2encode(array) {\n return String.fromCodePoint.apply(String, toConsumableArray(array));\n };\n\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n var basicToDigit = function basicToDigit(codePoint) {\n if (codePoint - 0x30 < 0x0A) {\n return codePoint - 0x16;\n }\n if (codePoint - 0x41 < 0x1A) {\n return codePoint - 0x41;\n }\n if (codePoint - 0x61 < 0x1A) {\n return codePoint - 0x61;\n }\n return base;\n };\n\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n var digitToBasic = function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n };\n\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n var adapt = function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n };\n\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n var decode = function decode(input) {\n // Don't use UCS-2.\n var output = [];\n var inputLength = input.length;\n var i = 0;\n var n = initialN;\n var bias = initialBias;\n\n // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n var basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n\n for (var j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error$1('not-basic');\n }\n output.push(input.charCodeAt(j));\n }\n\n // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n for (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n var oldi = i;\n for (var w = 1, k = base;; /* no condition */k += base) {\n\n if (index >= inputLength) {\n error$1('invalid-input');\n }\n\n var digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error$1('overflow');\n }\n\n i += digit * w;\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n var baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error$1('overflow');\n }\n\n w *= baseMinusT;\n }\n\n var out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0);\n\n // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n if (floor(i / out) > maxInt - n) {\n error$1('overflow');\n }\n\n n += floor(i / out);\n i %= out;\n\n // Insert `n` at position `i` of the output.\n output.splice(i++, 0, n);\n }\n\n return String.fromCodePoint.apply(String, output);\n };\n\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n var encode = function encode(input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n\n // Handle the basic code points.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _currentValue2 = _step.value;\n\n if (_currentValue2 < 0x80) {\n output.push(stringFromCharCode(_currentValue2));\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var basicLength = output.length;\n var handledCPCount = basicLength;\n\n // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n var m = maxInt;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var currentValue = _step2.value;\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error$1('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _currentValue = _step3.value;\n\n if (_currentValue < n && ++delta > maxInt) {\n error$1('overflow');\n }\n if (_currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base;; /* no condition */k += base) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) {\n break;\n }\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n };\n\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n var toUnicode = function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n };\n\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n var toASCII = function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n };\n\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n var punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '2.1.0',\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n\n /**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n /**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n var SCHEMES = {};\n function pctEncChar(chr) {\n var c = chr.charCodeAt(0);\n var e = void 0;\n if (c < 16) e = \"%0\" + c.toString(16).toUpperCase();else if (c < 128) e = \"%\" + c.toString(16).toUpperCase();else if (c < 2048) e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();else e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n return e;\n }\n function pctDecChars(str) {\n var newStr = \"\";\n var i = 0;\n var il = str.length;\n while (i < il) {\n var c = parseInt(str.substr(i + 1, 2), 16);\n if (c < 128) {\n newStr += String.fromCharCode(c);\n i += 3;\n } else if (c >= 194 && c < 224) {\n if (il - i >= 6) {\n var c2 = parseInt(str.substr(i + 4, 2), 16);\n newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n } else {\n newStr += str.substr(i, 6);\n }\n i += 6;\n } else if (c >= 224) {\n if (il - i >= 9) {\n var _c = parseInt(str.substr(i + 4, 2), 16);\n var c3 = parseInt(str.substr(i + 7, 2), 16);\n newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n } else {\n newStr += str.substr(i, 9);\n }\n i += 9;\n } else {\n newStr += str.substr(i, 3);\n i += 3;\n }\n }\n return newStr;\n }\n function _normalizeComponentEncoding(components, protocol) {\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n }\n if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n return components;\n }\n\n function _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n }\n function _normalizeIPv4(host, protocol) {\n var matches = host.match(protocol.IPV4ADDRESS) || [];\n\n var _matches = slicedToArray(matches, 2),\n address = _matches[1];\n\n if (address) {\n return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n } else {\n return host;\n }\n }\n function _normalizeIPv6(host, protocol) {\n var matches = host.match(protocol.IPV6ADDRESS) || [];\n\n var _matches2 = slicedToArray(matches, 3),\n address = _matches2[1],\n zone = _matches2[2];\n\n if (address) {\n var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),\n _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),\n last = _address$toLowerCase$2[0],\n first = _address$toLowerCase$2[1];\n\n var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n var lastFields = last.split(\":\").map(_stripLeadingZeros);\n var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n var lastFieldsStart = lastFields.length - fieldCount;\n var fields = Array(fieldCount);\n for (var x = 0; x < fieldCount; ++x) {\n fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n }\n if (isLastFieldIPv4Address) {\n fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n }\n var allZeroFields = fields.reduce(function (acc, field, index) {\n if (!field || field === \"0\") {\n var lastLongest = acc[acc.length - 1];\n if (lastLongest && lastLongest.index + lastLongest.length === index) {\n lastLongest.length++;\n } else {\n acc.push({ index: index, length: 1 });\n }\n }\n return acc;\n }, []);\n var longestZeroFields = allZeroFields.sort(function (a, b) {\n return b.length - a.length;\n })[0];\n var newHost = void 0;\n if (longestZeroFields && longestZeroFields.length > 1) {\n var newFirst = fields.slice(0, longestZeroFields.index);\n var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n } else {\n newHost = fields.join(\":\");\n }\n if (zone) {\n newHost += \"%\" + zone;\n }\n return newHost;\n } else {\n return host;\n }\n }\n var URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\n var NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\n function parse(uriString) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var components = {};\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n if (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n var matches = uriString.match(URI_PARSE);\n if (matches) {\n if (NO_MATCH_IS_UNDEFINED) {\n //store each component\n components.scheme = matches[1];\n components.userinfo = matches[3];\n components.host = matches[4];\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = matches[7];\n components.fragment = matches[8];\n //fix port number\n if (isNaN(components.port)) {\n components.port = matches[5];\n }\n } else {\n //IE FIX for improper RegExp matching\n //store each component\n components.scheme = matches[1] || undefined;\n components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined;\n //fix port number\n if (isNaN(components.port)) {\n components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n }\n }\n if (components.host) {\n //normalize IP hosts\n components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n }\n //determine reference type\n if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n components.reference = \"same-document\";\n } else if (components.scheme === undefined) {\n components.reference = \"relative\";\n } else if (components.fragment === undefined) {\n components.reference = \"absolute\";\n } else {\n components.reference = \"uri\";\n }\n //check for reference errors\n if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n }\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n //if host component is a domain name\n if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n //convert Unicode IDN -> ASCII IDN\n try {\n components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n }\n }\n //convert IRI -> URI\n _normalizeComponentEncoding(components, URI_PROTOCOL);\n } else {\n //normalize encodings\n _normalizeComponentEncoding(components, protocol);\n }\n //perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(components, options);\n }\n } else {\n components.error = components.error || \"URI can not be parsed.\";\n }\n return components;\n }\n\n function _recomposeAuthority(components, options) {\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo);\n uriTokens.push(\"@\");\n }\n if (components.host !== undefined) {\n //normalize IP hosts, add brackets and escape zone separator for IPv6\n uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {\n return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n }));\n }\n if (typeof components.port === \"number\") {\n uriTokens.push(\":\");\n uriTokens.push(components.port.toString(10));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n }\n\n var RDS1 = /^\\.\\.?\\//;\n var RDS2 = /^\\/\\.(\\/|$)/;\n var RDS3 = /^\\/\\.\\.(\\/|$)/;\n var RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n function removeDotSegments(input) {\n var output = [];\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, \"\");\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, \"/\");\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, \"/\");\n output.pop();\n } else if (input === \".\" || input === \"..\") {\n input = \"\";\n } else {\n var im = input.match(RDS5);\n if (im) {\n var s = im[0];\n input = input.slice(s.length);\n output.push(s);\n } else {\n throw new Error(\"Unexpected dot segment condition\");\n }\n }\n }\n return output.join(\"\");\n }\n\n function serialize(components) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n if (components.host) {\n //if host component is an IPv6 address\n if (protocol.IPV6ADDRESS.test(components.host)) ;\n //TODO: normalize IPv6 address as per RFC 5952\n\n //if host component is a domain name\n else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n //convert IDN via punycode\n try {\n components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n }\n }\n //normalize encoding\n _normalizeComponentEncoding(components, protocol);\n if (options.reference !== \"suffix\" && components.scheme) {\n uriTokens.push(components.scheme);\n uriTokens.push(\":\");\n }\n var authority = _recomposeAuthority(components, options);\n if (authority !== undefined) {\n if (options.reference !== \"suffix\") {\n uriTokens.push(\"//\");\n }\n uriTokens.push(authority);\n if (components.path && components.path.charAt(0) !== \"/\") {\n uriTokens.push(\"/\");\n }\n }\n if (components.path !== undefined) {\n var s = components.path;\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s);\n }\n if (authority === undefined) {\n s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n }\n uriTokens.push(s);\n }\n if (components.query !== undefined) {\n uriTokens.push(\"?\");\n uriTokens.push(components.query);\n }\n if (components.fragment !== undefined) {\n uriTokens.push(\"#\");\n uriTokens.push(components.fragment);\n }\n return uriTokens.join(\"\"); //merge tokens into a string\n }\n\n function resolveComponents(base, relative) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var skipNormalization = arguments[3];\n\n var target = {};\n if (!skipNormalization) {\n base = parse(serialize(base, options), options); //normalize base components\n relative = parse(serialize(relative, options), options); //normalize relative components\n }\n options = options || {};\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme;\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (!relative.path) {\n target.path = base.path;\n if (relative.query !== undefined) {\n target.query = relative.query;\n } else {\n target.query = base.query;\n }\n } else {\n if (relative.path.charAt(0) === \"/\") {\n target.path = removeDotSegments(relative.path);\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = \"/\" + relative.path;\n } else if (!base.path) {\n target.path = relative.path;\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n }\n target.path = removeDotSegments(target.path);\n }\n target.query = relative.query;\n }\n //target.authority = base.authority;\n target.userinfo = base.userinfo;\n target.host = base.host;\n target.port = base.port;\n }\n target.scheme = base.scheme;\n }\n target.fragment = relative.fragment;\n return target;\n }\n\n function resolve(baseURI, relativeURI, options) {\n var schemelessOptions = assign({ scheme: 'null' }, options);\n return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n }\n\n function normalize(uri, options) {\n if (typeof uri === \"string\") {\n uri = serialize(parse(uri, options), options);\n } else if (typeOf(uri) === \"object\") {\n uri = parse(serialize(uri, options), options);\n }\n return uri;\n }\n\n function equal(uriA, uriB, options) {\n if (typeof uriA === \"string\") {\n uriA = serialize(parse(uriA, options), options);\n } else if (typeOf(uriA) === \"object\") {\n uriA = serialize(uriA, options);\n }\n if (typeof uriB === \"string\") {\n uriB = serialize(parse(uriB, options), options);\n } else if (typeOf(uriB) === \"object\") {\n uriB = serialize(uriB, options);\n }\n return uriA === uriB;\n }\n\n function escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n }\n\n function unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n }\n\n var handler = {\n scheme: \"http\",\n domainHost: true,\n parse: function parse(components, options) {\n //report missing host\n if (!components.host) {\n components.error = components.error || \"HTTP URIs must have a host.\";\n }\n return components;\n },\n serialize: function serialize(components, options) {\n //normalize the default port\n if (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || components.port === \"\") {\n components.port = undefined;\n }\n //normalize the empty path\n if (!components.path) {\n components.path = \"/\";\n }\n //NOTE: We do not parse query strings for HTTP URIs\n //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n //and not the HTTP spec.\n return components;\n }\n };\n\n var handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n };\n\n var O = {};\n //RFC 3986\n var UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (\"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" ) + \"]\";\n var HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\n var PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n //RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n //const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n //const WSP$$ = \"[\\\\x20\\\\x09]\";\n //const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n //const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n //const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n //const WSP$$ = \"[\\\\x20\\\\x09]\";\n //const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n //const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n //const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n //const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\n var ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n var QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\n var VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\n var SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\n var UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\n var PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\n var NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\n var NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\n var NOT_HFVALUE = NOT_HFNAME;\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n }\n var handler$2 = {\n scheme: \"mailto\",\n parse: function parse$$1(components, options) {\n var mailtoComponents = components;\n var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n mailtoComponents.path = undefined;\n if (mailtoComponents.query) {\n var unknownHeaders = false;\n var headers = {};\n var hfields = mailtoComponents.query.split(\"&\");\n for (var x = 0, xl = hfields.length; x < xl; ++x) {\n var hfield = hfields[x].split(\"=\");\n switch (hfield[0]) {\n case \"to\":\n var toAddrs = hfield[1].split(\",\");\n for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {\n to.push(toAddrs[_x]);\n }\n break;\n case \"subject\":\n mailtoComponents.subject = unescapeComponent(hfield[1], options);\n break;\n case \"body\":\n mailtoComponents.body = unescapeComponent(hfield[1], options);\n break;\n default:\n unknownHeaders = true;\n headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n break;\n }\n }\n if (unknownHeaders) mailtoComponents.headers = headers;\n }\n mailtoComponents.query = undefined;\n for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {\n var addr = to[_x2].split(\"@\");\n addr[0] = unescapeComponent(addr[0]);\n if (!options.unicodeSupport) {\n //convert Unicode IDN -> ASCII IDN\n try {\n addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n } catch (e) {\n mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n }\n } else {\n addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n }\n to[_x2] = addr.join(\"@\");\n }\n return mailtoComponents;\n },\n serialize: function serialize$$1(mailtoComponents, options) {\n var components = mailtoComponents;\n var to = toArray(mailtoComponents.to);\n if (to) {\n for (var x = 0, xl = to.length; x < xl; ++x) {\n var toAddr = String(to[x]);\n var atIdx = toAddr.lastIndexOf(\"@\");\n var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n var domain = toAddr.slice(atIdx + 1);\n //convert IDN via punycode\n try {\n domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n } catch (e) {\n components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n to[x] = localPart + \"@\" + domain;\n }\n components.path = to.join(\",\");\n }\n var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n if (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n if (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n var fields = [];\n for (var name in headers) {\n if (headers[name] !== O[name]) {\n fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n }\n }\n if (fields.length) {\n components.query = fields.join(\"&\");\n }\n return components;\n }\n };\n\n var URN_PARSE = /^([^\\:]+)\\:(.*)/;\n //RFC 2141\n var handler$3 = {\n scheme: \"urn\",\n parse: function parse$$1(components, options) {\n var matches = components.path && components.path.match(URN_PARSE);\n var urnComponents = components;\n if (matches) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = matches[1].toLowerCase();\n var nss = matches[2];\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n urnComponents.nid = nid;\n urnComponents.nss = nss;\n urnComponents.path = undefined;\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options);\n }\n } else {\n urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n }\n return urnComponents;\n },\n serialize: function serialize$$1(urnComponents, options) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = urnComponents.nid;\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options);\n }\n var uriComponents = urnComponents;\n var nss = urnComponents.nss;\n uriComponents.path = (nid || options.nid) + \":\" + nss;\n return uriComponents;\n }\n };\n\n var UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n //RFC 4122\n var handler$4 = {\n scheme: \"urn:uuid\",\n parse: function parse(urnComponents, options) {\n var uuidComponents = urnComponents;\n uuidComponents.uuid = uuidComponents.nss;\n uuidComponents.nss = undefined;\n if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n }\n return uuidComponents;\n },\n serialize: function serialize(uuidComponents, options) {\n var urnComponents = uuidComponents;\n //normalize UUID\n urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n return urnComponents;\n }\n };\n\n SCHEMES[handler.scheme] = handler;\n SCHEMES[handler$1.scheme] = handler$1;\n SCHEMES[handler$2.scheme] = handler$2;\n SCHEMES[handler$3.scheme] = handler$3;\n SCHEMES[handler$4.scheme] = handler$4;\n\n exports.SCHEMES = SCHEMES;\n exports.pctEncChar = pctEncChar;\n exports.pctDecChars = pctDecChars;\n exports.parse = parse;\n exports.removeDotSegments = removeDotSegments;\n exports.serialize = serialize;\n exports.resolveComponents = resolveComponents;\n exports.resolve = resolve;\n exports.normalize = normalize;\n exports.equal = equal;\n exports.escapeComponent = escapeComponent;\n exports.unescapeComponent = unescapeComponent;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n })));\n //# sourceMappingURL=uri.all.js.map\n });\n\n // do not edit .js files directly - edit src/index.jst\n\n\n\n var fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n };\n\n // https://mathiasbynens.be/notes/javascript-encoding\n // https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\n var ucs2length$1 = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n };\n\n var util = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash$1,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: fastDeepEqual,\n ucs2length: ucs2length$1,\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n };\n\n\n function copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n }\n\n\n function checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n }\n\n\n function checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash$1(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n }\n\n\n var COERCE_TO_TYPES = toHash$1([ 'string', 'number', 'integer', 'boolean', 'null' ]);\n function coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n }\n\n\n /**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\n function endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n }\n\n\n /**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\n function compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n // @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n // var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\n var URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\n var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\n var JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\n var JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\n var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\n var formats_1 = formats;\n\n function formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n }\n\n\n formats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n };\n\n\n formats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n };\n\n\n function isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n }\n\n\n function date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n }\n\n\n function time(str, full) {\n var matches = str.match(TIME$1);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n }\n\n\n var DATE_TIME_SEPARATOR = /t|\\s/i;\n function date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n }\n\n\n var NOT_URI_FRAGMENT = /\\/|:/;\n function uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n }\n\n\n var Z_ANCHOR = /[^\\\\]\\\\Z/;\n function regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n }\n\n var ref$1 = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n };\n\n var allOf = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n };\n\n var anyOf = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n };\n\n var comment = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n };\n\n var _const = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var contains = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n };\n\n var dependencies$1 = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n };\n\n var _enum = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var format$3 = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var _if = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n };\n\n var items = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n };\n\n var _limit = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var _limitItems = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var _limitLength = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var _limitProperties = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var multipleOf = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var not = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n };\n\n var oneOf$1 = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n };\n\n var pattern = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n };\n\n var properties$9 = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n };\n\n var propertyNames = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n };\n\n var uniqueItems = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n };\n\n //all requires must be explicit because browserify won't work with dynamic requires\n var dotjs = {\n '$ref': ref$1,\n allOf: allOf,\n anyOf: anyOf,\n '$comment': comment,\n const: _const,\n contains: contains,\n dependencies: dependencies$1,\n 'enum': _enum,\n format: format$3,\n 'if': _if,\n items: items,\n maximum: _limit,\n minimum: _limit,\n maxItems: _limitItems,\n minItems: _limitItems,\n maxLength: _limitLength,\n minLength: _limitLength,\n maxProperties: _limitProperties,\n minProperties: _limitProperties,\n multipleOf: multipleOf,\n not: not,\n oneOf: oneOf$1,\n pattern: pattern,\n properties: properties$9,\n propertyNames: propertyNames,\n required: required$7,\n uniqueItems: uniqueItems,\n validate: validate$1\n };\n\n var toHash = util.toHash;\n\n var rules = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: dotjs[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: dotjs.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n };\n\n var KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n ];\n\n var data = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\n function errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n }\n function emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\n EventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\n function _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n }\n\n EventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n\n EventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n // emits a 'removeListener' event iff the listener was removed\n EventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\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; i-- > 0;) {\n if (list[i] === listener ||\n (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 (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\n EventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\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 for (var i = 0, key; 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 = new EventHandlers();\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) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\n EventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n };\n\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount$1.call(emitter, type);\n }\n };\n\n EventEmitter.prototype.listenerCount = listenerCount$1;\n function listenerCount$1(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n }\n\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n };\n\n // About 1.5x faster than the two-arg version of Array#splice().\n function spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n }\n\n function arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n }\n\n function 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\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n var inited = false;\n function init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n }\n\n function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n }\n\n function tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n }\n\n function encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n }\n\n function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\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(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\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 output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n }\n\n function read (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\n function write (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 var toString = {}.toString;\n\n var isArray$2 = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n };\n\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n var 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 */\n Buffer$1.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined\n ? global$1.TYPED_ARRAY_SUPPORT\n : true;\n\n /*\n * Export kMaxLength after typed array support is determined.\n */\n var _kMaxLength = kMaxLength();\n\n function kMaxLength () {\n return Buffer$1.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n }\n\n function createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer$1(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\n function Buffer$1 (arg, encodingOrOffset, length) {\n if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) {\n return new Buffer$1(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\n Buffer$1.poolSize = 8192; // not used by this implementation\n\n // TODO: Legacy, not needed anymore. Remove in next major version.\n Buffer$1._augment = function (arr) {\n arr.__proto__ = Buffer$1.prototype;\n return arr\n };\n\n function from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n }\n\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n Buffer$1.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n };\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n Buffer$1.prototype.__proto__ = Uint8Array.prototype;\n Buffer$1.__proto__ = Uint8Array;\n }\n\n function assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n }\n\n function alloc (that, size, fill, encoding) {\n assertSize(size);\n 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 **/\n Buffer$1.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n };\n\n function allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer$1.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 * */\n Buffer$1.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n Buffer$1.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n };\n\n function fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer$1.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\n function 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\n function fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n }\n\n function fromObject (that, obj) {\n if (internalIsBuffer(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$2(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n }\n\n function checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n }\n\n function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer$1.alloc(+length)\n }\n Buffer$1.isBuffer = isBuffer;\n function internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n }\n\n Buffer$1.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(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\n Buffer$1.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\n Buffer$1.concat = function concat (list, length) {\n if (!isArray$2(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer$1.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$1.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(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\n function byteLength (string, encoding) {\n if (internalIsBuffer(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 }\n Buffer$1.byteLength = byteLength;\n\n function 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.\n Buffer$1.prototype._isBuffer = true;\n\n function swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer$1.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\n Buffer$1.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\n Buffer$1.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\n Buffer$1.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n };\n\n Buffer$1.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer$1.compare(this, b) === 0\n };\n\n Buffer$1.prototype.inspect = function inspect () {\n var str = '';\n var max = 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\n Buffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(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\n function 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$1.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(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$1.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\n function arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n 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\n Buffer$1.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n };\n\n Buffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n };\n\n Buffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n };\n\n function hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n 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\n function utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n }\n\n function asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n }\n\n function latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n }\n\n function base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n }\n\n function ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n }\n\n Buffer$1.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\n Buffer$1.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n };\n\n function base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n }\n\n function utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\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\n var MAX_ARGUMENTS_LENGTH = 0x1000;\n\n function 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\n function asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n }\n\n function latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n }\n\n function 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\n function 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\n Buffer$1.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$1.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer$1.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer$1(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 */\n function checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n }\n\n Buffer$1.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\n Buffer$1.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\n Buffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n };\n\n Buffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n };\n\n Buffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n };\n\n Buffer$1.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\n Buffer$1.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\n Buffer$1.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\n Buffer$1.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\n Buffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n };\n\n Buffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n };\n\n Buffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n };\n\n Buffer$1.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\n Buffer$1.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\n Buffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n };\n\n Buffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n };\n\n Buffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n };\n\n Buffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n };\n\n function checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n }\n\n Buffer$1.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\n Buffer$1.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\n Buffer$1.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$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n };\n\n function objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n 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\n Buffer$1.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$1.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\n Buffer$1.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$1.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\n function 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\n Buffer$1.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$1.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\n Buffer$1.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$1.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\n Buffer$1.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\n Buffer$1.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\n Buffer$1.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$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n };\n\n Buffer$1.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$1.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\n Buffer$1.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$1.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\n Buffer$1.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$1.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\n Buffer$1.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$1.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\n function checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n }\n\n function writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n }\n\n Buffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n };\n\n Buffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n };\n\n function writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n }\n\n Buffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n };\n\n Buffer$1.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)\n Buffer$1.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$1.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])\n Buffer$1.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$1.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 = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer$1(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\n var INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\n function base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\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\n function stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n }\n\n function toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n }\n\n function utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\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\n function 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\n function 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\n\n function base64ToBytes (str) {\n return toByteArray(base64clean(str))\n }\n\n function blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n }\n\n function isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n }\n\n\n // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n // The _isBuffer check is for Safari 5-7 support, because it's missing\n // Object.prototype.constructor. Remove this eventually\n function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n }\n\n function isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n }\n\n // For Node v0.10 support. Remove this eventually.\n function isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n }\n\n var bufferEs6 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Buffer: Buffer$1,\n INSPECT_MAX_BYTES: INSPECT_MAX_BYTES,\n SlowBuffer: SlowBuffer,\n isBuffer: isBuffer,\n kMaxLength: _kMaxLength\n });\n\n var inherits;\n if (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n } else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n }\n var inherits$1 = inherits;\n\n var formatRegExp = /%[sdj%]/g;\n function format$2(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect$1(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull$3(x) || !isObject$5(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect$1(x);\n }\n }\n return str;\n }\n\n // Mark that a method should not be used.\n // Returns a modified function which warns once by default.\n // If --no-deprecation is set, then it is a no-op.\n function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined$3(global$1.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (browser$1.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (browser$1.throwDeprecation) {\n throw new Error(msg);\n } else if (browser$1.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n }\n\n var debugs = {};\n var debugEnviron;\n function debuglog(set) {\n if (isUndefined$3(debugEnviron))\n debugEnviron = browser$1.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format$2.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n }\n\n /**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n /* legacy: obj, showHidden, depth, colors*/\n function inspect$1(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean$2(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined$3(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined$3(ctx.depth)) ctx.depth = 2;\n if (isUndefined$3(ctx.colors)) ctx.colors = false;\n if (isUndefined$3(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n\n // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n inspect$1.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n };\n\n // Don't use 'blue' not visible on cmd.exe\n inspect$1.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n };\n\n\n function stylizeWithColor(str, styleType) {\n var style = inspect$1.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect$1.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect$1.colors[style][1] + 'm';\n } else {\n return str;\n }\n }\n\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n\n function arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n }\n\n\n function formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction$2(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect$1 &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError$1(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction$2(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp$2(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError$1(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray$1(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction$2(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp$2(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError$1(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp$2(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n }\n\n\n function formatPrimitive(ctx, value) {\n if (isUndefined$3(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean$2(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull$3(value))\n return ctx.stylize('null', 'null');\n }\n\n\n function formatError$1(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty$1(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n }\n\n\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty$1(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull$3(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined$3(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n\n function reduceToSingleString(output, base, braces) {\n var length = output.reduce(function(prev, cur) {\n if (cur.indexOf('\\n') >= 0) ;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n }\n\n\n // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n function isArray$1(ar) {\n return Array.isArray(ar);\n }\n\n function isBoolean$2(arg) {\n return typeof arg === 'boolean';\n }\n\n function isNull$3(arg) {\n return arg === null;\n }\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n function isString(arg) {\n return typeof arg === 'string';\n }\n\n function isUndefined$3(arg) {\n return arg === void 0;\n }\n\n function isRegExp$2(re) {\n return isObject$5(re) && objectToString(re) === '[object RegExp]';\n }\n\n function isObject$5(arg) {\n return typeof arg === 'object' && arg !== null;\n }\n\n function isDate(d) {\n return isObject$5(d) && objectToString(d) === '[object Date]';\n }\n\n function isError(e) {\n return isObject$5(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n }\n\n function isFunction$2(arg) {\n return typeof arg === 'function';\n }\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject$5(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n }\n function hasOwnProperty$1(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n function BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer$1.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer$1.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n // Copyright Joyent, Inc. and other Node contributors.\n var isBufferEncoding = Buffer$1.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n };\n\n\n function assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n }\n\n // StringDecoder provides an interface for efficiently splitting a series of\n // buffers into a series of JS strings without breaking apart multi-byte\n // characters. CESU-8 is handled as part of the UTF-8 encoding.\n //\n // @TODO Handling all encodings inside a single object makes it very difficult\n // to reason about this code, so it should be split up in the future.\n // @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n // points as used by CESU-8.\n function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer$1(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n }\n\n // write decodes the given buffer and returns it as JS string that is\n // guaranteed to not contain any partial multi-byte characters. Any partial\n // character found at the end of the buffer is buffered up, and will be\n // returned when calling write again with the remaining bytes.\n //\n // Note: Converting a Buffer containing an orphan surrogate to a String\n // currently works, but converting a String to a Buffer (via `new Buffer`, or\n // Buffer#write) will replace incomplete surrogates with the unicode\n // replacement character. See https://codereview.chromium.org/121173009/ .\n StringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n };\n\n // detectIncompleteChar determines if there is an incomplete UTF-8 character at\n // the end of the given buffer. If so, it sets this.charLength to the byte\n // length that character, and sets this.charReceived to the number of bytes\n // that are available for this character.\n StringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n };\n\n StringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n };\n\n function passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n }\n\n function utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n }\n\n function base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n }\n\n Readable$1.ReadableState = ReadableState;\n\n var debug = debuglog('stream');\n inherits$1(Readable$1, EventEmitter);\n\n function prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n }\n function listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n }\n function ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable$1(options) {\n\n if (!(this instanceof Readable$1)) return new Readable$1(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n }\n\n // Manually shove something into the read() buffer.\n // This returns true if the highWaterMark has not been hit yet,\n // similar to how Writable.write() returns true if you should\n // write() some more.\n Readable$1.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer$1.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n };\n\n // Unshift should *always* be something directly out of read()\n Readable$1.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n };\n\n Readable$1.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n };\n\n function readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n }\n\n // if it's past the high water mark, we can push in some more.\n // Also, if we have no data yet, we can stand some\n // more bytes. This is to work around cases where hwm=0,\n // such as the repl. Also, if the push() triggered a\n // readable event, and the user called read(largeNumber) such that\n // needReadable was set, then we ought to push more, so that another\n // 'readable' event will be triggered.\n function needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n }\n\n // backwards compatibility.\n Readable$1.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n };\n\n // Don't raise the hwm > 8MB\n var MAX_HWM = 0x800000;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n\n // you can override either this method, or the async _read(n) below.\n Readable$1.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n };\n\n function chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n }\n\n function onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n }\n\n // Don't emit readable right away in sync mode, because this can trigger\n // another read() call => stack overflow. This way, it might trigger\n // a nextTick recursion warning, but that's not so bad.\n function emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n }\n\n function emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n }\n\n // at this point, the user has presumably seen the 'readable' event,\n // and called read() to consume some data. that may have triggered\n // in turn another _read(n) call, in which case reading = true if\n // it's in progress.\n // However, if we're not ended, or reading, and the length < hwm,\n // then go ahead and try to read some more preemptively.\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n }\n\n function maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n }\n\n // abstract method. to be overridden in specific implementation classes.\n // call cb(er, data) where data is <= n in length.\n // for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n // arbitrary, and perhaps not very meaningful.\n Readable$1.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n };\n\n Readable$1.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n };\n\n function pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n\n Readable$1.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n };\n\n // set up data events if they are asked for\n // Ensure readable listeners eventually get something\n Readable$1.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n };\n Readable$1.prototype.addListener = Readable$1.prototype.on;\n\n function nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n }\n\n // pause() and resume() are remnants of the legacy readable stream API\n // If the user uses them, then switch into old mode.\n Readable$1.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n };\n\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n }\n\n function resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n }\n\n Readable$1.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n };\n\n function flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n }\n\n // wrap an old-style stream as the async data source.\n // This is *not* part of the readable stream interface.\n // It is an ugly unfortunate mess of history.\n Readable$1.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n };\n\n // exposed for testing purposes only.\n Readable$1._fromList = fromList;\n\n // Pluck off n bytes from an array of buffers.\n // Length is the combined lengths of all the buffers in the list.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n }\n\n // Extracts only enough buffered data to satisfy the amount requested.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n }\n\n // Copies a specified amount of characters from the list of buffered data\n // chunks.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n }\n\n // Copies a specified amount of bytes from the list of buffered data chunks.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function copyFromBuffer(n, list) {\n var ret = Buffer$1.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n }\n\n function endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n }\n\n function endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n }\n\n function forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n }\n\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n }\n\n // A bit simpler than readable streams.\n Writable.WritableState = WritableState;\n inherits$1(Writable, EventEmitter);\n\n function nop() {}\n\n function WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n }\n\n function WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n\n WritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n }\n\n // Otherwise people can pipe Writable streams, which is just wrong.\n Writable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n };\n\n function writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n }\n\n // If we get something that is not a buffer, string, null, or undefined,\n // and we're not in objectMode, then that's an error.\n // Otherwise stream chunks are all considered to be of length=1, and the\n // watermarks determine how many objects to keep in the buffer, rather than\n // how many bytes or characters.\n function validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n }\n\n Writable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n };\n\n Writable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n };\n\n Writable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n };\n\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer$1.from(chunk, encoding);\n }\n return chunk;\n }\n\n // if we're already writing something, then just put this\n // in the queue, and wait our turn. Otherwise, call _write\n // If we return false, then we need a drain event, so set that flag.\n function writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n }\n\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n }\n\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n\n function afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n\n // Must force callback to be called on nextTick, so that we don't\n // emit 'drain' before the write() consumer gets the 'false' return\n // value, and has a chance to attach a 'drain' listener.\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n }\n\n // if there's something in the buffer waiting, then process it\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n\n Writable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n };\n\n Writable.prototype._writev = null;\n\n Writable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n };\n\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n\n function prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n }\n\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n\n // It seems a linked list but it is not\n // there will be only 2 of these for each stream\n function CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n }\n\n inherits$1(Duplex, Readable$1);\n\n var keys = Object.keys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable$1.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n }\n\n // the no-half-open enforcer\n function onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n }\n\n function onEndNT(self) {\n self.end();\n }\n\n // a transform stream is a readable/writable stream where you do\n inherits$1(Transform, Duplex);\n\n function TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n }\n\n function afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n }\n\n Transform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n\n // This is the part where you do stuff!\n // override this function in implementation classes.\n // 'chunk' is an input chunk.\n //\n // Call `push(newChunk)` to pass along transformed output\n // to the readable side. You may call 'push' zero or more times.\n //\n // Call `cb(err)` when you are done with this chunk. If you pass\n // an error, then that'll put the hurt on the whole operation. If you\n // never call cb(), then you'll never get another chunk.\n Transform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n };\n\n Transform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n };\n\n // Doesn't matter what the args are here.\n // _transform does all the work.\n // That we got here means that the readable side wants more data.\n Transform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n };\n\n function done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n }\n\n inherits$1(PassThrough$2, Transform);\n function PassThrough$2(options) {\n if (!(this instanceof PassThrough$2)) return new PassThrough$2(options);\n\n Transform.call(this, options);\n }\n\n PassThrough$2.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n };\n\n inherits$1(Stream, EventEmitter);\n Stream.Readable = Readable$1;\n Stream.Writable = Writable;\n Stream.Duplex = Duplex;\n Stream.Transform = Transform;\n Stream.PassThrough = PassThrough$2;\n\n // Backwards-compat with node 0.4.x\n Stream.Stream = Stream;\n\n // old-style streams. Note that the pipe method (the only relevant\n // part of this class) is overridden in the Readable class.\n\n function Stream() {\n EventEmitter.call(this);\n }\n\n Stream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EventEmitter.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n };\n\n var hasFetch = isFunction$1(global$1.fetch) && isFunction$1(global$1.ReadableStream);\n\n var _blobConstructor;\n function blobConstructor() {\n if (typeof _blobConstructor !== 'undefined') {\n return _blobConstructor;\n }\n try {\n new global$1.Blob([new ArrayBuffer(1)]);\n _blobConstructor = true;\n } catch (e) {\n _blobConstructor = false;\n }\n return _blobConstructor\n }\n var xhr;\n\n function checkTypeSupport(type) {\n if (!xhr) {\n xhr = new global$1.XMLHttpRequest();\n // If location.host is empty, e.g. if this page/worker was loaded\n // from a Blob, then use example.com to avoid an error\n xhr.open('GET', global$1.location.host ? '/' : 'https://example.com');\n }\n try {\n xhr.responseType = type;\n return xhr.responseType === type\n } catch (e) {\n return false\n }\n\n }\n\n // For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n // Safari 7.1 appears to have fixed this bug.\n var haveArrayBuffer = typeof global$1.ArrayBuffer !== 'undefined';\n var haveSlice = haveArrayBuffer && isFunction$1(global$1.ArrayBuffer.prototype.slice);\n\n var arraybuffer = haveArrayBuffer && checkTypeSupport('arraybuffer');\n // These next two tests unavoidably show warnings in Chrome. Since fetch will always\n // be used if it's available, just return false for these to avoid the warnings.\n var msstream = !hasFetch && haveSlice && checkTypeSupport('ms-stream');\n var mozchunkedarraybuffer = !hasFetch && haveArrayBuffer &&\n checkTypeSupport('moz-chunked-arraybuffer');\n var overrideMimeType = isFunction$1(xhr.overrideMimeType);\n var vbArray = isFunction$1(global$1.VBArray);\n\n function isFunction$1(value) {\n return typeof value === 'function'\n }\n\n xhr = null; // Help gc\n\n var rStates = {\n UNSENT: 0,\n OPENED: 1,\n HEADERS_RECEIVED: 2,\n LOADING: 3,\n DONE: 4\n };\n function IncomingMessage(xhr, response, mode) {\n var self = this;\n Readable$1.call(self);\n\n self._mode = mode;\n self.headers = {};\n self.rawHeaders = [];\n self.trailers = {};\n self.rawTrailers = [];\n\n // Fake the 'close' event, but only once 'end' fires\n self.on('end', function() {\n // The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n browser$1.nextTick(function() {\n self.emit('close');\n });\n });\n var read;\n if (mode === 'fetch') {\n self._fetchResponse = response;\n\n self.url = response.url;\n self.statusCode = response.status;\n self.statusMessage = response.statusText;\n // backwards compatible version of for ( of ):\n // for (var ,_i,_it = [Symbol.iterator](); = (_i = _it.next()).value,!_i.done;)\n for (var header, _i, _it = response.headers[Symbol.iterator](); header = (_i = _it.next()).value, !_i.done;) {\n self.headers[header[0].toLowerCase()] = header[1];\n self.rawHeaders.push(header[0], header[1]);\n }\n\n // TODO: this doesn't respect backpressure. Once WritableStream is available, this can be fixed\n var reader = response.body.getReader();\n\n read = function () {\n reader.read().then(function(result) {\n if (self._destroyed)\n return\n if (result.done) {\n self.push(null);\n return\n }\n self.push(new Buffer$1(result.value));\n read();\n });\n };\n read();\n\n } else {\n self._xhr = xhr;\n self._pos = 0;\n\n self.url = xhr.responseURL;\n self.statusCode = xhr.status;\n self.statusMessage = xhr.statusText;\n var headers = xhr.getAllResponseHeaders().split(/\\r?\\n/);\n headers.forEach(function(header) {\n var matches = header.match(/^([^:]+):\\s*(.*)/);\n if (matches) {\n var key = matches[1].toLowerCase();\n if (key === 'set-cookie') {\n if (self.headers[key] === undefined) {\n self.headers[key] = [];\n }\n self.headers[key].push(matches[2]);\n } else if (self.headers[key] !== undefined) {\n self.headers[key] += ', ' + matches[2];\n } else {\n self.headers[key] = matches[2];\n }\n self.rawHeaders.push(matches[1], matches[2]);\n }\n });\n\n self._charset = 'x-user-defined';\n if (!overrideMimeType) {\n var mimeType = self.rawHeaders['mime-type'];\n if (mimeType) {\n var charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/);\n if (charsetMatch) {\n self._charset = charsetMatch[1].toLowerCase();\n }\n }\n if (!self._charset)\n self._charset = 'utf-8'; // best guess\n }\n }\n }\n\n inherits$1(IncomingMessage, Readable$1);\n\n IncomingMessage.prototype._read = function() {};\n\n IncomingMessage.prototype._onXHRProgress = function() {\n var self = this;\n\n var xhr = self._xhr;\n\n var response = null;\n switch (self._mode) {\n case 'text:vbarray': // For IE9\n if (xhr.readyState !== rStates.DONE)\n break\n try {\n // This fails in IE8\n response = new global$1.VBArray(xhr.responseBody).toArray();\n } catch (e) {\n // pass\n }\n if (response !== null) {\n self.push(new Buffer$1(response));\n break\n }\n // Falls through in IE8\n case 'text':\n try { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n response = xhr.responseText;\n } catch (e) {\n self._mode = 'text:vbarray';\n break\n }\n if (response.length > self._pos) {\n var newData = response.substr(self._pos);\n if (self._charset === 'x-user-defined') {\n var buffer = new Buffer$1(newData.length);\n for (var i = 0; i < newData.length; i++)\n buffer[i] = newData.charCodeAt(i) & 0xff;\n\n self.push(buffer);\n } else {\n self.push(newData, self._charset);\n }\n self._pos = response.length;\n }\n break\n case 'arraybuffer':\n if (xhr.readyState !== rStates.DONE || !xhr.response)\n break\n response = xhr.response;\n self.push(new Buffer$1(new Uint8Array(response)));\n break\n case 'moz-chunked-arraybuffer': // take whole\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING || !response)\n break\n self.push(new Buffer$1(new Uint8Array(response)));\n break\n case 'ms-stream':\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING)\n break\n var reader = new global$1.MSStreamReader();\n reader.onprogress = function() {\n if (reader.result.byteLength > self._pos) {\n self.push(new Buffer$1(new Uint8Array(reader.result.slice(self._pos))));\n self._pos = reader.result.byteLength;\n }\n };\n reader.onload = function() {\n self.push(null);\n };\n // reader.onerror = ??? // TODO: this\n reader.readAsArrayBuffer(response);\n break\n }\n\n // The ms-stream case handles end separately in reader.onload()\n if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n self.push(null);\n }\n };\n\n // from https://github.com/jhiesey/to-arraybuffer/blob/6502d9850e70ba7935a7df4ad86b358fc216f9f0/index.js\n function toArrayBuffer (buf) {\n // If the buffer is backed by a Uint8Array, a faster version will work\n if (buf instanceof Uint8Array) {\n // If the buffer isn't a subarray, return the underlying ArrayBuffer\n if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer\n } else if (typeof buf.buffer.slice === 'function') {\n // Otherwise we need to get a proper copy\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)\n }\n }\n\n if (isBuffer(buf)) {\n // This is the slow version that will work with any Buffer\n // implementation (even in old browsers)\n var arrayCopy = new Uint8Array(buf.length);\n var len = buf.length;\n for (var i = 0; i < len; i++) {\n arrayCopy[i] = buf[i];\n }\n return arrayCopy.buffer\n } else {\n throw new Error('Argument must be a Buffer')\n }\n }\n\n function decideMode(preferBinary, useFetch) {\n if (hasFetch && useFetch) {\n return 'fetch'\n } else if (mozchunkedarraybuffer) {\n return 'moz-chunked-arraybuffer'\n } else if (msstream) {\n return 'ms-stream'\n } else if (arraybuffer && preferBinary) {\n return 'arraybuffer'\n } else if (vbArray && preferBinary) {\n return 'text:vbarray'\n } else {\n return 'text'\n }\n }\n\n function ClientRequest(opts) {\n var self = this;\n Writable.call(self);\n\n self._opts = opts;\n self._body = [];\n self._headers = {};\n if (opts.auth)\n self.setHeader('Authorization', 'Basic ' + new Buffer$1(opts.auth).toString('base64'));\n Object.keys(opts.headers).forEach(function(name) {\n self.setHeader(name, opts.headers[name]);\n });\n\n var preferBinary;\n var useFetch = true;\n if (opts.mode === 'disable-fetch') {\n // If the use of XHR should be preferred and includes preserving the 'content-type' header\n useFetch = false;\n preferBinary = true;\n } else if (opts.mode === 'prefer-streaming') {\n // If streaming is a high priority but binary compatibility and\n // the accuracy of the 'content-type' header aren't\n preferBinary = false;\n } else if (opts.mode === 'allow-wrong-content-type') {\n // If streaming is more important than preserving the 'content-type' header\n preferBinary = !overrideMimeType;\n } else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n // Use binary if text streaming may corrupt data or the content-type header, or for speed\n preferBinary = true;\n } else {\n throw new Error('Invalid value for opts.mode')\n }\n self._mode = decideMode(preferBinary, useFetch);\n\n self.on('finish', function() {\n self._onFinish();\n });\n }\n\n inherits$1(ClientRequest, Writable);\n // Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\n var unsafeHeaders = [\n 'accept-charset',\n 'accept-encoding',\n 'access-control-request-headers',\n 'access-control-request-method',\n 'connection',\n 'content-length',\n 'cookie',\n 'cookie2',\n 'date',\n 'dnt',\n 'expect',\n 'host',\n 'keep-alive',\n 'origin',\n 'referer',\n 'te',\n 'trailer',\n 'transfer-encoding',\n 'upgrade',\n 'user-agent',\n 'via'\n ];\n ClientRequest.prototype.setHeader = function(name, value) {\n var self = this;\n var lowerName = name.toLowerCase();\n // This check is not necessary, but it prevents warnings from browsers about setting unsafe\n // headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n // http-browserify did it, so I will too.\n if (unsafeHeaders.indexOf(lowerName) !== -1)\n return\n\n self._headers[lowerName] = {\n name: name,\n value: value\n };\n };\n\n ClientRequest.prototype.getHeader = function(name) {\n var self = this;\n return self._headers[name.toLowerCase()].value\n };\n\n ClientRequest.prototype.removeHeader = function(name) {\n var self = this;\n delete self._headers[name.toLowerCase()];\n };\n\n ClientRequest.prototype._onFinish = function() {\n var self = this;\n\n if (self._destroyed)\n return\n var opts = self._opts;\n\n var headersObj = self._headers;\n var body;\n if (opts.method === 'POST' || opts.method === 'PUT' || opts.method === 'PATCH') {\n if (blobConstructor()) {\n body = new global$1.Blob(self._body.map(function(buffer) {\n return toArrayBuffer(buffer)\n }), {\n type: (headersObj['content-type'] || {}).value || ''\n });\n } else {\n // get utf8 string\n body = Buffer$1.concat(self._body).toString();\n }\n }\n\n if (self._mode === 'fetch') {\n var headers = Object.keys(headersObj).map(function(name) {\n return [headersObj[name].name, headersObj[name].value]\n });\n\n global$1.fetch(self._opts.url, {\n method: self._opts.method,\n headers: headers,\n body: body,\n mode: 'cors',\n credentials: opts.withCredentials ? 'include' : 'same-origin'\n }).then(function(response) {\n self._fetchResponse = response;\n self._connect();\n }, function(reason) {\n self.emit('error', reason);\n });\n } else {\n var xhr = self._xhr = new global$1.XMLHttpRequest();\n try {\n xhr.open(self._opts.method, self._opts.url, true);\n } catch (err) {\n browser$1.nextTick(function() {\n self.emit('error', err);\n });\n return\n }\n\n // Can't set responseType on really old browsers\n if ('responseType' in xhr)\n xhr.responseType = self._mode.split(':')[0];\n\n if ('withCredentials' in xhr)\n xhr.withCredentials = !!opts.withCredentials;\n\n if (self._mode === 'text' && 'overrideMimeType' in xhr)\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\n\n Object.keys(headersObj).forEach(function(name) {\n xhr.setRequestHeader(headersObj[name].name, headersObj[name].value);\n });\n\n self._response = null;\n xhr.onreadystatechange = function() {\n switch (xhr.readyState) {\n case rStates.LOADING:\n case rStates.DONE:\n self._onXHRProgress();\n break\n }\n };\n // Necessary for streaming in Firefox, since xhr.response is ONLY defined\n // in onprogress, not in onreadystatechange with xhr.readyState = 3\n if (self._mode === 'moz-chunked-arraybuffer') {\n xhr.onprogress = function() {\n self._onXHRProgress();\n };\n }\n\n xhr.onerror = function() {\n if (self._destroyed)\n return\n self.emit('error', new Error('XHR error'));\n };\n\n try {\n xhr.send(body);\n } catch (err) {\n browser$1.nextTick(function() {\n self.emit('error', err);\n });\n return\n }\n }\n };\n\n /**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\n function statusValid(xhr) {\n try {\n var status = xhr.status;\n return (status !== null && status !== 0)\n } catch (e) {\n return false\n }\n }\n\n ClientRequest.prototype._onXHRProgress = function() {\n var self = this;\n\n if (!statusValid(self._xhr) || self._destroyed)\n return\n\n if (!self._response)\n self._connect();\n\n self._response._onXHRProgress();\n };\n\n ClientRequest.prototype._connect = function() {\n var self = this;\n\n if (self._destroyed)\n return\n\n self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode);\n self.emit('response', self._response);\n };\n\n ClientRequest.prototype._write = function(chunk, encoding, cb) {\n var self = this;\n\n self._body.push(chunk);\n cb();\n };\n\n ClientRequest.prototype.abort = ClientRequest.prototype.destroy = function() {\n var self = this;\n self._destroyed = true;\n if (self._response)\n self._response._destroyed = true;\n if (self._xhr)\n self._xhr.abort();\n // Currently, there isn't a way to truly abort a fetch.\n // If you like bikeshedding, see https://github.com/whatwg/fetch/issues/27\n };\n\n ClientRequest.prototype.end = function(data, encoding, cb) {\n var self = this;\n if (typeof data === 'function') {\n cb = data;\n data = undefined;\n }\n\n Writable.prototype.end.call(self, data, encoding, cb);\n };\n\n ClientRequest.prototype.flushHeaders = function() {};\n ClientRequest.prototype.setTimeout = function() {};\n ClientRequest.prototype.setNoDelay = function() {};\n ClientRequest.prototype.setSocketKeepAlive = function() {};\n\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n // If obj.hasOwnProperty has been overridden, then calling\n // obj.hasOwnProperty(prop) will break.\n // See: https://github.com/joyent/node/issues/1707\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n var isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n };\n function stringifyPrimitive(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n }\n\n function stringify (obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map$2(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map$2(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n }\n function map$2 (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n }\n\n var objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n };\n\n function parse$7(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n }\n\n // Copyright Joyent, Inc. and other Node contributors.\n var Url = {\n parse: urlParse,\n resolve: urlResolve,\n resolveObject: urlResolveObject,\n format: urlFormat,\n Url: Url$1\n };\n function Url$1() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n }\n\n // Reference: RFC 3986, RFC 1808, RFC 2396\n\n // define these here so at least they only have to be\n // compiled once on the first module load.\n var protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n\n function urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && isObject$5(url) && url instanceof Url$1) return url;\n\n var u = new Url$1;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n }\n Url$1.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n return parse$6(this, url, parseQueryString, slashesDenoteHost);\n };\n\n function parse$6(self, url, parseQueryString, slashesDenoteHost) {\n if (!isString(url)) {\n throw new TypeError('Parameter \\'url\\' must be a string, not ' + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n self.path = rest;\n self.href = rest;\n self.pathname = simplePath[1];\n if (simplePath[2]) {\n self.search = simplePath[2];\n if (parseQueryString) {\n self.query = parse$7(self.search.substr(1));\n } else {\n self.query = self.search.substr(1);\n }\n } else if (parseQueryString) {\n self.search = '';\n self.query = {};\n }\n return self;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n self.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n self.slashes = true;\n }\n }\n var i, hec, l, p;\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n self.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n self.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n parseHost(self);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n self.hostname = self.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = self.hostname[0] === '[' &&\n self.hostname[self.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = self.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n self.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (self.hostname.length > hostnameMaxLen) {\n self.hostname = '';\n } else {\n // hostnames are always lower case.\n self.hostname = self.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n self.hostname = toASCII(self.hostname);\n }\n\n p = self.port ? ':' + self.port : '';\n var h = self.hostname || '';\n self.host = h + p;\n self.href += self.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n self.hostname = self.hostname.substr(1, self.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n self.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n self.search = rest.substr(qm);\n self.query = rest.substr(qm + 1);\n if (parseQueryString) {\n self.query = parse$7(self.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n self.search = '';\n self.query = {};\n }\n if (rest) self.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n self.hostname && !self.pathname) {\n self.pathname = '/';\n }\n\n //to support http.request\n if (self.pathname || self.search) {\n p = self.pathname || '';\n var s = self.search || '';\n self.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n self.href = format$1(self);\n return self;\n }\n\n // format a parsed object into a url string\n function urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (isString(obj)) obj = parse$6({}, obj);\n return format$1(obj);\n }\n\n function format$1(self) {\n var auth = self.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = self.protocol || '',\n pathname = self.pathname || '',\n hash = self.hash || '',\n host = false,\n query = '';\n\n if (self.host) {\n host = auth + self.host;\n } else if (self.hostname) {\n host = auth + (self.hostname.indexOf(':') === -1 ?\n self.hostname :\n '[' + this.hostname + ']');\n if (self.port) {\n host += ':' + self.port;\n }\n }\n\n if (self.query &&\n isObject$5(self.query) &&\n Object.keys(self.query).length) {\n query = stringify(self.query);\n }\n\n var search = self.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (self.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n }\n\n Url$1.prototype.format = function() {\n return format$1(this);\n };\n\n function urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n }\n\n Url$1.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n };\n\n function urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n }\n\n Url$1.prototype.resolveObject = function(relative) {\n if (isString(relative)) {\n var rel = new Url$1();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url$1();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n var relPath;\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n relPath = relative.pathname && relative.pathname.split('/') || [];\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n var authInHost;\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!isNull$3(result.pathname) || !isNull$3(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!isNull$3(result.pathname) || !isNull$3(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n };\n\n Url$1.prototype.parseHost = function() {\n return parseHost(this);\n };\n\n function parseHost(self) {\n var host = self.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n self.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) self.hostname = host;\n }\n\n var url = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: urlParse,\n resolve: urlResolve,\n resolveObject: urlResolveObject,\n format: urlFormat,\n 'default': Url,\n Url: Url$1\n });\n\n function request(opts, cb) {\n if (typeof opts === 'string')\n opts = urlParse(opts);\n\n\n // Normally, the page is loaded from http or https, so not specifying a protocol\n // will result in a (valid) protocol-relative url. However, this won't work if\n // the protocol is something else, like 'file:'\n var defaultProtocol = global$1.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '';\n\n var protocol = opts.protocol || defaultProtocol;\n var host = opts.hostname || opts.host;\n var port = opts.port;\n var path = opts.path || '/';\n\n // Necessary for IPv6 addresses\n if (host && host.indexOf(':') !== -1)\n host = '[' + host + ']';\n\n // This may be a relative url. The browser should always be able to interpret it correctly.\n opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path;\n opts.method = (opts.method || 'GET').toUpperCase();\n opts.headers = opts.headers || {};\n\n // Also valid opts.auth, opts.mode\n\n var req = new ClientRequest(opts);\n if (cb)\n req.on('response', cb);\n return req\n }\n\n function get$1(opts, cb) {\n var req = request(opts, cb);\n req.end();\n return req\n }\n\n function Agent() {}\n Agent.defaultMaxSockets = 4;\n\n var METHODS = [\n 'CHECKOUT',\n 'CONNECT',\n 'COPY',\n 'DELETE',\n 'GET',\n 'HEAD',\n 'LOCK',\n 'M-SEARCH',\n 'MERGE',\n 'MKACTIVITY',\n 'MKCOL',\n 'MOVE',\n 'NOTIFY',\n 'OPTIONS',\n 'PATCH',\n 'POST',\n 'PROPFIND',\n 'PROPPATCH',\n 'PURGE',\n 'PUT',\n 'REPORT',\n 'SEARCH',\n 'SUBSCRIBE',\n 'TRACE',\n 'UNLOCK',\n 'UNSUBSCRIBE'\n ];\n var STATUS_CODES$1 = {\n 100: 'Continue',\n 101: 'Switching Protocols',\n 102: 'Processing', // RFC 2518, obsoleted by RFC 4918\n 200: 'OK',\n 201: 'Created',\n 202: 'Accepted',\n 203: 'Non-Authoritative Information',\n 204: 'No Content',\n 205: 'Reset Content',\n 206: 'Partial Content',\n 207: 'Multi-Status', // RFC 4918\n 300: 'Multiple Choices',\n 301: 'Moved Permanently',\n 302: 'Moved Temporarily',\n 303: 'See Other',\n 304: 'Not Modified',\n 305: 'Use Proxy',\n 307: 'Temporary Redirect',\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 402: 'Payment Required',\n 403: 'Forbidden',\n 404: 'Not Found',\n 405: 'Method Not Allowed',\n 406: 'Not Acceptable',\n 407: 'Proxy Authentication Required',\n 408: 'Request Time-out',\n 409: 'Conflict',\n 410: 'Gone',\n 411: 'Length Required',\n 412: 'Precondition Failed',\n 413: 'Request Entity Too Large',\n 414: 'Request-URI Too Large',\n 415: 'Unsupported Media Type',\n 416: 'Requested Range Not Satisfiable',\n 417: 'Expectation Failed',\n 418: 'I\\'m a teapot', // RFC 2324\n 422: 'Unprocessable Entity', // RFC 4918\n 423: 'Locked', // RFC 4918\n 424: 'Failed Dependency', // RFC 4918\n 425: 'Unordered Collection', // RFC 4918\n 426: 'Upgrade Required', // RFC 2817\n 428: 'Precondition Required', // RFC 6585\n 429: 'Too Many Requests', // RFC 6585\n 431: 'Request Header Fields Too Large', // RFC 6585\n 500: 'Internal Server Error',\n 501: 'Not Implemented',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n 504: 'Gateway Time-out',\n 505: 'HTTP Version Not Supported',\n 506: 'Variant Also Negotiates', // RFC 2295\n 507: 'Insufficient Storage', // RFC 4918\n 509: 'Bandwidth Limit Exceeded',\n 510: 'Not Extended', // RFC 2774\n 511: 'Network Authentication Required' // RFC 6585\n };\n\n var http$1 = {\n request,\n get: get$1,\n Agent,\n METHODS,\n STATUS_CODES: STATUS_CODES$1\n };\n\n var http$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n request: request,\n get: get$1,\n Agent: Agent,\n METHODS: METHODS,\n STATUS_CODES: STATUS_CODES$1,\n 'default': http$1\n });\n\n var msg = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n };\n\n function ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n }\n\n function arraySet(dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n }\n\n\n var Buf8 = Uint8Array;\n var Buf16 = Uint16Array;\n var Buf32 = Int32Array;\n // Enable/Disable typed arrays use, for testing\n //\n\n /* Public constants ==========================================================*/\n /* ===========================================================================*/\n\n\n //var Z_FILTERED = 1;\n //var Z_HUFFMAN_ONLY = 2;\n //var Z_RLE = 3;\n var Z_FIXED$2 = 4;\n //var Z_DEFAULT_STRATEGY = 0;\n\n /* Possible values of the data_type field (though see inflate()) */\n var Z_BINARY$1 = 0;\n var Z_TEXT$1 = 1;\n //var Z_ASCII = 1; // = Z_TEXT\n var Z_UNKNOWN$2 = 2;\n\n /*============================================================================*/\n\n\n function zero$1(buf) {\n var len = buf.length;\n while (--len >= 0) {\n buf[len] = 0;\n }\n }\n\n // From zutil.h\n\n var STORED_BLOCK = 0;\n var STATIC_TREES = 1;\n var DYN_TREES = 2;\n /* The three kinds of block type */\n\n var MIN_MATCH$1 = 3;\n var MAX_MATCH$1 = 258;\n /* The minimum and maximum match lengths */\n\n // From deflate.h\n /* ===========================================================================\n * Internal compression state.\n */\n\n var LENGTH_CODES$1 = 29;\n /* number of length codes, not counting the special END_BLOCK code */\n\n var LITERALS$1 = 256;\n /* number of literal bytes 0..255 */\n\n var L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n /* number of Literal or Length codes, including the END_BLOCK code */\n\n var D_CODES$1 = 30;\n /* number of distance codes */\n\n var BL_CODES$1 = 19;\n /* number of codes used to transfer the bit lengths */\n\n var HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n /* maximum heap size */\n\n var MAX_BITS$1 = 15;\n /* All codes must not exceed MAX_BITS bits */\n\n var Buf_size = 16;\n /* size of bit buffer in bi_buf */\n\n\n /* ===========================================================================\n * Constants\n */\n\n var MAX_BL_BITS = 7;\n /* Bit length codes must not exceed MAX_BL_BITS bits */\n\n var END_BLOCK = 256;\n /* end of block literal code */\n\n var REP_3_6 = 16;\n /* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\n var REPZ_3_10 = 17;\n /* repeat a zero length 3-10 times (3 bits of repeat count) */\n\n var REPZ_11_138 = 18;\n /* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n /* eslint-disable comma-spacing,array-bracket-spacing */\n var extra_lbits = /* extra bits for each length code */ [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];\n\n var extra_dbits = /* extra bits for each distance code */ [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];\n\n var extra_blbits = /* extra bits for each bit length code */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\n\n var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n /* eslint-enable comma-spacing,array-bracket-spacing */\n\n /* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n /* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n // We pre-fill arrays with 0 to avoid uninitialized gaps\n\n var DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n // !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\n var static_ltree = new Array((L_CODES$1 + 2) * 2);\n zero$1(static_ltree);\n /* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\n var static_dtree = new Array(D_CODES$1 * 2);\n zero$1(static_dtree);\n /* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\n var _dist_code = new Array(DIST_CODE_LEN);\n zero$1(_dist_code);\n /* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\n var _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\n zero$1(_length_code);\n /* length code for each normalized match length (0 == MIN_MATCH) */\n\n var base_length = new Array(LENGTH_CODES$1);\n zero$1(base_length);\n /* First normalized length for each code (0 = MIN_MATCH) */\n\n var base_dist = new Array(D_CODES$1);\n zero$1(base_dist);\n /* First normalized distance for each code (0 = distance of 1) */\n\n\n function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n }\n\n\n var static_l_desc;\n var static_d_desc;\n var static_bl_desc;\n\n\n function TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n }\n\n\n\n function d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n }\n\n\n /* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\n function put_short(s, w) {\n // put_byte(s, (uch)((w) & 0xff));\n // put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n }\n\n\n /* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\n function send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n }\n\n\n function send_code(s, c, tree) {\n send_bits(s, tree[c * 2] /*.Code*/ , tree[c * 2 + 1] /*.Len*/ );\n }\n\n\n /* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\n function bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n }\n\n\n /* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\n function bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n }\n\n\n /* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\n function gen_bitlen(s, desc) {\n // deflate_state *s;\n // tree_desc *desc; /* the tree descriptor */\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1] /*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1] /*.Dad*/ * 2 + 1] /*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1] /*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) {\n continue;\n } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2] /*.Freq*/ ;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1] /*.Len*/ + xbits);\n }\n }\n if (overflow === 0) {\n return;\n }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) {\n bits--;\n }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) {\n continue;\n }\n if (tree[m * 2 + 1] /*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1] /*.Len*/ ) * tree[m * 2] /*.Freq*/ ;\n tree[m * 2 + 1] /*.Len*/ = bits;\n }\n n--;\n }\n }\n }\n\n\n /* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\n function gen_codes(tree, max_code, bl_count) {\n // ct_data *tree; /* the tree to decorate */\n // int max_code; /* largest code with non zero frequency */\n // ushf *bl_count; /* number of codes at each bit length */\n\n var next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1] /*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1] /*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1] /*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1] /*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1] /*.Len*/ = 5;\n static_dtree[n * 2] /*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n }\n\n\n /* ===========================================================================\n * Initialize a new block.\n */\n function init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) {\n s.dyn_ltree[n * 2] /*.Freq*/ = 0;\n }\n for (n = 0; n < D_CODES$1; n++) {\n s.dyn_dtree[n * 2] /*.Freq*/ = 0;\n }\n for (n = 0; n < BL_CODES$1; n++) {\n s.bl_tree[n * 2] /*.Freq*/ = 0;\n }\n\n s.dyn_ltree[END_BLOCK * 2] /*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n }\n\n\n /* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\n function bi_windup(s) {\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n }\n\n /* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\n function copy_block(s, buf, len, header) {\n //DeflateState *s;\n //charf *buf; /* the input data */\n //unsigned len; /* its length */\n //int header; /* true if block header must be written */\n\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n // while (len--) {\n // put_byte(s, *buf++);\n // }\n arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n }\n\n /* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\n function smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2] /*.Freq*/ < tree[_m2] /*.Freq*/ ||\n (tree[_n2] /*.Freq*/ === tree[_m2] /*.Freq*/ && depth[n] <= depth[m]));\n }\n\n /* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\n function pqdownheap(s, tree, k)\n // deflate_state *s;\n // ct_data *tree; /* the tree to restore */\n // int k; /* node to move down */\n {\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) {\n break;\n }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n }\n\n\n // inlined manually\n // var SMALLEST = 1;\n\n /* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\n function compress_block(s, ltree, dtree)\n // deflate_state *s;\n // const ct_data *ltree; /* literal tree */\n // const ct_data *dtree; /* distance tree */\n {\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n }\n\n\n /* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\n function build_tree(s, desc)\n // deflate_state *s;\n // tree_desc *desc; /* the tree descriptor */\n {\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2] /*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1] /*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2] /*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1] /*.Len*/ ;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1 /*int /2*/ ); n >= 1; n--) {\n pqdownheap(s, tree, n);\n }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1 /*SMALLEST*/ ];\n s.heap[1 /*SMALLEST*/ ] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1 /*SMALLEST*/ );\n /***/\n\n m = s.heap[1 /*SMALLEST*/ ]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2] /*.Freq*/ = tree[n * 2] /*.Freq*/ + tree[m * 2] /*.Freq*/ ;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1] /*.Dad*/ = tree[m * 2 + 1] /*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1 /*SMALLEST*/ ] = node++;\n pqdownheap(s, tree, 1 /*SMALLEST*/ );\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1 /*SMALLEST*/ ];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n }\n\n\n /* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\n function scan_tree(s, tree, max_code)\n // deflate_state *s;\n // ct_data *tree; /* the tree to be scanned */\n // int max_code; /* and its largest code of non zero frequency */\n {\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1] /*.Len*/ ; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1] /*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1] /*.Len*/ ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2] /*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) {\n s.bl_tree[curlen * 2] /*.Freq*/ ++;\n }\n s.bl_tree[REP_3_6 * 2] /*.Freq*/ ++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2] /*.Freq*/ ++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2] /*.Freq*/ ++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n }\n\n\n /* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\n function send_tree(s, tree, max_code)\n // deflate_state *s;\n // ct_data *tree; /* the tree to be scanned */\n // int max_code; /* and its largest code of non zero frequency */\n {\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1] /*.Len*/ ; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */\n /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1] /*.Len*/ ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do {\n send_code(s, curlen, s.bl_tree);\n } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n }\n\n\n /* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\n function build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1] /*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n }\n\n\n /* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\n function send_all_trees(s, lcodes, dcodes, blcodes)\n // deflate_state *s;\n // int lcodes, dcodes, blcodes; /* number of codes for each tree */\n {\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1] /*.Len*/ , 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n }\n\n\n /* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\n function detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2] /*.Freq*/ !== 0)) {\n return Z_BINARY$1;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2] /*.Freq*/ !== 0 || s.dyn_ltree[10 * 2] /*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2] /*.Freq*/ !== 0) {\n return Z_TEXT$1;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2] /*.Freq*/ !== 0) {\n return Z_TEXT$1;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY$1;\n }\n\n\n var static_init_done = false;\n\n /* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\n function _tr_init(s) {\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n }\n\n\n /* ===========================================================================\n * Send a stored block\n */\n function _tr_stored_block(s, buf, stored_len, last)\n //DeflateState *s;\n //charf *buf; /* input block */\n //ulg stored_len; /* length of input block */\n //int last; /* one if this is the last block for a file */\n {\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n }\n\n\n /* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\n function _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n }\n\n\n /* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\n function _tr_flush_block(s, buf, stored_len, last)\n //DeflateState *s;\n //charf *buf; /* input block, or NULL if too old */\n //ulg stored_len; /* length of input block */\n //int last; /* one if this is the last block for a file */\n {\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$2) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) {\n opt_lenb = static_lenb;\n }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$2 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n }\n\n /* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\n function _tr_tally(s, dist, lc)\n // deflate_state *s;\n // unsigned dist; /* distance of matched string */\n // unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n {\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2] /*.Freq*/ ++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2] /*.Freq*/ ++;\n s.dyn_dtree[d_code(dist) * 2] /*.Freq*/ ++;\n }\n\n // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n\n //#ifdef TRUNCATE_BLOCK\n // /* Try to guess if it is profitable to stop the current block here */\n // if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n // /* Compute an upper bound for the compressed length */\n // out_length = s.last_lit*8;\n // in_length = s.strstart - s.block_start;\n //\n // for (dcode = 0; dcode < D_CODES; dcode++) {\n // out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n // }\n // out_length >>>= 3;\n // //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n // // s->last_lit, in_length, out_length,\n // // 100L - out_length*100L/in_length));\n // if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n // return true;\n // }\n // }\n //#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n }\n\n // Note: adler32 takes 12% for level 0 and 2% for level 6.\n // It doesn't worth to make additional optimizationa as in original.\n // Small size is preferable.\n\n function adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n }\n\n // Note: we can't get significant speed boost here.\n // So write code to minimize size - no pregenerated tables\n // and array tools dependencies.\n\n\n // Use ordinary array, since untyped makes no boost here\n function makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n }\n\n // Create table on load. Just 255 signed longs. Not a problem.\n var crcTable = makeTable();\n\n\n function crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n }\n\n /* Public constants ==========================================================*/\n /* ===========================================================================*/\n\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n var Z_NO_FLUSH$1 = 0;\n var Z_PARTIAL_FLUSH$1 = 1;\n //var Z_SYNC_FLUSH = 2;\n var Z_FULL_FLUSH$1 = 3;\n var Z_FINISH$2 = 4;\n var Z_BLOCK$2 = 5;\n //var Z_TREES = 6;\n\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n var Z_OK$2 = 0;\n var Z_STREAM_END$2 = 1;\n //var Z_NEED_DICT = 2;\n //var Z_ERRNO = -1;\n var Z_STREAM_ERROR$2 = -2;\n var Z_DATA_ERROR$2 = -3;\n //var Z_MEM_ERROR = -4;\n var Z_BUF_ERROR$2 = -5;\n //var Z_VERSION_ERROR = -6;\n\n\n /* compression levels */\n //var Z_NO_COMPRESSION = 0;\n //var Z_BEST_SPEED = 1;\n //var Z_BEST_COMPRESSION = 9;\n var Z_DEFAULT_COMPRESSION$1 = -1;\n\n\n var Z_FILTERED$1 = 1;\n var Z_HUFFMAN_ONLY$1 = 2;\n var Z_RLE$1 = 3;\n var Z_FIXED$1 = 4;\n\n /* Possible values of the data_type field (though see inflate()) */\n //var Z_BINARY = 0;\n //var Z_TEXT = 1;\n //var Z_ASCII = 1; // = Z_TEXT\n var Z_UNKNOWN$1 = 2;\n\n\n /* The deflate compression method */\n var Z_DEFLATED$2 = 8;\n\n /*============================================================================*/\n\n\n var MAX_MEM_LEVEL = 9;\n\n\n var LENGTH_CODES = 29;\n /* number of length codes, not counting the special END_BLOCK code */\n var LITERALS = 256;\n /* number of literal bytes 0..255 */\n var L_CODES = LITERALS + 1 + LENGTH_CODES;\n /* number of Literal or Length codes, including the END_BLOCK code */\n var D_CODES = 30;\n /* number of distance codes */\n var BL_CODES = 19;\n /* number of codes used to transfer the bit lengths */\n var HEAP_SIZE = 2 * L_CODES + 1;\n /* maximum heap size */\n var MAX_BITS = 15;\n /* All codes must not exceed MAX_BITS bits */\n\n var MIN_MATCH = 3;\n var MAX_MATCH = 258;\n var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\n var PRESET_DICT = 0x20;\n\n var INIT_STATE = 42;\n var EXTRA_STATE = 69;\n var NAME_STATE = 73;\n var COMMENT_STATE = 91;\n var HCRC_STATE = 103;\n var BUSY_STATE = 113;\n var FINISH_STATE = 666;\n\n var BS_NEED_MORE = 1; /* block not completed, need more input or more output */\n var BS_BLOCK_DONE = 2; /* block flush performed */\n var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\n var BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\n var OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\n function err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n }\n\n function rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n }\n\n function zero(buf) {\n var len = buf.length;\n while (--len >= 0) {\n buf[len] = 0;\n }\n }\n\n\n /* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\n function flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) {\n return;\n }\n\n arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n }\n\n\n function flush_block_only(s, last) {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n }\n\n\n function put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n }\n\n\n /* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\n function putShortMSB(s, b) {\n // put_byte(s, (Byte)(b >> 8));\n // put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n }\n\n\n /* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\n function read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) {\n len = size;\n }\n if (len === 0) {\n return 0;\n }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n } else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n }\n\n\n /* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\n function longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0 /*NIL*/ ;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) {\n nice_match = s.lookahead;\n }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n }\n\n\n /* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\n function fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n //#if MIN_MATCH != 3\n // Call update_hash() MIN_MATCH-3 more times\n //#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n // if (s.high_water < s.window_size) {\n // var curr = s.strstart + s.lookahead;\n // var init = 0;\n //\n // if (s.high_water < curr) {\n // /* Previous high water mark below current data -- zero WIN_INIT\n // * bytes or up to end of window, whichever is less.\n // */\n // init = s.window_size - curr;\n // if (init > WIN_INIT)\n // init = WIN_INIT;\n // zmemzero(s->window + curr, (unsigned)init);\n // s->high_water = curr + init;\n // }\n // else if (s->high_water < (ulg)curr + WIN_INIT) {\n // /* High water mark at or above current data, but below current data\n // * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n // * to end of window, whichever is less.\n // */\n // init = (ulg)curr + WIN_INIT - s->high_water;\n // if (init > s->window_size - s->high_water)\n // init = s->window_size - s->high_water;\n // zmemzero(s->window + s->high_water, (unsigned)init);\n // s->high_water += init;\n // }\n // }\n //\n // Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n // \"not enough room for search\");\n }\n\n /* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\n function deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n // if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n // s.block_start >= s.w_size)) {\n // throw new Error(\"slide too late\");\n // }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n // if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n }\n\n /* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\n function deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0 /*NIL*/ ;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0 /*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match /*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n //#if MIN_MATCH != 3\n // Call UPDATE_HASH() MIN_MATCH-3 more times\n //#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n }\n\n /* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\n function deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0 /*NIL*/ ;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0 /*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD) /*MAX_DIST(s)*/ ) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED$1 || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096 /*TOO_FAR*/ ))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n }\n\n\n /* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\n function deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n }\n\n /* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\n function deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$1) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$2) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n }\n\n /* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\n function Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n }\n\n var configuration_table;\n\n configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n ];\n\n\n /* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\n function lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n }\n\n\n function DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all\n */\n\n this.depth = new Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n }\n\n\n function deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN$1;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$1;\n _tr_init(s);\n return Z_OK$2;\n }\n\n\n function deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK$2) {\n lm_init(strm.state);\n }\n return ret;\n }\n\n\n function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n } else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED$1) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Buf8(s.w_size * 2);\n s.head = new Buf16(s.hash_size);\n s.prev = new Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n }\n\n\n function deflate$1(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$2 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$2)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$2 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n if (s.wrap === 2) {\n // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n } else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n } else // DEFLATE header\n {\n var header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY$1 || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) {\n header |= PRESET_DICT;\n }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n //#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n } else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n } else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment /* != Z_NULL*/ ) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n } else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n } else {\n s.status = BUSY_STATE;\n }\n }\n //#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$2;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$2) {\n return err(strm, Z_BUF_ERROR$2);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$2);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$1 && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY$1) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE$1 ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$2;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH$1) {\n _tr_align(s);\n } else if (flush !== Z_BLOCK$2) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/\n /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$2;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$2) {\n return Z_OK$2;\n }\n if (s.wrap <= 0) {\n return Z_STREAM_END$2;\n }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n } else {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) {\n s.wrap = -s.wrap;\n }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$2 : Z_STREAM_END$2;\n }\n\n function deflateEnd(strm) {\n var status;\n\n if (!strm /*== Z_NULL*/ || !strm.state /*== Z_NULL*/ ) {\n return Z_STREAM_ERROR$2;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$2;\n }\n\n /* Not implemented\n exports.deflateBound = deflateBound;\n exports.deflateCopy = deflateCopy;\n exports.deflateParams = deflateParams;\n exports.deflatePending = deflatePending;\n exports.deflatePrime = deflatePrime;\n exports.deflateTune = deflateTune;\n */\n\n // See state defs from inflate.js\n var BAD$1 = 30; /* got a data error -- remain here until reset */\n var TYPE$2 = 12; /* i: waiting for type bits, including last-flag bit */\n\n /*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\n function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n //#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n //#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n //#ifdef INFLATE_STRICT\n dmax = state.dmax;\n //#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n //#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n //#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // if (len <= op - whave) {\n // do {\n // output[_out++] = 0;\n // } while (--len);\n // continue top;\n // }\n // len -= op - whave;\n // do {\n // output[_out++] = 0;\n // } while (--op > whave);\n // if (op === 0) {\n // from = _out - dist;\n // do {\n // output[_out++] = output[from++];\n // } while (--len);\n // continue top;\n // }\n //#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$2;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n }\n\n var MAXBITS = 15;\n var ENOUGH_LENS$1 = 852;\n var ENOUGH_DISTS$1 = 592;\n //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\n var CODES$1 = 0;\n var LENS$1 = 1;\n var DISTS$1 = 2;\n\n var lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n ];\n\n var lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n ];\n\n var dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n ];\n\n var dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n ];\n\n function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0,\n max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n // var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) {\n break;\n }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) {\n break;\n }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n } else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n } else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val | 0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) {\n break;\n }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) {\n break;\n }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) | 0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) | 0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n }\n\n var CODES = 0;\n var LENS = 1;\n var DISTS = 2;\n\n /* Public constants ==========================================================*/\n /* ===========================================================================*/\n\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n //var Z_NO_FLUSH = 0;\n //var Z_PARTIAL_FLUSH = 1;\n //var Z_SYNC_FLUSH = 2;\n //var Z_FULL_FLUSH = 3;\n var Z_FINISH$1 = 4;\n var Z_BLOCK$1 = 5;\n var Z_TREES$1 = 6;\n\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n var Z_OK$1 = 0;\n var Z_STREAM_END$1 = 1;\n var Z_NEED_DICT$1 = 2;\n //var Z_ERRNO = -1;\n var Z_STREAM_ERROR$1 = -2;\n var Z_DATA_ERROR$1 = -3;\n var Z_MEM_ERROR = -4;\n var Z_BUF_ERROR$1 = -5;\n //var Z_VERSION_ERROR = -6;\n\n /* The deflate compression method */\n var Z_DEFLATED$1 = 8;\n\n\n /* STATES ====================================================================*/\n /* ===========================================================================*/\n\n\n var HEAD = 1; /* i: waiting for magic header */\n var FLAGS = 2; /* i: waiting for method and flags (gzip) */\n var TIME = 3; /* i: waiting for modification time (gzip) */\n var OS = 4; /* i: waiting for extra flags and operating system (gzip) */\n var EXLEN = 5; /* i: waiting for extra length (gzip) */\n var EXTRA = 6; /* i: waiting for extra bytes (gzip) */\n var NAME = 7; /* i: waiting for end of file name (gzip) */\n var COMMENT = 8; /* i: waiting for end of comment (gzip) */\n var HCRC = 9; /* i: waiting for header crc (gzip) */\n var DICTID = 10; /* i: waiting for dictionary check value */\n var DICT = 11; /* waiting for inflateSetDictionary() call */\n var TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n var TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\n var STORED = 14; /* i: waiting for stored size (length and complement) */\n var COPY_ = 15; /* i/o: same as COPY below, but only first time in */\n var COPY = 16; /* i/o: waiting for input or output to copy stored block */\n var TABLE = 17; /* i: waiting for dynamic block table lengths */\n var LENLENS = 18; /* i: waiting for code length code lengths */\n var CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\n var LEN_ = 20; /* i: same as LEN below, but only first time in */\n var LEN = 21; /* i: waiting for length/lit/eob code */\n var LENEXT = 22; /* i: waiting for length extra bits */\n var DIST = 23; /* i: waiting for distance code */\n var DISTEXT = 24; /* i: waiting for distance extra bits */\n var MATCH = 25; /* o: waiting for output space to copy string */\n var LIT = 26; /* o: waiting for output space to write literal */\n var CHECK = 27; /* i: waiting for 32-bit check value */\n var LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\n var DONE = 29; /* finished check, done -- remain here until reset */\n var BAD = 30; /* got a data error -- remain here until reset */\n var MEM = 31; /* got an inflate() memory error -- remain here until reset */\n var SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n /* ===========================================================================*/\n\n\n\n var ENOUGH_LENS = 852;\n var ENOUGH_DISTS = 592;\n\n\n function zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n }\n\n\n function InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Buf16(320); /* temporary storage for code lengths */\n this.work = new Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n }\n\n function inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null /*Z_NULL*/ ;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n }\n\n function inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n }\n\n function inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n } else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n }\n\n function inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) {\n return Z_STREAM_ERROR$1;\n }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null /*Z_NULL*/ ;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null /*Z_NULL*/ ;\n }\n return ret;\n }\n\n\n /*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\n var virgin = true;\n\n var lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n function fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new Buf32(512);\n distfix = new Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) {\n state.lens[sym++] = 8;\n }\n while (sym < 256) {\n state.lens[sym++] = 9;\n }\n while (sym < 280) {\n state.lens[sym++] = 7;\n }\n while (sym < 288) {\n state.lens[sym++] = 8;\n }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {\n bits: 9\n });\n\n /* distance table */\n sym = 0;\n while (sym < 32) {\n state.lens[sym++] = 5;\n }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {\n bits: 5\n });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n }\n\n\n /*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\n function updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n } else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n } else {\n state.wnext += dist;\n if (state.wnext === state.wsize) {\n state.wnext = 0;\n }\n if (state.whave < state.wsize) {\n state.whave += dist;\n }\n }\n }\n return 0;\n }\n\n function inflate$1(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */ [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE$1) {\n state.mode = TYPEDO;\n } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0 /*crc32(0L, Z_NULL, 0)*/ ;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff) /*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f) /*BITS(4)*/ !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f) /*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n } else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1 /*adler32(0L, Z_NULL, 0)*/ ;\n state.mode = hold & 0x200 ? DICTID : TYPE$1;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n } else if (state.head) {\n state.head.extra = null /*Z_NULL*/ ;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) {\n copy = have;\n }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) {\n break inf_leave;\n }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) {\n break inf_leave;\n }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/ )) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) {\n break inf_leave;\n }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/ )) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE$1;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1 /*adler32(0L, Z_NULL, 0)*/ ;\n state.mode = TYPE$1;\n /* falls through */\n case TYPE$1:\n if (flush === Z_BLOCK$1 || flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01) /*BITS(1)*/ ;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03) /*BITS(2)*/ ) {\n case 0:\n /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1:\n /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES$1) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2:\n /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) {\n copy = have;\n }\n if (copy > left) {\n copy = left;\n }\n if (copy === 0) {\n break inf_leave;\n }\n //--- zmemcpy(put, next, copy); ---\n arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE$1;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f) /*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f) /*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f) /*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n //#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n //#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n } else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03); //BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n } else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n } else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f); //BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) {\n break;\n }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = {\n bits: state.distbits\n };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES$1) {\n break inf_leave;\n }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE$1) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1)) /*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE$1;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1) /*BITS(state.extra)*/ ;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)]; /*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1)) /*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1) /*BITS(state.extra)*/ ;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n //#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) {\n break inf_leave;\n }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // Trace((stderr, \"inflate.c too far\\n\"));\n // copy -= state.whave;\n // if (copy > state.length) { copy = state.length; }\n // if (copy > left) { copy = left; }\n // left -= copy;\n // state.length -= copy;\n // do {\n // output[put++] = 0;\n // } while (--copy);\n // if (state.length === 0) { state.mode = LEN; }\n // break;\n //#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n } else {\n from = state.wnext - copy;\n }\n if (copy > state.length) {\n copy = state.length;\n }\n from_source = state.window;\n } else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) {\n copy = left;\n }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) {\n state.mode = LEN;\n }\n break;\n case LIT:\n if (left === 0) {\n break inf_leave;\n }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n // Use '|' insdead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE$1 ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR$1;\n }\n return ret;\n }\n\n function inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/ ) {\n return Z_STREAM_ERROR$1;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n }\n\n /* Not implemented\n exports.inflateCopy = inflateCopy;\n exports.inflateGetDictionary = inflateGetDictionary;\n exports.inflateMark = inflateMark;\n exports.inflatePrime = inflatePrime;\n exports.inflateSync = inflateSync;\n exports.inflateSyncPoint = inflateSyncPoint;\n exports.inflateUndermine = inflateUndermine;\n */\n\n // import constants from './constants';\n\n\n // zlib modes\n var NONE = 0;\n var DEFLATE = 1;\n var INFLATE = 2;\n var GZIP = 3;\n var GUNZIP = 4;\n var DEFLATERAW = 5;\n var INFLATERAW = 6;\n var UNZIP = 7;\n var Z_NO_FLUSH= 0,\n Z_PARTIAL_FLUSH= 1,\n Z_SYNC_FLUSH= 2,\n Z_FULL_FLUSH= 3,\n Z_FINISH= 4,\n Z_BLOCK= 5,\n Z_TREES= 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK= 0,\n Z_STREAM_END= 1,\n Z_NEED_DICT= 2,\n Z_ERRNO= -1,\n Z_STREAM_ERROR= -2,\n Z_DATA_ERROR= -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR= -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION= 0,\n Z_BEST_SPEED= 1,\n Z_BEST_COMPRESSION= 9,\n Z_DEFAULT_COMPRESSION= -1,\n\n\n Z_FILTERED= 1,\n Z_HUFFMAN_ONLY= 2,\n Z_RLE= 3,\n Z_FIXED= 4,\n Z_DEFAULT_STRATEGY= 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY= 0,\n Z_TEXT= 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN= 2,\n\n /* The deflate compression method */\n Z_DEFLATED= 8;\n function Zlib$1(mode) {\n if (mode < DEFLATE || mode > UNZIP)\n throw new TypeError('Bad argument');\n\n this.mode = mode;\n this.init_done = false;\n this.write_in_progress = false;\n this.pending_close = false;\n this.windowBits = 0;\n this.level = 0;\n this.memLevel = 0;\n this.strategy = 0;\n this.dictionary = null;\n }\n\n Zlib$1.prototype.init = function(windowBits, level, memLevel, strategy, dictionary) {\n this.windowBits = windowBits;\n this.level = level;\n this.memLevel = memLevel;\n this.strategy = strategy;\n // dictionary not supported.\n\n if (this.mode === GZIP || this.mode === GUNZIP)\n this.windowBits += 16;\n\n if (this.mode === UNZIP)\n this.windowBits += 32;\n\n if (this.mode === DEFLATERAW || this.mode === INFLATERAW)\n this.windowBits = -this.windowBits;\n\n this.strm = new ZStream();\n var status;\n switch (this.mode) {\n case DEFLATE:\n case GZIP:\n case DEFLATERAW:\n status = deflateInit2(\n this.strm,\n this.level,\n Z_DEFLATED,\n this.windowBits,\n this.memLevel,\n this.strategy\n );\n break;\n case INFLATE:\n case GUNZIP:\n case INFLATERAW:\n case UNZIP:\n status = inflateInit2(\n this.strm,\n this.windowBits\n );\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (status !== Z_OK) {\n this._error(status);\n return;\n }\n\n this.write_in_progress = false;\n this.init_done = true;\n };\n\n Zlib$1.prototype.params = function() {\n throw new Error('deflateParams Not supported');\n };\n\n Zlib$1.prototype._writeCheck = function() {\n if (!this.init_done)\n throw new Error('write before init');\n\n if (this.mode === NONE)\n throw new Error('already finalized');\n\n if (this.write_in_progress)\n throw new Error('write already in progress');\n\n if (this.pending_close)\n throw new Error('close is pending');\n };\n\n Zlib$1.prototype.write = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this._writeCheck();\n this.write_in_progress = true;\n\n var self = this;\n browser$1.nextTick(function() {\n self.write_in_progress = false;\n var res = self._write(flush, input, in_off, in_len, out, out_off, out_len);\n self.callback(res[0], res[1]);\n\n if (self.pending_close)\n self.close();\n });\n\n return this;\n };\n\n // set method for Node buffers, used by pako\n function bufferSet(data, offset) {\n for (var i = 0; i < data.length; i++) {\n this[offset + i] = data[i];\n }\n }\n\n Zlib$1.prototype.writeSync = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this._writeCheck();\n return this._write(flush, input, in_off, in_len, out, out_off, out_len);\n };\n\n Zlib$1.prototype._write = function(flush, input, in_off, in_len, out, out_off, out_len) {\n this.write_in_progress = true;\n\n if (flush !== Z_NO_FLUSH &&\n flush !== Z_PARTIAL_FLUSH &&\n flush !== Z_SYNC_FLUSH &&\n flush !== Z_FULL_FLUSH &&\n flush !== Z_FINISH &&\n flush !== Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n\n if (input == null) {\n input = new Buffer$1(0);\n in_len = 0;\n in_off = 0;\n }\n\n if (out._set)\n out.set = out._set;\n else\n out.set = bufferSet;\n\n var strm = this.strm;\n strm.avail_in = in_len;\n strm.input = input;\n strm.next_in = in_off;\n strm.avail_out = out_len;\n strm.output = out;\n strm.next_out = out_off;\n var status;\n switch (this.mode) {\n case DEFLATE:\n case GZIP:\n case DEFLATERAW:\n status = deflate$1(strm, flush);\n break;\n case UNZIP:\n case INFLATE:\n case GUNZIP:\n case INFLATERAW:\n status = inflate$1(strm, flush);\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this._error(status);\n }\n\n this.write_in_progress = false;\n return [strm.avail_in, strm.avail_out];\n };\n\n Zlib$1.prototype.close = function() {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n\n this.pending_close = false;\n\n if (this.mode === DEFLATE || this.mode === GZIP || this.mode === DEFLATERAW) {\n deflateEnd(this.strm);\n } else {\n inflateEnd(this.strm);\n }\n\n this.mode = NONE;\n };\n var status;\n Zlib$1.prototype.reset = function() {\n switch (this.mode) {\n case DEFLATE:\n case DEFLATERAW:\n status = deflateReset(this.strm);\n break;\n case INFLATE:\n case INFLATERAW:\n status = inflateReset(this.strm);\n break;\n }\n\n if (status !== Z_OK) {\n this._error(status);\n }\n };\n\n Zlib$1.prototype._error = function(status) {\n this.onerror(msg[status] + ': ' + this.strm.msg, status);\n\n this.write_in_progress = false;\n if (this.pending_close)\n this.close();\n };\n\n var _binding = /*#__PURE__*/Object.freeze({\n __proto__: null,\n NONE: NONE,\n DEFLATE: DEFLATE,\n INFLATE: INFLATE,\n GZIP: GZIP,\n GUNZIP: GUNZIP,\n DEFLATERAW: DEFLATERAW,\n INFLATERAW: INFLATERAW,\n UNZIP: UNZIP,\n Z_NO_FLUSH: Z_NO_FLUSH,\n Z_PARTIAL_FLUSH: Z_PARTIAL_FLUSH,\n Z_SYNC_FLUSH: Z_SYNC_FLUSH,\n Z_FULL_FLUSH: Z_FULL_FLUSH,\n Z_FINISH: Z_FINISH,\n Z_BLOCK: Z_BLOCK,\n Z_TREES: Z_TREES,\n Z_OK: Z_OK,\n Z_STREAM_END: Z_STREAM_END,\n Z_NEED_DICT: Z_NEED_DICT,\n Z_ERRNO: Z_ERRNO,\n Z_STREAM_ERROR: Z_STREAM_ERROR,\n Z_DATA_ERROR: Z_DATA_ERROR,\n Z_BUF_ERROR: Z_BUF_ERROR,\n Z_NO_COMPRESSION: Z_NO_COMPRESSION,\n Z_BEST_SPEED: Z_BEST_SPEED,\n Z_BEST_COMPRESSION: Z_BEST_COMPRESSION,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION,\n Z_FILTERED: Z_FILTERED,\n Z_HUFFMAN_ONLY: Z_HUFFMAN_ONLY,\n Z_RLE: Z_RLE,\n Z_FIXED: Z_FIXED,\n Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY,\n Z_BINARY: Z_BINARY,\n Z_TEXT: Z_TEXT,\n Z_UNKNOWN: Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED,\n Zlib: Zlib$1\n });\n\n function assert (a, msg) {\n if (!a) {\n throw new Error(msg);\n }\n }\n var binding = {};\n Object.keys(_binding).forEach(function (key) {\n binding[key] = _binding[key];\n });\n // zlib doesn't provide these, so kludge them in following the same\n // const naming scheme zlib uses.\n binding.Z_MIN_WINDOWBITS = 8;\n binding.Z_MAX_WINDOWBITS = 15;\n binding.Z_DEFAULT_WINDOWBITS = 15;\n\n // fewer than 64 bytes per chunk is stupid.\n // technically it could work with as few as 8, but even 64 bytes\n // is absurdly low. Usually a MB or more is best.\n binding.Z_MIN_CHUNK = 64;\n binding.Z_MAX_CHUNK = Infinity;\n binding.Z_DEFAULT_CHUNK = (16 * 1024);\n\n binding.Z_MIN_MEMLEVEL = 1;\n binding.Z_MAX_MEMLEVEL = 9;\n binding.Z_DEFAULT_MEMLEVEL = 8;\n\n binding.Z_MIN_LEVEL = -1;\n binding.Z_MAX_LEVEL = 9;\n binding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;\n\n\n // translation table for return codes.\n var codes = {\n Z_OK: binding.Z_OK,\n Z_STREAM_END: binding.Z_STREAM_END,\n Z_NEED_DICT: binding.Z_NEED_DICT,\n Z_ERRNO: binding.Z_ERRNO,\n Z_STREAM_ERROR: binding.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding.Z_DATA_ERROR,\n Z_MEM_ERROR: binding.Z_MEM_ERROR,\n Z_BUF_ERROR: binding.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding.Z_VERSION_ERROR\n };\n\n Object.keys(codes).forEach(function(k) {\n codes[codes[k]] = k;\n });\n\n function createDeflate(o) {\n return new Deflate(o);\n }\n\n function createInflate(o) {\n return new Inflate(o);\n }\n\n function createDeflateRaw(o) {\n return new DeflateRaw(o);\n }\n\n function createInflateRaw(o) {\n return new InflateRaw(o);\n }\n\n function createGzip(o) {\n return new Gzip(o);\n }\n\n function createGunzip(o) {\n return new Gunzip(o);\n }\n\n function createUnzip(o) {\n return new Unzip(o);\n }\n\n\n // Convenience methods.\n // compress/decompress a string or buffer in one step.\n function deflate(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Deflate(opts), buffer, callback);\n }\n\n function deflateSync(buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n }\n\n function gzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gzip(opts), buffer, callback);\n }\n\n function gzipSync(buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n }\n\n function deflateRaw(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n }\n\n function deflateRawSync(buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n }\n\n function unzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Unzip(opts), buffer, callback);\n }\n\n function unzipSync(buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n }\n\n function inflate(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Inflate(opts), buffer, callback);\n }\n\n function inflateSync(buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n }\n\n function gunzip(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n }\n\n function gunzipSync(buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n }\n\n function inflateRaw(buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n }\n\n function inflateRawSync(buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n }\n\n function zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n\n engine.on('error', onError);\n engine.on('end', onEnd);\n\n engine.end(buffer);\n flow();\n\n function flow() {\n var chunk;\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n engine.once('readable', flow);\n }\n\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n\n function onEnd() {\n var buf = Buffer$1.concat(buffers, nread);\n buffers = [];\n callback(null, buf);\n engine.close();\n }\n }\n\n function zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string')\n buffer = new Buffer$1(buffer);\n if (!Buffer$1.isBuffer(buffer))\n throw new TypeError('Not a string or buffer');\n\n var flushFlag = binding.Z_FINISH;\n\n return engine._processChunk(buffer, flushFlag);\n }\n\n // generic zlib\n // minimal 2-byte header\n function Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding.DEFLATE);\n }\n\n function Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding.INFLATE);\n }\n\n\n\n // gzip - bigger header, same deflate compression\n function Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding.GZIP);\n }\n\n function Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding.GUNZIP);\n }\n\n\n\n // raw - no header\n function DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding.DEFLATERAW);\n }\n\n function InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding.INFLATERAW);\n }\n\n\n // auto-detect header.\n function Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding.UNZIP);\n }\n\n\n // the Zlib class they all inherit from\n // This thing manages the queue of requests, and returns\n // true or false if there is anything in the queue when\n // you call the .write() method.\n\n function Zlib(opts, mode) {\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || binding.Z_DEFAULT_CHUNK;\n\n Transform.call(this, opts);\n\n if (opts.flush) {\n if (opts.flush !== binding.Z_NO_FLUSH &&\n opts.flush !== binding.Z_PARTIAL_FLUSH &&\n opts.flush !== binding.Z_SYNC_FLUSH &&\n opts.flush !== binding.Z_FULL_FLUSH &&\n opts.flush !== binding.Z_FINISH &&\n opts.flush !== binding.Z_BLOCK) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n }\n this._flushFlag = opts.flush || binding.Z_NO_FLUSH;\n\n if (opts.chunkSize) {\n if (opts.chunkSize < binding.Z_MIN_CHUNK ||\n opts.chunkSize > binding.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n\n if (opts.windowBits) {\n if (opts.windowBits < binding.Z_MIN_WINDOWBITS ||\n opts.windowBits > binding.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n\n if (opts.level) {\n if (opts.level < binding.Z_MIN_LEVEL ||\n opts.level > binding.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n\n if (opts.memLevel) {\n if (opts.memLevel < binding.Z_MIN_MEMLEVEL ||\n opts.memLevel > binding.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n\n if (opts.strategy) {\n if (opts.strategy != binding.Z_FILTERED &&\n opts.strategy != binding.Z_HUFFMAN_ONLY &&\n opts.strategy != binding.Z_RLE &&\n opts.strategy != binding.Z_FIXED &&\n opts.strategy != binding.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n\n if (opts.dictionary) {\n if (!Buffer$1.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n\n this._binding = new binding.Zlib(mode);\n\n var self = this;\n this._hadError = false;\n this._binding.onerror = function(message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n self._binding = null;\n self._hadError = true;\n\n var error = new Error(message);\n error.errno = errno;\n error.code = binding.codes[errno];\n self.emit('error', error);\n };\n\n var level = binding.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n\n var strategy = binding.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n\n this._binding.init(opts.windowBits || binding.Z_DEFAULT_WINDOWBITS,\n level,\n opts.memLevel || binding.Z_DEFAULT_MEMLEVEL,\n strategy,\n opts.dictionary);\n\n this._buffer = new Buffer$1(this._chunkSize);\n this._offset = 0;\n this._closed = false;\n this._level = level;\n this._strategy = strategy;\n\n this.once('end', this.close);\n }\n\n inherits$1(Zlib, Transform);\n\n Zlib.prototype.params = function(level, strategy, callback) {\n if (level < binding.Z_MIN_LEVEL ||\n level > binding.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n if (strategy != binding.Z_FILTERED &&\n strategy != binding.Z_HUFFMAN_ONLY &&\n strategy != binding.Z_RLE &&\n strategy != binding.Z_FIXED &&\n strategy != binding.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding.Z_SYNC_FLUSH, function() {\n self._binding.params(level, strategy);\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n browser$1.nextTick(callback);\n }\n };\n\n Zlib.prototype.reset = function() {\n return this._binding.reset();\n };\n\n // This is the _flush function called by the transform class,\n // internally, when the last chunk has been written.\n Zlib.prototype._flush = function(callback) {\n this._transform(new Buffer$1(0), '', callback);\n };\n\n Zlib.prototype.flush = function(kind, callback) {\n var ws = this._writableState;\n\n if (typeof kind === 'function' || (kind === void 0 && !callback)) {\n callback = kind;\n kind = binding.Z_FULL_FLUSH;\n }\n\n if (ws.ended) {\n if (callback)\n browser$1.nextTick(callback);\n } else if (ws.ending) {\n if (callback)\n this.once('end', callback);\n } else if (ws.needDrain) {\n var self = this;\n this.once('drain', function() {\n self.flush(callback);\n });\n } else {\n this._flushFlag = kind;\n this.write(new Buffer$1(0), '', callback);\n }\n };\n\n Zlib.prototype.close = function(callback) {\n if (callback)\n browser$1.nextTick(callback);\n\n if (this._closed)\n return;\n\n this._closed = true;\n\n this._binding.close();\n\n var self = this;\n browser$1.nextTick(function() {\n self.emit('close');\n });\n };\n\n Zlib.prototype._transform = function(chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n\n if (!chunk === null && !Buffer$1.isBuffer(chunk))\n return cb(new Error('invalid input'));\n\n // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag.\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n if (last)\n flushFlag = binding.Z_FINISH;\n else {\n flushFlag = this._flushFlag;\n // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;\n }\n }\n\n this._processChunk(chunk, flushFlag, cb);\n };\n\n Zlib.prototype._processChunk = function(chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n\n var self = this;\n\n var async = typeof cb === 'function';\n\n if (!async) {\n var buffers = [];\n var nread = 0;\n\n var error;\n this.on('error', function(er) {\n error = er;\n });\n\n do {\n var res = this._binding.writeSync(flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n } while (!this._hadError && callback(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n var buf = Buffer$1.concat(buffers, nread);\n this.close();\n\n return buf;\n }\n\n var req = this._binding.write(flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n\n req.buffer = chunk;\n req.callback = callback;\n\n function callback(availInAfter, availOutAfter) {\n if (self._hadError)\n return;\n\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n // serve some output to the consumer.\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n }\n\n // exhausted the output buffer, or used all the input create a new one.\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = new Buffer$1(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += (availInBefore - availInAfter);\n availInBefore = availInAfter;\n\n if (!async)\n return true;\n\n var newReq = self._binding.write(flushFlag,\n chunk,\n inOff,\n availInBefore,\n self._buffer,\n self._offset,\n self._chunkSize);\n newReq.callback = callback; // this same function\n newReq.buffer = chunk;\n return;\n }\n\n if (!async)\n return false;\n\n // finished with the chunk.\n cb();\n }\n };\n\n inherits$1(Deflate, Zlib);\n inherits$1(Inflate, Zlib);\n inherits$1(Gzip, Zlib);\n inherits$1(Gunzip, Zlib);\n inherits$1(DeflateRaw, Zlib);\n inherits$1(InflateRaw, Zlib);\n inherits$1(Unzip, Zlib);\n var zlib = {\n codes: codes,\n createDeflate: createDeflate,\n createInflate: createInflate,\n createDeflateRaw: createDeflateRaw,\n createInflateRaw: createInflateRaw,\n createGzip: createGzip,\n createGunzip: createGunzip,\n createUnzip: createUnzip,\n deflate: deflate,\n deflateSync: deflateSync,\n gzip: gzip,\n gzipSync: gzipSync,\n deflateRaw: deflateRaw,\n deflateRawSync: deflateRawSync,\n unzip: unzip,\n unzipSync: unzipSync,\n inflate: inflate,\n inflateSync: inflateSync,\n gunzip: gunzip,\n gunzipSync: gunzipSync,\n inflateRaw: inflateRaw,\n inflateRawSync: inflateRawSync,\n Deflate: Deflate,\n Inflate: Inflate,\n Gzip: Gzip,\n Gunzip: Gunzip,\n DeflateRaw: DeflateRaw,\n InflateRaw: InflateRaw,\n Unzip: Unzip,\n Zlib: Zlib\n };\n\n // Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n // fix for \"Readable\" isn't a named export issue\n const Readable = Stream.Readable;\n\n const BUFFER = Symbol('buffer');\n const TYPE = Symbol('type');\n\n class Blob {\n constructor() {\n this[TYPE] = '';\n\n const blobParts = arguments[0];\n const options = arguments[1];\n\n const buffers = [];\n let size = 0;\n\n if (blobParts) {\n const a = blobParts;\n const length = Number(a.length);\n for (let i = 0; i < length; i++) {\n const element = a[i];\n let buffer;\n if (element instanceof Buffer) {\n buffer = element;\n } else if (ArrayBuffer.isView(element)) {\n buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n } else if (element instanceof ArrayBuffer) {\n buffer = Buffer.from(element);\n } else if (element instanceof Blob) {\n buffer = element[BUFFER];\n } else {\n buffer = Buffer.from(typeof element === 'string' ? element : String(element));\n }\n size += buffer.length;\n buffers.push(buffer);\n }\n }\n\n this[BUFFER] = Buffer.concat(buffers);\n\n let type = options && options.type !== undefined && String(options.type).toLowerCase();\n if (type && !/[^\\u0020-\\u007E]/.test(type)) {\n this[TYPE] = type;\n }\n }\n get size() {\n return this[BUFFER].length;\n }\n get type() {\n return this[TYPE];\n }\n text() {\n return Promise.resolve(this[BUFFER].toString());\n }\n arrayBuffer() {\n const buf = this[BUFFER];\n const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n return Promise.resolve(ab);\n }\n stream() {\n const readable = new Readable();\n readable._read = function () {};\n readable.push(this[BUFFER]);\n readable.push(null);\n return readable;\n }\n toString() {\n return '[object Blob]';\n }\n slice() {\n const size = this.size;\n\n const start = arguments[0];\n const end = arguments[1];\n let relativeStart, relativeEnd;\n if (start === undefined) {\n relativeStart = 0;\n } else if (start < 0) {\n relativeStart = Math.max(size + start, 0);\n } else {\n relativeStart = Math.min(start, size);\n }\n if (end === undefined) {\n relativeEnd = size;\n } else if (end < 0) {\n relativeEnd = Math.max(size + end, 0);\n } else {\n relativeEnd = Math.min(end, size);\n }\n const span = Math.max(relativeEnd - relativeStart, 0);\n\n const buffer = this[BUFFER];\n const slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n const blob = new Blob([], { type: arguments[2] });\n blob[BUFFER] = slicedBuffer;\n return blob;\n }\n }\n\n Object.defineProperties(Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n });\n\n Object.defineProperty(Blob.prototype, Symbol.toStringTag, {\n value: 'Blob',\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n /**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n /**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\n function FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n }\n\n FetchError.prototype = Object.create(Error.prototype);\n FetchError.prototype.constructor = FetchError;\n FetchError.prototype.name = 'FetchError';\n\n let convert$1;\n try {\n convert$1 = require('encoding').convert;\n } catch (e) {}\n\n const INTERNALS = Symbol('Body internals');\n\n // fix an issue where \"PassThrough\" isn't a named export for node <10\n const PassThrough = Stream.PassThrough;\n\n /**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\n function Body(body) {\n var _this = this;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$size = _ref.size;\n\n let size = _ref$size === undefined ? 0 : _ref$size;\n var _ref$timeout = _ref.timeout;\n let timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n if (body == null) {\n // body is undefined or null\n body = null;\n } else if (isURLSearchParams(body)) {\n // body is a URLSearchParams\n body = Buffer.from(body.toString());\n } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n // body is ArrayBuffer\n body = Buffer.from(body);\n } else if (ArrayBuffer.isView(body)) {\n // body is ArrayBufferView\n body = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n } else if (body instanceof Stream) ; else {\n // none of the above\n // coerce to string then buffer\n body = Buffer.from(String(body));\n }\n this[INTERNALS] = {\n body,\n disturbed: false,\n error: null\n };\n this.size = size;\n this.timeout = timeout;\n\n if (body instanceof Stream) {\n body.on('error', function (err) {\n const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n _this[INTERNALS].error = error;\n });\n }\n }\n\n Body.prototype = {\n get body() {\n return this[INTERNALS].body;\n },\n\n get bodyUsed() {\n return this[INTERNALS].disturbed;\n },\n\n /**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n arrayBuffer() {\n return consumeBody.call(this).then(function (buf) {\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n });\n },\n\n /**\n * Return raw response as Blob\n *\n * @return Promise\n */\n blob() {\n let ct = this.headers && this.headers.get('content-type') || '';\n return consumeBody.call(this).then(function (buf) {\n return Object.assign(\n // Prevent copying\n new Blob([], {\n type: ct.toLowerCase()\n }), {\n [BUFFER]: buf\n });\n });\n },\n\n /**\n * Decode response as json\n *\n * @return Promise\n */\n json() {\n var _this2 = this;\n\n return consumeBody.call(this).then(function (buffer) {\n try {\n return JSON.parse(buffer.toString());\n } catch (err) {\n return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n }\n });\n },\n\n /**\n * Decode response as text\n *\n * @return Promise\n */\n text() {\n return consumeBody.call(this).then(function (buffer) {\n return buffer.toString();\n });\n },\n\n /**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n buffer() {\n return consumeBody.call(this);\n },\n\n /**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n textConverted() {\n var _this3 = this;\n\n return consumeBody.call(this).then(function (buffer) {\n return convertBody(buffer, _this3.headers);\n });\n }\n };\n\n // In browsers, all properties are enumerable.\n Object.defineProperties(Body.prototype, {\n body: { enumerable: true },\n bodyUsed: { enumerable: true },\n arrayBuffer: { enumerable: true },\n blob: { enumerable: true },\n json: { enumerable: true },\n text: { enumerable: true }\n });\n\n Body.mixIn = function (proto) {\n for (const name of Object.getOwnPropertyNames(Body.prototype)) {\n // istanbul ignore else: future proof\n if (!(name in proto)) {\n const desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n Object.defineProperty(proto, name, desc);\n }\n }\n };\n\n /**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\n function consumeBody() {\n var _this4 = this;\n\n if (this[INTERNALS].disturbed) {\n return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n }\n\n this[INTERNALS].disturbed = true;\n\n if (this[INTERNALS].error) {\n return Body.Promise.reject(this[INTERNALS].error);\n }\n\n let body = this.body;\n\n // body is null\n if (body === null) {\n return Body.Promise.resolve(Buffer.alloc(0));\n }\n\n // body is blob\n if (isBlob(body)) {\n body = body.stream();\n }\n\n // body is buffer\n if (Buffer.isBuffer(body)) {\n return Body.Promise.resolve(body);\n }\n\n // istanbul ignore if: should never happen\n if (!(body instanceof Stream)) {\n return Body.Promise.resolve(Buffer.alloc(0));\n }\n\n // body is stream\n // get ready to actually consume the body\n let accum = [];\n let accumBytes = 0;\n let abort = false;\n\n return new Body.Promise(function (resolve, reject) {\n let resTimeout;\n\n // allow timeout on slow response body\n if (_this4.timeout) {\n resTimeout = setTimeout(function () {\n abort = true;\n reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n }, _this4.timeout);\n }\n\n // handle stream errors\n body.on('error', function (err) {\n if (err.name === 'AbortError') {\n // if the request was aborted, reject with this Error\n abort = true;\n reject(err);\n } else {\n // other errors, such as incorrect content-encoding\n reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n }\n });\n\n body.on('data', function (chunk) {\n if (abort || chunk === null) {\n return;\n }\n\n if (_this4.size && accumBytes + chunk.length > _this4.size) {\n abort = true;\n reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n return;\n }\n\n accumBytes += chunk.length;\n accum.push(chunk);\n });\n\n body.on('end', function () {\n if (abort) {\n return;\n }\n\n clearTimeout(resTimeout);\n\n try {\n resolve(Buffer.concat(accum, accumBytes));\n } catch (err) {\n // handle streams that have accumulated too much data (issue #414)\n reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n }\n });\n });\n }\n\n /**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\n function convertBody(buffer, headers) {\n if (typeof convert$1 !== 'function') {\n throw new Error('The package `encoding` must be installed to use the textConverted() function');\n }\n\n const ct = headers.get('content-type');\n let charset = 'utf-8';\n let res, str;\n\n // header\n if (ct) {\n res = /charset=([^;]*)/i.exec(ct);\n }\n\n // no charset in content type, peek at response body for at most 1024 bytes\n str = buffer.slice(0, 1024).toString();\n\n // html5\n if (!res && str) {\n res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n this[MAP] = Object.create(null);\n\n if (init instanceof Headers) {\n const rawHeaders = init.raw();\n const headerNames = Object.keys(rawHeaders);\n\n for (const headerName of headerNames) {\n for (const value of rawHeaders[headerName]) {\n this.append(headerName, value);\n }\n }\n\n return;\n }\n\n // We don't worry about converting prop to ByteString here as append()\n // will handle it.\n if (init == null) ; else if (typeof init === 'object') {\n const method = init[Symbol.iterator];\n if (method != null) {\n if (typeof method !== 'function') {\n throw new TypeError('Header pairs must be iterable');\n }\n\n // sequence>\n // Note: per spec we have to first exhaust the lists then process them\n const pairs = [];\n for (const pair of init) {\n if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n throw new TypeError('Each header pair must be iterable');\n }\n pairs.push(Array.from(pair));\n }\n\n for (const pair of pairs) {\n if (pair.length !== 2) {\n throw new TypeError('Each header pair must be a name/value tuple');\n }\n this.append(pair[0], pair[1]);\n }\n } else {\n // record\n for (const key of Object.keys(init)) {\n const value = init[key];\n this.append(key, value);\n }\n }\n } else {\n throw new TypeError('Provided initializer must be an object');\n }\n }\n\n /**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n get(name) {\n name = `${name}`;\n validateName(name);\n const key = find(this[MAP], name);\n if (key === undefined) {\n return null;\n }\n\n return this[MAP][key].join(', ');\n }\n\n /**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n forEach(callback) {\n let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n let pairs = getHeaders(this);\n let i = 0;\n while (i < pairs.length) {\n var _pairs$i = pairs[i];\n const name = _pairs$i[0],\n value = _pairs$i[1];\n\n callback.call(thisArg, value, name, this);\n pairs = getHeaders(this);\n i++;\n }\n }\n\n /**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n set(name, value) {\n name = `${name}`;\n value = `${value}`;\n validateName(name);\n validateValue(value);\n const key = find(this[MAP], name);\n this[MAP][key !== undefined ? key : name] = [value];\n }\n\n /**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n append(name, value) {\n name = `${name}`;\n value = `${value}`;\n validateName(name);\n validateValue(value);\n const key = find(this[MAP], name);\n if (key !== undefined) {\n this[MAP][key].push(value);\n } else {\n this[MAP][name] = [value];\n }\n }\n\n /**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n has(name) {\n name = `${name}`;\n validateName(name);\n return find(this[MAP], name) !== undefined;\n }\n\n /**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n delete(name) {\n name = `${name}`;\n validateName(name);\n const key = find(this[MAP], name);\n if (key !== undefined) {\n delete this[MAP][key];\n }\n }\n\n /**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n raw() {\n return this[MAP];\n }\n\n /**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n keys() {\n return createHeadersIterator(this, 'key');\n }\n\n /**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n values() {\n return createHeadersIterator(this, 'value');\n }\n\n /**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n [Symbol.iterator]() {\n return createHeadersIterator(this, 'key+value');\n }\n }\n Headers.prototype.entries = Headers.prototype[Symbol.iterator];\n\n Object.defineProperty(Headers.prototype, Symbol.toStringTag, {\n value: 'Headers',\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n Object.defineProperties(Headers.prototype, {\n get: { enumerable: true },\n forEach: { enumerable: true },\n set: { enumerable: true },\n append: { enumerable: true },\n has: { enumerable: true },\n delete: { enumerable: true },\n keys: { enumerable: true },\n values: { enumerable: true },\n entries: { enumerable: true }\n });\n\n function getHeaders(headers) {\n let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n const keys = Object.keys(headers[MAP]).sort();\n return keys.map(kind === 'key' ? function (k) {\n return k.toLowerCase();\n } : kind === 'value' ? function (k) {\n return headers[MAP][k].join(', ');\n } : function (k) {\n return [k.toLowerCase(), headers[MAP][k].join(', ')];\n });\n }\n\n const INTERNAL = Symbol('internal');\n\n function createHeadersIterator(target, kind) {\n const iterator = Object.create(HeadersIteratorPrototype);\n iterator[INTERNAL] = {\n target,\n kind,\n index: 0\n };\n return iterator;\n }\n\n const HeadersIteratorPrototype = Object.setPrototypeOf({\n next() {\n // istanbul ignore if\n if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n throw new TypeError('Value of `this` is not a HeadersIterator');\n }\n\n var _INTERNAL = this[INTERNAL];\n const target = _INTERNAL.target,\n kind = _INTERNAL.kind,\n index = _INTERNAL.index;\n\n const values = getHeaders(target, kind);\n const len = values.length;\n if (index >= len) {\n return {\n value: undefined,\n done: true\n };\n }\n\n this[INTERNAL].index = index + 1;\n\n return {\n value: values[index],\n done: false\n };\n }\n }, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\n Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n value: 'HeadersIterator',\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n /**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\n function exportNodeCompatibleHeaders(headers) {\n const obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n // http.request() only supports string as Host header. This hack makes\n // specifying custom Host header possible.\n const hostHeaderKey = find(headers[MAP], 'Host');\n if (hostHeaderKey !== undefined) {\n obj[hostHeaderKey] = obj[hostHeaderKey][0];\n }\n\n return obj;\n }\n\n /**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\n function createHeadersLenient(obj) {\n const headers = new Headers();\n for (const name of Object.keys(obj)) {\n if (invalidTokenRegex.test(name)) {\n continue;\n }\n if (Array.isArray(obj[name])) {\n for (const val of obj[name]) {\n if (invalidHeaderCharRegex.test(val)) {\n continue;\n }\n if (headers[MAP][name] === undefined) {\n headers[MAP][name] = [val];\n } else {\n headers[MAP][name].push(val);\n }\n }\n } else if (!invalidHeaderCharRegex.test(obj[name])) {\n headers[MAP][name] = [obj[name]];\n }\n }\n return headers;\n }\n\n const INTERNALS$1 = Symbol('Response internals');\n\n // fix an issue where \"STATUS_CODES\" aren't a named export for node <10\n const STATUS_CODES = http$1.STATUS_CODES;\n\n /**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\n class Response {\n constructor() {\n let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n Body.call(this, body, opts);\n\n const status = opts.status || 200;\n const headers = new Headers(opts.headers);\n\n if (body != null && !headers.has('Content-Type')) {\n const contentType = extractContentType(body);\n if (contentType) {\n headers.append('Content-Type', contentType);\n }\n }\n\n this[INTERNALS$1] = {\n url: opts.url,\n status,\n statusText: opts.statusText || STATUS_CODES[status],\n headers,\n counter: opts.counter\n };\n }\n\n get url() {\n return this[INTERNALS$1].url || '';\n }\n\n get status() {\n return this[INTERNALS$1].status;\n }\n\n /**\n * Convenience property representing if the request ended normally\n */\n get ok() {\n return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n }\n\n get redirected() {\n return this[INTERNALS$1].counter > 0;\n }\n\n get statusText() {\n return this[INTERNALS$1].statusText;\n }\n\n get headers() {\n return this[INTERNALS$1].headers;\n }\n\n /**\n * Clone this response\n *\n * @return Response\n */\n clone() {\n return new Response(clone(this), {\n url: this.url,\n status: this.status,\n statusText: this.statusText,\n headers: this.headers,\n ok: this.ok,\n redirected: this.redirected\n });\n }\n }\n\n Body.mixIn(Response.prototype);\n\n Object.defineProperties(Response.prototype, {\n url: { enumerable: true },\n status: { enumerable: true },\n ok: { enumerable: true },\n redirected: { enumerable: true },\n statusText: { enumerable: true },\n headers: { enumerable: true },\n clone: { enumerable: true }\n });\n\n Object.defineProperty(Response.prototype, Symbol.toStringTag, {\n value: 'Response',\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n const INTERNALS$2 = Symbol('Request internals');\n\n // fix an issue where \"format\", \"parse\" aren't a named export for node <10\n const parse_url = Url.parse;\n const format_url = Url.format;\n\n const streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n /**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\n function isRequest(input) {\n return typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n }\n\n function isAbortSignal(signal) {\n const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n return !!(proto && proto.constructor.name === 'AbortSignal');\n }\n\n /**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\n class Request {\n constructor(input) {\n let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n let parsedURL;\n\n // normalize input\n if (!isRequest(input)) {\n if (input && input.href) {\n // in order to support Node.js' Url objects; though WHATWG's URL objects\n // will fall into this branch also (since their `toString()` will return\n // `href` property anyway)\n parsedURL = parse_url(input.href);\n } else {\n // coerce input to a string before attempting to parse\n parsedURL = parse_url(`${input}`);\n }\n input = {};\n } else {\n parsedURL = parse_url(input.url);\n }\n\n let method = init.method || input.method || 'GET';\n method = method.toUpperCase();\n\n if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n throw new TypeError('Request with GET/HEAD method cannot have body');\n }\n\n let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n Body.call(this, inputBody, {\n timeout: init.timeout || input.timeout || 0,\n size: init.size || input.size || 0\n });\n\n const headers = new Headers(init.headers || input.headers || {});\n\n if (inputBody != null && !headers.has('Content-Type')) {\n const contentType = extractContentType(inputBody);\n if (contentType) {\n headers.append('Content-Type', contentType);\n }\n }\n\n let signal = isRequest(input) ? input.signal : null;\n if ('signal' in init) signal = init.signal;\n\n if (signal != null && !isAbortSignal(signal)) {\n throw new TypeError('Expected signal to be an instanceof AbortSignal');\n }\n\n this[INTERNALS$2] = {\n method,\n redirect: init.redirect || input.redirect || 'follow',\n headers,\n parsedURL,\n signal\n };\n\n // node-fetch-only options\n this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n this.counter = init.counter || input.counter || 0;\n this.agent = init.agent || input.agent;\n }\n\n get method() {\n return this[INTERNALS$2].method;\n }\n\n get url() {\n return format_url(this[INTERNALS$2].parsedURL);\n }\n\n get headers() {\n return this[INTERNALS$2].headers;\n }\n\n get redirect() {\n return this[INTERNALS$2].redirect;\n }\n\n get signal() {\n return this[INTERNALS$2].signal;\n }\n\n /**\n * Clone this request\n *\n * @return Request\n */\n clone() {\n return new Request(this);\n }\n }\n\n Body.mixIn(Request.prototype);\n\n Object.defineProperty(Request.prototype, Symbol.toStringTag, {\n value: 'Request',\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n Object.defineProperties(Request.prototype, {\n method: { enumerable: true },\n url: { enumerable: true },\n headers: { enumerable: true },\n redirect: { enumerable: true },\n clone: { enumerable: true },\n signal: { enumerable: true }\n });\n\n /**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\n function getNodeRequestOptions(request) {\n const parsedURL = request[INTERNALS$2].parsedURL;\n const headers = new Headers(request[INTERNALS$2].headers);\n\n // fetch step 1.3\n if (!headers.has('Accept')) {\n headers.set('Accept', '*/*');\n }\n\n // Basic fetch\n if (!parsedURL.protocol || !parsedURL.hostname) {\n throw new TypeError('Only absolute URLs are supported');\n }\n\n if (!/^https?:$/.test(parsedURL.protocol)) {\n throw new TypeError('Only HTTP(S) protocols are supported');\n }\n\n if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n }\n\n // HTTP-network-or-cache fetch steps 2.4-2.7\n let contentLengthValue = null;\n if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n contentLengthValue = '0';\n }\n if (request.body != null) {\n const totalBytes = getTotalBytes(request);\n if (typeof totalBytes === 'number') {\n contentLengthValue = String(totalBytes);\n }\n }\n if (contentLengthValue) {\n headers.set('Content-Length', contentLengthValue);\n }\n\n // HTTP-network-or-cache fetch step 2.11\n if (!headers.has('User-Agent')) {\n headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n }\n\n // HTTP-network-or-cache fetch step 2.15\n if (request.compress && !headers.has('Accept-Encoding')) {\n headers.set('Accept-Encoding', 'gzip,deflate');\n }\n\n let agent = request.agent;\n if (typeof agent === 'function') {\n agent = agent(parsedURL);\n }\n\n if (!headers.has('Connection') && !agent) {\n headers.set('Connection', 'close');\n }\n\n // HTTP-network fetch step 4.2\n // chunked encoding is handled by Node.js\n\n return Object.assign({}, parsedURL, {\n method: request.method,\n headers: exportNodeCompatibleHeaders(headers),\n agent\n });\n }\n\n /**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n /**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\n function AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n }\n\n AbortError.prototype = Object.create(Error.prototype);\n AbortError.prototype.constructor = AbortError;\n AbortError.prototype.name = 'AbortError';\n\n // fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\n const PassThrough$1 = Stream.PassThrough;\n const resolve_url = Url.resolve;\n\n /**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\n function fetch$1(url, opts) {\n\n // allow custom promise\n if (!fetch$1.Promise) {\n throw new Error('native promise missing, set fetch.Promise to your favorite alternative');\n }\n\n Body.Promise = fetch$1.Promise;\n\n // wrap http.request into fetch\n return new fetch$1.Promise(function (resolve, reject) {\n // build request object\n const request = new Request(url, opts);\n const options = getNodeRequestOptions(request);\n\n const send = (options.protocol === 'https:' ? http$1 : http$1).request;\n const signal = request.signal;\n\n let response = null;\n\n const abort = function abort() {\n let error = new AbortError('The user aborted a request.');\n reject(error);\n if (request.body && request.body instanceof Stream.Readable) {\n request.body.destroy(error);\n }\n if (!response || !response.body) return;\n response.body.emit('error', error);\n };\n\n if (signal && signal.aborted) {\n abort();\n return;\n }\n\n const abortAndFinalize = function abortAndFinalize() {\n abort();\n finalize();\n };\n\n // send request\n const req = send(options);\n let reqTimeout;\n\n if (signal) {\n signal.addEventListener('abort', abortAndFinalize);\n }\n\n function finalize() {\n req.abort();\n if (signal) signal.removeEventListener('abort', abortAndFinalize);\n clearTimeout(reqTimeout);\n }\n\n if (request.timeout) {\n req.once('socket', function (socket) {\n reqTimeout = setTimeout(function () {\n reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n finalize();\n }, request.timeout);\n });\n }\n\n req.on('error', function (err) {\n reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n finalize();\n });\n\n req.on('response', function (res) {\n clearTimeout(reqTimeout);\n\n const headers = createHeadersLenient(res.headers);\n\n // HTTP fetch step 5\n if (fetch$1.isRedirect(res.statusCode)) {\n // HTTP fetch step 5.2\n const location = headers.get('Location');\n\n // HTTP fetch step 5.3\n const locationURL = location === null ? null : resolve_url(request.url, location);\n\n // HTTP fetch step 5.5\n switch (request.redirect) {\n case 'error':\n reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n finalize();\n return;\n case 'manual':\n // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n if (locationURL !== null) {\n // handle corrupted header\n try {\n headers.set('Location', locationURL);\n } catch (err) {\n // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n reject(err);\n }\n }\n break;\n case 'follow':\n // HTTP-redirect fetch step 2\n if (locationURL === null) {\n break;\n }\n\n // HTTP-redirect fetch step 5\n if (request.counter >= request.follow) {\n reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n finalize();\n return;\n }\n\n // HTTP-redirect fetch step 6 (counter increment)\n // Create a new Request object.\n const requestOpts = {\n headers: new Headers(request.headers),\n follow: request.follow,\n counter: request.counter + 1,\n agent: request.agent,\n compress: request.compress,\n method: request.method,\n body: request.body,\n signal: request.signal,\n timeout: request.timeout,\n size: request.size\n };\n\n // HTTP-redirect fetch step 9\n if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n finalize();\n return;\n }\n\n // HTTP-redirect fetch step 11\n if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n requestOpts.method = 'GET';\n requestOpts.body = undefined;\n requestOpts.headers.delete('content-length');\n }\n\n // HTTP-redirect fetch step 15\n resolve(fetch$1(new Request(locationURL, requestOpts)));\n finalize();\n return;\n }\n }\n\n // prepare response\n res.once('end', function () {\n if (signal) signal.removeEventListener('abort', abortAndFinalize);\n });\n let body = res.pipe(new PassThrough$1());\n\n const response_options = {\n url: request.url,\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: headers,\n size: request.size,\n timeout: request.timeout,\n counter: request.counter\n };\n\n // HTTP-network fetch step 12.1.1.3\n const codings = headers.get('Content-Encoding');\n\n // HTTP-network fetch step 12.1.1.4: handle content codings\n\n // in following scenarios we ignore compression support\n // 1. compression support is disabled\n // 2. HEAD request\n // 3. no Content-Encoding header\n // 4. no content response (204)\n // 5. content not modified response (304)\n if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n response = new Response(body, response_options);\n resolve(response);\n return;\n }\n\n // For Node v6+\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n const zlibOptions = {\n flush: zlib.Z_SYNC_FLUSH,\n finishFlush: zlib.Z_SYNC_FLUSH\n };\n\n // for gzip\n if (codings == 'gzip' || codings == 'x-gzip') {\n body = body.pipe(zlib.createGunzip(zlibOptions));\n response = new Response(body, response_options);\n resolve(response);\n return;\n }\n\n // for deflate\n if (codings == 'deflate' || codings == 'x-deflate') {\n // handle the infamous raw deflate response from old servers\n // a hack for old IIS and Apache servers\n const raw = res.pipe(new PassThrough$1());\n raw.once('data', function (chunk) {\n // see http://stackoverflow.com/questions/37519828\n if ((chunk[0] & 0x0F) === 0x08) {\n body = body.pipe(zlib.createInflate());\n } else {\n body = body.pipe(zlib.createInflateRaw());\n }\n response = new Response(body, response_options);\n resolve(response);\n });\n return;\n }\n\n // for br\n if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n body = body.pipe(zlib.createBrotliDecompress());\n response = new Response(body, response_options);\n resolve(response);\n return;\n }\n\n // otherwise, use response as-is\n response = new Response(body, response_options);\n resolve(response);\n });\n\n writeToStream(req, request);\n });\n }\n /**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\n fetch$1.isRedirect = function (code) {\n return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n };\n\n // expose Promise\n fetch$1.Promise = commonjsGlobal.Promise;\n\n var lib$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': fetch$1,\n Headers: Headers,\n Request: Request,\n Response: Response,\n FetchError: FetchError\n });\n\n var title$5 = \"AsyncAPI 1.0 schema.\";\n var id$3 = \"http://asyncapi.hitchhq.com/v1/schema.json#\";\n var $schema$6 = \"http://json-schema.org/draft-04/schema#\";\n var type$8 = \"object\";\n var required$5 = [\n \"asyncapi\",\n \"info\",\n \"topics\"\n ];\n var additionalProperties$5 = false;\n var patternProperties$5 = {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n };\n var properties$6 = {\n asyncapi: {\n type: \"string\",\n \"enum\": [\n \"1.0.0\"\n ],\n description: \"The AsyncAPI specification version of this document.\"\n },\n info: {\n $ref: \"#/definitions/info\"\n },\n baseTopic: {\n type: \"string\",\n pattern: \"^[^/.]\",\n description: \"The base topic to the API. Example: 'hitch'.\",\n \"default\": \"\"\n },\n servers: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/server\"\n },\n uniqueItems: true\n },\n topics: {\n $ref: \"#/definitions/topics\"\n },\n components: {\n $ref: \"#/definitions/components\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n security: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/SecurityRequirement\"\n }\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n };\n var definitions$6 = {\n Reference: {\n type: \"object\",\n required: [\n \"$ref\"\n ],\n properties: {\n $ref: {\n type: \"string\",\n format: \"uri\"\n }\n }\n },\n info: {\n type: \"object\",\n description: \"General information about the API.\",\n required: [\n \"version\",\n \"title\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n title: {\n type: \"string\",\n description: \"A unique and precise title of the API.\"\n },\n version: {\n type: \"string\",\n description: \"A semantic version number of the API.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the API. Should be different from the title. CommonMark is allowed.\"\n },\n termsOfService: {\n type: \"string\",\n description: \"A URL to the Terms of Service for the API. MUST be in the format of a URL.\",\n format: \"uri\"\n },\n contact: {\n $ref: \"#/definitions/contact\"\n },\n license: {\n $ref: \"#/definitions/license\"\n }\n }\n },\n contact: {\n type: \"object\",\n description: \"Contact information for the owners of the API.\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The identifying name of the contact person/organization.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the contact information.\",\n format: \"uri\"\n },\n email: {\n type: \"string\",\n description: \"The email address of the contact person/organization.\",\n format: \"email\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n license: {\n type: \"object\",\n required: [\n \"name\"\n ],\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The name of the license type. It's encouraged to use an OSI compatible license.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the license.\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n server: {\n type: \"object\",\n description: \"An object representing a Server.\",\n required: [\n \"url\",\n \"scheme\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n url: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n scheme: {\n type: \"string\",\n description: \"The transfer protocol.\",\n \"enum\": [\n \"kafka\",\n \"kafka-secure\",\n \"amqp\",\n \"amqps\",\n \"mqtt\",\n \"mqtts\",\n \"secure-mqtt\",\n \"ws\",\n \"wss\",\n \"stomp\",\n \"stomps\"\n ]\n },\n schemeVersion: {\n type: \"string\"\n },\n variables: {\n $ref: \"#/definitions/serverVariables\"\n }\n }\n },\n serverVariables: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/serverVariable\"\n }\n },\n serverVariable: {\n type: \"object\",\n description: \"An object representing a Server Variable for server URL template substitution.\",\n minProperties: 1,\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n \"enum\": {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n },\n \"default\": {\n type: \"string\"\n },\n description: {\n type: \"string\"\n }\n }\n },\n topics: {\n type: \"object\",\n description: \"Relative paths to the individual topics. They must be relative to the 'baseTopic'.\",\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n },\n \"^[^.]\": {\n $ref: \"#/definitions/topicItem\"\n }\n },\n additionalProperties: false\n },\n components: {\n type: \"object\",\n description: \"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.\",\n additionalProperties: false,\n properties: {\n schemas: {\n $ref: \"#/definitions/schemas\"\n },\n messages: {\n $ref: \"#/definitions/messages\"\n },\n securitySchemes: {\n type: \"object\",\n patternProperties: {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/SecurityScheme\"\n }\n ]\n }\n }\n }\n }\n },\n schemas: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n description: \"JSON objects describing schemas the API uses.\"\n },\n messages: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/message\"\n },\n description: \"JSON objects describing the messages being consumed and produced by the API.\"\n },\n schema: {\n type: \"object\",\n description: \"A deterministic version of a JSON Schema object.\",\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n $ref: {\n type: \"string\"\n },\n format: {\n type: \"string\"\n },\n title: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/title\"\n },\n description: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/description\"\n },\n \"default\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/default\"\n },\n multipleOf: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n },\n maximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n },\n exclusiveMaximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n },\n minimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n },\n exclusiveMinimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n },\n maxLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n pattern: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n },\n maxItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n uniqueItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n },\n maxProperties: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minProperties: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n required: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/stringArray\"\n },\n \"enum\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/enum\"\n },\n additionalProperties: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"boolean\"\n }\n ],\n \"default\": {\n }\n },\n type: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/type\"\n },\n items: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n }\n ],\n \"default\": {\n }\n },\n allOf: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n properties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n \"default\": {\n }\n },\n discriminator: {\n type: \"string\"\n },\n readOnly: {\n type: \"boolean\",\n \"default\": false\n },\n xml: {\n $ref: \"#/definitions/xml\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n example: {\n }\n },\n additionalProperties: false\n },\n xml: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\"\n },\n namespace: {\n type: \"string\"\n },\n prefix: {\n type: \"string\"\n },\n attribute: {\n type: \"boolean\",\n \"default\": false\n },\n wrapped: {\n type: \"boolean\",\n \"default\": false\n }\n }\n },\n externalDocs: {\n type: \"object\",\n additionalProperties: false,\n description: \"information about external documentation\",\n required: [\n \"url\"\n ],\n properties: {\n description: {\n type: \"string\"\n },\n url: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n topicItem: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n minProperties: 1,\n properties: {\n $ref: {\n type: \"string\"\n },\n publish: {\n $ref: \"#/definitions/message\"\n },\n subscribe: {\n $ref: \"#/definitions/message\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n }\n }\n },\n message: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n $ref: {\n type: \"string\"\n },\n headers: {\n $ref: \"#/definitions/schema\"\n },\n payload: {\n $ref: \"#/definitions/schema\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n example: {\n }\n }\n },\n vendorExtension: {\n description: \"Any property starting with x- is valid.\",\n additionalProperties: true,\n additionalItems: true\n },\n tag: {\n type: \"object\",\n additionalProperties: false,\n required: [\n \"name\"\n ],\n properties: {\n name: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n SecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/userPassword\"\n },\n {\n $ref: \"#/definitions/apiKey\"\n },\n {\n $ref: \"#/definitions/X509\"\n },\n {\n $ref: \"#/definitions/symmetricEncryption\"\n },\n {\n $ref: \"#/definitions/asymmetricEncryption\"\n },\n {\n $ref: \"#/definitions/HTTPSecurityScheme\"\n }\n ]\n },\n userPassword: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"userPassword\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n apiKey: {\n type: \"object\",\n required: [\n \"type\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"apiKey\"\n ]\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"user\",\n \"password\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n X509: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"X509\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n symmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"symmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n asymmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"asymmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n HTTPSecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/NonBearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/BearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/APIKeyHTTPSecurityScheme\"\n }\n ]\n },\n NonBearerHTTPSecurityScheme: {\n not: {\n type: \"object\",\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n }\n }\n },\n type: \"object\",\n required: [\n \"scheme\",\n \"type\"\n ],\n properties: {\n scheme: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n BearerHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"scheme\"\n ],\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n },\n bearerFormat: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n APIKeyHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"name\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"httpApiKey\"\n ]\n },\n name: {\n type: \"string\"\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"header\",\n \"query\",\n \"cookie\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n SecurityRequirement: {\n type: \"object\",\n additionalProperties: {\n type: \"array\",\n items: {\n type: \"string\"\n }\n }\n },\n title: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/title\"\n },\n description: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/description\"\n },\n \"default\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/default\"\n },\n multipleOf: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n },\n maximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n },\n exclusiveMaximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n },\n minimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n },\n exclusiveMinimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n },\n maxLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n pattern: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n },\n maxItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n uniqueItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n },\n \"enum\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/enum\"\n }\n };\n var require$$0$3 = {\n title: title$5,\n id: id$3,\n $schema: $schema$6,\n type: type$8,\n required: required$5,\n additionalProperties: additionalProperties$5,\n patternProperties: patternProperties$5,\n properties: properties$6,\n definitions: definitions$6\n };\n\n var title$4 = \"AsyncAPI 1.1.0 schema.\";\n var id$2 = \"http://asyncapi.hitchhq.com/v1/schema.json#\";\n var $schema$5 = \"http://json-schema.org/draft-04/schema#\";\n var type$7 = \"object\";\n var required$4 = [\n \"asyncapi\",\n \"info\",\n \"topics\"\n ];\n var additionalProperties$4 = false;\n var patternProperties$4 = {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n };\n var properties$5 = {\n asyncapi: {\n type: \"string\",\n \"enum\": [\n \"1.0.0\",\n \"1.1.0\"\n ],\n description: \"The AsyncAPI specification version of this document.\"\n },\n info: {\n $ref: \"#/definitions/info\"\n },\n baseTopic: {\n type: \"string\",\n pattern: \"^[^/.]\",\n description: \"The base topic to the API. Example: 'hitch'.\",\n \"default\": \"\"\n },\n servers: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/server\"\n },\n uniqueItems: true\n },\n topics: {\n $ref: \"#/definitions/topics\"\n },\n components: {\n $ref: \"#/definitions/components\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n security: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/SecurityRequirement\"\n }\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n };\n var definitions$5 = {\n Reference: {\n type: \"object\",\n required: [\n \"$ref\"\n ],\n properties: {\n $ref: {\n type: \"string\",\n format: \"uri\"\n }\n }\n },\n info: {\n type: \"object\",\n description: \"General information about the API.\",\n required: [\n \"version\",\n \"title\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n title: {\n type: \"string\",\n description: \"A unique and precise title of the API.\"\n },\n version: {\n type: \"string\",\n description: \"A semantic version number of the API.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the API. Should be different from the title. CommonMark is allowed.\"\n },\n termsOfService: {\n type: \"string\",\n description: \"A URL to the Terms of Service for the API. MUST be in the format of a URL.\",\n format: \"uri\"\n },\n contact: {\n $ref: \"#/definitions/contact\"\n },\n license: {\n $ref: \"#/definitions/license\"\n }\n }\n },\n contact: {\n type: \"object\",\n description: \"Contact information for the owners of the API.\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The identifying name of the contact person/organization.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the contact information.\",\n format: \"uri\"\n },\n email: {\n type: \"string\",\n description: \"The email address of the contact person/organization.\",\n format: \"email\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n license: {\n type: \"object\",\n required: [\n \"name\"\n ],\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The name of the license type. It's encouraged to use an OSI compatible license.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the license.\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n server: {\n type: \"object\",\n description: \"An object representing a Server.\",\n required: [\n \"url\",\n \"scheme\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n url: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n scheme: {\n type: \"string\",\n description: \"The transfer protocol.\",\n \"enum\": [\n \"kafka\",\n \"kafka-secure\",\n \"amqp\",\n \"amqps\",\n \"mqtt\",\n \"mqtts\",\n \"secure-mqtt\",\n \"ws\",\n \"wss\",\n \"stomp\",\n \"stomps\",\n \"jms\"\n ]\n },\n schemeVersion: {\n type: \"string\"\n },\n variables: {\n $ref: \"#/definitions/serverVariables\"\n }\n }\n },\n serverVariables: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/serverVariable\"\n }\n },\n serverVariable: {\n type: \"object\",\n description: \"An object representing a Server Variable for server URL template substitution.\",\n minProperties: 1,\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n \"enum\": {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n },\n \"default\": {\n type: \"string\"\n },\n description: {\n type: \"string\"\n }\n }\n },\n topics: {\n type: \"object\",\n description: \"Relative paths to the individual topics. They must be relative to the 'baseTopic'.\",\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n },\n \"^[^.]\": {\n $ref: \"#/definitions/topicItem\"\n }\n },\n additionalProperties: false\n },\n components: {\n type: \"object\",\n description: \"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.\",\n additionalProperties: false,\n properties: {\n schemas: {\n $ref: \"#/definitions/schemas\"\n },\n messages: {\n $ref: \"#/definitions/messages\"\n },\n securitySchemes: {\n type: \"object\",\n patternProperties: {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/SecurityScheme\"\n }\n ]\n }\n }\n }\n }\n },\n schemas: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n description: \"JSON objects describing schemas the API uses.\"\n },\n messages: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/message\"\n },\n description: \"JSON objects describing the messages being consumed and produced by the API.\"\n },\n schema: {\n type: \"object\",\n description: \"A deterministic version of a JSON Schema object.\",\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n $ref: {\n type: \"string\"\n },\n format: {\n type: \"string\"\n },\n title: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/title\"\n },\n description: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/description\"\n },\n \"default\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/default\"\n },\n multipleOf: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n },\n maximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n },\n exclusiveMaximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n },\n minimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n },\n exclusiveMinimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n },\n maxLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n pattern: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n },\n maxItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n uniqueItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n },\n maxProperties: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minProperties: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n required: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/stringArray\"\n },\n \"enum\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/enum\"\n },\n additionalProperties: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"boolean\"\n }\n ],\n \"default\": {\n }\n },\n type: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/type\"\n },\n items: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n }\n ],\n \"default\": {\n }\n },\n allOf: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n oneOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n anyOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n not: {\n $ref: \"#/definitions/schema\"\n },\n properties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n \"default\": {\n }\n },\n discriminator: {\n type: \"string\"\n },\n readOnly: {\n type: \"boolean\",\n \"default\": false\n },\n xml: {\n $ref: \"#/definitions/xml\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n example: {\n }\n },\n additionalProperties: false\n },\n xml: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\"\n },\n namespace: {\n type: \"string\"\n },\n prefix: {\n type: \"string\"\n },\n attribute: {\n type: \"boolean\",\n \"default\": false\n },\n wrapped: {\n type: \"boolean\",\n \"default\": false\n }\n }\n },\n externalDocs: {\n type: \"object\",\n additionalProperties: false,\n description: \"information about external documentation\",\n required: [\n \"url\"\n ],\n properties: {\n description: {\n type: \"string\"\n },\n url: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n topicItem: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n minProperties: 1,\n properties: {\n $ref: {\n type: \"string\"\n },\n parameters: {\n type: \"array\",\n uniqueItems: true,\n minItems: 1,\n items: {\n $ref: \"#/definitions/parameter\"\n }\n },\n publish: {\n $ref: \"#/definitions/operation\"\n },\n subscribe: {\n $ref: \"#/definitions/operation\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n }\n }\n },\n parameter: {\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n description: {\n type: \"string\",\n description: \"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.\"\n },\n name: {\n type: \"string\",\n description: \"The name of the parameter.\"\n },\n schema: {\n $ref: \"#/definitions/schema\"\n }\n }\n },\n operation: {\n oneOf: [\n {\n $ref: \"#/definitions/message\"\n },\n {\n type: \"object\",\n required: [\n \"oneOf\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/message\"\n }\n }\n }\n }\n ]\n },\n message: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n $ref: {\n type: \"string\"\n },\n headers: {\n $ref: \"#/definitions/schema\"\n },\n payload: {\n $ref: \"#/definitions/schema\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n example: {\n }\n }\n },\n vendorExtension: {\n description: \"Any property starting with x- is valid.\",\n additionalProperties: true,\n additionalItems: true\n },\n tag: {\n type: \"object\",\n additionalProperties: false,\n required: [\n \"name\"\n ],\n properties: {\n name: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n SecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/userPassword\"\n },\n {\n $ref: \"#/definitions/apiKey\"\n },\n {\n $ref: \"#/definitions/X509\"\n },\n {\n $ref: \"#/definitions/symmetricEncryption\"\n },\n {\n $ref: \"#/definitions/asymmetricEncryption\"\n },\n {\n $ref: \"#/definitions/HTTPSecurityScheme\"\n }\n ]\n },\n userPassword: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"userPassword\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n apiKey: {\n type: \"object\",\n required: [\n \"type\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"apiKey\"\n ]\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"user\",\n \"password\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n X509: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"X509\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n symmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"symmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n asymmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"asymmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n HTTPSecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/NonBearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/BearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/APIKeyHTTPSecurityScheme\"\n }\n ]\n },\n NonBearerHTTPSecurityScheme: {\n not: {\n type: \"object\",\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n }\n }\n },\n type: \"object\",\n required: [\n \"scheme\",\n \"type\"\n ],\n properties: {\n scheme: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n BearerHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"scheme\"\n ],\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n },\n bearerFormat: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n APIKeyHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"name\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"httpApiKey\"\n ]\n },\n name: {\n type: \"string\"\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"header\",\n \"query\",\n \"cookie\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n SecurityRequirement: {\n type: \"object\",\n additionalProperties: {\n type: \"array\",\n items: {\n type: \"string\"\n }\n }\n },\n title: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/title\"\n },\n description: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/description\"\n },\n \"default\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/default\"\n },\n multipleOf: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n },\n maximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n },\n exclusiveMaximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n },\n minimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n },\n exclusiveMinimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n },\n maxLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n pattern: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n },\n maxItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n uniqueItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n },\n \"enum\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/enum\"\n }\n };\n var require$$1$1 = {\n title: title$4,\n id: id$2,\n $schema: $schema$5,\n type: type$7,\n required: required$4,\n additionalProperties: additionalProperties$4,\n patternProperties: patternProperties$4,\n properties: properties$5,\n definitions: definitions$5\n };\n\n var title$3 = \"AsyncAPI 1.2.0 schema.\";\n var id$1 = \"http://asyncapi.hitchhq.com/v1/schema.json#\";\n var $schema$4 = \"http://json-schema.org/draft-04/schema#\";\n var type$6 = \"object\";\n var required$3 = [\n \"asyncapi\",\n \"info\"\n ];\n var oneOf = [\n {\n required: [\n \"topics\"\n ]\n },\n {\n required: [\n \"stream\"\n ]\n },\n {\n required: [\n \"events\"\n ]\n }\n ];\n var additionalProperties$3 = false;\n var patternProperties$3 = {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n };\n var properties$4 = {\n asyncapi: {\n type: \"string\",\n \"enum\": [\n \"1.0.0\",\n \"1.1.0\",\n \"1.2.0\"\n ],\n description: \"The AsyncAPI specification version of this document.\"\n },\n info: {\n $ref: \"#/definitions/info\"\n },\n baseTopic: {\n type: \"string\",\n pattern: \"^[^/.]\",\n description: \"The base topic to the API. Example: 'hitch'.\",\n \"default\": \"\"\n },\n servers: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/server\"\n },\n uniqueItems: true\n },\n topics: {\n $ref: \"#/definitions/topics\"\n },\n stream: {\n $ref: \"#/definitions/stream\",\n description: \"The list of messages a consumer can read or write from/to a streaming API.\"\n },\n events: {\n $ref: \"#/definitions/events\",\n description: \"The list of messages an events API sends and/or receives.\"\n },\n components: {\n $ref: \"#/definitions/components\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n security: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/SecurityRequirement\"\n }\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n };\n var definitions$4 = {\n Reference: {\n type: \"object\",\n required: [\n \"$ref\"\n ],\n properties: {\n $ref: {\n type: \"string\",\n format: \"uri\"\n }\n }\n },\n info: {\n type: \"object\",\n description: \"General information about the API.\",\n required: [\n \"version\",\n \"title\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n title: {\n type: \"string\",\n description: \"A unique and precise title of the API.\"\n },\n version: {\n type: \"string\",\n description: \"A semantic version number of the API.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the API. Should be different from the title. CommonMark is allowed.\"\n },\n termsOfService: {\n type: \"string\",\n description: \"A URL to the Terms of Service for the API. MUST be in the format of a URL.\",\n format: \"uri\"\n },\n contact: {\n $ref: \"#/definitions/contact\"\n },\n license: {\n $ref: \"#/definitions/license\"\n }\n }\n },\n contact: {\n type: \"object\",\n description: \"Contact information for the owners of the API.\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The identifying name of the contact person/organization.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the contact information.\",\n format: \"uri\"\n },\n email: {\n type: \"string\",\n description: \"The email address of the contact person/organization.\",\n format: \"email\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n license: {\n type: \"object\",\n required: [\n \"name\"\n ],\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The name of the license type. It's encouraged to use an OSI compatible license.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the license.\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n server: {\n type: \"object\",\n description: \"An object representing a Server.\",\n required: [\n \"url\",\n \"scheme\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n url: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n scheme: {\n type: \"string\",\n description: \"The transfer protocol.\",\n \"enum\": [\n \"kafka\",\n \"kafka-secure\",\n \"amqp\",\n \"amqps\",\n \"mqtt\",\n \"mqtts\",\n \"secure-mqtt\",\n \"ws\",\n \"wss\",\n \"stomp\",\n \"stomps\",\n \"jms\",\n \"http\",\n \"https\"\n ]\n },\n schemeVersion: {\n type: \"string\"\n },\n variables: {\n $ref: \"#/definitions/serverVariables\"\n }\n }\n },\n serverVariables: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/serverVariable\"\n }\n },\n serverVariable: {\n type: \"object\",\n description: \"An object representing a Server Variable for server URL template substitution.\",\n minProperties: 1,\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n \"enum\": {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n },\n \"default\": {\n type: \"string\"\n },\n description: {\n type: \"string\"\n }\n }\n },\n topics: {\n type: \"object\",\n description: \"Relative paths to the individual topics. They must be relative to the 'baseTopic'.\",\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n },\n \"^[^.]\": {\n $ref: \"#/definitions/topicItem\"\n }\n },\n additionalProperties: false\n },\n components: {\n type: \"object\",\n description: \"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.\",\n additionalProperties: false,\n properties: {\n schemas: {\n $ref: \"#/definitions/schemas\"\n },\n messages: {\n $ref: \"#/definitions/messages\"\n },\n securitySchemes: {\n type: \"object\",\n patternProperties: {\n \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/SecurityScheme\"\n }\n ]\n }\n }\n },\n parameters: {\n $ref: \"#/definitions/parameters\"\n }\n }\n },\n schemas: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n description: \"JSON objects describing schemas the API uses.\"\n },\n messages: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/message\"\n },\n description: \"JSON objects describing the messages being consumed and produced by the API.\"\n },\n parameters: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/parameter\"\n },\n description: \"JSON objects describing re-usable topic parameters.\"\n },\n schema: {\n type: \"object\",\n description: \"A deterministic version of a JSON Schema object.\",\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n $ref: {\n type: \"string\"\n },\n format: {\n type: \"string\"\n },\n title: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/title\"\n },\n description: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/description\"\n },\n \"default\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/default\"\n },\n multipleOf: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n },\n maximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n },\n exclusiveMaximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n },\n minimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n },\n exclusiveMinimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n },\n maxLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n pattern: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n },\n maxItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n uniqueItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n },\n maxProperties: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minProperties: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n required: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/stringArray\"\n },\n \"enum\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/enum\"\n },\n additionalProperties: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"boolean\"\n }\n ],\n \"default\": {\n }\n },\n type: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/type\"\n },\n items: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n }\n ],\n \"default\": {\n }\n },\n allOf: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n oneOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n anyOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n not: {\n $ref: \"#/definitions/schema\"\n },\n properties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n \"default\": {\n }\n },\n discriminator: {\n type: \"string\"\n },\n readOnly: {\n type: \"boolean\",\n \"default\": false\n },\n xml: {\n $ref: \"#/definitions/xml\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n example: {\n }\n },\n additionalProperties: false\n },\n xml: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\"\n },\n namespace: {\n type: \"string\"\n },\n prefix: {\n type: \"string\"\n },\n attribute: {\n type: \"boolean\",\n \"default\": false\n },\n wrapped: {\n type: \"boolean\",\n \"default\": false\n }\n }\n },\n externalDocs: {\n type: \"object\",\n additionalProperties: false,\n description: \"information about external documentation\",\n required: [\n \"url\"\n ],\n properties: {\n description: {\n type: \"string\"\n },\n url: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n topicItem: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n minProperties: 1,\n properties: {\n $ref: {\n type: \"string\"\n },\n parameters: {\n type: \"array\",\n uniqueItems: true,\n minItems: 1,\n items: {\n $ref: \"#/definitions/parameter\"\n }\n },\n publish: {\n $ref: \"#/definitions/operation\"\n },\n subscribe: {\n $ref: \"#/definitions/operation\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n }\n }\n },\n parameter: {\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n description: {\n type: \"string\",\n description: \"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.\"\n },\n name: {\n type: \"string\",\n description: \"The name of the parameter.\"\n },\n schema: {\n $ref: \"#/definitions/schema\"\n },\n $ref: {\n type: \"string\"\n }\n }\n },\n operation: {\n oneOf: [\n {\n $ref: \"#/definitions/message\"\n },\n {\n type: \"object\",\n required: [\n \"oneOf\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/message\"\n }\n }\n }\n }\n ]\n },\n stream: {\n title: \"Stream Object\",\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n minProperties: 1,\n properties: {\n framing: {\n title: \"Stream Framing Object\",\n type: \"object\",\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n minProperties: 1,\n oneOf: [\n {\n additionalProperties: false,\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"chunked\"\n ]\n },\n delimiter: {\n type: \"string\",\n \"enum\": [\n \"\\\\r\\\\n\",\n \"\\\\n\"\n ],\n \"default\": \"\\\\r\\\\n\"\n }\n }\n },\n {\n additionalProperties: false,\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"sse\"\n ]\n },\n delimiter: {\n type: \"string\",\n \"enum\": [\n \"\\\\n\\\\n\"\n ],\n \"default\": \"\\\\n\\\\n\"\n }\n }\n }\n ]\n },\n read: {\n title: \"Stream Read Object\",\n type: \"array\",\n uniqueItems: true,\n minItems: 1,\n items: {\n $ref: \"#/definitions/message\"\n }\n },\n write: {\n title: \"Stream Write Object\",\n type: \"array\",\n uniqueItems: true,\n minItems: 1,\n items: {\n $ref: \"#/definitions/message\"\n }\n }\n }\n },\n events: {\n title: \"Events Object\",\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n minProperties: 1,\n anyOf: [\n {\n required: [\n \"receive\"\n ]\n },\n {\n required: [\n \"send\"\n ]\n }\n ],\n properties: {\n receive: {\n title: \"Events Receive Object\",\n type: \"array\",\n uniqueItems: true,\n minItems: 1,\n items: {\n $ref: \"#/definitions/message\"\n }\n },\n send: {\n title: \"Events Send Object\",\n type: \"array\",\n uniqueItems: true,\n minItems: 1,\n items: {\n $ref: \"#/definitions/message\"\n }\n }\n }\n },\n message: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n },\n properties: {\n $ref: {\n type: \"string\"\n },\n headers: {\n $ref: \"#/definitions/schema\"\n },\n payload: {\n $ref: \"#/definitions/schema\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n example: {\n }\n }\n },\n vendorExtension: {\n description: \"Any property starting with x- is valid.\",\n additionalProperties: true,\n additionalItems: true\n },\n tag: {\n type: \"object\",\n additionalProperties: false,\n required: [\n \"name\"\n ],\n properties: {\n name: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n },\n patternProperties: {\n \"^x-\": {\n $ref: \"#/definitions/vendorExtension\"\n }\n }\n },\n SecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/userPassword\"\n },\n {\n $ref: \"#/definitions/apiKey\"\n },\n {\n $ref: \"#/definitions/X509\"\n },\n {\n $ref: \"#/definitions/symmetricEncryption\"\n },\n {\n $ref: \"#/definitions/asymmetricEncryption\"\n },\n {\n $ref: \"#/definitions/HTTPSecurityScheme\"\n }\n ]\n },\n userPassword: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"userPassword\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n apiKey: {\n type: \"object\",\n required: [\n \"type\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"apiKey\"\n ]\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"user\",\n \"password\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n X509: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"X509\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n symmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"symmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n asymmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"asymmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n HTTPSecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/NonBearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/BearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/APIKeyHTTPSecurityScheme\"\n }\n ]\n },\n NonBearerHTTPSecurityScheme: {\n not: {\n type: \"object\",\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n }\n }\n },\n type: \"object\",\n required: [\n \"scheme\",\n \"type\"\n ],\n properties: {\n scheme: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n BearerHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"scheme\"\n ],\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n },\n bearerFormat: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n APIKeyHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"name\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"httpApiKey\"\n ]\n },\n name: {\n type: \"string\"\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"header\",\n \"query\",\n \"cookie\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-\": {\n }\n },\n additionalProperties: false\n },\n SecurityRequirement: {\n type: \"object\",\n additionalProperties: {\n type: \"array\",\n items: {\n type: \"string\"\n }\n }\n },\n title: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/title\"\n },\n description: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/description\"\n },\n \"default\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/default\"\n },\n multipleOf: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n },\n maximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n },\n exclusiveMaximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n },\n minimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n },\n exclusiveMinimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n },\n maxLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n pattern: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n },\n maxItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n uniqueItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n },\n \"enum\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/enum\"\n }\n };\n var require$$2 = {\n title: title$3,\n id: id$1,\n $schema: $schema$4,\n type: type$6,\n required: required$3,\n oneOf: oneOf,\n additionalProperties: additionalProperties$3,\n patternProperties: patternProperties$3,\n properties: properties$4,\n definitions: definitions$4\n };\n\n var title$2 = \"AsyncAPI 2.0.0-rc1 schema.\";\n var $schema$3 = \"http://json-schema.org/draft-07/schema#\";\n var type$5 = \"object\";\n var required$2 = [\n \"asyncapi\",\n \"id\",\n \"info\",\n \"channels\"\n ];\n var additionalProperties$2 = false;\n var patternProperties$2 = {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n };\n var properties$3 = {\n asyncapi: {\n type: \"string\",\n \"enum\": [\n \"2.0.0-rc1\"\n ],\n description: \"The AsyncAPI specification version of this document.\"\n },\n id: {\n type: \"string\",\n description: \"A unique id representing the application.\",\n format: \"uri-reference\"\n },\n info: {\n $ref: \"#/definitions/info\"\n },\n servers: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/server\"\n },\n uniqueItems: true\n },\n defaultContentType: {\n type: \"string\"\n },\n channels: {\n $ref: \"#/definitions/channels\"\n },\n components: {\n $ref: \"#/definitions/components\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n };\n var definitions$3 = {\n Reference: {\n type: \"object\",\n required: [\n \"$ref\"\n ],\n properties: {\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n }\n }\n },\n ReferenceObject: {\n type: \"string\",\n format: \"uri\"\n },\n info: {\n type: \"object\",\n description: \"General information about the API.\",\n required: [\n \"version\",\n \"title\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n title: {\n type: \"string\",\n description: \"A unique and precise title of the API.\"\n },\n version: {\n type: \"string\",\n description: \"A semantic version number of the API.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the API. Should be different from the title. CommonMark is allowed.\"\n },\n termsOfService: {\n type: \"string\",\n description: \"A URL to the Terms of Service for the API. MUST be in the format of a URL.\",\n format: \"uri\"\n },\n contact: {\n $ref: \"#/definitions/contact\"\n },\n license: {\n $ref: \"#/definitions/license\"\n }\n }\n },\n contact: {\n type: \"object\",\n description: \"Contact information for the owners of the API.\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The identifying name of the contact person/organization.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the contact information.\",\n format: \"uri\"\n },\n email: {\n type: \"string\",\n description: \"The email address of the contact person/organization.\",\n format: \"email\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n license: {\n type: \"object\",\n required: [\n \"name\"\n ],\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The name of the license type. It's encouraged to use an OSI compatible license.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the license.\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n server: {\n type: \"object\",\n description: \"An object representing a Server.\",\n required: [\n \"url\",\n \"protocol\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n url: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n protocol: {\n type: \"string\",\n description: \"The transfer protocol.\"\n },\n protocolVersion: {\n type: \"string\"\n },\n variables: {\n $ref: \"#/definitions/serverVariables\"\n },\n baseChannel: {\n type: \"string\",\n \"x-format\": \"uri-path\"\n },\n security: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/SecurityRequirement\"\n }\n }\n }\n },\n serverVariables: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/serverVariable\"\n }\n },\n serverVariable: {\n type: \"object\",\n description: \"An object representing a Server Variable for server URL template substitution.\",\n minProperties: 1,\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n \"enum\": {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n },\n \"default\": {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n examples: {\n type: \"array\",\n items: {\n type: \"string\"\n }\n }\n }\n },\n channels: {\n type: \"object\",\n propertyNames: {\n type: \"string\",\n format: \"uri-template\",\n minLength: 1\n },\n additionalProperties: {\n $ref: \"#/definitions/channelItem\"\n }\n },\n components: {\n type: \"object\",\n description: \"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.\",\n additionalProperties: false,\n properties: {\n schemas: {\n $ref: \"#/definitions/schemas\"\n },\n messages: {\n $ref: \"#/definitions/messages\"\n },\n securitySchemes: {\n type: \"object\",\n patternProperties: {\n \"^[\\\\w\\\\d\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/SecurityScheme\"\n }\n ]\n }\n }\n },\n parameters: {\n $ref: \"#/definitions/parameters\"\n },\n correlationIds: {\n type: \"object\",\n patternProperties: {\n \"^[\\\\w\\\\d\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n }\n }\n },\n traits: {\n $ref: \"#/definitions/traits\"\n }\n }\n },\n schemas: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n description: \"JSON objects describing schemas the API uses.\"\n },\n messages: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/message\"\n },\n description: \"JSON objects describing the messages being consumed and produced by the API.\"\n },\n parameters: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/parameter\"\n },\n description: \"JSON objects describing re-usable channel parameters.\"\n },\n schema: {\n type: \"object\",\n description: \"A deterministic version of a JSON Schema object.\",\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n },\n format: {\n type: \"string\"\n },\n title: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/title\"\n },\n description: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/description\"\n },\n \"default\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/default\"\n },\n multipleOf: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n },\n maximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n },\n exclusiveMaximum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n },\n minimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n },\n exclusiveMinimum: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n },\n maxLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minLength: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n pattern: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n },\n maxItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n uniqueItems: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n },\n maxProperties: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n },\n minProperties: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n },\n required: {\n $ref: \"http://json-schema.org/draft-04/schema#/definitions/stringArray\"\n },\n \"enum\": {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/enum\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n additionalProperties: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"boolean\"\n }\n ],\n \"default\": {\n }\n },\n type: {\n $ref: \"http://json-schema.org/draft-04/schema#/properties/type\"\n },\n items: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n }\n ],\n \"default\": {\n }\n },\n allOf: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n oneOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n anyOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n not: {\n $ref: \"#/definitions/schema\"\n },\n properties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n \"default\": {\n }\n },\n discriminator: {\n type: \"string\"\n },\n readOnly: {\n type: \"boolean\",\n \"default\": false\n },\n xml: {\n $ref: \"#/definitions/xml\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n example: {\n },\n examples: {\n type: \"array\",\n items: {\n }\n }\n },\n additionalProperties: false\n },\n xml: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\"\n },\n namespace: {\n type: \"string\"\n },\n prefix: {\n type: \"string\"\n },\n attribute: {\n type: \"boolean\",\n \"default\": false\n },\n wrapped: {\n type: \"boolean\",\n \"default\": false\n }\n }\n },\n externalDocs: {\n type: \"object\",\n additionalProperties: false,\n description: \"information about external documentation\",\n required: [\n \"url\"\n ],\n properties: {\n description: {\n type: \"string\"\n },\n url: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n channelItem: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n minProperties: 1,\n properties: {\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n },\n parameters: {\n type: \"array\",\n uniqueItems: true,\n minItems: 1,\n items: {\n $ref: \"#/definitions/parameter\"\n }\n },\n publish: {\n $ref: \"#/definitions/operation\"\n },\n subscribe: {\n $ref: \"#/definitions/operation\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n protocolInfo: {\n type: \"object\",\n additionalProperties: {\n type: \"object\"\n }\n }\n }\n },\n parameter: {\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n description: {\n type: \"string\",\n description: \"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.\"\n },\n name: {\n type: \"string\",\n description: \"The name of the parameter.\"\n },\n schema: {\n $ref: \"#/definitions/schema\"\n },\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n }\n }\n },\n operation: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n traits: {\n type: \"array\",\n items: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/operationTrait\"\n },\n {\n type: \"array\",\n items: [\n {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/operationTrait\"\n }\n ]\n },\n {\n type: \"object\",\n additionalItems: true\n }\n ]\n }\n ]\n }\n },\n summary: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n operationId: {\n type: \"string\"\n },\n protocolInfo: {\n type: \"object\",\n additionalProperties: {\n type: \"object\"\n }\n },\n message: {\n oneOf: [\n {\n $ref: \"#/definitions/message\"\n },\n {\n type: \"object\",\n required: [\n \"oneOf\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/message\"\n }\n }\n }\n }\n ]\n }\n }\n },\n message: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n schemaFormat: {\n type: \"string\"\n },\n contentType: {\n type: \"string\"\n },\n headers: {\n type: \"object\",\n additionalProperties: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/schema\"\n }\n ]\n }\n },\n payload: {\n },\n correlationId: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n name: {\n type: \"string\",\n description: \"Name of the message.\"\n },\n title: {\n type: \"string\",\n description: \"A human-friendly title for the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n examples: {\n type: \"array\",\n items: {\n type: \"object\"\n }\n },\n protocolInfo: {\n type: \"object\",\n additionalProperties: {\n type: \"object\"\n }\n },\n traits: {\n type: \"array\",\n items: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/messageTrait\"\n },\n {\n type: \"array\",\n items: [\n {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/messageTrait\"\n }\n ]\n },\n {\n type: \"object\",\n additionalItems: true\n }\n ]\n }\n ]\n }\n }\n }\n },\n correlationId: {\n type: \"object\",\n required: [\n \"location\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n description: {\n type: \"string\",\n description: \"A optional description of the correlation ID. GitHub Flavored Markdown is allowed.\"\n },\n location: {\n type: \"string\",\n description: \"A runtime expression that specifies the location of the correlation ID\",\n pattern: \"^\\\\$message\\\\.(header|payload)#(/\\\\w+)+\"\n }\n }\n },\n specificationExtension: {\n description: \"Any property starting with x- is valid.\",\n additionalProperties: true,\n additionalItems: true\n },\n tag: {\n type: \"object\",\n additionalProperties: false,\n required: [\n \"name\"\n ],\n properties: {\n name: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n traits: {\n type: \"object\",\n additionalProperties: {\n anyOf: [\n {\n $ref: \"#/definitions/operationTrait\"\n },\n {\n $ref: \"#/definitions/messageTrait\"\n }\n ]\n }\n },\n operationTrait: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n summary: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n operationId: {\n type: \"string\"\n },\n protocolInfo: {\n type: \"object\",\n additionalProperties: {\n type: \"object\"\n }\n }\n }\n },\n messageTrait: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n schemaFormat: {\n type: \"string\"\n },\n contentType: {\n type: \"string\"\n },\n headers: {\n type: \"object\",\n additionalProperties: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/schema\"\n }\n ]\n }\n },\n correlationId: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n name: {\n type: \"string\",\n description: \"Name of the message.\"\n },\n title: {\n type: \"string\",\n description: \"A human-friendly title for the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n examples: {\n type: \"array\",\n items: {\n type: \"object\"\n }\n },\n protocolInfo: {\n type: \"object\",\n additionalProperties: {\n type: \"object\"\n }\n }\n }\n },\n SecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/userPassword\"\n },\n {\n $ref: \"#/definitions/apiKey\"\n },\n {\n $ref: \"#/definitions/X509\"\n },\n {\n $ref: \"#/definitions/symmetricEncryption\"\n },\n {\n $ref: \"#/definitions/asymmetricEncryption\"\n },\n {\n $ref: \"#/definitions/HTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/oauth2Flows\"\n },\n {\n $ref: \"#/definitions/openIdConnect\"\n }\n ]\n },\n userPassword: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"userPassword\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n apiKey: {\n type: \"object\",\n required: [\n \"type\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"apiKey\"\n ]\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"user\",\n \"password\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n X509: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"X509\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n symmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"symmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n asymmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"asymmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n HTTPSecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/NonBearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/BearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/APIKeyHTTPSecurityScheme\"\n }\n ]\n },\n NonBearerHTTPSecurityScheme: {\n not: {\n type: \"object\",\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n }\n }\n },\n type: \"object\",\n required: [\n \"scheme\",\n \"type\"\n ],\n properties: {\n scheme: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n BearerHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"scheme\"\n ],\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n },\n bearerFormat: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n APIKeyHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"name\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"httpApiKey\"\n ]\n },\n name: {\n type: \"string\"\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"header\",\n \"query\",\n \"cookie\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n oauth2Flows: {\n type: \"object\",\n required: [\n \"type\",\n \"flows\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"oauth2\"\n ]\n },\n description: {\n type: \"string\"\n },\n flows: {\n type: \"object\",\n properties: {\n implicit: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"authorizationUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"tokenUrl\"\n ]\n }\n }\n ]\n },\n password: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"tokenUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"authorizationUrl\"\n ]\n }\n }\n ]\n },\n clientCredentials: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"tokenUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"authorizationUrl\"\n ]\n }\n }\n ]\n },\n authorizationCode: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"authorizationUrl\",\n \"tokenUrl\",\n \"scopes\"\n ]\n }\n ]\n }\n },\n additionalProperties: false,\n minProperties: 1\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n oauth2Flow: {\n type: \"object\",\n properties: {\n authorizationUrl: {\n type: \"string\",\n format: \"uri\"\n },\n tokenUrl: {\n type: \"string\",\n format: \"uri\"\n },\n refreshUrl: {\n type: \"string\",\n format: \"uri\"\n },\n scopes: {\n $ref: \"#/definitions/oauth2Scopes\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n oauth2Scopes: {\n type: \"object\",\n additionalProperties: {\n type: \"string\"\n }\n },\n openIdConnect: {\n type: \"object\",\n required: [\n \"type\",\n \"openIdConnectUrl\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"openIdConnect\"\n ]\n },\n description: {\n type: \"string\"\n },\n openIdConnectUrl: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n SecurityRequirement: {\n type: \"object\",\n additionalProperties: {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n }\n }\n };\n var require$$3$1 = {\n title: title$2,\n $schema: $schema$3,\n type: type$5,\n required: required$2,\n additionalProperties: additionalProperties$2,\n patternProperties: patternProperties$2,\n properties: properties$3,\n definitions: definitions$3\n };\n\n var title$1 = \"AsyncAPI 2.0.0-rc2 schema.\";\n var $schema$2 = \"http://json-schema.org/draft-07/schema#\";\n var type$4 = \"object\";\n var required$1 = [\n \"asyncapi\",\n \"info\",\n \"channels\"\n ];\n var additionalProperties$1 = false;\n var patternProperties$1 = {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n };\n var properties$2 = {\n asyncapi: {\n type: \"string\",\n \"enum\": [\n \"2.0.0-rc2\"\n ],\n description: \"The AsyncAPI specification version of this document.\"\n },\n id: {\n type: \"string\",\n description: \"A unique id representing the application.\",\n format: \"uri\"\n },\n info: {\n $ref: \"#/definitions/info\"\n },\n servers: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/server\"\n }\n },\n defaultContentType: {\n type: \"string\"\n },\n channels: {\n $ref: \"#/definitions/channels\"\n },\n components: {\n $ref: \"#/definitions/components\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n };\n var definitions$2 = {\n Reference: {\n type: \"object\",\n required: [\n \"$ref\"\n ],\n properties: {\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n }\n }\n },\n ReferenceObject: {\n type: \"string\",\n format: \"uri-reference\"\n },\n info: {\n type: \"object\",\n description: \"General information about the API.\",\n required: [\n \"version\",\n \"title\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n title: {\n type: \"string\",\n description: \"A unique and precise title of the API.\"\n },\n version: {\n type: \"string\",\n description: \"A semantic version number of the API.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the API. Should be different from the title. CommonMark is allowed.\"\n },\n termsOfService: {\n type: \"string\",\n description: \"A URL to the Terms of Service for the API. MUST be in the format of a URL.\",\n format: \"uri\"\n },\n contact: {\n $ref: \"#/definitions/contact\"\n },\n license: {\n $ref: \"#/definitions/license\"\n }\n }\n },\n contact: {\n type: \"object\",\n description: \"Contact information for the owners of the API.\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The identifying name of the contact person/organization.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the contact information.\",\n format: \"uri\"\n },\n email: {\n type: \"string\",\n description: \"The email address of the contact person/organization.\",\n format: \"email\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n license: {\n type: \"object\",\n required: [\n \"name\"\n ],\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The name of the license type. It's encouraged to use an OSI compatible license.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the license.\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n server: {\n type: \"object\",\n description: \"An object representing a Server.\",\n required: [\n \"url\",\n \"protocol\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n url: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n protocol: {\n type: \"string\",\n description: \"The transfer protocol.\"\n },\n protocolVersion: {\n type: \"string\"\n },\n variables: {\n $ref: \"#/definitions/serverVariables\"\n },\n security: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/SecurityRequirement\"\n }\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n },\n serverVariables: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/serverVariable\"\n }\n },\n serverVariable: {\n type: \"object\",\n description: \"An object representing a Server Variable for server URL template substitution.\",\n minProperties: 1,\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n \"enum\": {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n },\n \"default\": {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n examples: {\n type: \"array\",\n items: {\n type: \"string\"\n }\n }\n }\n },\n channels: {\n type: \"object\",\n propertyNames: {\n type: \"string\",\n format: \"uri-template\",\n minLength: 1\n },\n additionalProperties: {\n $ref: \"#/definitions/channelItem\"\n }\n },\n components: {\n type: \"object\",\n description: \"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.\",\n additionalProperties: false,\n properties: {\n schemas: {\n $ref: \"#/definitions/schemas\"\n },\n messages: {\n $ref: \"#/definitions/messages\"\n },\n securitySchemes: {\n type: \"object\",\n patternProperties: {\n \"^[\\\\w\\\\d\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/SecurityScheme\"\n }\n ]\n }\n }\n },\n parameters: {\n $ref: \"#/definitions/parameters\"\n },\n correlationIds: {\n type: \"object\",\n patternProperties: {\n \"^[\\\\w\\\\d\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n }\n }\n },\n operationTraits: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/operationTrait\"\n }\n },\n messageTraits: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/messageTrait\"\n }\n },\n serverBindings: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/bindingsObject\"\n }\n },\n channelBindings: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/bindingsObject\"\n }\n },\n operationBindings: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/bindingsObject\"\n }\n },\n messageBindings: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n }\n },\n schemas: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n description: \"JSON objects describing schemas the API uses.\"\n },\n messages: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/message\"\n },\n description: \"JSON objects describing the messages being consumed and produced by the API.\"\n },\n parameters: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/parameter\"\n },\n description: \"JSON objects describing re-usable channel parameters.\"\n },\n schema: {\n allOf: [\n {\n $ref: \"http://json-schema.org/draft-07/schema#\"\n },\n {\n type: \"object\",\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n items: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n }\n ],\n \"default\": {\n }\n },\n allOf: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n oneOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n anyOf: {\n type: \"array\",\n minItems: 2,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n not: {\n $ref: \"#/definitions/schema\"\n },\n properties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n \"default\": {\n }\n },\n patternProperties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n \"default\": {\n }\n },\n propertyNames: {\n $ref: \"#/definitions/schema\"\n },\n contains: {\n $ref: \"#/definitions/schema\"\n },\n discriminator: {\n type: \"string\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n }\n }\n }\n ]\n },\n externalDocs: {\n type: \"object\",\n additionalProperties: false,\n description: \"information about external documentation\",\n required: [\n \"url\"\n ],\n properties: {\n description: {\n type: \"string\"\n },\n url: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n channelItem: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n minProperties: 1,\n properties: {\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n },\n parameters: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/parameter\"\n }\n },\n description: {\n type: \"string\",\n description: \"A description of the channel.\"\n },\n publish: {\n $ref: \"#/definitions/operation\"\n },\n subscribe: {\n $ref: \"#/definitions/operation\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n },\n parameter: {\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n description: {\n type: \"string\",\n description: \"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.\"\n },\n schema: {\n $ref: \"#/definitions/schema\"\n },\n location: {\n type: \"string\",\n description: \"A runtime expression that specifies the location of the parameter value\",\n pattern: \"^\\\\$message\\\\.(header|payload)\\\\#(\\\\/(([^\\\\/~])|(~[01]))*)*\"\n },\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n }\n }\n },\n operation: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n traits: {\n type: \"array\",\n items: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/operationTrait\"\n },\n {\n type: \"array\",\n items: [\n {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/operationTrait\"\n }\n ]\n },\n {\n type: \"object\",\n additionalItems: true\n }\n ]\n }\n ]\n }\n },\n summary: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n operationId: {\n type: \"string\"\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n },\n message: {\n $ref: \"#/definitions/message\"\n }\n }\n },\n message: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n oneOf: [\n {\n type: \"object\",\n required: [\n \"oneOf\"\n ],\n additionalProperties: false,\n properties: {\n oneOf: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/message\"\n }\n }\n }\n },\n {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n schemaFormat: {\n type: \"string\"\n },\n contentType: {\n type: \"string\"\n },\n headers: {\n $ref: \"#/definitions/schema\"\n },\n payload: {\n },\n correlationId: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n name: {\n type: \"string\",\n description: \"Name of the message.\"\n },\n title: {\n type: \"string\",\n description: \"A human-friendly title for the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n examples: {\n type: \"array\",\n items: {\n type: \"object\"\n }\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n },\n traits: {\n type: \"array\",\n items: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/messageTrait\"\n },\n {\n type: \"array\",\n items: [\n {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/messageTrait\"\n }\n ]\n },\n {\n type: \"object\",\n additionalItems: true\n }\n ]\n }\n ]\n }\n }\n }\n }\n ]\n }\n ]\n },\n bindingsObject: {\n type: \"object\",\n additionalProperties: true,\n properties: {\n http: {\n },\n ws: {\n },\n amqp: {\n },\n amqp1: {\n },\n mqtt: {\n },\n mqtt5: {\n },\n kafka: {\n },\n nats: {\n },\n jms: {\n },\n sns: {\n },\n sqs: {\n },\n stomp: {\n },\n redis: {\n }\n }\n },\n correlationId: {\n type: \"object\",\n required: [\n \"location\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n description: {\n type: \"string\",\n description: \"A optional description of the correlation ID. GitHub Flavored Markdown is allowed.\"\n },\n location: {\n type: \"string\",\n description: \"A runtime expression that specifies the location of the correlation ID\",\n pattern: \"^\\\\$message\\\\.(header|payload)\\\\#(\\\\/(([^\\\\/~])|(~[01]))*)*\"\n }\n }\n },\n specificationExtension: {\n description: \"Any property starting with x- is valid.\",\n additionalProperties: true,\n additionalItems: true\n },\n tag: {\n type: \"object\",\n additionalProperties: false,\n required: [\n \"name\"\n ],\n properties: {\n name: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n operationTrait: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n summary: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n operationId: {\n type: \"string\"\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n },\n messageTrait: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n schemaFormat: {\n type: \"string\"\n },\n contentType: {\n type: \"string\"\n },\n headers: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/schema\"\n }\n ]\n },\n correlationId: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n name: {\n type: \"string\",\n description: \"Name of the message.\"\n },\n title: {\n type: \"string\",\n description: \"A human-friendly title for the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n examples: {\n type: \"array\",\n items: {\n type: \"object\"\n }\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n },\n SecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/userPassword\"\n },\n {\n $ref: \"#/definitions/apiKey\"\n },\n {\n $ref: \"#/definitions/X509\"\n },\n {\n $ref: \"#/definitions/symmetricEncryption\"\n },\n {\n $ref: \"#/definitions/asymmetricEncryption\"\n },\n {\n $ref: \"#/definitions/HTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/oauth2Flows\"\n },\n {\n $ref: \"#/definitions/openIdConnect\"\n }\n ]\n },\n userPassword: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"userPassword\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n apiKey: {\n type: \"object\",\n required: [\n \"type\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"apiKey\"\n ]\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"user\",\n \"password\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n X509: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"X509\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n symmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"symmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n asymmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"asymmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n HTTPSecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/NonBearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/BearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/APIKeyHTTPSecurityScheme\"\n }\n ]\n },\n NonBearerHTTPSecurityScheme: {\n not: {\n type: \"object\",\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n }\n }\n },\n type: \"object\",\n required: [\n \"scheme\",\n \"type\"\n ],\n properties: {\n scheme: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n BearerHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"scheme\"\n ],\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n },\n bearerFormat: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n APIKeyHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"name\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"httpApiKey\"\n ]\n },\n name: {\n type: \"string\"\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"header\",\n \"query\",\n \"cookie\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n oauth2Flows: {\n type: \"object\",\n required: [\n \"type\",\n \"flows\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"oauth2\"\n ]\n },\n description: {\n type: \"string\"\n },\n flows: {\n type: \"object\",\n properties: {\n implicit: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"authorizationUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"tokenUrl\"\n ]\n }\n }\n ]\n },\n password: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"tokenUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"authorizationUrl\"\n ]\n }\n }\n ]\n },\n clientCredentials: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"tokenUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"authorizationUrl\"\n ]\n }\n }\n ]\n },\n authorizationCode: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"authorizationUrl\",\n \"tokenUrl\",\n \"scopes\"\n ]\n }\n ]\n }\n },\n additionalProperties: false,\n minProperties: 1\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n oauth2Flow: {\n type: \"object\",\n properties: {\n authorizationUrl: {\n type: \"string\",\n format: \"uri\"\n },\n tokenUrl: {\n type: \"string\",\n format: \"uri\"\n },\n refreshUrl: {\n type: \"string\",\n format: \"uri\"\n },\n scopes: {\n $ref: \"#/definitions/oauth2Scopes\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n oauth2Scopes: {\n type: \"object\",\n additionalProperties: {\n type: \"string\"\n }\n },\n openIdConnect: {\n type: \"object\",\n required: [\n \"type\",\n \"openIdConnectUrl\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"openIdConnect\"\n ]\n },\n description: {\n type: \"string\"\n },\n openIdConnectUrl: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n SecurityRequirement: {\n type: \"object\",\n additionalProperties: {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n }\n }\n };\n var require$$4 = {\n title: title$1,\n $schema: $schema$2,\n type: type$4,\n required: required$1,\n additionalProperties: additionalProperties$1,\n patternProperties: patternProperties$1,\n properties: properties$2,\n definitions: definitions$2\n };\n\n var title = \"AsyncAPI 2.0.0 schema.\";\n var $schema$1 = \"http://json-schema.org/draft-07/schema#\";\n var type$3 = \"object\";\n var required = [\n \"asyncapi\",\n \"info\",\n \"channels\"\n ];\n var additionalProperties = false;\n var patternProperties = {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n };\n var properties$1 = {\n asyncapi: {\n type: \"string\",\n \"enum\": [\n \"2.0.0\"\n ],\n description: \"The AsyncAPI specification version of this document.\"\n },\n id: {\n type: \"string\",\n description: \"A unique id representing the application.\",\n format: \"uri\"\n },\n info: {\n $ref: \"#/definitions/info\"\n },\n servers: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/server\"\n }\n },\n defaultContentType: {\n type: \"string\"\n },\n channels: {\n $ref: \"#/definitions/channels\"\n },\n components: {\n $ref: \"#/definitions/components\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n };\n var definitions$1 = {\n Reference: {\n type: \"object\",\n required: [\n \"$ref\"\n ],\n properties: {\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n }\n }\n },\n ReferenceObject: {\n type: \"string\",\n format: \"uri-reference\"\n },\n info: {\n type: \"object\",\n description: \"General information about the API.\",\n required: [\n \"version\",\n \"title\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n title: {\n type: \"string\",\n description: \"A unique and precise title of the API.\"\n },\n version: {\n type: \"string\",\n description: \"A semantic version number of the API.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the API. Should be different from the title. CommonMark is allowed.\"\n },\n termsOfService: {\n type: \"string\",\n description: \"A URL to the Terms of Service for the API. MUST be in the format of a URL.\",\n format: \"uri\"\n },\n contact: {\n $ref: \"#/definitions/contact\"\n },\n license: {\n $ref: \"#/definitions/license\"\n }\n }\n },\n contact: {\n type: \"object\",\n description: \"Contact information for the owners of the API.\",\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The identifying name of the contact person/organization.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the contact information.\",\n format: \"uri\"\n },\n email: {\n type: \"string\",\n description: \"The email address of the contact person/organization.\",\n format: \"email\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n license: {\n type: \"object\",\n required: [\n \"name\"\n ],\n additionalProperties: false,\n properties: {\n name: {\n type: \"string\",\n description: \"The name of the license type. It's encouraged to use an OSI compatible license.\"\n },\n url: {\n type: \"string\",\n description: \"The URL pointing to the license.\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n server: {\n type: \"object\",\n description: \"An object representing a Server.\",\n required: [\n \"url\",\n \"protocol\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n url: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n protocol: {\n type: \"string\",\n description: \"The transfer protocol.\"\n },\n protocolVersion: {\n type: \"string\"\n },\n variables: {\n $ref: \"#/definitions/serverVariables\"\n },\n security: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/SecurityRequirement\"\n }\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n },\n serverVariables: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/serverVariable\"\n }\n },\n serverVariable: {\n type: \"object\",\n description: \"An object representing a Server Variable for server URL template substitution.\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n \"enum\": {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n },\n \"default\": {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n examples: {\n type: \"array\",\n items: {\n type: \"string\"\n }\n }\n }\n },\n channels: {\n type: \"object\",\n propertyNames: {\n type: \"string\",\n format: \"uri-template\",\n minLength: 1\n },\n additionalProperties: {\n $ref: \"#/definitions/channelItem\"\n }\n },\n components: {\n type: \"object\",\n description: \"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.\",\n additionalProperties: false,\n properties: {\n schemas: {\n $ref: \"#/definitions/schemas\"\n },\n messages: {\n $ref: \"#/definitions/messages\"\n },\n securitySchemes: {\n type: \"object\",\n patternProperties: {\n \"^[\\\\w\\\\d\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/SecurityScheme\"\n }\n ]\n }\n }\n },\n parameters: {\n $ref: \"#/definitions/parameters\"\n },\n correlationIds: {\n type: \"object\",\n patternProperties: {\n \"^[\\\\w\\\\d\\\\.\\\\-_]+$\": {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n }\n }\n },\n operationTraits: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/operationTrait\"\n }\n },\n messageTraits: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/messageTrait\"\n }\n },\n serverBindings: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/bindingsObject\"\n }\n },\n channelBindings: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/bindingsObject\"\n }\n },\n operationBindings: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/bindingsObject\"\n }\n },\n messageBindings: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n }\n },\n schemas: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n description: \"JSON objects describing schemas the API uses.\"\n },\n messages: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/message\"\n },\n description: \"JSON objects describing the messages being consumed and produced by the API.\"\n },\n parameters: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/parameter\"\n },\n description: \"JSON objects describing re-usable channel parameters.\"\n },\n schema: {\n allOf: [\n {\n $ref: \"http://json-schema.org/draft-07/schema#\"\n },\n {\n type: \"object\",\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n additionalProperties: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"boolean\"\n }\n ],\n \"default\": {\n }\n },\n items: {\n anyOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n }\n ],\n \"default\": {\n }\n },\n allOf: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#/definitions/schema\"\n }\n },\n not: {\n $ref: \"#/definitions/schema\"\n },\n properties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n \"default\": {\n }\n },\n patternProperties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/schema\"\n },\n \"default\": {\n }\n },\n propertyNames: {\n $ref: \"#/definitions/schema\"\n },\n contains: {\n $ref: \"#/definitions/schema\"\n },\n discriminator: {\n type: \"string\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n }\n }\n }\n ]\n },\n externalDocs: {\n type: \"object\",\n additionalProperties: false,\n description: \"information about external documentation\",\n required: [\n \"url\"\n ],\n properties: {\n description: {\n type: \"string\"\n },\n url: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n channelItem: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n },\n parameters: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/definitions/parameter\"\n }\n },\n description: {\n type: \"string\",\n description: \"A description of the channel.\"\n },\n publish: {\n $ref: \"#/definitions/operation\"\n },\n subscribe: {\n $ref: \"#/definitions/operation\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n },\n parameter: {\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n description: {\n type: \"string\",\n description: \"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.\"\n },\n schema: {\n $ref: \"#/definitions/schema\"\n },\n location: {\n type: \"string\",\n description: \"A runtime expression that specifies the location of the parameter value\",\n pattern: \"^\\\\$message\\\\.(header|payload)\\\\#(\\\\/(([^\\\\/~])|(~[01]))*)*\"\n },\n $ref: {\n $ref: \"#/definitions/ReferenceObject\"\n }\n }\n },\n operation: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n traits: {\n type: \"array\",\n items: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/operationTrait\"\n },\n {\n type: \"array\",\n items: [\n {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/operationTrait\"\n }\n ]\n },\n {\n type: \"object\",\n additionalItems: true\n }\n ]\n }\n ]\n }\n },\n summary: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n operationId: {\n type: \"string\"\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n },\n message: {\n $ref: \"#/definitions/message\"\n }\n }\n },\n message: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n oneOf: [\n {\n type: \"object\",\n required: [\n \"oneOf\"\n ],\n additionalProperties: false,\n properties: {\n oneOf: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/message\"\n }\n }\n }\n },\n {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n schemaFormat: {\n type: \"string\"\n },\n contentType: {\n type: \"string\"\n },\n headers: {\n allOf: [\n {\n $ref: \"#/definitions/schema\"\n },\n {\n properties: {\n type: {\n \"const\": \"object\"\n }\n }\n }\n ]\n },\n payload: {\n },\n correlationId: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n name: {\n type: \"string\",\n description: \"Name of the message.\"\n },\n title: {\n type: \"string\",\n description: \"A human-friendly title for the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n examples: {\n type: \"array\",\n items: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n headers: {\n type: \"object\"\n },\n payload: {\n }\n }\n }\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n },\n traits: {\n type: \"array\",\n items: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/messageTrait\"\n },\n {\n type: \"array\",\n items: [\n {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/messageTrait\"\n }\n ]\n },\n {\n type: \"object\",\n additionalItems: true\n }\n ]\n }\n ]\n }\n }\n }\n }\n ]\n }\n ]\n },\n bindingsObject: {\n type: \"object\",\n additionalProperties: true,\n properties: {\n http: {\n },\n ws: {\n },\n amqp: {\n },\n amqp1: {\n },\n mqtt: {\n },\n mqtt5: {\n },\n kafka: {\n },\n nats: {\n },\n jms: {\n },\n sns: {\n },\n sqs: {\n },\n stomp: {\n },\n redis: {\n }\n }\n },\n correlationId: {\n type: \"object\",\n required: [\n \"location\"\n ],\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n description: {\n type: \"string\",\n description: \"A optional description of the correlation ID. GitHub Flavored Markdown is allowed.\"\n },\n location: {\n type: \"string\",\n description: \"A runtime expression that specifies the location of the correlation ID\",\n pattern: \"^\\\\$message\\\\.(header|payload)\\\\#(\\\\/(([^\\\\/~])|(~[01]))*)*\"\n }\n }\n },\n specificationExtension: {\n description: \"Any property starting with x- is valid.\",\n additionalProperties: true,\n additionalItems: true\n },\n tag: {\n type: \"object\",\n additionalProperties: false,\n required: [\n \"name\"\n ],\n properties: {\n name: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n operationTrait: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n summary: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n operationId: {\n type: \"string\"\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n },\n messageTrait: {\n type: \"object\",\n additionalProperties: false,\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n properties: {\n schemaFormat: {\n type: \"string\"\n },\n contentType: {\n type: \"string\"\n },\n headers: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/schema\"\n }\n ]\n },\n correlationId: {\n oneOf: [\n {\n $ref: \"#/definitions/Reference\"\n },\n {\n $ref: \"#/definitions/correlationId\"\n }\n ]\n },\n tags: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/tag\"\n },\n uniqueItems: true\n },\n summary: {\n type: \"string\",\n description: \"A brief summary of the message.\"\n },\n name: {\n type: \"string\",\n description: \"Name of the message.\"\n },\n title: {\n type: \"string\",\n description: \"A human-friendly title for the message.\"\n },\n description: {\n type: \"string\",\n description: \"A longer description of the message. CommonMark is allowed.\"\n },\n externalDocs: {\n $ref: \"#/definitions/externalDocs\"\n },\n deprecated: {\n type: \"boolean\",\n \"default\": false\n },\n examples: {\n type: \"array\",\n items: {\n type: \"object\"\n }\n },\n bindings: {\n $ref: \"#/definitions/bindingsObject\"\n }\n }\n },\n SecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/userPassword\"\n },\n {\n $ref: \"#/definitions/apiKey\"\n },\n {\n $ref: \"#/definitions/X509\"\n },\n {\n $ref: \"#/definitions/symmetricEncryption\"\n },\n {\n $ref: \"#/definitions/asymmetricEncryption\"\n },\n {\n $ref: \"#/definitions/HTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/oauth2Flows\"\n },\n {\n $ref: \"#/definitions/openIdConnect\"\n }\n ]\n },\n userPassword: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"userPassword\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n apiKey: {\n type: \"object\",\n required: [\n \"type\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"apiKey\"\n ]\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"user\",\n \"password\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n X509: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"X509\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n symmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"symmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n asymmetricEncryption: {\n type: \"object\",\n required: [\n \"type\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"asymmetricEncryption\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n HTTPSecurityScheme: {\n oneOf: [\n {\n $ref: \"#/definitions/NonBearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/BearerHTTPSecurityScheme\"\n },\n {\n $ref: \"#/definitions/APIKeyHTTPSecurityScheme\"\n }\n ]\n },\n NonBearerHTTPSecurityScheme: {\n not: {\n type: \"object\",\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n }\n }\n },\n type: \"object\",\n required: [\n \"scheme\",\n \"type\"\n ],\n properties: {\n scheme: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n BearerHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"scheme\"\n ],\n properties: {\n scheme: {\n type: \"string\",\n \"enum\": [\n \"bearer\"\n ]\n },\n bearerFormat: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n \"enum\": [\n \"http\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n APIKeyHTTPSecurityScheme: {\n type: \"object\",\n required: [\n \"type\",\n \"name\",\n \"in\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"httpApiKey\"\n ]\n },\n name: {\n type: \"string\"\n },\n \"in\": {\n type: \"string\",\n \"enum\": [\n \"header\",\n \"query\",\n \"cookie\"\n ]\n },\n description: {\n type: \"string\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n oauth2Flows: {\n type: \"object\",\n required: [\n \"type\",\n \"flows\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"oauth2\"\n ]\n },\n description: {\n type: \"string\"\n },\n flows: {\n type: \"object\",\n properties: {\n implicit: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"authorizationUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"tokenUrl\"\n ]\n }\n }\n ]\n },\n password: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"tokenUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"authorizationUrl\"\n ]\n }\n }\n ]\n },\n clientCredentials: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"tokenUrl\",\n \"scopes\"\n ]\n },\n {\n not: {\n required: [\n \"authorizationUrl\"\n ]\n }\n }\n ]\n },\n authorizationCode: {\n allOf: [\n {\n $ref: \"#/definitions/oauth2Flow\"\n },\n {\n required: [\n \"authorizationUrl\",\n \"tokenUrl\",\n \"scopes\"\n ]\n }\n ]\n }\n },\n additionalProperties: false\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n }\n },\n oauth2Flow: {\n type: \"object\",\n properties: {\n authorizationUrl: {\n type: \"string\",\n format: \"uri\"\n },\n tokenUrl: {\n type: \"string\",\n format: \"uri\"\n },\n refreshUrl: {\n type: \"string\",\n format: \"uri\"\n },\n scopes: {\n $ref: \"#/definitions/oauth2Scopes\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n oauth2Scopes: {\n type: \"object\",\n additionalProperties: {\n type: \"string\"\n }\n },\n openIdConnect: {\n type: \"object\",\n required: [\n \"type\",\n \"openIdConnectUrl\"\n ],\n properties: {\n type: {\n type: \"string\",\n \"enum\": [\n \"openIdConnect\"\n ]\n },\n description: {\n type: \"string\"\n },\n openIdConnectUrl: {\n type: \"string\",\n format: \"uri\"\n }\n },\n patternProperties: {\n \"^x-[\\\\w\\\\d\\\\.\\\\-\\\\_]+$\": {\n $ref: \"#/definitions/specificationExtension\"\n }\n },\n additionalProperties: false\n },\n SecurityRequirement: {\n type: \"object\",\n additionalProperties: {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: true\n }\n }\n };\n var require$$5 = {\n title: title,\n $schema: $schema$1,\n type: type$3,\n required: required,\n additionalProperties: additionalProperties,\n patternProperties: patternProperties,\n properties: properties$1,\n definitions: definitions$1\n };\n\n var specs = {\n '1.0.0': require$$0$3,\n '1.1.0': require$$1$1,\n '1.2.0': require$$2,\n '2.0.0-rc1': require$$3$1,\n '2.0.0-rc2': require$$4,\n '2.0.0': require$$5,\n };\n\n const nonJsonTypes = [\"function\", \"symbol\", \"undefined\"];\n const protectedProps$1 = [\"constructor\", \"prototype\", \"__proto__\"];\n const objectPrototype = Object.getPrototypeOf({});\n /**\n * Custom JSON serializer for Error objects.\n * Returns all built-in error properties, as well as extended properties.\n */\n function toJSON() {\n // HACK: We have to cast the objects to `any` so we can use symbol indexers.\n // see https://github.com/Microsoft/TypeScript/issues/1863\n let pojo = {};\n let error = this;\n for (let key of getDeepKeys(error)) {\n if (typeof key === \"string\") {\n let value = error[key];\n let type = typeof value;\n if (!nonJsonTypes.includes(type)) {\n pojo[key] = value;\n }\n }\n }\n return pojo;\n }\n /**\n * Returns own, inherited, enumerable, non-enumerable, string, and symbol keys of `obj`.\n * Does NOT return members of the base Object prototype, or the specified omitted keys.\n */\n function getDeepKeys(obj, omit = []) {\n let keys = [];\n // Crawl the prototype chain, finding all the string and symbol keys\n while (obj && obj !== objectPrototype) {\n keys = keys.concat(Object.getOwnPropertyNames(obj), Object.getOwnPropertySymbols(obj));\n obj = Object.getPrototypeOf(obj);\n }\n // De-duplicate the list of keys\n let uniqueKeys = new Set(keys);\n // Remove any omitted keys\n for (let key of omit.concat(protectedProps$1)) {\n uniqueKeys.delete(key);\n }\n return uniqueKeys;\n }\n\n // The `inspect()` method is actually a Symbol, not a string key.\n // https://nodejs.org/api/util.html#util_util_inspect_custom\n const inspectMethod = inspect$1.custom || Symbol.for(\"nodejs.util.inspect.custom\");\n /**\n * Ono supports Node's `util.format()` formatting for error messages.\n *\n * @see https://nodejs.org/api/util.html#util_util_format_format_args\n */\n const format = format$2;\n /**\n * Adds an `inspect()` method to support Node's `util.inspect()` function.\n *\n * @see https://nodejs.org/api/util.html#util_util_inspect_custom\n */\n function addInspectMethod(newError) {\n // @ts-expect-error - TypeScript doesn't support symbol indexers\n newError[inspectMethod] = inspect;\n }\n /**\n * Returns a representation of the error for Node's `util.inspect()` method.\n *\n * @see https://nodejs.org/api/util.html#util_custom_inspection_functions_on_objects\n */\n function inspect() {\n // HACK: We have to cast the objects to `any` so we can use symbol indexers.\n // see https://github.com/Microsoft/TypeScript/issues/1863\n let pojo = {};\n let error = this;\n for (let key of getDeepKeys(error)) {\n let value = error[key];\n pojo[key] = value;\n }\n // Don't include the `inspect()` method on the output object,\n // otherwise it will cause `util.inspect()` to go into an infinite loop\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete pojo[inspectMethod];\n return pojo;\n }\n\n const newline = /\\r?\\n/;\n const onoCall = /\\bono[ @]/;\n /**\n * Is the property lazily computed?\n */\n function isLazyStack(stackProp) {\n return Boolean(stackProp &&\n stackProp.configurable &&\n typeof stackProp.get === \"function\");\n }\n /**\n * Is the stack property writable?\n */\n function isWritableStack(stackProp) {\n return Boolean(\n // If there is no stack property, then it's writable, since assigning it will create it\n !stackProp ||\n stackProp.writable ||\n typeof stackProp.set === \"function\");\n }\n /**\n * Appends the original `Error.stack` property to the new Error's stack.\n */\n function joinStacks(newError, originalError) {\n let newStack = popStack(newError.stack);\n let originalStack = originalError ? originalError.stack : undefined;\n if (newStack && originalStack) {\n return newStack + \"\\n\\n\" + originalStack;\n }\n else {\n return newStack || originalStack;\n }\n }\n /**\n * Calls `joinStacks` lazily, when the `Error.stack` property is accessed.\n */\n function lazyJoinStacks(lazyStack, newError, originalError) {\n if (originalError) {\n Object.defineProperty(newError, \"stack\", {\n get: () => {\n let newStack = lazyStack.get.apply(newError);\n return joinStacks({ stack: newStack }, originalError);\n },\n enumerable: false,\n configurable: true\n });\n }\n else {\n lazyPopStack(newError, lazyStack);\n }\n }\n /**\n * Removes Ono from the stack, so that the stack starts at the original error location\n */\n function popStack(stack) {\n if (stack) {\n let lines = stack.split(newline);\n // Find the Ono call(s) in the stack, and remove them\n let onoStart;\n for (let i = 0; i < lines.length; i++) {\n let line = lines[i];\n if (onoCall.test(line)) {\n if (onoStart === undefined) {\n // We found the first Ono call in the stack trace.\n // There may be other subsequent Ono calls as well.\n onoStart = i;\n }\n }\n else if (onoStart !== undefined) {\n // We found the first non-Ono call after one or more Ono calls.\n // So remove the Ono call lines from the stack trace\n lines.splice(onoStart, i - onoStart);\n break;\n }\n }\n if (lines.length > 0) {\n return lines.join(\"\\n\");\n }\n }\n // If we get here, then the stack doesn't contain a call to `ono`.\n // This may be due to minification or some optimization of the JS engine.\n // So just return the stack as-is.\n return stack;\n }\n /**\n * Calls `popStack` lazily, when the `Error.stack` property is accessed.\n */\n function lazyPopStack(error, lazyStack) {\n Object.defineProperty(error, \"stack\", {\n get: () => popStack(lazyStack.get.apply(error)),\n enumerable: false,\n configurable: true\n });\n }\n\n const protectedProps = [\"name\", \"message\", \"stack\"];\n /**\n * Extends the new error with the properties of the original error and the `props` object.\n *\n * @param newError - The error object to extend\n * @param originalError - The original error object, if any\n * @param props - Additional properties to add, if any\n */\n function extendError(error, originalError, props) {\n let onoError = error;\n extendStack(onoError, originalError);\n // Copy properties from the original error\n if (originalError && typeof originalError === \"object\") {\n mergeErrors(onoError, originalError);\n }\n // The default `toJSON` method doesn't output props like `name`, `message`, `stack`, etc.\n // So replace it with one that outputs every property of the error.\n onoError.toJSON = toJSON;\n // On Node.js, add support for the `util.inspect()` method\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (addInspectMethod) {\n addInspectMethod(onoError);\n }\n // Finally, copy custom properties that were specified by the user.\n // These props OVERWRITE any previous props\n if (props && typeof props === \"object\") {\n Object.assign(onoError, props);\n }\n return onoError;\n }\n /**\n * Extend the error stack to include its cause\n */\n function extendStack(newError, originalError) {\n let stackProp = Object.getOwnPropertyDescriptor(newError, \"stack\");\n if (isLazyStack(stackProp)) {\n lazyJoinStacks(stackProp, newError, originalError);\n }\n else if (isWritableStack(stackProp)) {\n newError.stack = joinStacks(newError, originalError);\n }\n }\n /**\n * Merges properties of the original error with the new error.\n *\n * @param newError - The error object to extend\n * @param originalError - The original error object, if any\n */\n function mergeErrors(newError, originalError) {\n // Get the original error's keys\n // NOTE: We specifically exclude properties that we have already set on the new error.\n // This is _especially_ important for the `stack` property, because this property has\n // a lazy getter in some environments\n let keys = getDeepKeys(originalError, protectedProps);\n // HACK: We have to cast the errors to `any` so we can use symbol indexers.\n // see https://github.com/Microsoft/TypeScript/issues/1863\n let _newError = newError;\n let _originalError = originalError;\n for (let key of keys) {\n if (_newError[key] === undefined) {\n try {\n _newError[key] = _originalError[key];\n }\n catch (e) {\n // This property is read-only, so it can't be copied\n }\n }\n }\n }\n\n /**\n * Normalizes Ono options, accounting for defaults and optional options.\n */\n function normalizeOptions(options) {\n options = options || {};\n return {\n concatMessages: options.concatMessages === undefined ? true : Boolean(options.concatMessages),\n format: options.format === undefined ? format\n : (typeof options.format === \"function\" ? options.format : false),\n };\n }\n /**\n * Normalizes the Ono arguments, accounting for defaults, options, and optional arguments.\n */\n function normalizeArgs$1(args, options) {\n let originalError;\n let props;\n let formatArgs;\n let message = \"\";\n // Determine which arguments were actually specified\n if (typeof args[0] === \"string\") {\n formatArgs = args;\n }\n else if (typeof args[1] === \"string\") {\n if (args[0] instanceof Error) {\n originalError = args[0];\n }\n else {\n props = args[0];\n }\n formatArgs = args.slice(1);\n }\n else {\n originalError = args[0];\n props = args[1];\n formatArgs = args.slice(2);\n }\n // If there are any format arguments, then format the error message\n if (formatArgs.length > 0) {\n if (options.format) {\n message = options.format.apply(undefined, formatArgs);\n }\n else {\n message = formatArgs.join(\" \");\n }\n }\n if (options.concatMessages && originalError && originalError.message) {\n // The inner-error's message will be added to the new message\n message += (message ? \" \\n\" : \"\") + originalError.message;\n }\n return { originalError, props, message };\n }\n\n const constructor = Ono;\n /**\n * Creates an `Ono` instance for a specifc error type.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n function Ono(ErrorConstructor, options) {\n options = normalizeOptions(options);\n function ono(...args) {\n let { originalError, props, message } = normalizeArgs$1(args, options);\n // Create a new error of the specified type\n let newError = new ErrorConstructor(message);\n // Extend the error with the properties of the original error and the `props` object\n return extendError(newError, originalError, props);\n }\n ono[Symbol.species] = ErrorConstructor;\n return ono;\n }\n /**\n * Returns an object containing all properties of the given Error object,\n * which can be used with `JSON.stringify()`.\n */\n Ono.toJSON = function toJSON$1(error) {\n return toJSON.call(error);\n };\n /**\n * Extends the given Error object with enhanced Ono functionality, such as nested stack traces,\n * additional properties, and improved support for `JSON.stringify()`.\n */\n Ono.extend = function extend(error, originalError, props) {\n if (props || originalError instanceof Error) {\n return extendError(error, originalError, props);\n }\n else if (originalError) {\n return extendError(error, undefined, originalError);\n }\n else {\n return extendError(error);\n }\n };\n\n const singleton = ono$6;\n ono$6.error = new constructor(Error);\n ono$6.eval = new constructor(EvalError);\n ono$6.range = new constructor(RangeError);\n ono$6.reference = new constructor(ReferenceError);\n ono$6.syntax = new constructor(SyntaxError);\n ono$6.type = new constructor(TypeError);\n ono$6.uri = new constructor(URIError);\n const onoMap = ono$6;\n /**\n * Creates a new error with the specified message, properties, and/or inner error.\n * If an inner error is provided, then the new error will match its type, if possible.\n */\n function ono$6(...args) {\n let originalError = args[0];\n // Is the first argument an Error-like object?\n if (typeof originalError === \"object\" && typeof originalError.name === \"string\") {\n // Try to find an Ono singleton method that matches this error type\n for (let typedOno of Object.values(onoMap)) {\n if (typeof typedOno === \"function\" && typedOno.name === \"ono\") {\n let species = typedOno[Symbol.species];\n if (species && species !== Error && (originalError instanceof species || originalError.name === species.name)) {\n // Create an error of the same type\n return typedOno.apply(undefined, args);\n }\n }\n }\n }\n // By default, create a base Error object\n return ono$6.error.apply(undefined, args);\n }\n\n /* eslint-env commonjs */\n // CommonJS default export hack\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n module.exports = Object.assign(module.exports.default, module.exports);\n }\n\n var esm$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ono: singleton,\n 'default': singleton,\n Ono: constructor\n });\n\n var require$$0$2 = /*@__PURE__*/getAugmentedNamespace(url);\n\n var url_1 = createCommonjsModule(function (module, exports) {\n\n let isWindows = /^win/.test(browser$1.platform),\n forwardSlashPattern = /\\//g,\n protocolPattern = /^(\\w{2,}):\\/\\//i,\n url = module.exports,\n jsonPointerSlash = /~1/g,\n jsonPointerTilde = /~0/g;\n\n // RegExp patterns to URL-encode special characters in local filesystem paths\n let urlEncodePatterns = [\n /\\?/g, \"%3F\",\n /\\#/g, \"%23\",\n ];\n\n // RegExp patterns to URL-decode special characters for local filesystem paths\n let urlDecodePatterns = [\n /\\%23/g, \"#\",\n /\\%24/g, \"$\",\n /\\%26/g, \"&\",\n /\\%2C/g, \",\",\n /\\%40/g, \"@\"\n ];\n\n exports.parse = require$$0$2.parse;\n exports.resolve = require$$0$2.resolve;\n\n /**\n * Returns the current working directory (in Node) or the current page URL (in browsers).\n *\n * @returns {string}\n */\n exports.cwd = function cwd () {\n if (browser$1.browser) {\n return location.href;\n }\n\n let path = browser$1.cwd();\n\n let lastChar = path.slice(-1);\n if (lastChar === \"/\" || lastChar === \"\\\\\") {\n return path;\n }\n else {\n return path + \"/\";\n }\n };\n\n /**\n * Returns the protocol of the given URL, or `undefined` if it has no protocol.\n *\n * @param {string} path\n * @returns {?string}\n */\n exports.getProtocol = function getProtocol (path) {\n let match = protocolPattern.exec(path);\n if (match) {\n return match[1].toLowerCase();\n }\n };\n\n /**\n * Returns the lowercased file extension of the given URL,\n * or an empty string if it has no extension.\n *\n * @param {string} path\n * @returns {string}\n */\n exports.getExtension = function getExtension (path) {\n let lastDot = path.lastIndexOf(\".\");\n if (lastDot >= 0) {\n return path.substr(lastDot).toLowerCase();\n }\n return \"\";\n };\n\n /**\n * Returns the hash (URL fragment), of the given path.\n * If there is no hash, then the root hash (\"#\") is returned.\n *\n * @param {string} path\n * @returns {string}\n */\n exports.getHash = function getHash (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n return path.substr(hashIndex);\n }\n return \"#\";\n };\n\n /**\n * Removes the hash (URL fragment), if any, from the given path.\n *\n * @param {string} path\n * @returns {string}\n */\n exports.stripHash = function stripHash (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n path = path.substr(0, hashIndex);\n }\n return path;\n };\n\n /**\n * Determines whether the given path is an HTTP(S) URL.\n *\n * @param {string} path\n * @returns {boolean}\n */\n exports.isHttp = function isHttp (path) {\n let protocol = url.getProtocol(path);\n if (protocol === \"http\" || protocol === \"https\") {\n return true;\n }\n else if (protocol === undefined) {\n // There is no protocol. If we're running in a browser, then assume it's HTTP.\n return browser$1.browser;\n }\n else {\n // It's some other protocol, such as \"ftp://\", \"mongodb://\", etc.\n return false;\n }\n };\n\n /**\n * Determines whether the given path is a filesystem path.\n * This includes \"file://\" URLs.\n *\n * @param {string} path\n * @returns {boolean}\n */\n exports.isFileSystemPath = function isFileSystemPath (path) {\n if (browser$1.browser) {\n // We're running in a browser, so assume that all paths are URLs.\n // This way, even relative paths will be treated as URLs rather than as filesystem paths\n return false;\n }\n\n let protocol = url.getProtocol(path);\n return protocol === undefined || protocol === \"file\";\n };\n\n /**\n * Converts a filesystem path to a properly-encoded URL.\n *\n * This is intended to handle situations where JSON Schema $Ref Parser is called\n * with a filesystem path that contains characters which are not allowed in URLs.\n *\n * @example\n * The following filesystem paths would be converted to the following URLs:\n *\n * <\"!@#$%^&*+=?'>.json ==> %3C%22!@%23$%25%5E&*+=%3F\\'%3E.json\n * C:\\\\My Documents\\\\File (1).json ==> C:/My%20Documents/File%20(1).json\n * file://Project #42/file.json ==> file://Project%20%2342/file.json\n *\n * @param {string} path\n * @returns {string}\n */\n exports.fromFileSystemPath = function fromFileSystemPath (path) {\n // Step 1: On Windows, replace backslashes with forward slashes,\n // rather than encoding them as \"%5C\"\n if (isWindows) {\n path = path.replace(/\\\\/g, \"/\");\n }\n\n // Step 2: `encodeURI` will take care of MOST characters\n path = encodeURI(path);\n\n // Step 3: Manually encode characters that are not encoded by `encodeURI`.\n // This includes characters such as \"#\" and \"?\", which have special meaning in URLs,\n // but are just normal characters in a filesystem path.\n for (let i = 0; i < urlEncodePatterns.length; i += 2) {\n path = path.replace(urlEncodePatterns[i], urlEncodePatterns[i + 1]);\n }\n\n return path;\n };\n\n /**\n * Converts a URL to a local filesystem path.\n *\n * @param {string} path\n * @param {boolean} [keepFileProtocol] - If true, then \"file://\" will NOT be stripped\n * @returns {string}\n */\n exports.toFileSystemPath = function toFileSystemPath (path, keepFileProtocol) {\n // Step 1: `decodeURI` will decode characters such as Cyrillic characters, spaces, etc.\n path = decodeURI(path);\n\n // Step 2: Manually decode characters that are not decoded by `decodeURI`.\n // This includes characters such as \"#\" and \"?\", which have special meaning in URLs,\n // but are just normal characters in a filesystem path.\n for (let i = 0; i < urlDecodePatterns.length; i += 2) {\n path = path.replace(urlDecodePatterns[i], urlDecodePatterns[i + 1]);\n }\n\n // Step 3: If it's a \"file://\" URL, then format it consistently\n // or convert it to a local filesystem path\n let isFileUrl = path.substr(0, 7).toLowerCase() === \"file://\";\n if (isFileUrl) {\n // Strip-off the protocol, and the initial \"/\", if there is one\n path = path[7] === \"/\" ? path.substr(8) : path.substr(7);\n\n // insert a colon (\":\") after the drive letter on Windows\n if (isWindows && path[1] === \"/\") {\n path = path[0] + \":\" + path.substr(1);\n }\n\n if (keepFileProtocol) {\n // Return the consistently-formatted \"file://\" URL\n path = \"file:///\" + path;\n }\n else {\n // Convert the \"file://\" URL to a local filesystem path.\n // On Windows, it will start with something like \"C:/\".\n // On Posix, it will start with \"/\"\n isFileUrl = false;\n path = isWindows ? path : \"/\" + path;\n }\n }\n\n // Step 4: Normalize Windows paths (unless it's a \"file://\" URL)\n if (isWindows && !isFileUrl) {\n // Replace forward slashes with backslashes\n path = path.replace(forwardSlashPattern, \"\\\\\");\n\n // Capitalize the drive letter\n if (path.substr(1, 2) === \":\\\\\") {\n path = path[0].toUpperCase() + path.substr(1);\n }\n }\n\n return path;\n };\n\n /**\n * Converts a $ref pointer to a valid JSON Path.\n *\n * @param {string} pointer\n * @returns {Array}\n */\n exports.safePointerToPath = function safePointerToPath (pointer) {\n if (pointer.length <= 1 || pointer[0] !== \"#\" || pointer[1] !== \"/\") {\n return [];\n }\n\n return pointer\n .slice(2)\n .split(\"/\")\n .map((value) => {\n return decodeURIComponent(value)\n .replace(jsonPointerSlash, \"/\")\n .replace(jsonPointerTilde, \"~\");\n });\n };\n });\n\n var require$$1 = /*@__PURE__*/getAugmentedNamespace(esm$1);\n\n var errors = createCommonjsModule(function (module, exports) {\n\n const { Ono } = require$$1;\n\n const { stripHash, toFileSystemPath } = url_1;\n\n const JSONParserError = exports.JSONParserError = class JSONParserError extends Error {\n constructor (message, source) {\n super();\n\n this.code = \"EUNKNOWN\";\n this.message = message;\n this.source = source;\n this.path = null;\n\n Ono.extend(this);\n }\n };\n\n setErrorName(JSONParserError);\n\n const JSONParserErrorGroup = exports.JSONParserErrorGroup = class JSONParserErrorGroup extends Error {\n constructor (parser) {\n super();\n\n this.files = parser;\n this.message = `${this.errors.length} error${this.errors.length > 1 ? \"s\" : \"\"} occurred while reading '${toFileSystemPath(parser.$refs._root$Ref.path)}'`;\n\n Ono.extend(this);\n }\n\n static getParserErrors (parser) {\n const errors = [];\n\n for (const $ref of Object.values(parser.$refs._$refs)) {\n if ($ref.errors) {\n errors.push(...$ref.errors);\n }\n }\n\n return errors;\n }\n\n get errors () {\n return JSONParserErrorGroup.getParserErrors(this.files);\n }\n };\n\n setErrorName(JSONParserErrorGroup);\n\n const ParserError = exports.ParserError = class ParserError extends JSONParserError {\n constructor (message, source) {\n super(`Error parsing ${source}: ${message}`, source);\n\n this.code = \"EPARSER\";\n }\n };\n\n setErrorName(ParserError);\n\n const UnmatchedParserError = exports.UnmatchedParserError = class UnmatchedParserError extends JSONParserError {\n constructor (source) {\n super(`Could not find parser for \"${source}\"`, source);\n\n this.code = \"EUNMATCHEDPARSER\";\n }\n };\n\n setErrorName(UnmatchedParserError);\n\n const ResolverError = exports.ResolverError = class ResolverError extends JSONParserError {\n constructor (ex, source) {\n super(ex.message || `Error reading file \"${source}\"`, source);\n\n this.code = \"ERESOLVER\";\n\n if (\"code\" in ex) {\n this.ioErrorCode = String(ex.code);\n }\n }\n };\n\n setErrorName(ResolverError);\n\n const UnmatchedResolverError = exports.UnmatchedResolverError = class UnmatchedResolverError extends JSONParserError {\n constructor (source) {\n super(`Could not find resolver for \"${source}\"`, source);\n\n this.code = \"EUNMATCHEDRESOLVER\";\n }\n };\n\n setErrorName(UnmatchedResolverError);\n\n const MissingPointerError = exports.MissingPointerError = class MissingPointerError extends JSONParserError {\n constructor (token, path) {\n super(`Token \"${token}\" does not exist.`, stripHash(path));\n\n this.code = \"EMISSINGPOINTER\";\n }\n };\n\n setErrorName(MissingPointerError);\n\n const InvalidPointerError = exports.InvalidPointerError = class InvalidPointerError extends JSONParserError {\n constructor (pointer, path) {\n super(`Invalid $ref pointer \"${pointer}\". Pointers must begin with \"#/\"`, stripHash(path));\n\n this.code = \"EINVALIDPOINTER\";\n }\n };\n\n setErrorName(InvalidPointerError);\n\n function setErrorName (err) {\n Object.defineProperty(err.prototype, \"name\", {\n value: err.name,\n enumerable: true,\n });\n }\n\n exports.isHandledError = function (err) {\n return err instanceof JSONParserError || err instanceof JSONParserErrorGroup;\n };\n\n exports.normalizeError = function (err) {\n if (err.path === null) {\n err.path = [];\n }\n\n return err;\n };\n });\n\n var pointer = Pointer;\n\n\n\n const { JSONParserError: JSONParserError$1, InvalidPointerError: InvalidPointerError$2, MissingPointerError: MissingPointerError$1, isHandledError: isHandledError$4 } = errors;\n const slashes = /\\//g;\n const tildes = /~/g;\n const escapedSlash = /~1/g;\n const escapedTilde = /~0/g;\n\n /**\n * This class represents a single JSON pointer and its resolved value.\n *\n * @param {$Ref} $ref\n * @param {string} path\n * @param {string} [friendlyPath] - The original user-specified path (used for error messages)\n * @constructor\n */\n function Pointer ($ref, path, friendlyPath) {\n /**\n * The {@link $Ref} object that contains this {@link Pointer} object.\n * @type {$Ref}\n */\n this.$ref = $ref;\n\n /**\n * The file path or URL, containing the JSON pointer in the hash.\n * This path is relative to the path of the main JSON schema file.\n * @type {string}\n */\n this.path = path;\n\n /**\n * The original path or URL, used for error messages.\n * @type {string}\n */\n this.originalPath = friendlyPath || path;\n\n /**\n * The value of the JSON pointer.\n * Can be any JSON type, not just objects. Unknown file types are represented as Buffers (byte arrays).\n * @type {?*}\n */\n this.value = undefined;\n\n /**\n * Indicates whether the pointer references itself.\n * @type {boolean}\n */\n this.circular = false;\n\n /**\n * The number of indirect references that were traversed to resolve the value.\n * Resolving a single pointer may require resolving multiple $Refs.\n * @type {number}\n */\n this.indirections = 0;\n }\n\n /**\n * Resolves the value of a nested property within the given object.\n *\n * @param {*} obj - The object that will be crawled\n * @param {$RefParserOptions} options\n * @param {string} pathFromRoot - the path of place that initiated resolving\n *\n * @returns {Pointer}\n * Returns a JSON pointer whose {@link Pointer#value} is the resolved value.\n * If resolving this value required resolving other JSON references, then\n * the {@link Pointer#$ref} and {@link Pointer#path} will reflect the resolution path\n * of the resolved value.\n */\n Pointer.prototype.resolve = function (obj, options, pathFromRoot) {\n let tokens = Pointer.parse(this.path, this.originalPath);\n\n // Crawl the object, one token at a time\n this.value = unwrapOrThrow(obj);\n\n for (let i = 0; i < tokens.length; i++) {\n if (resolveIf$Ref(this, options)) {\n // The $ref path has changed, so append the remaining tokens to the path\n this.path = Pointer.join(this.path, tokens.slice(i));\n }\n\n if (typeof this.value === \"object\" && this.value !== null && \"$ref\" in this.value) {\n return this;\n }\n\n let token = tokens[i];\n if (this.value[token] === undefined || this.value[token] === null) {\n this.value = null;\n throw new MissingPointerError$1(token, this.originalPath);\n }\n else {\n this.value = this.value[token];\n }\n }\n\n // Resolve the final value\n if (!this.value || this.value.$ref && url_1.resolve(this.path, this.value.$ref) !== pathFromRoot) {\n resolveIf$Ref(this, options);\n }\n\n return this;\n };\n\n /**\n * Sets the value of a nested property within the given object.\n *\n * @param {*} obj - The object that will be crawled\n * @param {*} value - the value to assign\n * @param {$RefParserOptions} options\n *\n * @returns {*}\n * Returns the modified object, or an entirely new object if the entire object is overwritten.\n */\n Pointer.prototype.set = function (obj, value, options) {\n let tokens = Pointer.parse(this.path);\n let token;\n\n if (tokens.length === 0) {\n // There are no tokens, replace the entire object with the new value\n this.value = value;\n return value;\n }\n\n // Crawl the object, one token at a time\n this.value = unwrapOrThrow(obj);\n\n for (let i = 0; i < tokens.length - 1; i++) {\n resolveIf$Ref(this, options);\n\n token = tokens[i];\n if (this.value && this.value[token] !== undefined) {\n // The token exists\n this.value = this.value[token];\n }\n else {\n // The token doesn't exist, so create it\n this.value = setValue(this, token, {});\n }\n }\n\n // Set the value of the final token\n resolveIf$Ref(this, options);\n token = tokens[tokens.length - 1];\n setValue(this, token, value);\n\n // Return the updated object\n return obj;\n };\n\n /**\n * Parses a JSON pointer (or a path containing a JSON pointer in the hash)\n * and returns an array of the pointer's tokens.\n * (e.g. \"schema.json#/definitions/person/name\" => [\"definitions\", \"person\", \"name\"])\n *\n * The pointer is parsed according to RFC 6901\n * {@link https://tools.ietf.org/html/rfc6901#section-3}\n *\n * @param {string} path\n * @param {string} [originalPath]\n * @returns {string[]}\n */\n Pointer.parse = function (path, originalPath) {\n // Get the JSON pointer from the path's hash\n let pointer = url_1.getHash(path).substr(1);\n\n // If there's no pointer, then there are no tokens,\n // so return an empty array\n if (!pointer) {\n return [];\n }\n\n // Split into an array\n pointer = pointer.split(\"/\");\n\n // Decode each part, according to RFC 6901\n for (let i = 0; i < pointer.length; i++) {\n pointer[i] = decodeURIComponent(pointer[i].replace(escapedSlash, \"/\").replace(escapedTilde, \"~\"));\n }\n\n if (pointer[0] !== \"\") {\n throw new InvalidPointerError$2(pointer, originalPath === undefined ? path : originalPath);\n }\n\n return pointer.slice(1);\n };\n\n /**\n * Creates a JSON pointer path, by joining one or more tokens to a base path.\n *\n * @param {string} base - The base path (e.g. \"schema.json#/definitions/person\")\n * @param {string|string[]} tokens - The token(s) to append (e.g. [\"name\", \"first\"])\n * @returns {string}\n */\n Pointer.join = function (base, tokens) {\n // Ensure that the base path contains a hash\n if (base.indexOf(\"#\") === -1) {\n base += \"#\";\n }\n\n // Append each token to the base path\n tokens = Array.isArray(tokens) ? tokens : [tokens];\n for (let i = 0; i < tokens.length; i++) {\n let token = tokens[i];\n // Encode the token, according to RFC 6901\n base += \"/\" + encodeURIComponent(token.replace(tildes, \"~0\").replace(slashes, \"~1\"));\n }\n\n return base;\n };\n\n /**\n * If the given pointer's {@link Pointer#value} is a JSON reference,\n * then the reference is resolved and {@link Pointer#value} is replaced with the resolved value.\n * In addition, {@link Pointer#path} and {@link Pointer#$ref} are updated to reflect the\n * resolution path of the new value.\n *\n * @param {Pointer} pointer\n * @param {$RefParserOptions} options\n * @returns {boolean} - Returns `true` if the resolution path changed\n */\n function resolveIf$Ref (pointer, options) {\n // Is the value a JSON reference? (and allowed?)\n\n if (ref.isAllowed$Ref(pointer.value, options)) {\n let $refPath = url_1.resolve(pointer.path, pointer.value.$ref);\n\n if ($refPath === pointer.path) {\n // The value is a reference to itself, so there's nothing to do.\n pointer.circular = true;\n }\n else {\n let resolved = pointer.$ref.$refs._resolve($refPath, pointer.path, options);\n pointer.indirections += resolved.indirections + 1;\n\n if (ref.isExtended$Ref(pointer.value)) {\n // This JSON reference \"extends\" the resolved value, rather than simply pointing to it.\n // So the resolved path does NOT change. Just the value does.\n pointer.value = ref.dereference(pointer.value, resolved.value);\n return false;\n }\n else {\n // Resolve the reference\n pointer.$ref = resolved.$ref;\n pointer.path = resolved.path;\n pointer.value = resolved.value;\n }\n\n return true;\n }\n }\n }\n\n /**\n * Sets the specified token value of the {@link Pointer#value}.\n *\n * The token is evaluated according to RFC 6901.\n * {@link https://tools.ietf.org/html/rfc6901#section-4}\n *\n * @param {Pointer} pointer - The JSON Pointer whose value will be modified\n * @param {string} token - A JSON Pointer token that indicates how to modify `obj`\n * @param {*} value - The value to assign\n * @returns {*} - Returns the assigned value\n */\n function setValue (pointer, token, value) {\n if (pointer.value && typeof pointer.value === \"object\") {\n if (token === \"-\" && Array.isArray(pointer.value)) {\n pointer.value.push(value);\n }\n else {\n pointer.value[token] = value;\n }\n }\n else {\n throw new JSONParserError$1(`Error assigning $ref pointer \"${pointer.path}\". \\nCannot set \"${token}\" of a non-object.`);\n }\n return value;\n }\n\n\n function unwrapOrThrow (value) {\n if (isHandledError$4(value)) {\n throw value;\n }\n\n return value;\n }\n\n var ref = $Ref;\n\n\n const { InvalidPointerError: InvalidPointerError$1, isHandledError: isHandledError$3, normalizeError } = errors;\n const { safePointerToPath, stripHash, getHash } = url_1;\n\n /**\n * This class represents a single JSON reference and its resolved value.\n *\n * @constructor\n */\n function $Ref () {\n /**\n * The file path or URL of the referenced file.\n * This path is relative to the path of the main JSON schema file.\n *\n * This path does NOT contain document fragments (JSON pointers). It always references an ENTIRE file.\n * Use methods such as {@link $Ref#get}, {@link $Ref#resolve}, and {@link $Ref#exists} to get\n * specific JSON pointers within the file.\n *\n * @type {string}\n */\n this.path = undefined;\n\n /**\n * The resolved value of the JSON reference.\n * Can be any JSON type, not just objects. Unknown file types are represented as Buffers (byte arrays).\n * @type {?*}\n */\n this.value = undefined;\n\n /**\n * The {@link $Refs} object that contains this {@link $Ref} object.\n * @type {$Refs}\n */\n this.$refs = undefined;\n\n /**\n * Indicates the type of {@link $Ref#path} (e.g. \"file\", \"http\", etc.)\n * @type {?string}\n */\n this.pathType = undefined;\n\n /**\n * List of all errors. Undefined if no errors.\n * @type {Array}\n */\n this.errors = undefined;\n }\n\n /**\n * Pushes an error to errors array.\n *\n * @param {Array} error - The error to be pushed\n * @returns {void}\n */\n $Ref.prototype.addError = function (err) {\n if (this.errors === undefined) {\n this.errors = [];\n }\n\n // the path has been almost certainly set at this point,\n // but just in case something went wrong, let's inject path if necessary\n if (Array.isArray(err.errors)) {\n this.errors.push(...err.errors.map(normalizeError));\n }\n else {\n this.errors.push(normalizeError(err));\n }\n };\n\n\n /**\n * Determines whether the given JSON reference exists within this {@link $Ref#value}.\n *\n * @param {string} path - The full path being resolved, optionally with a JSON pointer in the hash\n * @param {$RefParserOptions} options\n * @returns {boolean}\n */\n $Ref.prototype.exists = function (path, options) {\n try {\n this.resolve(path, options);\n return true;\n }\n catch (e) {\n return false;\n }\n };\n\n /**\n * Resolves the given JSON reference within this {@link $Ref#value} and returns the resolved value.\n *\n * @param {string} path - The full path being resolved, optionally with a JSON pointer in the hash\n * @param {$RefParserOptions} options\n * @returns {*} - Returns the resolved value\n */\n $Ref.prototype.get = function (path, options) {\n return this.resolve(path, options).value;\n };\n\n /**\n * Resolves the given JSON reference within this {@link $Ref#value}.\n *\n * @param {string} path - The full path being resolved, optionally with a JSON pointer in the hash\n * @param {$RefParserOptions} options\n * @param {string} friendlyPath - The original user-specified path (used for error messages)\n * @param {string} pathFromRoot - The path of `obj` from the schema root\n * @returns {Pointer}\n */\n $Ref.prototype.resolve = function (path, options, friendlyPath, pathFromRoot) {\n let pointer$1 = new pointer(this, path, friendlyPath);\n try {\n return pointer$1.resolve(this.value, options, pathFromRoot);\n }\n catch (err) {\n if (!options || !options.continueOnError || !isHandledError$3(err)) {\n throw err;\n }\n\n if (err.path === null) {\n err.path = safePointerToPath(getHash(pathFromRoot));\n }\n\n if (err instanceof InvalidPointerError$1) {\n // this is a special case - InvalidPointerError is thrown when dereferencing external file,\n // but the issue is caused by the source file that referenced the file that undergoes dereferencing\n err.source = stripHash(pathFromRoot);\n }\n\n this.addError(err);\n return null;\n }\n };\n\n /**\n * Sets the value of a nested property within this {@link $Ref#value}.\n * If the property, or any of its parents don't exist, they will be created.\n *\n * @param {string} path - The full path of the property to set, optionally with a JSON pointer in the hash\n * @param {*} value - The value to assign\n */\n $Ref.prototype.set = function (path, value) {\n let pointer$1 = new pointer(this, path);\n this.value = pointer$1.set(this.value, value);\n };\n\n /**\n * Determines whether the given value is a JSON reference.\n *\n * @param {*} value - The value to inspect\n * @returns {boolean}\n */\n $Ref.is$Ref = function (value) {\n return value && typeof value === \"object\" && typeof value.$ref === \"string\" && value.$ref.length > 0;\n };\n\n /**\n * Determines whether the given value is an external JSON reference.\n *\n * @param {*} value - The value to inspect\n * @returns {boolean}\n */\n $Ref.isExternal$Ref = function (value) {\n return $Ref.is$Ref(value) && value.$ref[0] !== \"#\";\n };\n\n /**\n * Determines whether the given value is a JSON reference, and whether it is allowed by the options.\n * For example, if it references an external file, then options.resolve.external must be true.\n *\n * @param {*} value - The value to inspect\n * @param {$RefParserOptions} options\n * @returns {boolean}\n */\n $Ref.isAllowed$Ref = function (value, options) {\n if ($Ref.is$Ref(value)) {\n if (value.$ref.substr(0, 2) === \"#/\" || value.$ref === \"#\") {\n // It's a JSON Pointer reference, which is always allowed\n return true;\n }\n else if (value.$ref[0] !== \"#\" && (!options || options.resolve.external)) {\n // It's an external reference, which is allowed by the options\n return true;\n }\n }\n };\n\n /**\n * Determines whether the given value is a JSON reference that \"extends\" its resolved value.\n * That is, it has extra properties (in addition to \"$ref\"), so rather than simply pointing to\n * an existing value, this $ref actually creates a NEW value that is a shallow copy of the resolved\n * value, plus the extra properties.\n *\n * @example:\n * {\n * person: {\n * properties: {\n * firstName: { type: string }\n * lastName: { type: string }\n * }\n * }\n * employee: {\n * properties: {\n * $ref: #/person/properties\n * salary: { type: number }\n * }\n * }\n * }\n *\n * In this example, \"employee\" is an extended $ref, since it extends \"person\" with an additional\n * property (salary). The result is a NEW value that looks like this:\n *\n * {\n * properties: {\n * firstName: { type: string }\n * lastName: { type: string }\n * salary: { type: number }\n * }\n * }\n *\n * @param {*} value - The value to inspect\n * @returns {boolean}\n */\n $Ref.isExtended$Ref = function (value) {\n return $Ref.is$Ref(value) && Object.keys(value).length > 1;\n };\n\n /**\n * Returns the resolved value of a JSON Reference.\n * If necessary, the resolved value is merged with the JSON Reference to create a new object\n *\n * @example:\n * {\n * person: {\n * properties: {\n * firstName: { type: string }\n * lastName: { type: string }\n * }\n * }\n * employee: {\n * properties: {\n * $ref: #/person/properties\n * salary: { type: number }\n * }\n * }\n * }\n *\n * When \"person\" and \"employee\" are merged, you end up with the following object:\n *\n * {\n * properties: {\n * firstName: { type: string }\n * lastName: { type: string }\n * salary: { type: number }\n * }\n * }\n *\n * @param {object} $ref - The JSON reference object (the one with the \"$ref\" property)\n * @param {*} resolvedValue - The resolved value, which can be any type\n * @returns {*} - Returns the dereferenced value\n */\n $Ref.dereference = function ($ref, resolvedValue) {\n if (resolvedValue && typeof resolvedValue === \"object\" && $Ref.isExtended$Ref($ref)) {\n let merged = {};\n for (let key of Object.keys($ref)) {\n if (key !== \"$ref\") {\n merged[key] = $ref[key];\n }\n }\n\n for (let key of Object.keys(resolvedValue)) {\n if (!(key in merged)) {\n merged[key] = resolvedValue[key];\n }\n }\n\n return merged;\n }\n else {\n // Completely replace the original reference with the resolved value\n return resolvedValue;\n }\n };\n\n const { ono: ono$5 } = require$$1;\n\n\n\n var refs = $Refs;\n\n /**\n * This class is a map of JSON references and their resolved values.\n */\n function $Refs () {\n /**\n * Indicates whether the schema contains any circular references.\n *\n * @type {boolean}\n */\n this.circular = false;\n\n /**\n * A map of paths/urls to {@link $Ref} objects\n *\n * @type {object}\n * @protected\n */\n this._$refs = {};\n\n /**\n * The {@link $Ref} object that is the root of the JSON schema.\n *\n * @type {$Ref}\n * @protected\n */\n this._root$Ref = null;\n }\n\n /**\n * Returns the paths of all the files/URLs that are referenced by the JSON schema,\n * including the schema itself.\n *\n * @param {...string|string[]} [types] - Only return paths of the given types (\"file\", \"http\", etc.)\n * @returns {string[]}\n */\n $Refs.prototype.paths = function (types) { // eslint-disable-line no-unused-vars\n let paths = getPaths(this._$refs, arguments);\n return paths.map((path) => {\n return path.decoded;\n });\n };\n\n /**\n * Returns the map of JSON references and their resolved values.\n *\n * @param {...string|string[]} [types] - Only return references of the given types (\"file\", \"http\", etc.)\n * @returns {object}\n */\n $Refs.prototype.values = function (types) { // eslint-disable-line no-unused-vars\n let $refs = this._$refs;\n let paths = getPaths($refs, arguments);\n return paths.reduce((obj, path) => {\n obj[path.decoded] = $refs[path.encoded].value;\n return obj;\n }, {});\n };\n\n /**\n * Returns a POJO (plain old JavaScript object) for serialization as JSON.\n *\n * @returns {object}\n */\n $Refs.prototype.toJSON = $Refs.prototype.values;\n\n /**\n * Determines whether the given JSON reference exists.\n *\n * @param {string} path - The path being resolved, optionally with a JSON pointer in the hash\n * @param {$RefParserOptions} [options]\n * @returns {boolean}\n */\n $Refs.prototype.exists = function (path, options) {\n try {\n this._resolve(path, \"\", options);\n return true;\n }\n catch (e) {\n return false;\n }\n };\n\n /**\n * Resolves the given JSON reference and returns the resolved value.\n *\n * @param {string} path - The path being resolved, with a JSON pointer in the hash\n * @param {$RefParserOptions} [options]\n * @returns {*} - Returns the resolved value\n */\n $Refs.prototype.get = function (path, options) {\n return this._resolve(path, \"\", options).value;\n };\n\n /**\n * Sets the value of a nested property within this {@link $Ref#value}.\n * If the property, or any of its parents don't exist, they will be created.\n *\n * @param {string} path - The path of the property to set, optionally with a JSON pointer in the hash\n * @param {*} value - The value to assign\n */\n $Refs.prototype.set = function (path, value) {\n let absPath = url_1.resolve(this._root$Ref.path, path);\n let withoutHash = url_1.stripHash(absPath);\n let $ref = this._$refs[withoutHash];\n\n if (!$ref) {\n throw ono$5(`Error resolving $ref pointer \"${path}\". \\n\"${withoutHash}\" not found.`);\n }\n\n $ref.set(absPath, value);\n };\n\n /**\n * Creates a new {@link $Ref} object and adds it to this {@link $Refs} object.\n *\n * @param {string} path - The file path or URL of the referenced file\n */\n $Refs.prototype._add = function (path) {\n let withoutHash = url_1.stripHash(path);\n\n let $ref = new ref();\n $ref.path = withoutHash;\n $ref.$refs = this;\n\n this._$refs[withoutHash] = $ref;\n this._root$Ref = this._root$Ref || $ref;\n\n return $ref;\n };\n\n /**\n * Resolves the given JSON reference.\n *\n * @param {string} path - The path being resolved, optionally with a JSON pointer in the hash\n * @param {string} pathFromRoot - The path of `obj` from the schema root\n * @param {$RefParserOptions} [options]\n * @returns {Pointer}\n * @protected\n */\n $Refs.prototype._resolve = function (path, pathFromRoot, options) {\n let absPath = url_1.resolve(this._root$Ref.path, path);\n let withoutHash = url_1.stripHash(absPath);\n let $ref = this._$refs[withoutHash];\n\n if (!$ref) {\n throw ono$5(`Error resolving $ref pointer \"${path}\". \\n\"${withoutHash}\" not found.`);\n }\n\n return $ref.resolve(absPath, options, path, pathFromRoot);\n };\n\n /**\n * Returns the specified {@link $Ref} object, or undefined.\n *\n * @param {string} path - The path being resolved, optionally with a JSON pointer in the hash\n * @returns {$Ref|undefined}\n * @protected\n */\n $Refs.prototype._get$Ref = function (path) {\n path = url_1.resolve(this._root$Ref.path, path);\n let withoutHash = url_1.stripHash(path);\n return this._$refs[withoutHash];\n };\n\n /**\n * Returns the encoded and decoded paths keys of the given object.\n *\n * @param {object} $refs - The object whose keys are URL-encoded paths\n * @param {...string|string[]} [types] - Only return paths of the given types (\"file\", \"http\", etc.)\n * @returns {object[]}\n */\n function getPaths ($refs, types) {\n let paths = Object.keys($refs);\n\n // Filter the paths by type\n types = Array.isArray(types[0]) ? types[0] : Array.prototype.slice.call(types);\n if (types.length > 0 && types[0]) {\n paths = paths.filter((key) => {\n return types.indexOf($refs[key].pathType) !== -1;\n });\n }\n\n // Decode local filesystem paths\n return paths.map((path) => {\n return {\n encoded: path,\n decoded: $refs[path].pathType === \"file\" ? url_1.toFileSystemPath(path, true) : path\n };\n });\n }\n\n /**\n * Returns the given plugins as an array, rather than an object map.\n * All other methods in this module expect an array of plugins rather than an object map.\n *\n * @param {object} plugins - A map of plugin objects\n * @return {object[]}\n */\n var all = function (plugins) {\n return Object.keys(plugins)\n .filter((key) => {\n return typeof plugins[key] === \"object\";\n })\n .map((key) => {\n plugins[key].name = key;\n return plugins[key];\n });\n };\n\n /**\n * Filters the given plugins, returning only the ones return `true` for the given method.\n *\n * @param {object[]} plugins - An array of plugin objects\n * @param {string} method - The name of the filter method to invoke for each plugin\n * @param {object} file - A file info object, which will be passed to each method\n * @return {object[]}\n */\n var filter = function (plugins, method, file) {\n return plugins\n .filter((plugin) => {\n return !!getResult(plugin, method, file);\n });\n };\n\n /**\n * Sorts the given plugins, in place, by their `order` property.\n *\n * @param {object[]} plugins - An array of plugin objects\n * @returns {object[]}\n */\n var sort = function (plugins) {\n for (let plugin of plugins) {\n plugin.order = plugin.order || Number.MAX_SAFE_INTEGER;\n }\n\n return plugins.sort((a, b) => { return a.order - b.order; });\n };\n\n /**\n * Runs the specified method of the given plugins, in order, until one of them returns a successful result.\n * Each method can return a synchronous value, a Promise, or call an error-first callback.\n * If the promise resolves successfully, or the callback is called without an error, then the result\n * is immediately returned and no further plugins are called.\n * If the promise rejects, or the callback is called with an error, then the next plugin is called.\n * If ALL plugins fail, then the last error is thrown.\n *\n * @param {object[]} plugins - An array of plugin objects\n * @param {string} method - The name of the method to invoke for each plugin\n * @param {object} file - A file info object, which will be passed to each method\n * @returns {Promise}\n */\n var run = function (plugins, method, file, $refs) {\n let plugin, lastError, index = 0;\n\n return new Promise(((resolve, reject) => {\n runNextPlugin();\n\n function runNextPlugin () {\n plugin = plugins[index++];\n if (!plugin) {\n // There are no more functions, so re-throw the last error\n return reject(lastError);\n }\n\n try {\n // console.log(' %s', plugin.name);\n let result = getResult(plugin, method, file, callback, $refs);\n if (result && typeof result.then === \"function\") {\n // A promise was returned\n result.then(onSuccess, onError);\n }\n else if (result !== undefined) {\n // A synchronous result was returned\n onSuccess(result);\n }\n else if (index === plugins.length) {\n throw new Error(\"No promise has been returned or callback has been called.\");\n }\n }\n catch (e) {\n onError(e);\n }\n }\n\n function callback (err, result) {\n if (err) {\n onError(err);\n }\n else {\n onSuccess(result);\n }\n }\n\n function onSuccess (result) {\n // console.log(' success');\n resolve({\n plugin,\n result\n });\n }\n\n function onError (error) {\n // console.log(' %s', err.message || err);\n lastError = {\n plugin,\n error,\n };\n runNextPlugin();\n }\n }));\n };\n\n /**\n * Returns the value of the given property.\n * If the property is a function, then the result of the function is returned.\n * If the value is a RegExp, then it will be tested against the file URL.\n * If the value is an aray, then it will be compared against the file extension.\n *\n * @param {object} obj - The object whose property/method is called\n * @param {string} prop - The name of the property/method to invoke\n * @param {object} file - A file info object, which will be passed to the method\n * @param {function} [callback] - A callback function, which will be passed to the method\n * @returns {*}\n */\n function getResult (obj, prop, file, callback, $refs) {\n let value = obj[prop];\n\n if (typeof value === \"function\") {\n return value.apply(obj, [file, callback, $refs]);\n }\n\n if (!callback) {\n // The synchronous plugin functions (canParse and canRead)\n // allow a \"shorthand\" syntax, where the user can match\n // files by RegExp or by file extension.\n if (value instanceof RegExp) {\n return value.test(file.url);\n }\n else if (typeof value === \"string\") {\n return value === file.extension;\n }\n else if (Array.isArray(value)) {\n return value.indexOf(file.extension) !== -1;\n }\n }\n\n return value;\n }\n\n var plugins = {\n all: all,\n filter: filter,\n sort: sort,\n run: run\n };\n\n const { ono: ono$4 } = require$$1;\n\n\n const { ResolverError: ResolverError$3, ParserError: ParserError$5, UnmatchedParserError: UnmatchedParserError$1, UnmatchedResolverError: UnmatchedResolverError$1, isHandledError: isHandledError$2 } = errors;\n\n var parse_1 = parse$5;\n\n /**\n * Reads and parses the specified file path or URL.\n *\n * @param {string} path - This path MUST already be resolved, since `read` doesn't know the resolution context\n * @param {$Refs} $refs\n * @param {$RefParserOptions} options\n *\n * @returns {Promise}\n * The promise resolves with the parsed file contents, NOT the raw (Buffer) contents.\n */\n async function parse$5 (path, $refs, options) {\n // Remove the URL fragment, if any\n path = url_1.stripHash(path);\n\n // Add a new $Ref for this file, even though we don't have the value yet.\n // This ensures that we don't simultaneously read & parse the same file multiple times\n let $ref = $refs._add(path);\n\n // This \"file object\" will be passed to all resolvers and parsers.\n let file = {\n url: path,\n extension: url_1.getExtension(path),\n };\n\n // Read the file and then parse the data\n try {\n const resolver = await readFile(file, options, $refs);\n $ref.pathType = resolver.plugin.name;\n file.data = resolver.result;\n\n const parser = await parseFile(file, options, $refs);\n $ref.value = parser.result;\n\n return parser.result;\n }\n catch (err) {\n if (isHandledError$2(err)) {\n $ref.value = err;\n }\n\n throw err;\n }\n }\n\n /**\n * Reads the given file, using the configured resolver plugins\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @param {$RefParserOptions} options\n *\n * @returns {Promise}\n * The promise resolves with the raw file contents and the resolver that was used.\n */\n function readFile (file, options, $refs) {\n return new Promise(((resolve, reject) => {\n // console.log('Reading %s', file.url);\n\n // Find the resolvers that can read this file\n let resolvers = plugins.all(options.resolve);\n resolvers = plugins.filter(resolvers, \"canRead\", file);\n\n // Run the resolvers, in order, until one of them succeeds\n plugins.sort(resolvers);\n plugins.run(resolvers, \"read\", file, $refs)\n .then(resolve, onError);\n\n function onError (err) {\n if (!err && options.continueOnError) {\n // No resolver could be matched\n reject(new UnmatchedResolverError$1(file.url));\n }\n else if (!err || !(\"error\" in err)) {\n // Throw a generic, friendly error.\n reject(ono$4.syntax(`Unable to resolve $ref pointer \"${file.url}\"`));\n }\n // Throw the original error, if it's one of our own (user-friendly) errors.\n else if (err.error instanceof ResolverError$3) {\n reject(err.error);\n }\n else {\n reject(new ResolverError$3(err, file.url));\n }\n }\n }));\n }\n\n /**\n * Parses the given file's contents, using the configured parser plugins.\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver\n * @param {$RefParserOptions} options\n *\n * @returns {Promise}\n * The promise resolves with the parsed file contents and the parser that was used.\n */\n function parseFile (file, options, $refs) {\n return new Promise(((resolve, reject) => {\n // console.log('Parsing %s', file.url);\n\n // Find the parsers that can read this file type.\n // If none of the parsers are an exact match for this file, then we'll try ALL of them.\n // This handles situations where the file IS a supported type, just with an unknown extension.\n let allParsers = plugins.all(options.parse);\n let filteredParsers = plugins.filter(allParsers, \"canParse\", file);\n let parsers = filteredParsers.length > 0 ? filteredParsers : allParsers;\n\n // Run the parsers, in order, until one of them succeeds\n plugins.sort(parsers);\n plugins.run(parsers, \"parse\", file, $refs)\n .then(onParsed, onError);\n\n function onParsed (parser) {\n if (!parser.plugin.allowEmpty && isEmpty(parser.result)) {\n reject(ono$4.syntax(`Error parsing \"${file.url}\" as ${parser.plugin.name}. \\nParsed value is empty`));\n }\n else {\n resolve(parser);\n }\n }\n\n function onError (err) {\n if (!err && options.continueOnError) {\n // No resolver could be matched\n reject(new UnmatchedParserError$1(file.url));\n }\n else if (!err || !(\"error\" in err)) {\n reject(ono$4.syntax(`Unable to parse ${file.url}`));\n }\n else if (err.error instanceof ParserError$5) {\n reject(err.error);\n }\n else {\n reject(new ParserError$5(err.error.message, file.url));\n }\n }\n }));\n }\n\n /**\n * Determines whether the parsed value is \"empty\".\n *\n * @param {*} value\n * @returns {boolean}\n */\n function isEmpty (value) {\n return value === undefined ||\n (typeof value === \"object\" && Object.keys(value).length === 0) ||\n (typeof value === \"string\" && value.trim().length === 0) ||\n (Buffer$1.isBuffer(value) && value.length === 0);\n }\n\n const { ParserError: ParserError$4 } = errors;\n\n var json$2 = {\n /**\n * The order that this parser will run, in relation to other parsers.\n *\n * @type {number}\n */\n order: 100,\n\n /**\n * Whether to allow \"empty\" files. This includes zero-byte files, as well as empty JSON objects.\n *\n * @type {boolean}\n */\n allowEmpty: true,\n\n /**\n * Determines whether this parser can parse a given file reference.\n * Parsers that match will be tried, in order, until one successfully parses the file.\n * Parsers that don't match will be skipped, UNLESS none of the parsers match, in which case\n * every parser will be tried.\n *\n * @type {RegExp|string|string[]|function}\n */\n canParse: \".json\",\n\n /**\n * Parses the given file as JSON\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver\n * @returns {Promise}\n */\n async parse (file) { // eslint-disable-line require-await\n let data = file.data;\n if (Buffer$1.isBuffer(data)) {\n data = data.toString();\n }\n\n if (typeof data === \"string\") {\n if (data.trim().length === 0) {\n return; // This mirrors the YAML behavior\n }\n else {\n try {\n return JSON.parse(data);\n }\n catch (e) {\n throw new ParserError$4(e.message, file.url);\n }\n }\n }\n else {\n // data is already a JavaScript value (object, array, number, null, NaN, etc.)\n return data;\n }\n }\n };\n\n function isNothing$1(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n }\n\n\n function isObject$4(subject) {\n return (typeof subject === 'object') && (subject !== null);\n }\n\n\n function toArray$1(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing$1(sequence)) return [];\n\n return [ sequence ];\n }\n\n\n function extend$1(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n\n function repeat$1(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n }\n\n\n function isNegativeZero$1(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n }\n\n\n var isNothing_1$1 = isNothing$1;\n var isObject_1$2 = isObject$4;\n var toArray_1$1 = toArray$1;\n var repeat_1$1 = repeat$1;\n var isNegativeZero_1$1 = isNegativeZero$1;\n var extend_1$1 = extend$1;\n\n var common$1 = {\n isNothing: isNothing_1$1,\n isObject: isObject_1$2,\n toArray: toArray_1$1,\n repeat: repeat_1$1,\n isNegativeZero: isNegativeZero_1$1,\n extend: extend_1$1\n };\n\n // YAML error class. http://stackoverflow.com/questions/8458984\n\n function YAMLException$2(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n }\n\n\n // Inherit from Error\n YAMLException$2.prototype = Object.create(Error.prototype);\n YAMLException$2.prototype.constructor = YAMLException$2;\n\n\n YAMLException$2.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n };\n\n\n var exception$1 = YAMLException$2;\n\n function Mark$1(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n }\n\n\n Mark$1.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common$1.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common$1.repeat(' ', indent + this.position - start + head.length) + '^';\n };\n\n\n Mark$1.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n };\n\n\n var mark$1 = Mark$1;\n\n var TYPE_CONSTRUCTOR_OPTIONS$1 = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n ];\n\n var YAML_NODE_KINDS$1 = [\n 'scalar',\n 'sequence',\n 'mapping'\n ];\n\n function compileStyleAliases$1(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n }\n\n function Type$2(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS$1.indexOf(name) === -1) {\n throw new exception$1('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases$1(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS$1.indexOf(this.kind) === -1) {\n throw new exception$1('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n }\n\n var type$2 = Type$2;\n\n /*eslint-disable max-len*/\n\n\n\n\n\n\n function compileList$1(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList$1(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n }\n\n\n function compileMap$1(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n }\n\n\n function Schema$3(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new exception$1('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList$1(this, 'implicit', []);\n this.compiledExplicit = compileList$1(this, 'explicit', []);\n this.compiledTypeMap = compileMap$1(this.compiledImplicit, this.compiledExplicit);\n }\n\n\n Schema$3.DEFAULT = null;\n\n\n Schema$3.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema$3.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new exception$1('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common$1.toArray(schemas);\n types = common$1.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema$3; })) {\n throw new exception$1('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof type$2; })) {\n throw new exception$1('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema$3({\n include: schemas,\n explicit: types\n });\n };\n\n\n var schema$5 = Schema$3;\n\n var str$1 = new type$2('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n });\n\n var seq$1 = new type$2('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n });\n\n var map$1 = new type$2('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n });\n\n var failsafe$1 = new schema$5({\n explicit: [\n str$1,\n seq$1,\n map$1\n ]\n });\n\n function resolveYamlNull$1(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n }\n\n function constructYamlNull$1() {\n return null;\n }\n\n function isNull$2(object) {\n return object === null;\n }\n\n var _null$1 = new type$2('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull$1,\n construct: constructYamlNull$1,\n predicate: isNull$2,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n });\n\n function resolveYamlBoolean$1(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n }\n\n function constructYamlBoolean$1(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n }\n\n function isBoolean$1(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n }\n\n var bool$1 = new type$2('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean$1,\n construct: constructYamlBoolean$1,\n predicate: isBoolean$1,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n });\n\n function isHexCode$1(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n }\n\n function isOctCode$1(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n }\n\n function isDecCode$1(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n }\n\n function resolveYamlInteger$1(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode$1(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode$1(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode$1(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n }\n\n function constructYamlInteger$1(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n }\n\n function isInteger$1(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common$1.isNegativeZero(object));\n }\n\n var int$1 = new type$2('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger$1,\n construct: constructYamlInteger$1,\n predicate: isInteger$1,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n });\n\n var YAML_FLOAT_PATTERN$1 = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\n function resolveYamlFloat$1(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN$1.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n }\n\n function constructYamlFloat$1(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n }\n\n\n var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\n function representYamlFloat$1(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common$1.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n }\n\n function isFloat$1(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common$1.isNegativeZero(object));\n }\n\n var float$1 = new type$2('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat$1,\n construct: constructYamlFloat$1,\n predicate: isFloat$1,\n represent: representYamlFloat$1,\n defaultStyle: 'lowercase'\n });\n\n var json$1 = new schema$5({\n include: [\n failsafe$1\n ],\n implicit: [\n _null$1,\n bool$1,\n int$1,\n float$1\n ]\n });\n\n var core$1 = new schema$5({\n include: [\n json$1\n ]\n });\n\n var YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\n var YAML_TIMESTAMP_REGEXP$1 = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\n function resolveYamlTimestamp$1(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP$1.exec(data) !== null) return true;\n return false;\n }\n\n function constructYamlTimestamp$1(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP$1.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n }\n\n function representYamlTimestamp$1(object /*, style*/) {\n return object.toISOString();\n }\n\n var timestamp$1 = new type$2('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp$1,\n construct: constructYamlTimestamp$1,\n instanceOf: Date,\n represent: representYamlTimestamp$1\n });\n\n function resolveYamlMerge$1(data) {\n return data === '<<' || data === null;\n }\n\n var merge$2 = new type$2('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge$1\n });\n\n /*eslint-disable no-bitwise*/\n\n var NodeBuffer$1;\n\n try {\n // A trick for browserified version, to not include `Buffer` shim\n var _require$1 = commonjsRequire;\n NodeBuffer$1 = _require$1('buffer').Buffer;\n } catch (__) {}\n\n\n\n\n // [ 64, 65, 66 ] -> [ padding, CR, LF ]\n var BASE64_MAP$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\n function resolveYamlBinary$1(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP$1;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n }\n\n function constructYamlBinary$1(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP$1,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer$1) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer$1.from ? NodeBuffer$1.from(result) : new NodeBuffer$1(result);\n }\n\n return result;\n }\n\n function representYamlBinary$1(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP$1;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n }\n\n function isBinary$1(object) {\n return NodeBuffer$1 && NodeBuffer$1.isBuffer(object);\n }\n\n var binary$2 = new type$2('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary$1,\n construct: constructYamlBinary$1,\n predicate: isBinary$1,\n represent: representYamlBinary$1\n });\n\n var _hasOwnProperty$5 = Object.prototype.hasOwnProperty;\n var _toString$5 = Object.prototype.toString;\n\n function resolveYamlOmap$1(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$5.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$5.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n }\n\n function constructYamlOmap$1(data) {\n return data !== null ? data : [];\n }\n\n var omap$1 = new type$2('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap$1,\n construct: constructYamlOmap$1\n });\n\n var _toString$4 = Object.prototype.toString;\n\n function resolveYamlPairs$1(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$4.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n }\n\n function constructYamlPairs$1(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n }\n\n var pairs$1 = new type$2('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs$1,\n construct: constructYamlPairs$1\n });\n\n var _hasOwnProperty$4 = Object.prototype.hasOwnProperty;\n\n function resolveYamlSet$1(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$4.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n }\n\n function constructYamlSet$1(data) {\n return data !== null ? data : {};\n }\n\n var set$1 = new type$2('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet$1,\n construct: constructYamlSet$1\n });\n\n var default_safe$1 = new schema$5({\n include: [\n core$1\n ],\n implicit: [\n timestamp$1,\n merge$2\n ],\n explicit: [\n binary$2,\n omap$1,\n pairs$1,\n set$1\n ]\n });\n\n function resolveJavascriptUndefined$1() {\n return true;\n }\n\n function constructJavascriptUndefined$1() {\n /*eslint-disable no-undefined*/\n return undefined;\n }\n\n function representJavascriptUndefined$1() {\n return '';\n }\n\n function isUndefined$2(object) {\n return typeof object === 'undefined';\n }\n\n var _undefined$1 = new type$2('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined$1,\n construct: constructJavascriptUndefined$1,\n predicate: isUndefined$2,\n represent: representJavascriptUndefined$1\n });\n\n function resolveJavascriptRegExp$1(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n }\n\n function constructJavascriptRegExp$1(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n }\n\n function representJavascriptRegExp$1(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n }\n\n function isRegExp$1(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n }\n\n var regexp$1 = new type$2('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp$1,\n construct: constructJavascriptRegExp$1,\n predicate: isRegExp$1,\n represent: representJavascriptRegExp$1\n });\n\n var esprima;\n\n // Browserified version does not have esprima\n //\n // 1. For node.js just require module as deps\n // 2. For browser try to require mudule via external AMD system.\n // If not found - try to fallback to window.esprima. If not\n // found too - then fail to parse.\n //\n try {\n // workaround to exclude package from browserify list.\n var _require = commonjsRequire;\n esprima = _require('esprima');\n } catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n }\n\n\n\n function resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n }\n\n function constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n }\n\n function representJavascriptFunction(object /*, style*/) {\n return object.toString();\n }\n\n function isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n }\n\n var _function = new type$2('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n });\n\n var default_full$1 = schema$5.DEFAULT = new schema$5({\n include: [\n default_safe$1\n ],\n explicit: [\n _undefined$1,\n regexp$1,\n _function\n ]\n });\n\n /*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\n\n var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\n\n\n var CONTEXT_FLOW_IN = 1;\n var CONTEXT_FLOW_OUT = 2;\n var CONTEXT_BLOCK_IN = 3;\n var CONTEXT_BLOCK_OUT = 4;\n\n\n var CHOMPING_CLIP = 1;\n var CHOMPING_STRIP = 2;\n var CHOMPING_KEEP = 3;\n\n\n var PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n var PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\n var PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\n var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\n var PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\n function _class(obj) { return Object.prototype.toString.call(obj); }\n\n function is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n }\n\n function is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n }\n\n function is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n }\n\n function is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n }\n\n function fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n }\n\n function escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n }\n\n function fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n }\n\n function simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n }\n\n function charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n }\n\n var simpleEscapeCheck = new Array(256); // integer, for fast access\n var simpleEscapeMap = new Array(256);\n for (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n }\n\n\n function State$2(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || default_full$1;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n }\n\n\n function generateError(state, message) {\n return new exception$1(\n message,\n new mark$1(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n }\n\n function throwError(state, message) {\n throw generateError(state, message);\n }\n\n function throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n }\n\n\n var directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$3.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n };\n\n\n function captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n }\n\n function mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common$1.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$3.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n }\n\n function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$3.call(overridableKeys, keyNode) &&\n _hasOwnProperty$3.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n }\n\n function readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n }\n\n function skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n }\n\n function testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n }\n\n function writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common$1.repeat('\\n', count - 1);\n }\n }\n\n\n function readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n }\n\n function readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n }\n\n function readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n }\n\n function readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n }\n\n function readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common$1.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common$1.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common$1.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common$1.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common$1.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n }\n\n function readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n }\n\n function readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n }\n\n function readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$3.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n }\n\n function readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n }\n\n function readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$3.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n }\n\n function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty$3.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n }\n\n function readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$3.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n }\n\n\n function loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$2(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n }\n\n\n function loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n }\n\n\n function load$2(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception$1('expected a single document in the stream, but found more');\n }\n\n\n function safeLoadAll$1(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll$1(input, iterator, common$1.extend({ schema: default_safe$1 }, options));\n }\n\n\n function safeLoad$1(input, options) {\n return load$2(input, common$1.extend({ schema: default_safe$1 }, options));\n }\n\n\n var loadAll_1 = loadAll$1;\n var load_1 = load$2;\n var safeLoadAll_1 = safeLoadAll$1;\n var safeLoad_1 = safeLoad$1;\n\n var loader$1 = {\n loadAll: loadAll_1,\n load: load_1,\n safeLoadAll: safeLoadAll_1,\n safeLoad: safeLoad_1\n };\n\n /*eslint-disable no-use-before-define*/\n\n\n\n\n\n\n var _toString$3 = Object.prototype.toString;\n var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\n var CHAR_TAB$1 = 0x09; /* Tab */\n var CHAR_LINE_FEED$1 = 0x0A; /* LF */\n var CHAR_CARRIAGE_RETURN$1 = 0x0D; /* CR */\n var CHAR_SPACE$1 = 0x20; /* Space */\n var CHAR_EXCLAMATION$1 = 0x21; /* ! */\n var CHAR_DOUBLE_QUOTE$1 = 0x22; /* \" */\n var CHAR_SHARP$1 = 0x23; /* # */\n var CHAR_PERCENT$1 = 0x25; /* % */\n var CHAR_AMPERSAND$1 = 0x26; /* & */\n var CHAR_SINGLE_QUOTE$1 = 0x27; /* ' */\n var CHAR_ASTERISK$1 = 0x2A; /* * */\n var CHAR_COMMA$1 = 0x2C; /* , */\n var CHAR_MINUS$1 = 0x2D; /* - */\n var CHAR_COLON$1 = 0x3A; /* : */\n var CHAR_EQUALS = 0x3D; /* = */\n var CHAR_GREATER_THAN$1 = 0x3E; /* > */\n var CHAR_QUESTION$1 = 0x3F; /* ? */\n var CHAR_COMMERCIAL_AT$1 = 0x40; /* @ */\n var CHAR_LEFT_SQUARE_BRACKET$1 = 0x5B; /* [ */\n var CHAR_RIGHT_SQUARE_BRACKET$1 = 0x5D; /* ] */\n var CHAR_GRAVE_ACCENT$1 = 0x60; /* ` */\n var CHAR_LEFT_CURLY_BRACKET$1 = 0x7B; /* { */\n var CHAR_VERTICAL_LINE$1 = 0x7C; /* | */\n var CHAR_RIGHT_CURLY_BRACKET$1 = 0x7D; /* } */\n\n var ESCAPE_SEQUENCES$1 = {};\n\n ESCAPE_SEQUENCES$1[0x00] = '\\\\0';\n ESCAPE_SEQUENCES$1[0x07] = '\\\\a';\n ESCAPE_SEQUENCES$1[0x08] = '\\\\b';\n ESCAPE_SEQUENCES$1[0x09] = '\\\\t';\n ESCAPE_SEQUENCES$1[0x0A] = '\\\\n';\n ESCAPE_SEQUENCES$1[0x0B] = '\\\\v';\n ESCAPE_SEQUENCES$1[0x0C] = '\\\\f';\n ESCAPE_SEQUENCES$1[0x0D] = '\\\\r';\n ESCAPE_SEQUENCES$1[0x1B] = '\\\\e';\n ESCAPE_SEQUENCES$1[0x22] = '\\\\\"';\n ESCAPE_SEQUENCES$1[0x5C] = '\\\\\\\\';\n ESCAPE_SEQUENCES$1[0x85] = '\\\\N';\n ESCAPE_SEQUENCES$1[0xA0] = '\\\\_';\n ESCAPE_SEQUENCES$1[0x2028] = '\\\\L';\n ESCAPE_SEQUENCES$1[0x2029] = '\\\\P';\n\n var DEPRECATED_BOOLEANS_SYNTAX$1 = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n ];\n\n function compileStyleMap$1(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty$2.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n }\n\n function encodeHex$1(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception$1('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common$1.repeat('0', length - string.length) + string;\n }\n\n function State$1(options) {\n this.schema = options['schema'] || default_full$1;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common$1.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap$1(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n }\n\n // Indents every line in a string. Empty lines (\\n only) are not indented.\n function indentString$1(string, spaces) {\n var ind = common$1.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n }\n\n function generateNextLine$1(state, level) {\n return '\\n' + common$1.repeat(' ', state.indent * level);\n }\n\n function testImplicitResolving$1(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n }\n\n // [33] s-white ::= s-space | s-tab\n function isWhitespace(c) {\n return c === CHAR_SPACE$1 || c === CHAR_TAB$1;\n }\n\n // Returns true if the character can be printed without escaping.\n // From YAML 1.2: \"any allowed characters known to be non-printable\n // should also be escaped. [However,] This isn’t mandatory\"\n // Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\n function isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n }\n\n // [34] ns-char ::= nb-char - s-white\n // [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n // [26] b-char ::= b-line-feed | b-carriage-return\n // [24] b-line-feed ::= #xA /* LF */\n // [25] b-carriage-return ::= #xD /* CR */\n // [3] c-byte-order-mark ::= #xFEFF\n function isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN$1\n && c !== CHAR_LINE_FEED$1;\n }\n\n // Simplified test for values allowed after the first character in plain style.\n function isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA$1\n && c !== CHAR_LEFT_SQUARE_BRACKET$1\n && c !== CHAR_RIGHT_SQUARE_BRACKET$1\n && c !== CHAR_LEFT_CURLY_BRACKET$1\n && c !== CHAR_RIGHT_CURLY_BRACKET$1\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON$1\n && ((c !== CHAR_SHARP$1) || (prev && isNsChar(prev)));\n }\n\n // Simplified test for values allowed as the first character in plain style.\n function isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS$1\n && c !== CHAR_QUESTION$1\n && c !== CHAR_COLON$1\n && c !== CHAR_COMMA$1\n && c !== CHAR_LEFT_SQUARE_BRACKET$1\n && c !== CHAR_RIGHT_SQUARE_BRACKET$1\n && c !== CHAR_LEFT_CURLY_BRACKET$1\n && c !== CHAR_RIGHT_CURLY_BRACKET$1\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP$1\n && c !== CHAR_AMPERSAND$1\n && c !== CHAR_ASTERISK$1\n && c !== CHAR_EXCLAMATION$1\n && c !== CHAR_VERTICAL_LINE$1\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN$1\n && c !== CHAR_SINGLE_QUOTE$1\n && c !== CHAR_DOUBLE_QUOTE$1\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT$1\n && c !== CHAR_COMMERCIAL_AT$1\n && c !== CHAR_GRAVE_ACCENT$1;\n }\n\n // Determines whether block indentation indicator is required.\n function needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n }\n\n var STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n // Determines which scalar styles are possible and returns the preferred style.\n // lineWidth = -1 => no limit.\n // Pre-conditions: str.length > 0.\n // Post-conditions:\n // STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n // STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n // STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\n function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED$1) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n\n // Note: line breaking/folding is implemented for only the folded style.\n // NB. We drop the last trailing newline (if any) of a returned block scalar\n // since the dumper adds its own newline. This always works:\n // • No ending newline => unaffected; already using strip \"-\" chomping.\n // • Ending newline => removed then restored.\n // Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\n function writeScalar$1(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX$1.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving$1(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString$1(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString$1(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception$1('impossible error: invalid scalar style');\n }\n }());\n }\n\n // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\n function blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n }\n\n // (See the note for writeScalar.)\n function dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n }\n\n // Note: a long line without a suitable break point will exceed the width limit.\n // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\n function foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine$1(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine$1(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n }\n\n // Greedy line breaking.\n // Picks the longest line under the limit each time,\n // otherwise settles for the shortest line over the limit.\n // NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\n function foldLine$1(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n }\n\n // Escapes a double-quoted string.\n function escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex$1((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES$1[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex$1(char);\n }\n\n return result;\n }\n\n function writeFlowSequence$1(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode$1(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n }\n\n function writeBlockSequence$1(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode$1(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine$1(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n }\n\n function writeFlowMapping$1(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode$1(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode$1(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n }\n\n function writeBlockMapping$1(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception$1('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine$1(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode$1(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine$1(state, level);\n }\n\n if (!writeNode$1(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n }\n\n function detectType$1(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString$3.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty$2.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception$1('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n }\n\n // Serializes `object` and writes it to global `result`.\n // Returns true on success, or false on invalid object.\n //\n function writeNode$1(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType$1(state, object, false)) {\n detectType$1(state, object, true);\n }\n\n var type = _toString$3.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping$1(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping$1(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence$1(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence$1(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar$1(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new exception$1('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n }\n\n function getDuplicateReferences$1(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode$1(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n }\n\n function inspectNode$1(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode$1(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode$1(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n }\n\n function dump$2(input, options) {\n options = options || {};\n\n var state = new State$1(options);\n\n if (!state.noRefs) getDuplicateReferences$1(input, state);\n\n if (writeNode$1(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n }\n\n function safeDump$2(input, options) {\n return dump$2(input, common$1.extend({ schema: default_safe$1 }, options));\n }\n\n var dump_1$1 = dump$2;\n var safeDump_1$1 = safeDump$2;\n\n var dumper$1 = {\n dump: dump_1$1,\n safeDump: safeDump_1$1\n };\n\n function deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n }\n\n\n var Type$1 = type$2;\n var Schema$2 = schema$5;\n var FAILSAFE_SCHEMA = failsafe$1;\n var JSON_SCHEMA = json$1;\n var CORE_SCHEMA = core$1;\n var DEFAULT_SAFE_SCHEMA = default_safe$1;\n var DEFAULT_FULL_SCHEMA = default_full$1;\n var load$1 = loader$1.load;\n var loadAll = loader$1.loadAll;\n var safeLoad = loader$1.safeLoad;\n var safeLoadAll = loader$1.safeLoadAll;\n var dump$1 = dumper$1.dump;\n var safeDump$1 = dumper$1.safeDump;\n var YAMLException$1 = exception$1;\n\n // Deprecated schema names from JS-YAML 2.0.x\n var MINIMAL_SCHEMA = failsafe$1;\n var SAFE_SCHEMA = default_safe$1;\n var DEFAULT_SCHEMA = default_full$1;\n\n // Deprecated functions from JS-YAML 1.x.x\n var scan = deprecated('scan');\n var parse$4 = deprecated('parse');\n var compose = deprecated('compose');\n var addConstructor = deprecated('addConstructor');\n\n var jsYaml$1 = {\n Type: Type$1,\n Schema: Schema$2,\n FAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n JSON_SCHEMA: JSON_SCHEMA,\n CORE_SCHEMA: CORE_SCHEMA,\n DEFAULT_SAFE_SCHEMA: DEFAULT_SAFE_SCHEMA,\n DEFAULT_FULL_SCHEMA: DEFAULT_FULL_SCHEMA,\n load: load$1,\n loadAll: loadAll,\n safeLoad: safeLoad,\n safeLoadAll: safeLoadAll,\n dump: dump$1,\n safeDump: safeDump$1,\n YAMLException: YAMLException$1,\n MINIMAL_SCHEMA: MINIMAL_SCHEMA,\n SAFE_SCHEMA: SAFE_SCHEMA,\n DEFAULT_SCHEMA: DEFAULT_SCHEMA,\n scan: scan,\n parse: parse$4,\n compose: compose,\n addConstructor: addConstructor\n };\n\n var jsYaml = jsYaml$1;\n\n const { ParserError: ParserError$3 } = errors;\n\n\n var yaml_1 = {\n /**\n * The order that this parser will run, in relation to other parsers.\n *\n * @type {number}\n */\n order: 200,\n\n /**\n * Whether to allow \"empty\" files. This includes zero-byte files, as well as empty JSON objects.\n *\n * @type {boolean}\n */\n allowEmpty: true,\n\n /**\n * Determines whether this parser can parse a given file reference.\n * Parsers that match will be tried, in order, until one successfully parses the file.\n * Parsers that don't match will be skipped, UNLESS none of the parsers match, in which case\n * every parser will be tried.\n *\n * @type {RegExp|string[]|function}\n */\n canParse: [\".yaml\", \".yml\", \".json\"], // JSON is valid YAML\n\n /**\n * Parses the given file as YAML\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver\n * @returns {Promise}\n */\n async parse (file) { // eslint-disable-line require-await\n let data = file.data;\n if (Buffer$1.isBuffer(data)) {\n data = data.toString();\n }\n\n if (typeof data === \"string\") {\n try {\n return jsYaml.safeLoad(data);\n }\n catch (e) {\n throw new ParserError$3(e.message, file.url);\n }\n }\n else {\n // data is already a JavaScript value (object, array, number, null, NaN, etc.)\n return data;\n }\n }\n };\n\n const { ParserError: ParserError$2 } = errors;\n\n let TEXT_REGEXP = /\\.(txt|htm|html|md|xml|js|min|map|css|scss|less|svg)$/i;\n\n var text = {\n /**\n * The order that this parser will run, in relation to other parsers.\n *\n * @type {number}\n */\n order: 300,\n\n /**\n * Whether to allow \"empty\" files (zero bytes).\n *\n * @type {boolean}\n */\n allowEmpty: true,\n\n /**\n * The encoding that the text is expected to be in.\n *\n * @type {string}\n */\n encoding: \"utf8\",\n\n /**\n * Determines whether this parser can parse a given file reference.\n * Parsers that return true will be tried, in order, until one successfully parses the file.\n * Parsers that return false will be skipped, UNLESS all parsers returned false, in which case\n * every parser will be tried.\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver\n * @returns {boolean}\n */\n canParse (file) {\n // Use this parser if the file is a string or Buffer, and has a known text-based extension\n return (typeof file.data === \"string\" || Buffer$1.isBuffer(file.data)) && TEXT_REGEXP.test(file.url);\n },\n\n /**\n * Parses the given file as text\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver\n * @returns {string}\n */\n parse (file) {\n if (typeof file.data === \"string\") {\n return file.data;\n }\n else if (Buffer$1.isBuffer(file.data)) {\n return file.data.toString(this.encoding);\n }\n else {\n throw new ParserError$2(\"data is not text\", file.url);\n }\n }\n };\n\n let BINARY_REGEXP = /\\.(jpeg|jpg|gif|png|bmp|ico)$/i;\n\n var binary$1 = {\n /**\n * The order that this parser will run, in relation to other parsers.\n *\n * @type {number}\n */\n order: 400,\n\n /**\n * Whether to allow \"empty\" files (zero bytes).\n *\n * @type {boolean}\n */\n allowEmpty: true,\n\n /**\n * Determines whether this parser can parse a given file reference.\n * Parsers that return true will be tried, in order, until one successfully parses the file.\n * Parsers that return false will be skipped, UNLESS all parsers returned false, in which case\n * every parser will be tried.\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver\n * @returns {boolean}\n */\n canParse (file) {\n // Use this parser if the file is a Buffer, and has a known binary extension\n return Buffer$1.isBuffer(file.data) && BINARY_REGEXP.test(file.url);\n },\n\n /**\n * Parses the given data as a Buffer (byte array).\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver\n * @returns {Buffer}\n */\n parse (file) {\n if (Buffer$1.isBuffer(file.data)) {\n return file.data;\n }\n else {\n // This will reject if data is anything other than a string or typed array\n return Buffer$1.from(file.data);\n }\n }\n };\n\n var empty = {};\n\n var empty$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': empty\n });\n\n var fs = /*@__PURE__*/getAugmentedNamespace(empty$1);\n\n const { ono: ono$3 } = require$$1;\n\n const { ResolverError: ResolverError$2 } = errors;\n\n var file = {\n /**\n * The order that this resolver will run, in relation to other resolvers.\n *\n * @type {number}\n */\n order: 100,\n\n /**\n * Determines whether this resolver can read a given file reference.\n * Resolvers that return true will be tried, in order, until one successfully resolves the file.\n * Resolvers that return false will not be given a chance to resolve the file.\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @returns {boolean}\n */\n canRead (file) {\n return url_1.isFileSystemPath(file.url);\n },\n\n /**\n * Reads the given file and returns its raw contents as a Buffer.\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @returns {Promise}\n */\n read (file) {\n return new Promise(((resolve, reject) => {\n let path;\n try {\n path = url_1.toFileSystemPath(file.url);\n }\n catch (err) {\n reject(new ResolverError$2(ono$3.uri(err, `Malformed URI: ${file.url}`), file.url));\n }\n\n // console.log('Opening file: %s', path);\n\n try {\n fs.readFile(path, (err, data) => {\n if (err) {\n reject(new ResolverError$2(ono$3(err, `Error opening file \"${path}\"`), path));\n }\n else {\n resolve(data);\n }\n });\n }\n catch (err) {\n reject(new ResolverError$2(ono$3(err, `Error opening file \"${path}\"`), path));\n }\n }));\n }\n };\n\n var http = /*@__PURE__*/getAugmentedNamespace(http$2);\n\n const { ono: ono$2 } = require$$1;\n\n const { ResolverError: ResolverError$1 } = errors;\n\n var http_1 = {\n /**\n * The order that this resolver will run, in relation to other resolvers.\n *\n * @type {number}\n */\n order: 200,\n\n /**\n * HTTP headers to send when downloading files.\n *\n * @example:\n * {\n * \"User-Agent\": \"JSON Schema $Ref Parser\",\n * Accept: \"application/json\"\n * }\n *\n * @type {object}\n */\n headers: null,\n\n /**\n * HTTP request timeout (in milliseconds).\n *\n * @type {number}\n */\n timeout: 5000, // 5 seconds\n\n /**\n * The maximum number of HTTP redirects to follow.\n * To disable automatic following of redirects, set this to zero.\n *\n * @type {number}\n */\n redirects: 5,\n\n /**\n * The `withCredentials` option of XMLHttpRequest.\n * Set this to `true` if you're downloading files from a CORS-enabled server that requires authentication\n *\n * @type {boolean}\n */\n withCredentials: false,\n\n /**\n * Determines whether this resolver can read a given file reference.\n * Resolvers that return true will be tried in order, until one successfully resolves the file.\n * Resolvers that return false will not be given a chance to resolve the file.\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @returns {boolean}\n */\n canRead (file) {\n return url_1.isHttp(file.url);\n },\n\n /**\n * Reads the given URL and returns its raw contents as a Buffer.\n *\n * @param {object} file - An object containing information about the referenced file\n * @param {string} file.url - The full URL of the referenced file\n * @param {string} file.extension - The lowercased file extension (e.g. \".txt\", \".html\", etc.)\n * @returns {Promise}\n */\n read (file) {\n let u = url_1.parse(file.url);\n\n if (browser$1.browser && !u.protocol) {\n // Use the protocol of the current page\n u.protocol = url_1.parse(location.href).protocol;\n }\n\n return download(u, this);\n }\n };\n\n /**\n * Downloads the given file.\n *\n * @param {Url|string} u - The url to download (can be a parsed {@link Url} object)\n * @param {object} httpOptions - The `options.resolve.http` object\n * @param {number} [redirects] - The redirect URLs that have already been followed\n *\n * @returns {Promise}\n * The promise resolves with the raw downloaded data, or rejects if there is an HTTP error.\n */\n function download (u, httpOptions, redirects) {\n return new Promise(((resolve, reject) => {\n u = url_1.parse(u);\n redirects = redirects || [];\n redirects.push(u.href);\n\n get(u, httpOptions)\n .then((res) => {\n if (res.statusCode >= 400) {\n throw ono$2({ status: res.statusCode }, `HTTP ERROR ${res.statusCode}`);\n }\n else if (res.statusCode >= 300) {\n if (redirects.length > httpOptions.redirects) {\n reject(new ResolverError$1(ono$2({ status: res.statusCode },\n `Error downloading ${redirects[0]}. \\nToo many redirects: \\n ${redirects.join(\" \\n \")}`)));\n }\n else if (!res.headers.location) {\n throw ono$2({ status: res.statusCode }, `HTTP ${res.statusCode} redirect with no location header`);\n }\n else {\n // console.log('HTTP %d redirect %s -> %s', res.statusCode, u.href, res.headers.location);\n let redirectTo = url_1.resolve(u, res.headers.location);\n download(redirectTo, httpOptions, redirects).then(resolve, reject);\n }\n }\n else {\n resolve(res.body || Buffer$1.alloc(0));\n }\n })\n .catch((err) => {\n reject(new ResolverError$1(ono$2(err, `Error downloading ${u.href}`), u.href));\n });\n }));\n }\n\n /**\n * Sends an HTTP GET request.\n *\n * @param {Url} u - A parsed {@link Url} object\n * @param {object} httpOptions - The `options.resolve.http` object\n *\n * @returns {Promise}\n * The promise resolves with the HTTP Response object.\n */\n function get (u, httpOptions) {\n return new Promise(((resolve, reject) => {\n // console.log('GET', u.href);\n\n let protocol = u.protocol === \"https:\" ? http : http;\n let req = protocol.get({\n hostname: u.hostname,\n port: u.port,\n path: u.path,\n auth: u.auth,\n protocol: u.protocol,\n headers: httpOptions.headers || {},\n withCredentials: httpOptions.withCredentials\n });\n\n if (typeof req.setTimeout === \"function\") {\n req.setTimeout(httpOptions.timeout);\n }\n\n req.on(\"timeout\", () => {\n req.abort();\n });\n\n req.on(\"error\", reject);\n\n req.once(\"response\", (res) => {\n res.body = Buffer$1.alloc(0);\n\n res.on(\"data\", (data) => {\n res.body = Buffer$1.concat([res.body, Buffer$1.from(data)]);\n });\n\n res.on(\"error\", reject);\n\n res.on(\"end\", () => {\n resolve(res);\n });\n });\n }));\n }\n\n /* eslint lines-around-comment: [2, {beforeBlockComment: false}] */\n\n\n\n\n\n\n\n\n var options = $RefParserOptions;\n\n /**\n * Options that determine how JSON schemas are parsed, resolved, and dereferenced.\n *\n * @param {object|$RefParserOptions} [options] - Overridden options\n * @constructor\n */\n function $RefParserOptions (options) {\n merge$1(this, $RefParserOptions.defaults);\n merge$1(this, options);\n }\n\n $RefParserOptions.defaults = {\n /**\n * Determines how different types of files will be parsed.\n *\n * You can add additional parsers of your own, replace an existing one with\n * your own implementation, or disable any parser by setting it to false.\n */\n parse: {\n json: json$2,\n yaml: yaml_1,\n text: text,\n binary: binary$1,\n },\n\n /**\n * Determines how JSON References will be resolved.\n *\n * You can add additional resolvers of your own, replace an existing one with\n * your own implementation, or disable any resolver by setting it to false.\n */\n resolve: {\n file: file,\n http: http_1,\n\n /**\n * Determines whether external $ref pointers will be resolved.\n * If this option is disabled, then none of above resolvers will be called.\n * Instead, external $ref pointers will simply be ignored.\n *\n * @type {boolean}\n */\n external: true,\n },\n\n /**\n * By default, JSON Schema $Ref Parser throws the first error it encounters. Setting `continueOnError` to `true`\n * causes it to keep processing as much as possible and then throw a single error that contains all errors\n * that were encountered.\n */\n continueOnError: false,\n\n /**\n * Determines the types of JSON references that are allowed.\n */\n dereference: {\n /**\n * Dereference circular (recursive) JSON references?\n * If false, then a {@link ReferenceError} will be thrown if a circular reference is found.\n * If \"ignore\", then circular references will not be dereferenced.\n *\n * @type {boolean|string}\n */\n circular: true\n },\n };\n\n /**\n * Merges the properties of the source object into the target object.\n *\n * @param {object} target - The object that we're populating\n * @param {?object} source - The options that are being merged\n * @returns {object}\n */\n function merge$1 (target, source) {\n if (isMergeable(source)) {\n let keys = Object.keys(source);\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n let sourceSetting = source[key];\n let targetSetting = target[key];\n\n if (isMergeable(sourceSetting)) {\n // It's a nested object, so merge it recursively\n target[key] = merge$1(targetSetting || {}, sourceSetting);\n }\n else if (sourceSetting !== undefined) {\n // It's a scalar value, function, or array. No merging necessary. Just overwrite the target value.\n target[key] = sourceSetting;\n }\n }\n }\n return target;\n }\n\n /**\n * Determines whether the given value can be merged,\n * or if it is a scalar value that should just override the target value.\n *\n * @param {*} val\n * @returns {Boolean}\n */\n function isMergeable (val) {\n return val &&\n (typeof val === \"object\") &&\n !Array.isArray(val) &&\n !(val instanceof RegExp) &&\n !(val instanceof Date);\n }\n\n var normalizeArgs_1 = normalizeArgs;\n\n /**\n * Normalizes the given arguments, accounting for optional args.\n *\n * @param {Arguments} args\n * @returns {object}\n */\n function normalizeArgs (args) {\n let path, schema, options$1, callback;\n args = Array.prototype.slice.call(args);\n\n if (typeof args[args.length - 1] === \"function\") {\n // The last parameter is a callback function\n callback = args.pop();\n }\n\n if (typeof args[0] === \"string\") {\n // The first parameter is the path\n path = args[0];\n if (typeof args[2] === \"object\") {\n // The second parameter is the schema, and the third parameter is the options\n schema = args[1];\n options$1 = args[2];\n }\n else {\n // The second parameter is the options\n schema = undefined;\n options$1 = args[1];\n }\n }\n else {\n // The first parameter is the schema\n path = \"\";\n schema = args[0];\n options$1 = args[1];\n }\n\n if (!(options$1 instanceof options)) {\n options$1 = new options(options$1);\n }\n\n return {\n path,\n schema,\n options: options$1,\n callback\n };\n }\n\n const { isHandledError: isHandledError$1 } = errors;\n\n var resolveExternal_1 = resolveExternal;\n\n /**\n * Crawls the JSON schema, finds all external JSON references, and resolves their values.\n * This method does not mutate the JSON schema. The resolved values are added to {@link $RefParser#$refs}.\n *\n * NOTE: We only care about EXTERNAL references here. INTERNAL references are only relevant when dereferencing.\n *\n * @param {$RefParser} parser\n * @param {$RefParserOptions} options\n *\n * @returns {Promise}\n * The promise resolves once all JSON references in the schema have been resolved,\n * including nested references that are contained in externally-referenced files.\n */\n function resolveExternal (parser, options) {\n if (!options.resolve.external) {\n // Nothing to resolve, so exit early\n return Promise.resolve();\n }\n\n try {\n // console.log('Resolving $ref pointers in %s', parser.$refs._root$Ref.path);\n let promises = crawl$2(parser.schema, parser.$refs._root$Ref.path + \"#\", parser.$refs, options);\n return Promise.all(promises);\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n\n /**\n * Recursively crawls the given value, and resolves any external JSON references.\n *\n * @param {*} obj - The value to crawl. If it's not an object or array, it will be ignored.\n * @param {string} path - The full path of `obj`, possibly with a JSON Pointer in the hash\n * @param {$Refs} $refs\n * @param {$RefParserOptions} options\n *\n * @returns {Promise[]}\n * Returns an array of promises. There will be one promise for each JSON reference in `obj`.\n * If `obj` does not contain any JSON references, then the array will be empty.\n * If any of the JSON references point to files that contain additional JSON references,\n * then the corresponding promise will internally reference an array of promises.\n */\n function crawl$2 (obj, path, $refs, options) {\n let promises = [];\n\n if (obj && typeof obj === \"object\" && !ArrayBuffer.isView(obj)) {\n if (ref.isExternal$Ref(obj)) {\n promises.push(resolve$Ref(obj, path, $refs, options));\n }\n else {\n for (let key of Object.keys(obj)) {\n let keyPath = pointer.join(path, key);\n let value = obj[key];\n\n if (ref.isExternal$Ref(value)) {\n promises.push(resolve$Ref(value, keyPath, $refs, options));\n }\n else {\n promises = promises.concat(crawl$2(value, keyPath, $refs, options));\n }\n }\n }\n }\n\n return promises;\n }\n\n /**\n * Resolves the given JSON Reference, and then crawls the resulting value.\n *\n * @param {{$ref: string}} $ref - The JSON Reference to resolve\n * @param {string} path - The full path of `$ref`, possibly with a JSON Pointer in the hash\n * @param {$Refs} $refs\n * @param {$RefParserOptions} options\n *\n * @returns {Promise}\n * The promise resolves once all JSON references in the object have been resolved,\n * including nested references that are contained in externally-referenced files.\n */\n async function resolve$Ref ($ref, path, $refs, options) {\n // console.log('Resolving $ref pointer \"%s\" at %s', $ref.$ref, path);\n\n let resolvedPath = url_1.resolve(path, $ref.$ref);\n let withoutHash = url_1.stripHash(resolvedPath);\n\n // Do we already have this $ref?\n $ref = $refs._$refs[withoutHash];\n if ($ref) {\n // We've already parsed this $ref, so use the existing value\n return Promise.resolve($ref.value);\n }\n\n // Parse the $referenced file/url\n try {\n const result = await parse_1(resolvedPath, $refs, options);\n\n // Crawl the parsed value\n // console.log('Resolving $ref pointers in %s', withoutHash);\n let promises = crawl$2(result, withoutHash + \"#\", $refs, options);\n\n return Promise.all(promises);\n }\n catch (err) {\n if (!options.continueOnError || !isHandledError$1(err)) {\n throw err;\n }\n\n if ($refs._$refs[withoutHash]) {\n err.source = url_1.stripHash(path);\n err.path = url_1.safePointerToPath(url_1.getHash(path));\n }\n\n return [];\n }\n }\n\n var bundle_1 = bundle;\n\n /**\n * Bundles all external JSON references into the main JSON schema, thus resulting in a schema that\n * only has *internal* references, not any *external* references.\n * This method mutates the JSON schema object, adding new references and re-mapping existing ones.\n *\n * @param {$RefParser} parser\n * @param {$RefParserOptions} options\n */\n function bundle (parser, options) {\n // console.log('Bundling $ref pointers in %s', parser.$refs._root$Ref.path);\n\n // Build an inventory of all $ref pointers in the JSON Schema\n let inventory = [];\n crawl$1(parser, \"schema\", parser.$refs._root$Ref.path + \"#\", \"#\", 0, inventory, parser.$refs, options);\n\n // Remap all $ref pointers\n remap(inventory);\n }\n\n /**\n * Recursively crawls the given value, and inventories all JSON references.\n *\n * @param {object} parent - The object containing the value to crawl. If the value is not an object or array, it will be ignored.\n * @param {string} key - The property key of `parent` to be crawled\n * @param {string} path - The full path of the property being crawled, possibly with a JSON Pointer in the hash\n * @param {string} pathFromRoot - The path of the property being crawled, from the schema root\n * @param {object[]} inventory - An array of already-inventoried $ref pointers\n * @param {$Refs} $refs\n * @param {$RefParserOptions} options\n */\n function crawl$1 (parent, key, path, pathFromRoot, indirections, inventory, $refs, options) {\n let obj = key === null ? parent : parent[key];\n\n if (obj && typeof obj === \"object\" && !ArrayBuffer.isView(obj)) {\n if (ref.isAllowed$Ref(obj)) {\n inventory$Ref(parent, key, path, pathFromRoot, indirections, inventory, $refs, options);\n }\n else {\n // Crawl the object in a specific order that's optimized for bundling.\n // This is important because it determines how `pathFromRoot` gets built,\n // which later determines which keys get dereferenced and which ones get remapped\n let keys = Object.keys(obj)\n .sort((a, b) => {\n // Most people will expect references to be bundled into the the \"definitions\" property,\n // so we always crawl that property first, if it exists.\n if (a === \"definitions\") {\n return -1;\n }\n else if (b === \"definitions\") {\n return 1;\n }\n else {\n // Otherwise, crawl the keys based on their length.\n // This produces the shortest possible bundled references\n return a.length - b.length;\n }\n });\n\n // eslint-disable-next-line no-shadow\n for (let key of keys) {\n let keyPath = pointer.join(path, key);\n let keyPathFromRoot = pointer.join(pathFromRoot, key);\n let value = obj[key];\n\n if (ref.isAllowed$Ref(value)) {\n inventory$Ref(obj, key, path, keyPathFromRoot, indirections, inventory, $refs, options);\n }\n else {\n crawl$1(obj, key, keyPath, keyPathFromRoot, indirections, inventory, $refs, options);\n }\n }\n }\n }\n }\n\n /**\n * Inventories the given JSON Reference (i.e. records detailed information about it so we can\n * optimize all $refs in the schema), and then crawls the resolved value.\n *\n * @param {object} $refParent - The object that contains a JSON Reference as one of its keys\n * @param {string} $refKey - The key in `$refParent` that is a JSON Reference\n * @param {string} path - The full path of the JSON Reference at `$refKey`, possibly with a JSON Pointer in the hash\n * @param {string} pathFromRoot - The path of the JSON Reference at `$refKey`, from the schema root\n * @param {object[]} inventory - An array of already-inventoried $ref pointers\n * @param {$Refs} $refs\n * @param {$RefParserOptions} options\n */\n function inventory$Ref ($refParent, $refKey, path, pathFromRoot, indirections, inventory, $refs, options) {\n let $ref = $refKey === null ? $refParent : $refParent[$refKey];\n let $refPath = url_1.resolve(path, $ref.$ref);\n let pointer$1 = $refs._resolve($refPath, pathFromRoot, options);\n if (pointer$1 === null) {\n return;\n }\n\n let depth = pointer.parse(pathFromRoot).length;\n let file = url_1.stripHash(pointer$1.path);\n let hash = url_1.getHash(pointer$1.path);\n let external = file !== $refs._root$Ref.path;\n let extended = ref.isExtended$Ref($ref);\n indirections += pointer$1.indirections;\n\n let existingEntry = findInInventory(inventory, $refParent, $refKey);\n if (existingEntry) {\n // This $Ref has already been inventoried, so we don't need to process it again\n if (depth < existingEntry.depth || indirections < existingEntry.indirections) {\n removeFromInventory(inventory, existingEntry);\n }\n else {\n return;\n }\n }\n\n inventory.push({\n $ref, // The JSON Reference (e.g. {$ref: string})\n parent: $refParent, // The object that contains this $ref pointer\n key: $refKey, // The key in `parent` that is the $ref pointer\n pathFromRoot, // The path to the $ref pointer, from the JSON Schema root\n depth, // How far from the JSON Schema root is this $ref pointer?\n file, // The file that the $ref pointer resolves to\n hash, // The hash within `file` that the $ref pointer resolves to\n value: pointer$1.value, // The resolved value of the $ref pointer\n circular: pointer$1.circular, // Is this $ref pointer DIRECTLY circular? (i.e. it references itself)\n extended, // Does this $ref extend its resolved value? (i.e. it has extra properties, in addition to \"$ref\")\n external, // Does this $ref pointer point to a file other than the main JSON Schema file?\n indirections, // The number of indirect references that were traversed to resolve the value\n });\n\n // Recursively crawl the resolved value\n if (!existingEntry) {\n crawl$1(pointer$1.value, null, pointer$1.path, pathFromRoot, indirections + 1, inventory, $refs, options);\n }\n }\n\n /**\n * Re-maps every $ref pointer, so that they're all relative to the root of the JSON Schema.\n * Each referenced value is dereferenced EXACTLY ONCE. All subsequent references to the same\n * value are re-mapped to point to the first reference.\n *\n * @example:\n * {\n * first: { $ref: somefile.json#/some/part },\n * second: { $ref: somefile.json#/another/part },\n * third: { $ref: somefile.json },\n * fourth: { $ref: somefile.json#/some/part/sub/part }\n * }\n *\n * In this example, there are four references to the same file, but since the third reference points\n * to the ENTIRE file, that's the only one we need to dereference. The other three can just be\n * remapped to point inside the third one.\n *\n * On the other hand, if the third reference DIDN'T exist, then the first and second would both need\n * to be dereferenced, since they point to different parts of the file. The fourth reference does NOT\n * need to be dereferenced, because it can be remapped to point inside the first one.\n *\n * @param {object[]} inventory\n */\n function remap (inventory) {\n // Group & sort all the $ref pointers, so they're in the order that we need to dereference/remap them\n inventory.sort((a, b) => {\n if (a.file !== b.file) {\n // Group all the $refs that point to the same file\n return a.file < b.file ? -1 : +1;\n }\n else if (a.hash !== b.hash) {\n // Group all the $refs that point to the same part of the file\n return a.hash < b.hash ? -1 : +1;\n }\n else if (a.circular !== b.circular) {\n // If the $ref points to itself, then sort it higher than other $refs that point to this $ref\n return a.circular ? -1 : +1;\n }\n else if (a.extended !== b.extended) {\n // If the $ref extends the resolved value, then sort it lower than other $refs that don't extend the value\n return a.extended ? +1 : -1;\n }\n else if (a.indirections !== b.indirections) {\n // Sort direct references higher than indirect references\n return a.indirections - b.indirections;\n }\n else if (a.depth !== b.depth) {\n // Sort $refs by how close they are to the JSON Schema root\n return a.depth - b.depth;\n }\n else {\n // Determine how far each $ref is from the \"definitions\" property.\n // Most people will expect references to be bundled into the the \"definitions\" property if possible.\n let aDefinitionsIndex = a.pathFromRoot.lastIndexOf(\"/definitions\");\n let bDefinitionsIndex = b.pathFromRoot.lastIndexOf(\"/definitions\");\n\n if (aDefinitionsIndex !== bDefinitionsIndex) {\n // Give higher priority to the $ref that's closer to the \"definitions\" property\n return bDefinitionsIndex - aDefinitionsIndex;\n }\n else {\n // All else is equal, so use the shorter path, which will produce the shortest possible reference\n return a.pathFromRoot.length - b.pathFromRoot.length;\n }\n }\n });\n\n let file, hash, pathFromRoot;\n for (let entry of inventory) {\n // console.log('Re-mapping $ref pointer \"%s\" at %s', entry.$ref.$ref, entry.pathFromRoot);\n\n if (!entry.external) {\n // This $ref already resolves to the main JSON Schema file\n entry.$ref.$ref = entry.hash;\n }\n else if (entry.file === file && entry.hash === hash) {\n // This $ref points to the same value as the prevous $ref, so remap it to the same path\n entry.$ref.$ref = pathFromRoot;\n }\n else if (entry.file === file && entry.hash.indexOf(hash + \"/\") === 0) {\n // This $ref points to a sub-value of the prevous $ref, so remap it beneath that path\n entry.$ref.$ref = pointer.join(pathFromRoot, pointer.parse(entry.hash.replace(hash, \"#\")));\n }\n else {\n // We've moved to a new file or new hash\n file = entry.file;\n hash = entry.hash;\n pathFromRoot = entry.pathFromRoot;\n\n // This is the first $ref to point to this value, so dereference the value.\n // Any other $refs that point to the same value will point to this $ref instead\n entry.$ref = entry.parent[entry.key] = ref.dereference(entry.$ref, entry.value);\n\n if (entry.circular) {\n // This $ref points to itself\n entry.$ref.$ref = entry.pathFromRoot;\n }\n }\n\n // console.log(' new value: %s', (entry.$ref && entry.$ref.$ref) ? entry.$ref.$ref : '[object Object]');\n }\n }\n\n /**\n * TODO\n */\n function findInInventory (inventory, $refParent, $refKey) {\n for (let i = 0; i < inventory.length; i++) {\n let existingEntry = inventory[i];\n if (existingEntry.parent === $refParent && existingEntry.key === $refKey) {\n return existingEntry;\n }\n }\n }\n\n function removeFromInventory (inventory, entry) {\n let index = inventory.indexOf(entry);\n inventory.splice(index, 1);\n }\n\n const { ono: ono$1 } = require$$1;\n\n\n var dereference_1 = dereference$1;\n\n /**\n * Crawls the JSON schema, finds all JSON references, and dereferences them.\n * This method mutates the JSON schema object, replacing JSON references with their resolved value.\n *\n * @param {$RefParser} parser\n * @param {$RefParserOptions} options\n */\n function dereference$1 (parser, options) {\n // console.log('Dereferencing $ref pointers in %s', parser.$refs._root$Ref.path);\n let dereferenced = crawl(parser.schema, parser.$refs._root$Ref.path, \"#\", [], [], {}, parser.$refs, options);\n parser.$refs.circular = dereferenced.circular;\n parser.schema = dereferenced.value;\n }\n\n /**\n * Recursively crawls the given value, and dereferences any JSON references.\n *\n * @param {*} obj - The value to crawl. If it's not an object or array, it will be ignored.\n * @param {string} path - The full path of `obj`, possibly with a JSON Pointer in the hash\n * @param {string} pathFromRoot - The path of `obj` from the schema root\n * @param {object[]} parents - An array of the parent objects that have already been dereferenced\n * @param {object[]} processedObjects - An array of all the objects that have already been processed\n * @param {object} dereferencedCache - An map of all the dereferenced objects\n * @param {$Refs} $refs\n * @param {$RefParserOptions} options\n * @returns {{value: object, circular: boolean}}\n */\n function crawl (obj, path, pathFromRoot, parents, processedObjects, dereferencedCache, $refs, options) {\n let dereferenced;\n let result = {\n value: obj,\n circular: false\n };\n\n if (options.dereference.circular === \"ignore\" || processedObjects.indexOf(obj) === -1) {\n if (obj && typeof obj === \"object\" && !ArrayBuffer.isView(obj)) {\n parents.push(obj);\n processedObjects.push(obj);\n\n if (ref.isAllowed$Ref(obj, options)) {\n dereferenced = dereference$Ref(obj, path, pathFromRoot, parents, processedObjects, dereferencedCache, $refs, options);\n result.circular = dereferenced.circular;\n result.value = dereferenced.value;\n }\n else {\n for (let key of Object.keys(obj)) {\n let keyPath = pointer.join(path, key);\n let keyPathFromRoot = pointer.join(pathFromRoot, key);\n let value = obj[key];\n let circular = false;\n\n if (ref.isAllowed$Ref(value, options)) {\n dereferenced = dereference$Ref(value, keyPath, keyPathFromRoot, parents, processedObjects, dereferencedCache, $refs, options);\n circular = dereferenced.circular;\n // Avoid pointless mutations; breaks frozen objects to no profit\n if (obj[key] !== dereferenced.value) {\n obj[key] = dereferenced.value;\n }\n }\n else {\n if (parents.indexOf(value) === -1) {\n dereferenced = crawl(value, keyPath, keyPathFromRoot, parents, processedObjects, dereferencedCache, $refs, options);\n circular = dereferenced.circular;\n // Avoid pointless mutations; breaks frozen objects to no profit\n if (obj[key] !== dereferenced.value) {\n obj[key] = dereferenced.value;\n }\n }\n else {\n circular = foundCircularReference(keyPath, $refs, options);\n }\n }\n\n // Set the \"isCircular\" flag if this or any other property is circular\n result.circular = result.circular || circular;\n }\n }\n\n parents.pop();\n }\n }\n\n return result;\n }\n\n /**\n * Dereferences the given JSON Reference, and then crawls the resulting value.\n *\n * @param {{$ref: string}} $ref - The JSON Reference to resolve\n * @param {string} path - The full path of `$ref`, possibly with a JSON Pointer in the hash\n * @param {string} pathFromRoot - The path of `$ref` from the schema root\n * @param {object[]} parents - An array of the parent objects that have already been dereferenced\n * @param {object[]} processedObjects - An array of all the objects that have already been dereferenced\n * @param {object} dereferencedCache - An map of all the dereferenced objects\n * @param {$Refs} $refs\n * @param {$RefParserOptions} options\n * @returns {{value: object, circular: boolean}}\n */\n function dereference$Ref ($ref, path, pathFromRoot, parents, processedObjects, dereferencedCache, $refs, options) {\n // console.log('Dereferencing $ref pointer \"%s\" at %s', $ref.$ref, path);\n\n let $refPath = url_1.resolve(path, $ref.$ref);\n\n if (dereferencedCache[$refPath]) {\n const cache = dereferencedCache[$refPath];\n\n const refKeys = Object.keys($ref);\n if (refKeys.length > 1) {\n const extraKeys = {};\n for (let key of refKeys) {\n if (key !== \"$ref\" && !(key in cache.value)) {\n extraKeys[key] = $ref[key];\n }\n }\n return {\n circular: cache.circular,\n value: Object.assign({}, cache.value, extraKeys),\n };\n }\n\n return cache;\n }\n\n\n let pointer = $refs._resolve($refPath, path, options);\n\n if (pointer === null) {\n return {\n circular: false,\n value: null,\n };\n }\n\n // Check for circular references\n let directCircular = pointer.circular;\n let circular = directCircular || parents.indexOf(pointer.value) !== -1;\n circular && foundCircularReference(path, $refs, options);\n\n // Dereference the JSON reference\n let dereferencedValue = ref.dereference($ref, pointer.value);\n\n // Crawl the dereferenced value (unless it's circular)\n if (!circular) {\n // Determine if the dereferenced value is circular\n let dereferenced = crawl(dereferencedValue, pointer.path, pathFromRoot, parents, processedObjects, dereferencedCache, $refs, options);\n circular = dereferenced.circular;\n dereferencedValue = dereferenced.value;\n }\n\n if (circular && !directCircular && options.dereference.circular === \"ignore\") {\n // The user has chosen to \"ignore\" circular references, so don't change the value\n dereferencedValue = $ref;\n }\n\n if (directCircular) {\n // The pointer is a DIRECT circular reference (i.e. it references itself).\n // So replace the $ref path with the absolute path from the JSON Schema root\n dereferencedValue.$ref = pathFromRoot;\n }\n\n\n const dereferencedObject = {\n circular,\n value: dereferencedValue\n };\n\n // only cache if no extra properties than $ref\n if (Object.keys($ref).length === 1) {\n dereferencedCache[$refPath] = dereferencedObject;\n }\n\n return dereferencedObject;\n }\n\n /**\n * Called when a circular reference is found.\n * It sets the {@link $Refs#circular} flag, and throws an error if options.dereference.circular is false.\n *\n * @param {string} keyPath - The JSON Reference path of the circular reference\n * @param {$Refs} $refs\n * @param {$RefParserOptions} options\n * @returns {boolean} - always returns true, to indicate that a circular reference was found\n */\n function foundCircularReference (keyPath, $refs, options) {\n $refs.circular = true;\n if (!options.dereference.circular) {\n throw ono$1.reference(`Circular $ref pointer found at ${keyPath}`);\n }\n return true;\n }\n\n var next = (commonjsGlobal.process && browser$1.nextTick) || commonjsGlobal.setImmediate || function (f) {\n setTimeout(f, 0);\n };\n\n var callMeMaybe = function maybe (cb, promise) {\n if (cb) {\n promise\n .then(function (result) {\n next(function () { cb(null, result); });\n }, function (err) {\n next(function () { cb(err); });\n });\n return undefined\n }\n else {\n return promise\n }\n };\n\n const { JSONParserError, InvalidPointerError, MissingPointerError, ResolverError, ParserError: ParserError$1, UnmatchedParserError, UnmatchedResolverError, isHandledError, JSONParserErrorGroup } = errors;\n\n const { ono } = require$$1;\n\n var lib$1 = $RefParser;\n var _default = $RefParser;\n var JSONParserError_1 = JSONParserError;\n var InvalidPointerError_1 = InvalidPointerError;\n var MissingPointerError_1 = MissingPointerError;\n var ResolverError_1 = ResolverError;\n var ParserError_1 = ParserError$1;\n var UnmatchedParserError_1 = UnmatchedParserError;\n var UnmatchedResolverError_1 = UnmatchedResolverError;\n\n /**\n * This class parses a JSON schema, builds a map of its JSON references and their resolved values,\n * and provides methods for traversing, manipulating, and dereferencing those references.\n *\n * @constructor\n */\n function $RefParser () {\n /**\n * The parsed (and possibly dereferenced) JSON schema object\n *\n * @type {object}\n * @readonly\n */\n this.schema = null;\n\n /**\n * The resolved JSON references\n *\n * @type {$Refs}\n * @readonly\n */\n this.$refs = new refs();\n }\n\n /**\n * Parses the given JSON schema.\n * This method does not resolve any JSON references.\n * It just reads a single file in JSON or YAML format, and parse it as a JavaScript object.\n *\n * @param {string} [path] - The file path or URL of the JSON schema\n * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`.\n * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed\n * @param {function} [callback] - An error-first callback. The second parameter is the parsed JSON schema object.\n * @returns {Promise} - The returned promise resolves with the parsed JSON schema object.\n */\n $RefParser.parse = function parse (path, schema, options, callback) {\n let Class = this; // eslint-disable-line consistent-this\n let instance = new Class();\n return instance.parse.apply(instance, arguments);\n };\n\n /**\n * Parses the given JSON schema.\n * This method does not resolve any JSON references.\n * It just reads a single file in JSON or YAML format, and parse it as a JavaScript object.\n *\n * @param {string} [path] - The file path or URL of the JSON schema\n * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`.\n * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed\n * @param {function} [callback] - An error-first callback. The second parameter is the parsed JSON schema object.\n * @returns {Promise} - The returned promise resolves with the parsed JSON schema object.\n */\n $RefParser.prototype.parse = async function parse (path, schema, options, callback) {\n let args = normalizeArgs_1(arguments);\n let promise;\n\n if (!args.path && !args.schema) {\n let err = ono(`Expected a file path, URL, or object. Got ${args.path || args.schema}`);\n return callMeMaybe(args.callback, Promise.reject(err));\n }\n\n // Reset everything\n this.schema = null;\n this.$refs = new refs();\n\n // If the path is a filesystem path, then convert it to a URL.\n // NOTE: According to the JSON Reference spec, these should already be URLs,\n // but, in practice, many people use local filesystem paths instead.\n // So we're being generous here and doing the conversion automatically.\n // This is not intended to be a 100% bulletproof solution.\n // If it doesn't work for your use-case, then use a URL instead.\n let pathType = \"http\";\n if (url_1.isFileSystemPath(args.path)) {\n args.path = url_1.fromFileSystemPath(args.path);\n pathType = \"file\";\n }\n\n // Resolve the absolute path of the schema\n args.path = url_1.resolve(url_1.cwd(), args.path);\n\n if (args.schema && typeof args.schema === \"object\") {\n // A schema object was passed-in.\n // So immediately add a new $Ref with the schema object as its value\n let $ref = this.$refs._add(args.path);\n $ref.value = args.schema;\n $ref.pathType = pathType;\n promise = Promise.resolve(args.schema);\n }\n else {\n // Parse the schema file/url\n promise = parse_1(args.path, this.$refs, args.options);\n }\n\n let me = this;\n try {\n let result = await promise;\n\n if (result !== null && typeof result === \"object\" && !Buffer$1.isBuffer(result)) {\n me.schema = result;\n return callMeMaybe(args.callback, Promise.resolve(me.schema));\n }\n else if (args.options.continueOnError) {\n me.schema = null; // it's already set to null at line 79, but let's set it again for the sake of readability\n return callMeMaybe(args.callback, Promise.resolve(me.schema));\n }\n else {\n throw ono.syntax(`\"${me.$refs._root$Ref.path || result}\" is not a valid JSON Schema`);\n }\n }\n catch (err) {\n if (!args.options.continueOnError || !isHandledError(err)) {\n return callMeMaybe(args.callback, Promise.reject(err));\n }\n\n if (this.$refs._$refs[url_1.stripHash(args.path)]) {\n this.$refs._$refs[url_1.stripHash(args.path)].addError(err);\n }\n\n return callMeMaybe(args.callback, Promise.resolve(null));\n }\n };\n\n /**\n * Parses the given JSON schema and resolves any JSON references, including references in\n * externally-referenced files.\n *\n * @param {string} [path] - The file path or URL of the JSON schema\n * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`.\n * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed and resolved\n * @param {function} [callback]\n * - An error-first callback. The second parameter is a {@link $Refs} object containing the resolved JSON references\n *\n * @returns {Promise}\n * The returned promise resolves with a {@link $Refs} object containing the resolved JSON references\n */\n $RefParser.resolve = function resolve (path, schema, options, callback) {\n let Class = this; // eslint-disable-line consistent-this\n let instance = new Class();\n return instance.resolve.apply(instance, arguments);\n };\n\n /**\n * Parses the given JSON schema and resolves any JSON references, including references in\n * externally-referenced files.\n *\n * @param {string} [path] - The file path or URL of the JSON schema\n * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`.\n * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed and resolved\n * @param {function} [callback]\n * - An error-first callback. The second parameter is a {@link $Refs} object containing the resolved JSON references\n *\n * @returns {Promise}\n * The returned promise resolves with a {@link $Refs} object containing the resolved JSON references\n */\n $RefParser.prototype.resolve = async function resolve (path, schema, options, callback) {\n let me = this;\n let args = normalizeArgs_1(arguments);\n\n try {\n await this.parse(args.path, args.schema, args.options);\n await resolveExternal_1(me, args.options);\n finalize(me);\n return callMeMaybe(args.callback, Promise.resolve(me.$refs));\n }\n catch (err) {\n return callMeMaybe(args.callback, Promise.reject(err));\n }\n };\n\n /**\n * Parses the given JSON schema, resolves any JSON references, and bundles all external references\n * into the main JSON schema. This produces a JSON schema that only has *internal* references,\n * not any *external* references.\n *\n * @param {string} [path] - The file path or URL of the JSON schema\n * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`.\n * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed, resolved, and dereferenced\n * @param {function} [callback] - An error-first callback. The second parameter is the bundled JSON schema object\n * @returns {Promise} - The returned promise resolves with the bundled JSON schema object.\n */\n $RefParser.bundle = function bundle (path, schema, options, callback) {\n let Class = this; // eslint-disable-line consistent-this\n let instance = new Class();\n return instance.bundle.apply(instance, arguments);\n };\n\n /**\n * Parses the given JSON schema, resolves any JSON references, and bundles all external references\n * into the main JSON schema. This produces a JSON schema that only has *internal* references,\n * not any *external* references.\n *\n * @param {string} [path] - The file path or URL of the JSON schema\n * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`.\n * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed, resolved, and dereferenced\n * @param {function} [callback] - An error-first callback. The second parameter is the bundled JSON schema object\n * @returns {Promise} - The returned promise resolves with the bundled JSON schema object.\n */\n $RefParser.prototype.bundle = async function bundle (path, schema, options, callback) {\n let me = this;\n let args = normalizeArgs_1(arguments);\n\n try {\n await this.resolve(args.path, args.schema, args.options);\n bundle_1(me, args.options);\n finalize(me);\n return callMeMaybe(args.callback, Promise.resolve(me.schema));\n }\n catch (err) {\n return callMeMaybe(args.callback, Promise.reject(err));\n }\n };\n\n /**\n * Parses the given JSON schema, resolves any JSON references, and dereferences the JSON schema.\n * That is, all JSON references are replaced with their resolved values.\n *\n * @param {string} [path] - The file path or URL of the JSON schema\n * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`.\n * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed, resolved, and dereferenced\n * @param {function} [callback] - An error-first callback. The second parameter is the dereferenced JSON schema object\n * @returns {Promise} - The returned promise resolves with the dereferenced JSON schema object.\n */\n $RefParser.dereference = function dereference (path, schema, options, callback) {\n let Class = this; // eslint-disable-line consistent-this\n let instance = new Class();\n return instance.dereference.apply(instance, arguments);\n };\n\n /**\n * Parses the given JSON schema, resolves any JSON references, and dereferences the JSON schema.\n * That is, all JSON references are replaced with their resolved values.\n *\n * @param {string} [path] - The file path or URL of the JSON schema\n * @param {object} [schema] - A JSON schema object. This object will be used instead of reading from `path`.\n * @param {$RefParserOptions} [options] - Options that determine how the schema is parsed, resolved, and dereferenced\n * @param {function} [callback] - An error-first callback. The second parameter is the dereferenced JSON schema object\n * @returns {Promise} - The returned promise resolves with the dereferenced JSON schema object.\n */\n $RefParser.prototype.dereference = async function dereference (path, schema, options, callback) {\n let me = this;\n let args = normalizeArgs_1(arguments);\n\n try {\n await this.resolve(args.path, args.schema, args.options);\n dereference_1(me, args.options);\n finalize(me);\n return callMeMaybe(args.callback, Promise.resolve(me.schema));\n }\n catch (err) {\n return callMeMaybe(args.callback, Promise.reject(err));\n }\n };\n\n function finalize (parser) {\n const errors = JSONParserErrorGroup.getParserErrors(parser);\n if (errors.length > 0) {\n throw new JSONParserErrorGroup(parser);\n }\n }\n lib$1.default = _default;\n lib$1.JSONParserError = JSONParserError_1;\n lib$1.InvalidPointerError = InvalidPointerError_1;\n lib$1.MissingPointerError = MissingPointerError_1;\n lib$1.ResolverError = ResolverError_1;\n lib$1.ParserError = ParserError_1;\n lib$1.UnmatchedParserError = UnmatchedParserError_1;\n lib$1.UnmatchedResolverError = UnmatchedResolverError_1;\n\n /**\n * Test if a value is a plain object.\n * @param {*} val - A value.\n * @return {boolean} true if `val` is a plain object.\n */\n const isObject$3 = val =>\n val != null && typeof val === 'object' && Array.isArray(val) === false;\n\n /**\n * Apply a JSON merge patch. The origin is *not* modified, but unchanged\n * properties will be recycled.\n * \n * @param {*} origin - The value to patch.\n * @param {*} patch - An [RFC 7396](https://tools.ietf.org/html/rfc7396) patch.\n * @return {*} The patched value.\n */\n function apply(origin, patch) {\n if (!isObject$3(patch)) {\n // If the patch is not an object, it replaces the origin.\n return patch;\n }\n\n const result = !isObject$3(origin)\n ? // Non objects are being replaced.\n {}\n : // Make sure we never modify the origin.\n Object.assign({}, origin);\n\n Object.keys(patch).forEach(key => {\n const patchVal = patch[key];\n if (patchVal === null) {\n delete result[key];\n } else {\n result[key] = apply(result[key], patchVal);\n }\n });\n return result;\n }\n\n var esm = /*#__PURE__*/Object.freeze({\n __proto__: null,\n apply: apply,\n 'default': apply\n });\n\n const ERROR_URL_PREFIX = 'https://github.com/asyncapi/parser-js/';\n\n const buildError = (from, to) => {\n to.type = from.type.startsWith(ERROR_URL_PREFIX) ? from.type : `${ERROR_URL_PREFIX}${from.type}`;\n to.title = from.title;\n if (from.detail) to.detail = from.detail;\n if (from.validationErrors) to.validationErrors = from.validationErrors;\n if (from.parsedJSON) to.parsedJSON = from.parsedJSON;\n if (from.location) to.location = from.location;\n if (from.refs) to.refs = from.refs;\n return to;\n };\n\n /**\n * Represents an error while trying to parse an AsyncAPI document.\n * @alias module:@asyncapi/parser#ParserError\n * @extends Error\n */\n class ParserError extends Error {\n /**\n * Instantiates an error\n * @param {Object} definition\n * @param {String} definition.type The type of the error.\n * @param {String} definition.title The message of the error.\n * @param {String} [definition.detail] A string containing more detailed information about the error.\n * @param {Object} [definition.parsedJSON] The resulting JSON after YAML transformation. Or the JSON object if the this was the initial format.\n * @param {Object[]} [definition.validationErrors] The errors resulting from the validation. For more information, see https://www.npmjs.com/package/better-ajv-errors.\n * @param {String} definition.validationErrors.title A validation error message.\n * @param {String} definition.validationErrors.jsonPointer The path to the field that contains the error. Uses JSON Pointer format.\n * @param {Number} definition.validationErrors.startLine The line where the error starts in the AsyncAPI document.\n * @param {Number} definition.validationErrors.startColumn The column where the error starts in the AsyncAPI document.\n * @param {Number} definition.validationErrors.startOffset The offset (starting from the beginning of the document) where the error starts in the AsyncAPI document.\n * @param {Number} definition.validationErrors.endLine The line where the error ends in the AsyncAPI document.\n * @param {Number} definition.validationErrors.endColumn The column where the error ends in the AsyncAPI document.\n * @param {Number} definition.validationErrors.endOffset The offset (starting from the beginning of the document) where the error ends in the AsyncAPI document.\n * @param {Object} [definition.location] Error location details after trying to parse an invalid JSON or YAML document.\n * @param {Number} definition.location.startLine The line of the YAML/JSON document where the error starts.\n * @param {Number} definition.location.startColumn The column of the YAML/JSON document where the error starts.\n * @param {Number} definition.location.startOffset The offset (starting from the beginning of the document) where the error starts in the YAML/JSON AsyncAPI document.\n * @param {Object[]} [definition.refs] Error details after trying to resolve $ref's.\n * @param {String} definition.refs.title A validation error message.\n * @param {String} definition.refs.jsonPointer The path to the field that contains the error. Uses JSON Pointer format.\n * @param {Number} definition.refs.startLine The line where the error starts in the AsyncAPI document.\n * @param {Number} definition.refs.startColumn The column where the error starts in the AsyncAPI document.\n * @param {Number} definition.refs.startOffset The offset (starting from the beginning of the document) where the error starts in the AsyncAPI document.\n * @param {Number} definition.refs.endLine The line where the error ends in the AsyncAPI document.\n * @param {Number} definition.refs.endColumn The column where the error ends in the AsyncAPI document.\n * @param {Number} definition.refs.endOffset The offset (starting from the beginning of the document) where the error ends in the AsyncAPI document.\n */\n constructor(def) {\n super();\n buildError(def, this);\n this.message = def.title;\n }\n\n /**\n * Returns a JS object representation of the error.\n */\n toJS() {\n return buildError(this, {});\n }\n }\n\n var parserError = ParserError;\n\n var yamlAST$1 = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var Kind;\n (function (Kind) {\n Kind[Kind[\"SCALAR\"] = 0] = \"SCALAR\";\n Kind[Kind[\"MAPPING\"] = 1] = \"MAPPING\";\n Kind[Kind[\"MAP\"] = 2] = \"MAP\";\n Kind[Kind[\"SEQ\"] = 3] = \"SEQ\";\n Kind[Kind[\"ANCHOR_REF\"] = 4] = \"ANCHOR_REF\";\n Kind[Kind[\"INCLUDE_REF\"] = 5] = \"INCLUDE_REF\";\n })(Kind = exports.Kind || (exports.Kind = {}));\n function newMapping(key, value) {\n var end = (value ? value.endPosition : key.endPosition + 1);\n var node = {\n key: key,\n value: value,\n startPosition: key.startPosition,\n endPosition: end,\n kind: Kind.MAPPING,\n parent: null,\n errors: []\n };\n return node;\n }\n exports.newMapping = newMapping;\n function newAnchorRef(key, start, end, value) {\n return {\n errors: [],\n referencesAnchor: key,\n value: value,\n startPosition: start,\n endPosition: end,\n kind: Kind.ANCHOR_REF,\n parent: null\n };\n }\n exports.newAnchorRef = newAnchorRef;\n function newScalar(v) {\n if (v === void 0) { v = \"\"; }\n var result = {\n errors: [],\n startPosition: -1,\n endPosition: -1,\n value: \"\" + v,\n kind: Kind.SCALAR,\n parent: null,\n doubleQuoted: false,\n rawValue: \"\" + v,\n };\n if (typeof v !== \"string\") {\n result.valueObject = v;\n }\n return result;\n }\n exports.newScalar = newScalar;\n function newItems() {\n return {\n errors: [],\n startPosition: -1,\n endPosition: -1,\n items: [],\n kind: Kind.SEQ,\n parent: null\n };\n }\n exports.newItems = newItems;\n function newSeq() {\n return newItems();\n }\n exports.newSeq = newSeq;\n function newMap(mappings) {\n return {\n errors: [],\n startPosition: -1,\n endPosition: -1,\n mappings: mappings ? mappings : [],\n kind: Kind.MAP,\n parent: null\n };\n }\n exports.newMap = newMap;\n //# sourceMappingURL=yamlAST.js.map\n });\n\n function isNothing(subject) {\n return (typeof subject === 'undefined') || (null === subject);\n }\n var isNothing_1 = isNothing;\n function isObject$2(subject) {\n return (typeof subject === 'object') && (null !== subject);\n }\n var isObject_1$1 = isObject$2;\n function toArray(sequence) {\n if (Array.isArray(sequence)) {\n return sequence;\n }\n else if (isNothing(sequence)) {\n return [];\n }\n return [sequence];\n }\n var toArray_1 = toArray;\n function extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n }\n var extend_1 = extend;\n function repeat(string, count) {\n var result = '', cycle;\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n return result;\n }\n var repeat_1 = repeat;\n function isNegativeZero(number) {\n return (0 === number) && (Number.NEGATIVE_INFINITY === 1 / number);\n }\n var isNegativeZero_1 = isNegativeZero;\n\n\n var common = /*#__PURE__*/Object.defineProperty({\n isNothing: isNothing_1,\n isObject: isObject_1$1,\n toArray: toArray_1,\n extend: extend_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1\n }, '__esModule', {value: true});\n\n var YAMLException = (function () {\n function YAMLException(reason, mark, isWarning) {\n if (mark === void 0) { mark = null; }\n if (isWarning === void 0) { isWarning = false; }\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = this.toString(false);\n this.isWarning = isWarning;\n }\n YAMLException.isInstance = function (instance) {\n if (instance != null && instance.getClassIdentifier\n && typeof (instance.getClassIdentifier) == \"function\") {\n for (var _i = 0, _a = instance.getClassIdentifier(); _i < _a.length; _i++) {\n var currentIdentifier = _a[_i];\n if (currentIdentifier == YAMLException.CLASS_IDENTIFIER)\n return true;\n }\n }\n return false;\n };\n YAMLException.prototype.getClassIdentifier = function () {\n var superIdentifiers = [];\n return superIdentifiers.concat(YAMLException.CLASS_IDENTIFIER);\n };\n YAMLException.prototype.toString = function (compact) {\n if (compact === void 0) { compact = false; }\n var result;\n result = 'JS-YAML: ' + (this.reason || '(unknown reason)');\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n return result;\n };\n YAMLException.CLASS_IDENTIFIER = \"yaml-ast-parser.YAMLException\";\n return YAMLException;\n }());\n var exception = YAMLException;\n\n var Mark = (function () {\n function Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n }\n Mark.prototype.getSnippet = function (indent, maxLength) {\n if (indent === void 0) { indent = 0; }\n if (maxLength === void 0) { maxLength = 75; }\n var head, start, tail, end, snippet;\n if (!this.buffer) {\n return null;\n }\n indent = indent || 4;\n maxLength = maxLength || 75;\n head = '';\n start = this.position;\n while (start > 0 && -1 === '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1))) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n tail = '';\n end = this.position;\n while (end < this.buffer.length && -1 === '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end))) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n snippet = this.buffer.slice(start, end);\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n };\n Mark.prototype.toString = function (compact) {\n if (compact === void 0) { compact = true; }\n var snippet, where = '';\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n if (!compact) {\n snippet = this.getSnippet();\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n return where;\n };\n return Mark;\n }());\n var mark = Mark;\n\n var TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n ];\n var YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n ];\n function compileStyleAliases(map) {\n var result = {};\n if (null !== map) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n }\n var Type = (function () {\n function Type(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function (name) {\n if (-1 === TYPE_CONSTRUCTOR_OPTIONS.indexOf(name)) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n if (-1 === YAML_NODE_KINDS.indexOf(this.kind)) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n }\n return Type;\n }());\n var Type_1 = Type;\n\n\n var type$1 = /*#__PURE__*/Object.defineProperty({\n Type: Type_1\n }, '__esModule', {value: true});\n\n function compileList(schema, name, result) {\n var exclude = [];\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag) {\n exclude.push(previousIndex);\n }\n });\n result.push(currentType);\n });\n return result.filter(function (type, index) {\n return -1 === exclude.indexOf(index);\n });\n }\n function compileMap() {\n var result = {}, index, length;\n function collectType(type) {\n result[type.tag] = type;\n }\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n }\n var Schema$1 = (function () {\n function Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n this.implicit.forEach(function (type) {\n if (type.loadKind && 'scalar' !== type.loadKind) {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n }\n Schema.DEFAULT = null;\n Schema.create = function createSchema() {\n var schemas, types;\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n default:\n throw new exception('Wrong number of arguments for Schema.create function');\n }\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new exception('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n if (!types.every(function (type) { return type instanceof type$1.Type; })) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n return new Schema({\n include: schemas,\n explicit: types\n });\n };\n return Schema;\n }());\n var Schema_1 = Schema$1;\n\n\n var schema$4 = /*#__PURE__*/Object.defineProperty({\n Schema: Schema_1\n }, '__esModule', {value: true});\n\n var str = new type$1.Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return null !== data ? data : ''; }\n });\n\n var seq = new type$1.Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return null !== data ? data : []; }\n });\n\n var map = new type$1.Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return null !== data ? data : {}; }\n });\n\n var failsafe = new schema$4.Schema({\n explicit: [\n str,\n seq,\n map\n ]\n });\n\n function resolveYamlNull(data) {\n if (null === data) {\n return true;\n }\n var max = data.length;\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n }\n function constructYamlNull() {\n return null;\n }\n function isNull$1(object) {\n return null === object;\n }\n var _null = new type$1.Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull$1,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n });\n\n function resolveYamlBoolean(data) {\n if (null === data) {\n return false;\n }\n var max = data.length;\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n }\n function constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n }\n function isBoolean(object) {\n return '[object Boolean]' === Object.prototype.toString.call(object);\n }\n var bool = new type$1.Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n });\n\n function isHexCode(c) {\n return ((0x30 <= c) && (c <= 0x39)) ||\n ((0x41 <= c) && (c <= 0x46)) ||\n ((0x61 <= c) && (c <= 0x66));\n }\n function isOctCode(c) {\n return ((0x30 <= c) && (c <= 0x37));\n }\n function isDecCode(c) {\n return ((0x30 <= c) && (c <= 0x39));\n }\n function resolveYamlInteger(data) {\n if (null === data) {\n return false;\n }\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max) {\n return false;\n }\n ch = data[index];\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n if (ch === '0') {\n if (index + 1 === max) {\n return true;\n }\n ch = data[++index];\n if (ch === 'b') {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') {\n continue;\n }\n if (ch !== '0' && ch !== '1') {\n return false;\n }\n hasDigits = true;\n }\n return hasDigits;\n }\n if (ch === 'x') {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') {\n continue;\n }\n if (!isHexCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n return hasDigits;\n }\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') {\n continue;\n }\n if (!isOctCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n return hasDigits;\n }\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') {\n continue;\n }\n if (ch === ':') {\n break;\n }\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits) {\n return false;\n }\n if (ch !== ':') {\n return true;\n }\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n }\n function constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n ch = value[0];\n if (ch === '-' || ch === '+') {\n if (ch === '-') {\n sign = -1;\n }\n value = value.slice(1);\n ch = value[0];\n }\n if ('0' === value) {\n return 0;\n }\n if (ch === '0') {\n if (value[1] === 'b') {\n return sign * parseInt(value.slice(2), 2);\n }\n if (value[1] === 'x') {\n return sign * parseInt(value, 16);\n }\n return sign * parseInt(value, 8);\n }\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n value = 0;\n base = 1;\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n return sign * value;\n }\n return sign * parseInt(value, 10);\n }\n function isInteger(object) {\n return ('[object Number]' === Object.prototype.toString.call(object)) &&\n (0 === object % 1 && !common.isNegativeZero(object));\n }\n var int = new type$1.Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (object) { return '0b' + object.toString(2); },\n octal: function (object) { return '0' + object.toString(8); },\n decimal: function (object) { return object.toString(10); },\n hexadecimal: function (object) { return '0x' + object.toString(16).toUpperCase(); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [2, 'bin'],\n octal: [8, 'oct'],\n decimal: [10, 'dec'],\n hexadecimal: [16, 'hex']\n }\n });\n\n var YAML_FLOAT_PATTERN = new RegExp('^(?:[-+]?(?:[0-9][0-9_]*)\\\\.[0-9_]*(?:[eE][-+][0-9]+)?' +\n '|\\\\.[0-9_]+(?:[eE][-+][0-9]+)?' +\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n '|\\\\.(?:nan|NaN|NAN))$');\n function resolveYamlFloat(data) {\n if (null === data) {\n return false;\n }\n if (!YAML_FLOAT_PATTERN.test(data)) {\n return false;\n }\n return true;\n }\n function constructYamlFloat(data) {\n var value, sign, base, digits;\n value = data.replace(/_/g, '').toLowerCase();\n sign = '-' === value[0] ? -1 : 1;\n digits = [];\n if (0 <= '+-'.indexOf(value[0])) {\n value = value.slice(1);\n }\n if ('.inf' === value) {\n return (1 === sign) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n }\n else if ('.nan' === value) {\n return NaN;\n }\n else if (0 <= value.indexOf(':')) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n value = 0.0;\n base = 1;\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n return sign * value;\n }\n return sign * parseFloat(value, 10);\n }\n function representYamlFloat(object, style) {\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase':\n return '.nan';\n case 'uppercase':\n return '.NAN';\n case 'camelcase':\n return '.NaN';\n }\n }\n else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase':\n return '.inf';\n case 'uppercase':\n return '.INF';\n case 'camelcase':\n return '.Inf';\n }\n }\n else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase':\n return '-.inf';\n case 'uppercase':\n return '-.INF';\n case 'camelcase':\n return '-.Inf';\n }\n }\n else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n return object.toString(10);\n }\n function isFloat(object) {\n return ('[object Number]' === Object.prototype.toString.call(object)) &&\n (0 !== object % 1 || common.isNegativeZero(object));\n }\n var float = new type$1.Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n });\n\n var json = new schema$4.Schema({\n include: [\n failsafe\n ],\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n });\n\n var core = new schema$4.Schema({\n include: [\n json\n ]\n });\n\n var YAML_TIMESTAMP_REGEXP = new RegExp('^([0-9][0-9][0-9][0-9])' +\n '-([0-9][0-9]?)' +\n '-([0-9][0-9]?)' +\n '(?:(?:[Tt]|[ \\\\t]+)' +\n '([0-9][0-9]?)' +\n ':([0-9][0-9])' +\n ':([0-9][0-9])' +\n '(?:\\\\.([0-9]*))?' +\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' +\n '(?::([0-9][0-9]))?))?)?$');\n function resolveYamlTimestamp(data) {\n if (null === data) {\n return false;\n }\n var match;\n match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (null === match) {\n return false;\n }\n return true;\n }\n function constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (null === match) {\n throw new Error('Date resolve error');\n }\n year = +(match[1]);\n month = +(match[2]) - 1;\n day = +(match[3]);\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction = fraction + '0';\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000;\n if ('-' === match[9]) {\n delta = -delta;\n }\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta) {\n date.setTime(date.getTime() - delta);\n }\n return date;\n }\n function representYamlTimestamp(object) {\n return object.toISOString();\n }\n var timestamp = new type$1.Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n });\n\n function resolveYamlMerge(data) {\n return '<<' === data || null === data;\n }\n var merge = new type$1.Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n });\n\n var require$$0$1 = /*@__PURE__*/getAugmentedNamespace(bufferEs6);\n\n var NodeBuffer = require$$0$1.Buffer;\n\n var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n function resolveYamlBinary(data) {\n if (null === data) {\n return false;\n }\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n if (code > 64) {\n continue;\n }\n if (code < 0) {\n return false;\n }\n bitlen += 6;\n }\n return (bitlen % 8) === 0;\n }\n function constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, ''), max = input.length, map = BASE64_MAP, bits = 0, result = [];\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n tailbits = (max % 4) * 6;\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n }\n else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n if (NodeBuffer) {\n return new NodeBuffer(result);\n }\n return result;\n }\n function representYamlBinary(object) {\n var result = '', bits = 0, idx, tail, max = object.length, map = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n }\n else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n return result;\n }\n function isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n }\n var binary = new type$1.Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n });\n\n var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n var _toString$2 = Object.prototype.toString;\n function resolveYamlOmap(data) {\n if (null === data) {\n return true;\n }\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if ('[object Object]' !== _toString$2.call(pair)) {\n return false;\n }\n for (pairKey in pair) {\n if (_hasOwnProperty$1.call(pair, pairKey)) {\n if (!pairHasKey) {\n pairHasKey = true;\n }\n else {\n return false;\n }\n }\n }\n if (!pairHasKey) {\n return false;\n }\n if (-1 === objectKeys.indexOf(pairKey)) {\n objectKeys.push(pairKey);\n }\n else {\n return false;\n }\n }\n return true;\n }\n function constructYamlOmap(data) {\n return null !== data ? data : [];\n }\n var omap = new type$1.Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n });\n\n var _toString$1 = Object.prototype.toString;\n function resolveYamlPairs(data) {\n if (null === data) {\n return true;\n }\n if (data.kind != yamlAST$1.Kind.SEQ) {\n return false;\n }\n var index, length, pair, object = data.items;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if ('[object Object]' !== _toString$1.call(pair)) {\n return false;\n }\n if (!Array.isArray(pair.mappings)) {\n return false;\n }\n if (1 !== pair.mappings.length) {\n return false;\n }\n }\n return true;\n }\n function constructYamlPairs(data) {\n if (null === data || !Array.isArray(data.items)) {\n return [];\n }\n var index, length, result, object = data.items;\n result = yamlAST$1.newItems();\n result.parent = data.parent;\n result.startPosition = data.startPosition;\n result.endPosition = data.endPosition;\n for (index = 0, length = object.length; index < length; index += 1) {\n var pair = object[index];\n var mapping = pair.mappings[0];\n var pairSeq = yamlAST$1.newItems();\n pairSeq.parent = result;\n pairSeq.startPosition = mapping.key.startPosition;\n pairSeq.endPosition = mapping.value.startPosition;\n mapping.key.parent = pairSeq;\n mapping.value.parent = pairSeq;\n pairSeq.items = [mapping.key, mapping.value];\n result.items.push(pairSeq);\n }\n return result;\n }\n var pairs = new type$1.Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n });\n\n function resolveYamlSet(data) {\n if (null === data) {\n return true;\n }\n if (data.kind != yamlAST$1.Kind.MAP) {\n return false;\n }\n return true;\n }\n function constructYamlSet(data) {\n return null !== data ? data : {};\n }\n var set = new type$1.Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n });\n\n var schema$3 = new schema$4.Schema({\n include: [\n core\n ],\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n });\n var default_safe = schema$3;\n\n function resolveJavascriptUndefined() {\n return true;\n }\n function constructJavascriptUndefined() {\n return undefined;\n }\n function representJavascriptUndefined() {\n return '';\n }\n function isUndefined$1(object) {\n return 'undefined' === typeof object;\n }\n var _undefined = new type$1.Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined$1,\n represent: representJavascriptUndefined\n });\n\n function resolveJavascriptRegExp(data) {\n if (null === data) {\n return false;\n }\n if (0 === data.length) {\n return false;\n }\n var regexp = data, tail = /\\/([gim]*)$/.exec(data), modifiers = '';\n if ('/' === regexp[0]) {\n if (tail) {\n modifiers = tail[1];\n }\n if (modifiers.length > 3) {\n return false;\n }\n if (regexp[regexp.length - modifiers.length - 1] !== '/') {\n return false;\n }\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n try {\n var dummy = new RegExp(regexp, modifiers);\n return true;\n }\n catch (error) {\n return false;\n }\n }\n function constructJavascriptRegExp(data) {\n var regexp = data, tail = /\\/([gim]*)$/.exec(data), modifiers = '';\n if ('/' === regexp[0]) {\n if (tail) {\n modifiers = tail[1];\n }\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n return new RegExp(regexp, modifiers);\n }\n function representJavascriptRegExp(object) {\n var result = '/' + object.source + '/';\n if (object.global) {\n result += 'g';\n }\n if (object.multiline) {\n result += 'm';\n }\n if (object.ignoreCase) {\n result += 'i';\n }\n return result;\n }\n function isRegExp(object) {\n return '[object RegExp]' === Object.prototype.toString.call(object);\n }\n var regexp = new type$1.Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n });\n\n var schema$2 = new schema$4.Schema({\n include: [\n default_safe\n ],\n explicit: [\n _undefined,\n regexp\n ]\n });\n schema$4.Schema.DEFAULT = schema$2;\n var default_full = schema$2;\n\n var loader = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", { value: true });\n\n\n\n\n\n var _hasOwnProperty = Object.prototype.hasOwnProperty;\n var CONTEXT_FLOW_IN = 1;\n var CONTEXT_FLOW_OUT = 2;\n var CONTEXT_BLOCK_IN = 3;\n var CONTEXT_BLOCK_OUT = 4;\n var CHOMPING_CLIP = 1;\n var CHOMPING_STRIP = 2;\n var CHOMPING_KEEP = 3;\n var PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n var PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\n var PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\n var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\n var PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n function is_EOL(c) {\n return (c === 0x0A) || (c === 0x0D);\n }\n function is_WHITE_SPACE(c) {\n return (c === 0x09) || (c === 0x20);\n }\n function is_WS_OR_EOL(c) {\n return (c === 0x09) ||\n (c === 0x20) ||\n (c === 0x0A) ||\n (c === 0x0D);\n }\n function is_FLOW_INDICATOR(c) {\n return 0x2C === c ||\n 0x5B === c ||\n 0x5D === c ||\n 0x7B === c ||\n 0x7D === c;\n }\n function fromHexCode(c) {\n var lc;\n if ((0x30 <= c) && (c <= 0x39)) {\n return c - 0x30;\n }\n lc = c | 0x20;\n if ((0x61 <= lc) && (lc <= 0x66)) {\n return lc - 0x61 + 10;\n }\n return -1;\n }\n function escapedHexLen(c) {\n if (c === 0x78) {\n return 2;\n }\n if (c === 0x75) {\n return 4;\n }\n if (c === 0x55) {\n return 8;\n }\n return 0;\n }\n function fromDecimalCode(c) {\n if ((0x30 <= c) && (c <= 0x39)) {\n return c - 0x30;\n }\n return -1;\n }\n function simpleEscapeSequence(c) {\n return (c === 0x30) ? '\\x00' :\n (c === 0x61) ? '\\x07' :\n (c === 0x62) ? '\\x08' :\n (c === 0x74) ? '\\x09' :\n (c === 0x09) ? '\\x09' :\n (c === 0x6E) ? '\\x0A' :\n (c === 0x76) ? '\\x0B' :\n (c === 0x66) ? '\\x0C' :\n (c === 0x72) ? '\\x0D' :\n (c === 0x65) ? '\\x1B' :\n (c === 0x20) ? ' ' :\n (c === 0x22) ? '\\x22' :\n (c === 0x2F) ? '/' :\n (c === 0x5C) ? '\\x5C' :\n (c === 0x4E) ? '\\x85' :\n (c === 0x5F) ? '\\xA0' :\n (c === 0x4C) ? '\\u2028' :\n (c === 0x50) ? '\\u2029' : '';\n }\n function charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n return String.fromCharCode(((c - 0x010000) >> 10) + 0xD800, ((c - 0x010000) & 0x03FF) + 0xDC00);\n }\n var simpleEscapeCheck = new Array(256);\n var simpleEscapeMap = new Array(256);\n var customEscapeCheck = new Array(256);\n var customEscapeMap = new Array(256);\n for (var i = 0; i < 256; i++) {\n customEscapeMap[i] = simpleEscapeMap[i] = simpleEscapeSequence(i);\n simpleEscapeCheck[i] = simpleEscapeMap[i] ? 1 : 0;\n customEscapeCheck[i] = 1;\n if (!simpleEscapeCheck[i]) {\n customEscapeMap[i] = '\\\\' + String.fromCharCode(i);\n }\n }\n var State = (function () {\n function State(input, options) {\n this.errorMap = {};\n this.errors = [];\n this.lines = [];\n this.input = input;\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || default_full;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.allowAnyEscape = options['allowAnyEscape'] || false;\n this.ignoreDuplicateKeys = options['ignoreDuplicateKeys'] || false;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.documents = [];\n }\n return State;\n }());\n function generateError(state, message, isWarning) {\n if (isWarning === void 0) { isWarning = false; }\n return new exception(message, new mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)), isWarning);\n }\n function throwErrorFromPosition(state, position, message, isWarning, toLineEnd) {\n if (isWarning === void 0) { isWarning = false; }\n if (toLineEnd === void 0) { toLineEnd = false; }\n var line = positionToLine(state, position);\n if (!line) {\n return;\n }\n var hash = message + position;\n if (state.errorMap[hash]) {\n return;\n }\n var mark$1 = new mark(state.filename, state.input, position, line.line, (position - line.start));\n if (toLineEnd) {\n mark$1.toLineEnd = true;\n }\n var error = new exception(message, mark$1, isWarning);\n state.errors.push(error);\n }\n function throwError(state, message) {\n var error = generateError(state, message);\n var hash = error.message + error.mark.position;\n if (state.errorMap[hash]) {\n return;\n }\n state.errors.push(error);\n state.errorMap[hash] = 1;\n var or = state.position;\n while (true) {\n if (state.position >= state.input.length - 1) {\n return;\n }\n var c = state.input.charAt(state.position);\n if (c == '\\n') {\n state.position--;\n if (state.position == or) {\n state.position += 1;\n }\n return;\n }\n if (c == '\\r') {\n state.position--;\n if (state.position == or) {\n state.position += 1;\n }\n return;\n }\n state.position++;\n }\n }\n function throwWarning(state, message) {\n var error = generateError(state, message);\n if (state.onWarning) {\n state.onWarning.call(null, error);\n }\n }\n var directiveHandlers = {\n YAML: function handleYamlDirective(state, name, args) {\n var match, major, minor;\n if (null !== state.version) {\n throwError(state, 'duplication of %YAML directive');\n }\n if (1 !== args.length) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (null === match) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (1 !== major) {\n throwError(state, 'found incompatible YAML document (version 1.2 is required)');\n }\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n if (2 !== minor) {\n throwError(state, 'found incompatible YAML document (version 1.2 is required)');\n }\n },\n TAG: function handleTagDirective(state, name, args) {\n var handle, prefix;\n if (2 !== args.length) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n state.tagMap[handle] = prefix;\n }\n };\n function captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n var scalar = state.result;\n if (scalar.startPosition == -1) {\n scalar.startPosition = start;\n }\n if (start <= end) {\n _result = state.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(0x09 === _character ||\n 0x20 <= _character && _character <= 0x10FFFF)) {\n throwError(state, 'expected valid JSON character');\n }\n }\n }\n else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n scalar.value += _result;\n scalar.endPosition = end;\n }\n }\n function storeMappingPair(state, _result, keyTag, keyNode, valueNode) {\n if (keyNode == null) {\n return;\n }\n if (null === _result) {\n _result = {\n startPosition: keyNode.startPosition,\n endPosition: valueNode.endPosition,\n parent: null,\n errors: [],\n mappings: [], kind: yamlAST$1.Kind.MAP\n };\n }\n var mapping = yamlAST$1.newMapping(keyNode, valueNode);\n mapping.parent = _result;\n keyNode.parent = mapping;\n if (valueNode != null) {\n valueNode.parent = mapping;\n }\n !state.ignoreDuplicateKeys && _result.mappings.forEach(function (sibling) {\n if (sibling.key && sibling.key.value === (mapping.key && mapping.key.value)) {\n throwErrorFromPosition(state, mapping.key.startPosition, 'duplicate key');\n throwErrorFromPosition(state, sibling.key.startPosition, 'duplicate key');\n }\n });\n _result.mappings.push(mapping);\n _result.endPosition = valueNode ? valueNode.endPosition : keyNode.endPosition + 1;\n return _result;\n }\n function readLineBreak(state) {\n var ch;\n ch = state.input.charCodeAt(state.position);\n if (0x0A === ch) {\n state.position++;\n }\n else if (0x0D === ch) {\n state.position++;\n if (0x0A === state.input.charCodeAt(state.position)) {\n state.position++;\n }\n }\n else {\n throwError(state, 'a line break is expected');\n }\n state.line += 1;\n state.lineStart = state.position;\n state.lines.push({\n start: state.lineStart,\n line: state.line\n });\n }\n function positionToLine(state, position) {\n var line;\n for (var i = 0; i < state.lines.length; i++) {\n if (state.lines[i].start > position) {\n break;\n }\n line = state.lines[i];\n }\n if (!line) {\n return {\n start: 0,\n line: 0\n };\n }\n return line;\n }\n function skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state.input.charCodeAt(state.position);\n while (0 !== ch) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09) {\n state.errors.push(generateError(state, \"Using tabs can lead to unpredictable results\", true));\n }\n ch = state.input.charCodeAt(++state.position);\n }\n if (allowComments && 0x23 === ch) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A && ch !== 0x0D && 0 !== ch);\n }\n if (is_EOL(ch)) {\n readLineBreak(state);\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n while (0x20 === ch) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n }\n else {\n break;\n }\n }\n if (-1 !== checkIndent && 0 !== lineBreaks && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n return lineBreaks;\n }\n function testDocumentSeparator(state) {\n var _position = state.position, ch;\n ch = state.input.charCodeAt(_position);\n if ((0x2D === ch || 0x2E === ch) &&\n state.input.charCodeAt(_position + 1) === ch &&\n state.input.charCodeAt(_position + 2) === ch) {\n _position += 3;\n ch = state.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n }\n function writeFoldedLines(state, scalar, count) {\n if (1 === count) {\n scalar.value += ' ';\n }\n else if (count > 1) {\n scalar.value += common.repeat('\\n', count - 1);\n }\n }\n function readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;\n var state_result = yamlAST$1.newScalar();\n state_result.plainScalar = true;\n state.result = state_result;\n ch = state.input.charCodeAt(state.position);\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n 0x23 === ch ||\n 0x26 === ch ||\n 0x2A === ch ||\n 0x21 === ch ||\n 0x7C === ch ||\n 0x3E === ch ||\n 0x27 === ch ||\n 0x22 === ch ||\n 0x25 === ch ||\n 0x40 === ch ||\n 0x60 === ch) {\n return false;\n }\n if (0x3F === ch || 0x2D === ch) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state.kind = 'scalar';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n while (0 !== ch) {\n if (0x3A === ch) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n }\n else if (0x23 === ch) {\n preceding = state.input.charCodeAt(state.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n }\n else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n }\n else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state_result, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n ch = state.input.charCodeAt(++state.position);\n if (state.position >= state.input.length) {\n return false;\n }\n }\n captureSegment(state, captureStart, captureEnd, false);\n if (state.result.startPosition != -1) {\n state_result.rawValue = state.input.substring(state_result.startPosition, state_result.endPosition);\n return true;\n }\n state.kind = _kind;\n state.result = _result;\n return false;\n }\n function readSingleQuotedScalar(state, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state.input.charCodeAt(state.position);\n if (0x27 !== ch) {\n return false;\n }\n var scalar = yamlAST$1.newScalar();\n scalar.singleQuoted = true;\n state.kind = 'scalar';\n state.result = scalar;\n scalar.startPosition = state.position;\n state.position++;\n captureStart = captureEnd = state.position;\n while (0 !== (ch = state.input.charCodeAt(state.position))) {\n if (0x27 === ch) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n scalar.endPosition = state.position;\n if (0x27 === ch) {\n captureStart = captureEnd = state.position;\n state.position++;\n }\n else {\n return true;\n }\n }\n else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, scalar, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n }\n else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n }\n else {\n state.position++;\n captureEnd = state.position;\n scalar.endPosition = state.position;\n }\n }\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n }\n function readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (0x22 !== ch) {\n return false;\n }\n state.kind = 'scalar';\n var scalar = yamlAST$1.newScalar();\n scalar.doubleQuoted = true;\n state.result = scalar;\n scalar.startPosition = state.position;\n state.position++;\n captureStart = captureEnd = state.position;\n while (0 !== (ch = state.input.charCodeAt(state.position))) {\n if (0x22 === ch) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n scalar.endPosition = state.position;\n scalar.rawValue = state.input.substring(scalar.startPosition, scalar.endPosition);\n return true;\n }\n else if (0x5C === ch) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n }\n else if (ch < 256 && (state.allowAnyEscape ? customEscapeCheck[ch] : simpleEscapeCheck[ch])) {\n scalar.value += (state.allowAnyEscape ? customEscapeMap[ch] : simpleEscapeMap[ch]);\n state.position++;\n }\n else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n }\n else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n scalar.value += charFromCodepoint(hexResult);\n state.position++;\n }\n else {\n throwError(state, 'unknown escape sequence');\n }\n captureStart = captureEnd = state.position;\n }\n else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, scalar, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n }\n else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n }\n else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n }\n function readFlowCollection(state, nodeIndent) {\n var readNext = true, _line, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, keyNode, keyTag, valueNode, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x5B) {\n terminator = 0x5D;\n isMapping = false;\n _result = yamlAST$1.newItems();\n _result.startPosition = state.position;\n }\n else if (ch === 0x7B) {\n terminator = 0x7D;\n isMapping = true;\n _result = yamlAST$1.newMap();\n _result.startPosition = state.position;\n }\n else {\n return false;\n }\n if (null !== state.anchor) {\n _result.anchorId = state.anchor;\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(++state.position);\n while (0 !== ch) {\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n _result.endPosition = state.position;\n return true;\n }\n else if (!readNext) {\n var p = state.position;\n throwError(state, 'missed comma between flow collection entries');\n state.position = p + 1;\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (0x3F === ch) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if ((isExplicitPair || state.line === _line) && 0x3A === ch) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n if (isMapping) {\n storeMappingPair(state, _result, keyTag, keyNode, valueNode);\n }\n else if (isPair) {\n var mp = storeMappingPair(state, null, keyTag, keyNode, valueNode);\n mp.parent = _result;\n _result.items.push(mp);\n }\n else {\n if (keyNode) {\n keyNode.parent = _result;\n }\n _result.items.push(keyNode);\n }\n _result.endPosition = state.position + 1;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (0x2C === ch) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n }\n else {\n readNext = false;\n }\n }\n throwError(state, 'unexpected end of the stream within a flow collection');\n }\n function readBlockScalar(state, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x7C) {\n folding = false;\n }\n else if (ch === 0x3E) {\n folding = true;\n }\n else {\n return false;\n }\n var sc = yamlAST$1.newScalar();\n state.kind = 'scalar';\n state.result = sc;\n sc.startPosition = state.position;\n while (0 !== ch) {\n ch = state.input.charCodeAt(++state.position);\n if (0x2B === ch || 0x2D === ch) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (0x2B === ch) ? CHOMPING_KEEP : CHOMPING_STRIP;\n }\n else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n }\n else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n }\n else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n }\n else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n }\n else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (is_WHITE_SPACE(ch));\n if (0x23 === ch) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (!is_EOL(ch) && (0 !== ch));\n }\n }\n while (0 !== ch) {\n readLineBreak(state);\n state.lineIndent = 0;\n ch = state.input.charCodeAt(state.position);\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (0x20 === ch)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n sc.value += common.repeat('\\n', emptyLines);\n }\n else if (chomping === CHOMPING_CLIP) {\n if (detectedIndent) {\n sc.value += '\\n';\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n sc.value += common.repeat('\\n', emptyLines + 1);\n }\n else if (atMoreIndented) {\n atMoreIndented = false;\n sc.value += common.repeat('\\n', emptyLines + 1);\n }\n else if (0 === emptyLines) {\n if (detectedIndent) {\n sc.value += ' ';\n }\n }\n else {\n sc.value += common.repeat('\\n', emptyLines);\n }\n }\n else if (detectedIndent) {\n sc.value += common.repeat('\\n', emptyLines + 1);\n }\n else ;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n while (!is_EOL(ch) && (0 !== ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, state.position, false);\n }\n sc.endPosition = state.position;\n var i = state.position - 1;\n while (true) {\n var c = state.input[i];\n if (c == '\\r' || c == '\\n') {\n break;\n }\n if (c != ' ' && c != '\\t') {\n break;\n }\n i--;\n }\n sc.endPosition = i;\n sc.rawValue = state.input.substring(sc.startPosition, sc.endPosition);\n return true;\n }\n function readBlockSequence(state, nodeIndent) {\n var _line, _tag = state.tag, _anchor = state.anchor, _result = yamlAST$1.newItems(), following, detected = false, ch;\n if (null !== state.anchor) {\n _result.anchorId = state.anchor;\n state.anchorMap[state.anchor] = _result;\n }\n _result.startPosition = state.position;\n ch = state.input.charCodeAt(state.position);\n while (0 !== ch) {\n if (0x2D !== ch) {\n break;\n }\n following = state.input.charCodeAt(state.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state.position++;\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.items.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n if (state.result) {\n state.result.parent = _result;\n _result.items.push(state.result);\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if ((state.line === _line || state.lineIndent > nodeIndent) && (0 !== ch)) {\n throwError(state, 'bad indentation of a sequence entry');\n }\n else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n _result.endPosition = state.position;\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n _result.endPosition = state.position;\n return true;\n }\n return false;\n }\n function readBlockMapping(state, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _tag = state.tag, _anchor = state.anchor, _result = yamlAST$1.newMap(), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n _result.startPosition = state.position;\n if (null !== state.anchor) {\n _result.anchorId = state.anchor;\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (0 !== ch) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line;\n if ((0x3F === ch || 0x3A === ch) && is_WS_OR_EOL(following)) {\n if (0x3F === ch) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n }\n else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n }\n else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed');\n }\n state.position += 1;\n ch = following;\n }\n else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (0x3A === ch) {\n ch = state.input.charCodeAt(++state.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n }\n else if (state.position == state.lineStart && testDocumentSeparator(state)) {\n break;\n }\n else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n }\n else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n }\n else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n while (state.position > 0) {\n ch = state.input.charCodeAt(--state.position);\n if (is_EOL(ch)) {\n state.position++;\n break;\n }\n }\n }\n else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n }\n else {\n break;\n }\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n }\n else {\n valueNode = state.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state, _result, keyTag, keyNode, valueNode);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n if (state.lineIndent > nodeIndent && (0 !== ch)) {\n throwError(state, 'bad indentation of a mapping entry');\n }\n else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, keyTag, keyNode, null);\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n return detected;\n }\n function readTagProperty(state) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state.input.charCodeAt(state.position);\n if (0x21 !== ch) {\n return false;\n }\n if (null !== state.tag) {\n throwError(state, 'duplication of a tag property');\n }\n ch = state.input.charCodeAt(++state.position);\n if (0x3C === ch) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n }\n else if (0x21 === ch) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n }\n else {\n tagHandle = '!';\n }\n _position = state.position;\n if (isVerbatim) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (0 !== ch && 0x3E !== ch);\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n }\n else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n }\n else {\n while (0 !== ch && !is_WS_OR_EOL(ch)) {\n if (0x21 === ch) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n isNamed = true;\n _position = state.position + 1;\n }\n else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n ch = state.input.charCodeAt(++state.position);\n }\n tagName = state.input.slice(_position, state.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n if (isVerbatim) {\n state.tag = tagName;\n }\n else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n }\n else if ('!' === tagHandle) {\n state.tag = '!' + tagName;\n }\n else if ('!!' === tagHandle) {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n }\n else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n }\n function readAnchorProperty(state) {\n var _position, ch;\n ch = state.input.charCodeAt(state.position);\n if (0x26 !== ch) {\n return false;\n }\n if (null !== state.anchor) {\n throwError(state, 'duplication of an anchor property');\n }\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (0 !== ch && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n state.anchor = state.input.slice(_position, state.position);\n return true;\n }\n function readAlias(state) {\n var _position, alias; state.length; state.input; var ch;\n ch = state.input.charCodeAt(state.position);\n if (0x2A !== ch) {\n return false;\n }\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (0 !== ch && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position <= _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n state.position = _position + 1;\n }\n alias = state.input.slice(_position, state.position);\n if (!state.anchorMap.hasOwnProperty(alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n if (state.position <= _position) {\n state.position = _position + 1;\n }\n }\n state.result = yamlAST$1.newAnchorRef(alias, _position, state.position, state.anchorMap[alias]);\n skipSeparationSpace(state, true, -1);\n return true;\n }\n function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, type, flowIndent, blockIndent;\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n }\n else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n }\n else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n var tagStart = state.position;\n state.position - state.lineStart;\n if (1 === indentStatus) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n }\n else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n }\n else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (1 === indentStatus || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n }\n else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state.position - state.lineStart;\n if (1 === indentStatus) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n }\n else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n }\n else if (readAlias(state)) {\n hasContent = true;\n if (null !== state.tag || null !== state.anchor) {\n throwError(state, 'alias node should not have any properties');\n }\n }\n else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (null === state.tag) {\n state.tag = '?';\n }\n }\n if (null !== state.anchor) {\n state.anchorMap[state.anchor] = state.result;\n state.result.anchorId = state.anchor;\n }\n }\n }\n else if (0 === indentStatus) {\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n if (null !== state.tag && '!' !== state.tag) {\n if (state.tag == \"!include\") {\n if (!state.result) {\n state.result = yamlAST$1.newScalar();\n state.result.startPosition = state.position;\n state.result.endPosition = state.position;\n throwError(state, \"!include without value\");\n }\n state.result.kind = yamlAST$1.Kind.INCLUDE_REF;\n }\n else if ('?' === state.tag) {\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n var vl = state.result['value'];\n if (type.resolve(vl)) {\n state.result.valueObject = type.construct(state.result['value']);\n state.tag = type.tag;\n if (null !== state.anchor) {\n state.result.anchorId = state.anchor;\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n }\n else if (_hasOwnProperty.call(state.typeMap, state.tag)) {\n type = state.typeMap[state.tag];\n if (null !== state.result && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n if (!type.resolve(state.result)) {\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n }\n else {\n state.result = type.construct(state.result);\n if (null !== state.anchor) {\n state.result.anchorId = state.anchor;\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n else {\n throwErrorFromPosition(state, tagStart, 'unknown tag <' + state.tag + '>', false, true);\n }\n }\n return null !== state.tag || null !== state.anchor || hasContent;\n }\n function readDocument(state) {\n var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n while (0 !== (ch = state.input.charCodeAt(state.position))) {\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if (state.lineIndent > 0 || 0x25 !== ch) {\n break;\n }\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (0 !== ch && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n while (0 !== ch) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (0x23 === ch) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (0 !== ch && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch)) {\n break;\n }\n _position = state.position;\n while (0 !== ch && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n if (0 !== ch) {\n readLineBreak(state);\n }\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n }\n else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n state.position++;\n }\n }\n skipSeparationSpace(state, true, -1);\n if (0 === state.lineIndent &&\n 0x2D === state.input.charCodeAt(state.position) &&\n 0x2D === state.input.charCodeAt(state.position + 1) &&\n 0x2D === state.input.charCodeAt(state.position + 2)) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n state.documents.push(state.result);\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n if (0x2E === state.input.charCodeAt(state.position)) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n }\n else {\n return;\n }\n }\n function loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n var inputLength = input.length;\n if (inputLength !== 0) {\n if (0x0A !== input.charCodeAt(inputLength - 1) &&\n 0x0D !== input.charCodeAt(inputLength - 1)) {\n input += '\\n';\n }\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n var state = new State(input, options);\n state.input += '\\0';\n while (0x20 === state.input.charCodeAt(state.position)) {\n state.lineIndent += 1;\n state.position += 1;\n }\n while (state.position < (state.length - 1)) {\n var q = state.position;\n readDocument(state);\n if (state.position <= q) {\n for (; state.position < state.length - 1; state.position++) {\n var c = state.input.charAt(state.position);\n if (c == '\\n') {\n break;\n }\n }\n }\n }\n var documents = state.documents;\n var docsCount = documents.length;\n if (docsCount > 0) {\n documents[docsCount - 1].endPosition = inputLength;\n }\n for (var _i = 0, documents_1 = documents; _i < documents_1.length; _i++) {\n var x = documents_1[_i];\n x.errors = state.errors;\n if (x.startPosition > x.endPosition) {\n x.startPosition = x.endPosition;\n }\n }\n return documents;\n }\n function loadAll(input, iterator, options) {\n if (options === void 0) { options = {}; }\n var documents = loadDocuments(input, options), index, length;\n for (index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n }\n exports.loadAll = loadAll;\n function load(input, options) {\n if (options === void 0) { options = {}; }\n var documents = loadDocuments(input, options);\n if (0 === documents.length) {\n return undefined;\n }\n else if (1 === documents.length) {\n return documents[0];\n }\n var e = new exception('expected a single document in the stream, but found more');\n e.mark = new mark(\"\", \"\", 0, 0, 0);\n e.mark.position = documents[0].endPosition;\n documents[0].errors.push(e);\n return documents[0];\n }\n exports.load = load;\n function safeLoadAll(input, output, options) {\n if (options === void 0) { options = {}; }\n loadAll(input, output, common.extend({ schema: default_safe }, options));\n }\n exports.safeLoadAll = safeLoadAll;\n function safeLoad(input, options) {\n if (options === void 0) { options = {}; }\n return load(input, common.extend({ schema: default_safe }, options));\n }\n exports.safeLoad = safeLoad;\n module.exports.loadAll = loadAll;\n module.exports.load = load;\n module.exports.safeLoadAll = safeLoadAll;\n module.exports.safeLoad = safeLoad;\n //# sourceMappingURL=loader.js.map\n });\n\n var _toString = Object.prototype.toString;\n var _hasOwnProperty = Object.prototype.hasOwnProperty;\n var CHAR_TAB = 0x09;\n var CHAR_LINE_FEED = 0x0A;\n var CHAR_CARRIAGE_RETURN = 0x0D;\n var CHAR_SPACE = 0x20;\n var CHAR_EXCLAMATION = 0x21;\n var CHAR_DOUBLE_QUOTE = 0x22;\n var CHAR_SHARP = 0x23;\n var CHAR_PERCENT = 0x25;\n var CHAR_AMPERSAND = 0x26;\n var CHAR_SINGLE_QUOTE = 0x27;\n var CHAR_ASTERISK = 0x2A;\n var CHAR_COMMA = 0x2C;\n var CHAR_MINUS = 0x2D;\n var CHAR_COLON = 0x3A;\n var CHAR_GREATER_THAN = 0x3E;\n var CHAR_QUESTION = 0x3F;\n var CHAR_COMMERCIAL_AT = 0x40;\n var CHAR_LEFT_SQUARE_BRACKET = 0x5B;\n var CHAR_RIGHT_SQUARE_BRACKET = 0x5D;\n var CHAR_GRAVE_ACCENT = 0x60;\n var CHAR_LEFT_CURLY_BRACKET = 0x7B;\n var CHAR_VERTICAL_LINE = 0x7C;\n var CHAR_RIGHT_CURLY_BRACKET = 0x7D;\n var ESCAPE_SEQUENCES = {};\n ESCAPE_SEQUENCES[0x00] = '\\\\0';\n ESCAPE_SEQUENCES[0x07] = '\\\\a';\n ESCAPE_SEQUENCES[0x08] = '\\\\b';\n ESCAPE_SEQUENCES[0x09] = '\\\\t';\n ESCAPE_SEQUENCES[0x0A] = '\\\\n';\n ESCAPE_SEQUENCES[0x0B] = '\\\\v';\n ESCAPE_SEQUENCES[0x0C] = '\\\\f';\n ESCAPE_SEQUENCES[0x0D] = '\\\\r';\n ESCAPE_SEQUENCES[0x1B] = '\\\\e';\n ESCAPE_SEQUENCES[0x22] = '\\\\\"';\n ESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\n ESCAPE_SEQUENCES[0x85] = '\\\\N';\n ESCAPE_SEQUENCES[0xA0] = '\\\\_';\n ESCAPE_SEQUENCES[0x2028] = '\\\\L';\n ESCAPE_SEQUENCES[0x2029] = '\\\\P';\n var DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n ];\n function compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n if (null === map) {\n return {};\n }\n result = {};\n keys = Object.keys(map);\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n if ('!!' === tag.slice(0, 2)) {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap[tag];\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n result[tag] = style;\n }\n return result;\n }\n function encodeHex(character) {\n var string, handle, length;\n string = character.toString(16).toUpperCase();\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n }\n else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n }\n else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n }\n else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n }\n function State(options) {\n this.schema = options['schema'] || default_full;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n this.tag = null;\n this.result = '';\n this.duplicates = [];\n this.usedDuplicates = null;\n }\n function indentString(string, spaces) {\n var ind = common.repeat(' ', spaces), position = 0, next = -1, result = '', line, length = string.length;\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n }\n else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n if (line.length && line !== '\\n') {\n result += ind;\n }\n result += line;\n }\n return result;\n }\n function generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n }\n function testImplicitResolving(state, str) {\n var index, length, type;\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n if (type.resolve(str)) {\n return true;\n }\n }\n return false;\n }\n function StringBuilder(source) {\n this.source = source;\n this.result = '';\n this.checkpoint = 0;\n }\n StringBuilder.prototype.takeUpTo = function (position) {\n var er;\n if (position < this.checkpoint) {\n er = new Error('position should be > checkpoint');\n er.position = position;\n er.checkpoint = this.checkpoint;\n throw er;\n }\n this.result += this.source.slice(this.checkpoint, position);\n this.checkpoint = position;\n return this;\n };\n StringBuilder.prototype.escapeChar = function () {\n var character, esc;\n character = this.source.charCodeAt(this.checkpoint);\n esc = ESCAPE_SEQUENCES[character] || encodeHex(character);\n this.result += esc;\n this.checkpoint += 1;\n return this;\n };\n StringBuilder.prototype.finish = function () {\n if (this.source.length > this.checkpoint) {\n this.takeUpTo(this.source.length);\n }\n };\n function writeScalar(state, object, level) {\n var simple, first, spaceWrap, folded, literal, single, double, sawLineFeed, linePosition, longestLine, indent, max, character, position, escapeSeq, hexEsc, previous, lineLength, modifier, trailingLineBreaks, result;\n if (0 === object.length) {\n state.dump = \"''\";\n return;\n }\n if (object.indexOf(\"!include\") == 0) {\n state.dump = \"\" + object;\n return;\n }\n if (object.indexOf(\"!$$$novalue\") == 0) {\n state.dump = \"\";\n return;\n }\n if (-1 !== DEPRECATED_BOOLEANS_SYNTAX.indexOf(object)) {\n state.dump = \"'\" + object + \"'\";\n return;\n }\n simple = true;\n first = object.length ? object.charCodeAt(0) : 0;\n spaceWrap = (CHAR_SPACE === first ||\n CHAR_SPACE === object.charCodeAt(object.length - 1));\n if (CHAR_MINUS === first ||\n CHAR_QUESTION === first ||\n CHAR_COMMERCIAL_AT === first ||\n CHAR_GRAVE_ACCENT === first) {\n simple = false;\n }\n if (spaceWrap) {\n simple = false;\n folded = false;\n literal = false;\n }\n else {\n folded = true;\n literal = true;\n }\n single = true;\n double = new StringBuilder(object);\n sawLineFeed = false;\n linePosition = 0;\n longestLine = 0;\n indent = state.indent * level;\n max = 80;\n if (indent < 40) {\n max -= indent;\n }\n else {\n max = 40;\n }\n for (position = 0; position < object.length; position++) {\n character = object.charCodeAt(position);\n if (simple) {\n if (!simpleChar(character)) {\n simple = false;\n }\n else {\n continue;\n }\n }\n if (single && character === CHAR_SINGLE_QUOTE) {\n single = false;\n }\n escapeSeq = ESCAPE_SEQUENCES[character];\n hexEsc = needsHexEscape(character);\n if (!escapeSeq && !hexEsc) {\n continue;\n }\n if (character !== CHAR_LINE_FEED &&\n character !== CHAR_DOUBLE_QUOTE &&\n character !== CHAR_SINGLE_QUOTE) {\n folded = false;\n literal = false;\n }\n else if (character === CHAR_LINE_FEED) {\n sawLineFeed = true;\n single = false;\n if (position > 0) {\n previous = object.charCodeAt(position - 1);\n if (previous === CHAR_SPACE) {\n literal = false;\n folded = false;\n }\n }\n if (folded) {\n lineLength = position - linePosition;\n linePosition = position;\n if (lineLength > longestLine) {\n longestLine = lineLength;\n }\n }\n }\n if (character !== CHAR_DOUBLE_QUOTE) {\n single = false;\n }\n double.takeUpTo(position);\n double.escapeChar();\n }\n if (simple && testImplicitResolving(state, object)) {\n simple = false;\n }\n modifier = '';\n if (folded || literal) {\n trailingLineBreaks = 0;\n if (object.charCodeAt(object.length - 1) === CHAR_LINE_FEED) {\n trailingLineBreaks += 1;\n if (object.charCodeAt(object.length - 2) === CHAR_LINE_FEED) {\n trailingLineBreaks += 1;\n }\n }\n if (trailingLineBreaks === 0) {\n modifier = '-';\n }\n else if (trailingLineBreaks === 2) {\n modifier = '+';\n }\n }\n if (literal && longestLine < max) {\n folded = false;\n }\n if (!sawLineFeed) {\n literal = false;\n }\n if (simple) {\n state.dump = object;\n }\n else if (single) {\n state.dump = '\\'' + object + '\\'';\n }\n else if (folded) {\n result = fold(object, max);\n state.dump = '>' + modifier + '\\n' + indentString(result, indent);\n }\n else if (literal) {\n if (!modifier) {\n object = object.replace(/\\n$/, '');\n }\n state.dump = '|' + modifier + '\\n' + indentString(object, indent);\n }\n else if (double) {\n double.finish();\n state.dump = '\"' + double.result + '\"';\n }\n else {\n throw new Error('Failed to dump scalar value');\n }\n return;\n }\n function fold(object, max) {\n var result = '', position = 0, length = object.length, trailing = /\\n+$/.exec(object), newLine;\n if (trailing) {\n length = trailing.index + 1;\n }\n while (position < length) {\n newLine = object.indexOf('\\n', position);\n if (newLine > length || newLine === -1) {\n if (result) {\n result += '\\n\\n';\n }\n result += foldLine(object.slice(position, length), max);\n position = length;\n }\n else {\n if (result) {\n result += '\\n\\n';\n }\n result += foldLine(object.slice(position, newLine), max);\n position = newLine + 1;\n }\n }\n if (trailing && trailing[0] !== '\\n') {\n result += trailing[0];\n }\n return result;\n }\n function foldLine(line, max) {\n if (line === '') {\n return line;\n }\n var foldRe = /[^\\s] [^\\s]/g, result = '', prevMatch = 0, foldStart = 0, match = foldRe.exec(line), index, foldEnd, folded;\n while (match) {\n index = match.index;\n if (index - foldStart > max) {\n if (prevMatch !== foldStart) {\n foldEnd = prevMatch;\n }\n else {\n foldEnd = index;\n }\n if (result) {\n result += '\\n';\n }\n folded = line.slice(foldStart, foldEnd);\n result += folded;\n foldStart = foldEnd + 1;\n }\n prevMatch = index + 1;\n match = foldRe.exec(line);\n }\n if (result) {\n result += '\\n';\n }\n if (foldStart !== prevMatch && line.length - foldStart > max) {\n result += line.slice(foldStart, prevMatch) + '\\n' +\n line.slice(prevMatch + 1);\n }\n else {\n result += line.slice(foldStart);\n }\n return result;\n }\n function simpleChar(character) {\n return CHAR_TAB !== character &&\n CHAR_LINE_FEED !== character &&\n CHAR_CARRIAGE_RETURN !== character &&\n CHAR_COMMA !== character &&\n CHAR_LEFT_SQUARE_BRACKET !== character &&\n CHAR_RIGHT_SQUARE_BRACKET !== character &&\n CHAR_LEFT_CURLY_BRACKET !== character &&\n CHAR_RIGHT_CURLY_BRACKET !== character &&\n CHAR_SHARP !== character &&\n CHAR_AMPERSAND !== character &&\n CHAR_ASTERISK !== character &&\n CHAR_EXCLAMATION !== character &&\n CHAR_VERTICAL_LINE !== character &&\n CHAR_GREATER_THAN !== character &&\n CHAR_SINGLE_QUOTE !== character &&\n CHAR_DOUBLE_QUOTE !== character &&\n CHAR_PERCENT !== character &&\n CHAR_COLON !== character &&\n !ESCAPE_SEQUENCES[character] &&\n !needsHexEscape(character);\n }\n function needsHexEscape(character) {\n return !((0x00020 <= character && character <= 0x00007E) ||\n (0x00085 === character) ||\n (0x000A0 <= character && character <= 0x00D7FF) ||\n (0x0E000 <= character && character <= 0x00FFFD) ||\n (0x10000 <= character && character <= 0x10FFFF));\n }\n function writeFlowSequence(state, level, object) {\n var _result = '', _tag = state.tag, index, length;\n for (index = 0, length = object.length; index < length; index += 1) {\n if (writeNode(state, level, object[index], false, false)) {\n if (0 !== index) {\n _result += ', ';\n }\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n }\n function writeBlockSequence(state, level, object, compact) {\n var _result = '', _tag = state.tag, index, length;\n for (index = 0, length = object.length; index < length; index += 1) {\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || 0 !== index) {\n _result += generateNextLine(state, level);\n }\n _result += '- ' + state.dump;\n }\n }\n state.tag = _tag;\n state.dump = _result || '[]';\n }\n function writeFlowMapping(state, level, object) {\n var _result = '', _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n if (0 !== index) {\n pairBuffer += ', ';\n }\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (!writeNode(state, level, objectKey, false, false)) {\n continue;\n }\n if (state.dump.length > 1024) {\n pairBuffer += '? ';\n }\n pairBuffer += state.dump + ': ';\n if (!writeNode(state, level, objectValue, false, false)) {\n continue;\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n }\n function writeBlockMapping(state, level, object, compact) {\n var _result = '', _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n if (!compact || 0 !== index) {\n pairBuffer += generateNextLine(state, level);\n }\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (!writeNode(state, level + 1, objectKey, true, true)) {\n continue;\n }\n explicitPair = (null !== state.tag && '?' !== state.tag) ||\n (state.dump && state.dump.length > 1024);\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n }\n else {\n pairBuffer += '? ';\n }\n }\n pairBuffer += state.dump;\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue;\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n }\n else {\n pairBuffer += ': ';\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = _result || '{}';\n }\n function detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || (('object' === typeof object) && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n state.tag = explicit ? type.tag : '?';\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n if ('[object Function]' === _toString.call(type.represent)) {\n _result = type.represent(object, style);\n }\n else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n }\n else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n state.dump = _result;\n }\n return true;\n }\n }\n return false;\n }\n function writeNode(state, level, object, block, compact) {\n state.tag = null;\n state.dump = object;\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n var type = _toString.call(state.dump);\n if (block) {\n block = (0 > state.flowLevel || state.flowLevel > level);\n }\n if ((null !== state.tag && '?' !== state.tag) || (2 !== state.indent && level > 0)) {\n compact = false;\n }\n var objectOrArray = '[object Object]' === type || '[object Array]' === type, duplicateIndex, duplicate;\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n }\n else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if ('[object Object]' === type) {\n if (block && (0 !== Object.keys(state.dump).length)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + (0 === level ? '\\n' : '') + state.dump;\n }\n }\n else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n }\n else if ('[object Array]' === type) {\n if (block && (0 !== state.dump.length)) {\n writeBlockSequence(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + (0 === level ? '\\n' : '') + state.dump;\n }\n }\n else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n }\n else if ('[object String]' === type) {\n if ('?' !== state.tag) {\n writeScalar(state, state.dump, level);\n }\n }\n else {\n if (state.skipInvalid) {\n return false;\n }\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n if (null !== state.tag && '?' !== state.tag) {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n return true;\n }\n function getDuplicateReferences(object, state) {\n var objects = [], duplicatesIndexes = [], index, length;\n inspectNode(object, objects, duplicatesIndexes);\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n }\n function inspectNode(object, objects, duplicatesIndexes) {\n _toString.call(object); var objectKeyList, index, length;\n if (null !== object && 'object' === typeof object) {\n index = objects.indexOf(object);\n if (-1 !== index) {\n if (-1 === duplicatesIndexes.indexOf(index)) {\n duplicatesIndexes.push(index);\n }\n }\n else {\n objects.push(object);\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n }\n else {\n objectKeyList = Object.keys(object);\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n }\n function dump(input, options) {\n options = options || {};\n var state = new State(options);\n getDuplicateReferences(input, state);\n if (writeNode(state, 0, input, true, true)) {\n return state.dump + '\\n';\n }\n return '';\n }\n var dump_1 = dump;\n function safeDump(input, options) {\n return dump(input, common.extend({ schema: default_safe }, options));\n }\n var safeDump_1 = safeDump;\n\n\n var dumper = /*#__PURE__*/Object.defineProperty({\n dump: dump_1,\n safeDump: safeDump_1\n }, '__esModule', {value: true});\n\n var scalarInference = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", { value: true });\n function parseYamlBoolean(input) {\n if ([\"true\", \"True\", \"TRUE\"].lastIndexOf(input) >= 0) {\n return true;\n }\n else if ([\"false\", \"False\", \"FALSE\"].lastIndexOf(input) >= 0) {\n return false;\n }\n throw \"Invalid boolean \\\"\" + input + \"\\\"\";\n }\n exports.parseYamlBoolean = parseYamlBoolean;\n function safeParseYamlInteger(input) {\n if (input.lastIndexOf('0o', 0) === 0) {\n return parseInt(input.substring(2), 8);\n }\n return parseInt(input);\n }\n function parseYamlInteger(input) {\n var result = safeParseYamlInteger(input);\n if (isNaN(result)) {\n throw \"Invalid integer \\\"\" + input + \"\\\"\";\n }\n return result;\n }\n exports.parseYamlInteger = parseYamlInteger;\n function parseYamlFloat(input) {\n if ([\".nan\", \".NaN\", \".NAN\"].lastIndexOf(input) >= 0) {\n return NaN;\n }\n var infinity = /^([-+])?(?:\\.inf|\\.Inf|\\.INF)$/;\n var match = infinity.exec(input);\n if (match) {\n return (match[1] === '-') ? -Infinity : Infinity;\n }\n var result = parseFloat(input);\n if (!isNaN(result)) {\n return result;\n }\n throw \"Invalid float \\\"\" + input + \"\\\"\";\n }\n exports.parseYamlFloat = parseYamlFloat;\n var ScalarType;\n (function (ScalarType) {\n ScalarType[ScalarType[\"null\"] = 0] = \"null\";\n ScalarType[ScalarType[\"bool\"] = 1] = \"bool\";\n ScalarType[ScalarType[\"int\"] = 2] = \"int\";\n ScalarType[ScalarType[\"float\"] = 3] = \"float\";\n ScalarType[ScalarType[\"string\"] = 4] = \"string\";\n })(ScalarType = exports.ScalarType || (exports.ScalarType = {}));\n function determineScalarType(node) {\n if (node === undefined) {\n return ScalarType.null;\n }\n if (node.doubleQuoted || !node.plainScalar || node['singleQuoted']) {\n return ScalarType.string;\n }\n var value = node.value;\n if ([\"null\", \"Null\", \"NULL\", \"~\", ''].indexOf(value) >= 0) {\n return ScalarType.null;\n }\n if (value === null || value === undefined) {\n return ScalarType.null;\n }\n if ([\"true\", \"True\", \"TRUE\", \"false\", \"False\", \"FALSE\"].indexOf(value) >= 0) {\n return ScalarType.bool;\n }\n var base10 = /^[-+]?[0-9]+$/;\n var base8 = /^0o[0-7]+$/;\n var base16 = /^0x[0-9a-fA-F]+$/;\n if (base10.test(value) || base8.test(value) || base16.test(value)) {\n return ScalarType.int;\n }\n var float = /^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$/;\n var infinity = /^[-+]?(\\.inf|\\.Inf|\\.INF)$/;\n if (float.test(value) || infinity.test(value) || [\".nan\", \".NaN\", \".NAN\"].indexOf(value) >= 0) {\n return ScalarType.float;\n }\n return ScalarType.string;\n }\n exports.determineScalarType = determineScalarType;\n //# sourceMappingURL=scalarInference.js.map\n });\n\n var src$1 = createCommonjsModule(function (module, exports) {\n function __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n Object.defineProperty(exports, \"__esModule\", { value: true });\n\n exports.load = loader.load;\n exports.loadAll = loader.loadAll;\n exports.safeLoad = loader.safeLoad;\n exports.safeLoadAll = loader.safeLoadAll;\n\n exports.dump = dumper.dump;\n exports.safeDump = dumper.safeDump;\n exports.YAMLException = exception;\n __export(yamlAST$1);\n __export(scalarInference);\n //# sourceMappingURL=index.js.map\n });\n\n const { load, Kind } = src$1;\n\n const loc = Symbol('pseudo-yaml-ast-loc');\n const hasOwnProp = (obj, key) => (obj && typeof obj === 'object' && Object.prototype.hasOwnProperty.call(obj, key));\n const isUndefined = v => v === undefined;\n const isNull = v => v === null;\n\n const isPrimitive = v =>\n Number.isNaN(v) || isNull(v) || isUndefined(v) || typeof v === 'symbol';\n\n const isPrimitiveNode = node =>\n isPrimitive(node.value) || !hasOwnProp(node, 'value');\n\n const isBetween = (start, pos, end) => pos <= end && pos >= start;\n\n const getLoc = (input, { start = 0, end = 0 }) => {\n const lines = input.split(/\\n/);\n\n const loc = {\n start: {},\n end: {}\n };\n\n let sum = 0;\n\n for (const i of lines.keys()) {\n const line = lines[i];\n const ls = sum;\n const le = sum + line.length;\n\n if (isUndefined(loc.start.line) && isBetween(ls, start, le)) {\n loc.start.line = i + 1;\n loc.start.column = start - ls;\n loc.start.offset = start;\n }\n\n if (isUndefined(loc.end.line) && isBetween(ls, end, le)) {\n loc.end.line = i + 1;\n loc.end.column = end - ls;\n loc.end.offset = end;\n }\n\n sum = le + 1; // +1 because the break is also a char\n }\n\n return loc;\n };\n\n const visitors = {\n MAP: (node = {}, input = '', ctx = {}) =>\n Object.assign(walk(node.mappings, input), {\n [loc]: getLoc(input, {\n start: node.startPosition,\n end: node.endPosition\n })\n }),\n MAPPING: (node = {}, input = '', ctx = {}) => {\n const value = walk([node.value], input);\n\n if (!isPrimitive(value)) {\n value[loc] = getLoc(input, {\n start: node.startPosition,\n end: node.endPosition\n });\n }\n\n return Object.assign(ctx, {\n [node.key.value]: value\n });\n },\n SCALAR: (node = {}, input = '') => {\n if (isPrimitiveNode(node)) {\n return node.value;\n }\n\n const _loc = getLoc(input, {\n start: node.startPosition,\n end: node.endPosition\n });\n\n const wrappable = Constructor => () => {\n const v = new Constructor(node.value);\n v[loc] = _loc;\n return v;\n };\n\n const object = () => {\n node.value[loc] = _loc;\n return node.value;\n };\n\n const types = {\n boolean: wrappable(Boolean),\n number: wrappable(Number),\n string: wrappable(String),\n function: object,\n object\n };\n\n return types[typeof node.value]();\n },\n SEQ: (node = {}, input = '') => {\n const items = walk(node.items, input, []);\n\n items[loc] = getLoc(input, {\n start: node.startPosition,\n end: node.endPosition\n });\n\n return items;\n }\n };\n\n const walk = (nodes = [], input, ctx = {}) => {\n const onNode = (node, ctx, fallback) => {\n let visitor; \n if (node) visitor = visitors[Kind[node.kind]];\n return visitor ? visitor(node, input, ctx) : fallback;\n };\n\n const walkObj = () =>\n nodes.reduce((sum, node) => {\n return onNode(node, sum, sum);\n }, ctx);\n\n const walkArr = () =>\n nodes.map(node => onNode(node, ctx, null), ctx).filter(Boolean);\n\n return Array.isArray(ctx) ? walkArr() : walkObj();\n };\n\n var loc_1 = loc;\n var yamlAST = input => walk([load(input)], input);\n\n var src = {\n loc: loc_1,\n yamlAST: yamlAST\n };\n\n var build = createCommonjsModule(function (module, exports) {\n (function (global, factory) {\n module.exports = factory() ;\n }(commonjsGlobal, (function () {\n var commonjsGlobal$1 = typeof window !== 'undefined' ? window : typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\n function createCommonjsModule(fn, module) {\n return module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n\n var graphemeSplitter = createCommonjsModule(function (module) {\n /*\n Breaks a Javascript string into individual user-perceived \"characters\" \n called extended grapheme clusters by implementing the Unicode UAX-29 standard, version 10.0.0\n \n Usage:\n var splitter = new GraphemeSplitter();\n //returns an array of strings, one string for each grapheme cluster\n var graphemes = splitter.splitGraphemes(string); \n \n */\n function GraphemeSplitter() {\n var CR = 0,\n LF = 1,\n Control = 2,\n Extend = 3,\n Regional_Indicator = 4,\n SpacingMark = 5,\n L = 6,\n V = 7,\n T = 8,\n LV = 9,\n LVT = 10,\n Other = 11,\n Prepend = 12,\n E_Base = 13,\n E_Modifier = 14,\n ZWJ = 15,\n Glue_After_Zwj = 16,\n E_Base_GAZ = 17;\n\n // BreakTypes\n var NotBreak = 0,\n BreakStart = 1,\n Break = 2,\n BreakLastRegional = 3,\n BreakPenultimateRegional = 4;\n\n function isSurrogate(str, pos) {\n return 0xd800 <= str.charCodeAt(pos) && str.charCodeAt(pos) <= 0xdbff && 0xdc00 <= str.charCodeAt(pos + 1) && str.charCodeAt(pos + 1) <= 0xdfff;\n }\n\n // Private function, gets a Unicode code point from a JavaScript UTF-16 string\n // handling surrogate pairs appropriately\n function codePointAt(str, idx) {\n if (idx === undefined) {\n idx = 0;\n }\n var code = str.charCodeAt(idx);\n\n // if a high surrogate\n if (0xD800 <= code && code <= 0xDBFF && idx < str.length - 1) {\n var hi = code;\n var low = str.charCodeAt(idx + 1);\n if (0xDC00 <= low && low <= 0xDFFF) {\n return (hi - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000;\n }\n return hi;\n }\n\n // if a low surrogate\n if (0xDC00 <= code && code <= 0xDFFF && idx >= 1) {\n var hi = str.charCodeAt(idx - 1);\n var low = code;\n if (0xD800 <= hi && hi <= 0xDBFF) {\n return (hi - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000;\n }\n return low;\n }\n\n //just return the char if an unmatched surrogate half or a \n //single-char codepoint\n return code;\n }\n\n // Private function, returns whether a break is allowed between the \n // two given grapheme breaking classes\n function shouldBreak(start, mid, end) {\n var all = [start].concat(mid).concat([end]);\n var previous = all[all.length - 2];\n var next = end;\n\n // Lookahead termintor for:\n // GB10. (E_Base | EBG) Extend* ?\tE_Modifier\n var eModifierIndex = all.lastIndexOf(E_Modifier);\n if (eModifierIndex > 1 && all.slice(1, eModifierIndex).every(function (c) {\n return c == Extend;\n }) && [Extend, E_Base, E_Base_GAZ].indexOf(start) == -1) {\n return Break;\n }\n\n // Lookahead termintor for:\n // GB12. ^ (RI RI)* RI\t?\tRI\n // GB13. [^RI] (RI RI)* RI\t?\tRI\n var rIIndex = all.lastIndexOf(Regional_Indicator);\n if (rIIndex > 0 && all.slice(1, rIIndex).every(function (c) {\n return c == Regional_Indicator;\n }) && [Prepend, Regional_Indicator].indexOf(previous) == -1) {\n if (all.filter(function (c) {\n return c == Regional_Indicator;\n }).length % 2 == 1) {\n return BreakLastRegional;\n } else {\n return BreakPenultimateRegional;\n }\n }\n\n // GB3. CR X LF\n if (previous == CR && next == LF) {\n return NotBreak;\n }\n // GB4. (Control|CR|LF) ÷\n else if (previous == Control || previous == CR || previous == LF) {\n if (next == E_Modifier && mid.every(function (c) {\n return c == Extend;\n })) {\n return Break;\n } else {\n return BreakStart;\n }\n }\n // GB5. ÷ (Control|CR|LF)\n else if (next == Control || next == CR || next == LF) {\n return BreakStart;\n }\n // GB6. L X (L|V|LV|LVT)\n else if (previous == L && (next == L || next == V || next == LV || next == LVT)) {\n return NotBreak;\n }\n // GB7. (LV|V) X (V|T)\n else if ((previous == LV || previous == V) && (next == V || next == T)) {\n return NotBreak;\n }\n // GB8. (LVT|T) X (T)\n else if ((previous == LVT || previous == T) && next == T) {\n return NotBreak;\n }\n // GB9. X (Extend|ZWJ)\n else if (next == Extend || next == ZWJ) {\n return NotBreak;\n }\n // GB9a. X SpacingMark\n else if (next == SpacingMark) {\n return NotBreak;\n }\n // GB9b. Prepend X\n else if (previous == Prepend) {\n return NotBreak;\n }\n\n // GB10. (E_Base | EBG) Extend* ?\tE_Modifier\n var previousNonExtendIndex = all.indexOf(Extend) != -1 ? all.lastIndexOf(Extend) - 1 : all.length - 2;\n if ([E_Base, E_Base_GAZ].indexOf(all[previousNonExtendIndex]) != -1 && all.slice(previousNonExtendIndex + 1, -1).every(function (c) {\n return c == Extend;\n }) && next == E_Modifier) {\n return NotBreak;\n }\n\n // GB11. ZWJ ? (Glue_After_Zwj | EBG)\n if (previous == ZWJ && [Glue_After_Zwj, E_Base_GAZ].indexOf(next) != -1) {\n return NotBreak;\n }\n\n // GB12. ^ (RI RI)* RI ? RI\n // GB13. [^RI] (RI RI)* RI ? RI\n if (mid.indexOf(Regional_Indicator) != -1) {\n return Break;\n }\n if (previous == Regional_Indicator && next == Regional_Indicator) {\n return NotBreak;\n }\n\n // GB999. Any ? Any\n return BreakStart;\n }\n\n // Returns the next grapheme break in the string after the given index\n this.nextBreak = function (string, index) {\n if (index === undefined) {\n index = 0;\n }\n if (index < 0) {\n return 0;\n }\n if (index >= string.length - 1) {\n return string.length;\n }\n var prev = getGraphemeBreakProperty(codePointAt(string, index));\n var mid = [];\n for (var i = index + 1; i < string.length; i++) {\n // check for already processed low surrogates\n if (isSurrogate(string, i - 1)) {\n continue;\n }\n\n var next = getGraphemeBreakProperty(codePointAt(string, i));\n if (shouldBreak(prev, mid, next)) {\n return i;\n }\n\n mid.push(next);\n }\n return string.length;\n };\n\n // Breaks the given string into an array of grapheme cluster strings\n this.splitGraphemes = function (str) {\n var res = [];\n var index = 0;\n var brk;\n while ((brk = this.nextBreak(str, index)) < str.length) {\n res.push(str.slice(index, brk));\n index = brk;\n }\n if (index < str.length) {\n res.push(str.slice(index));\n }\n return res;\n };\n\n // Returns the iterator of grapheme clusters there are in the given string\n this.iterateGraphemes = function (str) {\n var index = 0;\n var res = {\n next: function () {\n var value;\n var brk;\n if ((brk = this.nextBreak(str, index)) < str.length) {\n value = str.slice(index, brk);\n index = brk;\n return { value: value, done: false };\n }\n if (index < str.length) {\n value = str.slice(index);\n index = str.length;\n return { value: value, done: false };\n }\n return { value: undefined, done: true };\n }.bind(this)\n };\n // ES2015 @@iterator method (iterable) for spread syntax and for...of statement\n if (typeof Symbol !== 'undefined' && Symbol.iterator) {\n res[Symbol.iterator] = function () {\n return res;\n };\n }\n return res;\n };\n\n // Returns the number of grapheme clusters there are in the given string\n this.countGraphemes = function (str) {\n var count = 0;\n var index = 0;\n var brk;\n while ((brk = this.nextBreak(str, index)) < str.length) {\n index = brk;\n count++;\n }\n if (index < str.length) {\n count++;\n }\n return count;\n };\n\n //given a Unicode code point, determines this symbol's grapheme break property\n function getGraphemeBreakProperty(code) {\n\n //grapheme break property for Unicode 10.0.0, \n //taken from http://www.unicode.org/Public/10.0.0/ucd/auxiliary/GraphemeBreakProperty.txt\n //and adapted to JavaScript rules\n\n if (0x0600 <= code && code <= 0x0605 || // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE\n 0x06DD == code || // Cf ARABIC END OF AYAH\n 0x070F == code || // Cf SYRIAC ABBREVIATION MARK\n 0x08E2 == code || // Cf ARABIC DISPUTED END OF AYAH\n 0x0D4E == code || // Lo MALAYALAM LETTER DOT REPH\n 0x110BD == code || // Cf KAITHI NUMBER SIGN\n 0x111C2 <= code && code <= 0x111C3 || // Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA\n 0x11A3A == code || // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA\n 0x11A86 <= code && code <= 0x11A89 || // Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA\n 0x11D46 == code // Lo MASARAM GONDI REPHA\n ) {\n return Prepend;\n }\n if (0x000D == code // Cc \n ) {\n return CR;\n }\n\n if (0x000A == code // Cc \n ) {\n return LF;\n }\n\n if (0x0000 <= code && code <= 0x0009 || // Cc [10] ..\n 0x000B <= code && code <= 0x000C || // Cc [2] ..\n 0x000E <= code && code <= 0x001F || // Cc [18] ..\n 0x007F <= code && code <= 0x009F || // Cc [33] ..\n 0x00AD == code || // Cf SOFT HYPHEN\n 0x061C == code || // Cf ARABIC LETTER MARK\n\n 0x180E == code || // Cf MONGOLIAN VOWEL SEPARATOR\n 0x200B == code || // Cf ZERO WIDTH SPACE\n 0x200E <= code && code <= 0x200F || // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK\n 0x2028 == code || // Zl LINE SEPARATOR\n 0x2029 == code || // Zp PARAGRAPH SEPARATOR\n 0x202A <= code && code <= 0x202E || // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE\n 0x2060 <= code && code <= 0x2064 || // Cf [5] WORD JOINER..INVISIBLE PLUS\n 0x2065 == code || // Cn \n 0x2066 <= code && code <= 0x206F || // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES\n 0xD800 <= code && code <= 0xDFFF || // Cs [2048] ..\n 0xFEFF == code || // Cf ZERO WIDTH NO-BREAK SPACE\n 0xFFF0 <= code && code <= 0xFFF8 || // Cn [9] ..\n 0xFFF9 <= code && code <= 0xFFFB || // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR\n 0x1BCA0 <= code && code <= 0x1BCA3 || // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP\n 0x1D173 <= code && code <= 0x1D17A || // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE\n 0xE0000 == code || // Cn \n 0xE0001 == code || // Cf LANGUAGE TAG\n 0xE0002 <= code && code <= 0xE001F || // Cn [30] ..\n 0xE0080 <= code && code <= 0xE00FF || // Cn [128] ..\n 0xE01F0 <= code && code <= 0xE0FFF // Cn [3600] ..\n ) {\n return Control;\n }\n\n if (0x0300 <= code && code <= 0x036F || // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X\n 0x0483 <= code && code <= 0x0487 || // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE\n 0x0488 <= code && code <= 0x0489 || // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN\n 0x0591 <= code && code <= 0x05BD || // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG\n 0x05BF == code || // Mn HEBREW POINT RAFE\n 0x05C1 <= code && code <= 0x05C2 || // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT\n 0x05C4 <= code && code <= 0x05C5 || // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT\n 0x05C7 == code || // Mn HEBREW POINT QAMATS QATAN\n 0x0610 <= code && code <= 0x061A || // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA\n 0x064B <= code && code <= 0x065F || // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW\n 0x0670 == code || // Mn ARABIC LETTER SUPERSCRIPT ALEF\n 0x06D6 <= code && code <= 0x06DC || // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN\n 0x06DF <= code && code <= 0x06E4 || // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA\n 0x06E7 <= code && code <= 0x06E8 || // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON\n 0x06EA <= code && code <= 0x06ED || // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM\n 0x0711 == code || // Mn SYRIAC LETTER SUPERSCRIPT ALAPH\n 0x0730 <= code && code <= 0x074A || // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH\n 0x07A6 <= code && code <= 0x07B0 || // Mn [11] THAANA ABAFILI..THAANA SUKUN\n 0x07EB <= code && code <= 0x07F3 || // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE\n 0x0816 <= code && code <= 0x0819 || // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH\n 0x081B <= code && code <= 0x0823 || // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A\n 0x0825 <= code && code <= 0x0827 || // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U\n 0x0829 <= code && code <= 0x082D || // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA\n 0x0859 <= code && code <= 0x085B || // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK\n 0x08D4 <= code && code <= 0x08E1 || // Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA\n 0x08E3 <= code && code <= 0x0902 || // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA\n 0x093A == code || // Mn DEVANAGARI VOWEL SIGN OE\n 0x093C == code || // Mn DEVANAGARI SIGN NUKTA\n 0x0941 <= code && code <= 0x0948 || // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI\n 0x094D == code || // Mn DEVANAGARI SIGN VIRAMA\n 0x0951 <= code && code <= 0x0957 || // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE\n 0x0962 <= code && code <= 0x0963 || // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL\n 0x0981 == code || // Mn BENGALI SIGN CANDRABINDU\n 0x09BC == code || // Mn BENGALI SIGN NUKTA\n 0x09BE == code || // Mc BENGALI VOWEL SIGN AA\n 0x09C1 <= code && code <= 0x09C4 || // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR\n 0x09CD == code || // Mn BENGALI SIGN VIRAMA\n 0x09D7 == code || // Mc BENGALI AU LENGTH MARK\n 0x09E2 <= code && code <= 0x09E3 || // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL\n 0x0A01 <= code && code <= 0x0A02 || // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI\n 0x0A3C == code || // Mn GURMUKHI SIGN NUKTA\n 0x0A41 <= code && code <= 0x0A42 || // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU\n 0x0A47 <= code && code <= 0x0A48 || // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI\n 0x0A4B <= code && code <= 0x0A4D || // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA\n 0x0A51 == code || // Mn GURMUKHI SIGN UDAAT\n 0x0A70 <= code && code <= 0x0A71 || // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK\n 0x0A75 == code || // Mn GURMUKHI SIGN YAKASH\n 0x0A81 <= code && code <= 0x0A82 || // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA\n 0x0ABC == code || // Mn GUJARATI SIGN NUKTA\n 0x0AC1 <= code && code <= 0x0AC5 || // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E\n 0x0AC7 <= code && code <= 0x0AC8 || // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI\n 0x0ACD == code || // Mn GUJARATI SIGN VIRAMA\n 0x0AE2 <= code && code <= 0x0AE3 || // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL\n 0x0AFA <= code && code <= 0x0AFF || // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE\n 0x0B01 == code || // Mn ORIYA SIGN CANDRABINDU\n 0x0B3C == code || // Mn ORIYA SIGN NUKTA\n 0x0B3E == code || // Mc ORIYA VOWEL SIGN AA\n 0x0B3F == code || // Mn ORIYA VOWEL SIGN I\n 0x0B41 <= code && code <= 0x0B44 || // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR\n 0x0B4D == code || // Mn ORIYA SIGN VIRAMA\n 0x0B56 == code || // Mn ORIYA AI LENGTH MARK\n 0x0B57 == code || // Mc ORIYA AU LENGTH MARK\n 0x0B62 <= code && code <= 0x0B63 || // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL\n 0x0B82 == code || // Mn TAMIL SIGN ANUSVARA\n 0x0BBE == code || // Mc TAMIL VOWEL SIGN AA\n 0x0BC0 == code || // Mn TAMIL VOWEL SIGN II\n 0x0BCD == code || // Mn TAMIL SIGN VIRAMA\n 0x0BD7 == code || // Mc TAMIL AU LENGTH MARK\n 0x0C00 == code || // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE\n 0x0C3E <= code && code <= 0x0C40 || // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II\n 0x0C46 <= code && code <= 0x0C48 || // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI\n 0x0C4A <= code && code <= 0x0C4D || // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA\n 0x0C55 <= code && code <= 0x0C56 || // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK\n 0x0C62 <= code && code <= 0x0C63 || // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL\n 0x0C81 == code || // Mn KANNADA SIGN CANDRABINDU\n 0x0CBC == code || // Mn KANNADA SIGN NUKTA\n 0x0CBF == code || // Mn KANNADA VOWEL SIGN I\n 0x0CC2 == code || // Mc KANNADA VOWEL SIGN UU\n 0x0CC6 == code || // Mn KANNADA VOWEL SIGN E\n 0x0CCC <= code && code <= 0x0CCD || // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA\n 0x0CD5 <= code && code <= 0x0CD6 || // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK\n 0x0CE2 <= code && code <= 0x0CE3 || // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL\n 0x0D00 <= code && code <= 0x0D01 || // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU\n 0x0D3B <= code && code <= 0x0D3C || // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA\n 0x0D3E == code || // Mc MALAYALAM VOWEL SIGN AA\n 0x0D41 <= code && code <= 0x0D44 || // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR\n 0x0D4D == code || // Mn MALAYALAM SIGN VIRAMA\n 0x0D57 == code || // Mc MALAYALAM AU LENGTH MARK\n 0x0D62 <= code && code <= 0x0D63 || // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL\n 0x0DCA == code || // Mn SINHALA SIGN AL-LAKUNA\n 0x0DCF == code || // Mc SINHALA VOWEL SIGN AELA-PILLA\n 0x0DD2 <= code && code <= 0x0DD4 || // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA\n 0x0DD6 == code || // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA\n 0x0DDF == code || // Mc SINHALA VOWEL SIGN GAYANUKITTA\n 0x0E31 == code || // Mn THAI CHARACTER MAI HAN-AKAT\n 0x0E34 <= code && code <= 0x0E3A || // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU\n 0x0E47 <= code && code <= 0x0E4E || // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN\n 0x0EB1 == code || // Mn LAO VOWEL SIGN MAI KAN\n 0x0EB4 <= code && code <= 0x0EB9 || // Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU\n 0x0EBB <= code && code <= 0x0EBC || // Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO\n 0x0EC8 <= code && code <= 0x0ECD || // Mn [6] LAO TONE MAI EK..LAO NIGGAHITA\n 0x0F18 <= code && code <= 0x0F19 || // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS\n 0x0F35 == code || // Mn TIBETAN MARK NGAS BZUNG NYI ZLA\n 0x0F37 == code || // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS\n 0x0F39 == code || // Mn TIBETAN MARK TSA -PHRU\n 0x0F71 <= code && code <= 0x0F7E || // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO\n 0x0F80 <= code && code <= 0x0F84 || // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA\n 0x0F86 <= code && code <= 0x0F87 || // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS\n 0x0F8D <= code && code <= 0x0F97 || // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA\n 0x0F99 <= code && code <= 0x0FBC || // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA\n 0x0FC6 == code || // Mn TIBETAN SYMBOL PADMA GDAN\n 0x102D <= code && code <= 0x1030 || // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU\n 0x1032 <= code && code <= 0x1037 || // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW\n 0x1039 <= code && code <= 0x103A || // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT\n 0x103D <= code && code <= 0x103E || // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA\n 0x1058 <= code && code <= 0x1059 || // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL\n 0x105E <= code && code <= 0x1060 || // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA\n 0x1071 <= code && code <= 0x1074 || // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE\n 0x1082 == code || // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA\n 0x1085 <= code && code <= 0x1086 || // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y\n 0x108D == code || // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE\n 0x109D == code || // Mn MYANMAR VOWEL SIGN AITON AI\n 0x135D <= code && code <= 0x135F || // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK\n 0x1712 <= code && code <= 0x1714 || // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA\n 0x1732 <= code && code <= 0x1734 || // Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD\n 0x1752 <= code && code <= 0x1753 || // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U\n 0x1772 <= code && code <= 0x1773 || // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U\n 0x17B4 <= code && code <= 0x17B5 || // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA\n 0x17B7 <= code && code <= 0x17BD || // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA\n 0x17C6 == code || // Mn KHMER SIGN NIKAHIT\n 0x17C9 <= code && code <= 0x17D3 || // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT\n 0x17DD == code || // Mn KHMER SIGN ATTHACAN\n 0x180B <= code && code <= 0x180D || // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE\n 0x1885 <= code && code <= 0x1886 || // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA\n 0x18A9 == code || // Mn MONGOLIAN LETTER ALI GALI DAGALGA\n 0x1920 <= code && code <= 0x1922 || // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U\n 0x1927 <= code && code <= 0x1928 || // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O\n 0x1932 == code || // Mn LIMBU SMALL LETTER ANUSVARA\n 0x1939 <= code && code <= 0x193B || // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I\n 0x1A17 <= code && code <= 0x1A18 || // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U\n 0x1A1B == code || // Mn BUGINESE VOWEL SIGN AE\n 0x1A56 == code || // Mn TAI THAM CONSONANT SIGN MEDIAL LA\n 0x1A58 <= code && code <= 0x1A5E || // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA\n 0x1A60 == code || // Mn TAI THAM SIGN SAKOT\n 0x1A62 == code || // Mn TAI THAM VOWEL SIGN MAI SAT\n 0x1A65 <= code && code <= 0x1A6C || // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW\n 0x1A73 <= code && code <= 0x1A7C || // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN\n 0x1A7F == code || // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT\n 0x1AB0 <= code && code <= 0x1ABD || // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW\n 0x1ABE == code || // Me COMBINING PARENTHESES OVERLAY\n 0x1B00 <= code && code <= 0x1B03 || // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG\n 0x1B34 == code || // Mn BALINESE SIGN REREKAN\n 0x1B36 <= code && code <= 0x1B3A || // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA\n 0x1B3C == code || // Mn BALINESE VOWEL SIGN LA LENGA\n 0x1B42 == code || // Mn BALINESE VOWEL SIGN PEPET\n 0x1B6B <= code && code <= 0x1B73 || // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG\n 0x1B80 <= code && code <= 0x1B81 || // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR\n 0x1BA2 <= code && code <= 0x1BA5 || // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU\n 0x1BA8 <= code && code <= 0x1BA9 || // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG\n 0x1BAB <= code && code <= 0x1BAD || // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA\n 0x1BE6 == code || // Mn BATAK SIGN TOMPI\n 0x1BE8 <= code && code <= 0x1BE9 || // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE\n 0x1BED == code || // Mn BATAK VOWEL SIGN KARO O\n 0x1BEF <= code && code <= 0x1BF1 || // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H\n 0x1C2C <= code && code <= 0x1C33 || // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T\n 0x1C36 <= code && code <= 0x1C37 || // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA\n 0x1CD0 <= code && code <= 0x1CD2 || // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA\n 0x1CD4 <= code && code <= 0x1CE0 || // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA\n 0x1CE2 <= code && code <= 0x1CE8 || // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL\n 0x1CED == code || // Mn VEDIC SIGN TIRYAK\n 0x1CF4 == code || // Mn VEDIC TONE CANDRA ABOVE\n 0x1CF8 <= code && code <= 0x1CF9 || // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE\n 0x1DC0 <= code && code <= 0x1DF9 || // Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW\n 0x1DFB <= code && code <= 0x1DFF || // Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW\n 0x200C == code || // Cf ZERO WIDTH NON-JOINER\n 0x20D0 <= code && code <= 0x20DC || // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE\n 0x20DD <= code && code <= 0x20E0 || // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH\n 0x20E1 == code || // Mn COMBINING LEFT RIGHT ARROW ABOVE\n 0x20E2 <= code && code <= 0x20E4 || // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE\n 0x20E5 <= code && code <= 0x20F0 || // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE\n 0x2CEF <= code && code <= 0x2CF1 || // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS\n 0x2D7F == code || // Mn TIFINAGH CONSONANT JOINER\n 0x2DE0 <= code && code <= 0x2DFF || // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS\n 0x302A <= code && code <= 0x302D || // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK\n 0x302E <= code && code <= 0x302F || // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK\n 0x3099 <= code && code <= 0x309A || // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n 0xA66F == code || // Mn COMBINING CYRILLIC VZMET\n 0xA670 <= code && code <= 0xA672 || // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN\n 0xA674 <= code && code <= 0xA67D || // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK\n 0xA69E <= code && code <= 0xA69F || // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E\n 0xA6F0 <= code && code <= 0xA6F1 || // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS\n 0xA802 == code || // Mn SYLOTI NAGRI SIGN DVISVARA\n 0xA806 == code || // Mn SYLOTI NAGRI SIGN HASANTA\n 0xA80B == code || // Mn SYLOTI NAGRI SIGN ANUSVARA\n 0xA825 <= code && code <= 0xA826 || // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E\n 0xA8C4 <= code && code <= 0xA8C5 || // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU\n 0xA8E0 <= code && code <= 0xA8F1 || // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA\n 0xA926 <= code && code <= 0xA92D || // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU\n 0xA947 <= code && code <= 0xA951 || // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R\n 0xA980 <= code && code <= 0xA982 || // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR\n 0xA9B3 == code || // Mn JAVANESE SIGN CECAK TELU\n 0xA9B6 <= code && code <= 0xA9B9 || // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT\n 0xA9BC == code || // Mn JAVANESE VOWEL SIGN PEPET\n 0xA9E5 == code || // Mn MYANMAR SIGN SHAN SAW\n 0xAA29 <= code && code <= 0xAA2E || // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE\n 0xAA31 <= code && code <= 0xAA32 || // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE\n 0xAA35 <= code && code <= 0xAA36 || // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA\n 0xAA43 == code || // Mn CHAM CONSONANT SIGN FINAL NG\n 0xAA4C == code || // Mn CHAM CONSONANT SIGN FINAL M\n 0xAA7C == code || // Mn MYANMAR SIGN TAI LAING TONE-2\n 0xAAB0 == code || // Mn TAI VIET MAI KANG\n 0xAAB2 <= code && code <= 0xAAB4 || // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U\n 0xAAB7 <= code && code <= 0xAAB8 || // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA\n 0xAABE <= code && code <= 0xAABF || // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK\n 0xAAC1 == code || // Mn TAI VIET TONE MAI THO\n 0xAAEC <= code && code <= 0xAAED || // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI\n 0xAAF6 == code || // Mn MEETEI MAYEK VIRAMA\n 0xABE5 == code || // Mn MEETEI MAYEK VOWEL SIGN ANAP\n 0xABE8 == code || // Mn MEETEI MAYEK VOWEL SIGN UNAP\n 0xABED == code || // Mn MEETEI MAYEK APUN IYEK\n 0xFB1E == code || // Mn HEBREW POINT JUDEO-SPANISH VARIKA\n 0xFE00 <= code && code <= 0xFE0F || // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16\n 0xFE20 <= code && code <= 0xFE2F || // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF\n 0xFF9E <= code && code <= 0xFF9F || // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK\n 0x101FD == code || // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE\n 0x102E0 == code || // Mn COPTIC EPACT THOUSANDS MARK\n 0x10376 <= code && code <= 0x1037A || // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII\n 0x10A01 <= code && code <= 0x10A03 || // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R\n 0x10A05 <= code && code <= 0x10A06 || // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O\n 0x10A0C <= code && code <= 0x10A0F || // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA\n 0x10A38 <= code && code <= 0x10A3A || // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW\n 0x10A3F == code || // Mn KHAROSHTHI VIRAMA\n 0x10AE5 <= code && code <= 0x10AE6 || // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW\n 0x11001 == code || // Mn BRAHMI SIGN ANUSVARA\n 0x11038 <= code && code <= 0x11046 || // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA\n 0x1107F <= code && code <= 0x11081 || // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA\n 0x110B3 <= code && code <= 0x110B6 || // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI\n 0x110B9 <= code && code <= 0x110BA || // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA\n 0x11100 <= code && code <= 0x11102 || // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA\n 0x11127 <= code && code <= 0x1112B || // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU\n 0x1112D <= code && code <= 0x11134 || // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA\n 0x11173 == code || // Mn MAHAJANI SIGN NUKTA\n 0x11180 <= code && code <= 0x11181 || // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA\n 0x111B6 <= code && code <= 0x111BE || // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O\n 0x111CA <= code && code <= 0x111CC || // Mn [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK\n 0x1122F <= code && code <= 0x11231 || // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI\n 0x11234 == code || // Mn KHOJKI SIGN ANUSVARA\n 0x11236 <= code && code <= 0x11237 || // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA\n 0x1123E == code || // Mn KHOJKI SIGN SUKUN\n 0x112DF == code || // Mn KHUDAWADI SIGN ANUSVARA\n 0x112E3 <= code && code <= 0x112EA || // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA\n 0x11300 <= code && code <= 0x11301 || // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU\n 0x1133C == code || // Mn GRANTHA SIGN NUKTA\n 0x1133E == code || // Mc GRANTHA VOWEL SIGN AA\n 0x11340 == code || // Mn GRANTHA VOWEL SIGN II\n 0x11357 == code || // Mc GRANTHA AU LENGTH MARK\n 0x11366 <= code && code <= 0x1136C || // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX\n 0x11370 <= code && code <= 0x11374 || // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA\n 0x11438 <= code && code <= 0x1143F || // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI\n 0x11442 <= code && code <= 0x11444 || // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA\n 0x11446 == code || // Mn NEWA SIGN NUKTA\n 0x114B0 == code || // Mc TIRHUTA VOWEL SIGN AA\n 0x114B3 <= code && code <= 0x114B8 || // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL\n 0x114BA == code || // Mn TIRHUTA VOWEL SIGN SHORT E\n 0x114BD == code || // Mc TIRHUTA VOWEL SIGN SHORT O\n 0x114BF <= code && code <= 0x114C0 || // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA\n 0x114C2 <= code && code <= 0x114C3 || // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA\n 0x115AF == code || // Mc SIDDHAM VOWEL SIGN AA\n 0x115B2 <= code && code <= 0x115B5 || // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR\n 0x115BC <= code && code <= 0x115BD || // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA\n 0x115BF <= code && code <= 0x115C0 || // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA\n 0x115DC <= code && code <= 0x115DD || // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU\n 0x11633 <= code && code <= 0x1163A || // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI\n 0x1163D == code || // Mn MODI SIGN ANUSVARA\n 0x1163F <= code && code <= 0x11640 || // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA\n 0x116AB == code || // Mn TAKRI SIGN ANUSVARA\n 0x116AD == code || // Mn TAKRI VOWEL SIGN AA\n 0x116B0 <= code && code <= 0x116B5 || // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU\n 0x116B7 == code || // Mn TAKRI SIGN NUKTA\n 0x1171D <= code && code <= 0x1171F || // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA\n 0x11722 <= code && code <= 0x11725 || // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU\n 0x11727 <= code && code <= 0x1172B || // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER\n 0x11A01 <= code && code <= 0x11A06 || // Mn [6] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL SIGN O\n 0x11A09 <= code && code <= 0x11A0A || // Mn [2] ZANABAZAR SQUARE VOWEL SIGN REVERSED I..ZANABAZAR SQUARE VOWEL LENGTH MARK\n 0x11A33 <= code && code <= 0x11A38 || // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA\n 0x11A3B <= code && code <= 0x11A3E || // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA\n 0x11A47 == code || // Mn ZANABAZAR SQUARE SUBJOINER\n 0x11A51 <= code && code <= 0x11A56 || // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE\n 0x11A59 <= code && code <= 0x11A5B || // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK\n 0x11A8A <= code && code <= 0x11A96 || // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA\n 0x11A98 <= code && code <= 0x11A99 || // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER\n 0x11C30 <= code && code <= 0x11C36 || // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L\n 0x11C38 <= code && code <= 0x11C3D || // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA\n 0x11C3F == code || // Mn BHAIKSUKI SIGN VIRAMA\n 0x11C92 <= code && code <= 0x11CA7 || // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA\n 0x11CAA <= code && code <= 0x11CB0 || // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA\n 0x11CB2 <= code && code <= 0x11CB3 || // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E\n 0x11CB5 <= code && code <= 0x11CB6 || // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU\n 0x11D31 <= code && code <= 0x11D36 || // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R\n 0x11D3A == code || // Mn MASARAM GONDI VOWEL SIGN E\n 0x11D3C <= code && code <= 0x11D3D || // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O\n 0x11D3F <= code && code <= 0x11D45 || // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA\n 0x11D47 == code || // Mn MASARAM GONDI RA-KARA\n 0x16AF0 <= code && code <= 0x16AF4 || // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE\n 0x16B30 <= code && code <= 0x16B36 || // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM\n 0x16F8F <= code && code <= 0x16F92 || // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW\n 0x1BC9D <= code && code <= 0x1BC9E || // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK\n 0x1D165 == code || // Mc MUSICAL SYMBOL COMBINING STEM\n 0x1D167 <= code && code <= 0x1D169 || // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3\n 0x1D16E <= code && code <= 0x1D172 || // Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5\n 0x1D17B <= code && code <= 0x1D182 || // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE\n 0x1D185 <= code && code <= 0x1D18B || // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE\n 0x1D1AA <= code && code <= 0x1D1AD || // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO\n 0x1D242 <= code && code <= 0x1D244 || // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME\n 0x1DA00 <= code && code <= 0x1DA36 || // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN\n 0x1DA3B <= code && code <= 0x1DA6C || // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT\n 0x1DA75 == code || // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS\n 0x1DA84 == code || // Mn SIGNWRITING LOCATION HEAD NECK\n 0x1DA9B <= code && code <= 0x1DA9F || // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6\n 0x1DAA1 <= code && code <= 0x1DAAF || // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16\n 0x1E000 <= code && code <= 0x1E006 || // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE\n 0x1E008 <= code && code <= 0x1E018 || // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU\n 0x1E01B <= code && code <= 0x1E021 || // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI\n 0x1E023 <= code && code <= 0x1E024 || // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS\n 0x1E026 <= code && code <= 0x1E02A || // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA\n 0x1E8D0 <= code && code <= 0x1E8D6 || // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS\n 0x1E944 <= code && code <= 0x1E94A || // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA\n 0xE0020 <= code && code <= 0xE007F || // Cf [96] TAG SPACE..CANCEL TAG\n 0xE0100 <= code && code <= 0xE01EF // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256\n ) {\n return Extend;\n }\n\n if (0x1F1E6 <= code && code <= 0x1F1FF) // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z\n {\n return Regional_Indicator;\n }\n\n if (0x0903 == code || // Mc DEVANAGARI SIGN VISARGA\n 0x093B == code || // Mc DEVANAGARI VOWEL SIGN OOE\n 0x093E <= code && code <= 0x0940 || // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II\n 0x0949 <= code && code <= 0x094C || // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU\n 0x094E <= code && code <= 0x094F || // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW\n 0x0982 <= code && code <= 0x0983 || // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA\n 0x09BF <= code && code <= 0x09C0 || // Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II\n 0x09C7 <= code && code <= 0x09C8 || // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI\n 0x09CB <= code && code <= 0x09CC || // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU\n 0x0A03 == code || // Mc GURMUKHI SIGN VISARGA\n 0x0A3E <= code && code <= 0x0A40 || // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II\n 0x0A83 == code || // Mc GUJARATI SIGN VISARGA\n 0x0ABE <= code && code <= 0x0AC0 || // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II\n 0x0AC9 == code || // Mc GUJARATI VOWEL SIGN CANDRA O\n 0x0ACB <= code && code <= 0x0ACC || // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU\n 0x0B02 <= code && code <= 0x0B03 || // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA\n 0x0B40 == code || // Mc ORIYA VOWEL SIGN II\n 0x0B47 <= code && code <= 0x0B48 || // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI\n 0x0B4B <= code && code <= 0x0B4C || // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU\n 0x0BBF == code || // Mc TAMIL VOWEL SIGN I\n 0x0BC1 <= code && code <= 0x0BC2 || // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU\n 0x0BC6 <= code && code <= 0x0BC8 || // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI\n 0x0BCA <= code && code <= 0x0BCC || // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU\n 0x0C01 <= code && code <= 0x0C03 || // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA\n 0x0C41 <= code && code <= 0x0C44 || // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR\n 0x0C82 <= code && code <= 0x0C83 || // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA\n 0x0CBE == code || // Mc KANNADA VOWEL SIGN AA\n 0x0CC0 <= code && code <= 0x0CC1 || // Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U\n 0x0CC3 <= code && code <= 0x0CC4 || // Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR\n 0x0CC7 <= code && code <= 0x0CC8 || // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI\n 0x0CCA <= code && code <= 0x0CCB || // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO\n 0x0D02 <= code && code <= 0x0D03 || // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA\n 0x0D3F <= code && code <= 0x0D40 || // Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II\n 0x0D46 <= code && code <= 0x0D48 || // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI\n 0x0D4A <= code && code <= 0x0D4C || // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU\n 0x0D82 <= code && code <= 0x0D83 || // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA\n 0x0DD0 <= code && code <= 0x0DD1 || // Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA\n 0x0DD8 <= code && code <= 0x0DDE || // Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA\n 0x0DF2 <= code && code <= 0x0DF3 || // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA\n 0x0E33 == code || // Lo THAI CHARACTER SARA AM\n 0x0EB3 == code || // Lo LAO VOWEL SIGN AM\n 0x0F3E <= code && code <= 0x0F3F || // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES\n 0x0F7F == code || // Mc TIBETAN SIGN RNAM BCAD\n 0x1031 == code || // Mc MYANMAR VOWEL SIGN E\n 0x103B <= code && code <= 0x103C || // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA\n 0x1056 <= code && code <= 0x1057 || // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR\n 0x1084 == code || // Mc MYANMAR VOWEL SIGN SHAN E\n 0x17B6 == code || // Mc KHMER VOWEL SIGN AA\n 0x17BE <= code && code <= 0x17C5 || // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU\n 0x17C7 <= code && code <= 0x17C8 || // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU\n 0x1923 <= code && code <= 0x1926 || // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU\n 0x1929 <= code && code <= 0x192B || // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA\n 0x1930 <= code && code <= 0x1931 || // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA\n 0x1933 <= code && code <= 0x1938 || // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA\n 0x1A19 <= code && code <= 0x1A1A || // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O\n 0x1A55 == code || // Mc TAI THAM CONSONANT SIGN MEDIAL RA\n 0x1A57 == code || // Mc TAI THAM CONSONANT SIGN LA TANG LAI\n 0x1A6D <= code && code <= 0x1A72 || // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI\n 0x1B04 == code || // Mc BALINESE SIGN BISAH\n 0x1B35 == code || // Mc BALINESE VOWEL SIGN TEDUNG\n 0x1B3B == code || // Mc BALINESE VOWEL SIGN RA REPA TEDUNG\n 0x1B3D <= code && code <= 0x1B41 || // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG\n 0x1B43 <= code && code <= 0x1B44 || // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG\n 0x1B82 == code || // Mc SUNDANESE SIGN PANGWISAD\n 0x1BA1 == code || // Mc SUNDANESE CONSONANT SIGN PAMINGKAL\n 0x1BA6 <= code && code <= 0x1BA7 || // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG\n 0x1BAA == code || // Mc SUNDANESE SIGN PAMAAEH\n 0x1BE7 == code || // Mc BATAK VOWEL SIGN E\n 0x1BEA <= code && code <= 0x1BEC || // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O\n 0x1BEE == code || // Mc BATAK VOWEL SIGN U\n 0x1BF2 <= code && code <= 0x1BF3 || // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN\n 0x1C24 <= code && code <= 0x1C2B || // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU\n 0x1C34 <= code && code <= 0x1C35 || // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG\n 0x1CE1 == code || // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA\n 0x1CF2 <= code && code <= 0x1CF3 || // Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA\n 0x1CF7 == code || // Mc VEDIC SIGN ATIKRAMA\n 0xA823 <= code && code <= 0xA824 || // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I\n 0xA827 == code || // Mc SYLOTI NAGRI VOWEL SIGN OO\n 0xA880 <= code && code <= 0xA881 || // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA\n 0xA8B4 <= code && code <= 0xA8C3 || // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU\n 0xA952 <= code && code <= 0xA953 || // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA\n 0xA983 == code || // Mc JAVANESE SIGN WIGNYAN\n 0xA9B4 <= code && code <= 0xA9B5 || // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG\n 0xA9BA <= code && code <= 0xA9BB || // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE\n 0xA9BD <= code && code <= 0xA9C0 || // Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON\n 0xAA2F <= code && code <= 0xAA30 || // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI\n 0xAA33 <= code && code <= 0xAA34 || // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA\n 0xAA4D == code || // Mc CHAM CONSONANT SIGN FINAL H\n 0xAAEB == code || // Mc MEETEI MAYEK VOWEL SIGN II\n 0xAAEE <= code && code <= 0xAAEF || // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU\n 0xAAF5 == code || // Mc MEETEI MAYEK VOWEL SIGN VISARGA\n 0xABE3 <= code && code <= 0xABE4 || // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP\n 0xABE6 <= code && code <= 0xABE7 || // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP\n 0xABE9 <= code && code <= 0xABEA || // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG\n 0xABEC == code || // Mc MEETEI MAYEK LUM IYEK\n 0x11000 == code || // Mc BRAHMI SIGN CANDRABINDU\n 0x11002 == code || // Mc BRAHMI SIGN VISARGA\n 0x11082 == code || // Mc KAITHI SIGN VISARGA\n 0x110B0 <= code && code <= 0x110B2 || // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II\n 0x110B7 <= code && code <= 0x110B8 || // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU\n 0x1112C == code || // Mc CHAKMA VOWEL SIGN E\n 0x11182 == code || // Mc SHARADA SIGN VISARGA\n 0x111B3 <= code && code <= 0x111B5 || // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II\n 0x111BF <= code && code <= 0x111C0 || // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA\n 0x1122C <= code && code <= 0x1122E || // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II\n 0x11232 <= code && code <= 0x11233 || // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU\n 0x11235 == code || // Mc KHOJKI SIGN VIRAMA\n 0x112E0 <= code && code <= 0x112E2 || // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II\n 0x11302 <= code && code <= 0x11303 || // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA\n 0x1133F == code || // Mc GRANTHA VOWEL SIGN I\n 0x11341 <= code && code <= 0x11344 || // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR\n 0x11347 <= code && code <= 0x11348 || // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI\n 0x1134B <= code && code <= 0x1134D || // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA\n 0x11362 <= code && code <= 0x11363 || // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL\n 0x11435 <= code && code <= 0x11437 || // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II\n 0x11440 <= code && code <= 0x11441 || // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU\n 0x11445 == code || // Mc NEWA SIGN VISARGA\n 0x114B1 <= code && code <= 0x114B2 || // Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II\n 0x114B9 == code || // Mc TIRHUTA VOWEL SIGN E\n 0x114BB <= code && code <= 0x114BC || // Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O\n 0x114BE == code || // Mc TIRHUTA VOWEL SIGN AU\n 0x114C1 == code || // Mc TIRHUTA SIGN VISARGA\n 0x115B0 <= code && code <= 0x115B1 || // Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II\n 0x115B8 <= code && code <= 0x115BB || // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU\n 0x115BE == code || // Mc SIDDHAM SIGN VISARGA\n 0x11630 <= code && code <= 0x11632 || // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II\n 0x1163B <= code && code <= 0x1163C || // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU\n 0x1163E == code || // Mc MODI SIGN VISARGA\n 0x116AC == code || // Mc TAKRI SIGN VISARGA\n 0x116AE <= code && code <= 0x116AF || // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II\n 0x116B6 == code || // Mc TAKRI SIGN VIRAMA\n 0x11720 <= code && code <= 0x11721 || // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA\n 0x11726 == code || // Mc AHOM VOWEL SIGN E\n 0x11A07 <= code && code <= 0x11A08 || // Mc [2] ZANABAZAR SQUARE VOWEL SIGN AI..ZANABAZAR SQUARE VOWEL SIGN AU\n 0x11A39 == code || // Mc ZANABAZAR SQUARE SIGN VISARGA\n 0x11A57 <= code && code <= 0x11A58 || // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU\n 0x11A97 == code || // Mc SOYOMBO SIGN VISARGA\n 0x11C2F == code || // Mc BHAIKSUKI VOWEL SIGN AA\n 0x11C3E == code || // Mc BHAIKSUKI SIGN VISARGA\n 0x11CA9 == code || // Mc MARCHEN SUBJOINED LETTER YA\n 0x11CB1 == code || // Mc MARCHEN VOWEL SIGN I\n 0x11CB4 == code || // Mc MARCHEN VOWEL SIGN O\n 0x16F51 <= code && code <= 0x16F7E || // Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG\n 0x1D166 == code || // Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM\n 0x1D16D == code // Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT\n ) {\n return SpacingMark;\n }\n\n if (0x1100 <= code && code <= 0x115F || // Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER\n 0xA960 <= code && code <= 0xA97C // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH\n ) {\n return L;\n }\n\n if (0x1160 <= code && code <= 0x11A7 || // Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE\n 0xD7B0 <= code && code <= 0xD7C6 // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E\n ) {\n return V;\n }\n\n if (0x11A8 <= code && code <= 0x11FF || // Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN\n 0xD7CB <= code && code <= 0xD7FB // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH\n ) {\n return T;\n }\n\n if (0xAC00 == code || // Lo HANGUL SYLLABLE GA\n 0xAC1C == code || // Lo HANGUL SYLLABLE GAE\n 0xAC38 == code || // Lo HANGUL SYLLABLE GYA\n 0xAC54 == code || // Lo HANGUL SYLLABLE GYAE\n 0xAC70 == code || // Lo HANGUL SYLLABLE GEO\n 0xAC8C == code || // Lo HANGUL SYLLABLE GE\n 0xACA8 == code || // Lo HANGUL SYLLABLE GYEO\n 0xACC4 == code || // Lo HANGUL SYLLABLE GYE\n 0xACE0 == code || // Lo HANGUL SYLLABLE GO\n 0xACFC == code || // Lo HANGUL SYLLABLE GWA\n 0xAD18 == code || // Lo HANGUL SYLLABLE GWAE\n 0xAD34 == code || // Lo HANGUL SYLLABLE GOE\n 0xAD50 == code || // Lo HANGUL SYLLABLE GYO\n 0xAD6C == code || // Lo HANGUL SYLLABLE GU\n 0xAD88 == code || // Lo HANGUL SYLLABLE GWEO\n 0xADA4 == code || // Lo HANGUL SYLLABLE GWE\n 0xADC0 == code || // Lo HANGUL SYLLABLE GWI\n 0xADDC == code || // Lo HANGUL SYLLABLE GYU\n 0xADF8 == code || // Lo HANGUL SYLLABLE GEU\n 0xAE14 == code || // Lo HANGUL SYLLABLE GYI\n 0xAE30 == code || // Lo HANGUL SYLLABLE GI\n 0xAE4C == code || // Lo HANGUL SYLLABLE GGA\n 0xAE68 == code || // Lo HANGUL SYLLABLE GGAE\n 0xAE84 == code || // Lo HANGUL SYLLABLE GGYA\n 0xAEA0 == code || // Lo HANGUL SYLLABLE GGYAE\n 0xAEBC == code || // Lo HANGUL SYLLABLE GGEO\n 0xAED8 == code || // Lo HANGUL SYLLABLE GGE\n 0xAEF4 == code || // Lo HANGUL SYLLABLE GGYEO\n 0xAF10 == code || // Lo HANGUL SYLLABLE GGYE\n 0xAF2C == code || // Lo HANGUL SYLLABLE GGO\n 0xAF48 == code || // Lo HANGUL SYLLABLE GGWA\n 0xAF64 == code || // Lo HANGUL SYLLABLE GGWAE\n 0xAF80 == code || // Lo HANGUL SYLLABLE GGOE\n 0xAF9C == code || // Lo HANGUL SYLLABLE GGYO\n 0xAFB8 == code || // Lo HANGUL SYLLABLE GGU\n 0xAFD4 == code || // Lo HANGUL SYLLABLE GGWEO\n 0xAFF0 == code || // Lo HANGUL SYLLABLE GGWE\n 0xB00C == code || // Lo HANGUL SYLLABLE GGWI\n 0xB028 == code || // Lo HANGUL SYLLABLE GGYU\n 0xB044 == code || // Lo HANGUL SYLLABLE GGEU\n 0xB060 == code || // Lo HANGUL SYLLABLE GGYI\n 0xB07C == code || // Lo HANGUL SYLLABLE GGI\n 0xB098 == code || // Lo HANGUL SYLLABLE NA\n 0xB0B4 == code || // Lo HANGUL SYLLABLE NAE\n 0xB0D0 == code || // Lo HANGUL SYLLABLE NYA\n 0xB0EC == code || // Lo HANGUL SYLLABLE NYAE\n 0xB108 == code || // Lo HANGUL SYLLABLE NEO\n 0xB124 == code || // Lo HANGUL SYLLABLE NE\n 0xB140 == code || // Lo HANGUL SYLLABLE NYEO\n 0xB15C == code || // Lo HANGUL SYLLABLE NYE\n 0xB178 == code || // Lo HANGUL SYLLABLE NO\n 0xB194 == code || // Lo HANGUL SYLLABLE NWA\n 0xB1B0 == code || // Lo HANGUL SYLLABLE NWAE\n 0xB1CC == code || // Lo HANGUL SYLLABLE NOE\n 0xB1E8 == code || // Lo HANGUL SYLLABLE NYO\n 0xB204 == code || // Lo HANGUL SYLLABLE NU\n 0xB220 == code || // Lo HANGUL SYLLABLE NWEO\n 0xB23C == code || // Lo HANGUL SYLLABLE NWE\n 0xB258 == code || // Lo HANGUL SYLLABLE NWI\n 0xB274 == code || // Lo HANGUL SYLLABLE NYU\n 0xB290 == code || // Lo HANGUL SYLLABLE NEU\n 0xB2AC == code || // Lo HANGUL SYLLABLE NYI\n 0xB2C8 == code || // Lo HANGUL SYLLABLE NI\n 0xB2E4 == code || // Lo HANGUL SYLLABLE DA\n 0xB300 == code || // Lo HANGUL SYLLABLE DAE\n 0xB31C == code || // Lo HANGUL SYLLABLE DYA\n 0xB338 == code || // Lo HANGUL SYLLABLE DYAE\n 0xB354 == code || // Lo HANGUL SYLLABLE DEO\n 0xB370 == code || // Lo HANGUL SYLLABLE DE\n 0xB38C == code || // Lo HANGUL SYLLABLE DYEO\n 0xB3A8 == code || // Lo HANGUL SYLLABLE DYE\n 0xB3C4 == code || // Lo HANGUL SYLLABLE DO\n 0xB3E0 == code || // Lo HANGUL SYLLABLE DWA\n 0xB3FC == code || // Lo HANGUL SYLLABLE DWAE\n 0xB418 == code || // Lo HANGUL SYLLABLE DOE\n 0xB434 == code || // Lo HANGUL SYLLABLE DYO\n 0xB450 == code || // Lo HANGUL SYLLABLE DU\n 0xB46C == code || // Lo HANGUL SYLLABLE DWEO\n 0xB488 == code || // Lo HANGUL SYLLABLE DWE\n 0xB4A4 == code || // Lo HANGUL SYLLABLE DWI\n 0xB4C0 == code || // Lo HANGUL SYLLABLE DYU\n 0xB4DC == code || // Lo HANGUL SYLLABLE DEU\n 0xB4F8 == code || // Lo HANGUL SYLLABLE DYI\n 0xB514 == code || // Lo HANGUL SYLLABLE DI\n 0xB530 == code || // Lo HANGUL SYLLABLE DDA\n 0xB54C == code || // Lo HANGUL SYLLABLE DDAE\n 0xB568 == code || // Lo HANGUL SYLLABLE DDYA\n 0xB584 == code || // Lo HANGUL SYLLABLE DDYAE\n 0xB5A0 == code || // Lo HANGUL SYLLABLE DDEO\n 0xB5BC == code || // Lo HANGUL SYLLABLE DDE\n 0xB5D8 == code || // Lo HANGUL SYLLABLE DDYEO\n 0xB5F4 == code || // Lo HANGUL SYLLABLE DDYE\n 0xB610 == code || // Lo HANGUL SYLLABLE DDO\n 0xB62C == code || // Lo HANGUL SYLLABLE DDWA\n 0xB648 == code || // Lo HANGUL SYLLABLE DDWAE\n 0xB664 == code || // Lo HANGUL SYLLABLE DDOE\n 0xB680 == code || // Lo HANGUL SYLLABLE DDYO\n 0xB69C == code || // Lo HANGUL SYLLABLE DDU\n 0xB6B8 == code || // Lo HANGUL SYLLABLE DDWEO\n 0xB6D4 == code || // Lo HANGUL SYLLABLE DDWE\n 0xB6F0 == code || // Lo HANGUL SYLLABLE DDWI\n 0xB70C == code || // Lo HANGUL SYLLABLE DDYU\n 0xB728 == code || // Lo HANGUL SYLLABLE DDEU\n 0xB744 == code || // Lo HANGUL SYLLABLE DDYI\n 0xB760 == code || // Lo HANGUL SYLLABLE DDI\n 0xB77C == code || // Lo HANGUL SYLLABLE RA\n 0xB798 == code || // Lo HANGUL SYLLABLE RAE\n 0xB7B4 == code || // Lo HANGUL SYLLABLE RYA\n 0xB7D0 == code || // Lo HANGUL SYLLABLE RYAE\n 0xB7EC == code || // Lo HANGUL SYLLABLE REO\n 0xB808 == code || // Lo HANGUL SYLLABLE RE\n 0xB824 == code || // Lo HANGUL SYLLABLE RYEO\n 0xB840 == code || // Lo HANGUL SYLLABLE RYE\n 0xB85C == code || // Lo HANGUL SYLLABLE RO\n 0xB878 == code || // Lo HANGUL SYLLABLE RWA\n 0xB894 == code || // Lo HANGUL SYLLABLE RWAE\n 0xB8B0 == code || // Lo HANGUL SYLLABLE ROE\n 0xB8CC == code || // Lo HANGUL SYLLABLE RYO\n 0xB8E8 == code || // Lo HANGUL SYLLABLE RU\n 0xB904 == code || // Lo HANGUL SYLLABLE RWEO\n 0xB920 == code || // Lo HANGUL SYLLABLE RWE\n 0xB93C == code || // Lo HANGUL SYLLABLE RWI\n 0xB958 == code || // Lo HANGUL SYLLABLE RYU\n 0xB974 == code || // Lo HANGUL SYLLABLE REU\n 0xB990 == code || // Lo HANGUL SYLLABLE RYI\n 0xB9AC == code || // Lo HANGUL SYLLABLE RI\n 0xB9C8 == code || // Lo HANGUL SYLLABLE MA\n 0xB9E4 == code || // Lo HANGUL SYLLABLE MAE\n 0xBA00 == code || // Lo HANGUL SYLLABLE MYA\n 0xBA1C == code || // Lo HANGUL SYLLABLE MYAE\n 0xBA38 == code || // Lo HANGUL SYLLABLE MEO\n 0xBA54 == code || // Lo HANGUL SYLLABLE ME\n 0xBA70 == code || // Lo HANGUL SYLLABLE MYEO\n 0xBA8C == code || // Lo HANGUL SYLLABLE MYE\n 0xBAA8 == code || // Lo HANGUL SYLLABLE MO\n 0xBAC4 == code || // Lo HANGUL SYLLABLE MWA\n 0xBAE0 == code || // Lo HANGUL SYLLABLE MWAE\n 0xBAFC == code || // Lo HANGUL SYLLABLE MOE\n 0xBB18 == code || // Lo HANGUL SYLLABLE MYO\n 0xBB34 == code || // Lo HANGUL SYLLABLE MU\n 0xBB50 == code || // Lo HANGUL SYLLABLE MWEO\n 0xBB6C == code || // Lo HANGUL SYLLABLE MWE\n 0xBB88 == code || // Lo HANGUL SYLLABLE MWI\n 0xBBA4 == code || // Lo HANGUL SYLLABLE MYU\n 0xBBC0 == code || // Lo HANGUL SYLLABLE MEU\n 0xBBDC == code || // Lo HANGUL SYLLABLE MYI\n 0xBBF8 == code || // Lo HANGUL SYLLABLE MI\n 0xBC14 == code || // Lo HANGUL SYLLABLE BA\n 0xBC30 == code || // Lo HANGUL SYLLABLE BAE\n 0xBC4C == code || // Lo HANGUL SYLLABLE BYA\n 0xBC68 == code || // Lo HANGUL SYLLABLE BYAE\n 0xBC84 == code || // Lo HANGUL SYLLABLE BEO\n 0xBCA0 == code || // Lo HANGUL SYLLABLE BE\n 0xBCBC == code || // Lo HANGUL SYLLABLE BYEO\n 0xBCD8 == code || // Lo HANGUL SYLLABLE BYE\n 0xBCF4 == code || // Lo HANGUL SYLLABLE BO\n 0xBD10 == code || // Lo HANGUL SYLLABLE BWA\n 0xBD2C == code || // Lo HANGUL SYLLABLE BWAE\n 0xBD48 == code || // Lo HANGUL SYLLABLE BOE\n 0xBD64 == code || // Lo HANGUL SYLLABLE BYO\n 0xBD80 == code || // Lo HANGUL SYLLABLE BU\n 0xBD9C == code || // Lo HANGUL SYLLABLE BWEO\n 0xBDB8 == code || // Lo HANGUL SYLLABLE BWE\n 0xBDD4 == code || // Lo HANGUL SYLLABLE BWI\n 0xBDF0 == code || // Lo HANGUL SYLLABLE BYU\n 0xBE0C == code || // Lo HANGUL SYLLABLE BEU\n 0xBE28 == code || // Lo HANGUL SYLLABLE BYI\n 0xBE44 == code || // Lo HANGUL SYLLABLE BI\n 0xBE60 == code || // Lo HANGUL SYLLABLE BBA\n 0xBE7C == code || // Lo HANGUL SYLLABLE BBAE\n 0xBE98 == code || // Lo HANGUL SYLLABLE BBYA\n 0xBEB4 == code || // Lo HANGUL SYLLABLE BBYAE\n 0xBED0 == code || // Lo HANGUL SYLLABLE BBEO\n 0xBEEC == code || // Lo HANGUL SYLLABLE BBE\n 0xBF08 == code || // Lo HANGUL SYLLABLE BBYEO\n 0xBF24 == code || // Lo HANGUL SYLLABLE BBYE\n 0xBF40 == code || // Lo HANGUL SYLLABLE BBO\n 0xBF5C == code || // Lo HANGUL SYLLABLE BBWA\n 0xBF78 == code || // Lo HANGUL SYLLABLE BBWAE\n 0xBF94 == code || // Lo HANGUL SYLLABLE BBOE\n 0xBFB0 == code || // Lo HANGUL SYLLABLE BBYO\n 0xBFCC == code || // Lo HANGUL SYLLABLE BBU\n 0xBFE8 == code || // Lo HANGUL SYLLABLE BBWEO\n 0xC004 == code || // Lo HANGUL SYLLABLE BBWE\n 0xC020 == code || // Lo HANGUL SYLLABLE BBWI\n 0xC03C == code || // Lo HANGUL SYLLABLE BBYU\n 0xC058 == code || // Lo HANGUL SYLLABLE BBEU\n 0xC074 == code || // Lo HANGUL SYLLABLE BBYI\n 0xC090 == code || // Lo HANGUL SYLLABLE BBI\n 0xC0AC == code || // Lo HANGUL SYLLABLE SA\n 0xC0C8 == code || // Lo HANGUL SYLLABLE SAE\n 0xC0E4 == code || // Lo HANGUL SYLLABLE SYA\n 0xC100 == code || // Lo HANGUL SYLLABLE SYAE\n 0xC11C == code || // Lo HANGUL SYLLABLE SEO\n 0xC138 == code || // Lo HANGUL SYLLABLE SE\n 0xC154 == code || // Lo HANGUL SYLLABLE SYEO\n 0xC170 == code || // Lo HANGUL SYLLABLE SYE\n 0xC18C == code || // Lo HANGUL SYLLABLE SO\n 0xC1A8 == code || // Lo HANGUL SYLLABLE SWA\n 0xC1C4 == code || // Lo HANGUL SYLLABLE SWAE\n 0xC1E0 == code || // Lo HANGUL SYLLABLE SOE\n 0xC1FC == code || // Lo HANGUL SYLLABLE SYO\n 0xC218 == code || // Lo HANGUL SYLLABLE SU\n 0xC234 == code || // Lo HANGUL SYLLABLE SWEO\n 0xC250 == code || // Lo HANGUL SYLLABLE SWE\n 0xC26C == code || // Lo HANGUL SYLLABLE SWI\n 0xC288 == code || // Lo HANGUL SYLLABLE SYU\n 0xC2A4 == code || // Lo HANGUL SYLLABLE SEU\n 0xC2C0 == code || // Lo HANGUL SYLLABLE SYI\n 0xC2DC == code || // Lo HANGUL SYLLABLE SI\n 0xC2F8 == code || // Lo HANGUL SYLLABLE SSA\n 0xC314 == code || // Lo HANGUL SYLLABLE SSAE\n 0xC330 == code || // Lo HANGUL SYLLABLE SSYA\n 0xC34C == code || // Lo HANGUL SYLLABLE SSYAE\n 0xC368 == code || // Lo HANGUL SYLLABLE SSEO\n 0xC384 == code || // Lo HANGUL SYLLABLE SSE\n 0xC3A0 == code || // Lo HANGUL SYLLABLE SSYEO\n 0xC3BC == code || // Lo HANGUL SYLLABLE SSYE\n 0xC3D8 == code || // Lo HANGUL SYLLABLE SSO\n 0xC3F4 == code || // Lo HANGUL SYLLABLE SSWA\n 0xC410 == code || // Lo HANGUL SYLLABLE SSWAE\n 0xC42C == code || // Lo HANGUL SYLLABLE SSOE\n 0xC448 == code || // Lo HANGUL SYLLABLE SSYO\n 0xC464 == code || // Lo HANGUL SYLLABLE SSU\n 0xC480 == code || // Lo HANGUL SYLLABLE SSWEO\n 0xC49C == code || // Lo HANGUL SYLLABLE SSWE\n 0xC4B8 == code || // Lo HANGUL SYLLABLE SSWI\n 0xC4D4 == code || // Lo HANGUL SYLLABLE SSYU\n 0xC4F0 == code || // Lo HANGUL SYLLABLE SSEU\n 0xC50C == code || // Lo HANGUL SYLLABLE SSYI\n 0xC528 == code || // Lo HANGUL SYLLABLE SSI\n 0xC544 == code || // Lo HANGUL SYLLABLE A\n 0xC560 == code || // Lo HANGUL SYLLABLE AE\n 0xC57C == code || // Lo HANGUL SYLLABLE YA\n 0xC598 == code || // Lo HANGUL SYLLABLE YAE\n 0xC5B4 == code || // Lo HANGUL SYLLABLE EO\n 0xC5D0 == code || // Lo HANGUL SYLLABLE E\n 0xC5EC == code || // Lo HANGUL SYLLABLE YEO\n 0xC608 == code || // Lo HANGUL SYLLABLE YE\n 0xC624 == code || // Lo HANGUL SYLLABLE O\n 0xC640 == code || // Lo HANGUL SYLLABLE WA\n 0xC65C == code || // Lo HANGUL SYLLABLE WAE\n 0xC678 == code || // Lo HANGUL SYLLABLE OE\n 0xC694 == code || // Lo HANGUL SYLLABLE YO\n 0xC6B0 == code || // Lo HANGUL SYLLABLE U\n 0xC6CC == code || // Lo HANGUL SYLLABLE WEO\n 0xC6E8 == code || // Lo HANGUL SYLLABLE WE\n 0xC704 == code || // Lo HANGUL SYLLABLE WI\n 0xC720 == code || // Lo HANGUL SYLLABLE YU\n 0xC73C == code || // Lo HANGUL SYLLABLE EU\n 0xC758 == code || // Lo HANGUL SYLLABLE YI\n 0xC774 == code || // Lo HANGUL SYLLABLE I\n 0xC790 == code || // Lo HANGUL SYLLABLE JA\n 0xC7AC == code || // Lo HANGUL SYLLABLE JAE\n 0xC7C8 == code || // Lo HANGUL SYLLABLE JYA\n 0xC7E4 == code || // Lo HANGUL SYLLABLE JYAE\n 0xC800 == code || // Lo HANGUL SYLLABLE JEO\n 0xC81C == code || // Lo HANGUL SYLLABLE JE\n 0xC838 == code || // Lo HANGUL SYLLABLE JYEO\n 0xC854 == code || // Lo HANGUL SYLLABLE JYE\n 0xC870 == code || // Lo HANGUL SYLLABLE JO\n 0xC88C == code || // Lo HANGUL SYLLABLE JWA\n 0xC8A8 == code || // Lo HANGUL SYLLABLE JWAE\n 0xC8C4 == code || // Lo HANGUL SYLLABLE JOE\n 0xC8E0 == code || // Lo HANGUL SYLLABLE JYO\n 0xC8FC == code || // Lo HANGUL SYLLABLE JU\n 0xC918 == code || // Lo HANGUL SYLLABLE JWEO\n 0xC934 == code || // Lo HANGUL SYLLABLE JWE\n 0xC950 == code || // Lo HANGUL SYLLABLE JWI\n 0xC96C == code || // Lo HANGUL SYLLABLE JYU\n 0xC988 == code || // Lo HANGUL SYLLABLE JEU\n 0xC9A4 == code || // Lo HANGUL SYLLABLE JYI\n 0xC9C0 == code || // Lo HANGUL SYLLABLE JI\n 0xC9DC == code || // Lo HANGUL SYLLABLE JJA\n 0xC9F8 == code || // Lo HANGUL SYLLABLE JJAE\n 0xCA14 == code || // Lo HANGUL SYLLABLE JJYA\n 0xCA30 == code || // Lo HANGUL SYLLABLE JJYAE\n 0xCA4C == code || // Lo HANGUL SYLLABLE JJEO\n 0xCA68 == code || // Lo HANGUL SYLLABLE JJE\n 0xCA84 == code || // Lo HANGUL SYLLABLE JJYEO\n 0xCAA0 == code || // Lo HANGUL SYLLABLE JJYE\n 0xCABC == code || // Lo HANGUL SYLLABLE JJO\n 0xCAD8 == code || // Lo HANGUL SYLLABLE JJWA\n 0xCAF4 == code || // Lo HANGUL SYLLABLE JJWAE\n 0xCB10 == code || // Lo HANGUL SYLLABLE JJOE\n 0xCB2C == code || // Lo HANGUL SYLLABLE JJYO\n 0xCB48 == code || // Lo HANGUL SYLLABLE JJU\n 0xCB64 == code || // Lo HANGUL SYLLABLE JJWEO\n 0xCB80 == code || // Lo HANGUL SYLLABLE JJWE\n 0xCB9C == code || // Lo HANGUL SYLLABLE JJWI\n 0xCBB8 == code || // Lo HANGUL SYLLABLE JJYU\n 0xCBD4 == code || // Lo HANGUL SYLLABLE JJEU\n 0xCBF0 == code || // Lo HANGUL SYLLABLE JJYI\n 0xCC0C == code || // Lo HANGUL SYLLABLE JJI\n 0xCC28 == code || // Lo HANGUL SYLLABLE CA\n 0xCC44 == code || // Lo HANGUL SYLLABLE CAE\n 0xCC60 == code || // Lo HANGUL SYLLABLE CYA\n 0xCC7C == code || // Lo HANGUL SYLLABLE CYAE\n 0xCC98 == code || // Lo HANGUL SYLLABLE CEO\n 0xCCB4 == code || // Lo HANGUL SYLLABLE CE\n 0xCCD0 == code || // Lo HANGUL SYLLABLE CYEO\n 0xCCEC == code || // Lo HANGUL SYLLABLE CYE\n 0xCD08 == code || // Lo HANGUL SYLLABLE CO\n 0xCD24 == code || // Lo HANGUL SYLLABLE CWA\n 0xCD40 == code || // Lo HANGUL SYLLABLE CWAE\n 0xCD5C == code || // Lo HANGUL SYLLABLE COE\n 0xCD78 == code || // Lo HANGUL SYLLABLE CYO\n 0xCD94 == code || // Lo HANGUL SYLLABLE CU\n 0xCDB0 == code || // Lo HANGUL SYLLABLE CWEO\n 0xCDCC == code || // Lo HANGUL SYLLABLE CWE\n 0xCDE8 == code || // Lo HANGUL SYLLABLE CWI\n 0xCE04 == code || // Lo HANGUL SYLLABLE CYU\n 0xCE20 == code || // Lo HANGUL SYLLABLE CEU\n 0xCE3C == code || // Lo HANGUL SYLLABLE CYI\n 0xCE58 == code || // Lo HANGUL SYLLABLE CI\n 0xCE74 == code || // Lo HANGUL SYLLABLE KA\n 0xCE90 == code || // Lo HANGUL SYLLABLE KAE\n 0xCEAC == code || // Lo HANGUL SYLLABLE KYA\n 0xCEC8 == code || // Lo HANGUL SYLLABLE KYAE\n 0xCEE4 == code || // Lo HANGUL SYLLABLE KEO\n 0xCF00 == code || // Lo HANGUL SYLLABLE KE\n 0xCF1C == code || // Lo HANGUL SYLLABLE KYEO\n 0xCF38 == code || // Lo HANGUL SYLLABLE KYE\n 0xCF54 == code || // Lo HANGUL SYLLABLE KO\n 0xCF70 == code || // Lo HANGUL SYLLABLE KWA\n 0xCF8C == code || // Lo HANGUL SYLLABLE KWAE\n 0xCFA8 == code || // Lo HANGUL SYLLABLE KOE\n 0xCFC4 == code || // Lo HANGUL SYLLABLE KYO\n 0xCFE0 == code || // Lo HANGUL SYLLABLE KU\n 0xCFFC == code || // Lo HANGUL SYLLABLE KWEO\n 0xD018 == code || // Lo HANGUL SYLLABLE KWE\n 0xD034 == code || // Lo HANGUL SYLLABLE KWI\n 0xD050 == code || // Lo HANGUL SYLLABLE KYU\n 0xD06C == code || // Lo HANGUL SYLLABLE KEU\n 0xD088 == code || // Lo HANGUL SYLLABLE KYI\n 0xD0A4 == code || // Lo HANGUL SYLLABLE KI\n 0xD0C0 == code || // Lo HANGUL SYLLABLE TA\n 0xD0DC == code || // Lo HANGUL SYLLABLE TAE\n 0xD0F8 == code || // Lo HANGUL SYLLABLE TYA\n 0xD114 == code || // Lo HANGUL SYLLABLE TYAE\n 0xD130 == code || // Lo HANGUL SYLLABLE TEO\n 0xD14C == code || // Lo HANGUL SYLLABLE TE\n 0xD168 == code || // Lo HANGUL SYLLABLE TYEO\n 0xD184 == code || // Lo HANGUL SYLLABLE TYE\n 0xD1A0 == code || // Lo HANGUL SYLLABLE TO\n 0xD1BC == code || // Lo HANGUL SYLLABLE TWA\n 0xD1D8 == code || // Lo HANGUL SYLLABLE TWAE\n 0xD1F4 == code || // Lo HANGUL SYLLABLE TOE\n 0xD210 == code || // Lo HANGUL SYLLABLE TYO\n 0xD22C == code || // Lo HANGUL SYLLABLE TU\n 0xD248 == code || // Lo HANGUL SYLLABLE TWEO\n 0xD264 == code || // Lo HANGUL SYLLABLE TWE\n 0xD280 == code || // Lo HANGUL SYLLABLE TWI\n 0xD29C == code || // Lo HANGUL SYLLABLE TYU\n 0xD2B8 == code || // Lo HANGUL SYLLABLE TEU\n 0xD2D4 == code || // Lo HANGUL SYLLABLE TYI\n 0xD2F0 == code || // Lo HANGUL SYLLABLE TI\n 0xD30C == code || // Lo HANGUL SYLLABLE PA\n 0xD328 == code || // Lo HANGUL SYLLABLE PAE\n 0xD344 == code || // Lo HANGUL SYLLABLE PYA\n 0xD360 == code || // Lo HANGUL SYLLABLE PYAE\n 0xD37C == code || // Lo HANGUL SYLLABLE PEO\n 0xD398 == code || // Lo HANGUL SYLLABLE PE\n 0xD3B4 == code || // Lo HANGUL SYLLABLE PYEO\n 0xD3D0 == code || // Lo HANGUL SYLLABLE PYE\n 0xD3EC == code || // Lo HANGUL SYLLABLE PO\n 0xD408 == code || // Lo HANGUL SYLLABLE PWA\n 0xD424 == code || // Lo HANGUL SYLLABLE PWAE\n 0xD440 == code || // Lo HANGUL SYLLABLE POE\n 0xD45C == code || // Lo HANGUL SYLLABLE PYO\n 0xD478 == code || // Lo HANGUL SYLLABLE PU\n 0xD494 == code || // Lo HANGUL SYLLABLE PWEO\n 0xD4B0 == code || // Lo HANGUL SYLLABLE PWE\n 0xD4CC == code || // Lo HANGUL SYLLABLE PWI\n 0xD4E8 == code || // Lo HANGUL SYLLABLE PYU\n 0xD504 == code || // Lo HANGUL SYLLABLE PEU\n 0xD520 == code || // Lo HANGUL SYLLABLE PYI\n 0xD53C == code || // Lo HANGUL SYLLABLE PI\n 0xD558 == code || // Lo HANGUL SYLLABLE HA\n 0xD574 == code || // Lo HANGUL SYLLABLE HAE\n 0xD590 == code || // Lo HANGUL SYLLABLE HYA\n 0xD5AC == code || // Lo HANGUL SYLLABLE HYAE\n 0xD5C8 == code || // Lo HANGUL SYLLABLE HEO\n 0xD5E4 == code || // Lo HANGUL SYLLABLE HE\n 0xD600 == code || // Lo HANGUL SYLLABLE HYEO\n 0xD61C == code || // Lo HANGUL SYLLABLE HYE\n 0xD638 == code || // Lo HANGUL SYLLABLE HO\n 0xD654 == code || // Lo HANGUL SYLLABLE HWA\n 0xD670 == code || // Lo HANGUL SYLLABLE HWAE\n 0xD68C == code || // Lo HANGUL SYLLABLE HOE\n 0xD6A8 == code || // Lo HANGUL SYLLABLE HYO\n 0xD6C4 == code || // Lo HANGUL SYLLABLE HU\n 0xD6E0 == code || // Lo HANGUL SYLLABLE HWEO\n 0xD6FC == code || // Lo HANGUL SYLLABLE HWE\n 0xD718 == code || // Lo HANGUL SYLLABLE HWI\n 0xD734 == code || // Lo HANGUL SYLLABLE HYU\n 0xD750 == code || // Lo HANGUL SYLLABLE HEU\n 0xD76C == code || // Lo HANGUL SYLLABLE HYI\n 0xD788 == code // Lo HANGUL SYLLABLE HI\n ) {\n return LV;\n }\n\n if (0xAC01 <= code && code <= 0xAC1B || // Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH\n 0xAC1D <= code && code <= 0xAC37 || // Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH\n 0xAC39 <= code && code <= 0xAC53 || // Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH\n 0xAC55 <= code && code <= 0xAC6F || // Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH\n 0xAC71 <= code && code <= 0xAC8B || // Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH\n 0xAC8D <= code && code <= 0xACA7 || // Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH\n 0xACA9 <= code && code <= 0xACC3 || // Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH\n 0xACC5 <= code && code <= 0xACDF || // Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH\n 0xACE1 <= code && code <= 0xACFB || // Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH\n 0xACFD <= code && code <= 0xAD17 || // Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH\n 0xAD19 <= code && code <= 0xAD33 || // Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH\n 0xAD35 <= code && code <= 0xAD4F || // Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH\n 0xAD51 <= code && code <= 0xAD6B || // Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH\n 0xAD6D <= code && code <= 0xAD87 || // Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH\n 0xAD89 <= code && code <= 0xADA3 || // Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH\n 0xADA5 <= code && code <= 0xADBF || // Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH\n 0xADC1 <= code && code <= 0xADDB || // Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH\n 0xADDD <= code && code <= 0xADF7 || // Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH\n 0xADF9 <= code && code <= 0xAE13 || // Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH\n 0xAE15 <= code && code <= 0xAE2F || // Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH\n 0xAE31 <= code && code <= 0xAE4B || // Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH\n 0xAE4D <= code && code <= 0xAE67 || // Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH\n 0xAE69 <= code && code <= 0xAE83 || // Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH\n 0xAE85 <= code && code <= 0xAE9F || // Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH\n 0xAEA1 <= code && code <= 0xAEBB || // Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH\n 0xAEBD <= code && code <= 0xAED7 || // Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH\n 0xAED9 <= code && code <= 0xAEF3 || // Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH\n 0xAEF5 <= code && code <= 0xAF0F || // Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH\n 0xAF11 <= code && code <= 0xAF2B || // Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH\n 0xAF2D <= code && code <= 0xAF47 || // Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH\n 0xAF49 <= code && code <= 0xAF63 || // Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH\n 0xAF65 <= code && code <= 0xAF7F || // Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH\n 0xAF81 <= code && code <= 0xAF9B || // Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH\n 0xAF9D <= code && code <= 0xAFB7 || // Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH\n 0xAFB9 <= code && code <= 0xAFD3 || // Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH\n 0xAFD5 <= code && code <= 0xAFEF || // Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH\n 0xAFF1 <= code && code <= 0xB00B || // Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH\n 0xB00D <= code && code <= 0xB027 || // Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH\n 0xB029 <= code && code <= 0xB043 || // Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH\n 0xB045 <= code && code <= 0xB05F || // Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH\n 0xB061 <= code && code <= 0xB07B || // Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH\n 0xB07D <= code && code <= 0xB097 || // Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH\n 0xB099 <= code && code <= 0xB0B3 || // Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH\n 0xB0B5 <= code && code <= 0xB0CF || // Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH\n 0xB0D1 <= code && code <= 0xB0EB || // Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH\n 0xB0ED <= code && code <= 0xB107 || // Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH\n 0xB109 <= code && code <= 0xB123 || // Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH\n 0xB125 <= code && code <= 0xB13F || // Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH\n 0xB141 <= code && code <= 0xB15B || // Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH\n 0xB15D <= code && code <= 0xB177 || // Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH\n 0xB179 <= code && code <= 0xB193 || // Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH\n 0xB195 <= code && code <= 0xB1AF || // Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH\n 0xB1B1 <= code && code <= 0xB1CB || // Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH\n 0xB1CD <= code && code <= 0xB1E7 || // Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH\n 0xB1E9 <= code && code <= 0xB203 || // Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH\n 0xB205 <= code && code <= 0xB21F || // Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH\n 0xB221 <= code && code <= 0xB23B || // Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH\n 0xB23D <= code && code <= 0xB257 || // Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH\n 0xB259 <= code && code <= 0xB273 || // Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH\n 0xB275 <= code && code <= 0xB28F || // Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH\n 0xB291 <= code && code <= 0xB2AB || // Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH\n 0xB2AD <= code && code <= 0xB2C7 || // Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH\n 0xB2C9 <= code && code <= 0xB2E3 || // Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH\n 0xB2E5 <= code && code <= 0xB2FF || // Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH\n 0xB301 <= code && code <= 0xB31B || // Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH\n 0xB31D <= code && code <= 0xB337 || // Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH\n 0xB339 <= code && code <= 0xB353 || // Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH\n 0xB355 <= code && code <= 0xB36F || // Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH\n 0xB371 <= code && code <= 0xB38B || // Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH\n 0xB38D <= code && code <= 0xB3A7 || // Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH\n 0xB3A9 <= code && code <= 0xB3C3 || // Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH\n 0xB3C5 <= code && code <= 0xB3DF || // Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH\n 0xB3E1 <= code && code <= 0xB3FB || // Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH\n 0xB3FD <= code && code <= 0xB417 || // Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH\n 0xB419 <= code && code <= 0xB433 || // Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH\n 0xB435 <= code && code <= 0xB44F || // Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH\n 0xB451 <= code && code <= 0xB46B || // Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH\n 0xB46D <= code && code <= 0xB487 || // Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH\n 0xB489 <= code && code <= 0xB4A3 || // Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH\n 0xB4A5 <= code && code <= 0xB4BF || // Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH\n 0xB4C1 <= code && code <= 0xB4DB || // Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH\n 0xB4DD <= code && code <= 0xB4F7 || // Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH\n 0xB4F9 <= code && code <= 0xB513 || // Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH\n 0xB515 <= code && code <= 0xB52F || // Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH\n 0xB531 <= code && code <= 0xB54B || // Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH\n 0xB54D <= code && code <= 0xB567 || // Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH\n 0xB569 <= code && code <= 0xB583 || // Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH\n 0xB585 <= code && code <= 0xB59F || // Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH\n 0xB5A1 <= code && code <= 0xB5BB || // Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH\n 0xB5BD <= code && code <= 0xB5D7 || // Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH\n 0xB5D9 <= code && code <= 0xB5F3 || // Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH\n 0xB5F5 <= code && code <= 0xB60F || // Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH\n 0xB611 <= code && code <= 0xB62B || // Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH\n 0xB62D <= code && code <= 0xB647 || // Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH\n 0xB649 <= code && code <= 0xB663 || // Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH\n 0xB665 <= code && code <= 0xB67F || // Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH\n 0xB681 <= code && code <= 0xB69B || // Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH\n 0xB69D <= code && code <= 0xB6B7 || // Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH\n 0xB6B9 <= code && code <= 0xB6D3 || // Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH\n 0xB6D5 <= code && code <= 0xB6EF || // Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH\n 0xB6F1 <= code && code <= 0xB70B || // Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH\n 0xB70D <= code && code <= 0xB727 || // Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH\n 0xB729 <= code && code <= 0xB743 || // Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH\n 0xB745 <= code && code <= 0xB75F || // Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH\n 0xB761 <= code && code <= 0xB77B || // Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH\n 0xB77D <= code && code <= 0xB797 || // Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH\n 0xB799 <= code && code <= 0xB7B3 || // Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH\n 0xB7B5 <= code && code <= 0xB7CF || // Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH\n 0xB7D1 <= code && code <= 0xB7EB || // Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH\n 0xB7ED <= code && code <= 0xB807 || // Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH\n 0xB809 <= code && code <= 0xB823 || // Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH\n 0xB825 <= code && code <= 0xB83F || // Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH\n 0xB841 <= code && code <= 0xB85B || // Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH\n 0xB85D <= code && code <= 0xB877 || // Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH\n 0xB879 <= code && code <= 0xB893 || // Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH\n 0xB895 <= code && code <= 0xB8AF || // Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH\n 0xB8B1 <= code && code <= 0xB8CB || // Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH\n 0xB8CD <= code && code <= 0xB8E7 || // Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH\n 0xB8E9 <= code && code <= 0xB903 || // Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH\n 0xB905 <= code && code <= 0xB91F || // Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH\n 0xB921 <= code && code <= 0xB93B || // Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH\n 0xB93D <= code && code <= 0xB957 || // Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH\n 0xB959 <= code && code <= 0xB973 || // Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH\n 0xB975 <= code && code <= 0xB98F || // Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH\n 0xB991 <= code && code <= 0xB9AB || // Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH\n 0xB9AD <= code && code <= 0xB9C7 || // Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH\n 0xB9C9 <= code && code <= 0xB9E3 || // Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH\n 0xB9E5 <= code && code <= 0xB9FF || // Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH\n 0xBA01 <= code && code <= 0xBA1B || // Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH\n 0xBA1D <= code && code <= 0xBA37 || // Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH\n 0xBA39 <= code && code <= 0xBA53 || // Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH\n 0xBA55 <= code && code <= 0xBA6F || // Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH\n 0xBA71 <= code && code <= 0xBA8B || // Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH\n 0xBA8D <= code && code <= 0xBAA7 || // Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH\n 0xBAA9 <= code && code <= 0xBAC3 || // Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH\n 0xBAC5 <= code && code <= 0xBADF || // Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH\n 0xBAE1 <= code && code <= 0xBAFB || // Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH\n 0xBAFD <= code && code <= 0xBB17 || // Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH\n 0xBB19 <= code && code <= 0xBB33 || // Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH\n 0xBB35 <= code && code <= 0xBB4F || // Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH\n 0xBB51 <= code && code <= 0xBB6B || // Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH\n 0xBB6D <= code && code <= 0xBB87 || // Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH\n 0xBB89 <= code && code <= 0xBBA3 || // Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH\n 0xBBA5 <= code && code <= 0xBBBF || // Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH\n 0xBBC1 <= code && code <= 0xBBDB || // Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH\n 0xBBDD <= code && code <= 0xBBF7 || // Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH\n 0xBBF9 <= code && code <= 0xBC13 || // Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH\n 0xBC15 <= code && code <= 0xBC2F || // Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH\n 0xBC31 <= code && code <= 0xBC4B || // Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH\n 0xBC4D <= code && code <= 0xBC67 || // Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH\n 0xBC69 <= code && code <= 0xBC83 || // Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH\n 0xBC85 <= code && code <= 0xBC9F || // Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH\n 0xBCA1 <= code && code <= 0xBCBB || // Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH\n 0xBCBD <= code && code <= 0xBCD7 || // Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH\n 0xBCD9 <= code && code <= 0xBCF3 || // Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH\n 0xBCF5 <= code && code <= 0xBD0F || // Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH\n 0xBD11 <= code && code <= 0xBD2B || // Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH\n 0xBD2D <= code && code <= 0xBD47 || // Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH\n 0xBD49 <= code && code <= 0xBD63 || // Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH\n 0xBD65 <= code && code <= 0xBD7F || // Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH\n 0xBD81 <= code && code <= 0xBD9B || // Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH\n 0xBD9D <= code && code <= 0xBDB7 || // Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH\n 0xBDB9 <= code && code <= 0xBDD3 || // Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH\n 0xBDD5 <= code && code <= 0xBDEF || // Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH\n 0xBDF1 <= code && code <= 0xBE0B || // Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH\n 0xBE0D <= code && code <= 0xBE27 || // Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH\n 0xBE29 <= code && code <= 0xBE43 || // Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH\n 0xBE45 <= code && code <= 0xBE5F || // Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH\n 0xBE61 <= code && code <= 0xBE7B || // Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH\n 0xBE7D <= code && code <= 0xBE97 || // Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH\n 0xBE99 <= code && code <= 0xBEB3 || // Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH\n 0xBEB5 <= code && code <= 0xBECF || // Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH\n 0xBED1 <= code && code <= 0xBEEB || // Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH\n 0xBEED <= code && code <= 0xBF07 || // Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH\n 0xBF09 <= code && code <= 0xBF23 || // Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH\n 0xBF25 <= code && code <= 0xBF3F || // Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH\n 0xBF41 <= code && code <= 0xBF5B || // Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH\n 0xBF5D <= code && code <= 0xBF77 || // Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH\n 0xBF79 <= code && code <= 0xBF93 || // Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH\n 0xBF95 <= code && code <= 0xBFAF || // Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH\n 0xBFB1 <= code && code <= 0xBFCB || // Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH\n 0xBFCD <= code && code <= 0xBFE7 || // Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH\n 0xBFE9 <= code && code <= 0xC003 || // Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH\n 0xC005 <= code && code <= 0xC01F || // Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH\n 0xC021 <= code && code <= 0xC03B || // Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH\n 0xC03D <= code && code <= 0xC057 || // Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH\n 0xC059 <= code && code <= 0xC073 || // Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH\n 0xC075 <= code && code <= 0xC08F || // Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH\n 0xC091 <= code && code <= 0xC0AB || // Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH\n 0xC0AD <= code && code <= 0xC0C7 || // Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH\n 0xC0C9 <= code && code <= 0xC0E3 || // Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH\n 0xC0E5 <= code && code <= 0xC0FF || // Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH\n 0xC101 <= code && code <= 0xC11B || // Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH\n 0xC11D <= code && code <= 0xC137 || // Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH\n 0xC139 <= code && code <= 0xC153 || // Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH\n 0xC155 <= code && code <= 0xC16F || // Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH\n 0xC171 <= code && code <= 0xC18B || // Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH\n 0xC18D <= code && code <= 0xC1A7 || // Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH\n 0xC1A9 <= code && code <= 0xC1C3 || // Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH\n 0xC1C5 <= code && code <= 0xC1DF || // Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH\n 0xC1E1 <= code && code <= 0xC1FB || // Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH\n 0xC1FD <= code && code <= 0xC217 || // Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH\n 0xC219 <= code && code <= 0xC233 || // Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH\n 0xC235 <= code && code <= 0xC24F || // Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH\n 0xC251 <= code && code <= 0xC26B || // Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH\n 0xC26D <= code && code <= 0xC287 || // Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH\n 0xC289 <= code && code <= 0xC2A3 || // Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH\n 0xC2A5 <= code && code <= 0xC2BF || // Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH\n 0xC2C1 <= code && code <= 0xC2DB || // Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH\n 0xC2DD <= code && code <= 0xC2F7 || // Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH\n 0xC2F9 <= code && code <= 0xC313 || // Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH\n 0xC315 <= code && code <= 0xC32F || // Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH\n 0xC331 <= code && code <= 0xC34B || // Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH\n 0xC34D <= code && code <= 0xC367 || // Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH\n 0xC369 <= code && code <= 0xC383 || // Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH\n 0xC385 <= code && code <= 0xC39F || // Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH\n 0xC3A1 <= code && code <= 0xC3BB || // Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH\n 0xC3BD <= code && code <= 0xC3D7 || // Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH\n 0xC3D9 <= code && code <= 0xC3F3 || // Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH\n 0xC3F5 <= code && code <= 0xC40F || // Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH\n 0xC411 <= code && code <= 0xC42B || // Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH\n 0xC42D <= code && code <= 0xC447 || // Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH\n 0xC449 <= code && code <= 0xC463 || // Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH\n 0xC465 <= code && code <= 0xC47F || // Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH\n 0xC481 <= code && code <= 0xC49B || // Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH\n 0xC49D <= code && code <= 0xC4B7 || // Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH\n 0xC4B9 <= code && code <= 0xC4D3 || // Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH\n 0xC4D5 <= code && code <= 0xC4EF || // Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH\n 0xC4F1 <= code && code <= 0xC50B || // Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH\n 0xC50D <= code && code <= 0xC527 || // Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH\n 0xC529 <= code && code <= 0xC543 || // Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH\n 0xC545 <= code && code <= 0xC55F || // Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH\n 0xC561 <= code && code <= 0xC57B || // Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH\n 0xC57D <= code && code <= 0xC597 || // Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH\n 0xC599 <= code && code <= 0xC5B3 || // Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH\n 0xC5B5 <= code && code <= 0xC5CF || // Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH\n 0xC5D1 <= code && code <= 0xC5EB || // Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH\n 0xC5ED <= code && code <= 0xC607 || // Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH\n 0xC609 <= code && code <= 0xC623 || // Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH\n 0xC625 <= code && code <= 0xC63F || // Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH\n 0xC641 <= code && code <= 0xC65B || // Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH\n 0xC65D <= code && code <= 0xC677 || // Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH\n 0xC679 <= code && code <= 0xC693 || // Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH\n 0xC695 <= code && code <= 0xC6AF || // Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH\n 0xC6B1 <= code && code <= 0xC6CB || // Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH\n 0xC6CD <= code && code <= 0xC6E7 || // Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH\n 0xC6E9 <= code && code <= 0xC703 || // Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH\n 0xC705 <= code && code <= 0xC71F || // Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH\n 0xC721 <= code && code <= 0xC73B || // Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH\n 0xC73D <= code && code <= 0xC757 || // Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH\n 0xC759 <= code && code <= 0xC773 || // Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH\n 0xC775 <= code && code <= 0xC78F || // Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH\n 0xC791 <= code && code <= 0xC7AB || // Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH\n 0xC7AD <= code && code <= 0xC7C7 || // Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH\n 0xC7C9 <= code && code <= 0xC7E3 || // Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH\n 0xC7E5 <= code && code <= 0xC7FF || // Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH\n 0xC801 <= code && code <= 0xC81B || // Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH\n 0xC81D <= code && code <= 0xC837 || // Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH\n 0xC839 <= code && code <= 0xC853 || // Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH\n 0xC855 <= code && code <= 0xC86F || // Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH\n 0xC871 <= code && code <= 0xC88B || // Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH\n 0xC88D <= code && code <= 0xC8A7 || // Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH\n 0xC8A9 <= code && code <= 0xC8C3 || // Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH\n 0xC8C5 <= code && code <= 0xC8DF || // Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH\n 0xC8E1 <= code && code <= 0xC8FB || // Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH\n 0xC8FD <= code && code <= 0xC917 || // Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH\n 0xC919 <= code && code <= 0xC933 || // Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH\n 0xC935 <= code && code <= 0xC94F || // Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH\n 0xC951 <= code && code <= 0xC96B || // Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH\n 0xC96D <= code && code <= 0xC987 || // Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH\n 0xC989 <= code && code <= 0xC9A3 || // Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH\n 0xC9A5 <= code && code <= 0xC9BF || // Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH\n 0xC9C1 <= code && code <= 0xC9DB || // Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH\n 0xC9DD <= code && code <= 0xC9F7 || // Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH\n 0xC9F9 <= code && code <= 0xCA13 || // Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH\n 0xCA15 <= code && code <= 0xCA2F || // Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH\n 0xCA31 <= code && code <= 0xCA4B || // Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH\n 0xCA4D <= code && code <= 0xCA67 || // Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH\n 0xCA69 <= code && code <= 0xCA83 || // Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH\n 0xCA85 <= code && code <= 0xCA9F || // Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH\n 0xCAA1 <= code && code <= 0xCABB || // Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH\n 0xCABD <= code && code <= 0xCAD7 || // Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH\n 0xCAD9 <= code && code <= 0xCAF3 || // Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH\n 0xCAF5 <= code && code <= 0xCB0F || // Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH\n 0xCB11 <= code && code <= 0xCB2B || // Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH\n 0xCB2D <= code && code <= 0xCB47 || // Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH\n 0xCB49 <= code && code <= 0xCB63 || // Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH\n 0xCB65 <= code && code <= 0xCB7F || // Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH\n 0xCB81 <= code && code <= 0xCB9B || // Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH\n 0xCB9D <= code && code <= 0xCBB7 || // Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH\n 0xCBB9 <= code && code <= 0xCBD3 || // Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH\n 0xCBD5 <= code && code <= 0xCBEF || // Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH\n 0xCBF1 <= code && code <= 0xCC0B || // Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH\n 0xCC0D <= code && code <= 0xCC27 || // Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH\n 0xCC29 <= code && code <= 0xCC43 || // Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH\n 0xCC45 <= code && code <= 0xCC5F || // Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH\n 0xCC61 <= code && code <= 0xCC7B || // Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH\n 0xCC7D <= code && code <= 0xCC97 || // Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH\n 0xCC99 <= code && code <= 0xCCB3 || // Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH\n 0xCCB5 <= code && code <= 0xCCCF || // Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH\n 0xCCD1 <= code && code <= 0xCCEB || // Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH\n 0xCCED <= code && code <= 0xCD07 || // Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH\n 0xCD09 <= code && code <= 0xCD23 || // Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH\n 0xCD25 <= code && code <= 0xCD3F || // Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH\n 0xCD41 <= code && code <= 0xCD5B || // Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH\n 0xCD5D <= code && code <= 0xCD77 || // Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH\n 0xCD79 <= code && code <= 0xCD93 || // Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH\n 0xCD95 <= code && code <= 0xCDAF || // Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH\n 0xCDB1 <= code && code <= 0xCDCB || // Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH\n 0xCDCD <= code && code <= 0xCDE7 || // Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH\n 0xCDE9 <= code && code <= 0xCE03 || // Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH\n 0xCE05 <= code && code <= 0xCE1F || // Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH\n 0xCE21 <= code && code <= 0xCE3B || // Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH\n 0xCE3D <= code && code <= 0xCE57 || // Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH\n 0xCE59 <= code && code <= 0xCE73 || // Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH\n 0xCE75 <= code && code <= 0xCE8F || // Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH\n 0xCE91 <= code && code <= 0xCEAB || // Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH\n 0xCEAD <= code && code <= 0xCEC7 || // Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH\n 0xCEC9 <= code && code <= 0xCEE3 || // Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH\n 0xCEE5 <= code && code <= 0xCEFF || // Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH\n 0xCF01 <= code && code <= 0xCF1B || // Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH\n 0xCF1D <= code && code <= 0xCF37 || // Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH\n 0xCF39 <= code && code <= 0xCF53 || // Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH\n 0xCF55 <= code && code <= 0xCF6F || // Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH\n 0xCF71 <= code && code <= 0xCF8B || // Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH\n 0xCF8D <= code && code <= 0xCFA7 || // Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH\n 0xCFA9 <= code && code <= 0xCFC3 || // Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH\n 0xCFC5 <= code && code <= 0xCFDF || // Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH\n 0xCFE1 <= code && code <= 0xCFFB || // Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH\n 0xCFFD <= code && code <= 0xD017 || // Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH\n 0xD019 <= code && code <= 0xD033 || // Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH\n 0xD035 <= code && code <= 0xD04F || // Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH\n 0xD051 <= code && code <= 0xD06B || // Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH\n 0xD06D <= code && code <= 0xD087 || // Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH\n 0xD089 <= code && code <= 0xD0A3 || // Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH\n 0xD0A5 <= code && code <= 0xD0BF || // Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH\n 0xD0C1 <= code && code <= 0xD0DB || // Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH\n 0xD0DD <= code && code <= 0xD0F7 || // Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH\n 0xD0F9 <= code && code <= 0xD113 || // Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH\n 0xD115 <= code && code <= 0xD12F || // Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH\n 0xD131 <= code && code <= 0xD14B || // Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH\n 0xD14D <= code && code <= 0xD167 || // Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH\n 0xD169 <= code && code <= 0xD183 || // Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH\n 0xD185 <= code && code <= 0xD19F || // Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH\n 0xD1A1 <= code && code <= 0xD1BB || // Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH\n 0xD1BD <= code && code <= 0xD1D7 || // Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH\n 0xD1D9 <= code && code <= 0xD1F3 || // Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH\n 0xD1F5 <= code && code <= 0xD20F || // Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH\n 0xD211 <= code && code <= 0xD22B || // Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH\n 0xD22D <= code && code <= 0xD247 || // Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH\n 0xD249 <= code && code <= 0xD263 || // Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH\n 0xD265 <= code && code <= 0xD27F || // Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH\n 0xD281 <= code && code <= 0xD29B || // Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH\n 0xD29D <= code && code <= 0xD2B7 || // Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH\n 0xD2B9 <= code && code <= 0xD2D3 || // Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH\n 0xD2D5 <= code && code <= 0xD2EF || // Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH\n 0xD2F1 <= code && code <= 0xD30B || // Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH\n 0xD30D <= code && code <= 0xD327 || // Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH\n 0xD329 <= code && code <= 0xD343 || // Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH\n 0xD345 <= code && code <= 0xD35F || // Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH\n 0xD361 <= code && code <= 0xD37B || // Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH\n 0xD37D <= code && code <= 0xD397 || // Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH\n 0xD399 <= code && code <= 0xD3B3 || // Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH\n 0xD3B5 <= code && code <= 0xD3CF || // Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH\n 0xD3D1 <= code && code <= 0xD3EB || // Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH\n 0xD3ED <= code && code <= 0xD407 || // Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH\n 0xD409 <= code && code <= 0xD423 || // Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH\n 0xD425 <= code && code <= 0xD43F || // Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH\n 0xD441 <= code && code <= 0xD45B || // Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH\n 0xD45D <= code && code <= 0xD477 || // Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH\n 0xD479 <= code && code <= 0xD493 || // Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH\n 0xD495 <= code && code <= 0xD4AF || // Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH\n 0xD4B1 <= code && code <= 0xD4CB || // Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH\n 0xD4CD <= code && code <= 0xD4E7 || // Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH\n 0xD4E9 <= code && code <= 0xD503 || // Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH\n 0xD505 <= code && code <= 0xD51F || // Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH\n 0xD521 <= code && code <= 0xD53B || // Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH\n 0xD53D <= code && code <= 0xD557 || // Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH\n 0xD559 <= code && code <= 0xD573 || // Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH\n 0xD575 <= code && code <= 0xD58F || // Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH\n 0xD591 <= code && code <= 0xD5AB || // Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH\n 0xD5AD <= code && code <= 0xD5C7 || // Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH\n 0xD5C9 <= code && code <= 0xD5E3 || // Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH\n 0xD5E5 <= code && code <= 0xD5FF || // Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH\n 0xD601 <= code && code <= 0xD61B || // Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH\n 0xD61D <= code && code <= 0xD637 || // Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH\n 0xD639 <= code && code <= 0xD653 || // Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH\n 0xD655 <= code && code <= 0xD66F || // Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH\n 0xD671 <= code && code <= 0xD68B || // Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH\n 0xD68D <= code && code <= 0xD6A7 || // Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH\n 0xD6A9 <= code && code <= 0xD6C3 || // Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH\n 0xD6C5 <= code && code <= 0xD6DF || // Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH\n 0xD6E1 <= code && code <= 0xD6FB || // Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH\n 0xD6FD <= code && code <= 0xD717 || // Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH\n 0xD719 <= code && code <= 0xD733 || // Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH\n 0xD735 <= code && code <= 0xD74F || // Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH\n 0xD751 <= code && code <= 0xD76B || // Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH\n 0xD76D <= code && code <= 0xD787 || // Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH\n 0xD789 <= code && code <= 0xD7A3 // Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH\n ) {\n return LVT;\n }\n\n if (0x261D == code || // So WHITE UP POINTING INDEX\n 0x26F9 == code || // So PERSON WITH BALL\n 0x270A <= code && code <= 0x270D || // So [4] RAISED FIST..WRITING HAND\n 0x1F385 == code || // So FATHER CHRISTMAS\n 0x1F3C2 <= code && code <= 0x1F3C4 || // So [3] SNOWBOARDER..SURFER\n 0x1F3C7 == code || // So HORSE RACING\n 0x1F3CA <= code && code <= 0x1F3CC || // So [3] SWIMMER..GOLFER\n 0x1F442 <= code && code <= 0x1F443 || // So [2] EAR..NOSE\n 0x1F446 <= code && code <= 0x1F450 || // So [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN\n 0x1F46E == code || // So POLICE OFFICER\n 0x1F470 <= code && code <= 0x1F478 || // So [9] BRIDE WITH VEIL..PRINCESS\n 0x1F47C == code || // So BABY ANGEL\n 0x1F481 <= code && code <= 0x1F483 || // So [3] INFORMATION DESK PERSON..DANCER\n 0x1F485 <= code && code <= 0x1F487 || // So [3] NAIL POLISH..HAIRCUT\n 0x1F4AA == code || // So FLEXED BICEPS\n 0x1F574 <= code && code <= 0x1F575 || // So [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY\n 0x1F57A == code || // So MAN DANCING\n 0x1F590 == code || // So RAISED HAND WITH FINGERS SPLAYED\n 0x1F595 <= code && code <= 0x1F596 || // So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS\n 0x1F645 <= code && code <= 0x1F647 || // So [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY\n 0x1F64B <= code && code <= 0x1F64F || // So [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS\n 0x1F6A3 == code || // So ROWBOAT\n 0x1F6B4 <= code && code <= 0x1F6B6 || // So [3] BICYCLIST..PEDESTRIAN\n 0x1F6C0 == code || // So BATH\n 0x1F6CC == code || // So SLEEPING ACCOMMODATION\n 0x1F918 <= code && code <= 0x1F91C || // So [5] SIGN OF THE HORNS..RIGHT-FACING FIST\n 0x1F91E <= code && code <= 0x1F91F || // So [2] HAND WITH INDEX AND MIDDLE FINGERS CROSSED..I LOVE YOU HAND SIGN\n 0x1F926 == code || // So FACE PALM\n 0x1F930 <= code && code <= 0x1F939 || // So [10] PREGNANT WOMAN..JUGGLING\n 0x1F93D <= code && code <= 0x1F93E || // So [2] WATER POLO..HANDBALL\n 0x1F9D1 <= code && code <= 0x1F9DD // So [13] ADULT..ELF\n ) {\n return E_Base;\n }\n\n if (0x1F3FB <= code && code <= 0x1F3FF) // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6\n {\n return E_Modifier;\n }\n\n if (0x200D == code // Cf ZERO WIDTH JOINER\n ) {\n return ZWJ;\n }\n\n if (0x2640 == code || // So FEMALE SIGN\n 0x2642 == code || // So MALE SIGN\n 0x2695 <= code && code <= 0x2696 || // So [2] STAFF OF AESCULAPIUS..SCALES\n 0x2708 == code || // So AIRPLANE\n 0x2764 == code || // So HEAVY BLACK HEART\n 0x1F308 == code || // So RAINBOW\n 0x1F33E == code || // So EAR OF RICE\n 0x1F373 == code || // So COOKING\n 0x1F393 == code || // So GRADUATION CAP\n 0x1F3A4 == code || // So MICROPHONE\n 0x1F3A8 == code || // So ARTIST PALETTE\n 0x1F3EB == code || // So SCHOOL\n 0x1F3ED == code || // So FACTORY\n 0x1F48B == code || // So KISS MARK\n 0x1F4BB <= code && code <= 0x1F4BC || // So [2] PERSONAL COMPUTER..BRIEFCASE\n 0x1F527 == code || // So WRENCH\n 0x1F52C == code || // So MICROSCOPE\n 0x1F5E8 == code || // So LEFT SPEECH BUBBLE\n 0x1F680 == code || // So ROCKET\n 0x1F692 == code // So FIRE ENGINE\n ) {\n return Glue_After_Zwj;\n }\n\n if (0x1F466 <= code && code <= 0x1F469) // So [4] BOY..WOMAN\n {\n return E_Base_GAZ;\n }\n\n //all unlisted characters have a grapheme break property of \"Other\"\n return Other;\n }\n return this;\n }\n\n if (module.exports) {\n module.exports = GraphemeSplitter;\n }\n });\n\n var splitter = new graphemeSplitter();\n\n var substring = function substring(str, start, end) {\n var iterator = splitter.iterateGraphemes(str.substring(start));\n\n var value = '';\n\n for (var pos = 0; pos < end - start; pos++) {\n var next = iterator.next();\n\n value += next.value;\n\n if (next.done) {\n break;\n }\n }\n\n return value;\n };\n\n var location = (function (startLine, startColumn, startOffset, endLine, endColumn, endOffset, source) {\n return {\n start: {\n line: startLine,\n column: startColumn,\n offset: startOffset\n },\n end: {\n line: endLine,\n column: endColumn,\n offset: endOffset\n },\n source: source || null\n };\n });\n\n var build = createCommonjsModule(function (module, exports) {\n (function (global, factory) {\n module.exports = factory();\n })(commonjsGlobal$1, function () {\n\n /**\n * Results cache\n */\n\n var res = '';\n var cache;\n\n /**\n * Expose `repeat`\n */\n\n var repeatString = repeat;\n\n /**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\n function repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n }\n\n var padStart = function padStart(string, maxLength, fillString) {\n\n if (string == null || maxLength == null) {\n return string;\n }\n\n var result = String(string);\n var targetLen = typeof maxLength === 'number' ? maxLength : parseInt(maxLength, 10);\n\n if (isNaN(targetLen) || !isFinite(targetLen)) {\n return result;\n }\n\n var length = result.length;\n if (length >= targetLen) {\n return result;\n }\n\n var fill = fillString == null ? '' : String(fillString);\n if (fill === '') {\n fill = ' ';\n }\n\n var fillLen = targetLen - length;\n\n while (fill.length < fillLen) {\n fill += fill;\n }\n\n var truncated = fill.length > fillLen ? fill.substr(0, fillLen) : fill;\n\n return truncated + result;\n };\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function printLine(line, position, maxNumLength, settings) {\n var num = String(position);\n var formattedNum = padStart(num, maxNumLength, ' ');\n var tabReplacement = repeatString(' ', settings.tabSize);\n\n return formattedNum + ' | ' + line.replace(/\\t/g, tabReplacement);\n }\n\n function printLines(lines, start, end, maxNumLength, settings) {\n return lines.slice(start, end).map(function (line, i) {\n return printLine(line, start + i + 1, maxNumLength, settings);\n }).join('\\n');\n }\n\n var defaultSettings = {\n extraLines: 2,\n tabSize: 4\n };\n\n var index = function index(input, linePos, columnPos, settings) {\n settings = _extends({}, defaultSettings, settings);\n\n var lines = input.split(/\\r\\n?|\\n|\\f/);\n var startLinePos = Math.max(1, linePos - settings.extraLines) - 1;\n var endLinePos = Math.min(linePos + settings.extraLines, lines.length);\n var maxNumLength = String(endLinePos).length;\n var prevLines = printLines(lines, startLinePos, linePos, maxNumLength, settings);\n var targetLineBeforeCursor = printLine(lines[linePos - 1].substring(0, columnPos - 1), linePos, maxNumLength, settings);\n var cursorLine = repeatString(' ', targetLineBeforeCursor.length) + '^';\n var nextLines = printLines(lines, linePos, endLinePos, maxNumLength, settings);\n\n return [prevLines, cursorLine, nextLines].filter(Boolean).join('\\n');\n };\n\n return index;\n });\n });\n\n var errorStack = new Error().stack;\n\n var createError = (function (props) {\n // use Object.create(), because some VMs prevent setting line/column otherwise\n // (iOS Safari 10 even throws an exception)\n var error = Object.create(SyntaxError.prototype);\n\n Object.assign(error, props, {\n name: 'SyntaxError'\n });\n\n Object.defineProperty(error, 'stack', {\n get: function get() {\n return errorStack ? errorStack.replace(/^(.+\\n){1,3}/, String(error) + '\\n') : '';\n }\n });\n\n return error;\n });\n\n var error = (function (message, input, source, line, column) {\n throw createError({\n message: line ? message + '\\n' + build(input, line, column) : message,\n rawMessage: message,\n source: source,\n line: line,\n column: column\n });\n });\n\n var parseErrorTypes = {\n unexpectedEnd: function unexpectedEnd() {\n return 'Unexpected end of input';\n },\n unexpectedToken: function unexpectedToken(token) {\n for (var _len = arguments.length, position = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n position[_key - 1] = arguments[_key];\n }\n\n return 'Unexpected token <' + token + '> at ' + position.filter(Boolean).join(':');\n }\n };\n\n var tokenizeErrorTypes = {\n unexpectedSymbol: function unexpectedSymbol(symbol) {\n for (var _len = arguments.length, position = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n position[_key - 1] = arguments[_key];\n }\n\n return 'Unexpected symbol <' + symbol + '> at ' + position.filter(Boolean).join(':');\n }\n };\n\n var tokenTypes = {\n LEFT_BRACE: 0, // {\n RIGHT_BRACE: 1, // }\n LEFT_BRACKET: 2, // [\n RIGHT_BRACKET: 3, // ]\n COLON: 4, // :\n COMMA: 5, // ,\n STRING: 6, //\n NUMBER: 7, //\n TRUE: 8, // true\n FALSE: 9, // false\n NULL: 10 // null\n };\n\n var punctuatorTokensMap = { // Lexeme: Token\n '{': tokenTypes.LEFT_BRACE,\n '}': tokenTypes.RIGHT_BRACE,\n '[': tokenTypes.LEFT_BRACKET,\n ']': tokenTypes.RIGHT_BRACKET,\n ':': tokenTypes.COLON,\n ',': tokenTypes.COMMA\n };\n\n var keywordTokensMap = { // Lexeme: Token\n 'true': tokenTypes.TRUE,\n 'false': tokenTypes.FALSE,\n 'null': tokenTypes.NULL\n };\n\n var stringStates = {\n _START_: 0,\n START_QUOTE_OR_CHAR: 1,\n ESCAPE: 2\n };\n\n var escapes$1 = {\n '\"': 0, // Quotation mask\n '\\\\': 1, // Reverse solidus\n '/': 2, // Solidus\n 'b': 3, // Backspace\n 'f': 4, // Form feed\n 'n': 5, // New line\n 'r': 6, // Carriage return\n 't': 7, // Horizontal tab\n 'u': 8 // 4 hexadecimal digits\n };\n\n var numberStates = {\n _START_: 0,\n MINUS: 1,\n ZERO: 2,\n DIGIT: 3,\n POINT: 4,\n DIGIT_FRACTION: 5,\n EXP: 6,\n EXP_DIGIT_OR_SIGN: 7\n };\n\n // HELPERS\n\n function isDigit1to9(char) {\n return char >= '1' && char <= '9';\n }\n\n function isDigit(char) {\n return char >= '0' && char <= '9';\n }\n\n function isHex(char) {\n return isDigit(char) || char >= 'a' && char <= 'f' || char >= 'A' && char <= 'F';\n }\n\n function isExp(char) {\n return char === 'e' || char === 'E';\n }\n\n // PARSERS\n\n function parseWhitespace(input, index, line, column) {\n var char = input.charAt(index);\n\n if (char === '\\r') {\n // CR (Unix)\n index++;\n line++;\n column = 1;\n if (input.charAt(index) === '\\n') {\n // CRLF (Windows)\n index++;\n }\n } else if (char === '\\n') {\n // LF (MacOS)\n index++;\n line++;\n column = 1;\n } else if (char === '\\t' || char === ' ') {\n index++;\n column++;\n } else {\n return null;\n }\n\n return {\n index: index,\n line: line,\n column: column\n };\n }\n\n function parseChar(input, index, line, column) {\n var char = input.charAt(index);\n\n if (char in punctuatorTokensMap) {\n return {\n type: punctuatorTokensMap[char],\n line: line,\n column: column + 1,\n index: index + 1,\n value: null\n };\n }\n\n return null;\n }\n\n function parseKeyword(input, index, line, column) {\n for (var name in keywordTokensMap) {\n if (keywordTokensMap.hasOwnProperty(name) && input.substr(index, name.length) === name) {\n return {\n type: keywordTokensMap[name],\n line: line,\n column: column + name.length,\n index: index + name.length,\n value: name\n };\n }\n }\n\n return null;\n }\n\n function parseString$1(input, index, line, column) {\n var startIndex = index;\n var state = stringStates._START_;\n\n while (index < input.length) {\n var char = input.charAt(index);\n\n switch (state) {\n case stringStates._START_:\n {\n if (char === '\"') {\n index++;\n state = stringStates.START_QUOTE_OR_CHAR;\n } else {\n return null;\n }\n break;\n }\n\n case stringStates.START_QUOTE_OR_CHAR:\n {\n if (char === '\\\\') {\n index++;\n state = stringStates.ESCAPE;\n } else if (char === '\"') {\n index++;\n return {\n type: tokenTypes.STRING,\n line: line,\n column: column + index - startIndex,\n index: index,\n value: input.slice(startIndex, index)\n };\n } else {\n index++;\n }\n break;\n }\n\n case stringStates.ESCAPE:\n {\n if (char in escapes$1) {\n index++;\n if (char === 'u') {\n for (var i = 0; i < 4; i++) {\n var curChar = input.charAt(index);\n if (curChar && isHex(curChar)) {\n index++;\n } else {\n return null;\n }\n }\n }\n state = stringStates.START_QUOTE_OR_CHAR;\n } else {\n return null;\n }\n break;\n }\n }\n }\n }\n\n function parseNumber(input, index, line, column) {\n var startIndex = index;\n var passedValueIndex = index;\n var state = numberStates._START_;\n\n iterator: while (index < input.length) {\n var char = input.charAt(index);\n\n switch (state) {\n case numberStates._START_:\n {\n if (char === '-') {\n state = numberStates.MINUS;\n } else if (char === '0') {\n passedValueIndex = index + 1;\n state = numberStates.ZERO;\n } else if (isDigit1to9(char)) {\n passedValueIndex = index + 1;\n state = numberStates.DIGIT;\n } else {\n return null;\n }\n break;\n }\n\n case numberStates.MINUS:\n {\n if (char === '0') {\n passedValueIndex = index + 1;\n state = numberStates.ZERO;\n } else if (isDigit1to9(char)) {\n passedValueIndex = index + 1;\n state = numberStates.DIGIT;\n } else {\n return null;\n }\n break;\n }\n\n case numberStates.ZERO:\n {\n if (char === '.') {\n state = numberStates.POINT;\n } else if (isExp(char)) {\n state = numberStates.EXP;\n } else {\n break iterator;\n }\n break;\n }\n\n case numberStates.DIGIT:\n {\n if (isDigit(char)) {\n passedValueIndex = index + 1;\n } else if (char === '.') {\n state = numberStates.POINT;\n } else if (isExp(char)) {\n state = numberStates.EXP;\n } else {\n break iterator;\n }\n break;\n }\n\n case numberStates.POINT:\n {\n if (isDigit(char)) {\n passedValueIndex = index + 1;\n state = numberStates.DIGIT_FRACTION;\n } else {\n break iterator;\n }\n break;\n }\n\n case numberStates.DIGIT_FRACTION:\n {\n if (isDigit(char)) {\n passedValueIndex = index + 1;\n } else if (isExp(char)) {\n state = numberStates.EXP;\n } else {\n break iterator;\n }\n break;\n }\n\n case numberStates.EXP:\n {\n if (char === '+' || char === '-') {\n state = numberStates.EXP_DIGIT_OR_SIGN;\n } else if (isDigit(char)) {\n passedValueIndex = index + 1;\n state = numberStates.EXP_DIGIT_OR_SIGN;\n } else {\n break iterator;\n }\n break;\n }\n\n case numberStates.EXP_DIGIT_OR_SIGN:\n {\n if (isDigit(char)) {\n passedValueIndex = index + 1;\n } else {\n break iterator;\n }\n break;\n }\n }\n\n index++;\n }\n\n if (passedValueIndex > 0) {\n return {\n type: tokenTypes.NUMBER,\n line: line,\n column: column + passedValueIndex - startIndex,\n index: passedValueIndex,\n value: input.slice(startIndex, passedValueIndex)\n };\n }\n\n return null;\n }\n\n var tokenize = function tokenize(input, settings) {\n var line = 1;\n var column = 1;\n var index = 0;\n var tokens = [];\n\n while (index < input.length) {\n var args = [input, index, line, column];\n var whitespace = parseWhitespace.apply(undefined, args);\n\n if (whitespace) {\n index = whitespace.index;\n line = whitespace.line;\n column = whitespace.column;\n continue;\n }\n\n var matched = parseChar.apply(undefined, args) || parseKeyword.apply(undefined, args) || parseString$1.apply(undefined, args) || parseNumber.apply(undefined, args);\n\n if (matched) {\n var token = {\n type: matched.type,\n value: matched.value,\n loc: location(line, column, index, matched.line, matched.column, matched.index, settings.source)\n };\n\n tokens.push(token);\n index = matched.index;\n line = matched.line;\n column = matched.column;\n } else {\n error(tokenizeErrorTypes.unexpectedSymbol(substring(input, index, index + 1), settings.source, line, column), input, settings.source, line, column);\n }\n }\n\n return tokens;\n };\n\n var objectStates = {\n _START_: 0,\n OPEN_OBJECT: 1,\n PROPERTY: 2,\n COMMA: 3\n };\n\n var propertyStates = {\n _START_: 0,\n KEY: 1,\n COLON: 2\n };\n\n var arrayStates = {\n _START_: 0,\n OPEN_ARRAY: 1,\n VALUE: 2,\n COMMA: 3\n };\n\n var defaultSettings = {\n loc: true,\n source: null\n };\n\n function errorEof(input, tokenList, settings) {\n var loc = tokenList.length > 0 ? tokenList[tokenList.length - 1].loc.end : { line: 1, column: 1 };\n\n error(parseErrorTypes.unexpectedEnd(), input, settings.source, loc.line, loc.column);\n }\n\n /** @param hexCode {string} hexCode without '\\u' prefix */\n function parseHexEscape(hexCode) {\n var charCode = 0;\n\n for (var i = 0; i < 4; i++) {\n charCode = charCode * 16 + parseInt(hexCode[i], 16);\n }\n\n return String.fromCharCode(charCode);\n }\n\n var escapes = {\n 'b': '\\b', // Backspace\n 'f': '\\f', // Form feed\n 'n': '\\n', // New line\n 'r': '\\r', // Carriage return\n 't': '\\t' // Horizontal tab\n };\n\n var passEscapes = ['\"', '\\\\', '/'];\n\n function parseString( /** string */string) {\n var result = '';\n\n for (var i = 0; i < string.length; i++) {\n var char = string.charAt(i);\n\n if (char === '\\\\') {\n i++;\n var nextChar = string.charAt(i);\n if (nextChar === 'u') {\n result += parseHexEscape(string.substr(i + 1, 4));\n i += 4;\n } else if (passEscapes.indexOf(nextChar) !== -1) {\n result += nextChar;\n } else if (nextChar in escapes) {\n result += escapes[nextChar];\n } else {\n break;\n }\n } else {\n result += char;\n }\n }\n\n return result;\n }\n\n function parseObject(input, tokenList, index, settings) {\n // object: LEFT_BRACE (property (COMMA property)*)? RIGHT_BRACE\n var startToken = void 0;\n var object = {\n type: 'Object',\n children: []\n };\n var state = objectStates._START_;\n\n while (index < tokenList.length) {\n var token = tokenList[index];\n\n switch (state) {\n case objectStates._START_:\n {\n if (token.type === tokenTypes.LEFT_BRACE) {\n startToken = token;\n state = objectStates.OPEN_OBJECT;\n index++;\n } else {\n return null;\n }\n break;\n }\n\n case objectStates.OPEN_OBJECT:\n {\n if (token.type === tokenTypes.RIGHT_BRACE) {\n if (settings.loc) {\n object.loc = location(startToken.loc.start.line, startToken.loc.start.column, startToken.loc.start.offset, token.loc.end.line, token.loc.end.column, token.loc.end.offset, settings.source);\n }\n return {\n value: object,\n index: index + 1\n };\n } else {\n var property = parseProperty(input, tokenList, index, settings);\n object.children.push(property.value);\n state = objectStates.PROPERTY;\n index = property.index;\n }\n break;\n }\n\n case objectStates.PROPERTY:\n {\n if (token.type === tokenTypes.RIGHT_BRACE) {\n if (settings.loc) {\n object.loc = location(startToken.loc.start.line, startToken.loc.start.column, startToken.loc.start.offset, token.loc.end.line, token.loc.end.column, token.loc.end.offset, settings.source);\n }\n return {\n value: object,\n index: index + 1\n };\n } else if (token.type === tokenTypes.COMMA) {\n state = objectStates.COMMA;\n index++;\n } else {\n error(parseErrorTypes.unexpectedToken(substring(input, token.loc.start.offset, token.loc.end.offset), settings.source, token.loc.start.line, token.loc.start.column), input, settings.source, token.loc.start.line, token.loc.start.column);\n }\n break;\n }\n\n case objectStates.COMMA:\n {\n var _property = parseProperty(input, tokenList, index, settings);\n if (_property) {\n index = _property.index;\n object.children.push(_property.value);\n state = objectStates.PROPERTY;\n } else {\n error(parseErrorTypes.unexpectedToken(substring(input, token.loc.start.offset, token.loc.end.offset), settings.source, token.loc.start.line, token.loc.start.column), input, settings.source, token.loc.start.line, token.loc.start.column);\n }\n break;\n }\n }\n }\n\n errorEof(input, tokenList, settings);\n }\n\n function parseProperty(input, tokenList, index, settings) {\n // property: STRING COLON value\n var startToken = void 0;\n var property = {\n type: 'Property',\n key: null,\n value: null\n };\n var state = propertyStates._START_;\n\n while (index < tokenList.length) {\n var token = tokenList[index];\n\n switch (state) {\n case propertyStates._START_:\n {\n if (token.type === tokenTypes.STRING) {\n var key = {\n type: 'Identifier',\n value: parseString(input.slice(token.loc.start.offset + 1, token.loc.end.offset - 1)),\n raw: token.value\n };\n if (settings.loc) {\n key.loc = token.loc;\n }\n startToken = token;\n property.key = key;\n state = propertyStates.KEY;\n index++;\n } else {\n return null;\n }\n break;\n }\n\n case propertyStates.KEY:\n {\n if (token.type === tokenTypes.COLON) {\n state = propertyStates.COLON;\n index++;\n } else {\n error(parseErrorTypes.unexpectedToken(substring(input, token.loc.start.offset, token.loc.end.offset), settings.source, token.loc.start.line, token.loc.start.column), input, settings.source, token.loc.start.line, token.loc.start.column);\n }\n break;\n }\n\n case propertyStates.COLON:\n {\n var value = parseValue(input, tokenList, index, settings);\n property.value = value.value;\n if (settings.loc) {\n property.loc = location(startToken.loc.start.line, startToken.loc.start.column, startToken.loc.start.offset, value.value.loc.end.line, value.value.loc.end.column, value.value.loc.end.offset, settings.source);\n }\n return {\n value: property,\n index: value.index\n };\n }\n\n }\n }\n }\n\n function parseArray(input, tokenList, index, settings) {\n // array: LEFT_BRACKET (value (COMMA value)*)? RIGHT_BRACKET\n var startToken = void 0;\n var array = {\n type: 'Array',\n children: []\n };\n var state = arrayStates._START_;\n var token = void 0;\n\n while (index < tokenList.length) {\n token = tokenList[index];\n\n switch (state) {\n case arrayStates._START_:\n {\n if (token.type === tokenTypes.LEFT_BRACKET) {\n startToken = token;\n state = arrayStates.OPEN_ARRAY;\n index++;\n } else {\n return null;\n }\n break;\n }\n\n case arrayStates.OPEN_ARRAY:\n {\n if (token.type === tokenTypes.RIGHT_BRACKET) {\n if (settings.loc) {\n array.loc = location(startToken.loc.start.line, startToken.loc.start.column, startToken.loc.start.offset, token.loc.end.line, token.loc.end.column, token.loc.end.offset, settings.source);\n }\n return {\n value: array,\n index: index + 1\n };\n } else {\n var value = parseValue(input, tokenList, index, settings);\n index = value.index;\n array.children.push(value.value);\n state = arrayStates.VALUE;\n }\n break;\n }\n\n case arrayStates.VALUE:\n {\n if (token.type === tokenTypes.RIGHT_BRACKET) {\n if (settings.loc) {\n array.loc = location(startToken.loc.start.line, startToken.loc.start.column, startToken.loc.start.offset, token.loc.end.line, token.loc.end.column, token.loc.end.offset, settings.source);\n }\n return {\n value: array,\n index: index + 1\n };\n } else if (token.type === tokenTypes.COMMA) {\n state = arrayStates.COMMA;\n index++;\n } else {\n error(parseErrorTypes.unexpectedToken(substring(input, token.loc.start.offset, token.loc.end.offset), settings.source, token.loc.start.line, token.loc.start.column), input, settings.source, token.loc.start.line, token.loc.start.column);\n }\n break;\n }\n\n case arrayStates.COMMA:\n {\n var _value = parseValue(input, tokenList, index, settings);\n index = _value.index;\n array.children.push(_value.value);\n state = arrayStates.VALUE;\n break;\n }\n }\n }\n\n errorEof(input, tokenList, settings);\n }\n\n function parseLiteral(input, tokenList, index, settings) {\n // literal: STRING | NUMBER | TRUE | FALSE | NULL\n var token = tokenList[index];\n var value = null;\n\n switch (token.type) {\n case tokenTypes.STRING:\n {\n value = parseString(input.slice(token.loc.start.offset + 1, token.loc.end.offset - 1));\n break;\n }\n case tokenTypes.NUMBER:\n {\n value = Number(token.value);\n break;\n }\n case tokenTypes.TRUE:\n {\n value = true;\n break;\n }\n case tokenTypes.FALSE:\n {\n value = false;\n break;\n }\n case tokenTypes.NULL:\n {\n value = null;\n break;\n }\n default:\n {\n return null;\n }\n }\n\n var literal = {\n type: 'Literal',\n value: value,\n raw: token.value\n };\n if (settings.loc) {\n literal.loc = token.loc;\n }\n return {\n value: literal,\n index: index + 1\n };\n }\n\n function parseValue(input, tokenList, index, settings) {\n // value: literal | object | array\n var token = tokenList[index];\n\n var value = parseLiteral.apply(undefined, arguments) || parseObject.apply(undefined, arguments) || parseArray.apply(undefined, arguments);\n\n if (value) {\n return value;\n } else {\n error(parseErrorTypes.unexpectedToken(substring(input, token.loc.start.offset, token.loc.end.offset), settings.source, token.loc.start.line, token.loc.start.column), input, settings.source, token.loc.start.line, token.loc.start.column);\n }\n }\n\n var parse$1 = (function (input, settings) {\n settings = Object.assign({}, defaultSettings, settings);\n\n var tokenList = tokenize(input, settings);\n\n if (tokenList.length === 0) {\n errorEof(input, tokenList, settings);\n }\n\n var value = parseValue(input, tokenList, 0, settings);\n\n if (value.index === tokenList.length) {\n return value.value;\n }\n\n var token = tokenList[value.index];\n\n error(parseErrorTypes.unexpectedToken(substring(input, token.loc.start.offset, token.loc.end.offset), settings.source, token.loc.start.line, token.loc.start.column), input, settings.source, token.loc.start.line, token.loc.start.column);\n });\n\n return parse$1;\n\n })));\n });\n\n var jsonParse = (txt, reviver, context = 20) => {\n try {\n return JSON.parse(txt, reviver);\n } catch (e) {\n handleJsonNotString(txt);\n const syntaxErr = e.message.match(/^Unexpected token.*position\\s+(\\d+)/i);\n const errIdxBrokenJson = e.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1 : null;\n const errIdx = syntaxErr ? +syntaxErr[1] : errIdxBrokenJson;\n handleErrIdxNotNull(e, txt, errIdx, context);\n e.offset = errIdx;\n const lines = txt.substr(0, errIdx).split('\\n');\n e.startLine = lines.length;\n e.startColumn = lines[lines.length - 1].length;\n throw e;\n }\n };\n\n function handleJsonNotString(txt) {\n if (typeof txt !== 'string') {\n const isEmptyArray = Array.isArray(txt) && txt.length === 0;\n const errorMessage = `Cannot parse ${ \n isEmptyArray ? 'an empty array' : String(txt)}`;\n throw new TypeError(errorMessage);\n }\n }\n\n function handleErrIdxNotNull(e, txt, errIdx, context) {\n if (errIdx !== null) {\n const start = errIdx <= context\n ? 0\n : errIdx - context;\n const end = errIdx + context >= txt.length\n ? txt.length\n : errIdx + context;\n e.message += ` while parsing near '${\n start === 0 ? '' : '...'\n }${txt.slice(start, end)}${\n end === txt.length ? '' : '...'\n }'`;\n } else {\n e.message += ` while parsing '${txt.slice(0, context * 2)}'`;\n }\n }\n\n var utils_1 = createCommonjsModule(function (module) {\n const { yamlAST, loc } = src;\n\n\n\n\n const jsonPointerToArray = jsonPointer => (jsonPointer || '/').split('/').splice(1);\n\n const utils = module.exports;\n\n const getAST = (asyncapiYAMLorJSON, initialFormat) => {\n if (initialFormat === 'yaml') {\n return yamlAST(asyncapiYAMLorJSON);\n } else if (initialFormat === 'json') {\n return build(asyncapiYAMLorJSON);\n }\n };\n\n const findNode = (obj, location) => {\n for (const key of location) {\n obj = obj ? obj[utils.untilde(key)] : null;\n }\n return obj;\n };\n\n const findNodeInAST = (ast, location) => {\n let obj = ast;\n for (const key of location) {\n if (!Array.isArray(obj.children)) return;\n let childArray;\n\n const child = obj.children.find(c => { \n if (!c) return;\n\n if (c.type === 'Object') return childArray = c.children.find(a => a.key.value === utils.untilde(key));\n return c.type === 'Property' && c.key && c.key.value === utils.untilde(key);\n });\n\n if (!child) return;\n obj = childArray ? childArray.value : child.value;\n }\n return obj;\n };\n\n const findLocationOf = (keys, ast, initialFormat) => {\n if (initialFormat === 'js') return { jsonPointer: `/${keys.join('/')}` };\n \n let node;\n if (initialFormat === 'yaml') {\n node = findNode(ast, keys);\n } else if (initialFormat === 'json') {\n node = findNodeInAST(ast, keys);\n }\n\n if (!node) return { jsonPointer: `/${keys.join('/')}` };\n\n let info;\n if (initialFormat === 'yaml') {\n // disable eslint because loc is a Symbol\n // eslint-disable-next-line security/detect-object-injection\n info = node[loc];\n } else if (initialFormat === 'json') {\n info = node.loc;\n }\n\n if (!info) return { jsonPointer: `/${keys.join('/')}` };\n\n return {\n jsonPointer: `/${keys.join('/')}`,\n startLine: info.start.line,\n startColumn: info.start.column + 1,\n startOffset: info.start.offset,\n endLine: info.end ? info.end.line : undefined,\n endColumn: info.end ? info.end.column + 1 : undefined,\n endOffset: info.end ? info.end.offset : undefined,\n };\n };\n\n const getMapValue = (obj, key, Type) => {\n if (typeof key !== 'string' || !obj) return null;\n const v = obj[String(key)];\n if (v === undefined) return null;\n return Type ? new Type(v) : v;\n };\n\n utils.tilde = (str) => {\n return str.replace(/[~\\/]{1}/g, (m) => {\n switch (m) {\n case '/': return '~1';\n case '~': return '~0';\n }\n return m;\n });\n };\n\n utils.untilde = (str) => {\n if (!str.includes('~')) return str;\n return str.replace(/~[01]/g, (m) => {\n switch (m) {\n case '~1': return '/';\n case '~0': return '~';\n }\n return m;\n });\n };\n\n utils.toJS = (asyncapiYAMLorJSON) => {\n if (!asyncapiYAMLorJSON) {\n throw new parserError({\n type: 'null-or-falsey-document',\n title: 'Document can\\'t be null or falsey.',\n });\n }\n\n if (asyncapiYAMLorJSON.constructor && asyncapiYAMLorJSON.constructor.name === 'Object') {\n return {\n initialFormat: 'js',\n parsedJSON: asyncapiYAMLorJSON,\n };\n }\n \n if (typeof asyncapiYAMLorJSON !== 'string') {\n throw new parserError({\n type: 'invalid-document-type',\n title: 'The AsyncAPI document has to be either a string or a JS object.',\n });\n }\n if (asyncapiYAMLorJSON.trimLeft().startsWith('{')) {\n try {\n return {\n initialFormat: 'json',\n parsedJSON: jsonParse(asyncapiYAMLorJSON),\n };\n } catch (e) {\n throw new parserError({\n type: 'invalid-json',\n title: 'The provided JSON is not valid.',\n detail: e.message,\n location: {\n startOffset: e.offset,\n startLine: e.startLine,\n startColumn: e.startColumn,\n },\n });\n }\n } else {\n try {\n return {\n initialFormat: 'yaml',\n parsedJSON: jsYaml.safeLoad(asyncapiYAMLorJSON),\n };\n } catch (err) {\n throw new parserError({\n type: 'invalid-yaml',\n title: 'The provided YAML is not valid.',\n detail: err.message,\n location: {\n startOffset: err.mark.position,\n startLine: err.mark.line + 1,\n startColumn: err.mark.column + 1,\n },\n });\n }\n }\n };\n\n utils.createMapOfType = (obj, Type) => {\n const result = {};\n if (!obj) return result;\n\n Object.entries(obj).forEach(([key, value]) => {\n result[String(key)] = new Type(value);\n });\n\n return result;\n };\n\n utils.getMapValueOfType = (obj, key, Type) => {\n return getMapValue(obj, key, Type);\n };\n\n utils.getMapValueByKey = (obj, key) => {\n return getMapValue(obj, key);\n };\n\n /**\n * Extends a given model with additional methods related to frequently recurring models\n * @function mix\n * @private\n * @param {Object} model model to extend\n * @param {Array} mixins array with mixins to extend the model with\n */\n utils.mix = (model, ...mixins) => {\n let duplicatedMethods = false;\n function checkDuplication(mixin) {\n // check duplication of model in mixins array\n if (model === mixin) return true;\n // check duplication of model's methods\n duplicatedMethods = Object.keys(mixin).some(mixinMethod => model.prototype.hasOwnProperty(mixinMethod));\n return duplicatedMethods;\n }\n \n if (mixins.some(checkDuplication)) {\n if (duplicatedMethods) {\n throw new Error(`invalid mix function: model ${model.name} has at least one method that it is trying to replace by mixin`);\n } else {\n throw new Error(`invalid mix function: cannot use the model ${model.name} as a mixin`);\n }\n }\n mixins.forEach(mixin => Object.assign(model.prototype, mixin));\n return model;\n };\n\n utils.findRefs = (errors, initialFormat, asyncapiYAMLorJSON) => {\n let refs = [];\n\n errors.map(({ path }) => refs.push({ location: [...path.map(utils.tilde), '$ref'] }));\n\n if (initialFormat === 'js') {\n return refs.map(ref => ({ jsonPointer: `/${ref.location.join('/')}` }));\n }\n\n if (initialFormat === 'yaml') {\n const pseudoAST = yamlAST(asyncapiYAMLorJSON);\n refs = refs.map(ref => findLocationOf(ref.location, pseudoAST, initialFormat));\n } else if (initialFormat === 'json') {\n const ast = build(asyncapiYAMLorJSON);\n refs = refs.map(ref => findLocationOf(ref.location, ast, initialFormat));\n }\n\n return refs;\n };\n\n utils.getLocationOf = (jsonPointer, asyncapiYAMLorJSON, initialFormat) => {\n const ast = getAST(asyncapiYAMLorJSON, initialFormat);\n if (!ast) return { jsonPointer };\n\n return findLocationOf(jsonPointerToArray(jsonPointer), ast, initialFormat);\n };\n\n utils.improveAjvErrors = (errors, asyncapiYAMLorJSON, initialFormat) => {\n const ast = getAST(asyncapiYAMLorJSON, initialFormat);\n return errors.map(error => {\n const defaultLocation = { jsonPointer: error.dataPath || '/' };\n\n return {\n title: `${error.dataPath || '/'} ${error.message}`,\n location: ast ? findLocationOf(jsonPointerToArray(error.dataPath), ast, initialFormat) : defaultLocation,\n };\n });\n };\n\n /**\n * It parses the string and returns an array with all values that are between curly braces, including braces\n * @function parseUrlVariables\n * @private\n */\n utils.parseUrlVariables = str => {\n if (typeof str !== 'string') return;\n\n return str.match(/{(.+?)}/g); \n };\n\n /**\n * It parses the string and returns url parameters as string\n * @function parseUrlQueryParameters\n * @private\n */\n utils.parseUrlQueryParameters = str => {\n if (typeof str !== 'string') return;\n \n return str.match(/\\?((.*=.*)(&?))/g); \n };\n\n /**\n * Returns an array of not existing properties in provided object with names specified in provided array\n * @function getMissingProps\n * @private\n */\n utils.getMissingProps = (arr, obj) => {\n arr = arr.map(val => val.replace(/[{}]/g, ''));\n\n if (!obj) return arr;\n \n return arr.filter(val => {\n return !obj.hasOwnProperty(val);\n });\n };\n\n /**\n * Returns array of errors messages compatible with validationErrors parameter from ParserError\n *\n * @function groupValidationErrors\n * @private\n * @param {String} root name of the root element in the AsyncAPI document, for example channels\n * @param {String} errorMessage the text of the custom error message that will follow the path that points the error\n * @param {Map} errorElements map of error elements cause the validation error might happen in many places in the document. \n * The key should have a path information where the error was found, the value holds information about error element but it is not mandatory\n * @param {String} asyncapiYAMLorJSON AsyncAPI document in string\n * @param {String} initialFormat information of the document was oryginally JSON or YAML\n * @returns {Array} Object has always 2 keys, title and location. Title is a combination of errorElement key + errorMessage + errorElement value. \n * Location is the object with information about location of the issue in the file and json Pointer\n */\n utils.groupValidationErrors = (root, errorMessage, errorElements, asyncapiYAMLorJSON, initialFormat) => {\n const errors = [];\n\n errorElements.forEach((val, key) => {\n if (typeof val === 'string') val = utils.untilde(val);\n\n errors.push({\n title: val ? `${ utils.untilde(key) } ${errorMessage}: ${val}` : `${ utils.untilde(key) } ${errorMessage}`,\n location: utils.getLocationOf(`/${root}/${key}`, asyncapiYAMLorJSON, initialFormat)\n });\n });\n\n return errors;\n };\n\n /**\n * extend map with channel params missing corresponding param object\n *\n * @function setNotProvidedParams\n * @private\n * @param {Array} variables array of all identified URL variables in a channel name\n * @param {Object} val the channel object for which to identify the missing parameters\n * @param {String} key the channel name. \n * @param {Array} notProvidedChannelParams concatinated list of missing parameters for all channels\n * @param {Map} notProvidedParams result map of all missing parameters extended by this function\n */\n utils.setNotProvidedParams = (variables, val, key, notProvidedChannelParams, notProvidedParams) => {\n const missingChannelParams = utils.getMissingProps(variables, val.parameters);\n\n if (missingChannelParams.length) {\n notProvidedParams.set(utils.tilde(key),\n notProvidedChannelParams\n ? notProvidedChannelParams.concat(missingChannelParams)\n : missingChannelParams);\n }\n };\n });\n\n const {\n parseUrlVariables,\n getMissingProps,\n groupValidationErrors,\n tilde,\n parseUrlQueryParameters,\n setNotProvidedParams\n } = utils_1;\n const validationError = 'validation-errors';\n\n /**\n * Validates if variables provided in the url have corresponding variable object defined and if example is correct\n * @private\n * @param {Object} parsedJSON parsed AsyncAPI document\n * @param {String} asyncapiYAMLorJSON AsyncAPI document in string\n * @param {String} initialFormat information of the document was oryginally JSON or YAML\n * @returns {Boolean} true in case the document is valid, otherwise throws ParserError\n */\n function validateServerVariables$1(\n parsedJSON,\n asyncapiYAMLorJSON,\n initialFormat\n ) {\n const srvs = parsedJSON.servers;\n if (!srvs) return true;\n\n const srvsMap = new Map(Object.entries(srvs));\n const notProvidedVariables = new Map();\n const notProvidedExamplesInEnum = new Map();\n\n srvsMap.forEach((srvr, srvrName) => {\n const variables = parseUrlVariables(srvr.url);\n const variablesObj = srvr.variables;\n const notProvidedServerVars = notProvidedVariables.get(tilde(srvrName));\n if (!variables) return;\n\n const missingServerVariables = getMissingProps(variables, variablesObj);\n if (missingServerVariables.length) {\n notProvidedVariables.set(\n tilde(srvrName),\n notProvidedServerVars\n ? notProvidedServerVars.concat(missingServerVariables)\n : missingServerVariables\n );\n }\n\n if (variablesObj) {\n setNotValidExamples(variablesObj, srvrName, notProvidedExamplesInEnum);\n }\n });\n\n if (notProvidedVariables.size) {\n throw new parserError({\n type: validationError,\n title: 'Not all server variables are described with variable object',\n parsedJSON,\n validationErrors: groupValidationErrors(\n 'servers',\n 'server does not have a corresponding variable object for',\n notProvidedVariables,\n asyncapiYAMLorJSON,\n initialFormat\n ),\n });\n }\n\n if (notProvidedExamplesInEnum.size) {\n throw new parserError({\n type: validationError,\n title:\n 'Check your server variables. The example does not match the enum list',\n parsedJSON,\n validationErrors: groupValidationErrors(\n 'servers',\n 'server variable provides an example that does not match the enum list',\n notProvidedExamplesInEnum,\n asyncapiYAMLorJSON,\n initialFormat\n ),\n });\n }\n\n return true;\n }\n\n /**\n * extend map with info about examples that are not part of the enum\n *\n * @function setNotValidExamples\n * @private\n * @param {Array} variables server variables object\n * @param {String} srvrName name of the server where variables object is located \n * @param {Map} notProvidedExamplesInEnum result map of all wrong examples and what variable they belong to\n */\n function setNotValidExamples(variables, srvrName, notProvidedExamplesInEnum) {\n const variablesMap = new Map(Object.entries(variables));\n variablesMap.forEach((variable, variableName) => {\n if (variable.enum && variable.examples) {\n const wrongExamples = variable.examples.filter(r => !variable.enum.includes(r));\n if (wrongExamples.length) {\n notProvidedExamplesInEnum.set(\n `${tilde(srvrName)}/variables/${tilde(variableName)}`,\n wrongExamples\n );\n }\n }\n });\n }\n /**\n * Validates if operationIds are duplicated in the document\n *\n * @private\n * @param {Object} parsedJSON parsed AsyncAPI document\n * @param {String} asyncapiYAMLorJSON AsyncAPI document in string\n * @param {String} initialFormat information of the document was oryginally JSON or YAML\n * @returns {Boolean} true in case the document is valid, otherwise throws ParserError\n */\n function validateOperationId$1(\n parsedJSON,\n asyncapiYAMLorJSON,\n initialFormat,\n operations\n ) {\n const chnls = parsedJSON.channels;\n if (!chnls) return true;\n const chnlsMap = new Map(Object.entries(chnls));\n //it is a map of paths, the one that is a duplicate and the one that is duplicated\n const duplicatedOperations = new Map();\n //is is a 2-dimentional array that holds information with operationId value and its path\n const allOperations = [];\n\n const addDuplicateToMap = (op, channelName, opName) => {\n const operationId = op.operationId;\n if (!operationId) return;\n\n const operationPath = `${tilde(channelName)}/${opName}/operationId`;\n const isOperationIdDuplicated = allOperations.filter(\n (v) => v[0] === operationId\n );\n if (!isOperationIdDuplicated.length)\n return allOperations.push([operationId, operationPath]);\n\n //isOperationIdDuplicated always holds one record and it is an array of paths, the one that is a duplicate and the one that is duplicated\n duplicatedOperations.set(operationPath, isOperationIdDuplicated[0][1]);\n };\n\n chnlsMap.forEach((chnlObj, chnlName) => {\n operations.forEach((opName) => {\n const op = chnlObj[String(opName)];\n if (op) addDuplicateToMap(op, chnlName, opName);\n });\n });\n\n if (duplicatedOperations.size) {\n throw new parserError({\n type: validationError,\n title: 'operationId must be unique across all the operations.',\n parsedJSON,\n validationErrors: groupValidationErrors(\n 'channels',\n 'is a duplicate of',\n duplicatedOperations,\n asyncapiYAMLorJSON,\n initialFormat\n ),\n });\n }\n\n return true;\n }\n\n /**\n * Validates if server security is declared properly and the name has a corresponding security schema definition in components with the same name\n *\n * @private\n * @param {Object} parsedJSON parsed AsyncAPI document\n * @param {String} asyncapiYAMLorJSON AsyncAPI document in string\n * @param {String} initialFormat information of the document was oryginally JSON or YAML\n * @param {String[]} specialSecTypes list of security types that can have data in array\n * @returns {Boolean} true in case the document is valid, otherwise throws ParserError\n */\n function validateServerSecurity$1(\n parsedJSON,\n asyncapiYAMLorJSON,\n initialFormat,\n specialSecTypes\n ) {\n const srvs = parsedJSON.servers;\n if (!srvs) return true;\n\n const root = 'servers';\n const srvsMap = new Map(Object.entries(srvs));\n\n const missingSecSchema = new Map(),\n invalidSecurityValues = new Map();\n\n //we need to validate every server specified in the document\n srvsMap.forEach((server, serverName) => {\n const serverSecInfo = server.security;\n\n if (!serverSecInfo) return true;\n\n //server security info is an array of many possible values\n serverSecInfo.forEach((secObj) => {\n Object.keys(secObj).forEach((secName) => {\n //security schema is located in components object, we need to find if there is security schema with the same name as the server security info object\n const schema = findSecuritySchema(secName, parsedJSON.components);\n const srvrSecurityPath = `${serverName}/security/${secName}`;\n\n if (!schema.length) return missingSecSchema.set(srvrSecurityPath);\n\n //findSecuritySchema returns type always on index 1. Type is needed further to validate if server security info can be or not an empty array\n const schemaType = schema[1];\n if (!isSrvrSecProperArray(schemaType, specialSecTypes, secObj, secName))\n invalidSecurityValues.set(srvrSecurityPath, schemaType);\n });\n });\n });\n\n if (missingSecSchema.size) {\n throw new parserError({\n type: validationError,\n title:\n 'Server security name must correspond to a security scheme which is declared in the security schemes under the components object.',\n parsedJSON,\n validationErrors: groupValidationErrors(\n root,\n 'doesn\\'t have a corresponding security schema under the components object',\n missingSecSchema,\n asyncapiYAMLorJSON,\n initialFormat\n ),\n });\n }\n\n if (invalidSecurityValues.size) {\n throw new parserError({\n type: validationError,\n title:\n 'Server security value must be an empty array if corresponding security schema type is not oauth2 or openIdConnect.',\n parsedJSON,\n validationErrors: groupValidationErrors(\n root,\n 'security info must have an empty array because its corresponding security schema type is',\n invalidSecurityValues,\n asyncapiYAMLorJSON,\n initialFormat\n ),\n });\n }\n\n return true;\n }\n\n /**\n * Searches for server security corresponding object in security schema object\n * @private\n * @param {String} securityName name of the server security element that you want to localize in the security schema object\n * @param {Object} components components object from the AsyncAPI document\n * @returns {String[]} there are 2 elements in array, index 0 is the name of the security schema object and index 1 is it's type\n */\n function findSecuritySchema(securityName, components) {\n const secSchemes = components && components.securitySchemes;\n const secSchemesMap = secSchemes\n ? new Map(Object.entries(secSchemes))\n : new Map();\n const schemaInfo = [];\n\n //using for loop here as there is no point to iterate over all entries as it is enough to find first matching element\n for (const [schemaName, schema] of secSchemesMap.entries()) {\n if (schemaName === securityName) {\n schemaInfo.push(schemaName, schema.type);\n return schemaInfo;\n }\n }\n return schemaInfo;\n }\n\n /**\n * Validates if given server security is a proper empty array when security type requires it\n * @private\n * @param {String} schemaType security type, like httpApiKey or userPassword\n * @param {String[]} specialSecTypes list of special types that do not have to be an empty array\n * @param {Object} secObj server security object\n * @param {String} secName name os server security object\n * @returns {String[]} there are 2 elements in array, index 0 is the name of the security schema object and index 1 is it's type\n */\n function isSrvrSecProperArray(schemaType, specialSecTypes, secObj, secName) {\n if (!specialSecTypes.includes(schemaType)) {\n const securityObjValue = secObj[String(secName)];\n\n return !securityObjValue.length;\n }\n\n return true;\n }\n\n /**\n * Validates if parameters specified in the channel have corresponding parameters object defined and if name does not contain url parameters\n *\n * @private\n * @param {Object} parsedJSON parsed AsyncAPI document\n * @param {String} asyncapiYAMLorJSON AsyncAPI document in string\n * @param {String} initialFormat information of the document was oryginally JSON or YAML\n * @returns {Boolean} true in case the document is valid, otherwise throws ParserError\n */\n function validateChannels$1(parsedJSON, asyncapiYAMLorJSON, initialFormat) {\n const chnls = parsedJSON.channels;\n if (!chnls) return true;\n\n const chnlsMap = new Map(Object.entries(chnls));\n const notProvidedParams = new Map(); //return object for missing parameters\n const invalidChannelName = new Map(); //return object for invalid channel names with query parameters\n\n chnlsMap.forEach((val, key) => {\n const variables = parseUrlVariables(key);\n const notProvidedChannelParams = notProvidedParams.get(tilde(key));\n const queryParameters = parseUrlQueryParameters(key);\n\n //channel variable validation: fill return obeject with missing parameters\n if (variables) {\n setNotProvidedParams(\n variables,\n val,\n key,\n notProvidedChannelParams,\n notProvidedParams\n );\n }\n\n //channel name validation: fill return object with channels containing query parameters\n if (queryParameters) {\n invalidChannelName.set(tilde(key), queryParameters);\n }\n });\n\n //combine validation errors of both checks and output them as one array\n const parameterValidationErrors = groupValidationErrors(\n 'channels',\n 'channel does not have a corresponding parameter object for',\n notProvidedParams,\n asyncapiYAMLorJSON,\n initialFormat\n );\n const nameValidationErrors = groupValidationErrors(\n 'channels',\n 'channel contains invalid name with url query parameters',\n invalidChannelName,\n asyncapiYAMLorJSON,\n initialFormat\n );\n const allValidationErrors = parameterValidationErrors.concat(\n nameValidationErrors\n );\n\n //channel variable validation: throw exception if channel validation failes\n if (notProvidedParams.size || invalidChannelName.size) {\n throw new parserError({\n type: validationError,\n title: 'Channel validation failed',\n parsedJSON,\n validationErrors: allValidationErrors,\n });\n }\n\n return true;\n }\n\n var customValidators = {\n validateServerVariables: validateServerVariables$1,\n validateOperationId: validateOperationId$1,\n validateServerSecurity: validateServerSecurity$1,\n validateChannels: validateChannels$1,\n };\n\n /**\n * Implements common functionality for all the models.\n * @class\n * @alias module:@asyncapi/parser#Base\n * @returns {Base}\n */\n class Base {\n constructor (json) {\n if (!json) throw new parserError(`Invalid JSON to instantiate the ${this.constructor.name} object.`);\n this._json = json;\n }\n\n /**\n * @returns {any}\n */\n json(key) {\n if (key === undefined) return this._json;\n if (!this._json) return;\n return this._json[String(key)];\n }\n }\n\n var base = Base;\n\n /**\n * Implements functions to deal with the SpecificationExtensions object.\n * @mixin\n */\n const MixinSpecificationExtensions = {\n /**\n * @returns {boolean}\n */\n hasExtensions() {\n return !!this.extensionKeys().length;\n },\n\n /**\n * @returns {Object}\n */\n extensions() {\n const result = {};\n Object.entries(this._json).forEach(([key, value]) => {\n if ((/^x-[\\w\\d\\.\\-\\_]+$/).test(key)) {\n result[String(key)] = value;\n }\n });\n return result;\n },\n\n /**\n * @returns {string[]}\n */\n extensionKeys() {\n return Object.keys(this.extensions());\n },\n\n /**\n * @returns {string[]}\n */\n extKeys() {\n return this.extensionKeys();\n },\n\n /**\n * @param {string} key - Extension key.\n * @returns {boolean}\n */\n hasExtension(key) {\n if (!key.startsWith('x-')) {\n return false;\n }\n return !!this._json[String(key)];\n },\n\n /**\n * @param {string} key - Extension key.\n * @returns {any}\n */\n extension(key) {\n if (!key.startsWith('x-')) {\n return null;\n }\n return this._json[String(key)];\n },\n\n /**\n * @param {string} key - Extension key.\n * @returns {boolean}\n */ \n hasExt(key) {\n return this.hasExtension(key);\n },\n\n /**\n * @param {string} key - Extension key.\n * @returns {any}\n */\n ext(key) {\n return this.extension(key);\n },\n };\n\n var specificationExtensions = MixinSpecificationExtensions;\n\n const { mix: mix$g } = utils_1;\n\n\n\n\n\n /**\n * Implements functions to deal with the License object.\n * @class\n * @alias module:@asyncapi/parser#License\n * @extends Base\n * @mixes MixinSpecificationExtensions\n * @returns {License}\n */\n class License extends base {\n /**\n * @returns {string}\n */\n name() {\n return this._json.name;\n }\n \n /**\n * @returns {string}\n */\n url() {\n return this._json.url;\n }\n }\n\n var license = mix$g(License, specificationExtensions);\n\n const { mix: mix$f } = utils_1;\n\n\n\n\n\n /**\n * Implements functions to deal with the Contact object.\n * @class\n * @alias module:@asyncapi/parser#Contact\n * @extends Base\n * @mixes MixinSpecificationExtensions\n * @returns {Contact}\n */\n class Contact extends base {\n /**\n * @returns {string}\n */\n name() {\n return this._json.name;\n }\n \n /**\n * @returns {string}\n */\n url() {\n return this._json.url;\n }\n \n /**\n * @returns {string}\n */\n email() {\n return this._json.email;\n }\n }\n\n var contact = mix$f(Contact, specificationExtensions);\n\n const { getMapValueByKey: getMapValueByKey$1 } = utils_1;\n\n /**\n * Implements functions to deal with the description field.\n * @mixin\n */\n const MixinDescription = {\n /**\n * @returns {boolean}\n */\n hasDescription() {\n return !!this._json.description;\n },\n\n /**\n * @returns {(string | null)}\n */\n description() {\n return getMapValueByKey$1(this._json, 'description');\n },\n };\n\n var description$1 = MixinDescription;\n\n const { mix: mix$e } = utils_1;\n\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with the Info object.\n * @class\n * @alias module:@asyncapi/parser#Info\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinSpecificationExtensions\n * @returns {Info}\n */\n class Info extends base {\n /**\n * @returns {string}\n */\n title() {\n return this._json.title;\n }\n \n /**\n * @returns {string}\n */\n version() {\n return this._json.version;\n }\n\n /**\n * @returns {(string | undefined)}\n */\n termsOfService() {\n return this._json.termsOfService;\n }\n\n /**\n * @returns {License}\n */\n license() {\n if (!this._json.license) return null;\n return new license(this._json.license);\n }\n\n /**\n * @returns {Contact}\n */\n contact() {\n if (!this._json.contact) return null;\n return new contact(this._json.contact);\n }\n }\n\n var info = mix$e(Info, description$1, specificationExtensions);\n\n const { mix: mix$d } = utils_1;\n\n\n\n\n\n\n /**\n * Implements functions to deal with a ServerVariable object.\n * @class\n * @alias module:@asyncapi/parser#ServerVariable\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinSpecificationExtensions\n * @returns {ServerVariable}\n */\n class ServerVariable extends base {\n /**\n * @returns {any[]}\n */\n allowedValues() {\n return this._json.enum;\n }\n\n /**\n * @param {string} name - Name of the variable.\n * @returns {boolean}\n */\n allows(name) {\n if (this._json.enum === undefined) return true;\n return this._json.enum.includes(name);\n }\n\n /**\n * @returns {boolean}\n */\n hasAllowedValues() {\n return this._json.enum !== undefined;\n }\n\n /**\n * @returns {string}\n */\n defaultValue() {\n return this._json.default;\n }\n\n /**\n * @returns {boolean}\n */\n hasDefaultValue() {\n return this._json.default !== undefined;\n }\n\n /**\n * @returns {string[]}\n */\n examples() {\n return this._json.examples;\n }\n }\n\n var serverVariable = mix$d(ServerVariable, description$1, specificationExtensions);\n\n /**\n * Implements functions to deal with a ServerSecurityRequirement object.\n * @class\n * @alias module:@asyncapi/parser#ServerSecurityRequirement\n * @extends Base\n * @returns {ServerSecurityRequirement}\n */\n class ServerSecurityRequirement extends base {\n }\n\n var serverSecurityRequirement = ServerSecurityRequirement;\n\n const { getMapValueByKey } = utils_1;\n\n /**\n * Implements functions to deal with the common Bindings object.\n * @mixin\n */\n const MixinBindings = {\n /**\n * @returns {boolean}\n */\n hasBindings() {\n return !!(this._json.bindings && Object.keys(this._json.bindings).length);\n },\n\n /**\n * @returns {Object}\n */\n bindings() {\n return this.hasBindings() ? this._json.bindings : {};\n },\n\n /**\n * @returns {string[]}\n */\n bindingProtocols() {\n return Object.keys(this.bindings());\n },\n\n /**\n * @param {string} name - Name of the binding.\n * @returns {boolean}\n */\n hasBinding(name) {\n return this.hasBindings() && !!this._json.bindings[String(name)];\n },\n\n /**\n * @param {string} name - Name of the binding.\n * @returns {(Object | null)}\n */\n binding(name) {\n return getMapValueByKey(this._json.bindings, name);\n },\n };\n\n var bindings = MixinBindings;\n\n const { createMapOfType: createMapOfType$5, getMapValueOfType: getMapValueOfType$6, mix: mix$c } = utils_1;\n\n\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with a Server object.\n * @class\n * @alias module:@asyncapi/parser#Server\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinBindings\n * @mixes MixinSpecificationExtensions\n * @returns {Server}\n */\n class Server extends base {\n /**\n * @returns {string}\n */\n url() {\n return this._json.url;\n }\n\n /**\n * @returns {string}\n */\n protocol() {\n return this._json.protocol;\n }\n\n /**\n * @returns {string}\n */\n protocolVersion() {\n return this._json.protocolVersion;\n }\n\n /**\n * @returns {Object}\n */\n variables() {\n return createMapOfType$5(this._json.variables, serverVariable);\n }\n\n /**\n * @param {string} name - Name of the server variable.\n * @returns {ServerVariable}\n */\n variable(name) {\n return getMapValueOfType$6(this._json.variables, name, serverVariable);\n }\n\n /**\n * @returns {boolean}\n */\n hasVariables() {\n return !!this._json.variables;\n }\n\n /**\n * @returns {ServerSecurityRequirement[]}\n */\n security() {\n if (!this._json.security) return null;\n return this._json.security.map(sec => new serverSecurityRequirement(sec));\n }\n }\n\n var server = mix$c(Server, description$1, bindings, specificationExtensions);\n\n const { mix: mix$b } = utils_1;\n\n\n\n\n\n\n /**\n * Implements functions to deal with an ExternalDocs object.\n * @class\n * @alias module:@asyncapi/parser#ExternalDocs\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinSpecificationExtensions\n * @returns {ExternalDocs}\n */\n class ExternalDocs extends base {\n /**\n * @returns {string}\n */\n url() {\n return this._json.url;\n }\n }\n\n var externalDocs$1 = mix$b(ExternalDocs, description$1, specificationExtensions);\n\n const { getMapValueOfType: getMapValueOfType$5 } = utils_1;\n\n\n\n /**\n * Implements functions to deal with the ExternalDocs object.\n * @mixin\n */\n const MixinExternalDocs = {\n /**\n * @returns {boolean}\n */\n hasExternalDocs() {\n return !!(this._json.externalDocs && Object.keys(this._json.externalDocs).length);\n },\n\n /**\n * @returns {(ExternalDocs | null)}\n */\n externalDocs() {\n return getMapValueOfType$5(this._json, 'externalDocs', externalDocs$1);\n },\n };\n\n var externalDocs = MixinExternalDocs;\n\n const { createMapOfType: createMapOfType$4, getMapValueOfType: getMapValueOfType$4, mix: mix$a } = utils_1;\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with a Schema object.\n * @class\n * @alias module:@asyncapi/parser#Schema\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinExternalDocs\n * @mixes MixinSpecificationExtensions\n * @returns {Schema}\n */\n class Schema extends base {\n /**\n * @returns {string}\n */\n uid() {\n return this.$id() || this.ext('x-parser-schema-id');\n }\n \n /**\n * @returns {string}\n */\n $id() {\n return this._json.$id;\n }\n \n /**\n * @returns {number}\n */\n multipleOf() {\n return this._json.multipleOf;\n }\n \n /**\n * @returns {number}\n */\n maximum() {\n return this._json.maximum;\n }\n \n /**\n * @returns {number}\n */\n exclusiveMaximum() {\n return this._json.exclusiveMaximum;\n }\n \n /**\n * @returns {number}\n */\n minimum() {\n return this._json.minimum;\n }\n \n /**\n * @returns {number}\n */\n exclusiveMinimum() {\n return this._json.exclusiveMinimum;\n }\n \n /**\n * @returns {number}\n */\n maxLength() {\n return this._json.maxLength;\n }\n \n /**\n * @returns {number}\n */\n minLength() {\n return this._json.minLength;\n }\n \n /**\n * @returns {string}\n */\n pattern() {\n return this._json.pattern;\n }\n \n /**\n * @returns {number}\n */\n maxItems() {\n return this._json.maxItems;\n }\n \n /**\n * @returns {number}\n */\n minItems() {\n return this._json.minItems;\n }\n \n /**\n * @returns {boolean}\n */\n uniqueItems() {\n return !!this._json.uniqueItems;\n }\n \n /**\n * @returns {number}\n */\n maxProperties() {\n return this._json.maxProperties;\n }\n \n /**\n * @returns {number}\n */\n minProperties() {\n return this._json.minProperties;\n }\n \n /**\n * @returns {string[]}\n */\n required() {\n return this._json.required;\n }\n \n /**\n * @returns {any[]}\n */\n enum() {\n return this._json.enum;\n }\n \n /**\n * @returns {string|string[]}\n */\n type() {\n return this._json.type;\n }\n \n /**\n * @returns {Schema[]}\n */\n allOf() {\n if (!this._json.allOf) return null;\n return this._json.allOf.map(s => new Schema(s));\n }\n \n /**\n * @returns {Schema[]}\n */\n oneOf() {\n if (!this._json.oneOf) return null;\n return this._json.oneOf.map(s => new Schema(s));\n }\n \n /**\n * @returns {Schema[]}\n */\n anyOf() {\n if (!this._json.anyOf) return null;\n return this._json.anyOf.map(s => new Schema(s));\n }\n \n /**\n * @returns {Schema}\n */\n not() {\n if (!this._json.not) return null;\n return new Schema(this._json.not);\n }\n \n /**\n * @returns {Schema|Schema[]}\n */\n items() {\n if (!this._json.items) return null;\n if (Array.isArray(this._json.items)) {\n return this._json.items.map(s => new Schema(s));\n }\n return new Schema(this._json.items);\n }\n \n /**\n * @returns {Object}\n */\n properties() {\n return createMapOfType$4(this._json.properties, Schema);\n }\n\n /**\n * @param {string} name - Name of the property.\n * @returns {Schema}\n */\n property(name) {\n return getMapValueOfType$4(this._json.properties, name, Schema);\n }\n \n /**\n * @returns {boolean|Schema}\n */\n additionalProperties() {\n const ap = this._json.additionalProperties;\n if (ap === undefined || ap === null) return;\n if (typeof ap === 'boolean') return ap;\n return new Schema(ap);\n }\n \n /**\n * @returns {Schema}\n */\n additionalItems() {\n const ai = this._json.additionalItems;\n if (ai === undefined || ai === null) return;\n return new Schema(ai);\n }\n \n /**\n * @returns {Object}\n */\n patternProperties() {\n return createMapOfType$4(this._json.patternProperties, Schema);\n }\n\n /**\n * @returns {any}\n */\n const() {\n return this._json.const;\n }\n\n /**\n * @returns {Schema}\n */\n contains() {\n if (!this._json.contains) return null;\n return new Schema(this._json.contains);\n }\n\n /**\n * @returns {Object}\n */\n dependencies() {\n if (!this._json.dependencies) return null;\n const result = {};\n Object.entries(this._json.dependencies).forEach(([key, value]) => {\n result[String(key)] = !Array.isArray(value) ? new Schema(value) : value;\n });\n return result;\n }\n\n /**\n * @returns {Schema}\n */\n propertyNames() {\n if (!this._json.propertyNames) return null;\n return new Schema(this._json.propertyNames);\n }\n\n /**\n * @returns {Schema}\n */\n if() {\n if (!this._json.if) return null;\n return new Schema(this._json.if);\n }\n\n /**\n * @returns {Schema}\n */\n then() {\n if (!this._json.then) return null;\n return new Schema(this._json.then);\n }\n\n /**\n * @returns {Schema}\n */\n else() {\n if (!this._json.else) return null;\n return new Schema(this._json.else);\n }\n\n /**\n * @returns {string}\n */\n format() {\n return this._json.format;\n }\n\n /**\n * @returns {string}\n */\n contentEncoding() {\n return this._json.contentEncoding;\n }\n\n /**\n * @returns {string}\n */\n contentMediaType() {\n return this._json.contentMediaType;\n }\n\n /**\n * @returns {Object}\n */\n definitions() {\n return createMapOfType$4(this._json.definitions, Schema);\n }\n\n /**\n * @returns {string}\n */\n title() {\n return this._json.title;\n }\n\n /**\n * @returns {any}\n */\n default() {\n return this._json.default;\n }\n\n /**\n * @returns {boolean}\n */\n deprecated() {\n return this._json.deprecated;\n }\n\n /**\n * @returns {string}\n */\n discriminator() {\n return this._json.discriminator;\n }\n /**\n * @returns {boolean}\n */\n readOnly() {\n return !!this._json.readOnly;\n }\n\n /**\n * @returns {boolean}\n */\n writeOnly() {\n return !!this._json.writeOnly;\n }\n\n /**\n * @returns {any[]}\n */\n examples() {\n return this._json.examples;\n }\n\n /**\n * @returns {boolean}\n */\n isCircular() {\n return !!this.ext('x-parser-circular');\n }\n\n /**\n * @returns {boolean}\n */\n hasCircularProps() {\n return !!this.ext('x-parser-circular-props');\n }\n\n /**\n * @returns {string[]}\n */\n circularProps() {\n return this.ext('x-parser-circular-props');\n }\n }\n\n var schema$1 = mix$a(Schema, description$1, externalDocs, specificationExtensions);\n\n const { mix: mix$9 } = utils_1;\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with a ChannelParameter object.\n * @class\n * @alias module:@asyncapi/parser#ChannelParameter\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinSpecificationExtensions\n * @returns {ChannelParameter}\n */\n class ChannelParameter extends base {\n /**\n * @returns {string}\n */\n location() {\n return this._json.location;\n }\n \n /**\n * @returns {Schema}\n */\n schema() {\n if (!this._json.schema) return null;\n return new schema$1(this._json.schema);\n }\n }\n\n var channelParameter = mix$9(ChannelParameter, description$1, specificationExtensions);\n\n const { mix: mix$8 } = utils_1;\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with a Tag object.\n * @class\n * @alias module:@asyncapi/parser#Tag\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinExternalDocs\n * @mixes MixinSpecificationExtensions\n * @returns {Tag}\n */\n class Tag extends base {\n /**\n * @returns {string}\n */\n name() {\n return this._json.name;\n }\n }\n\n var tag = mix$8(Tag, description$1, externalDocs, specificationExtensions);\n\n /**\n * Implements functions to deal with the Tags object.\n * @mixin\n */\n const MixinTags = {\n /**\n * @returns {boolean}\n */\n hasTags() {\n return !!(Array.isArray(this._json.tags) && this._json.tags.length);\n },\n\n /**\n * @returns {Tag[]}\n */\n tags() {\n return this.hasTags() ? this._json.tags.map(t => new tag(t)) : [];\n },\n\n /**\n * @returns {string[]}\n */\n tagNames() {\n return this.hasTags() ? this._json.tags.map(t => t.name) : [];\n },\n\n /**\n * @param {string} name - Name of the tag.\n * @returns {boolean}\n */\n hasTag(name) {\n return this.hasTags() && this._json.tags.some(t => t.name === name);\n },\n\n /**\n * @param {string} name - Name of the tag.\n * @returns {(Tag | null)}\n */\n tag(name) {\n const tg = this.hasTags() && this._json.tags.find(t => t.name === name);\n return tg ? new tag(tg) : null;\n },\n };\n\n var tags = MixinTags;\n\n const { mix: mix$7 } = utils_1;\n\n\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with the common properties Operation and OperationTrait object have.\n * @class\n * @alias module:@asyncapi/parser#OperationTraitable\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinTags\n * @mixes MixinExternalDocs\n * @mixes MixinBindings\n * @mixes MixinSpecificationExtensions\n * @returns {OperationTraitable}\n */\n class OperationTraitable extends base {\n /**\n * @returns {string}\n */\n id() {\n return this._json.operationId;\n }\n \n /**\n * @returns {string}\n */\n summary() {\n return this._json.summary;\n }\n }\n\n var operationTraitable = mix$7(OperationTraitable, description$1, tags, externalDocs, bindings, specificationExtensions);\n\n const { mix: mix$6 } = utils_1;\n\n\n\n\n\n\n /**\n * Implements functions to deal with a CorrelationId object.\n * @class\n * @alias module:@asyncapi/parser#CorrelationId\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinSpecificationExtensions\n * @returns {CorrelationId}\n */\n class CorrelationId extends base {\n /**\n * @returns {string}\n */\n location() {\n return this._json.location;\n }\n }\n\n var correlationId = mix$6(CorrelationId, specificationExtensions, description$1);\n\n const { getMapValueOfType: getMapValueOfType$3, mix: mix$5 } = utils_1;\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with a the common properties that Message and MessageTrait objects have.\n * @class\n * @alias module:@asyncapi/parser#MessageTraitable\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinTags\n * @mixes MixinExternalDocs\n * @mixes MixinBindings\n * @mixes MixinSpecificationExtensions\n * @returns {MessageTraitable}\n */\n class MessageTraitable extends base {\n /**\n * @returns {Schema}\n */\n headers() {\n if (!this._json.headers) return null;\n return new schema$1(this._json.headers);\n }\n\n /**\n * @param {string} name - Name of the header.\n * @returns {Schema}\n */\n header(name) {\n if (!this._json.headers) return null;\n return getMapValueOfType$3(this._json.headers.properties, name, schema$1);\n }\n\n /**\n * @returns {CorrelationId}\n */\n correlationId() {\n if (!this._json.correlationId) return null;\n return new correlationId(this._json.correlationId);\n }\n\n /**\n * @returns {string}\n */\n schemaFormat() {\n return 'application/schema+json;version=draft-07';\n }\n\n /**\n * @returns {string}\n */\n contentType() {\n return this._json.contentType;\n }\n\n /**\n * @returns {string}\n */\n name() {\n return this._json.name;\n }\n\n /**\n * @returns {string}\n */\n title() {\n return this._json.title;\n }\n\n /**\n * @returns {string}\n */\n summary() {\n return this._json.summary;\n }\n\n /**\n * @returns {any[]}\n */\n examples() {\n return this._json.examples;\n }\n }\n\n var messageTraitable = mix$5(MessageTraitable, description$1, tags, externalDocs, bindings, specificationExtensions);\n\n /**\n * Implements functions to deal with a Message object.\n * @class\n * @alias module:@asyncapi/parser#Message\n * @extends MessageTraitable\n * @returns {Message}\n */\n class Message extends messageTraitable {\n /**\n * @returns {string}\n */\n uid() {\n return this.name() || this.ext('x-parser-message-name') || Buffer$1.from(JSON.stringify(this._json)).toString('base64');\n }\n\n /**\n * @returns {Schema}\n */\n payload() {\n if (!this._json.payload) return null;\n return new schema$1(this._json.payload);\n }\n\n /**\n * @returns {any}\n */\n originalPayload() {\n return this._json['x-parser-original-payload'] || this.payload();\n }\n\n /**\n * @returns {string}\n */\n originalSchemaFormat() {\n return this._json['x-parser-original-schema-format'] || this.schemaFormat();\n }\n }\n\n var message = Message;\n\n /**\n * Implements functions to deal with an Operation object.\n * @class\n * @alias module:@asyncapi/parser#Operation\n * @extends OperationTraitable\n * @returns {Operation}\n */\n class Operation extends operationTraitable {\n /**\n * @returns {boolean}\n */\n hasMultipleMessages() {\n if (this._json.message && this._json.message.oneOf && this._json.message.oneOf.length > 1) return true;\n if (!this._json.message) return false;\n return false;\n }\n \n /**\n * @returns {Message[]}\n */\n messages() {\n if (!this._json.message) return [];\n if (this._json.message.oneOf) return this._json.message.oneOf.map(m => new message(m));\n return [new message(this._json.message)];\n }\n \n /**\n * @returns {Message}\n */\n message(index) {\n if (!this._json.message) return null;\n if (!this._json.message.oneOf) return new message(this._json.message);\n if (typeof index !== 'number') return null;\n if (index > this._json.message.oneOf.length - 1) return null;\n return new message(this._json.message.oneOf[+index]);\n }\n }\n\n var operation = Operation;\n\n /**\n * Implements functions to deal with a PublishOperation object.\n * @class\n * @alias module:@asyncapi/parser#PublishOperation\n * @extends Operation\n * @returns {PublishOperation}\n */\n class PublishOperation extends operation {\n /**\n * @returns {boolean}\n */\n isPublish() {\n return true;\n }\n \n /**\n * @returns {boolean}\n */\n isSubscribe() {\n return false;\n }\n\n /**\n * @returns {string}\n */\n kind() {\n return 'publish';\n }\n }\n\n var publishOperation = PublishOperation;\n\n /**\n * Implements functions to deal with a SubscribeOperation object.\n * @class\n * @alias module:@asyncapi/parser#SubscribeOperation\n * @extends Operation\n * @returns {SubscribeOperation}\n */\n class SubscribeOperation extends operation {\n /**\n * @returns {boolean}\n */\n isPublish() {\n return false;\n }\n \n /**\n * @returns {boolean}\n */\n isSubscribe() {\n return true;\n }\n\n /**\n * @returns {string}\n */\n kind() {\n return 'subscribe';\n }\n }\n\n var subscribeOperation = SubscribeOperation;\n\n const { createMapOfType: createMapOfType$3, getMapValueOfType: getMapValueOfType$2, mix: mix$4 } = utils_1;\n\n\n\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with a Channel object.\n * @class\n * @alias module:@asyncapi/parser#Channel\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinBindings\n * @mixes MixinSpecificationExtensions\n * @returns {Channel}\n */\n class Channel extends base {\n /**\n * @returns {Object}\n */\n parameters() {\n return createMapOfType$3(this._json.parameters, channelParameter);\n }\n\n /**\n * @param {string} name - Name of the parameter.\n * @returns {ChannelParameter}\n */\n parameter(name) {\n return getMapValueOfType$2(this._json.parameters, name, channelParameter);\n }\n\n /**\n * @returns {boolean}\n */\n hasParameters() {\n return !!this._json.parameters;\n }\n\n /**\n * @returns {PublishOperation}\n */\n publish() {\n if (!this._json.publish) return null;\n return new publishOperation(this._json.publish);\n }\n\n /**\n * @returns {SubscribeOperation}\n */\n subscribe() {\n if (!this._json.subscribe) return null;\n return new subscribeOperation(this._json.subscribe);\n }\n\n /**\n * @returns {boolean}\n */\n hasPublish() {\n return !!this._json.publish;\n }\n\n /**\n * @returns {boolean}\n */\n hasSubscribe() {\n return !!this._json.subscribe;\n }\n }\n\n var channel = mix$4(Channel, description$1, bindings, specificationExtensions);\n\n const { mix: mix$3 } = utils_1;\n\n\n\n\n\n /**\n * Implements functions to deal with a OAuthFlow object.\n * @class\n * @alias module:@asyncapi/parser#OAuthFlow\n * @extends Base\n * @mixes MixinSpecificationExtensions\n * @returns {OAuthFlow}\n */\n class OAuthFlow extends base {\n /**\n * @returns {string}\n */\n authorizationUrl() {\n return this._json.authorizationUrl;\n }\n\n /**\n * @returns {string}\n */\n tokenUrl() {\n return this._json.tokenUrl;\n }\n\n /**\n * @returns {string}\n */\n refreshUrl() {\n return this._json.refreshUrl;\n }\n\n /**\n * @returns {Object}\n */\n scopes() {\n return this._json.scopes;\n }\n }\n\n var oauthFlow = mix$3(OAuthFlow, specificationExtensions);\n\n const { createMapOfType: createMapOfType$2, mix: mix$2 } = utils_1;\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with a SecurityScheme object.\n * @class\n * @alias module:@asyncapi/parser#SecurityScheme\n * @extends Base\n * @mixes MixinDescription\n * @mixes MixinSpecificationExtensions\n * @returns {SecurityScheme}\n */\n class SecurityScheme extends base {\n /**\n * @returns {string}\n */\n type() {\n return this._json.type;\n }\n \n /**\n * @returns {string}\n */\n name() {\n return this._json.name;\n }\n \n /**\n * @returns {string}\n */\n in() {\n return this._json.in;\n }\n \n /**\n * @returns {string}\n */\n scheme() {\n return this._json.scheme;\n }\n \n /**\n * @returns {string}\n */\n bearerFormat() {\n return this._json.bearerFormat;\n }\n \n /**\n * @returns {string}\n */\n openIdConnectUrl() {\n return this._json.openIdConnectUrl;\n }\n \n /**\n * @returns {Object}\n */\n flows() {\n return createMapOfType$2(this._json.flows, oauthFlow);\n }\n }\n\n var securityScheme = mix$2(SecurityScheme, description$1, specificationExtensions);\n\n /**\n * Implements functions to deal with a OperationTrait object.\n * @class\n * @alias module:@asyncapi/parser#OperationTrait\n * @extends OperationTraitable\n * @returns {OperationTrait}\n */\n class OperationTrait extends operationTraitable {\n }\n\n var operationTrait = OperationTrait;\n\n /**\n * Implements functions to deal with a MessageTrait object.\n * @class\n * @alias module:@asyncapi/parser#MessageTrait\n * @extends MessageTraitable\n * @returns {MessageTrait}\n */\n class MessageTrait extends messageTraitable {\n }\n\n var messageTrait = MessageTrait;\n\n const { createMapOfType: createMapOfType$1, getMapValueOfType: getMapValueOfType$1, mix: mix$1 } = utils_1;\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Implements functions to deal with a Components object.\n * @class\n * @alias module:@asyncapi/parser#Components\n * @extends Base\n * @mixes MixinSpecificationExtensions\n * @returns {Components}\n */\n class Components extends base {\n /**\n * @returns {Object}\n */\n messages() {\n return createMapOfType$1(this._json.messages, message);\n }\n\n /**\n * @returns {boolean}\n */\n hasMessages() {\n return !!this._json.messages;\n }\n\n /**\n * @param {string} name - Name of the message.\n * @returns {Message}\n */\n message(name) {\n return getMapValueOfType$1(this._json.messages, name, message);\n }\n \n /**\n * @returns {Object}\n */\n schemas() {\n return createMapOfType$1(this._json.schemas, schema$1);\n }\n\n /**\n * @returns {boolean}\n */\n hasSchemas() {\n return !!this._json.schemas;\n }\n\n /**\n * @param {string} name - Name of the schema.\n * @returns {Schema}\n */\n schema(name) {\n return getMapValueOfType$1(this._json.schemas, name, schema$1);\n }\n \n /**\n * @returns {Object}\n */\n securitySchemes() {\n return createMapOfType$1(this._json.securitySchemes, securityScheme);\n }\n\n /**\n * @returns {boolean}\n */\n hasSecuritySchemes() {\n return !!this._json.securitySchemes;\n }\n \n /**\n * @param {string} name - Name of the security schema.\n * @returns {SecurityScheme}\n */\n securityScheme(name) {\n return getMapValueOfType$1(this._json.securitySchemes, name, securityScheme);\n }\n \n /**\n * @returns {Object}\n */\n parameters() {\n return createMapOfType$1(this._json.parameters, channelParameter);\n }\n\n /**\n * @returns {boolean}\n */\n hasParameters() {\n return !!this._json.parameters;\n }\n\n /**\n * @param {string} name - Name of the channel parameter.\n * @returns {ChannelParameter}\n */\n parameter(name) {\n return getMapValueOfType$1(this._json.parameters, name, channelParameter);\n }\n \n /**\n * @returns {Object}\n */\n correlationIds() {\n return createMapOfType$1(this._json.correlationIds, correlationId);\n }\n\n /**\n * @returns {boolean}\n */\n hasCorrelationIds() {\n return !!this._json.correlationIds;\n }\n\n /**\n * @param {string} name - Name of the correlationId.\n * @returns {CorrelationId}\n */\n correlationId(name) {\n return getMapValueOfType$1(this._json.correlationIds, name, correlationId);\n }\n \n /**\n * @returns {Object}\n */\n operationTraits() {\n return createMapOfType$1(this._json.operationTraits, operationTrait);\n }\n\n /**\n * @returns {boolean}\n */\n hasOperationTraits() {\n return !!this._json.operationTraits;\n }\n\n /**\n * @param {string} name - Name of the operation trait.\n * @returns {OperationTrait}\n */\n operationTrait(name) {\n return getMapValueOfType$1(this._json.operationTraits, name, operationTrait);\n }\n \n /**\n * @returns {Object}\n */\n messageTraits() {\n return createMapOfType$1(this._json.messageTraits, messageTrait);\n }\n\n /**\n * @returns {boolean}\n */\n hasMessageTraits() {\n return !!this._json.messageTraits;\n }\n\n /**\n * @param {string} name - Name of the message trait.\n * @returns {MessageTrait}\n */\n messageTrait(name) {\n return getMapValueOfType$1(this._json.messageTraits, name, messageTrait);\n }\n }\n\n var components = mix$1(Components, specificationExtensions);\n\n const xParserMessageName$1 = 'x-parser-message-name';\n const xParserSchemaId$1 = 'x-parser-schema-id';\n const xParserCircle$2 = 'x-parser-circular';\n const xParserCircleProps$1 = 'x-parser-circular-props';\n var constants = {\n xParserMessageName: xParserMessageName$1,\n xParserSchemaId: xParserSchemaId$1,\n xParserCircle: xParserCircle$2,\n xParserCircleProps: xParserCircleProps$1\n };\n\n /**\n * The different kind of stages when crawling a schema. \n * \n * @typedef SchemaIteratorCallbackType\n * @property {string} NEW_SCHEMA The crawler just started crawling a schema.\n * @property {string} END_SCHEMA The crawler just finished crawling a schema.\n */\n /**\n * @readonly\n * @enum {SchemaIteratorCallbackType}\n */\n const SchemaIteratorCallbackType$1 = Object.freeze({\n NEW_SCHEMA: 'NEW_SCHEMA',\n END_SCHEMA: 'END_SCHEMA'\n });\n\n /**\n * The different types of schemas you can iterate \n * \n * @typedef SchemaTypesToIterate\n * @property {string} parameters Crawl all schemas in parameters\n * @property {string} payloads Crawl all schemas in payloads\n * @property {string} headers Crawl all schemas in headers\n * @property {string} components Crawl all schemas in components\n * @property {string} objects Crawl all schemas of type object\n * @property {string} arrays Crawl all schemas of type array\n * @property {string} oneOfs Crawl all schemas in oneOf's\n * @property {string} allOfs Crawl all schemas in allOf's\n * @property {string} anyOfs Crawl all schemas in anyOf's\n */\n\n /**\n * \n * @readonly \n * @enum {SchemaTypesToIterate}\n */\n const SchemaTypesToIterate = Object.freeze({\n parameters: 'parameters',\n payloads: 'payloads',\n headers: 'headers',\n components: 'components',\n objects: 'objects',\n arrays: 'arrays',\n oneOfs: 'oneOfs',\n allOfs: 'allOfs',\n anyOfs: 'anyOfs'\n });\n\n /**\n * Traverse current schema and all nested schemas.\n * \n * @private\n * @param {Schema} schemaContent schema.\n * @param {TraverseSchemas} callback \n * @param {SchemaTypesToIterate[]} schemaTypesToIterate\n */\n function traverseSchema(schema, callback, prop, schemaTypesToIterate) {\n if (schema === null) return;\n if (!schemaTypesToIterate.includes(SchemaTypesToIterate.arrays) && schema.type() === 'array') return;\n if (!schemaTypesToIterate.includes(SchemaTypesToIterate.objects) && schema.type() === 'object') return;\n if (schema.isCircular()) return;\n if (callback(schema, prop, SchemaIteratorCallbackType$1.NEW_SCHEMA) === false) return;\n \n if (schema.type() !== undefined) {\n switch (schema.type()) {\n case 'object':\n recursiveSchemaObject(schema, callback, schemaTypesToIterate);\n break;\n case 'array':\n recursiveSchemaArray(schema, callback, schemaTypesToIterate);\n break;\n }\n } else {\n traverseCombinedSchemas(schema, callback, schemaTypesToIterate);\n }\n callback(schema, prop, SchemaIteratorCallbackType$1.END_SCHEMA);\n }\n \n /**\n * Traverse combined notions\n * \n * @private\n * @param {Schema} schemaContent schema.\n * @param {TraverseSchemas} callback \n * @param {SchemaTypesToIterate[]} schemaTypesToIterate\n */\n function traverseCombinedSchemas(schema, callback, schemaTypesToIterate) {\n //check for allOf, oneOf, anyOf\n const checkCombiningSchemas = (combineArray) => {\n (combineArray || []).forEach(combineSchema => {\n traverseSchema(combineSchema, callback, null, schemaTypesToIterate);\n });\n };\n if (schemaTypesToIterate.includes(SchemaTypesToIterate.allOfs)) {\n checkCombiningSchemas(schema.allOf());\n }\n if (schemaTypesToIterate.includes(SchemaTypesToIterate.anyOfs)) {\n checkCombiningSchemas(schema.anyOf());\n }\n if (schemaTypesToIterate.includes(SchemaTypesToIterate.oneOfs)) {\n checkCombiningSchemas(schema.oneOf());\n }\n }\n \n /**\n * Go through each channel and for each parameter, and message payload and headers recursively call the callback for each schema.\n * \n * @private\n * @param {AsyncAPIDocument} doc \n * @param {FoundSchemaCallback} callback\n * @param {SchemaTypesToIterate[]} schemaTypesToIterate\n */\n function traverseAsyncApiDocument$2(doc, callback, schemaTypesToIterate) {\n if (!schemaTypesToIterate) {\n schemaTypesToIterate = Object.values(SchemaTypesToIterate);\n }\n if (doc.hasChannels()) {\n doc.channelNames().forEach(channelName => {\n const channel = doc.channel(channelName);\n traverseChannel(channel, callback, schemaTypesToIterate);\n });\n }\n if (doc.hasComponents() && schemaTypesToIterate.includes(SchemaTypesToIterate.components)) {\n Object.values(doc.components().schemas()).forEach(s => {\n traverseSchema(s, callback, null, schemaTypesToIterate);\n });\n Object.values(doc.components().messages()).forEach(m => {\n traverseMessage(m, callback, schemaTypesToIterate);\n });\n }\n }\n \n /**\n * Go through each schema in channel\n * \n * @private\n * @param {Channel} channel \n * @param {FoundSchemaCallback} callback\n * @param {SchemaTypesToIterate[]} schemaTypesToIterate\n */\n function traverseChannel(channel, callback, schemaTypesToIterate) {\n if (schemaTypesToIterate.includes(SchemaTypesToIterate.parameters)) {\n Object.values(channel.parameters()).forEach(p => {\n traverseSchema(p.schema(), callback, null, schemaTypesToIterate);\n });\n }\n if (channel.hasPublish()) {\n channel.publish().messages().forEach(m => {\n traverseMessage(m, callback, schemaTypesToIterate);\n });\n }\n if (channel.hasSubscribe()) {\n channel.subscribe().messages().forEach(m => {\n traverseMessage(m, callback, schemaTypesToIterate);\n });\n }\n }\n /**\n * Go through each schema in a message\n * \n * @private\n * @param {Message} message \n * @param {FoundSchemaCallback} callback\n * @param {SchemaTypesToIterate[]} schemaTypesToIterate\n */\n function traverseMessage(message, callback, schemaTypesToIterate) {\n if (message === null) return;\n if (schemaTypesToIterate.includes(SchemaTypesToIterate.headers)) {\n traverseSchema(message.headers(), callback, null, schemaTypesToIterate);\n }\n if (schemaTypesToIterate.includes(SchemaTypesToIterate.payloads)) {\n traverseSchema(message.payload(), callback, null, schemaTypesToIterate);\n }\n }\n \n /**\n * Recursively go through schema of object type and execute callback.\n * \n * @private\n * @param {Schema} schema Object type.\n * @param {TraverseSchemas} callback \n * @param {SchemaTypesToIterate[]} schemaTypesToIterate\n */\n function recursiveSchemaObject(schema, callback, schemaTypesToIterate) {\n if (schema.additionalProperties() !== undefined && typeof schema.additionalProperties() !== 'boolean') {\n const additionalSchema = schema.additionalProperties();\n traverseSchema(additionalSchema, callback, null, schemaTypesToIterate);\n }\n if (schema.properties() !== null) {\n const props = schema.properties();\n for (const [prop, propertySchema] of Object.entries(props)) {\n const circularProps = schema.circularProps();\n if (circularProps !== undefined && circularProps.includes(prop)) continue;\n traverseSchema(propertySchema, callback, prop, schemaTypesToIterate);\n }\n }\n }\n \n /**\n * Recursively go through schema of array type and execute callback.\n * \n * @private\n * @param {Schema} schema Array type.\n * @param {TraverseSchemas} callback \n * @param {SchemaTypesToIterate[]} schemaTypesToIterate\n */\n function recursiveSchemaArray(schema, callback, schemaTypesToIterate) {\n if (schema.additionalItems() !== undefined) {\n const additionalArrayItems = schema.additionalItems();\n traverseSchema(additionalArrayItems, callback, null, schemaTypesToIterate);\n }\n \n if (schema.items() !== null) {\n if (Array.isArray(schema.items())) {\n schema.items().forEach(arraySchema => {\n traverseSchema(arraySchema, callback, null, schemaTypesToIterate);\n });\n } else {\n traverseSchema(schema.items(), callback, null, schemaTypesToIterate);\n }\n }\n }\n\n var iterators = {\n SchemaIteratorCallbackType: SchemaIteratorCallbackType$1,\n SchemaTypesToIterate,\n traverseSchema,\n traverseAsyncApiDocument: traverseAsyncApiDocument$2,\n traverseChannel,\n traverseMessage, \n recursiveSchemaObject,\n recursiveSchemaArray\n };\n\n const {xParserMessageName, xParserSchemaId} = constants;\n const {traverseAsyncApiDocument: traverseAsyncApiDocument$1} = iterators;\n\n /**\n * Assign message keys as message name to all the component messages.\n * \n * @private\n * @param {AsyncAPIDocument} doc \n */\n function assignNameToComponentMessages$1(doc) {\n if (doc.hasComponents()) {\n for (const [key, m] of Object.entries(doc.components().messages())) {\n if (m.name() === undefined) {\n m.json()[String(xParserMessageName)] = key;\n }\n }\n }\n }\n\n /**\n * Assign parameter keys as uid for the parameter schema.\n * \n * @private\n * @param {AsyncAPIDocument} doc \n */\n function assignUidToParameterSchemas$1(doc) {\n doc.channelNames().forEach(channelName => {\n const channel = doc.channel(channelName);\n for (const [parameterKey, parameterSchema] of Object.entries(channel.parameters())) {\n parameterSchema.json()[String(xParserSchemaId)] = parameterKey;\n }\n });\n }\n \n /**\n * Assign uid to component schemas. \n * \n * @private\n * @param {AsyncAPIDocument} doc \n */\n function assignUidToComponentSchemas$1(doc) {\n if (doc.hasComponents()) {\n for (const [key, s] of Object.entries(doc.components().schemas())) {\n s.json()[String(xParserSchemaId)] = key;\n }\n }\n }\n \n /**\n * Assign anonymous names to nameless messages.\n * \n * @private\n * @param {AsyncAPIDocument} doc \n */\n function assignNameToAnonymousMessages$1(doc) {\n let anonymousMessageCounter = 0;\n \n if (doc.hasChannels()) {\n doc.channelNames().forEach(channelName => {\n const channel = doc.channel(channelName);\n if (channel.hasPublish()) addNameToKey(channel.publish().messages(), ++anonymousMessageCounter);\n if (channel.hasSubscribe()) addNameToKey(channel.subscribe().messages(), ++anonymousMessageCounter);\n });\n }\n }\n \n /**\n * Add anonymous name to key if no name provided.\n * \n * @private\n * @param {Message} map of messages \n */\n function addNameToKey(messages, number) {\n messages.forEach(m => {\n if (m.name() === undefined) {\n m.json()[String(xParserMessageName)] = ``;\n }\n });\n }\n \n /**\n * Gives schemas id to all anonymous schemas.\n * \n * @private\n * @param {AsyncAPIDocument} doc \n */\n function assignIdToAnonymousSchemas$1(doc) {\n let anonymousSchemaCounter = 0;\n const callback = (schema) => {\n if (!schema.uid()) {\n schema.json()[String(xParserSchemaId)] = ``;\n }\n };\n traverseAsyncApiDocument$1(doc, callback);\n }\n\n var anonymousNaming = {\n assignNameToComponentMessages: assignNameToComponentMessages$1,\n assignUidToParameterSchemas: assignUidToParameterSchemas$1,\n assignUidToComponentSchemas: assignUidToComponentSchemas$1,\n assignNameToAnonymousMessages: assignNameToAnonymousMessages$1,\n assignIdToAnonymousSchemas: assignIdToAnonymousSchemas$1\n };\n\n const { createMapOfType, getMapValueOfType, mix } = utils_1;\n\n\n\n\n\n\n\n\n\n\n const {xParserCircle: xParserCircle$1, xParserCircleProps} = constants;\n const {assignNameToAnonymousMessages, assignNameToComponentMessages, assignUidToComponentSchemas, assignUidToParameterSchemas, assignIdToAnonymousSchemas} = anonymousNaming;\n const {traverseAsyncApiDocument, SchemaIteratorCallbackType} = iterators;\n\n /**\n * Implements functions to deal with the AsyncAPI document. \n * @class\n * @alias module:@asyncapi/parser#AsyncAPIDocument\n * @extends Base\n * @mixes MixinTags\n * @mixes MixinExternalDocs\n * @mixes MixinSpecificationExtensions\n * @returns {AsyncAPIDocument}\n */\n class AsyncAPIDocument extends base {\n constructor(...args) {\n super(...args);\n\n assignNameToAnonymousMessages(this);\n assignNameToComponentMessages(this);\n\n markCircularSchemas(this);\n assignUidToComponentSchemas(this);\n assignUidToParameterSchemas(this);\n assignIdToAnonymousSchemas(this);\n }\n\n /**\n * @returns {string}\n */\n version() {\n return this._json.asyncapi;\n }\n\n /**\n * @returns {Info}\n */\n info() {\n return new info(this._json.info);\n }\n\n /**\n * @returns {string}\n */\n id() {\n return this._json.id;\n }\n\n /**\n * @returns {boolean}\n */\n hasServers() {\n return !!this._json.servers;\n }\n\n /**\n * @returns {Object}\n */\n servers() {\n return createMapOfType(this._json.servers, server);\n }\n\n /**\n * @returns {string[]}\n */\n serverNames() {\n if (!this._json.servers) return [];\n return Object.keys(this._json.servers);\n }\n\n /**\n * @param {string} name - Name of the server.\n * @returns {Server}\n */\n server(name) {\n return getMapValueOfType(this._json.servers, name, server);\n }\n\n /**\n * @returns {boolean}\n */\n hasDefaultContentType() {\n return !!this._json.defaultContentType;\n }\n\n /**\n * @returns {string|null}\n */\n defaultContentType() {\n return this._json.defaultContentType || null;\n }\n\n /**\n * @returns {boolean}\n */\n hasChannels() {\n return !!this._json.channels;\n }\n\n /**\n * @returns {Object}\n */\n channels() {\n return createMapOfType(this._json.channels, channel, this);\n }\n\n /**\n * @returns {string[]}\n */\n channelNames() {\n if (!this._json.channels) return [];\n return Object.keys(this._json.channels);\n }\n\n /**\n * @param {string} name - Name of the channel.\n * @returns {Channel}\n */\n channel(name) {\n return getMapValueOfType(this._json.channels, name, channel, this);\n }\n\n /**\n * @returns {boolean}\n */\n hasComponents() {\n return !!this._json.components;\n }\n\n /**\n * @returns {Components}\n */\n components() {\n if (!this._json.components) return null;\n return new components(this._json.components);\n }\n\n /**\n * @returns {boolean}\n */\n hasMessages() {\n return !!this.allMessages().size;\n }\n\n /**\n * @returns {Map}\n */\n allMessages() {\n const messages = new Map();\n\n if (this.hasChannels()) {\n this.channelNames().forEach(channelName => {\n const channel = this.channel(channelName);\n if (channel.hasPublish()) {\n channel.publish().messages().forEach(m => {\n messages.set(m.uid(), m);\n });\n }\n if (channel.hasSubscribe()) {\n channel.subscribe().messages().forEach(m => {\n messages.set(m.uid(), m);\n });\n }\n });\n }\n\n if (this.hasComponents()) {\n Object.values(this.components().messages()).forEach(m => {\n messages.set(m.uid(), m);\n });\n }\n\n return messages;\n }\n\n /**\n * @returns {Map}\n */\n allSchemas() {\n const schemas = new Map();\n const allSchemasCallback = (schema) => {\n if (schema.uid()) {\n schemas.set(schema.uid(), schema);\n }\n };\n traverseAsyncApiDocument(this, allSchemasCallback);\n return schemas;\n }\n\n /**\n * @returns {boolean}\n */\n hasCircular() {\n return !!this._json[String(xParserCircle$1)];\n }\n\n /**\n * Callback used when crawling a schema.\n * @callback TraverseSchemas\n * @param {Schema} schema which is being crawled \n * @param {String} propName if the schema is from a property get the name of such\n * @param {SchemaIteratorCallbackType} callbackType is the schema a new one or is the crawler finishing one.\n * @returns {boolean} should the crawler continue crawling the schema?\n * \n */\n\n /**\n * Traverse schemas in the document and select which types of schemas to include.\n * By default all schemas are iterated\n * \n * @param {TraverseSchemas} callback \n * @param {SchemaTypesToIterate[]} schemaTypesToIterate\n */\n traverseSchemas(callback, schemaTypesToIterate) {\n traverseAsyncApiDocument(this, callback, schemaTypesToIterate);\n }\n }\n\n /**\n * Marks all recursive schemas as recursive.\n * \n * @private\n * @param {AsyncAPIDocument} doc \n */\n function markCircularSchemas(doc) {\n const seenObj = [];\n const lastSchema = [];\n\n //Mark the schema as recursive\n const markCircular = (schema, prop) => {\n if (schema.type() === 'array') return schema.json()[String(xParserCircle$1)] = true;\n const circPropsList = schema.json()[String(xParserCircleProps)] || [];\n if (prop !== undefined) {\n circPropsList.push(prop);\n }\n schema.json()[String(xParserCircleProps)] = circPropsList;\n };\n\n //callback to use for iterating through the schemas\n const circularCheckCallback = (schema, propName, type) => {\n switch (type) {\n case SchemaIteratorCallbackType.END_SCHEMA:\n lastSchema.pop();\n seenObj.pop();\n break;\n case SchemaIteratorCallbackType.NEW_SCHEMA:\n const schemaJson = schema.json();\n if (seenObj.includes(schemaJson)) {\n const schemaToUse = lastSchema.length > 0 ? lastSchema[lastSchema.length - 1] : schema;\n markCircular(schemaToUse, propName);\n return false;\n }\n //Save a list of seen objects and last schema which should be marked if its recursive\n seenObj.push(schemaJson);\n lastSchema.push(schema);\n return true;\n }\n };\n traverseAsyncApiDocument(doc, circularCheckCallback);\n }\n\n var asyncapi = mix(AsyncAPIDocument, tags, externalDocs, specificationExtensions);\n\n var id = \"http://json-schema.org/draft-04/schema#\";\n var $schema = \"http://json-schema.org/draft-04/schema#\";\n var description = \"Core schema meta-schema\";\n var definitions = {\n schemaArray: {\n type: \"array\",\n minItems: 1,\n items: {\n $ref: \"#\"\n }\n },\n positiveInteger: {\n type: \"integer\",\n minimum: 0\n },\n positiveIntegerDefault0: {\n allOf: [\n {\n $ref: \"#/definitions/positiveInteger\"\n },\n {\n \"default\": 0\n }\n ]\n },\n simpleTypes: {\n \"enum\": [\n \"array\",\n \"boolean\",\n \"integer\",\n \"null\",\n \"number\",\n \"object\",\n \"string\"\n ]\n },\n stringArray: {\n type: \"array\",\n items: {\n type: \"string\"\n },\n minItems: 1,\n uniqueItems: true\n }\n };\n var type = \"object\";\n var properties = {\n id: {\n type: \"string\"\n },\n $schema: {\n type: \"string\"\n },\n title: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n \"default\": {\n },\n multipleOf: {\n type: \"number\",\n minimum: 0,\n exclusiveMinimum: true\n },\n maximum: {\n type: \"number\"\n },\n exclusiveMaximum: {\n type: \"boolean\",\n \"default\": false\n },\n minimum: {\n type: \"number\"\n },\n exclusiveMinimum: {\n type: \"boolean\",\n \"default\": false\n },\n maxLength: {\n $ref: \"#/definitions/positiveInteger\"\n },\n minLength: {\n $ref: \"#/definitions/positiveIntegerDefault0\"\n },\n pattern: {\n type: \"string\",\n format: \"regex\"\n },\n additionalItems: {\n anyOf: [\n {\n type: \"boolean\"\n },\n {\n $ref: \"#\"\n }\n ],\n \"default\": {\n }\n },\n items: {\n anyOf: [\n {\n $ref: \"#\"\n },\n {\n $ref: \"#/definitions/schemaArray\"\n }\n ],\n \"default\": {\n }\n },\n maxItems: {\n $ref: \"#/definitions/positiveInteger\"\n },\n minItems: {\n $ref: \"#/definitions/positiveIntegerDefault0\"\n },\n uniqueItems: {\n type: \"boolean\",\n \"default\": false\n },\n maxProperties: {\n $ref: \"#/definitions/positiveInteger\"\n },\n minProperties: {\n $ref: \"#/definitions/positiveIntegerDefault0\"\n },\n required: {\n $ref: \"#/definitions/stringArray\"\n },\n additionalProperties: {\n anyOf: [\n {\n type: \"boolean\"\n },\n {\n $ref: \"#\"\n }\n ],\n \"default\": {\n }\n },\n definitions: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#\"\n },\n \"default\": {\n }\n },\n properties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#\"\n },\n \"default\": {\n }\n },\n patternProperties: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#\"\n },\n \"default\": {\n }\n },\n dependencies: {\n type: \"object\",\n additionalProperties: {\n anyOf: [\n {\n $ref: \"#\"\n },\n {\n $ref: \"#/definitions/stringArray\"\n }\n ]\n }\n },\n \"enum\": {\n type: \"array\",\n minItems: 1,\n uniqueItems: true\n },\n type: {\n anyOf: [\n {\n $ref: \"#/definitions/simpleTypes\"\n },\n {\n type: \"array\",\n items: {\n $ref: \"#/definitions/simpleTypes\"\n },\n minItems: 1,\n uniqueItems: true\n }\n ]\n },\n format: {\n type: \"string\"\n },\n allOf: {\n $ref: \"#/definitions/schemaArray\"\n },\n anyOf: {\n $ref: \"#/definitions/schemaArray\"\n },\n oneOf: {\n $ref: \"#/definitions/schemaArray\"\n },\n not: {\n $ref: \"#\"\n }\n };\n var dependencies = {\n exclusiveMaximum: [\n \"maximum\"\n ],\n exclusiveMinimum: [\n \"minimum\"\n ]\n };\n var require$$3 = {\n id: id,\n $schema: $schema,\n description: description,\n definitions: definitions,\n type: type,\n properties: properties,\n dependencies: dependencies,\n \"default\": {\n }\n };\n\n var path = /*@__PURE__*/getAugmentedNamespace(path$2);\n\n var fetch = /*@__PURE__*/getAugmentedNamespace(lib$2);\n\n var require$$0 = /*@__PURE__*/getAugmentedNamespace(esm);\n\n const mergePatch = require$$0.apply;\n\n const { validateChannels, validateServerVariables, validateOperationId, validateServerSecurity } = customValidators;\n const { toJS, findRefs, getLocationOf, improveAjvErrors: improveAjvErrors$1 } = utils_1;\n\n\n const DEFAULT_SCHEMA_FORMAT = 'application/vnd.aai.asyncapi;version=2.0.0';\n const OPERATIONS = ['publish', 'subscribe'];\n //the only security types that can have a non empty array in the server security item\n const SPECIAL_SECURITY_TYPES = ['oauth2', 'openIdConnect'];\n const PARSERS = {};\n const xParserCircle = 'x-parser-circular';\n const xParserMessageParsed = 'x-parser-message-parsed';\n\n /**\n * @module @asyncapi/parser\n */\n var parser = {\n parse: parse$3,\n parseFromUrl,\n registerSchemaParser,\n ParserError: parserError,\n AsyncAPIDocument: asyncapi,\n };\n\n /**\n * Parses and validate an AsyncAPI document from YAML or JSON.\n * \n * @param {String} asyncapiYAMLorJSON An AsyncAPI document in JSON or YAML format.\n * @param {Object} [options] Configuration options.\n * @param {String} [options.path] Path to the AsyncAPI document. It will be used to resolve relative references. Defaults to current working dir.\n * @param {Object} [options.parse] Options object to pass to {@link https://apidevtools.org/json-schema-ref-parser/docs/options.html|json-schema-ref-parser}.\n * @param {Object} [options.resolve] Options object to pass to {@link https://apidevtools.org/json-schema-ref-parser/docs/options.html|json-schema-ref-parser}.\n * @param {Object} [options.applyTraits=true] Whether to resolve and apply traits or not.\n * @returns {Promise} The parsed AsyncAPI document.\n */\n async function parse$3(asyncapiYAMLorJSON, options = {}) {\n let parsedJSON;\n let initialFormat;\n\n options.path = options.path || `${browser$1.cwd()}${path.sep}`;\n\n try {\n ({ initialFormat, parsedJSON } = toJS(asyncapiYAMLorJSON));\n\n if (typeof parsedJSON !== 'object') {\n throw new parserError({\n type: 'impossible-to-convert-to-json',\n title: 'Could not convert AsyncAPI to JSON.',\n detail: 'Most probably the AsyncAPI document contains invalid YAML or YAML features not supported in JSON.'\n });\n }\n \n if (!parsedJSON.asyncapi) {\n throw new parserError({\n type: 'missing-asyncapi-field',\n title: 'The `asyncapi` field is missing.',\n parsedJSON,\n });\n }\n \n if (parsedJSON.asyncapi.startsWith('1.') || !specs[parsedJSON.asyncapi]) {\n throw new parserError({\n type: 'unsupported-version',\n title: `Version ${parsedJSON.asyncapi} is not supported.`,\n detail: 'Please use latest version of the specification.',\n parsedJSON,\n validationErrors: [getLocationOf('/asyncapi', asyncapiYAMLorJSON, initialFormat)],\n });\n }\n\n if (options.applyTraits === undefined) options.applyTraits = true;\n\n const refParser = new lib$1;\n //because of Ajv lacks support for circular refs, parser should not resolve them before Ajv validation and first needs to ignore them and leave circular $refs to successfully validate the document\n //this is done pair to advice from Ajv creator https://github.com/ajv-validator/ajv/issues/1122#issuecomment-559378449\n //later we perform full dereference of circular refs if they occure\n await dereference(refParser, parsedJSON, initialFormat, asyncapiYAMLorJSON, { ...options, dereference: { circular: 'ignore' } });\n\n const ajv$1 = new ajv({\n jsonPointers: true,\n allErrors: true,\n schemaId: 'id',\n logger: false,\n });\n \n ajv$1.addMetaSchema(require$$3);\n \n const validate = ajv$1.compile(specs[parsedJSON.asyncapi]);\n const valid = validate(parsedJSON);\n if (!valid) throw new parserError({\n type: 'validation-errors',\n title: 'There were errors validating the AsyncAPI document.',\n parsedJSON,\n validationErrors: improveAjvErrors$1(validate.errors, asyncapiYAMLorJSON, initialFormat),\n });\n\n await customDocumentOperations(parsedJSON, asyncapiYAMLorJSON, initialFormat, options);\n if (refParser.$refs.circular) await handleCircularRefs(refParser, parsedJSON, initialFormat, asyncapiYAMLorJSON, options);\n } catch (e) {\n if (e instanceof parserError) throw e;\n throw new parserError({\n type: 'unexpected-error',\n title: e.message,\n parsedJSON,\n });\n }\n\n return new asyncapi(parsedJSON);\n }\n\n /**\n * Fetches an AsyncAPI document from the given URL and passes its content to the `parse` method.\n * \n * @param {String} url URL where the AsyncAPI document is located.\n * @param {Object} [fetchOptions] Configuration to pass to the {@link https://developer.mozilla.org/en-US/docs/Web/API/Request|fetch} call.\n * @param {Object} [options] Configuration to pass to the {@link module:Parser#parse} method.\n * @returns {Promise} The parsed AsyncAPI document.\n */\n function parseFromUrl(url, fetchOptions, options) {\n //Why not just addinga default to the arguments list?\n //All function parameters with default values should be declared after the function parameters without default values. Otherwise, it makes it impossible for callers to take advantage of defaults; they must re-specify the defaulted values or pass undefined in order to \"get to\" the non-default parameters.\n //To not break the API by changing argument position and to silet the linter it is just better to move adding\n if (!fetchOptions) fetchOptions = {};\n\n return new Promise((resolve, reject) => {\n fetch(url, fetchOptions)\n .then(res => res.text())\n .then(doc => parse$3(doc, options))\n .then(result => resolve(result))\n .catch(reject);\n });\n }\n\n async function dereference(refParser, parsedJSON, initialFormat, asyncapiYAMLorJSON, options) {\n try {\n return await refParser.dereference(options.path, parsedJSON, {\n continueOnError: true,\n parse: options.parse,\n resolve: options.resolve,\n dereference: options.dereference,\n });\n } catch (err) {\n throw new parserError({\n type: 'dereference-error',\n title: err.errors[0].message,\n parsedJSON,\n refs: findRefs(err.errors, initialFormat, asyncapiYAMLorJSON),\n });\n }\n }\n\n /*\n * In case of circular refs, this function dereferences the spec again to dereference circular dependencies\n * Special property is added to the document that indicates it contains circular refs\n */\n async function handleCircularRefs(refParser, parsedJSON, initialFormat, asyncapiYAMLorJSON, options) {\n await dereference(refParser, parsedJSON, initialFormat, asyncapiYAMLorJSON, { ...options, dereference: { circular: true } });\n //mark entire document as containing circular references\n parsedJSON[String(xParserCircle)] = true;\n }\n\n async function customDocumentOperations(parsedJSON, asyncapiYAMLorJSON, initialFormat, options) {\n validateServerVariables(parsedJSON, asyncapiYAMLorJSON, initialFormat);\n validateServerSecurity(parsedJSON, asyncapiYAMLorJSON, initialFormat, SPECIAL_SECURITY_TYPES);\n\n if (!parsedJSON.channels) return;\n\n validateChannels(parsedJSON, asyncapiYAMLorJSON, initialFormat);\n validateOperationId(parsedJSON, asyncapiYAMLorJSON, initialFormat, OPERATIONS);\n\n await customComponentsMsgOperations(parsedJSON, asyncapiYAMLorJSON, initialFormat, options);\n await customChannelsOperations(parsedJSON, asyncapiYAMLorJSON, initialFormat, options);\n }\n\n async function validateAndConvertMessage(msg, originalAsyncAPIDocument, fileFormat, parsedAsyncAPIDocument, pathToPayload) {\n //check if the message has been parsed before\n if (xParserMessageParsed in msg && msg[String(xParserMessageParsed)] === true) return;\n\n const schemaFormat = msg.schemaFormat || DEFAULT_SCHEMA_FORMAT;\n\n await PARSERS[String(schemaFormat)]({\n schemaFormat,\n message: msg,\n defaultSchemaFormat: DEFAULT_SCHEMA_FORMAT,\n originalAsyncAPIDocument,\n parsedAsyncAPIDocument,\n fileFormat, \n pathToPayload\n });\n\n msg.schemaFormat = DEFAULT_SCHEMA_FORMAT;\n msg[String(xParserMessageParsed)] = true;\n }\n\n /**\n * Registers a new schema parser. Schema parsers are in charge of parsing and transforming payloads to AsyncAPI Schema format.\n * \n * @param {Object} parserModule The schema parser module containing parse() and getMimeTypes() functions.\n */\n function registerSchemaParser(parserModule) {\n if (typeof parserModule !== 'object' \n || typeof parserModule.parse !== 'function' \n || typeof parserModule.getMimeTypes !== 'function')\n throw new parserError({\n type: 'impossible-to-register-parser',\n title: 'parserModule must have parse() and getMimeTypes() functions.'\n });\n\n parserModule.getMimeTypes().forEach((schemaFormat) => {\n PARSERS[String(schemaFormat)] = parserModule.parse;\n });\n }\n\n function applyTraits(js) {\n if (Array.isArray(js.traits)) {\n for (const trait of js.traits) {\n for (const key in trait) {\n js[String(key)] = mergePatch(js[String(key)], trait[String(key)]);\n }\n }\n\n js['x-parser-original-traits'] = js.traits;\n delete js.traits;\n }\n }\n\n /**\n * Triggers additional operations on the AsyncAPI channels like traits application or message validation and conversion\n *\n * @private\n * \n * @param {Object} parsedJSON parsed AsyncAPI document\n * @param {String} asyncapiYAMLorJSON AsyncAPI document in string\n * @param {String} initialFormat information of the document was originally JSON or YAML\n * @param {Object} options Configuration options.\n */\n async function customChannelsOperations(parsedJSON, asyncapiYAMLorJSON, initialFormat, options) {\n const promisesArray = [];\n Object.entries(parsedJSON.channels).forEach(([channelName, channel]) => {\n promisesArray.push(...OPERATIONS.map(async (opName) => {\n const op = channel[String(opName)];\n if (!op) return;\n\n const messages = op.message ? (op.message.oneOf || [op.message]) : [];\n if (options.applyTraits) { \n applyTraits(op);\n messages.forEach(m => applyTraits(m));\n }\n const pathToPayload = `/channels/${channelName}/${opName}/message/payload`;\n for (const m of messages) {\n await validateAndConvertMessage(m, asyncapiYAMLorJSON, initialFormat, parsedJSON, pathToPayload);\n }\n }));\n });\n await Promise.all(promisesArray);\n }\n\n /**\n * Triggers additional operations on the AsyncAPI messages located in the components section of the document. It triggers operations like traits application, validation and conversion\n *\n * @private\n * \n * @param {Object} parsedJSON parsed AsyncAPI document\n * @param {String} asyncapiYAMLorJSON AsyncAPI document in string\n * @param {String} initialFormat information of the document was originally JSON or YAML\n * @param {Object} options Configuration options.\n */\n async function customComponentsMsgOperations(parsedJSON, asyncapiYAMLorJSON, initialFormat, options) {\n if (!parsedJSON.components || !parsedJSON.components.messages) return;\n\n const promisesArray = [];\n\n Object.entries(parsedJSON.components.messages).forEach(([messageName, message]) => {\n if (options.applyTraits) {\n applyTraits(message);\n }\n const pathToPayload = `/components/messages/${messageName}/payload`;\n promisesArray.push(validateAndConvertMessage(message, asyncapiYAMLorJSON, initialFormat, parsedJSON, pathToPayload));\n });\n\n await Promise.all(promisesArray);\n }\n\n const { improveAjvErrors } = utils_1;\n\n var asyncapiSchemaFormatParser = {\n parse: parse$2,\n getMimeTypes: getMimeTypes$2\n };\n\n /**\n * @private\n */\n async function parse$2({ message, originalAsyncAPIDocument, fileFormat, parsedAsyncAPIDocument, pathToPayload }) {\n const payload = message.payload;\n if (!payload) return;\n\n const ajv$1 = new ajv({\n jsonPointers: true,\n allErrors: true,\n schemaId: 'id',\n logger: false,\n });\n const payloadSchema = preparePayloadSchema(specs[parsedAsyncAPIDocument.asyncapi]);\n const validate = ajv$1.compile(payloadSchema);\n const valid = validate(payload);\n\n if (!valid) throw new parserError({\n type: 'schema-validation-errors',\n title: 'This is not a valid AsyncAPI Schema Object.',\n parsedJSON: parsedAsyncAPIDocument,\n validationErrors: improveAjvErrors(addFullPathToDataPath(validate.errors, pathToPayload), originalAsyncAPIDocument, fileFormat),\n });\n }\n\n /**\n * @private\n */\n function getMimeTypes$2() {\n return [\n 'application/vnd.aai.asyncapi;version=2.0.0',\n 'application/vnd.aai.asyncapi+json;version=2.0.0',\n 'application/vnd.aai.asyncapi+yaml;version=2.0.0',\n 'application/schema;version=draft-07',\n 'application/schema+json;version=draft-07',\n 'application/schema+yaml;version=draft-07',\n ];\n }\n\n /**\n * To validate schema of the payload we just need a small portion of official AsyncAPI spec JSON Schema, the definition of the schema must be\n * a main part of the JSON Schema\n * \n * @private\n * @param {Object} asyncapiSchema AsyncAPI specification JSON Schema\n * @returns {Object} valid JSON Schema document describing format of AsyncAPI-valid schema for message payload\n */\n function preparePayloadSchema(asyncapiSchema) {\n return {\n $ref: '#/definitions/schema',\n definitions: asyncapiSchema.definitions\n };\n }\n\n /**\n * Errors from Ajv contain dataPath information about parameter relative to parsed payload message. \n * This function enriches dataPath with additional information on where is the parameter located in AsyncAPI document\n * \n * @private\n * @param {Array} errors Ajv errors\n * @param {String} path Path to location of the payload schema in AsyncAPI Document\n * @returns {Array} same object as received in input but with modified datePath property so it contain full path relative to AsyncAPI document\n */\n function addFullPathToDataPath(errors, path) {\n return errors.map((err) => ({\n ...err,\n ...{\n dataPath: `${path}${err.dataPath}`\n }\n }));\n }\n\n parser.registerSchemaParser(asyncapiSchemaFormatParser);\n\n var lib = parser;\n\n var isObject_1 = function (maybeObj) {\n return maybeObj !== null && typeof maybeObj === 'object'\n };\n\n var isObject$1 = {\n isObject: isObject_1\n };\n\n var invalidTypeError = InvalidTypeError;\n\n function InvalidTypeError (message) {\n this.name = 'InvalidTypeError';\n this.message = message;\n }\n\n InvalidTypeError.prototype = Error.prototype;\n\n var isObject = isObject$1.isObject;\n\n\n var schema = convertFromSchema;\n\n // Convert from OpenAPI 3.0 `SchemaObject` to JSON schema v4\n function convertFromSchema (schema, options) {\n schema = convertSchema(schema, options);\n\n schema.$schema = 'http://json-schema.org/draft-04/schema#';\n\n return schema\n }\n\n function convertSchema (schema, options) {\n if (options.cloneSchema) {\n schema = Object.assign({}, schema);\n }\n\n var structs = options._structs;\n var notSupported = options._notSupported;\n var strictMode = options.strictMode;\n var i = 0;\n var j = 0;\n var struct = null;\n\n for (i; i < structs.length; i++) {\n struct = structs[i];\n\n if (Array.isArray(schema[struct])) {\n var cloned = false;\n\n for (j; j < schema[struct].length; j++) {\n if (!isObject(schema[struct][j])) {\n if (options.cloneSchema && !cloned) {\n cloned = true;\n schema[struct] = schema[struct].slice();\n }\n\n schema[struct].splice(j, 1);\n j--;\n continue\n }\n\n schema[struct][j] = convertSchema(schema[struct][j], options);\n }\n } else if (schema[struct] === null) {\n delete schema[struct];\n } else if (typeof schema[struct] === 'object') {\n schema[struct] = convertSchema(schema[struct], options);\n }\n }\n\n if ('properties' in schema) {\n schema.properties = convertProperties(schema.properties, options);\n\n if (Array.isArray(schema.required)) {\n schema.required = cleanRequired(schema.required, schema.properties);\n\n if (schema.required.length === 0) {\n delete schema.required;\n }\n }\n if (Object.keys(schema.properties).length === 0) {\n delete schema.properties;\n }\n }\n\n if (strictMode) {\n validateType(schema.type);\n }\n\n schema = convertTypes(schema);\n schema = convertFormat(schema, options);\n\n if ('x-patternProperties' in schema && options.supportPatternProperties) {\n schema = convertPatternProperties(schema, options.patternPropertiesHandler);\n }\n\n for (i = 0; i < notSupported.length; i++) {\n delete schema[notSupported[i]];\n }\n\n return schema\n }\n\n function validateType (type) {\n var validTypes = ['integer', 'number', 'string', 'boolean', 'object', 'array', 'null'];\n\n if (validTypes.indexOf(type) < 0 && type !== undefined) {\n throw new invalidTypeError('Type ' + JSON.stringify(type) + ' is not a valid type')\n }\n }\n\n function convertProperties (properties, options) {\n var key;\n var property;\n var props = {};\n var removeProp;\n\n if (!isObject(properties)) {\n return props\n }\n\n for (key in properties) {\n property = properties[key];\n\n if (!isObject(property)) {\n continue\n }\n\n removeProp = options._removeProps.some(function (prop) {\n return property[prop] === true\n });\n\n if (removeProp) {\n continue\n }\n\n props[key] = convertSchema(property, options);\n }\n\n return props\n }\n\n function convertTypes (schema) {\n if (schema.type !== undefined && schema.nullable === true) {\n schema.type = [schema.type, 'null'];\n\n if (Array.isArray(schema.enum)) {\n schema.enum = schema.enum.concat([null]);\n }\n }\n\n return schema\n }\n\n function convertFormat (schema, options) {\n var format = schema.format;\n var settings = {\n MIN_INT_32: 0 - Math.pow(2, 31),\n MAX_INT_32: Math.pow(2, 31) - 1,\n MIN_INT_64: 0 - Math.pow(2, 63),\n MAX_INT_64: Math.pow(2, 63) - 1,\n MIN_FLOAT: 0 - Math.pow(2, 128),\n MAX_FLOAT: Math.pow(2, 128) - 1,\n MIN_DOUBLE: 0 - Number.MAX_VALUE,\n MAX_DOUBLE: Number.MAX_VALUE,\n\n // Matches base64 (RFC 4648)\n // Matches `standard` base64 not `base64url`. The specification does not\n // exclude it but current ongoing OpenAPI plans will distinguish btoh.\n BYTE_PATTERN: '^[\\\\w\\\\d+\\\\/=]*$'\n };\n\n // Valid JSON schema v4 formats\n var FORMATS = ['date-time', 'email', 'hostname', 'ipv4', 'ipv6', 'uri', 'uri-reference'];\n\n if (format === undefined || FORMATS.indexOf(format) !== -1) {\n return schema\n }\n\n if (format === 'date' && options.dateToDateTime === true) {\n return convertFormatDate(schema)\n }\n\n var formatConverters = {\n int32: convertFormatInt32,\n int64: convertFormatInt64,\n float: convertFormatFloat,\n double: convertFormatDouble,\n byte: convertFormatByte\n };\n\n var converter = formatConverters[format];\n\n if (converter === undefined) { return schema }\n\n return converter(schema, settings)\n }\n\n function convertFormatInt32 (schema, settings) {\n if ((!schema.minimum && schema.minimum !== 0) || schema.minimum < settings.MIN_INT_32) {\n schema.minimum = settings.MIN_INT_32;\n }\n if ((!schema.maximum && schema.maximum !== 0) || schema.maximum > settings.MAX_INT_32) {\n schema.maximum = settings.MAX_INT_32;\n }\n return schema\n }\n\n function convertFormatInt64 (schema, settings) {\n if ((!schema.minimum && schema.minimum !== 0) || schema.minimum < settings.MIN_INT_64) {\n schema.minimum = settings.MIN_INT_64;\n }\n if ((!schema.maximum && schema.maximum !== 0) || schema.maximum > settings.MAX_INT_64) {\n schema.maximum = settings.MAX_INT_64;\n }\n return schema\n }\n\n function convertFormatFloat (schema, settings) {\n if ((!schema.minimum && schema.minimum !== 0) || schema.minimum < settings.MIN_FLOAT) {\n schema.minimum = settings.MIN_FLOAT;\n }\n if ((!schema.maximum && schema.maximum !== 0) || schema.maximum > settings.MAX_FLOAT) {\n schema.maximum = settings.MAX_FLOAT;\n }\n return schema\n }\n\n function convertFormatDouble (schema, settings) {\n if ((!schema.minimum && schema.minimum !== 0) || schema.minimum < settings.MIN_DOUBLE) {\n schema.minimum = settings.MIN_DOUBLE;\n }\n if ((!schema.maximum && schema.maximum !== 0) || schema.maximum > settings.MAX_DOUBLE) {\n schema.maximum = settings.MAX_DOUBLE;\n }\n return schema\n }\n\n function convertFormatDate (schema) {\n schema.format = 'date-time';\n return schema\n }\n\n function convertFormatByte (schema, settings) {\n schema.pattern = settings.BYTE_PATTERN;\n return schema\n }\n\n function convertPatternProperties (schema, handler) {\n if (isObject(schema['x-patternProperties'])) {\n schema.patternProperties = schema['x-patternProperties'];\n }\n\n delete schema['x-patternProperties'];\n\n return handler(schema)\n }\n\n function cleanRequired (required, properties) {\n required = required || [];\n properties = properties || {};\n let remainedRequired = [];\n\n for (let i = 0; i < required.length; i++) {\n if (properties[required[i]]) {\n remainedRequired.push(required[i]);\n }\n }\n\n return remainedRequired\n }\n\n var invalidInputError = InvalidInputError;\n\n function InvalidInputError (message) {\n this.name = 'InvalidInputError';\n this.message = message;\n }\n\n InvalidInputError.prototype = new Error();\n\n var parameter = convertFromParameter;\n\n // Convert from OpenAPI 3.0 `ParameterObject` to JSON schema v4\n function convertFromParameter (parameter, options) {\n if (parameter.schema !== undefined) {\n return convertParameterSchema(parameter, parameter.schema, options)\n } else if (parameter.content !== undefined) {\n return convertFromContents(parameter, options)\n } else {\n if (options.strictMode) {\n throw new invalidInputError('OpenAPI parameter must have either a \\'schema\\' or a \\'content\\' property')\n }\n return convertParameterSchema(parameter, {}, options)\n }\n }\n\n function convertFromContents (parameter, options) {\n var schemas = {};\n\n for (var mime in parameter.content) {\n schemas[mime] = convertParameterSchema(parameter, parameter.content[mime].schema, options);\n }\n\n return schemas\n }\n\n function convertParameterSchema (parameter, schema$1, options) {\n var jsonSchema = schema(schema$1 || {}, options);\n\n if (parameter.description) {\n jsonSchema.description = parameter.description;\n }\n\n return jsonSchema\n }\n\n var convert = {\n fromSchema: schema,\n fromParameter: parameter\n };\n\n var openapiSchemaToJsonSchema_1 = openapiSchemaToJsonSchema;\n var fromSchema = openapiSchemaToJsonSchema;\n var fromParameter = openapiParameterToJsonSchema;\n\n function openapiSchemaToJsonSchema(schema, options) {\n options = resolveOptions(options);\n\n var jsonSchema = convert.fromSchema(schema, options);\n return jsonSchema;\n }\n\n function openapiParameterToJsonSchema(parameter, options) {\n options = resolveOptions(options);\n\n var jsonSchema = convert.fromParameter(parameter, options);\n return jsonSchema;\n }\n\n function resolveOptions(options) {\n var notSupported = [\n 'nullable', 'discriminator', 'readOnly',\n 'writeOnly', 'xml', 'externalDocs',\n 'example', 'deprecated'\n ];\n\n options = options || {};\n options.dateToDateTime = options.dateToDateTime || false;\n options.cloneSchema = options.cloneSchema == false ? false : true;\n options.supportPatternProperties = options.supportPatternProperties || false;\n options.keepNotSupported = options.keepNotSupported || [];\n options.strictMode = options.strictMode == false ? false : true;\n\n if (typeof options.patternPropertiesHandler !== 'function') {\n options.patternPropertiesHandler = patternPropertiesHandler;\n }\n\n options._removeProps = [];\n\n if (options.removeReadOnly === true) {\n options._removeProps.push('readOnly');\n }\n\n if (options.removeWriteOnly === true) {\n options._removeProps.push('writeOnly');\n }\n\n options._structs = ['allOf', 'anyOf', 'oneOf', 'not', 'items', 'additionalProperties'];\n options._notSupported = resolveNotSupported(notSupported, options.keepNotSupported);\n\n return options;\n }\n\n function patternPropertiesHandler(schema) {\n var pattern;\n var patternsObj = schema.patternProperties;\n var additProps = schema.additionalProperties;\n\n if (typeof additProps !== 'object') {\n return schema;\n }\n\n for (pattern in patternsObj) {\n if (fastDeepEqual(patternsObj[pattern], additProps)) {\n schema.additionalProperties = false;\n break;\n }\n }\n\n return schema;\n }\n\n function resolveNotSupported(notSupported, toRetain) {\n var i = 0;\n var index;\n\n for (i; i < toRetain.length; i++) {\n index = notSupported.indexOf(toRetain[i]);\n\n if (index >= 0) {\n notSupported.splice(index, 1);\n }\n }\n\n return notSupported;\n }\n openapiSchemaToJsonSchema_1.fromSchema = fromSchema;\n openapiSchemaToJsonSchema_1.fromParameter = fromParameter;\n\n var openapiSchemaParser = {\n parse: parse$1,\n getMimeTypes: getMimeTypes$1\n };\n\n async function parse$1({ message, defaultSchemaFormat }) {\n const transformed = openapiSchemaToJsonSchema_1(message.payload, {\n cloneSchema: true,\n keepNotSupported: [\n 'discriminator',\n 'readOnly',\n 'writeOnly',\n 'deprecated',\n 'xml',\n 'example',\n ],\n });\n\n iterateSchema(transformed);\n\n message['x-parser-original-schema-format'] = message.schemaFormat || defaultSchemaFormat;\n message['x-parser-original-payload'] = message.payload;\n message.payload = transformed;\n delete message.schemaFormat;\n }\n function iterateSchema(schema) {\n if (schema.example !== undefined) {\n const examples = schema.examples || [];\n examples.push(schema.example);\n schema.examples = examples;\n delete schema.example;\n }\n\n if (schema.$schema !== undefined) {\n delete schema.$schema;\n }\n\n aliasProps(schema.properties);\n aliasProps(schema.patternProperties);\n aliasProps(schema.additionalProperties);\n aliasProps(schema.items);\n aliasProps(schema.additionalItems);\n aliasProps(schema.oneOf);\n aliasProps(schema.anyOf);\n aliasProps(schema.allOf);\n aliasProps(schema.not);\n }\n\n function aliasProps(obj) {\n for (const key in obj) {\n const prop = obj[key];\n\n if (prop.xml !== undefined) {\n prop['x-xml'] = prop.xml;\n delete prop.xml;\n }\n\n iterateSchema(obj[key]);\n }\n }\n\n function getMimeTypes$1() {\n return [\n 'application/vnd.oai.openapi;version=3.0.0',\n 'application/vnd.oai.openapi+json;version=3.0.0',\n 'application/vnd.oai.openapi+yaml;version=3.0.0',\n ];\n }\n\n const BYTES_PATTERN = '^[\\u0000-\\u00ff]*$';\n const INT_MIN = Math.pow(-2, 31);\n const INT_MAX = Math.pow(2, 31) - 1;\n const LONG_MIN = Math.pow(-2, 63);\n const LONG_MAX = Math.pow(2, 63) - 1;\n\n const typeMappings = {\n null: 'null',\n boolean: 'boolean',\n int: 'integer',\n long: 'integer',\n float: 'number',\n double: 'number',\n bytes: 'string',\n string: 'string',\n fixed: 'string',\n map: 'object',\n array: 'array',\n enum: 'string',\n record: 'object',\n uuid: 'string',\n };\n\n var avroToJsonSchema$1 = async function avroToJsonSchema(avroDefinition) {\n const jsonSchema = {};\n const isUnion = Array.isArray(avroDefinition);\n\n if (isUnion) {\n jsonSchema.oneOf = [];\n for (const avroDef of avroDefinition) {\n const def = await avroToJsonSchema(avroDef);\n jsonSchema.oneOf.push(def);\n }\n\n return jsonSchema;\n }\n \n // Avro definition can be a string (e.g. \"int\")\n // or an object like { type: \"int\" }\n const type = avroDefinition.type || avroDefinition;\n jsonSchema.type = typeMappings[type];\n \n switch (type) {\n case 'int':\n jsonSchema.minimum = INT_MIN;\n jsonSchema.maximum = INT_MAX;\n break;\n case 'long':\n jsonSchema.minimum = LONG_MIN;\n jsonSchema.maximum = LONG_MAX;\n break;\n case 'bytes':\n jsonSchema.pattern = BYTES_PATTERN;\n break;\n case 'fixed':\n jsonSchema.pattern = BYTES_PATTERN;\n jsonSchema.minLength = avroDefinition.size;\n jsonSchema.maxLength = avroDefinition.size;\n break;\n case 'map':\n jsonSchema.additionalProperties = await avroToJsonSchema(avroDefinition.values);\n break;\n case 'array':\n jsonSchema.items = await avroToJsonSchema(avroDefinition.items);\n break;\n case 'enum':\n jsonSchema.enum = avroDefinition.symbols;\n break;\n case 'record':\n const propsMap = new Map();\n for (const field of avroDefinition.fields) {\n const def = await avroToJsonSchema(field.type);\n if (field.doc) def.description = field.doc;\n if (field.default) def.default = field.default;\n propsMap.set(field.name, def);\n }\n jsonSchema.properties = Object.fromEntries(propsMap.entries());\n break;\n }\n\n if (avroDefinition.doc) jsonSchema.description = avroDefinition.doc;\n if (avroDefinition.default !== undefined) jsonSchema.default = avroDefinition.default;\n\n return jsonSchema;\n };\n\n var toJsonSchema = {\n avroToJsonSchema: avroToJsonSchema$1\n };\n\n const { avroToJsonSchema } = toJsonSchema;\n\n var parse = async ({ message, defaultSchemaFormat }) => {\n const transformed = await avroToJsonSchema(message.payload);\n\n message['x-parser-original-schema-format'] = message.schemaFormat || defaultSchemaFormat;\n message['x-parser-original-payload'] = message.payload;\n message.payload = transformed;\n delete message.schemaFormat;\n };\n\n var getMimeTypes = () => {\n return [\n 'application/vnd.apache.avro;version=1.9.0',\n 'application/vnd.apache.avro+json;version=1.9.0',\n 'application/vnd.apache.avro+yaml;version=1.9.0',\n 'application/vnd.apache.avro;version=1.8.2',\n 'application/vnd.apache.avro+json;version=1.8.2',\n 'application/vnd.apache.avro+yaml;version=1.8.2'\n ];\n };\n\n var avroSchemaParser = {\n parse: parse,\n getMimeTypes: getMimeTypes\n };\n\n var __awaiter$1 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n\n var __generator$1 = undefined && undefined.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n };\n lib.registerSchemaParser(openapiSchemaParser);\n lib.registerSchemaParser(avroSchemaParser);\n\n var Parser = function () {\n function Parser() {\n this.handleError = function (err) {\n if (err.type === VALIDATION_ERRORS_TYPE) {\n return {\n data: err.parsedJSON || null,\n error: err\n };\n }\n\n return {\n data: null,\n error: err\n };\n };\n\n this.extractDocument = function (data) {\n if (data.json instanceof Function) {\n return {\n data: data.json()\n };\n }\n\n if (typeof data._json === 'object') {\n return {\n data: data._json\n };\n }\n\n return {\n data: data\n };\n };\n\n this.parseSchema = lib.parse;\n this.parseSchemaFromURL = lib.parseFromUrl;\n }\n\n Parser.prototype.parse = function (content, parserOptions) {\n return __awaiter$1(this, void 0, void 0, function () {\n var data, err_1;\n return __generator$1(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4, this.parseSchema(content, parserOptions)];\n\n case 1:\n data = _a.sent();\n return [2, this.extractDocument(data)];\n\n case 2:\n err_1 = _a.sent();\n return [2, this.handleError(err_1)];\n\n case 3:\n return [2];\n }\n });\n });\n };\n\n Parser.prototype.parseFromUrl = function (arg, parserOptions) {\n return __awaiter$1(this, void 0, void 0, function () {\n var data, err_2;\n return __generator$1(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n\n return [4, this.parseSchemaFromURL(arg.url, arg.requestOptions, parserOptions)];\n\n case 1:\n data = _a.sent();\n return [2, this.extractDocument(data)];\n\n case 2:\n err_2 = _a.sent();\n return [2, this.handleError(err_2)];\n\n case 3:\n return [2];\n }\n });\n });\n };\n\n return Parser;\n }();\n\n var getExamplesFromSpec = function (examples, type) {\n return examples.map(function (el) {\n return el[type];\n }).filter(Boolean);\n };\n\n var NO_PROVIDER = \"_NP_\";\n\n function createUseContext(context) {\n return function () {\n var value = React.useContext(context);\n\n if (value === NO_PROVIDER) {\n // eslint-disable-next-line no-console\n console.warn(\"[constate] Component not wrapped within a Provider.\");\n }\n\n return value;\n };\n }\n\n function constate(useValue) {\n for (var _len = arguments.length, splitValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n splitValues[_key - 1] = arguments[_key];\n }\n\n var Context = React.createContext(NO_PROVIDER);\n\n var Provider = function Provider(props) {\n var value = useValue(props);\n var createMemoDeps = splitValues[0];\n var deps = createMemoDeps && createMemoDeps(value);\n\n if (Array.isArray(deps)) {\n // eslint-disable-next-line no-console\n console.warn(\"[constate] Passing `createMemoDeps` as the second argument is deprecated.\", \"Please, use `React.useMemo` in your custom hook instead.\", \"See https://github.com/diegohaz/constate/issues/98\");\n } // deps won't change between renders\n\n\n var memoizedValue = Array.isArray(deps) ? React.useMemo(function () {\n return value;\n }, deps) : value;\n return React.createElement(Context.Provider, {\n value: memoizedValue\n }, props.children);\n };\n\n if (useValue.name) {\n Context.displayName = useValue.name + \".Context\";\n Provider.displayName = useValue.name + \".Provider\";\n } // const useCounterContext = constate(...)\n\n\n var useContext = createUseContext(Context); // const { Context, Provider } = constate(...)\n\n useContext.Context = Context;\n useContext.Provider = Provider;\n var tuple = [];\n\n if (!splitValues.length) {\n // const [Provider, useCounterContext] = constate(...);\n tuple.push(Provider, createUseContext(Context));\n } else {\n var contexts = [];\n\n var SplitProvider = function SplitProvider(props) {\n var value = useValue(props);\n var children = props.children;\n\n for (var i = 0; i < contexts.length; i += 1) {\n var context = contexts[i]; // splitValue may be a hook, but it won't change between re-renders\n\n var splitValue = splitValues[i];\n children = React.createElement(context.Provider, {\n value: splitValue(value)\n }, children);\n }\n\n return children;\n };\n\n if (useValue.name) {\n SplitProvider.displayName = useValue.name + \".Provider\";\n } // const [Provider, useCount, useIncrement] = constate(...);\n\n\n tuple.push(SplitProvider);\n\n for (var i = 0; i < splitValues.length; i += 1) {\n var context = React.createContext(NO_PROVIDER);\n contexts.push(context);\n tuple.push(createUseContext(context));\n }\n }\n\n for (var _i = 0; _i < tuple.length; _i += 1) {\n useContext[_i] = tuple[_i];\n }\n\n if (typeof Symbol === \"function\" && Symbol.iterator) {\n useContext[Symbol.iterator] =\n /* istanbul ignore next */\n function () {\n return tuple[Symbol.iterator]();\n };\n }\n\n return useContext;\n }\n\n var __assign$3 = undefined && undefined.__assign || function () {\n __assign$3 = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign$3.apply(this, arguments);\n };\n\n var __rest = undefined && undefined.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n };\n\n var useExpandedState = function (_a) {\n var numberOfElements = _a.numberOfElements,\n _b = _a.numberOfExpandedElement,\n initialNumberOfExpandedElement = _b === void 0 ? 0 : _b;\n\n var _c = React.useState(false),\n expanded = _c[0],\n setExpanded = _c[1];\n\n var _d = React.useState(initialNumberOfExpandedElement),\n numberOfExpanded = _d[0],\n setNumberOfExpanded = _d[1];\n\n var _e = React.useState({\n label: '',\n itemName: '',\n state: false,\n scroll: false\n }),\n clickedItem = _e[0],\n setClickedItem = _e[1];\n\n var _f = React.useState(false),\n scrollToView = _f[0],\n setScrollToView = _f[1];\n\n var clickItem = React.useCallback(function (_a) {\n var label = _a.label,\n rest = __rest(_a, [\"label\"]);\n\n if (label) {\n setClickedItem(__assign$3({\n label: label\n }, rest));\n }\n }, []);\n return {\n expanded: expanded,\n setExpanded: setExpanded,\n numberOfElements: numberOfElements,\n numberOfExpanded: numberOfExpanded,\n setNumberOfExpanded: setNumberOfExpanded,\n clickedItem: clickedItem,\n setClickedItem: clickItem,\n scrollToView: scrollToView,\n setScrollToView: setScrollToView\n };\n };\n\n var useExpandedContext = constate(useExpandedState);\n\n var isClient = typeof window === 'object';\n var on = function (obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return obj.addEventListener.apply(obj, args);\n };\n var off = function (obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return obj.removeEventListener.apply(obj, args);\n };\n\n var patchHistoryMethod = function (method) {\n var original = history[method];\n history[method] = function (state) {\n var result = original.apply(this, arguments);\n var event = new Event(method.toLowerCase());\n event.state = state;\n window.dispatchEvent(event);\n return result;\n };\n };\n if (isClient) {\n patchHistoryMethod('pushState');\n patchHistoryMethod('replaceState');\n }\n var useLocationServer = function () { return ({\n trigger: 'load',\n length: 1,\n }); };\n var buildState = function (trigger) {\n var state = history.state, length = history.length;\n var hash = location.hash, host = location.host, hostname = location.hostname, href = location.href, origin = location.origin, pathname = location.pathname, port = location.port, protocol = location.protocol, search = location.search;\n return {\n trigger: trigger,\n state: state,\n length: length,\n hash: hash,\n host: host,\n hostname: hostname,\n href: href,\n origin: origin,\n pathname: pathname,\n port: port,\n protocol: protocol,\n search: search,\n };\n };\n var useLocationBrowser = function () {\n var _a = React.useState(buildState('load')), state = _a[0], setState = _a[1];\n React.useEffect(function () {\n var onPopstate = function () { return setState(buildState('popstate')); };\n var onPushstate = function () { return setState(buildState('pushstate')); };\n var onReplacestate = function () { return setState(buildState('replacestate')); };\n on(window, 'popstate', onPopstate);\n on(window, 'pushstate', onPushstate);\n on(window, 'replacestate', onReplacestate);\n return function () {\n off(window, 'popstate', onPopstate);\n off(window, 'pushstate', onPushstate);\n off(window, 'replacestate', onReplacestate);\n };\n }, []);\n return state;\n };\n var useLocation = isClient ? useLocationBrowser : useLocationServer;\n\n var useChangeHash = function (_a) {\n var schemaName = _a.schemaName,\n _b = _a.pushStateBehavior,\n pushStateBehavior = _b === void 0 ? scrollIntoViewOfAnchor : _b;\n var hash = useLocation().hash;\n\n var _c = useExpandedContext(),\n setClickedItem = _c.setClickedItem,\n scrollToView = _c.scrollToView;\n\n React.useEffect(function () {\n if (!hash) {\n return;\n }\n\n var hashData = extractHashData(hash);\n\n if (!hashData || hashData.schema !== schemaName) {\n return;\n }\n\n setClickedItem({\n label: hashData.container,\n itemName: hashData.item,\n state: true,\n scroll: true\n });\n }, [hash]);\n React.useEffect(function () {\n if (!hash) {\n return;\n }\n\n var hashData = extractHashData(hash);\n\n if (!hashData || hashData.schema !== schemaName) {\n return;\n }\n\n pushStateBehavior && pushStateBehavior(hash);\n }, [scrollToView]);\n };\n\n var useChangeHashContext = constate(useChangeHash);\n\n var CodeComponent = function (_a) {\n var title = _a.title,\n code = _a.code;\n return React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"code\")\n }, title && React__default['default'].createElement(\"header\", {\n className: bemClasses.element(\"code-header\")\n }, React__default['default'].createElement(\"h4\", null, title)), React__default['default'].createElement(\"pre\", {\n className: bemClasses.element(\"code-pre\")\n }, React__default['default'].createElement(\"code\", {\n className: bemClasses.element(\"code-body\")\n }, code)));\n };\n\n var TableHeader = function (_a) {\n var _b = _a.title,\n title = _b === void 0 ? '' : _b,\n _c = _a.columns,\n columns = _c === void 0 ? [] : _c,\n _d = _a.nested,\n nested = _d === void 0 ? false : _d;\n\n if (!columns) {\n return null;\n }\n\n return React__default['default'].createElement(\"thead\", {\n className: createNestedClassName(\"table-header\", nested)\n }, !title ? null : React__default['default'].createElement(\"tr\", {\n className: createNestedClassName(\"table-header-title\", nested)\n }, React__default['default'].createElement(\"td\", {\n colSpan: columns.length\n }, title)), React__default['default'].createElement(\"tr\", {\n className: createNestedClassName(\"table-header-columns\", nested)\n }, columns.map(function (column, index) {\n return React__default['default'].createElement(\"th\", {\n key: index,\n className: createNestedClassName(\"table-header-column\", nested)\n }, column);\n })));\n };\n\n var TableRow = function (_a) {\n var element = _a.element,\n _b = _a.rootKey,\n rootKey = _b === void 0 ? '' : _b,\n _c = _a.accessors,\n accessors = _c === void 0 ? [] : _c,\n _d = _a.nested,\n nested = _d === void 0 ? false : _d,\n _e = _a.className,\n className = _e === void 0 ? '' : _e;\n\n var renderRowByAccessors = function (acs, el, nest) {\n return acs.map(function (accessor, index) {\n return React__default['default'].createElement(\"td\", {\n key: index,\n className: createNestedClassName(\"table-cell\", nest)\n }, resolveAccessor(accessor, el));\n });\n };\n\n var resolveAccessor = function (accessor, el) {\n if (accessor instanceof Function) {\n return accessor(el);\n }\n\n var value = el[accessor];\n\n if (typeof value === 'boolean' || typeof value === 'number') {\n return value.toString();\n }\n\n return value;\n };\n\n var content = accessors && accessors.length ? renderRowByAccessors(accessors, element, nested) : element;\n var nestedClassName = createNestedClassName(\"table-row\", nested);\n return React__default['default'].createElement(\"tr\", {\n key: rootKey,\n className: bemClasses.concatenate([nestedClassName, className])\n }, content);\n };\n\n var __assign$2 = undefined && undefined.__assign || function () {\n __assign$2 = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign$2.apply(this, arguments);\n };\n var Table = function (_a) {\n var header = _a.header,\n _b = _a.rows,\n rows = _b === void 0 ? [] : _b,\n _c = _a.accessors,\n accessors = _c === void 0 ? [] : _c,\n _d = _a.nested,\n nested = _d === void 0 ? false : _d,\n children = _a.children;\n\n if (!children && !rows.length) {\n return null;\n }\n\n var tableClassName = createNestedClassName(\"table\", nested);\n var tableBodyClassName = createNestedClassName(\"table-body\", nested);\n return React__default['default'].createElement(\"table\", {\n className: tableClassName\n }, React__default['default'].createElement(TableHeader, __assign$2({}, header, {\n nested: header.nested || nested\n })), React__default['default'].createElement(\"tbody\", {\n className: tableBodyClassName\n }, children ? children : rows.map(function (row, index) {\n return React__default['default'].createElement(TableRow, __assign$2({}, row, {\n key: index,\n accessors: row.accessors || accessors,\n nested: row.nested || nested\n }));\n })));\n };\n\n var Href = function (_a) {\n var href = _a.href,\n children = _a.children;\n var className = \"anchor\";\n return React__default['default'].createElement(\"a\", {\n href: href,\n target: \"_blank\",\n rel: \"nofollow noopener noreferrer\",\n className: bemClasses.element(className)\n }, React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-content\")\n }, children), React__default['default'].createElement(\"span\", {\n className: bemClasses.element(className + \"-icon\")\n }));\n };\n\n var Markdown = function (_a) {\n var children = _a.children;\n return React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"markdown\")\n }, children);\n };\n\n var BadgeType;\n\n (function (BadgeType) {\n BadgeType[\"DEPRECATED\"] = \"deprecated\";\n BadgeType[\"PUBLISH\"] = \"publish\";\n BadgeType[\"SUBSCRIBE\"] = \"subscribe\";\n BadgeType[\"REQUIRED\"] = \"required\";\n BadgeType[\"GENERATED\"] = \"generated\";\n })(BadgeType || (BadgeType = {}));\n\n var Badge = function (_a) {\n var _b = _a.type,\n type = _b === void 0 ? '' : _b;\n\n var element = function (t, text) {\n return React__default['default'].createElement(\"span\", {\n className: bemClasses.element(\"badge\") + \" \" + bemClasses.modifier(t, \"badge\")\n }, text);\n };\n\n switch (type) {\n case BadgeType.DEPRECATED:\n {\n return element(BadgeType.DEPRECATED, DEPRECATED_TEXT);\n }\n\n case BadgeType.PUBLISH:\n {\n return element(BadgeType.PUBLISH, PUBLISH_TEXT);\n }\n\n case BadgeType.SUBSCRIBE:\n {\n return element(BadgeType.SUBSCRIBE, SUBSCRIBE_TEXT);\n }\n\n case BadgeType.REQUIRED:\n {\n return element(BadgeType.REQUIRED, REQUIRED_TEXT);\n }\n\n case BadgeType.GENERATED:\n {\n return element(BadgeType.GENERATED, GENERATED_TEXT);\n }\n\n default:\n {\n return null;\n }\n }\n };\n\n var TreeSpace = function () {\n return React__default['default'].createElement(\"span\", {\n className: bemClasses.element(\"tree-space\")\n });\n };\n var TreeLeaf = function () {\n return React__default['default'].createElement(\"span\", {\n className: bemClasses.element(\"tree-leaf\")\n });\n };\n\n var Toggle = function (_a) {\n var header = _a.header,\n _b = _a.className,\n customClassName = _b === void 0 ? '' : _b,\n _c = _a.expanded,\n initialExpanded = _c === void 0 ? false : _c,\n _d = _a.toggleInState,\n toggleInState = _d === void 0 ? false : _d,\n _e = _a.label,\n label = _e === void 0 ? '' : _e,\n _f = _a.itemName,\n itemName = _f === void 0 ? '' : _f,\n children = _a.children;\n\n var _g = useExpandedContext(),\n globalExpanded = _g.expanded,\n setNumberOfExpanded = _g.setNumberOfExpanded,\n clickedItem = _g.clickedItem,\n setClickedItem = _g.setClickedItem,\n setScrollToView = _g.setScrollToView;\n\n var _h = React.useState(false),\n initial = _h[0],\n setInitial = _h[1];\n\n var _j = React.useState(initialExpanded),\n expanded = _j[0],\n setExpanded = _j[1];\n\n var handleSetExpanded = function (e) {\n e.stopPropagation();\n var newState = !expanded;\n\n if (children) {\n setExpanded(newState);\n }\n\n setClickedItem({\n label: label,\n itemName: itemName,\n state: newState,\n scroll: false\n });\n };\n\n React.useEffect(function () {\n setInitial(true);\n }, []);\n React.useEffect(function () {\n if (clickedItem && clickedItem.scroll && clickedItem.state && clickedItem.label === label) {\n setScrollToView(function (state) {\n return !state;\n });\n }\n }, [expanded]);\n React.useEffect(function () {\n if (initial && toggleInState) {\n setExpanded(globalExpanded);\n }\n }, [globalExpanded]);\n React.useEffect(function () {\n if (!initial) {\n return;\n }\n\n if (!(clickedItem && clickedItem.state) && ITEM_LABELS_VALUES.includes(label) && clickedItem.label === inContainer(label)) {\n setExpanded(false);\n return;\n }\n\n if (!expanded && clickedItem && clickedItem.state && label) {\n if (clickedItem.label === label && CONTAINER_LABELS_VALUES.includes(label)) {\n setExpanded(true);\n return;\n }\n\n if (clickedItem.label === inContainer(label) && itemName && clickedItem.itemName === itemName) {\n setExpanded(true);\n return;\n }\n }\n }, [initial, clickedItem]);\n React.useEffect(function () {\n if (toggleInState && initial) {\n setNumberOfExpanded(function (state) {\n return expanded ? state + 1 : state - 1;\n });\n }\n }, [expanded, setNumberOfExpanded]);\n var className = \"toggle\";\n var classes = bemClasses.concatenate([bemClasses.element(className), expanded ? bemClasses.modifier(\"expanded\", className) : '', bemClasses.element(customClassName + \"-toggle\"), !children ? bemClasses.modifier(\"no-children\", className) : '', !children ? bemClasses.modifier(\"no-children\", customClassName) : '', expanded ? bemClasses.modifier(\"expanded\", customClassName + \"-toggle\") : '']);\n var headerClasses = bemClasses.concatenate([bemClasses.element(className + \"-header\"), bemClasses.element(customClassName + \"-header\")]);\n var arrowClasses = bemClasses.concatenate([bemClasses.element(className + \"-arrow\"), expanded ? bemClasses.modifier(\"expanded\", className + \"-arrow\") : '']);\n var bodyClasses = bemClasses.concatenate([bemClasses.element(className + \"-body\"), bemClasses.element(customClassName + \"-body\")]);\n return React__default['default'].createElement(\"div\", {\n className: classes,\n onClick: function (e) {\n if (!expanded) {\n handleSetExpanded(e);\n }\n }\n }, React__default['default'].createElement(\"header\", {\n className: headerClasses,\n onClick: handleSetExpanded\n }, React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-header-content\")\n }, header), children && React__default['default'].createElement(\"button\", {\n className: bemClasses.element(className + \"-button\")\n }, React__default['default'].createElement(\"span\", {\n className: arrowClasses\n }))), children && React__default['default'].createElement(\"div\", {\n className: bodyClasses\n }, children));\n };\n\n var CollapseButton = function () {\n var _a = useExpandedContext(),\n expanded = _a.expanded,\n setExpanded = _a.setExpanded,\n numberOfElements = _a.numberOfElements,\n numberOfExpanded = _a.numberOfExpanded;\n\n var _b = React.useState(false),\n initial = _b[0],\n setInitial = _b[1];\n\n React.useEffect(function () {\n setInitial(true);\n }, []);\n React.useEffect(function () {\n if (!initial) {\n return;\n }\n\n if (numberOfExpanded === 0 && expanded) {\n setExpanded(false);\n }\n\n if (numberOfExpanded === numberOfElements && !expanded) {\n setExpanded(true);\n }\n }, [numberOfExpanded]);\n return React__default['default'].createElement(\"button\", {\n className: bemClasses.element(\"collapse-button\"),\n onClick: function () {\n return setExpanded(function (state) {\n return !state;\n });\n }\n }, React__default['default'].createElement(\"span\", null, expanded ? COLLAPSE_ALL_TEXT : EXPAND_ALL_TEXT));\n };\n\n var renderErrors = function (errors) {\n if (!errors) {\n return null;\n }\n\n return errors.map(function (singleError, index) {\n var formattedError = formatError(singleError);\n\n if (!formattedError) {\n return null;\n }\n\n return React__default['default'].createElement(\"div\", {\n key: index\n }, React__default['default'].createElement(\"code\", {\n className: bemClasses.element(\"error-content-code\"),\n key: index\n }, formattedError));\n }).filter(Boolean);\n };\n\n var formatError = function (singleError) {\n return singleError.title;\n };\n var ErrorComponent = function (_a) {\n var error = _a.error;\n\n if (!error) {\n return null;\n }\n\n var className = \"error\";\n var title = error.title,\n validationErrors = error.validationErrors;\n var header = React__default['default'].createElement(\"h2\", null, ERROR_TEXT, \": \", title);\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className)\n }, React__default['default'].createElement(Toggle, {\n header: header,\n className: className\n }, validationErrors && validationErrors.length && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-body\")\n }, React__default['default'].createElement(\"pre\", {\n className: bemClasses.element(className + \"-body-pre\")\n }, renderErrors(validationErrors)))));\n };\n\n var TermsOfServiceComponent = function (_a) {\n var url = _a.url;\n return React__default['default'].createElement(\"div\", null, React__default['default'].createElement(Href, {\n href: url\n }, React__default['default'].createElement(\"span\", null, TERMS_OF_SERVICE_TEXT)));\n };\n\n var LicenseComponent = function (_a) {\n var name = _a.name,\n url = _a.url;\n var nameWrapper = React__default['default'].createElement(\"span\", null, name);\n return React__default['default'].createElement(\"div\", null, url ? React__default['default'].createElement(Href, {\n href: url\n }, nameWrapper) : nameWrapper);\n };\n\n var ContactComponent = function (_a) {\n var url = _a.url,\n email = _a.email;\n return React__default['default'].createElement(React__default['default'].Fragment, null, url && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"info-contact-support-url\")\n }, React__default['default'].createElement(Href, {\n href: url\n }, React__default['default'].createElement(\"span\", null, URL_SUPPORT_TEXT))), email && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"info-contact-support-email\")\n }, React__default['default'].createElement(Href, {\n href: \"mailto:\" + email\n }, React__default['default'].createElement(\"span\", null, EMAIL_SUPPORT_TEXT))));\n };\n\n var DefaultContentTypeComponent = function (_a) {\n var type = _a.type;\n return React__default['default'].createElement(\"div\", null, React__default['default'].createElement(Href, {\n href: CONTENT_TYPES_SITE + \"/\" + type\n }, React__default['default'].createElement(\"span\", null, type)));\n };\n\n var __assign$1 = undefined && undefined.__assign || function () {\n __assign$1 = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign$1.apply(this, arguments);\n };\n var InfoComponent = function (_a) {\n var _b = _a.info,\n title = _b.title,\n version = _b.version,\n description = _b.description,\n termsOfService = _b.termsOfService,\n contact = _b.contact,\n license = _b.license,\n defaultContentType = _a.defaultContentType;\n var className = \"info\";\n var showInfoList = defaultContentType || termsOfService || license || contact;\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: bemClasses.identifier([className])\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-header\")\n }, React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-header-main\")\n }, React__default['default'].createElement(\"h1\", null, React__default['default'].createElement(\"span\", {\n className: bemClasses.element(className + \"-header-title\")\n }, title), version && React__default['default'].createElement(\"span\", {\n className: bemClasses.element(className + \"-header-version\")\n }, version)), React__default['default'].createElement(CollapseButton, null)), !showInfoList ? null : React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-list\")\n }, defaultContentType && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(className + \"-default-content-type\")\n }, React__default['default'].createElement(DefaultContentTypeComponent, {\n type: defaultContentType\n })), termsOfService && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(className + \"-terms-of-service\")\n }, React__default['default'].createElement(TermsOfServiceComponent, {\n url: termsOfService\n })), license && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(className + \"-license\")\n }, React__default['default'].createElement(LicenseComponent, __assign$1({}, license))), contact && (contact.url || contact.email) ? React__default['default'].createElement(ContactComponent, __assign$1({}, contact)) : null)), description && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-description\")\n }, React__default['default'].createElement(Markdown, null, description)));\n };\n\n var getEnumHTMLElements = function (schema) {\n var enumElements = [];\n\n if (schema.content.enum && schema.content.enum.length) {\n enumElements = schema.content.enum.map(function (value, i) {\n return React__default['default'].createElement(React__default['default'].Fragment, null, ' ', React__default['default'].createElement(\"span\", {\n className: bemClasses.element(\"enum\"),\n key: i\n }, \"\\\"\", value, \"\\\"\"));\n });\n }\n\n return enumElements;\n };\n\n var handleNotProperty = function (prop) {\n if (prop.not) {\n var arrayOfChangedObjects = Object.entries(prop).map(function (_a) {\n var _b;\n\n var key = _a[0],\n val = _a[1];\n\n if (key === 'not') {\n return {\n properties: (_b = {}, _b[key] = val, _b)\n };\n }\n\n return prop[key];\n });\n return merge$3.recursive.apply(merge$3, arrayOfChangedObjects);\n }\n\n return prop;\n };\n\n var renderItems = function (schema, treeSpace) {\n var properties = schema.items && schema.items.properties ? schema.items.properties : null;\n\n if (!properties) {\n return null;\n }\n\n return renderProperties(schema.items, treeSpace);\n };\n\n var renderProperties = function (schema, treeSpace) {\n var properties = schema.properties;\n\n if (!properties) {\n return null;\n }\n\n return Object.entries(properties).map(function (_a) {\n var key = _a[0],\n prop = _a[1];\n return React__default['default'].createElement(SchemaPropertiesComponent, {\n key: key,\n name: key,\n properties: prop,\n treeSpace: treeSpace,\n required: schema.required && schema.required.includes(key)\n });\n });\n };\n\n var renderAdditionalProperties = function (schema, treeSpace) {\n var additionalProperties = schema.additionalProperties;\n\n if (!additionalProperties || typeof additionalProperties === 'boolean') {\n return null;\n }\n\n return React__default['default'].createElement(\"div\", null, React__default['default'].createElement(SchemaPropertiesComponent, {\n key: \"property-name\",\n name: \"(property name)\",\n hasDynamicName: true,\n properties: additionalProperties,\n treeSpace: treeSpace\n }));\n };\n\n var renderOf = function (treeSpace, schemas) {\n if (!schemas) {\n return null;\n }\n\n return schemas.map(function (schema, index) {\n var id = index.toString();\n return React__default['default'].createElement(SchemaPropertiesComponent, {\n key: index,\n name: id,\n properties: schema,\n treeSpace: treeSpace\n });\n });\n };\n\n var renderPropertyName = function (el) {\n return React__default['default'].createElement(React__default['default'].Fragment, null, function () {\n var treeSpaces = [];\n\n if (el.treeSpace) {\n for (var i = 0; i < el.treeSpace; i++) {\n treeSpaces.push(React__default['default'].createElement(TreeSpace, {\n key: i\n }));\n }\n\n treeSpaces.push(React__default['default'].createElement(TreeLeaf, {\n key: el.treeSpace\n }));\n }\n\n return treeSpaces;\n }(), el.schema.key, el.required && React__default['default'].createElement(\"div\", {\n className: \"text-red\"\n }, function () {\n var treeSpaces = [];\n\n if (el.treeSpace) {\n for (var i = 0; i < el.treeSpace + 1; i++) {\n treeSpaces.push(React__default['default'].createElement(TreeSpace, {\n key: i\n }));\n }\n }\n\n return treeSpaces;\n }(), \"required\"));\n };\n\n var renderPropertyDescription = function (el) {\n var enumElements = getEnumHTMLElements(el.schema);\n return React__default['default'].createElement(\"div\", null, el.schema.content.description && React__default['default'].createElement(Markdown, null, el.schema.content.description), enumElements.length > 0 && React__default['default'].createElement(\"div\", null, \"Enum: \", enumElements), el.schema.content.default && React__default['default'].createElement(\"div\", null, \"Default: \", React__default['default'].createElement(\"span\", null, el.schema.content.default)), el.schema.content.hasOwnProperty('const') && React__default['default'].createElement(\"div\", null, \"Const:\", ' ', React__default['default'].createElement(\"span\", null, typeof el.schema.content.const !== 'object' ? String(el.schema.content.const) : JSON.stringify(el.schema.content.const))));\n };\n\n var SchemaPropertiesComponent = function (_a) {\n var name = _a.name,\n _b = _a.hasDynamicName,\n hasDynamicName = _b === void 0 ? false : _b,\n properties = _a.properties,\n treeSpace = _a.treeSpace,\n _c = _a.required,\n required = _c === void 0 ? false : _c;\n var alteredProperties = handleNotProperty(properties);\n var space = treeSpace + 1;\n var element = {\n schema: {\n key: name,\n content: alteredProperties\n },\n treeSpace: treeSpace,\n required: required\n };\n return React__default['default'].createElement(\"div\", null, React__default['default'].createElement(\"div\", {\n className: \"flex py-2\"\n }, React__default['default'].createElement(\"div\", {\n className: \"flex-1 \" + (hasDynamicName && 'font-italic')\n }, renderPropertyName(element)), React__default['default'].createElement(\"div\", {\n className: \"flex-1\"\n }, React__default['default'].createElement(\"span\", {\n className: \"capitalize text-sm text-teal font-bold\"\n }, element.schema.content.type, element.schema.content.anyOf ? \" \" + element.schema.content.anyOf : '', element.schema.content.oneOf ? \" \" + element.schema.content.oneOf : '', element.schema.content.items && element.schema.content.items.type ? \" (\" + element.schema.content.items.type + \")\" : ''), element.schema.content.format && React__default['default'].createElement(\"span\", {\n className: \"bg-yellow-dark font-bold no-underline text-black rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n }\n }, element.schema.content.format), element.schema.content.pattern && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded normal-case ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n }\n }, \"must match \", element.schema.content.pattern), element.schema.content.uniqueItems && React__default['default'].createElement(\"span\", {\n className: \"bg-red-700 font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n }\n }, \"Unique\"), typeof element.schema.content.minItems === 'number' && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n },\n title: \"At least \" + element.schema.content.minItems + \" items\"\n }, \">= \", element.schema.content.minItems, \" items\"), typeof element.schema.content.maxItems === 'number' && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n },\n title: \"At most \" + element.schema.content.maxItems + \" items\"\n }, \"<= \", element.schema.content.maxItems, \" items\"), typeof element.schema.content.minLength === 'number' && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n },\n title: \"At least \" + element.schema.content.minLength + \" characters long\"\n }, \"length >= \", element.schema.content.minLength), typeof element.schema.content.maxLength === 'number' && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n },\n title: \"At most \" + element.schema.content.maxLength + \" characters long\"\n }, \"length <= \", element.schema.content.maxLength), typeof element.schema.content.minimum === 'number' && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n },\n title: \"At least \" + element.schema.content.minimum\n }, \">= \", element.schema.content.minimum), typeof element.schema.content.maximum === 'number' && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n },\n title: \"At most \" + element.schema.content.maximum\n }, \"<= \", element.schema.content.maximum), element.schema.content.exclusiveMinimum && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n },\n title: \"Greater than \" + element.schema.content.exclusiveMinimum\n }, \"> \", element.schema.content.exclusiveMinimum), element.schema.content.exclusiveMaximum && React__default['default'].createElement(\"span\", {\n className: \"bg-purple-dark font-bold no-underline text-white rounded lowercase ml-2\",\n style: {\n height: '20px',\n fontSize: '11px',\n padding: '3px'\n },\n title: \"Less than \" + element.schema.content.exclusiveMaximum\n }, \"< \", element.schema.content.exclusiveMaximum), React__default['default'].createElement(\"div\", {\n className: \"py-2\"\n }, renderPropertyDescription(element)), element.schema.content.type === 'object' && React__default['default'].createElement(\"div\", {\n className: \"font-italic text-gray-600 text-sm\"\n }, (!element.schema.content.additionalProperties || typeof element.schema.content.additionalProperties === 'boolean') && React__default['default'].createElement(\"p\", {\n className: \"my-0\"\n }, \"Additional properties are\", ' ', element.schema.content.additionalProperties === false && 'NOT', ' ', \"allowed.\"), element.schema.content.additionalProperties && typeof element.schema.content.additionalProperties === 'object' && React__default['default'].createElement(\"p\", {\n className: \"my-0\"\n }, \"Additional properties must adhere to the following schema.\")), element.schema.content.items && React__default['default'].createElement(\"div\", {\n className: \"font-italic text-gray-600 text-sm\"\n }, element.schema.content.items && typeof element.schema.content.items === 'object' && React__default['default'].createElement(\"p\", {\n className: \"my-0\"\n }, \"Array items must adhere to the following schema.\")))), renderOf(space, alteredProperties.anyOf), renderOf(space, alteredProperties.oneOf), renderProperties(alteredProperties, space), renderAdditionalProperties(alteredProperties, space), renderItems(alteredProperties, space));\n };\n\n var SchemaExampleComponent = function (_a) {\n var title = _a.title,\n schema = _a.schema,\n example = _a.example;\n var schemaExample = schema && schema.example ? schema.example : schema && generateExampleSchema(schema);\n var exampleString = JSON.stringify(example || schemaExample || '', null, 2);\n\n if (!exampleString) {\n return null;\n }\n\n return React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"schema-example\")\n }, React__default['default'].createElement(CodeComponent, {\n code: exampleString,\n title: React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"schema-example-header\")\n }, React__default['default'].createElement(\"span\", {\n className: bemClasses.element(\"schema-example-header-title\")\n }, title ? title : SCHEMA_EXAMPLE_TEXT), example || schema && schema.example ? null : React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"schema-example-header-generated-badge\")\n }, React__default['default'].createElement(Badge, {\n type: BadgeType.GENERATED\n })))\n }));\n };\n\n var renderSchemaProps = function (schemaName, schema, required) {\n var properties = schema.properties;\n\n if (properties) {\n return Object.entries(properties).map(function (_a) {\n var key = _a[0],\n prop = _a[1];\n return React__default['default'].createElement(SchemaPropertiesComponent, {\n key: key,\n name: key,\n properties: prop,\n treeSpace: 0,\n required: schema.required && schema.required.includes(key)\n });\n });\n }\n\n return React__default['default'].createElement(SchemaPropertiesComponent, {\n name: schemaName,\n hasDynamicName: true,\n properties: schema,\n treeSpace: 0,\n required: required\n });\n };\n\n var SchemaComponent = function (_a) {\n var name = _a.name,\n schema = _a.schema,\n description = _a.description,\n exampleTitle = _a.exampleTitle,\n _b = _a.hideTitle,\n hideTitle = _b === void 0 ? false : _b,\n _c = _a.toggle,\n toggle = _c === void 0 ? false : _c,\n _d = _a.toggleExpand,\n toggleExpand = _d === void 0 ? false : _d,\n _e = _a.examples,\n examples = _e === void 0 ? [] : _e,\n _f = _a.required,\n required = _f === void 0 ? false : _f;\n\n if (!schema) {\n return null;\n }\n\n schema.description = schema.description || description || '';\n var className = ITEM_LABELS.SCHEMA;\n var hasNotField = searchForNestedObject(schema, 'not');\n var header = React__default['default'].createElement(\"h3\", null, React__default['default'].createElement(\"span\", {\n className: bemClasses.element(className + \"-header-title\")\n }, name));\n var hasExamples = examples.length;\n var content = React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-table\") + \" p-4\"\n }, renderSchemaProps(name, schema, required)), hasExamples ? examples.map(function (el, i) {\n return React__default['default'].createElement(SchemaExampleComponent, {\n title: hasExamples > 1 ? exampleTitle + \" \" + i : exampleTitle,\n example: el,\n key: i\n });\n }) : hasNotField ? null : React__default['default'].createElement(SchemaExampleComponent, {\n title: exampleTitle,\n schema: schema\n }));\n var schemaID = toggle ? bemClasses.identifier([CONTAINER_LABELS.SCHEMAS, name]) : undefined;\n var schemaDataID = toggle ? bemClasses.identifier([CONTAINER_LABELS.SCHEMAS, removeSpecialChars(name)]) : undefined;\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: schemaID,\n \"data-asyncapi-id\": schemaDataID\n }, toggle ? React__default['default'].createElement(Toggle, {\n header: header,\n className: className,\n expanded: toggleExpand,\n label: ITEM_LABELS.SCHEMA,\n itemName: name,\n toggleInState: true\n }, content) : React__default['default'].createElement(React__default['default'].Fragment, null, hideTitle ? null : React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-header\")\n }, header), content));\n };\n\n var PayloadComponent = function (_a) {\n var payload = _a.payload,\n _b = _a.oneOf,\n oneOf = _b === void 0 ? false : _b,\n _c = _a.anyOf,\n anyOf = _c === void 0 ? false : _c,\n identifier = _a.identifier,\n dataIdentifier = _a.dataIdentifier,\n id = _a.id,\n examples = _a.examples;\n var className = \"message-payload\";\n var payloadsID = identifier ? identifier + \"s\" : undefined;\n\n if (isOneOfPayload(payload)) {\n return React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-oneOf\"),\n id: payloadsID,\n \"data-asyncapi-id\": dataIdentifier\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-oneOf-header\")\n }, React__default['default'].createElement(\"h4\", null, ONE_OF_PAYLOADS_TEXT)), React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-oneOf-list\")\n }, payload.oneOf.map(function (elem, index) {\n return React__default['default'].createElement(\"li\", {\n key: index,\n className: bemClasses.element(className + \"-oneOf-list-item\")\n }, React__default['default'].createElement(PayloadComponent, {\n payload: elem,\n key: index,\n oneOf: true,\n identifier: identifier,\n id: index,\n examples: examples\n }));\n })));\n }\n\n if (isAnyOfPayload(payload)) {\n return React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-anyOf\"),\n id: payloadsID,\n \"data-asyncapi-id\": dataIdentifier\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-anyOf-header\")\n }, React__default['default'].createElement(\"h4\", null, ANY_OF_PAYLOADS_TEXT)), React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-anyOf-list\")\n }, payload.anyOf.map(function (elem, index) {\n return React__default['default'].createElement(\"li\", {\n key: index,\n className: bemClasses.element(className + \"-anyOf-list-item\")\n }, React__default['default'].createElement(PayloadComponent, {\n payload: elem,\n key: index,\n anyOf: true,\n identifier: identifier,\n id: index,\n examples: examples\n }));\n })));\n }\n\n var inferredId = payload['x-parser-schema-id'] || '';\n inferredId = inferredId.includes('anonymous-schema') ? '' : inferredId;\n var title = id !== undefined ? inferredId ? id + \" \" + inferredId : id : PAYLOAD_TEXT;\n var header = React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-header\")\n }, React__default['default'].createElement(\"h4\", null, title));\n var content = React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-schema\")\n }, React__default['default'].createElement(SchemaComponent, {\n name: MESSAGE_PAYLOAD_TEXT,\n schema: payload,\n exampleTitle: PAYLOAD_EXAMPLE_TEXT,\n hideTitle: true,\n examples: examples\n }));\n var payloadID;\n\n if (identifier) {\n payloadID = payload.title && payload.title.length ? identifier + \"-\" + payload.title : \"\" + identifier + (id !== undefined ? \"-\" + id : '');\n }\n\n var payloadDataID;\n\n if (dataIdentifier) {\n payloadDataID = payload.title && payload.title.length ? dataIdentifier + \"-\" + payload.title : \"\" + dataIdentifier + (id !== undefined ? \"-\" + id : '');\n }\n\n if (oneOf || anyOf) {\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: payloadID,\n \"data-asyncapi-id\": payloadDataID\n }, React__default['default'].createElement(Toggle, {\n header: header,\n className: className\n }, content));\n }\n\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: payloadID,\n \"data-asyncapi-id\": payloadDataID\n }, header, content);\n };\n\n var MessageComponent = function (_a) {\n var title = _a.title,\n message = _a.message,\n hideTags = _a.hideTags,\n _b = _a.inChannel,\n inChannel = _b === void 0 ? false : _b,\n _c = _a.toggleExpand,\n toggleExpand = _c === void 0 ? false : _c;\n _a.oneOf;\n\n if (!message) {\n return null;\n }\n\n var className = ITEM_LABELS.MESSAGE;\n var messageID = title && title.length ? bemClasses.identifier([CONTAINER_LABELS.MESSAGES, title]) : bemClasses.identifier([CONTAINER_LABELS.MESSAGES]);\n var messageDataID = title && title.length ? bemClasses.identifier([CONTAINER_LABELS.MESSAGES, removeSpecialChars(title)]) : bemClasses.identifier([CONTAINER_LABELS.MESSAGES]);\n\n if (!isRawMessage(message)) {\n return React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(\"messages-oneOf-list\")\n }, message.oneOf.map(function (elem, index) {\n return React__default['default'].createElement(\"li\", {\n key: index,\n className: bemClasses.element(\"messages-oneOf-list-item\")\n }, React__default['default'].createElement(MessageComponent, {\n message: elem,\n key: index,\n title: elem.title,\n inChannel: inChannel,\n oneOf: true\n }));\n }));\n }\n\n title = title || message.title || message.name;\n var examples = message.examples;\n var summary = message.summary && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-summary\")\n }, React__default['default'].createElement(Markdown, null, message.summary));\n var description = message.description && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-description\")\n }, React__default['default'].createElement(Markdown, null, message.description));\n var header = !(title || summary) ? null : React__default['default'].createElement(\"h3\", null, message.deprecated && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-header-deprecated-badge\")\n }, React__default['default'].createElement(Badge, {\n type: BadgeType.DEPRECATED\n }, DEPRECATED_TEXT)), title ? React__default['default'].createElement(\"span\", {\n className: bemClasses.element(className + \"-header-title\")\n }, title) : null, React__default['default'].createElement(\"span\", {\n className: bemClasses.element(className + \"-header-summary\")\n }, summary));\n var headersID = !inChannel ? bemClasses.identifier([{\n id: messageID,\n toKebabCase: false\n }, 'headers']) : undefined;\n var headers = message.headers && React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className + \"-headers\"),\n id: headersID,\n \"data-asyncapi-id\": headersID\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-headers-header\")\n }, React__default['default'].createElement(\"h4\", null, HEADERS_TEXT)), React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-headers-schema\")\n }, React__default['default'].createElement(SchemaComponent, {\n name: MESSAGE_HEADERS_TEXT,\n schema: message.headers,\n exampleTitle: HEADERS_EXAMPLE_TEXT,\n hideTitle: true,\n examples: examples && getExamplesFromSpec(examples, 'headers')\n })));\n var payloadID = !inChannel ? bemClasses.identifier([{\n id: messageID,\n toKebabCase: false\n }, 'payload']) : undefined;\n var payloadDataID = !inChannel ? bemClasses.identifier([{\n id: messageDataID,\n toKebabCase: false\n }, 'payload']) : undefined;\n var payload = message.payload && React__default['default'].createElement(PayloadComponent, {\n payload: message.payload,\n identifier: payloadID,\n dataIdentifier: payloadDataID,\n examples: examples && getExamplesFromSpec(examples, 'payload')\n });\n var content = React__default['default'].createElement(React__default['default'].Fragment, null, headers, payload);\n var isBody = !!(message.description || message.headers || message.payload || !hideTags && message.tags);\n var identifier = !inChannel ? messageID : undefined;\n var dataIdentifier = !inChannel ? messageDataID : undefined;\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: identifier,\n \"data-asyncapi-id\": dataIdentifier\n }, !inChannel ? React__default['default'].createElement(Toggle, {\n header: header,\n className: className,\n expanded: toggleExpand,\n label: ITEM_LABELS.MESSAGE,\n itemName: title,\n toggleInState: true\n }, !isBody ? null : React__default['default'].createElement(React__default['default'].Fragment, null, description, content)) : React__default['default'].createElement(React__default['default'].Fragment, null, content));\n };\n\n var MessagesComponent = function (_a) {\n var messages = _a.messages,\n expand = _a.expand,\n _b = _a.inChannel,\n inChannel = _b === void 0 ? false : _b;\n\n if (!messages) {\n return null;\n }\n\n var className = CONTAINER_LABELS.MESSAGES;\n var messagesLength = Object.keys(messages).length;\n\n var wrapper = function (children) {\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: bemClasses.identifier([className])\n }, children);\n };\n\n var header = React__default['default'].createElement(\"h2\", null, MESSAGES_TEXT);\n var content = React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-list\")\n }, Object.entries(messages).map(function (_a) {\n var key = _a[0],\n message = _a[1];\n var msg = message;\n var inferredName = msg['x-parser-message-name'] || '';\n inferredName = inferredName.includes('anonymous-message') ? '' : inferredName;\n var title = messagesLength < 2 && inChannel ? '' : message.title || message.name || inferredName || key;\n return React__default['default'].createElement(\"li\", {\n key: key,\n className: bemClasses.element(className + \"-list-item\")\n }, React__default['default'].createElement(MessageComponent, {\n title: title,\n message: message,\n hideTags: true,\n inChannel: false,\n toggleExpand: expand && expand.elements\n }));\n }));\n\n if (inChannel) {\n return wrapper(content);\n }\n\n return wrapper(React__default['default'].createElement(Toggle, {\n header: header,\n className: className,\n expanded: expand && expand.root,\n label: CONTAINER_LABELS.MESSAGES,\n toggleInState: true\n }, content));\n };\n\n var OperationComponent = function (_a) {\n var _b = _a.payloadType,\n payloadType = _b === void 0 ? PayloadType.PUBLISH : _b,\n operation = _a.operation,\n _c = _a.oneOf,\n oneOf = _c === void 0 ? false : _c,\n _d = _a.otherOneOf,\n otherOneOf = _d === void 0 ? false : _d,\n _e = _a.isPublish,\n isPublish = _e === void 0 ? false : _e,\n _f = _a.isSubscribe,\n isSubscribe = _f === void 0 ? false : _f;\n\n if (!operation || !operation.message) {\n return null;\n }\n\n var className = \"channel-operation\";\n var messages = {};\n\n if (oneOf && !isRawMessage(operation.message)) {\n messages = operation.message.oneOf.map(function (message, index) {\n var _a;\n\n return _a = {}, _a[index.toString()] = message, _a;\n }).reduce(function (obj, item) {\n return Object.assign(obj, item);\n }, {});\n }\n\n if (!oneOf && otherOneOf) {\n messages = {\n 0: operation.message\n };\n }\n\n if (oneOf || otherOneOf) {\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className + \"-oneOf-\" + payloadType)\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-oneOf-\" + payloadType + \"-header\")\n }, React__default['default'].createElement(\"h4\", null, isPublish && isSubscribe ? React__default['default'].createElement(Badge, {\n type: payloadType === PayloadType.PUBLISH ? BadgeType.PUBLISH : BadgeType.SUBSCRIBE\n }) : null, React__default['default'].createElement(\"span\", null, payloadType === PayloadType.PUBLISH ? ONE_OF_FOLLOWING_MESSAGES_PUBLISH_TEXT : ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_TEXT))), operation.description && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-description\")\n }, React__default['default'].createElement(Markdown, null, operation.description)), React__default['default'].createElement(MessagesComponent, {\n messages: messages,\n inChannel: true\n }));\n }\n\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className)\n }, operation.description && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-description\")\n }, React__default['default'].createElement(Markdown, null, operation.description)), React__default['default'].createElement(MessageComponent, {\n message: operation.message,\n inChannel: true\n }));\n };\n\n var Parameter = function (_a) {\n var _b = _a.param,\n description = _b.description,\n location = _b.location,\n schema = _b.schema,\n _c = _a.name,\n name = _c === void 0 ? '' : _c;\n return React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"channel-parameter\")\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(\"channel-parameter-header\")\n }, location && React__default['default'].createElement(\"h4\", null, LOCATION_TEXT, \": \", location)), React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"channel-parameter-schema\")\n }, React__default['default'].createElement(SchemaComponent, {\n name: name,\n schema: schema,\n hideTitle: true,\n description: description,\n required: true\n })));\n };\n\n var Parameters = function (_a) {\n var parameters = _a.parameters,\n identifier = _a.identifier,\n dataIdentifier = _a.dataIdentifier;\n\n if (!parameters) {\n return null;\n }\n\n return React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"channel-parameters\"),\n id: identifier,\n \"data-asyncapi-id\": dataIdentifier\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(\"channel-parameters-header\")\n }, React__default['default'].createElement(\"h4\", null, PARAMETERS_TEXT)), React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(\"channel-parameters-list\")\n }, Object.entries(parameters).map(function (_a) {\n var name = _a[0],\n param = _a[1];\n return React__default['default'].createElement(\"li\", {\n key: name,\n className: bemClasses.element(\"channel-parameters-list-item\")\n }, React__default['default'].createElement(Parameter, {\n param: param,\n name: name\n }));\n })));\n };\n\n var ChannelComponent = function (_a) {\n var _b, _c;\n\n var name = _a.name,\n channel = _a.channel,\n _d = _a.toggleExpand,\n toggleExpand = _d === void 0 ? false : _d;\n var className = ITEM_LABELS.CHANNEL;\n var identifier = bemClasses.identifier([CONTAINER_LABELS.CHANNELS, name]);\n var dataIdentifier = bemClasses.identifier([CONTAINER_LABELS.CHANNELS, removeSpecialChars(name)]);\n var message = channel.publish && channel.publish.message || channel.subscribe && channel.subscribe.message;\n var oneOfPublish = channel.publish && channel.publish.message && !isRawMessage(channel.publish.message);\n var oneOfSubscribe = channel.subscribe && channel.subscribe.message && !isRawMessage(channel.subscribe.message);\n var oneOfExists = Boolean(oneOfPublish || oneOfSubscribe);\n var header = React__default['default'].createElement(\"h3\", null, React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-header-badges\")\n }, channel.deprecated && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(className + \"-header-badges-deprecated-badge\")\n }, React__default['default'].createElement(Badge, {\n type: BadgeType.DEPRECATED\n })), channel.publish && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(className + \"-header-publish-badge\")\n }, React__default['default'].createElement(Badge, {\n type: BadgeType.PUBLISH\n })), channel.subscribe && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(className + \"-header-subscribe-badge\")\n }, React__default['default'].createElement(Badge, {\n type: BadgeType.SUBSCRIBE\n }))), React__default['default'].createElement(\"span\", {\n className: bemClasses.element(className + \"-header-title\")\n }, name));\n var content = React__default['default'].createElement(React__default['default'].Fragment, null, channel.description && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-description\")\n }, React__default['default'].createElement(Markdown, null, channel.description)), React__default['default'].createElement(Parameters, {\n parameters: channel.parameters,\n identifier: bemClasses.identifier([{\n id: identifier,\n toKebabCase: false\n }, 'parameters']),\n dataIdentifier: bemClasses.identifier([{\n id: dataIdentifier,\n toKebabCase: false\n }, 'parameters'])\n }), React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-operations\")\n }, oneOfExists ? null : React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-operations-header\")\n }, React__default['default'].createElement(\"h4\", null, React__default['default'].createElement(\"span\", null, ((_b = message) === null || _b === void 0 ? void 0 : _b.title) || ((_c = message) === null || _c === void 0 ? void 0 : _c.name) || MESSAGE_TEXT))), React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-operations-list\")\n }, channel.subscribe && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(className + \"-operations-subscribe\")\n }, React__default['default'].createElement(OperationComponent, {\n payloadType: PayloadType.SUBSCRIBE,\n operation: channel.subscribe,\n oneOf: oneOfSubscribe,\n otherOneOf: oneOfPublish,\n isPublish: !!channel.publish,\n isSubscribe: !!channel.subscribe\n })), channel.publish && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(className + \"-operations-publish\")\n }, React__default['default'].createElement(OperationComponent, {\n payloadType: PayloadType.PUBLISH,\n operation: channel.publish,\n otherOneOf: oneOfSubscribe,\n oneOf: oneOfPublish,\n isPublish: !!channel.publish,\n isSubscribe: !!channel.subscribe\n })))));\n var body = (channel.subscribe || channel.publish) && content;\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: identifier,\n \"data-asyncapi-id\": dataIdentifier\n }, React__default['default'].createElement(Toggle, {\n header: header,\n className: className,\n expanded: toggleExpand,\n label: ITEM_LABELS.CHANNEL,\n itemName: name,\n toggleInState: true\n }, body));\n };\n\n var ChannelsComponent = function (_a) {\n var channels = _a.channels,\n expand = _a.expand;\n var className = CONTAINER_LABELS.CHANNELS;\n var header = React__default['default'].createElement(\"h2\", null, CHANNELS_TEXT);\n var content = React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-list\")\n }, Object.entries(channels).map(function (_a) {\n var name = _a[0],\n channel = _a[1];\n return React__default['default'].createElement(\"li\", {\n key: name,\n className: bemClasses.element(className + \"-list-item\")\n }, React__default['default'].createElement(ChannelComponent, {\n name: name,\n channel: channel,\n toggleExpand: expand && expand.elements\n }));\n }));\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: bemClasses.identifier([className])\n }, React__default['default'].createElement(Toggle, {\n header: header,\n className: className,\n expanded: expand && expand.root,\n label: CONTAINER_LABELS.CHANNELS,\n toggleInState: true\n }, content));\n };\n\n var serverVariablesAccessors = [function (el) {\n return React__default['default'].createElement(\"span\", null, el.key);\n }, function (el) {\n return el.content.default ? React__default['default'].createElement(\"span\", null, el.content.default) : React__default['default'].createElement(\"em\", null, NONE_TEXT);\n }, function (el) {\n return el.content.enum ? React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(\"server-variables-enum-list\")\n }, el.content.enum.map(function (value) {\n return React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"server-variables-enum-list-item\"),\n key: value\n }, value);\n })) : React__default['default'].createElement(\"em\", null, ANY_TEXT);\n }, function (el) {\n return el.content.description && React__default['default'].createElement(Markdown, null, el.content.description);\n }];\n var ServerVariablesComponent = function (_a) {\n var variables = _a.variables,\n id = _a.identifier,\n dataId = _a.dataIdentifier;\n\n if (!variables.length) {\n return null;\n }\n\n var className = \"server-variables\";\n var rows = variables.map(function (variable) {\n return {\n key: variable.key,\n accessors: serverVariablesAccessors,\n element: variable\n };\n });\n var identifier = bemClasses.identifier([{\n id: id,\n toKebabCase: false\n }, 'url-variables']);\n var dataIdentifier = bemClasses.identifier([{\n id: dataId,\n toKebabCase: false\n }, 'url-variables']);\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: identifier,\n \"data-asyncapi-id\": dataIdentifier\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-header\")\n }, React__default['default'].createElement(\"h4\", null, URL_VARIABLES_TEXT)), React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-table\")\n }, React__default['default'].createElement(Table, {\n header: {\n columns: SERVER_COLUMN_NAMES\n },\n rows: rows\n })));\n };\n\n var ServerSecurityFlowScopes = function (_a) {\n var scopes = _a.scopes;\n return React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(\"server-security-scopes-list\")\n }, Object.entries(scopes).map(function (_a) {\n var name = _a[0],\n description = _a[1];\n return React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"server-security-scopes-list-item\"),\n title: description,\n key: name\n }, React__default['default'].createElement(\"span\", {\n className: bemClasses.element(\"server-security-scope\")\n }, name));\n }));\n };\n\n var ServerSecurityFlow = function (_a) {\n var name = _a.name,\n flow = _a.flow;\n return React__default['default'].createElement(\"div\", {\n className: bemClasses.element(\"server-security-flow\")\n }, React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(\"server-security-flow-list\")\n }, React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"server-security-flow-list-item\")\n }, React__default['default'].createElement(\"strong\", null, FLOWS_TEXTS.FLOW), \":\", React__default['default'].createElement(\"span\", null, OAuthFlowsType[name])), flow.authorizationUrl && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"server-security-flow-list-item\")\n }, React__default['default'].createElement(\"strong\", null, FLOWS_TEXTS.AUTHORIZATION_URL, \":\"), React__default['default'].createElement(Href, {\n href: flow.authorizationUrl\n }, flow.authorizationUrl)), flow.tokenUrl && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"server-security-flow-list-item\")\n }, React__default['default'].createElement(\"strong\", null, FLOWS_TEXTS.TOKEN_URL), \":\", React__default['default'].createElement(Href, {\n href: flow.tokenUrl\n }, flow.tokenUrl)), flow.refreshUrl && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"server-security-flow-list-item\")\n }, React__default['default'].createElement(\"strong\", null, FLOWS_TEXTS.REFRESH_URL), \":\", React__default['default'].createElement(Href, {\n href: flow.refreshUrl\n }, flow.refreshUrl)), flow.scopes && React__default['default'].createElement(\"li\", {\n className: bemClasses.element(\"server-security-flow-list-item\")\n }, React__default['default'].createElement(\"strong\", null, FLOWS_TEXTS.SCOPES), \":\", React__default['default'].createElement(ServerSecurityFlowScopes, {\n scopes: flow.scopes\n }))));\n };\n\n var ServerSecurityFlows = function (_a) {\n var flows = _a.flows;\n\n if (!Object.keys(flows).length) {\n return null;\n }\n\n var sortedFlows = Object.keys(flows).sort().reduce(function (accumulator, currentValue) {\n accumulator[currentValue] = flows[currentValue];\n return accumulator;\n }, {});\n var nodes = Object.entries(sortedFlows).map(function (_a) {\n var flowName = _a[0],\n flow = _a[1];\n return React__default['default'].createElement(\"li\", {\n key: flowName,\n className: bemClasses.element(\"server-security-flows-list-item\")\n }, React__default['default'].createElement(ServerSecurityFlow, {\n name: flowName,\n flow: flow\n }));\n });\n var nestedTableCellClassName = bemClasses.modifier(\"nested\", \"table-cell\");\n var flowsTableCellClassName = bemClasses.element(\"server-security-flows-table-cell\");\n var className = bemClasses.concatenate([nestedTableCellClassName, flowsTableCellClassName]);\n var element = React__default['default'].createElement(\"td\", {\n className: className,\n colSpan: 6\n }, React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(\"server-security-flows-list\")\n }, nodes));\n return React__default['default'].createElement(TableRow, {\n element: element,\n nested: true\n });\n };\n\n var securitySchemeAccessors = [function (el) {\n return React__default['default'].createElement(\"span\", null, el.type);\n }, function (el) {\n return React__default['default'].createElement(\"span\", null, el.bearerFormat);\n }, function (el) {\n return React__default['default'].createElement(\"span\", null, el.in);\n }, function (el) {\n return React__default['default'].createElement(\"span\", null, el.scheme);\n }, function (el) {\n return React__default['default'].createElement(\"span\", null, el.name);\n }, function (el) {\n return el.description && React__default['default'].createElement(Markdown, null, el.description);\n }];\n var ServerSecurityItemComponent = function (_a) {\n var securityScheme = _a.securityScheme;\n return React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(TableRow, {\n element: securityScheme,\n accessors: securitySchemeAccessors,\n className: bemClasses.element(\"server-security-\" + securityScheme.type)\n }), securityScheme.flows && React__default['default'].createElement(ServerSecurityFlows, {\n flows: securityScheme.flows\n }));\n };\n\n var ServerSecurityComponent = function (_a) {\n var requirements = _a.requirements,\n schemes = _a.schemes,\n id = _a.identifier,\n dataId = _a.dataIdentifier;\n var identifier = bemClasses.identifier([{\n id: id,\n toKebabCase: false\n }, 'security']);\n var dataIdentifier = bemClasses.identifier([{\n id: dataId,\n toKebabCase: false\n }, 'security']);\n var className = \"server-security\";\n var rows = requirements.map(function (requirement) {\n var def = schemes[Object.keys(requirement)[0]];\n\n if (!def) {\n return null;\n }\n\n return React__default['default'].createElement(ServerSecurityItemComponent, {\n securityScheme: def,\n key: def.type\n });\n }).filter(Boolean);\n\n if (!rows || !rows.length) {\n return null;\n }\n\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n \"data-asyncapi-id\": dataIdentifier,\n id: identifier\n }, React__default['default'].createElement(\"header\", {\n className: bemClasses.element(className + \"-header\")\n }, React__default['default'].createElement(\"h4\", null, SECURITY_TEXT)), React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-table\")\n }, React__default['default'].createElement(Table, {\n header: {\n columns: SERVER_SECURITY_COLUMN_NAMES\n }\n }, rows)));\n };\n\n var ServerComponent = function (_a) {\n var server = _a.server,\n stage = _a.stage,\n securitySchemes = _a.securitySchemes,\n _b = _a.toggleExpand,\n toggleExpand = _b === void 0 ? false : _b;\n var className = ITEM_LABELS.SERVER;\n var variables = server.variables ? Object.entries(server.variables).map(function (_a) {\n var key = _a[0],\n variable = _a[1];\n return {\n key: key,\n content: variable\n };\n }) : [];\n var header = React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(\"h4\", null, React__default['default'].createElement(\"span\", {\n className: bemClasses.concatenate([bemClasses.element(className + \"-header-protocol\"), bemClasses.element(\"badge\")])\n }, \"\" + server.protocol + (server.protocolVersion ? \" \" + server.protocolVersion : \"\")), React__default['default'].createElement(\"span\", {\n className: bemClasses.concatenate([bemClasses.element(className + \"-header-stage\"), bemClasses.element(\"badge\")])\n }, stage), React__default['default'].createElement(\"span\", null, server.url)));\n var identifier = bemClasses.identifier([CONTAINER_LABELS.SERVERS, server.url]);\n var dataIdentifier = bemClasses.identifier([CONTAINER_LABELS.SERVERS, removeSpecialChars(server.url)]);\n var content = React__default['default'].createElement(React__default['default'].Fragment, null, server.description && React__default['default'].createElement(\"div\", {\n className: bemClasses.element(className + \"-description\")\n }, React__default['default'].createElement(Markdown, null, server.description)), React__default['default'].createElement(ServerVariablesComponent, {\n variables: variables,\n identifier: identifier,\n dataIdentifier: dataIdentifier\n }), server.security && securitySchemes && React__default['default'].createElement(ServerSecurityComponent, {\n requirements: server.security,\n schemes: securitySchemes,\n identifier: identifier,\n dataIdentifier: dataIdentifier\n }));\n var body = (server.description || server.security || server.variables) && content;\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: identifier,\n \"data-asyncapi-id\": dataIdentifier\n }, React__default['default'].createElement(Toggle, {\n header: header,\n className: className,\n expanded: toggleExpand,\n label: ITEM_LABELS.SERVER,\n itemName: server.url,\n toggleInState: !!body\n }, body));\n };\n\n var ServersComponent = function (_a) {\n var servers = _a.servers,\n securitySchemes = _a.securitySchemes,\n expand = _a.expand;\n\n if (!servers) {\n return null;\n }\n\n var className = CONTAINER_LABELS.SERVERS;\n var header = React__default['default'].createElement(\"h2\", null, SERVERS);\n var content = React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-list\")\n }, Object.entries(servers).map(function (_a) {\n var stage = _a[0],\n server = _a[1];\n return React__default['default'].createElement(\"li\", {\n key: stage,\n className: bemClasses.element(className + \"-list-item\")\n }, React__default['default'].createElement(ServerComponent, {\n key: \"\" + server.url + stage,\n server: server,\n stage: stage,\n securitySchemes: securitySchemes,\n toggleExpand: expand && expand.elements\n }));\n }));\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: bemClasses.identifier([className])\n }, React__default['default'].createElement(Toggle, {\n header: header,\n className: className,\n expanded: expand && expand.root,\n label: CONTAINER_LABELS.SERVERS,\n toggleInState: true\n }, content));\n };\n\n var SchemasComponent = function (_a) {\n var schemas = _a.schemas,\n expand = _a.expand;\n\n if (!schemas) {\n return null;\n }\n\n var className = CONTAINER_LABELS.SCHEMAS;\n var header = React__default['default'].createElement(\"h2\", null, SCHEMAS_TEXT);\n var content = React__default['default'].createElement(\"ul\", {\n className: bemClasses.element(className + \"-list\")\n }, Object.entries(schemas).map(function (_a) {\n var key = _a[0],\n schema = _a[1];\n return React__default['default'].createElement(\"li\", {\n key: key,\n className: bemClasses.element(className + \"-list-item\")\n }, React__default['default'].createElement(SchemaComponent, {\n name: key,\n schema: schema,\n toggle: true,\n toggleExpand: expand && expand.elements\n }));\n }));\n return React__default['default'].createElement(\"section\", {\n className: bemClasses.element(className),\n id: bemClasses.identifier([className])\n }, React__default['default'].createElement(Toggle, {\n header: header,\n className: className,\n expanded: expand && expand.root,\n label: CONTAINER_LABELS.SCHEMAS,\n toggleInState: true\n }, content));\n };\n\n var __extends = undefined && undefined.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n var __assign = undefined && undefined.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n };\n\n var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n\n var __generator = undefined && undefined.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n };\n var defaultAsyncApi = {\n asyncapi: '2.0.0-rc2',\n info: {\n title: 'AsyncApi example title',\n version: '1.0.0'\n },\n channels: {}\n };\n\n var AsyncApiComponent = function (_super) {\n __extends(AsyncApiComponent, _super);\n\n function AsyncApiComponent(props) {\n var _this = _super.call(this, props) || this;\n\n _this.state = {\n validatedSchema: defaultAsyncApi,\n error: undefined\n };\n _this.parser = new Parser();\n return _this;\n }\n\n AsyncApiComponent.prototype.componentDidMount = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.parseSchema(this.props.schema, this.props.config && this.props.config.parserOptions);\n return [2];\n });\n });\n };\n\n AsyncApiComponent.prototype.componentDidUpdate = function (prevProps) {\n return __awaiter(this, void 0, void 0, function () {\n var schema;\n return __generator(this, function (_a) {\n schema = prevProps.schema;\n\n if (schema !== this.props.schema) {\n this.parseSchema(this.props.schema, this.props.config && this.props.config.parserOptions);\n }\n\n return [2];\n });\n });\n };\n\n AsyncApiComponent.prototype.render = function () {\n var _a = this.props,\n schema = _a.schema,\n config = _a.config;\n var _b = this.state,\n validatedSchema = _b.validatedSchema,\n error = _b.error;\n\n var concatenatedConfig = __assign(__assign(__assign({}, defaultConfig), config), {\n show: __assign(__assign({}, defaultConfig.show), !!config && config.show),\n expand: __assign(__assign({}, defaultConfig.expand), !!config && config.expand)\n });\n\n if (typeof schema.json === \"function\") {\n validatedSchema = schema.json();\n }\n\n console.log(validatedSchema);\n\n if (!validatedSchema || !Object.keys(validatedSchema).length) {\n if (!error) {\n return null;\n }\n\n return concatenatedConfig.showErrors && React__default['default'].createElement(ErrorComponent, {\n error: error\n });\n }\n\n if (!concatenatedConfig.show) {\n return null;\n }\n\n bemClasses.setSchemaID(concatenatedConfig.schemaID);\n var numberOfElement = stateHelpers.calculateNumberOfElements({\n spec: validatedSchema,\n showConfig: concatenatedConfig.show\n });\n var initialExpandedElements = stateHelpers.calculateInitialExpandedElements({\n spec: validatedSchema,\n showConfig: concatenatedConfig.show,\n expandConfig: concatenatedConfig.expand || {}\n });\n return React__default['default'].createElement(useExpandedContext.Provider, {\n numberOfElements: numberOfElement,\n numberOfExpandedElement: initialExpandedElements\n }, React__default['default'].createElement(useChangeHashContext.Provider, {\n schemaName: bemClasses.getSchemaID()\n }, React__default['default'].createElement(\"main\", {\n className: CSS_PREFIX,\n id: bemClasses.getSchemaID()\n }, concatenatedConfig.showErrors && !!error && React__default['default'].createElement(ErrorComponent, {\n error: error\n }), concatenatedConfig.show.info && validatedSchema.info && React__default['default'].createElement(InfoComponent, {\n info: validatedSchema.info,\n defaultContentType: validatedSchema.defaultContentType\n }), concatenatedConfig.show.channels && validatedSchema.channels && React__default['default'].createElement(ChannelsComponent, {\n channels: validatedSchema.channels,\n expand: concatenatedConfig.expand && concatenatedConfig.expand.channels\n }), concatenatedConfig.show.servers && !!validatedSchema.servers && React__default['default'].createElement(ServersComponent, {\n servers: validatedSchema.servers,\n securitySchemes: validatedSchema.components && validatedSchema.components.securitySchemes,\n expand: concatenatedConfig.expand && concatenatedConfig.expand.servers\n }), validatedSchema.components && React__default['default'].createElement(\"section\", {\n className: bemClasses.element(\"components\")\n }, concatenatedConfig.show.messages && validatedSchema.components.messages && React__default['default'].createElement(MessagesComponent, {\n messages: validatedSchema.components.messages,\n expand: concatenatedConfig.expand && concatenatedConfig.expand.messages\n }), concatenatedConfig.show.schemas && validatedSchema.components.schemas && React__default['default'].createElement(SchemasComponent, {\n schemas: validatedSchema.components.schemas,\n expand: concatenatedConfig.expand && concatenatedConfig.expand.schemas\n })))));\n };\n\n AsyncApiComponent.prototype.parseSchema = function (schema, parserOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var parsedFromUrl, parsed;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!isFetchingSchemaInterface(schema)) return [3, 2];\n return [4, this.parser.parseFromUrl(schema, parserOptions)];\n\n case 1:\n parsedFromUrl = _a.sent();\n this.setState({\n validatedSchema: this.beautifySchema(parsedFromUrl.data),\n error: parsedFromUrl.error\n });\n return [2];\n\n case 2:\n return [4, this.parser.parse(schema, parserOptions)];\n\n case 3:\n parsed = _a.sent();\n this.setState({\n validatedSchema: this.beautifySchema(parsed.data),\n error: parsed.error\n });\n return [2];\n }\n });\n });\n };\n\n AsyncApiComponent.prototype.beautifySchema = function (schema) {\n if (!schema) {\n return null;\n }\n\n return beautifier.beautify(schema);\n };\n\n return AsyncApiComponent;\n }(React.Component);\n\n return AsyncApiComponent;\n\n})));\n"],"names":["global","factory","exports","module","require","define","amd","globalThis","self","AsyncApiComponent","React","this","_interopDefaultLegacy","e","React__default","BindingsType","isRawMessage","message","oneOf","PayloadType","isOneOfPayload","payload","undefined","isAnyOfPayload","anyOf","SecuritySchemeType","OAuthFlowsType","isFetchingSchemaInterface","schema","url","defaultConfig","schemaID","show","info","channels","servers","messages","schemas","expand","root","elements","showErrors","commonjsGlobal","window","getDefaultExportFromCjs","x","__esModule","Object","prototype","hasOwnProperty","call","getAugmentedNamespace","n","a","defineProperty","value","keys","forEach","k","d","getOwnPropertyDescriptor","get","enumerable","createCommonjsModule","fn","commonjsRequire","target","Error","src$2","isPlainObject","clone","recursive","merge","main","default","items","_i","arguments","length","apply","_merge","input","Array","isArray","output","index","push","_recursiveMerge","base","extend","key","isClone","isRecursive","result","shift","item","merge$3","_toConsumableArray","arr","i","arr2","from","hasOwnProperty$2","setPrototypeOf","isFrozen","freeze","seal","create","_ref","Reflect","apply$1","construct","fun","thisValue","args","Func","Function","bind","concat","arrayForEach","unapply","arrayPop","pop","arrayPush","stringToLowerCase","String","toLowerCase","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","regExpTest","RegExp","test","typeErrorCreate","unconstruct","TypeError","func","thisArg","_len","_key","_len2","_key2","addToSet","set","array","l","element","lcElement","clone$1","object","newObject","property","html","svg","svgFilters","mathMl","text$2","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","Symbol","iterator","obj","constructor","_toConsumableArray$1","getGlobal","_createTrustedTypesPolicy","trustedTypes","document","createPolicy","suffix","ATTR_NAME","currentScript","hasAttribute","getAttribute","policyName","createHTML","html$$1","_","console","warn","createDOMPurify","DOMPurify","version","removed","nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","RETURN_TRUSTED_TYPE","_document","implementation","createNodeIterator","getElementsByTagName","createDocumentFragment","importNode","documentMode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","_forceRemove","node","parentNode","removeChild","outerHTML","_removeAttribute","name","attribute","getAttributeNode","removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","_doc","body","firstElementChild","insertBefore","createTextNode","childNodes","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","textContent","attributes","setAttribute","namespaceURI","_isNode","_executeHook","entryPoint","currentNode","data","hook","_sanitizeElements","tagName","allowedTags","querySelectorAll","innerHTML","insertAdjacentHTML","htmlToInsert","cloneNode","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toString","toStaticHTML","appendChild","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","tag","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","purify","Aacute","aacute","Abreve","abreve","ac","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","amp","AMP","andand","And","and","andd","andslope","andv","ang","ange","angle","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angmsd","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","Aogon","aogon","Aopf","aopf","apacir","ap","apE","ape","apid","apos","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","barwed","Barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","because","Because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block$1","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxdl","boxdL","boxDl","boxDL","boxdr","boxdR","boxDr","boxDR","boxh","boxH","boxhd","boxHd","boxhD","boxHD","boxhu","boxHu","boxhU","boxHU","boxminus","boxplus","boxtimes","boxul","boxuL","boxUl","boxUL","boxur","boxuR","boxUr","boxUR","boxv","boxV","boxvh","boxvH","boxVh","boxVH","boxvl","boxvL","boxVl","boxVL","boxvr","boxvR","boxVr","boxVR","bprime","breve","Breve","brvbar","bscr","Bscr","bsemi","bsim","bsime","bsolb","bsol","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","capand","capbrcup","capcap","cap","Cap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","centerdot","CenterDot","cfr","Cfr","CHcy","chcy","check","checkmark","Chi","chi","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cir","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","colon","Colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","conint","Conint","ContourIntegral","copf","Copf","coprod","Coproduct","copy$1","COPY$1","copysr","CounterClockwiseContourIntegral","crarr","cross","Cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","cupbrcap","cupcap","CupCap","cup","Cup","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","dagger","Dagger","daleth","darr","Darr","dArr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","ddagger","ddarr","DD","dd","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","diamond","Diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrowBar","downarrow","DownArrow","Downarrow","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVectorBar","DownLeftVector","DownRightTeeVector","DownRightVectorBar","DownRightVector","DownTeeArrow","DownTee","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","Ecirc","ecirc","ecir","ecolon","Ecy","ecy","eDDot","Edot","edot","eDot","ee","efDot","Efr","efr","eg","Egrave","egrave","egs","egsdot","el","Element","elinters","ell","els","elsdot","Emacr","emacr","empty$2","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp13","emsp14","emsp","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","escr","Escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","exponentiale","ExponentialE","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","forall","ForAll","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","fscr","Fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","ge","gE","gEl","gel","geq","geqq","geqslant","gescc","ges","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","gg","Gg","ggg","gimel","GJcy","gjcy","gla","gl","glE","glj","gnap","gnapprox","gne","gnE","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","gtcc","gtcir","gt","GT","Gt","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","harrcir","harr","hArr","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","hfr","Hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","hopf","Hopf","horbar","HorizontalLine","hscr","Hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","ifr","Ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Imacr","imacr","image$1","ImaginaryI","imagline","imagpart","imath","Im","imof","imped","Implies","incare","infin","infintie","inodot","intcal","int$2","Int","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","iscr","Iscr","isin","isindot","isinE","isins","isinsv","isinv","it","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","lang","Lang","langd","langle","lap","Laplacetrf","laquo","larrb","larrbfs","larr","Larr","lArr","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","latail","lAtail","lat","late","lates","lbarr","lBarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","le","lE","LeftAngleBracket","LeftArrowBar","leftarrow","LeftArrow","Leftarrow","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVectorBar","LeftDownVector","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","leftrightarrow","LeftRightArrow","Leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTeeArrow","LeftTee","LeftTeeVector","leftthreetimes","LeftTriangleBar","LeftTriangle","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVectorBar","LeftUpVector","LeftVectorBar","LeftVector","lEg","leg","leq","leqq","leqslant","lescc","les","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","llarr","ll","Ll","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoustache","lmoust","lnap","lnapprox","lne","lnE","lneq","lneqq","lnsim","loang","loarr","lobrk","longleftarrow","LongLeftArrow","Longleftarrow","longleftrightarrow","LongLeftRightArrow","Longleftrightarrow","longmapsto","longrightarrow","LongRightArrow","Longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","lscr","Lscr","lsh","Lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","ltcc","ltcir","lt","LT","Lt","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","map$4","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","midast","midcir","mid","middot","minusb","minus","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","mscr","Mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natural","naturals","natur","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","nearhk","nearr","neArr","nearrow","ne","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nharr","nhArr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlarr","nlArr","nldr","nlE","nle","nleftarrow","nLeftarrow","nleftrightarrow","nLeftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","nopf","Nopf","Not","not$1","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangleBar","NotLeftTriangle","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangleBar","NotRightTriangle","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","nparallel","npar","nparsl","npart","npolint","npr","nprcue","nprec","npreceq","npre","nrarrc","nrarr","nrArr","nrarrw","nrightarrow","nRightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nvdash","nvDash","nVdash","nVDash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwarr","nwArr","nwarrow","nwnear","Oacute","oacute","oast","Ocirc","ocirc","ocir","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","orarr","Or","or","ord","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","otimesas","Otimes","otimes","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","para","parallel","par","parsim","parsl","part","PartialD","Pcy","pcy","percnt","period","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plusacir","plusb","pluscir","plus","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","popf","Popf","pound","prap","Pr","pr","prcue","precapprox","prec","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","pre","prE","precsim","prime","Prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","prop","Proportional","Proportion","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","qopf","Qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","quot","QUOT","rAarr","race","Racute","racute","radic","raemptyv","rang","Rang","rangd","range","rangle","raquo","rarrap","rarrb","rarrbfs","rarrc","rarr","Rarr","rArr","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","ratail","rAtail","ratio","rationals","rbarr","rBarr","RBarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","real","realine","realpart","reals","Re","rect","reg","REG","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","rfr","Rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrowBar","rightarrow","RightArrow","Rightarrow","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVectorBar","RightDownVector","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTeeArrow","RightTee","RightTeeVector","rightthreetimes","RightTriangleBar","RightTriangle","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVectorBar","RightUpVector","RightVectorBar","RightVector","ring","risingdotseq","rlarr","rlhar","rlm","rmoustache","rmoust","rnmid","roang","roarr","robrk","ropar","ropf","Ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","rscr","Rscr","rsh","Rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","scap","Scaron","scaron","Sc","sc","sccue","sce","scE","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdotb","sdot","sdote","searhk","searr","seArr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","solbar","solb","sol","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","square","Square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squ","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","sub","Sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","subset","Subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succapprox","succ","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","sum","Sum","sung","sup1","sup2","sup3","sup","Sup","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","supset","Supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swarr","swArr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","therefore","Therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","ThinSpace","thinsp","thkap","thksim","THORN","thorn","tilde$1","Tilde","TildeEqual","TildeFullEqual","TildeTilde","timesbar","timesb","times","timesd","tint","toea","topbot","topcir","top","Topf","topf","topfork","tosa","tprime","trade","TRADE","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","uarr","Uarr","uArr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrowBar","uparrow","UpArrow","Uparrow","UpArrowDownArrow","updownarrow","UpDownArrow","Updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","upsi","Upsi","upsih","Upsilon","upsilon","UpTeeArrow","UpTee","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","varr","vArr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","vBar","Vbar","vBarv","Vcy","vcy","vdash","vDash","Vdash","VDash","Vdashl","veebar","vee","Vee","veeeq","vellip","verbar","Verbar","vert","Vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","wedge","Wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xharr","xhArr","Xi","xi","xlarr","xlArr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrarr","xrArr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","yuml","Yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","zfr","Zfr","ZHcy","zhcy","zigrarr","zopf","Zopf","Zscr","zscr","zwj","zwnj","require$$0$4","block","copy","COPY","empty","image","int","map","not","tilde","entities","regex$5","encodeCache","getEncodeCache","exclude","ch","cache","fromCharCode","toUpperCase","slice","charCodeAt","encode$2","string","keepEscaped","code","nextCode","defaultChars","encodeURIComponent","componentChars","encode_1","decodeCache","getDecodeCache","decode$2","seq","b1","b2","b3","b4","chr","parseInt","decode_1","format$5","format","protocol","slashes","auth","hostname","port","pathname","search","hash","Url$2","protocolPattern$1","portPattern$1","simplePathPattern$1","delims$1","unwise$1","autoEscape$1","nonHostChars$1","hostEndingChars$1","hostnameMaxLen$1","hostnamePartPattern$1","hostnamePartStart$1","hostlessProtocol$1","slashedProtocol$1","urlParse$1","slashesDenoteHost","u","parse","lowerProto","hec","rest","split","simplePath","exec","proto","substr","hostEnd","atSign","lastIndexOf","host","parseHost","ipv6Hostname","hostparts","newpart","j","validParts","notHost","bit","unshift","join","qm","parse$9","encode$1","decode$1","format$4","parse$8","mdurl","encode","decode","regex$4","regex$3","regex$2","regex$1","Any","Cc","Cf","P","Z","uc_micro","utils","_class","isString","_hasOwnProperty","has","assign","sources","source","arrayReplaceAt","src","pos","newElements","isValidEntityCode","c","fromCodePoint","surrogate1","surrogate2","UNESCAPE_MD_RE","ENTITY_RE","UNESCAPE_ALL_RE","DIGITAL_ENTITY_TEST_RE","replaceEntityPattern","unescapeMd","str","unescapeAll","escaped","entity","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","escapeHtml","REGEXP_ESCAPE_RE","escapeRE","isSpace","isWhiteSpace","isPunctChar","isMdAsciiPunct","normalizeReference","lib","ucmicro","parse_link_label","parseLinkLabel","state","start","disableNested","level","found","prevPos","labelEnd","max","posMax","oldPos","md","inline","skipToken","unescapeAll$2","parse_link_destination","parseLinkDestination","lines","ok","unescapeAll$1","parse_link_title","parseLinkTitle","helpers","assign$1","default_rules","code_inline","tokens","idx","options","env","slf","token","renderAttrs","code_block","fence","langName","highlighted","tmpAttrs","tmpToken","highlight","attrIndex","attrs","langPrefix","renderInlineAsText","children","renderToken","hardbreak","xhtmlOut","softbreak","breaks","text","html_block","html_inline","Renderer","rules","nextToken","needLf","hidden","nesting","type","renderInline","len","render","renderer","Ruler","__rules__","__cache__","__find__","__compile__","chains","rule","enabled","alt","altName","chain","at","opt","before","beforeName","ruleName","splice","after","afterName","enable","list","ignoreInvalid","enableOnly","disable","getRules","chainName","ruler","NEWLINES_RE","NULL_RE","normalize$1","normalize","inlineMode","Token","tok","isLinkOpen","isLinkClose","linkify","currentToken","nodes","ln","lastPos","htmlLinkLevel","fullUrl","urlText","blockTokens","links","pretest","normalizeLink","validateLink","normalizeLinkText","markup","lastIndex","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","r","p","tm","replaceFn","replace_scoped","inlineTokens","inside_autolink","replace_rare","replacements","blkIdx","typographer","isWhiteSpace$1","isPunctChar$1","isMdAsciiPunct$1","QUOTE_TEST_RE","QUOTE_RE","APOSTROPHE","replaceAt","process_inlines","t","thisLevel","lastChar","nextChar","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","canOpen","canClose","isSingle","stack","openQuote","closeQuote","OUTER","single","quotes","smartquotes","meta","attrPush","attrData","attrSet","attrGet","attrJoin","StateCore","state_core","_rules$2","Core","process","State","parser_core","isSpace$a","getLine","line","bMarks","blkIndent","eMarks","escapedSplit","escapes","backTicked","lastBackTick","substring","startLine","endLine","silent","lineText","nextLine","columns","columnCount","aligns","tableLines","tbodyLines","sCount","tShift","last","isEmpty","getLines","params","mem","haveEndMarker","skipChars","skipSpaces","isSpace$9","blockquote","adjustTab","initial","lastLineEmpty","offset","oldBMarks","oldBSCount","oldIndent","oldParentType","oldSCount","oldTShift","spaceAfterMarker","terminate","terminatorRules","isOutdented","oldLineMax","lineMax","bsCount","parentType","tokenize","isSpace$8","hr","cnt","isSpace$7","skipBulletListMarker","skipOrderedListMarker","markTightParagraphs","contentStart","indent","indentAfterMarker","isOrdered","itemLines","listLines","listTokIdx","markerCharCode","markerValue","oldListIndent","oldTight","posAfterMarker","prevEmptyEnd","isTerminatingParagraph","tight","listIndent","Number","Math","min","normalizeReference$2","isSpace$6","reference","_endLine","destEndPos","destEndLineNo","href","label","res","title","references","isSpace$5","heading","tmp","skipSpacesBack","skipCharsBack","lheading","html_blocks","attr_name","unquoted","single_quoted","double_quoted","attr_value","open_tag","close_tag","comment$1","processing","declaration","cdata","HTML_TAG_RE$1","HTML_OPEN_CLOSE_TAG_RE$1","HTML_TAG_RE_1","HTML_OPEN_CLOSE_TAG_RE_1","html_re","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","HTML_SEQUENCES","paragraph","isSpace$4","StateBlock","s","indent_found","ddIndent","token$1","skipEmptyLines","begin","end","keepLastLF","lineIndent","first","queue","lineStart","state_block","_rules$1","ParserBlock","hasEmptyLines","maxNesting","outTokens","parser_block","isTerminatorChar","text$1","pending","isSpace$3","newline$1","newline","pmax","isSpace$2","ESCAPED","i$1","_escape","escape","backticks","backtick","matchStart","matchEnd","tokenize$1","strikethrough","scanned","scanDelims","delimiters","jump","open","can_open","close","can_close","postProcess$1","startDelim","endDelim","loneMarkers","postProcess_1$1","curr","tokens_meta","postProcess","emphasis","isStrong","postProcess_1","normalizeReference$1","isSpace$1","link","labelStart","ref","parseReference","EMAIL_RE","AUTOLINK_RE","autolink","tail","linkMatch","emailMatch","isLetter","lc","DIGITAL_RE","NAMED_RE","processDelimiters","closerIdx","openerIdx","closer","opener","minOpenerIdx","newMinOpenerIdx","isOddMatch","lastJump","openersBottom","balance_pairs","link_pairs","text_collapse","StateInline","pendingLevel","_prev_delimiters","pushPending","token_meta","canSplitWord","count","left_flanking","right_flanking","state_inline","_rules","_rules2","ParserInline","ruler2","parser_inline","re","opts","src_Any","src_Cc","src_Z","src_P","src_ZPCc","src_ZCc","text_separators","src_pseudo_letter","src_ip4","src_auth","src_port","src_host_terminator","src_path","src_email_name","src_xn","src_domain_root","src_domain","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","src_host_strict","tpl_host_fuzzy_strict","src_host_port_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","tpl_host_fuzzy_test","tpl_email_fuzzy","tpl_link_fuzzy","tpl_link_no_ip_fuzzy","_class$1","isString$1","isObject$6","isRegExp$3","isFunction$3","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","isOptionsObj","reduce","acc","defaultSchemas","validate","http","no_http","mailto","tlds_2ch_src_re","tlds_default","resetScanCache","__index__","__text_cache__","createValidator","createNormalizer","compile$2","re$1","__opts__","tlds","__tlds__","onCompile","__tlds_replaced__","src_tlds","untpl","tpl","email_fuzzy","link_fuzzy","link_no_ip_fuzzy","host_fuzzy_test","aliases","__compiled__","schemaError","val","__schemas__","compiled","alias","slist","filter","schema_test","schema_search","Match","__last_index__","__schema__","raw","createMatch","LinkifyIt","add","definition","m","ml","me","next","tld_pos","at_pos","testSchemaAt","keepOld","sort","reverse","linkifyIt","maxInt","base$1","tMin","tMax","skew","damp","initialBias","initialN","delimiter$1","regexPunycode","regexNonASCII","regexSeparators","errors$1","baseMinusTMin","floor","stringFromCharCode","error","RangeError","map$3","mapDomain","parts","labels","encoded","ucs2decode","counter","extra","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","numPoints","firstTime","inputLength","out","bias","basic","oldi","w","baseMinusT","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","toASCII","version$1","ucs2","punycode$1","punycode$2","__proto__","_default$1","components","core","zero$2","rules2","commonmark","punycode","config$1","zero","BAD_PROTO_RE","GOOD_DATA_RE","RECODE_HOSTNAME_FOR","parsed","er","MarkdownIt","presetName","configure","presets","missed","use","plugin","parseInline","lib$3","markdownIt$1","markdownIt","renderMd","dangerouslySetInnerHTML","__html","__assign$4","Beautifier","beautify","asyncApi","description","beautifyServers","beautifyChannels","beautifyMessages","beautifySchemas","resolveAllOf","_this","allOf","schemas_1","Boolean","properties","transformed","_a","entries","_b","beautifySchema","newProperties","propProperties","newPropProperties","_c","_d","_e","propKey","propValue","additionalProperties","newAdditionalProperties","_f","_g","_h","propAdditionalProperties","newPropAdditionalProperties","_j","_k","_l","newSchemas","beautifyMessage","beautified","headers","summary","newMessages","copiedServers","JSON","stringify","server","variables","newVariables","variable","beautifyOperation","operation","newChannels","channel","publish","subscribe","parameters","beautifyParameters","newParams","beautifier","CSS_PREFIX","CONTENT_TYPES_SITE","COLLAPSE_ALL_TEXT","EXPAND_ALL_TEXT","VALIDATION_ERRORS_TYPE","SERVERS","ONE_OF_PAYLOADS_TEXT","ANY_OF_PAYLOADS_TEXT","ONE_OF_FOLLOWING_MESSAGES_PUBLISH_TEXT","ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_TEXT","TERMS_OF_SERVICE_TEXT","URL_SUPPORT_TEXT","EMAIL_SUPPORT_TEXT","LOCATION_TEXT","DEPRECATED_TEXT","PUBLISH_TEXT","SUBSCRIBE_TEXT","REQUIRED_TEXT","GENERATED_TEXT","MESSAGES_TEXT","SCHEMAS_TEXT","MESSAGE_TEXT","CHANNELS_TEXT","PARAMETERS_TEXT","HEADERS_TEXT","MESSAGE_HEADERS_TEXT","HEADERS_EXAMPLE_TEXT","PAYLOAD_TEXT","MESSAGE_PAYLOAD_TEXT","PAYLOAD_EXAMPLE_TEXT","SCHEMA_EXAMPLE_TEXT","NONE_TEXT","ANY_TEXT","ERROR_TEXT","SECURITY_TEXT","URL_VARIABLES_TEXT","FLOWS_TEXTS","FLOW","AUTHORIZATION_URL","TOKEN_URL","REFRESH_URL","SCOPES","SERVER_COLUMN_NAMES","SERVER_SECURITY_COLUMN_NAMES","CONTAINER_LABELS","CONTAINER_LABELS_VALUES","values","ITEM_LABELS","ITEM_LABELS_VALUES","toKebabCase","matched","BEMCLasses","getSchemaID","setSchemaID","id","modifier","concatenate","classes","identifier","identifiers","isIdentifier","startsWith","v","bemClasses","createNestedClassName","className","nested","CONTAINERS_REGEX","ITEMS_REGEX","PROPERTIES_REGEX","removeHash","extractHashData","hashData","container","itemProperties","removeSpecialChars","parseHashForDataId","scroll","scrollIntoView","offsetTop","offsetParent","scrollTo","scrollIntoViewOfAnchor","querySelector","setTimeout","searchForNestedObject","nextInputObject","o","openapiSampler","f","hasOwn","ctx","each","api","pointer","wrapped","refTokens","nextTok","remove","finalToken","parent","isNaN","dict","descend","results","walk","cur","compile","unescape","charAt","allOfSample","_traverse2","_utils","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","into","spec","traverse","subSamples","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","done","subSchema","_traverse","readOnly","writeOnly","err","return","mergeDeep","sample","quiet","lastSample","inferType","schemaKeywordTypes","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","additionalItems","maxProperties","minProperties","required","patternProperties","dependencies","keywords","keyword","_registerSampler","_infer","_samplers","_index","defaults","skipReadOnly","clearCache","sampler","sampleArray","sampleBoolean","sampleNumber","sampleObject","sampleString","arrayLength","itemSchemaGetter","itemNumber","itemSchema","_array","_boolean","_number","_object","_string","requiredKeys","requiredKeyDict","propertyName","skipNonRequired","skipWriteOnly","property1","property2","passwordSymbols","emailSample","passwordSample","ensureMinLength","commonDateTimeSample","omitTime","toRFCDateTime","Date","dateTimeSample","dateSample","defaultSample","ipv4Sample","ipv6Sample","hostnameSample","uriSample","uuidSample","_min","_max","uuid","stringFormats","context","_openapiSampler","_allOf","_jsonPointer","_interopRequireDefault","$refCache","$ref","decodeURIComponent","referenced","referencedType","example","const","enum","examples","pad","number","date","milliseconds","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","repeat","trunc","isObject","objects","prev","pVal","oVal","hashCode","random","jsf32","char","b","generateExampleSchema","inContainer","CHANNEL","CHANNELS","SERVER","MESSAGE","MESSAGES","SCHEMA","SCHEMAS","StateHelpers","calculateNumberOfElements","showConfig","showConfigKeys","numberOfElements","condition","includes","isServers","calculateServers","calculateInitialExpandedElements","expandConfig","collapseConfigKeys","field","security","stateHelpers","global$1","defaultSetTimout","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","clearTimeout","runTimeout","runClearTimeout","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","run","nextTick","Item","title$7","platform","browser","argv","versions","release","config","noop$1","on$1","addListener","once","off$1","removeListener","removeAllListeners","emit","binding$1","cwd","chdir","dir","umask","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","getTime","hrtime","previousTimestamp","clocktime","seconds","nanoseconds","startTime","uptime","currentTime","dif","browser$1","on","off","binding","normalizeArray","allowAboveRoot","up","splitPathRe","splitPath","filename","resolve$1","resolvedPath","resolvedAbsolute","path","filter$1","isPathAbsolute","isAbsolute","trailingSlash","paths","relative","to","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","basename","ext","extname","path$1","resolve","xs","path$2","uri_all","sets","xl","subexp","typeOf","toArray","setInterval","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","GEN_DELIMS$$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","IPRIVATE$$","UNRESERVED$$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","PCHAR$","NOT_SCHEME","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","sliceIterator","_arr","_n","_s","toConsumableArray","errors","error$1","_currentValue2","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","_currentValue","SCHEMES","pctEncChar","pctDecChars","newStr","il","c2","c3","_normalizeComponentEncoding","decodeUnreserved","decStr","scheme","userinfo","query","_stripLeadingZeros","_normalizeIPv4","_matches","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","_address$toLowerCase$2","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","lastLongest","longestZeroFields","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","iri","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","serialize","authority","absolutePath","resolveComponents","skipNormalization","tolerant","baseURI","relativeURI","schemelessOptions","uri","equal","uriA","uriB","escapeComponent","unescapeComponent","handler","handler$1","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$2","parse$$1","mailtoComponents","unknownHeaders","hfields","hfield","toAddrs","_x","_xl","subject","_x2","_xl2","addr","serialize$$1","toAddr","atIdx","localPart","domain","URN_PARSE","handler$3","urnComponents","nid","nss","urnScheme","uriComponents","UUID","handler$4","uuidComponents","fastDeepEqual","flags","valueOf","ucs2length$1","ucs2length","util","checkDataType","checkDataTypes","coerceToTypes","toHash","toHash$1","getProperty","escapeQuotes","varOccurences","varReplace","schemaHasRules","schemaHasRulesExcept","schemaUnknownRules","toQuotedString","getPathExpr","getPath","getData","unescapeFragment","unescapeJsonPointer","escapeFragment","escapeJsonPointer","dataType","strictNumbers","negate","EQUAL","AND","OK","NOT","dataTypes","types","null","integer","COERCE_TO_TYPES","optionCoerceTypes","IDENTIFIER$1","SINGLE_QUOTE","dataVar","expr","exceptKeyword","currentPath","jsonPointers","isNumber","joinPaths","JSON_POINTER$1","RELATIVE_JSON_POINTER$1","$data","lvl","jsonPointer","segments","segment","schema_obj","SchemaObject","jsonSchemaTraverse","cb","post","contains","propertyNames","arrayKeywords","propsKeywords","definitions","skipKeywords","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","sch","escapeJsonPtr","allKeys","resolve_1","normalizeId","fullPath","getFullPath","resolveUrl","ids","resolveIds","inlineRef","resolveSchema","refVal","_refs","_schemas","_opts","inlineRefs","_compile","baseId","refPath","_getFullPath","_getId","resolveRecursive","getJsonPointer","parsedRef","PREVENT_SCOPE_CHANGE","SIMPLE_INLINED","limit","checkNoRef","countKeys","Infinity","TRAILING_SLASH_HASH","schemaId","baseIds","fullPaths","localRefs","error_classes","Validation","errorSubclass","ValidationError$1","MissingRef","MissingRefError$1","ajv","validation","missingRef","missingSchema","Subclass","fastJsonStableStringify","cmp","cycles","aobj","bobj","seen","toJSON","isFinite","seenIndex","validate$1","generate_validate","$keyword","$ruleType","$async","$refKeywords","RULES","all","$id","strictKeywords","$unknownKwd","$keywordsMsg","logger","isTop","async","sourceCode","processCode","$lvl","$dataLvl","dataLevel","$schema","$schemaPath","schemaPath","$errSchemaPath","errSchemaPath","$breakOnError","allErrors","$errorKeyword","$valid","$$outStack","createErrors","errorPath","verbose","__err","compositeRule","$top","rootId","dataPathArr","useDefaults","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","nullable","extendRefs","$comment","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$method","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","$parentDataProperty","i2","l2","$schemaKeys","arr3","$propertyKey","i3","l3","$sch","$passData","useDefault","arr4","l4","arr5","$rule","i5","l5","$shouldUseRule","$code","implements","$ruleImplementsSomeKeyword","impl","ValidationError","compile_1","compile$1","refs","patterns","patternsHash","defaultsHash","customRules","checkCompiling","compilation","_compilations","compiling","callValidate","formats","_formats","localCompile","cv","endCompiling","_schema","_root","isRoot","MissingRefError","resolveRef","usePattern","useCustomRule","vars","refValCode","patternCode","defaultCode","customRuleCode","makeValidate","refIndex","_refVal","refCode","resolvedRef","rootRefId","addLocalRef","localSchema","removeLocalRef","replaceLocalRef","refId","regexStr","valueStr","validateSchema","deps","every","valid","errorsText","macro","compIndex","statement","Cache","_cache","put","Cache_put","Cache_get","del","Cache_del","clear","Cache_clear","DATE","DAYS","TIME$1","HOSTNAME","URI","URIREF","URITEMPLATE","URL","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","formats_1","mode","fast","time","email","ipv4","ipv6","regex","full","date_time","isLeapYear","year","month","day","hour","minute","second","timeZone","DATE_TIME_SEPARATOR","dateTime","NOT_URI_FRAGMENT","Z_ANCHOR","ref$1","generate_ref","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","generate_allOf","$closingBraces","$currentBaseId","$allSchemasEmpty","generate_anyOf","$errs","$noEmptySchema","$wasComposite","comment","generate_comment","_const","generate_const","$isData","generate_contains","$idx","$dataNxt","$nextData","$nonEmptySchema","dependencies$1","generate_dependencies","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$prop","$useData","$propertyPath","$missingProperty","_errorDataPathProperty","_enum","generate_enum","$vSchema","format$3","generate_format","$schemaValue","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","_if","generate_if","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","generate_items","$additionalItems","$currErrSchemaPath","_limit","generate__limit","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","_limitItems","generate__limitItems","_limitLength","generate__limitLength","unicode","_limitProperties","generate__limitProperties","generate_multipleOf","multipleOfPrecision","generate_not","$allErrorsOption","oneOf$1","generate_oneOf","$prevValid","$passingSchemas","generate_pattern","$regexp","properties$9","generate_properties","$key","$dataProperties","notProto","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","$hasDefault","i4","generate_propertyNames","$invalidName","required$7","generate_required","$propertySch","$loopRequired","generate_uniqueItems","$itemType","dotjs","ALL","KEYWORDS","TYPES","group","implKeywords","custom","metaSchema","keywordsJsonPointers","compileAsync","callback","loadSchema","loadMetaSchemaOf","then","schemaObj","_addSchema","_compileAsync","getSchema","Promise","loadMissingSchema","added","schemaPromise","_loadingSchemas","removePromise","addSchema","generate_custom","$definition","$rDef","$compile","$inline","$macro","$ruleValidate","$validateCode","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","modifying","def_customError","$schema$8","$id$1","title$6","definitions$7","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","type$a","properties$8","contentMediaType","contentEncoding","require$$2$1","definition_schema","IDENTIFIER","addKeyword","getKeyword","removeKeyword","validateKeyword","_addRule","ruleGroup","rg","throwError","_validateKeyword","$schema$7","description$2","type$9","required$6","properties$7","additionalProperties$6","require$$1$2","Ajv","addMetaSchema","removeSchema","addFormat","$dataMetaSchema","META_SCHEMA_ID","META_IGNORE_OPTIONS","META_SUPPORT_DATA","setLogger","_fragments","chooseGetId","errorDataPath","_metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addDefaultMetaSchema","addInitialSchemas","schemaKeyRef","_meta","_skipValidation","checkUnique","skipValidation","throwOrLogError","defaultMeta","keyRef","_getSchemaObj","_getSchemaFragment","_removeAllSchemas","cacheKey","shouldAddSchema","cached","addUsedSchema","willValidate","recursiveMeta","currentOpts","_validate","_get$IdOrId","_get$Id","separator","dataPath","$dataSchema","optsSchemas","metaOpts","log","noop","EventHandlers","EventEmitter","init","usingDomains","_events","_maxListeners","defaultMaxListeners","active","getPrototypeOf","_eventsCount","setMaxListeners","$getMaxListeners","that","getMaxListeners","emitNone","isFn","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","events","doError","domainEmitter","domainThrown","_addListener","listener","prepend","existing","newListener","warned","emitter","emitWarning","prependListener","_onceWrap","fired","g","prependOnceListener","position","originalListener","spliceOne","evlistener","ret","unwrapListeners","listenerCount","listenerCount$1","eventNames","lookup","revLookup","Arr","Uint8Array","inited","toByteArray","b64","placeHolders","L","tripletToBase64","encodeChunk","uint8","fromByteArray","extraBytes","maxChunkLength","len2","read","buffer","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","pow","write","rt","abs","LN2","isArray$2","INSPECT_MAX_BYTES","Buffer$1","TYPED_ARRAY_SUPPORT","_kMaxLength","kMaxLength","createBuffer","arg","encodingOrOffset","allocUnsafe","poolSize","_augment","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","fill","encoding","checked","allocUnsafeSlow","isEncoding","byteLength","actual","fromArrayLike","byteOffset","internalIsBuffer","isnan","SlowBuffer","isBuffer","_isBuffer","compare","y","buf","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","toHex","bytes","newBuf","subarray","sliceLen","checkOffset","readUIntLE","noAssert","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","checkInt","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","objectWriteUInt16","littleEndian","writeUInt16LE","writeUInt16BE","objectWriteUInt32","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","checkIEEE754","writeFloat","writeFloatLE","writeFloatBE","writeDouble","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","isFastBuffer","isSlowBuffer","bufferEs6","Buffer","inherits","ctor","superCtor","super_","TempCtor","inherits$1","formatRegExp","format$2","inspect$1","isNull$3","isObject$5","deprecate","msg","isUndefined$3","noDeprecation","deprecated","throwDeprecation","traceDeprecation","trace","debugs","debugEnviron","debuglog","NODE_DEBUG","pid","stylize","stylizeNoColor","depth","colors","isBoolean$2","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","recurseTimes","isFunction$2","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError$1","isRegExp$2","isDate","braces","isArray$1","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","hasOwnProperty$1","desc","ar","isNullOrUndefined","objectToString","origin","BufferList","head","entry","isBufferEncoding","assertEncoding","StringDecoder","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","cr","enc","Readable$1","ReadableState","debug","event","stream","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","readable","_read","chunk","readableAddChunk","isPaused","addToFront","chunkInvalid","onEofChunk","skipAdd","emitReadable","maybeReadMore","needMoreData","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","nOrig","endReadable","doRead","fromList","emitReadable_","flow","maybeReadMore_","pipe","dest","pipeOpts","doEnd","endFn","onend","cleanup","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","_writableState","needDrain","increasedAwaitDrain","pause","unpipe","resume","dests","ev","nReadingNextTick","resume_","wrap","paused","method","_fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","endReadableNT","Writable","WritableState","nop","WriteReq","getBuffer","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writecb","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","CorkedRequest","writableStateGetBuffer","current","_write","writev","_writev","writeAfterEnd","validChunk","writeOrBuffer","cork","uncork","clearBuffer","setDefaultEncoding","decodeChunk","doWrite","onwriteError","onwriteStateUpdate","needFinish","afterWrite","onwriteDrain","finishMaybe","holder","finish","endWritable","prefinish","need","allowHalfOpen","onEndNT","Transform","TransformState","afterTransform","needTransform","transforming","writechunk","writeencoding","ts","_transformState","rs","transform","_transform","flush","_flush","ws","PassThrough$2","Stream","Readable","PassThrough","_isStdio","didOnEnd","destroy","hasFetch","isFunction$1","fetch","ReadableStream","_blobConstructor","blobConstructor","Blob","xhr","checkTypeSupport","XMLHttpRequest","location","responseType","haveArrayBuffer","haveSlice","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","vbArray","VBArray","rStates","UNSENT","OPENED","HEADERS_RECEIVED","LOADING","DONE","IncomingMessage","response","_mode","rawHeaders","trailers","rawTrailers","_fetchResponse","statusCode","status","statusMessage","statusText","header","_it","reader","getReader","_destroyed","_xhr","_pos","responseURL","getAllResponseHeaders","_charset","mimeType","charsetMatch","_onXHRProgress","readyState","responseBody","responseText","newData","MSStreamReader","onprogress","onload","readAsArrayBuffer","toArrayBuffer","arrayCopy","decideMode","preferBinary","useFetch","ClientRequest","_body","_headers","setHeader","_onFinish","unsafeHeaders","lowerName","getHeader","removeHeader","headersObj","credentials","withCredentials","_connect","reason","setRequestHeader","_response","onreadystatechange","send","statusValid","abort","flushHeaders","setNoDelay","setSocketKeepAlive","stringifyPrimitive","eq","map$2","objectKeys","ks","parse$7","qs","regexp","maxKeys","kstr","vstr","Url","urlParse","urlResolve","resolveObject","urlResolveObject","urlFormat","Url$1","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","parseQueryString","parse$6","queryIndex","splitter","uSplit","slashRegex","h","ae","esc","format$1","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","request","defaultProtocol","req","get$1","Agent","defaultMaxSockets","METHODS","STATUS_CODES$1","http$1","STATUS_CODES","http$2","ZStream","next_in","avail_in","total_in","next_out","avail_out","total_out","data_type","adler","arraySet","src_offs","dest_offs","Buf8","Buf16","Uint16Array","Buf32","Int32Array","Z_FIXED$2","Z_BINARY$1","Z_TEXT$1","Z_UNKNOWN$2","zero$1","STORED_BLOCK","STATIC_TREES","DYN_TREES","MIN_MATCH$1","MAX_MATCH$1","LENGTH_CODES$1","LITERALS$1","L_CODES$1","D_CODES$1","BL_CODES$1","HEAP_SIZE$1","MAX_BITS$1","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","bi_flush","gen_bitlen","stree","bits","xbits","overflow","bl_count","heap","heap_max","opt_len","static_len","gen_codes","next_code","tr_static_init","init_block","dyn_ltree","dyn_dtree","bl_tree","last_lit","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","heap_len","compress_block","ltree","dtree","lx","d_buf","l_buf","build_tree","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","l_desc","d_desc","bl_desc","send_all_trees","lcodes","dcodes","blcodes","rank","detect_data_type","black_mask","static_init_done","_tr_init","_tr_stored_block","stored_len","_tr_align","_tr_flush_block","opt_lenb","static_lenb","strm","strategy","_tr_tally","lit_bufsize","adler32","s1","s2","makeTable","crcTable","crc32","crc","Z_NO_FLUSH$1","Z_PARTIAL_FLUSH$1","Z_FULL_FLUSH$1","Z_FINISH$2","Z_BLOCK$2","Z_OK$2","Z_STREAM_END$2","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$2","Z_DEFAULT_COMPRESSION$1","Z_FILTERED$1","Z_HUFFMAN_ONLY$1","Z_RLE$1","Z_FIXED$1","Z_UNKNOWN$1","Z_DEFLATED$2","MAX_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","flush_pending","pending_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","insert","ins_h","hash_shift","hash_mask","deflate_stored","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","max_lazy_match","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","deflate$1","old_flush","beg","hcrc","os","level_flags","bstate","deflateEnd","BAD$1","TYPE$2","inflate_fast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","MAXBITS","ENOUGH_LENS$1","ENOUGH_DISTS$1","CODES$1","LENS$1","DISTS$1","lbase","lext","dbase","dext","inflate_table","lens","lens_index","codes","table_index","work","drop","left","used","huff","incr","low","mask","base_index","offs","extra_index","here_bits","here_op","here_val","CODES","LENS","DISTS","Z_FINISH$1","Z_BLOCK$1","Z_TREES$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR","Z_BUF_ERROR$1","Z_DEFLATED$1","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPE$1","TYPEDO","STORED","COPY_","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","BAD","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","zswap32","InflateState","havedict","total","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit2","virgin","lenfix","distfix","fixedtables","updatewindow","inflate$1","last_bits","last_op","last_val","hbuf","inf_leave","xflags","extra_len","inflateEnd","NONE","DEFLATE","INFLATE","GZIP","GUNZIP","DEFLATERAW","INFLATERAW","UNZIP","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Zlib$1","init_done","write_in_progress","pending_close","dictionary","_error","_writeCheck","in_off","in_len","out_off","out_len","bufferSet","writeSync","_set","reset","_binding","Zlib","assert","Z_MIN_WINDOWBITS","Z_MAX_WINDOWBITS","Z_DEFAULT_WINDOWBITS","Z_MIN_CHUNK","Z_MAX_CHUNK","Z_DEFAULT_CHUNK","Z_MIN_MEMLEVEL","Z_MAX_MEMLEVEL","Z_DEFAULT_MEMLEVEL","Z_MIN_LEVEL","Z_MAX_LEVEL","Z_DEFAULT_LEVEL","Z_VERSION_ERROR","createDeflate","Deflate","createInflate","Inflate","createDeflateRaw","DeflateRaw","createInflateRaw","InflateRaw","createGzip","Gzip","createGunzip","Gunzip","createUnzip","Unzip","deflate","zlibBuffer","deflateSync","zlibBufferSync","gzip","gzipSync","deflateRaw","deflateRawSync","unzip","unzipSync","inflate","inflateSync","gunzip","gunzipSync","inflateRaw","inflateRawSync","engine","buffers","nread","onError","onEnd","flushFlag","_processChunk","_chunkSize","chunkSize","_flushFlag","_hadError","errno","_buffer","_offset","_closed","_level","_strategy","kind","availInBefore","availOutBefore","inOff","availInAfter","availOutAfter","newReq","zlib","BUFFER","TYPE","blobParts","arrayBuffer","ab","relativeStart","relativeEnd","span","slicedBuffer","blob","toStringTag","FetchError","systemError","captureStackTrace","convert$1","convert","INTERNALS","Body","_ref$size","_ref$timeout","isURLSearchParams","isBlob","disturbed","bodyUsed","consumeBody","ct","json","_this2","reject","textConverted","_this3","convertBody","mixIn","_this4","accum","accumBytes","resTimeout","charset","append","delete","getAll","instance","p1","p2","getBoundary","extractContentType","getTotalBytes","getLengthSync","_lengthRetrievers","hasKnownLength","writeToStream","invalidTokenRegex","invalidHeaderCharRegex","validateName","validateValue","find","MAP","Headers","headerNames","headerName","pairs","pair","getHeaders","_pairs$i","createHeadersIterator","INTERNAL","HeadersIteratorPrototype","_INTERNAL","exportNodeCompatibleHeaders","hostHeaderKey","createHeadersLenient","INTERNALS$1","Response","contentType","redirected","INTERNALS$2","parse_url","format_url","streamDestructionSupported","isRequest","isAbortSignal","signal","Request","parsedURL","inputBody","redirect","follow","compress","agent","getNodeRequestOptions","contentLengthValue","totalBytes","AbortError","PassThrough$1","resolve_url","fetch$1","aborted","abortAndFinalize","finalize","reqTimeout","addEventListener","removeEventListener","socket","isRedirect","locationURL","requestOpts","response_options","codings","zlibOptions","finishFlush","createBrotliDecompress","lib$2","title$5","id$3","$schema$6","type$8","required$5","additionalProperties$5","patternProperties$5","properties$6","asyncapi","baseTopic","topics","tags","externalDocs","definitions$6","Reference","termsOfService","contact","license","schemeVersion","serverVariables","serverVariable","securitySchemes","discriminator","namespace","prefix","topicItem","vendorExtension","SecurityScheme","userPassword","apiKey","X509","symmetricEncryption","asymmetricEncryption","HTTPSecurityScheme","NonBearerHTTPSecurityScheme","BearerHTTPSecurityScheme","bearerFormat","APIKeyHTTPSecurityScheme","SecurityRequirement","require$$0$3","title$4","id$2","$schema$5","type$7","required$4","additionalProperties$4","patternProperties$4","properties$5","definitions$5","parameter","require$$1$1","title$3","id$1","$schema$4","type$6","required$3","additionalProperties$3","patternProperties$3","properties$4","definitions$4","framing","receive","require$$2","title$2","$schema$3","type$5","required$2","additionalProperties$2","patternProperties$2","properties$3","defaultContentType","definitions$3","ReferenceObject","protocolVersion","baseChannel","correlationIds","traits","channelItem","protocolInfo","operationId","schemaFormat","correlationId","specificationExtension","operationTrait","messageTrait","oauth2Flows","flows","implicit","password","clientCredentials","authorizationCode","oauth2Flow","authorizationUrl","tokenUrl","refreshUrl","scopes","oauth2Scopes","openIdConnect","openIdConnectUrl","require$$3$1","title$1","$schema$2","type$4","required$1","additionalProperties$1","patternProperties$1","properties$2","definitions$2","bindings","operationTraits","messageTraits","serverBindings","channelBindings","operationBindings","messageBindings","bindingsObject","amqp","amqp1","mqtt","mqtt5","kafka","nats","jms","sns","sqs","stomp","redis","require$$4","$schema$1","type$3","properties$1","definitions$1","require$$5","specs","nonJsonTypes","protectedProps$1","objectPrototype","pojo","getDeepKeys","omit","uniqueKeys","Set","inspectMethod","for","addInspectMethod","newError","onoCall","isLazyStack","stackProp","isWritableStack","joinStacks","originalError","newStack","popStack","originalStack","lazyJoinStacks","lazyStack","lazyPopStack","onoStart","protectedProps","extendError","props","onoError","extendStack","mergeErrors","_newError","_originalError","normalizeOptions","concatMessages","normalizeArgs$1","formatArgs","Ono","ErrorConstructor","ono","species","toJSON$1","singleton","ono$6","eval","EvalError","ReferenceError","syntax","SyntaxError","URIError","onoMap","typedOno","esm$1","require$$0$2","url_1","isWindows","forwardSlashPattern","jsonPointerSlash","jsonPointerTilde","urlEncodePatterns","urlDecodePatterns","getProtocol","getExtension","lastDot","getHash","hashIndex","stripHash","isHttp","isFileSystemPath","fromFileSystemPath","encodeURI","toFileSystemPath","keepFileProtocol","decodeURI","isFileUrl","safePointerToPath","require$$1","JSONParserError","setErrorName","JSONParserErrorGroup","parser","files","$refs","_root$Ref","getParserErrors","_$refs","ParserError","UnmatchedParserError","ResolverError","ex","ioErrorCode","UnmatchedResolverError","MissingPointerError","InvalidPointerError","isHandledError","normalizeError","Pointer","JSONParserError$1","InvalidPointerError$2","MissingPointerError$1","isHandledError$4","tildes","escapedSlash","escapedTilde","friendlyPath","originalPath","circular","indirections","pathFromRoot","unwrapOrThrow","resolveIf$Ref","setValue","isAllowed$Ref","$refPath","resolved","_resolve","isExtended$Ref","dereference","$Ref","InvalidPointerError$1","isHandledError$3","pathType","addError","exists","pointer$1","continueOnError","is$Ref","isExternal$Ref","external","resolvedValue","merged","ono$5","$Refs","getPaths","decoded","absPath","withoutHash","_add","_get$Ref","plugins","file","getResult","MAX_SAFE_INTEGER","lastError","runNextPlugin","onSuccess","extension","ono$4","ResolverError$3","ParserError$5","UnmatchedParserError$1","UnmatchedResolverError$1","isHandledError$2","parse_1","parse$5","resolver","readFile","parseFile","resolvers","allParsers","filteredParsers","parsers","onParsed","allowEmpty","ParserError$4","json$2","canParse","isNothing$1","isObject$4","toArray$1","sequence","extend$1","sourceKeys","repeat$1","cycle","isNegativeZero$1","NEGATIVE_INFINITY","isNothing_1$1","isObject_1$2","toArray_1$1","repeat_1$1","isNegativeZero_1$1","extend_1$1","common$1","isNothing","isNegativeZero","YAMLException$2","mark","compact","exception$1","Mark$1","column","getSnippet","snippet","where","mark$1","TYPE_CONSTRUCTOR_OPTIONS$1","YAML_NODE_KINDS$1","compileStyleAliases$1","Type$2","instanceOf","predicate","represent","defaultStyle","styleAliases","type$2","compileList$1","include","includedSchema","currentType","previousType","previousIndex","compileMap$1","scalar","mapping","fallback","collectType","Schema$3","explicit","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","DEFAULT","createSchema","schema$5","str$1","seq$1","map$1","failsafe$1","resolveYamlNull$1","constructYamlNull$1","isNull$2","_null$1","canonical","lowercase","uppercase","camelcase","resolveYamlBoolean$1","constructYamlBoolean$1","isBoolean$1","bool$1","isHexCode$1","isOctCode$1","isDecCode$1","resolveYamlInteger$1","hasDigits","constructYamlInteger$1","sign","digits","isInteger$1","int$1","binary","octal","decimal","hexadecimal","YAML_FLOAT_PATTERN$1","resolveYamlFloat$1","constructYamlFloat$1","POSITIVE_INFINITY","parseFloat","SCIENTIFIC_WITHOUT_DOT","representYamlFloat$1","isFloat$1","float$1","json$1","core$1","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP$1","resolveYamlTimestamp$1","constructYamlTimestamp$1","fraction","tz_hour","tz_minute","UTC","setTime","representYamlTimestamp$1","toISOString","timestamp$1","resolveYamlMerge$1","merge$2","NodeBuffer$1","_require$1","__","BASE64_MAP$1","resolveYamlBinary$1","bitlen","constructYamlBinary$1","tailbits","representYamlBinary$1","isBinary$1","binary$2","_hasOwnProperty$5","_toString$5","resolveYamlOmap$1","pairKey","pairHasKey","constructYamlOmap$1","omap$1","_toString$4","resolveYamlPairs$1","constructYamlPairs$1","pairs$1","_hasOwnProperty$4","resolveYamlSet$1","constructYamlSet$1","set$1","default_safe$1","resolveJavascriptUndefined$1","constructJavascriptUndefined$1","representJavascriptUndefined$1","isUndefined$2","_undefined$1","resolveJavascriptRegExp$1","modifiers","constructJavascriptRegExp$1","representJavascriptRegExp$1","multiline","ignoreCase","isRegExp$1","regexp$1","esprima","_require","resolveJavascriptFunction","expression","constructJavascriptFunction","param","representJavascriptFunction","isFunction","_function","default_full$1","_hasOwnProperty$3","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$2","onWarning","legacy","implicitTypes","typeMap","documents","generateError","throwWarning","directiveHandlers","YAML","handleYamlDirective","major","minor","checkLineBreaks","TAG","handleTagDirective","handle","tagMap","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","readFlowCollection","readNext","_tag","_anchor","anchor","terminator","isPair","isExplicitPair","isMapping","anchorMap","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","atExplicitKey","readTagProperty","isVerbatim","isNamed","tagHandle","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","blockIndent","readDocument","documentStart","directiveName","directiveArgs","hasDirectives","loadDocuments","nullpos","loadAll$1","load$2","safeLoadAll$1","safeLoad$1","loadAll_1","load_1","safeLoadAll_1","safeLoad_1","loader$1","loadAll","load","safeLoadAll","safeLoad","_toString$3","_hasOwnProperty$2","CHAR_TAB$1","CHAR_LINE_FEED$1","CHAR_CARRIAGE_RETURN$1","CHAR_SPACE$1","CHAR_EXCLAMATION$1","CHAR_DOUBLE_QUOTE$1","CHAR_SHARP$1","CHAR_PERCENT$1","CHAR_AMPERSAND$1","CHAR_SINGLE_QUOTE$1","CHAR_ASTERISK$1","CHAR_COMMA$1","CHAR_MINUS$1","CHAR_COLON$1","CHAR_EQUALS","CHAR_GREATER_THAN$1","CHAR_QUESTION$1","CHAR_COMMERCIAL_AT$1","CHAR_LEFT_SQUARE_BRACKET$1","CHAR_RIGHT_SQUARE_BRACKET$1","CHAR_GRAVE_ACCENT$1","CHAR_LEFT_CURLY_BRACKET$1","CHAR_VERTICAL_LINE$1","CHAR_RIGHT_CURLY_BRACKET$1","ESCAPE_SEQUENCES$1","DEPRECATED_BOOLEANS_SYNTAX$1","compileStyleMap$1","encodeHex$1","character","State$1","noArrayIndent","skipInvalid","flowLevel","styleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","explicitTypes","duplicates","usedDuplicates","indentString$1","spaces","ind","generateNextLine$1","testImplicitResolving$1","isWhitespace","isPrintable","isNsChar","isPlainSafe","isPlainSafeFirst","needIndentIndicator","leadingSpaceRe","STYLE_PLAIN","STYLE_SINGLE","STYLE_LITERAL","STYLE_FOLDED","STYLE_DOUBLE","chooseScalarStyle","singleLineOnly","indentPerLevel","testAmbiguousType","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","writeScalar$1","iskey","dump","testAmbiguity","blockHeader","dropEndingNewline","foldString","escapeString","indentIndicator","clip","keep","chomp","width","lineRe","nextLF","foldLine$1","prevMoreIndented","moreIndented","breakRe","escapeSeq","writeFlowSequence$1","writeNode$1","writeBlockSequence$1","writeFlowMapping$1","objectKeyList","objectKey","objectValue","pairBuffer","writeBlockMapping$1","explicitPair","detectType$1","typeList","objectOrArray","duplicateIndex","duplicate","arrayLevel","getDuplicateReferences$1","duplicatesIndexes","inspectNode$1","dump$2","safeDump$2","dump_1$1","safeDump_1$1","dumper$1","safeDump","Type$1","Schema$2","FAILSAFE_SCHEMA","JSON_SCHEMA","CORE_SCHEMA","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","load$1","dump$1","safeDump$1","YAMLException$1","MINIMAL_SCHEMA","SAFE_SCHEMA","DEFAULT_SCHEMA","parse$4","compose","addConstructor","jsYaml$1","Type","Schema","YAMLException","jsYaml","ParserError$3","yaml_1","ParserError$2","TEXT_REGEXP","BINARY_REGEXP","binary$1","empty$1","fs","ono$3","ResolverError$2","canRead","ono$2","ResolverError$1","http_1","redirects","download","httpOptions","redirectTo","catch","$RefParserOptions","merge$1","yaml","isMergeable","sourceSetting","targetSetting","normalizeArgs_1","normalizeArgs","options$1","isHandledError$1","resolveExternal_1","resolveExternal","promises","crawl$2","resolve$Ref","keyPath","bundle_1","bundle","inventory","crawl$1","remap","inventory$Ref","keyPathFromRoot","$refParent","$refKey","extended","existingEntry","findInInventory","removeFromInventory","aDefinitionsIndex","bDefinitionsIndex","ono$1","dereference_1","dereference$1","dereferenced","crawl","parents","processedObjects","dereferencedCache","dereference$Ref","foundCircularReference","refKeys","extraKeys","directCircular","dereferencedValue","dereferencedObject","setImmediate","callMeMaybe","maybe","promise","ParserError$1","lib$1","$RefParser","_default","JSONParserError_1","InvalidPointerError_1","MissingPointerError_1","ResolverError_1","ParserError_1","UnmatchedParserError_1","UnmatchedResolverError_1","Class","isObject$3","patch","patchVal","esm","ERROR_URL_PREFIX","buildError","detail","validationErrors","parsedJSON","def","toJS","parserError","yamlAST$1","Kind","newMapping","endPosition","startPosition","MAPPING","newAnchorRef","referencesAnchor","ANCHOR_REF","newScalar","SCALAR","doubleQuoted","rawValue","valueObject","newItems","SEQ","newSeq","newMap","mappings","isNothing_1","isObject$2","isObject_1$1","toArray_1","extend_1","repeat_1","isNegativeZero_1","common","isWarning","isInstance","getClassIdentifier","currentIdentifier","CLASS_IDENTIFIER","superIdentifiers","exception","Mark","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","Type_1","type$1","compileList","compileMap","Schema$1","Schema_1","schema$4","failsafe","resolveYamlNull","constructYamlNull","isNull$1","_null","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","constructYamlInteger","isInteger","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","representYamlFloat","isFloat","float","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","representYamlTimestamp","timestamp","resolveYamlMerge","require$$0$1","NodeBuffer","BASE64_MAP","resolveYamlBinary","constructYamlBinary","representYamlBinary","isBinary","_hasOwnProperty$1","_toString$2","resolveYamlOmap","constructYamlOmap","omap","_toString$1","resolveYamlPairs","constructYamlPairs","pairSeq","resolveYamlSet","constructYamlSet","schema$3","default_safe","resolveJavascriptUndefined","constructJavascriptUndefined","representJavascriptUndefined","isUndefined$1","_undefined","resolveJavascriptRegExp","dummy","constructJavascriptRegExp","representJavascriptRegExp","isRegExp","schema$2","default_full","loader","customEscapeCheck","customEscapeMap","errorMap","allowAnyEscape","ignoreDuplicateKeys","throwErrorFromPosition","toLineEnd","positionToLine","sibling","state_result","plainScalar","singleQuoted","anchorId","tagStart","INCLUDE_REF","vl","docsCount","documents_1","_toString","CHAR_TAB","CHAR_LINE_FEED","CHAR_CARRIAGE_RETURN","CHAR_SPACE","CHAR_EXCLAMATION","CHAR_DOUBLE_QUOTE","CHAR_SHARP","CHAR_PERCENT","CHAR_AMPERSAND","CHAR_SINGLE_QUOTE","CHAR_ASTERISK","CHAR_COMMA","CHAR_MINUS","CHAR_COLON","CHAR_GREATER_THAN","CHAR_QUESTION","CHAR_COMMERCIAL_AT","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","CHAR_GRAVE_ACCENT","CHAR_LEFT_CURLY_BRACKET","CHAR_VERTICAL_LINE","CHAR_RIGHT_CURLY_BRACKET","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","compileStyleMap","encodeHex","indentString","generateNextLine","testImplicitResolving","StringBuilder","checkpoint","takeUpTo","escapeChar","writeScalar","spaceWrap","folded","literal","double","sawLineFeed","linePosition","longestLine","hexEsc","previous","lineLength","trailingLineBreaks","simpleChar","needsHexEscape","fold","trailing","newLine","foldLine","foldRe","prevMatch","foldStart","foldEnd","writeFlowSequence","writeNode","writeBlockSequence","writeFlowMapping","writeBlockMapping","detectType","getDuplicateReferences","inspectNode","dump_1","safeDump_1","dumper","scalarInference","parseYamlBoolean","safeParseYamlInteger","parseYamlInteger","parseYamlFloat","infinity","ScalarType","determineScalarType","base10","base8","base16","src$1","__export","loc","hasOwnProp","isUndefined","isNull","isPrimitive","isPrimitiveNode","isBetween","getLoc","ls","visitors","_loc","wrappable","Constructor","boolean","function","onNode","visitor","walkObj","walkArr","loc_1","yamlAST","build","commonjsGlobal$1","graphemeSplitter","GraphemeSplitter","CR","LF","Control","Extend","Regional_Indicator","SpacingMark","V","T","LV","LVT","Other","Prepend","E_Base","E_Modifier","ZWJ","Glue_After_Zwj","E_Base_GAZ","NotBreak","BreakStart","Break","BreakLastRegional","BreakPenultimateRegional","isSurrogate","codePointAt","shouldBreak","eModifierIndex","rIIndex","previousNonExtendIndex","nextBreak","getGraphemeBreakProperty","splitGraphemes","brk","iterateGraphemes","countGraphemes","startColumn","startOffset","endColumn","endOffset","repeatString","padStart","fillString","targetLen","fillLen","truncated","_extends","printLine","maxNumLength","settings","formattedNum","tabReplacement","tabSize","printLines","defaultSettings","extraLines","linePos","columnPos","startLinePos","endLinePos","prevLines","targetLineBeforeCursor","cursorLine","nextLines","errorStack","createError","rawMessage","parseErrorTypes","unexpectedEnd","unexpectedToken","tokenizeErrorTypes","unexpectedSymbol","symbol","tokenTypes","LEFT_BRACE","RIGHT_BRACE","LEFT_BRACKET","RIGHT_BRACKET","COLON","COMMA","STRING","NUMBER","TRUE","FALSE","NULL","punctuatorTokensMap","keywordTokensMap","stringStates","_START_","START_QUOTE_OR_CHAR","escapes$1","numberStates","MINUS","ZERO","DIGIT","POINT","DIGIT_FRACTION","EXP","EXP_DIGIT_OR_SIGN","isDigit1to9","isDigit","isHex","isExp","parseWhitespace","parseChar","parseKeyword","parseString$1","startIndex","curChar","parseNumber","passedValueIndex","whitespace","objectStates","OPEN_OBJECT","PROPERTY","propertyStates","KEY","arrayStates","OPEN_ARRAY","VALUE","errorEof","tokenList","parseHexEscape","hexCode","passEscapes","parseString","parseObject","startToken","parseProperty","_property","parseValue","parseArray","_value","parseLiteral","parse$1","jsonParse","txt","reviver","handleJsonNotString","syntaxErr","errIdxBrokenJson","errIdx","handleErrIdxNotNull","isEmptyArray","errorMessage","utils_1","jsonPointerToArray","getAST","asyncapiYAMLorJSON","initialFormat","findNode","untilde","findNodeInAST","childArray","child","findLocationOf","getMapValue","trimLeft","createMapOfType","getMapValueOfType","getMapValueByKey","mix","model","mixins","duplicatedMethods","checkDuplication","mixin","some","mixinMethod","findRefs","pseudoAST","getLocationOf","improveAjvErrors","defaultLocation","parseUrlVariables","parseUrlQueryParameters","getMissingProps","groupValidationErrors","errorElements","setNotProvidedParams","notProvidedChannelParams","notProvidedParams","missingChannelParams","validationError","validateServerVariables$1","srvs","srvsMap","Map","notProvidedVariables","notProvidedExamplesInEnum","srvr","srvrName","variablesObj","notProvidedServerVars","missingServerVariables","setNotValidExamples","variablesMap","variableName","wrongExamples","validateOperationId$1","operations","chnls","chnlsMap","duplicatedOperations","allOperations","addDuplicateToMap","channelName","opName","operationPath","isOperationIdDuplicated","chnlObj","chnlName","validateServerSecurity$1","specialSecTypes","missingSecSchema","invalidSecurityValues","serverName","serverSecInfo","secObj","secName","findSecuritySchema","srvrSecurityPath","schemaType","isSrvrSecProperArray","securityName","secSchemes","secSchemesMap","schemaInfo","schemaName","securityObjValue","validateChannels$1","invalidChannelName","queryParameters","parameterValidationErrors","nameValidationErrors","allValidationErrors","customValidators","validateServerVariables","validateOperationId","validateServerSecurity","validateChannels","Base","_json","MixinSpecificationExtensions","hasExtensions","extensionKeys","extensions","extKeys","hasExtension","hasExt","specificationExtensions","mix$g","License","mix$f","Contact","getMapValueByKey$1","MixinDescription","hasDescription","description$1","mix$e","Info","mix$d","ServerVariable","allowedValues","allows","hasAllowedValues","defaultValue","hasDefaultValue","ServerSecurityRequirement","serverSecurityRequirement","MixinBindings","hasBindings","bindingProtocols","hasBinding","createMapOfType$5","getMapValueOfType$6","mix$c","Server","hasVariables","sec","mix$b","ExternalDocs","externalDocs$1","getMapValueOfType$5","MixinExternalDocs","hasExternalDocs","createMapOfType$4","getMapValueOfType$4","mix$a","uid","ai","if","else","isCircular","hasCircularProps","circularProps","schema$1","mix$9","ChannelParameter","channelParameter","mix$8","Tag","MixinTags","hasTags","tagNames","hasTag","tg","mix$7","OperationTraitable","operationTraitable","mix$6","CorrelationId","getMapValueOfType$3","mix$5","MessageTraitable","messageTraitable","Message","originalPayload","originalSchemaFormat","Operation","hasMultipleMessages","PublishOperation","isPublish","isSubscribe","publishOperation","SubscribeOperation","subscribeOperation","createMapOfType$3","getMapValueOfType$2","mix$4","Channel","hasParameters","hasPublish","hasSubscribe","mix$3","OAuthFlow","oauthFlow","createMapOfType$2","mix$2","in","securityScheme","OperationTrait","MessageTrait","createMapOfType$1","getMapValueOfType$1","mix$1","Components","hasMessages","hasSchemas","hasSecuritySchemes","hasCorrelationIds","hasOperationTraits","hasMessageTraits","xParserMessageName$1","xParserSchemaId$1","xParserCircle$2","xParserCircleProps$1","constants","xParserMessageName","xParserSchemaId","xParserCircle","xParserCircleProps","SchemaIteratorCallbackType$1","NEW_SCHEMA","END_SCHEMA","SchemaTypesToIterate","payloads","arrays","oneOfs","allOfs","anyOfs","traverseSchema","schemaTypesToIterate","recursiveSchemaObject","recursiveSchemaArray","traverseCombinedSchemas","checkCombiningSchemas","combineArray","combineSchema","traverseAsyncApiDocument$2","hasChannels","channelNames","traverseChannel","hasComponents","traverseMessage","additionalSchema","propertySchema","additionalArrayItems","arraySchema","iterators","SchemaIteratorCallbackType","traverseAsyncApiDocument","traverseAsyncApiDocument$1","assignNameToComponentMessages$1","assignUidToParameterSchemas$1","parameterKey","parameterSchema","assignUidToComponentSchemas$1","assignNameToAnonymousMessages$1","anonymousMessageCounter","addNameToKey","assignIdToAnonymousSchemas$1","anonymousSchemaCounter","anonymousNaming","assignNameToComponentMessages","assignUidToParameterSchemas","assignUidToComponentSchemas","assignNameToAnonymousMessages","assignIdToAnonymousSchemas","xParserCircle$1","AsyncAPIDocument","markCircularSchemas","hasServers","serverNames","hasDefaultContentType","allMessages","allSchemas","allSchemasCallback","hasCircular","traverseSchemas","seenObj","lastSchema","markCircular","circPropsList","circularCheckCallback","propName","schemaJson","schemaToUse","positiveInteger","positiveIntegerDefault0","require$$3","require$$0","mergePatch","improveAjvErrors$1","DEFAULT_SCHEMA_FORMAT","OPERATIONS","SPECIAL_SECURITY_TYPES","PARSERS","xParserMessageParsed","parse$3","parseFromUrl","registerSchemaParser","applyTraits","refParser","ajv$1","customDocumentOperations","handleCircularRefs","fetchOptions","customComponentsMsgOperations","customChannelsOperations","validateAndConvertMessage","originalAsyncAPIDocument","fileFormat","parsedAsyncAPIDocument","pathToPayload","defaultSchemaFormat","parserModule","getMimeTypes","js","trait","promisesArray","messageName","asyncapiSchemaFormatParser","parse$2","getMimeTypes$2","payloadSchema","preparePayloadSchema","addFullPathToDataPath","asyncapiSchema","isObject_1","maybeObj","isObject$1","invalidTypeError","InvalidTypeError","convertFromSchema","convertSchema","cloneSchema","structs","_structs","notSupported","_notSupported","strictMode","struct","cloned","convertProperties","cleanRequired","validateType","convertTypes","convertFormat","supportPatternProperties","convertPatternProperties","patternPropertiesHandler","validTypes","removeProp","_removeProps","MIN_INT_32","MAX_INT_32","MIN_INT_64","MAX_INT_64","MIN_FLOAT","MAX_FLOAT","MIN_DOUBLE","MAX_VALUE","MAX_DOUBLE","BYTE_PATTERN","FORMATS","dateToDateTime","convertFormatDate","formatConverters","int32","convertFormatInt32","int64","convertFormatInt64","convertFormatFloat","convertFormatDouble","byte","convertFormatByte","converter","remainedRequired","invalidInputError","InvalidInputError","convertFromParameter","convertParameterSchema","convertFromContents","mime","jsonSchema","fromSchema","fromParameter","openapiSchemaToJsonSchema_1","openapiSchemaToJsonSchema","openapiParameterToJsonSchema","resolveOptions","keepNotSupported","removeReadOnly","removeWriteOnly","resolveNotSupported","patternsObj","additProps","toRetain","openapiSchemaParser","getMimeTypes$1","iterateSchema","aliasProps","BYTES_PATTERN","INT_MIN","INT_MAX","LONG_MIN","LONG_MAX","typeMappings","long","fixed","record","avroToJsonSchema$1","avroToJsonSchema","avroDefinition","isUnion","avroDef","propsMap","fromEntries","toJsonSchema","avroSchemaParser","__awaiter$1","_arguments","generator","adopt","fulfilled","step","rejected","__generator$1","sent","trys","ops","verb","Parser","handleError","extractDocument","parseSchema","parseSchemaFromURL","parserOptions","err_1","err_2","requestOptions","getExamplesFromSpec","NO_PROVIDER","createUseContext","useContext","constate","useValue","splitValues","Context","createContext","Provider","createMemoDeps","memoizedValue","useMemo","displayName","tuple","contexts","SplitProvider","splitValue","__assign$3","__rest","propertyIsEnumerable","useExpandedState","numberOfExpandedElement","initialNumberOfExpandedElement","useState","expanded","setExpanded","numberOfExpanded","setNumberOfExpanded","itemName","clickedItem","setClickedItem","scrollToView","setScrollToView","clickItem","useCallback","useExpandedContext","isClient","patchHistoryMethod","original","history","Event","dispatchEvent","useLocationServer","trigger","buildState","useLocationBrowser","setState","useEffect","onPopstate","onPushstate","onReplacestate","useLocation","useChangeHash","pushStateBehavior","useChangeHashContext","CodeComponent","TableHeader","colSpan","TableRow","rootKey","accessors","renderRowByAccessors","acs","nest","accessor","resolveAccessor","nestedClassName","__assign$2","Table","rows","tableClassName","tableBodyClassName","row","Href","Markdown","BadgeType","Badge","DEPRECATED","PUBLISH","SUBSCRIBE","REQUIRED","GENERATED","TreeSpace","TreeLeaf","Toggle","customClassName","initialExpanded","toggleInState","globalExpanded","setInitial","handleSetExpanded","stopPropagation","newState","headerClasses","arrowClasses","bodyClasses","onClick","CollapseButton","renderErrors","singleError","formattedError","formatError","ErrorComponent","TermsOfServiceComponent","LicenseComponent","nameWrapper","ContactComponent","Fragment","DefaultContentTypeComponent","__assign$1","InfoComponent","showInfoList","getEnumHTMLElements","enumElements","handleNotProperty","arrayOfChangedObjects","renderItems","treeSpace","renderProperties","SchemaPropertiesComponent","renderAdditionalProperties","hasDynamicName","renderOf","renderPropertyName","treeSpaces","renderPropertyDescription","alteredProperties","space","height","fontSize","padding","SchemaExampleComponent","schemaExample","exampleString","renderSchemaProps","SchemaComponent","exampleTitle","hideTitle","toggle","toggleExpand","hasNotField","hasExamples","schemaDataID","PayloadComponent","dataIdentifier","payloadsID","elem","inferredId","payloadID","payloadDataID","MessageComponent","hideTags","inChannel","messageID","messageDataID","headersID","isBody","MessagesComponent","messagesLength","wrapper","inferredName","OperationComponent","payloadType","otherOneOf","Parameter","Parameters","ChannelComponent","oneOfPublish","oneOfSubscribe","oneOfExists","ChannelsComponent","serverVariablesAccessors","ServerVariablesComponent","dataId","ServerSecurityFlowScopes","ServerSecurityFlow","ServerSecurityFlows","sortedFlows","accumulator","flowName","nestedTableCellClassName","flowsTableCellClassName","securitySchemeAccessors","ServerSecurityItemComponent","ServerSecurityComponent","requirements","schemes","requirement","ServerComponent","stage","ServersComponent","SchemasComponent","__extends","extendStatics","__assign","__awaiter","__generator","defaultAsyncApi","_super","validatedSchema","componentDidMount","componentDidUpdate","prevProps","concatenatedConfig","numberOfElement","initialExpandedElements","parsedFromUrl","Component"],"mappings":"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AgD,CAAxE,CAA2E,CACzE,GAAI,CACFupB,MAAM,CAACppB,QAAP,CAAkB8oB,QAAQ,CAACb,SAAT,CAAmBmB,MAAM,CAACppB,QAA1B,CAAlB,CACD,CAAC,MAAOqpB,EAAP,CAAW,MACd,CACF,CAED,OAAOlmB,KAAK,CAACE,MAAN,CAAaF,KAAK,CAACvD,MAAN,CAAawpB,MAAb,CAAb,CAAP,CACD,CAGD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MACE,SAASE,UAAT,CAAoBC,UAApB,CAAgCjhB,OAAhC,CAAyC,CACvC,GAAI,EAAE,gBAAgBghB,UAAlB,CAAJ,CAAmC,CACjC,WAAWA,UAAJ,CAAeC,UAAf,CAA2BjhB,OAA3B,CAAP,CACD,CAED,GAAI,CAACA,OAAL,CAAc,CACZ,GAAI,CAACtE,KAAK,CAACE,QAAN,CAAeqlB,UAAf,CAAL,CAAiC,CAC/BjhB,OAAO,CAAGihB,UAAU,EAAI,EAAxB,CACAA,UAAU,CAAG,SAAb,CACD,CACF,CAED;AACJ;AACA;AAC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"} \ No newline at end of file diff --git a/__transpiled/js/highlight.min.js b/__transpiled/js/highlight.min.js deleted file mode 100644 index a03d1f078..000000000 --- a/__transpiled/js/highlight.min.js +++ /dev/null @@ -1,4259 +0,0 @@ -'use strict'; - -require('source-map-support/register'); - -/* - Highlight.js 10.2.0 (da7d149b) - License: BSD-3-Clause - Copyright (c) 2006-2020, Ivan Sagalaev -*/ -var hljs = function () { - - function e(n) { - Object.freeze(n); - var t = "function" == typeof n; - return Object.getOwnPropertyNames(n).forEach(function (r) { - !Object.hasOwnProperty.call(n, r) || null === n[r] || "object" != typeof n[r] && "function" != typeof n[r] || t && ("caller" === r || "callee" === r || "arguments" === r) || Object.isFrozen(n[r]) || e(n[r]); - }), n; - } - - class n { - constructor(e) { - void 0 === e.data && (e.data = {}), this.data = e.data; - } - - ignoreMatch() { - this.ignore = !0; - } - - } - - function t(e) { - return e.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); - } - - function r(e, ...n) { - var t = {}; - - for (const n in e) t[n] = e[n]; - - return n.forEach(function (e) { - for (const n in e) t[n] = e[n]; - }), t; - } - - function a(e) { - return e.nodeName.toLowerCase(); - } - - var i = Object.freeze({ - __proto__: null, - escapeHTML: t, - inherit: r, - nodeStream: function (e) { - var n = []; - return function e(t, r) { - for (var i = t.firstChild; i; i = i.nextSibling) 3 === i.nodeType ? r += i.nodeValue.length : 1 === i.nodeType && (n.push({ - event: "start", - offset: r, - node: i - }), r = e(i, r), a(i).match(/br|hr|img|input/) || n.push({ - event: "stop", - offset: r, - node: i - })); - - return r; - }(e, 0), n; - }, - mergeStreams: function (e, n, r) { - var i = 0, - s = "", - o = []; - - function l() { - return e.length && n.length ? e[0].offset !== n[0].offset ? e[0].offset < n[0].offset ? e : n : "start" === n[0].event ? e : n : e.length ? e : n; - } - - function c(e) { - s += "<" + a(e) + [].map.call(e.attributes, function (e) { - return " " + e.nodeName + '="' + t(e.value) + '"'; - }).join("") + ">"; - } - - function u(e) { - s += ""; - } - - function g(e) { - ("start" === e.event ? c : u)(e.node); - } - - for (; e.length || n.length;) { - var d = l(); - - if (s += t(r.substring(i, d[0].offset)), i = d[0].offset, d === e) { - o.reverse().forEach(u); - - do { - g(d.splice(0, 1)[0]), d = l(); - } while (d === e && d.length && d[0].offset === i); - - o.reverse().forEach(c); - } else "start" === d[0].event ? o.push(d[0].node) : o.pop(), g(d.splice(0, 1)[0]); - } - - return s + t(r.substr(i)); - } - }); - - const s = "", - o = e => !!e.kind; - - class l { - constructor(e, n) { - this.buffer = "", this.classPrefix = n.classPrefix, e.walk(this); - } - - addText(e) { - this.buffer += t(e); - } - - openNode(e) { - if (!o(e)) return; - let n = e.kind; - e.sublanguage || (n = `${this.classPrefix}${n}`), this.span(n); - } - - closeNode(e) { - o(e) && (this.buffer += s); - } - - value() { - return this.buffer; - } - - span(e) { - this.buffer += ``; - } - - } - - class c { - constructor() { - this.rootNode = { - children: [] - }, this.stack = [this.rootNode]; - } - - get top() { - return this.stack[this.stack.length - 1]; - } - - get root() { - return this.rootNode; - } - - add(e) { - this.top.children.push(e); - } - - openNode(e) { - const n = { - kind: e, - children: [] - }; - this.add(n), this.stack.push(n); - } - - closeNode() { - if (this.stack.length > 1) return this.stack.pop(); - } - - closeAllNodes() { - for (; this.closeNode();); - } - - toJSON() { - return JSON.stringify(this.rootNode, null, 4); - } - - walk(e) { - return this.constructor._walk(e, this.rootNode); - } - - static _walk(e, n) { - return "string" == typeof n ? e.addText(n) : n.children && (e.openNode(n), n.children.forEach(n => this._walk(e, n)), e.closeNode(n)), e; - } - - static _collapse(e) { - "string" != typeof e && e.children && (e.children.every(e => "string" == typeof e) ? e.children = [e.children.join("")] : e.children.forEach(e => { - c._collapse(e); - })); - } - - } - - class u extends c { - constructor(e) { - super(), this.options = e; - } - - addKeyword(e, n) { - "" !== e && (this.openNode(n), this.addText(e), this.closeNode()); - } - - addText(e) { - "" !== e && this.add(e); - } - - addSublanguage(e, n) { - const t = e.root; - t.kind = n, t.sublanguage = !0, this.add(t); - } - - toHTML() { - return new l(this, this.options).value(); - } - - finalize() { - return !0; - } - - } - - function g(e) { - return e ? "string" == typeof e ? e : e.source : null; - } - - const d = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", - h = { - begin: "\\\\[\\s\\S]", - relevance: 0 - }, - f = { - className: "string", - begin: "'", - end: "'", - illegal: "\\n", - contains: [h] - }, - p = { - className: "string", - begin: '"', - end: '"', - illegal: "\\n", - contains: [h] - }, - m = { - begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ - }, - b = function (e, n, t = {}) { - var a = r({ - className: "comment", - begin: e, - end: n, - contains: [] - }, t); - return a.contains.push(m), a.contains.push({ - className: "doctag", - begin: "(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):", - relevance: 0 - }), a; - }, - v = b("//", "$"), - x = b("/\\*", "\\*/"), - E = b("#", "$"); - - var _ = Object.freeze({ - __proto__: null, - IDENT_RE: "[a-zA-Z]\\w*", - UNDERSCORE_IDENT_RE: "[a-zA-Z_]\\w*", - NUMBER_RE: "\\b\\d+(\\.\\d+)?", - C_NUMBER_RE: d, - BINARY_NUMBER_RE: "\\b(0b[01]+)", - RE_STARTERS_RE: "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", - SHEBANG: (e = {}) => { - const n = /^#![ ]*\//; - return e.binary && (e.begin = function (...e) { - return e.map(e => g(e)).join(""); - }(n, /.*\b/, e.binary, /\b.*/)), r({ - className: "meta", - begin: n, - end: /$/, - relevance: 0, - "on:begin": (e, n) => { - 0 !== e.index && n.ignoreMatch(); - } - }, e); - }, - BACKSLASH_ESCAPE: h, - APOS_STRING_MODE: f, - QUOTE_STRING_MODE: p, - PHRASAL_WORDS_MODE: m, - COMMENT: b, - C_LINE_COMMENT_MODE: v, - C_BLOCK_COMMENT_MODE: x, - HASH_COMMENT_MODE: E, - NUMBER_MODE: { - className: "number", - begin: "\\b\\d+(\\.\\d+)?", - relevance: 0 - }, - C_NUMBER_MODE: { - className: "number", - begin: d, - relevance: 0 - }, - BINARY_NUMBER_MODE: { - className: "number", - begin: "\\b(0b[01]+)", - relevance: 0 - }, - CSS_NUMBER_MODE: { - className: "number", - begin: "\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", - relevance: 0 - }, - REGEXP_MODE: { - begin: /(?=\/[^/\n]*\/)/, - contains: [{ - className: "regexp", - begin: /\//, - end: /\/[gimuy]*/, - illegal: /\n/, - contains: [h, { - begin: /\[/, - end: /\]/, - relevance: 0, - contains: [h] - }] - }] - }, - TITLE_MODE: { - className: "title", - begin: "[a-zA-Z]\\w*", - relevance: 0 - }, - UNDERSCORE_TITLE_MODE: { - className: "title", - begin: "[a-zA-Z_]\\w*", - relevance: 0 - }, - METHOD_GUARD: { - begin: "\\.\\s*[a-zA-Z_]\\w*", - relevance: 0 - }, - END_SAME_AS_BEGIN: function (e) { - return Object.assign(e, { - "on:begin": (e, n) => { - n.data._beginMatch = e[1]; - }, - "on:end": (e, n) => { - n.data._beginMatch !== e[1] && n.ignoreMatch(); - } - }); - } - }), - w = "of and for in not or if then".split(" "); - - function N(e, n) { - return n ? +n : function (e) { - return w.includes(e.toLowerCase()); - }(e) ? 0 : 1; - } - - const y = { - props: ["language", "code", "autodetect"], - data: function () { - return { - detectedLanguage: "", - unknownLanguage: !1 - }; - }, - computed: { - className() { - return this.unknownLanguage ? "" : "hljs " + this.detectedLanguage; - }, - - highlighted() { - if (!this.autoDetect && !hljs.getLanguage(this.language)) return console.warn(`The language "${this.language}" you specified could not be found.`), this.unknownLanguage = !0, t(this.code); - let e; - return this.autoDetect ? (e = hljs.highlightAuto(this.code), this.detectedLanguage = e.language) : (e = hljs.highlight(this.language, this.code, this.ignoreIllegals), this.detectectLanguage = this.language), e.value; - }, - - autoDetect() { - return !(this.language && (e = this.autodetect, !e && "" !== e)); - var e; - }, - - ignoreIllegals: () => !0 - }, - - render(e) { - return e("pre", {}, [e("code", { - class: this.className, - domProps: { - innerHTML: this.highlighted - } - })]); - } - - }, - R = { - install(e) { - e.component("highlightjs", y); - } - - }, - k = t, - O = r, - { - nodeStream: M, - mergeStreams: L - } = i, - T = Symbol("nomatch"); - return function (t) { - var a = [], - i = Object.create(null), - s = Object.create(null), - o = [], - l = !0, - c = /(^(<[^>]+>|\t|)+|\n)/gm, - d = "Could not find the language '{}', did you forget to load/include a language module?"; - const h = { - disableAutodetect: !0, - name: "Plain text", - contains: [] - }; - var f = { - noHighlightRe: /^(no-?highlight)$/i, - languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, - classPrefix: "hljs-", - tabReplace: null, - useBR: !1, - languages: null, - __emitter: u - }; - - function p(e) { - return f.noHighlightRe.test(e); - } - - function m(e, n, t, r) { - var a = { - code: n, - language: e - }; - S("before:highlight", a); - var i = a.result ? a.result : b(a.language, a.code, t, r); - return i.code = a.code, S("after:highlight", i), i; - } - - function b(e, t, a, s) { - var o = t; - - function c(e, n) { - var t = E.case_insensitive ? n[0].toLowerCase() : n[0]; - return Object.prototype.hasOwnProperty.call(e.keywords, t) && e.keywords[t]; - } - - function u() { - null != R.subLanguage ? function () { - if ("" !== L) { - var e = null; - - if ("string" == typeof R.subLanguage) { - if (!i[R.subLanguage]) return void M.addText(L); - e = b(R.subLanguage, L, !0, O[R.subLanguage]), O[R.subLanguage] = e.top; - } else e = v(L, R.subLanguage.length ? R.subLanguage : null); - - R.relevance > 0 && (j += e.relevance), M.addSublanguage(e.emitter, e.language); - } - }() : function () { - if (!R.keywords) return void M.addText(L); - let e = 0; - R.keywordPatternRe.lastIndex = 0; - let n = R.keywordPatternRe.exec(L), - t = ""; - - for (; n;) { - t += L.substring(e, n.index); - const r = c(R, n); - - if (r) { - const [e, a] = r; - M.addText(t), t = "", j += a, M.addKeyword(n[0], e); - } else t += n[0]; - - e = R.keywordPatternRe.lastIndex, n = R.keywordPatternRe.exec(L); - } - - t += L.substr(e), M.addText(t); - }(), L = ""; - } - - function h(e) { - return e.className && M.openNode(e.className), R = Object.create(e, { - parent: { - value: R - } - }); - } - - function p(e) { - return 0 === R.matcher.regexIndex ? (L += e[0], 1) : (I = !0, 0); - } - - var m = {}; - - function x(t, r) { - var i = r && r[0]; - if (L += t, null == i) return u(), 0; - - if ("begin" === m.type && "end" === r.type && m.index === r.index && "" === i) { - if (L += o.slice(r.index, r.index + 1), !l) { - const n = Error("0 width match regex"); - throw n.languageName = e, n.badRule = m.rule, n; - } - - return 1; - } - - if (m = r, "begin" === r.type) return function (e) { - var t = e[0], - r = e.rule; - const a = new n(r), - i = [r.__beforeBegin, r["on:begin"]]; - - for (const n of i) if (n && (n(e, a), a.ignore)) return p(t); - - return r && r.endSameAsBegin && (r.endRe = RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&"), "m")), r.skip ? L += t : (r.excludeBegin && (L += t), u(), r.returnBegin || r.excludeBegin || (L = t)), h(r), r.returnBegin ? 0 : t.length; - }(r); - - if ("illegal" === r.type && !a) { - const e = Error('Illegal lexeme "' + i + '" for mode "' + (R.className || "") + '"'); - throw e.mode = R, e; - } - - if ("end" === r.type) { - var s = function (e) { - var t = e[0], - r = o.substr(e.index), - a = function e(t, r, a) { - let i = function (e, n) { - var t = e && e.exec(n); - return t && 0 === t.index; - }(t.endRe, a); - - if (i) { - if (t["on:end"]) { - const e = new n(t); - t["on:end"](r, e), e.ignore && (i = !1); - } - - if (i) { - for (; t.endsParent && t.parent;) t = t.parent; - - return t; - } - } - - if (t.endsWithParent) return e(t.parent, r, a); - }(R, e, r); - - if (!a) return T; - var i = R; - i.skip ? L += t : (i.returnEnd || i.excludeEnd || (L += t), u(), i.excludeEnd && (L = t)); - - do { - R.className && M.closeNode(), R.skip || R.subLanguage || (j += R.relevance), R = R.parent; - } while (R !== a.parent); - - return a.starts && (a.endSameAsBegin && (a.starts.endRe = a.endRe), h(a.starts)), i.returnEnd ? 0 : t.length; - }(r); - - if (s !== T) return s; - } - - if ("illegal" === r.type && "" === i) return 1; - if (S > 1e5 && S > 3 * r.index) throw Error("potential infinite loop, way more iterations than matches"); - return L += i, i.length; - } - - var E = y(e); - if (!E) throw console.error(d.replace("{}", e)), Error('Unknown language: "' + e + '"'); - - var _ = function (e) { - function n(n, t) { - return RegExp(g(n), "m" + (e.case_insensitive ? "i" : "") + (t ? "g" : "")); - } - - class t { - constructor() { - this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0; - } - - addRule(e, n) { - n.position = this.position++, this.matchIndexes[this.matchAt] = n, this.regexes.push([n, e]), this.matchAt += function (e) { - return RegExp(e.toString() + "|").exec("").length - 1; - }(e) + 1; - } - - compile() { - 0 === this.regexes.length && (this.exec = () => null); - const e = this.regexes.map(e => e[1]); - this.matcherRe = n(function (e, n = "|") { - for (var t = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./, r = 0, a = "", i = 0; i < e.length; i++) { - var s = r += 1, - o = g(e[i]); - - for (i > 0 && (a += n), a += "("; o.length > 0;) { - var l = t.exec(o); - - if (null == l) { - a += o; - break; - } - - a += o.substring(0, l.index), o = o.substring(l.index + l[0].length), "\\" === l[0][0] && l[1] ? a += "\\" + (+l[1] + s) : (a += l[0], "(" === l[0] && r++); - } - - a += ")"; - } - - return a; - }(e), !0), this.lastIndex = 0; - } - - exec(e) { - this.matcherRe.lastIndex = this.lastIndex; - const n = this.matcherRe.exec(e); - if (!n) return null; - const t = n.findIndex((e, n) => n > 0 && void 0 !== e), - r = this.matchIndexes[t]; - return n.splice(0, t), Object.assign(n, r); - } - - } - - class a { - constructor() { - this.rules = [], this.multiRegexes = [], this.count = 0, this.lastIndex = 0, this.regexIndex = 0; - } - - getMatcher(e) { - if (this.multiRegexes[e]) return this.multiRegexes[e]; - const n = new t(); - return this.rules.slice(e).forEach(([e, t]) => n.addRule(e, t)), n.compile(), this.multiRegexes[e] = n, n; - } - - resumingScanAtSamePosition() { - return 0 != this.regexIndex; - } - - considerAll() { - this.regexIndex = 0; - } - - addRule(e, n) { - this.rules.push([e, n]), "begin" === n.type && this.count++; - } - - exec(e) { - const n = this.getMatcher(this.regexIndex); - n.lastIndex = this.lastIndex; - const t = n.exec(e); - return t && (this.regexIndex += t.position + 1, this.regexIndex === this.count && (this.regexIndex = 0)), t; - } - - } - - function i(e, n) { - const t = e.input[e.index - 1], - r = e.input[e.index + e[0].length]; - "." !== t && "." !== r || n.ignoreMatch(); - } - - if (e.contains && e.contains.includes("self")) throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); - return function t(s, o) { - const l = s; - if (s.compiled) return l; - s.compiled = !0, s.__beforeBegin = null, s.keywords = s.keywords || s.beginKeywords; - let c = null; - if ("object" == typeof s.keywords && (c = s.keywords.$pattern, delete s.keywords.$pattern), s.keywords && (s.keywords = function (e, n) { - var t = {}; - return "string" == typeof e ? r("keyword", e) : Object.keys(e).forEach(function (n) { - r(n, e[n]); - }), t; - - function r(e, r) { - n && (r = r.toLowerCase()), r.split(" ").forEach(function (n) { - var r = n.split("|"); - t[r[0]] = [e, N(r[0], r[1])]; - }); - } - }(s.keywords, e.case_insensitive)), s.lexemes && c) throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) "); - return l.keywordPatternRe = n(s.lexemes || c || /\w+/, !0), o && (s.beginKeywords && (s.begin = "\\b(" + s.beginKeywords.split(" ").join("|") + ")(?=\\b|\\s)", s.__beforeBegin = i), s.begin || (s.begin = /\B|\b/), l.beginRe = n(s.begin), s.endSameAsBegin && (s.end = s.begin), s.end || s.endsWithParent || (s.end = /\B|\b/), s.end && (l.endRe = n(s.end)), l.terminator_end = g(s.end) || "", s.endsWithParent && o.terminator_end && (l.terminator_end += (s.end ? "|" : "") + o.terminator_end)), s.illegal && (l.illegalRe = n(s.illegal)), void 0 === s.relevance && (s.relevance = 1), s.contains || (s.contains = []), s.contains = [].concat(...s.contains.map(function (e) { - return function (e) { - return e.variants && !e.cached_variants && (e.cached_variants = e.variants.map(function (n) { - return r(e, { - variants: null - }, n); - })), e.cached_variants ? e.cached_variants : function e(n) { - return !!n && (n.endsWithParent || e(n.starts)); - }(e) ? r(e, { - starts: e.starts ? r(e.starts) : null - }) : Object.isFrozen(e) ? r(e) : e; - }("self" === e ? s : e); - })), s.contains.forEach(function (e) { - t(e, l); - }), s.starts && t(s.starts, o), l.matcher = function (e) { - const n = new a(); - return e.contains.forEach(e => n.addRule(e.begin, { - rule: e, - type: "begin" - })), e.terminator_end && n.addRule(e.terminator_end, { - type: "end" - }), e.illegal && n.addRule(e.illegal, { - type: "illegal" - }), n; - }(l), l; - }(e); - }(E), - w = "", - R = s || _, - O = {}, - M = new f.__emitter(f); - - !function () { - for (var e = [], n = R; n !== E; n = n.parent) n.className && e.unshift(n.className); - - e.forEach(e => M.openNode(e)); - }(); - var L = "", - j = 0, - A = 0, - S = 0, - I = !1; - - try { - for (R.matcher.considerAll();;) { - S++, I ? I = !1 : (R.matcher.lastIndex = A, R.matcher.considerAll()); - const e = R.matcher.exec(o); - - if (!e && R.matcher.resumingScanAtSamePosition()) { - L += o[A], A += 1; - continue; - } - - if (!e) break; - const n = x(o.substring(A, e.index), e); - A = e.index + n; - } - - return x(o.substr(A)), M.closeAllNodes(), M.finalize(), w = M.toHTML(), { - relevance: j, - value: w, - language: e, - illegal: !1, - emitter: M, - top: R - }; - } catch (n) { - if (n.message && n.message.includes("Illegal")) return { - illegal: !0, - illegalBy: { - msg: n.message, - context: o.slice(A - 100, A + 100), - mode: n.mode - }, - sofar: w, - relevance: 0, - value: k(o), - emitter: M - }; - if (l) return { - illegal: !1, - relevance: 0, - value: k(o), - emitter: M, - language: e, - top: R, - errorRaised: n - }; - throw n; - } - } - - function v(e, n) { - n = n || f.languages || Object.keys(i); - - var t = function (e) { - const n = { - relevance: 0, - emitter: new f.__emitter(f), - value: k(e), - illegal: !1, - top: h - }; - return n.emitter.addText(e), n; - }(e), - r = t; - - return n.filter(y).filter(A).forEach(function (n) { - var a = b(n, e, !1); - a.language = n, a.relevance > r.relevance && (r = a), a.relevance > t.relevance && (r = t, t = a); - }), r.language && (t.second_best = r), t; - } - - function x(e) { - return f.tabReplace || f.useBR ? e.replace(c, e => "\n" === e ? f.useBR ? "
" : e : f.tabReplace ? e.replace(/\t/g, f.tabReplace) : e) : e; - } - - function E(e) { - let n = null; - - const t = function (e) { - var n = e.className + " "; - n += e.parentNode ? e.parentNode.className : ""; - const t = f.languageDetectRe.exec(n); - - if (t) { - var r = y(t[1]); - return r || (console.warn(d.replace("{}", t[1])), console.warn("Falling back to no-highlight mode for this block.", e)), r ? t[1] : "no-highlight"; - } - - return n.split(/\s+/).find(e => p(e) || y(e)); - }(e); - - if (p(t)) return; - S("before:highlightBlock", { - block: e, - language: t - }), f.useBR ? (n = document.createElement("div")).innerHTML = e.innerHTML.replace(/\n/g, "").replace(//g, "\n") : n = e; - const r = n.textContent, - a = t ? m(t, r, !0) : v(r), - i = M(n); - - if (i.length) { - const e = document.createElement("div"); - e.innerHTML = a.value, a.value = L(i, M(e), r); - } - - a.value = x(a.value), S("after:highlightBlock", { - block: e, - result: a - }), e.innerHTML = a.value, e.className = function (e, n, t) { - var r = n ? s[n] : t, - a = [e.trim()]; - return e.match(/\bhljs\b/) || a.push("hljs"), e.includes(r) || a.push(r), a.join(" ").trim(); - }(e.className, t, a.language), e.result = { - language: a.language, - re: a.relevance, - relavance: a.relevance - }, a.second_best && (e.second_best = { - language: a.second_best.language, - re: a.second_best.relevance, - relavance: a.second_best.relevance - }); - } - - const w = () => { - if (!w.called) { - w.called = !0; - var e = document.querySelectorAll("pre code"); - a.forEach.call(e, E); - } - }; - - function y(e) { - return e = (e || "").toLowerCase(), i[e] || i[s[e]]; - } - - function j(e, { - languageName: n - }) { - "string" == typeof e && (e = [e]), e.forEach(e => { - s[e] = n; - }); - } - - function A(e) { - var n = y(e); - return n && !n.disableAutodetect; - } - - function S(e, n) { - var t = e; - o.forEach(function (e) { - e[t] && e[t](n); - }); - } - - Object.assign(t, { - highlight: m, - highlightAuto: v, - fixMarkup: function (e) { - return console.warn("fixMarkup is deprecated and will be removed entirely in v11.0"), console.warn("Please see https://github.com/highlightjs/highlight.js/issues/2534"), x(e); - }, - highlightBlock: E, - configure: function (e) { - f = O(f, e); - }, - initHighlighting: w, - initHighlightingOnLoad: function () { - window.addEventListener("DOMContentLoaded", w, !1); - }, - registerLanguage: function (e, n) { - var r = null; - - try { - r = n(t); - } catch (n) { - if (console.error("Language definition for '{}' could not be registered.".replace("{}", e)), !l) throw n; - console.error(n), r = h; - } - - r.name || (r.name = e), i[e] = r, r.rawDefinition = n.bind(null, t), r.aliases && j(r.aliases, { - languageName: e - }); - }, - listLanguages: function () { - return Object.keys(i); - }, - getLanguage: y, - registerAliases: j, - requireLanguage: function (e) { - var n = y(e); - if (n) return n; - throw Error("The '{}' language is required, but not loaded.".replace("{}", e)); - }, - autoDetection: A, - inherit: O, - addPlugin: function (e) { - o.push(e); - }, - vuePlugin: R - }), t.debugMode = function () { - l = !1; - }, t.safeMode = function () { - l = !0; - }, t.versionString = "10.2.0"; - - for (const n in _) "object" == typeof _[n] && e(_[n]); - - return Object.assign(t, _), t; - }({}); -}(); - -"object" == typeof exports && "undefined" != typeof module && (module.exports = hljs); -hljs.registerLanguage("apache", function () { - - return function (e) { - var n = { - className: "number", - begin: "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?" - }; - return { - name: "Apache config", - aliases: ["apacheconf"], - case_insensitive: !0, - contains: [e.HASH_COMMENT_MODE, { - className: "section", - begin: "", - contains: [n, { - className: "number", - begin: ":\\d{1,5}" - }, e.inherit(e.QUOTE_STRING_MODE, { - relevance: 0 - })] - }, { - className: "attribute", - begin: /\w+/, - relevance: 0, - keywords: { - nomarkup: "order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername" - }, - starts: { - end: /$/, - relevance: 0, - keywords: { - literal: "on off all deny allow" - }, - contains: [{ - className: "meta", - begin: "\\s\\[", - end: "\\]$" - }, { - className: "variable", - begin: "[\\$%]\\{", - end: "\\}", - contains: ["self", { - className: "number", - begin: "[\\$%]\\d+" - }] - }, n, { - className: "number", - begin: "\\d+" - }, e.QUOTE_STRING_MODE] - } - }], - illegal: /\S/ - }; - }; -}()); -hljs.registerLanguage("bash", function () { - - return function (e) { - const s = {}; - Object.assign(s, { - className: "variable", - variants: [{ - begin: /\$[\w\d#@][\w\d_]*/ - }, { - begin: /\$\{/, - end: /\}/, - contains: [{ - begin: /:-/, - contains: [s] - }] - }] - }); - const t = { - className: "subst", - begin: /\$\(/, - end: /\)/, - contains: [e.BACKSLASH_ESCAPE] - }, - n = { - className: "string", - begin: /"/, - end: /"/, - contains: [e.BACKSLASH_ESCAPE, s, t] - }; - t.contains.push(n); - const a = { - begin: /\$\(\(/, - end: /\)\)/, - contains: [{ - begin: /\d+#[0-9a-f]+/, - className: "number" - }, e.NUMBER_MODE, s] - }, - i = e.SHEBANG({ - binary: "(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)", - relevance: 10 - }), - c = { - className: "function", - begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/, - returnBegin: !0, - contains: [e.inherit(e.TITLE_MODE, { - begin: /\w[\w\d_]*/ - })], - relevance: 0 - }; - return { - name: "Bash", - aliases: ["sh", "zsh"], - keywords: { - $pattern: /\b-?[a-z\._-]+\b/, - keyword: "if then else elif fi for while in do done case esac function", - literal: "true false", - built_in: "break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp", - _: "-ne -eq -lt -gt -f -d -e -s -l -a" - }, - contains: [i, e.SHEBANG(), c, a, e.HASH_COMMENT_MODE, n, { - className: "", - begin: /\\"/ - }, { - className: "string", - begin: /'/, - end: /'/ - }, s] - }; - }; -}()); -hljs.registerLanguage("c-like", function () { - - return function (e) { - function t(e) { - return "(?:" + e + ")?"; - } - - var n = "(decltype\\(auto\\)|" + t("[a-zA-Z_]\\w*::") + "[a-zA-Z_]\\w*" + t("<.*?>") + ")", - r = { - className: "keyword", - begin: "\\b[a-z\\d_]*_t\\b" - }, - a = { - className: "string", - variants: [{ - begin: '(u8?|U|L)?"', - end: '"', - illegal: "\\n", - contains: [e.BACKSLASH_ESCAPE] - }, { - begin: "(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", - end: "'", - illegal: "." - }, e.END_SAME_AS_BEGIN({ - begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/, - end: /\)([^()\\ ]{0,16})"/ - })] - }, - i = { - className: "number", - variants: [{ - begin: "\\b(0b[01']+)" - }, { - begin: "(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)" - }, { - begin: "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" - }], - relevance: 0 - }, - s = { - className: "meta", - begin: /#\s*[a-z]+\b/, - end: /$/, - keywords: { - "meta-keyword": "if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" - }, - contains: [{ - begin: /\\\n/, - relevance: 0 - }, e.inherit(a, { - className: "meta-string" - }), { - className: "meta-string", - begin: /<.*?>/, - end: /$/, - illegal: "\\n" - }, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE] - }, - o = { - className: "title", - begin: t("[a-zA-Z_]\\w*::") + e.IDENT_RE, - relevance: 0 - }, - c = t("[a-zA-Z_]\\w*::") + e.IDENT_RE + "\\s*\\(", - l = { - keyword: "int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq", - built_in: "std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary", - literal: "true false nullptr NULL" - }, - d = [r, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, i, a], - _ = { - variants: [{ - begin: /=/, - end: /;/ - }, { - begin: /\(/, - end: /\)/ - }, { - beginKeywords: "new throw return else", - end: /;/ - }], - keywords: l, - contains: d.concat([{ - begin: /\(/, - end: /\)/, - keywords: l, - contains: d.concat(["self"]), - relevance: 0 - }]), - relevance: 0 - }, - u = { - className: "function", - begin: "(" + n + "[\\*&\\s]+)+" + c, - returnBegin: !0, - end: /[{;=]/, - excludeEnd: !0, - keywords: l, - illegal: /[^\w\s\*&:<>]/, - contains: [{ - begin: "decltype\\(auto\\)", - keywords: l, - relevance: 0 - }, { - begin: c, - returnBegin: !0, - contains: [o], - relevance: 0 - }, { - className: "params", - begin: /\(/, - end: /\)/, - keywords: l, - relevance: 0, - contains: [e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, a, i, r, { - begin: /\(/, - end: /\)/, - keywords: l, - relevance: 0, - contains: ["self", e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, a, i, r] - }] - }, r, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, s] - }; - return { - aliases: ["c", "cc", "h", "c++", "h++", "hpp", "hh", "hxx", "cxx"], - keywords: l, - disableAutodetect: !0, - illegal: "", - keywords: l, - contains: ["self", r] - }, { - begin: e.IDENT_RE + "::", - keywords: l - }, { - className: "class", - beginKeywords: "class struct", - end: /[{;:]/, - contains: [{ - begin: //, - contains: ["self"] - }, e.TITLE_MODE] - }]), - exports: { - preprocessor: s, - strings: a, - keywords: l - } - }; - }; -}()); -hljs.registerLanguage("c", function () { - - return function (e) { - var n = e.requireLanguage("c-like").rawDefinition(); - return n.name = "C", n.aliases = ["c", "h"], n; - }; -}()); -hljs.registerLanguage("coffeescript", function () { - - const e = ["as", "in", "of", "if", "for", "while", "finally", "var", "new", "function", "do", "return", "void", "else", "break", "catch", "instanceof", "with", "throw", "case", "default", "try", "switch", "continue", "typeof", "delete", "let", "yield", "const", "class", "debugger", "async", "await", "static", "import", "from", "export", "extends"], - n = ["true", "false", "null", "undefined", "NaN", "Infinity"], - a = [].concat(["setInterval", "setTimeout", "clearInterval", "clearTimeout", "require", "exports", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape"], ["arguments", "this", "super", "console", "window", "document", "localStorage", "module", "global"], ["Intl", "DataView", "Number", "Math", "Date", "String", "RegExp", "Object", "Function", "Boolean", "Error", "Symbol", "Set", "Map", "WeakSet", "WeakMap", "Proxy", "Reflect", "JSON", "Promise", "Float64Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Float32Array", "Array", "Uint8Array", "Uint8ClampedArray", "ArrayBuffer"], ["EvalError", "InternalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError"]); - return function (r) { - var t = { - keyword: e.concat(["then", "unless", "until", "loop", "by", "when", "and", "or", "is", "isnt", "not"]).filter((e => n => !e.includes(n))(["var", "const", "let", "function", "static"])).join(" "), - literal: n.concat(["yes", "no", "on", "off"]).join(" "), - built_in: a.concat(["npm", "print"]).join(" ") - }, - i = "[A-Za-z$_][0-9A-Za-z$_]*", - s = { - className: "subst", - begin: /#\{/, - end: /}/, - keywords: t - }, - o = [r.BINARY_NUMBER_MODE, r.inherit(r.C_NUMBER_MODE, { - starts: { - end: "(\\s*/)?", - relevance: 0 - } - }), { - className: "string", - variants: [{ - begin: /'''/, - end: /'''/, - contains: [r.BACKSLASH_ESCAPE] - }, { - begin: /'/, - end: /'/, - contains: [r.BACKSLASH_ESCAPE] - }, { - begin: /"""/, - end: /"""/, - contains: [r.BACKSLASH_ESCAPE, s] - }, { - begin: /"/, - end: /"/, - contains: [r.BACKSLASH_ESCAPE, s] - }] - }, { - className: "regexp", - variants: [{ - begin: "///", - end: "///", - contains: [s, r.HASH_COMMENT_MODE] - }, { - begin: "//[gim]{0,3}(?=\\W)", - relevance: 0 - }, { - begin: /\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/ - }] - }, { - begin: "@" + i - }, { - subLanguage: "javascript", - excludeBegin: !0, - excludeEnd: !0, - variants: [{ - begin: "```", - end: "```" - }, { - begin: "`", - end: "`" - }] - }]; - s.contains = o; - var c = r.inherit(r.TITLE_MODE, { - begin: i - }), - l = { - className: "params", - begin: "\\([^\\(]", - returnBegin: !0, - contains: [{ - begin: /\(/, - end: /\)/, - keywords: t, - contains: ["self"].concat(o) - }] - }; - return { - name: "CoffeeScript", - aliases: ["coffee", "cson", "iced"], - keywords: t, - illegal: /\/\*/, - contains: o.concat([r.COMMENT("###", "###"), r.HASH_COMMENT_MODE, { - className: "function", - begin: "^\\s*" + i + "\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>", - end: "[-=]>", - returnBegin: !0, - contains: [c, l] - }, { - begin: /[:\(,=]\s*/, - relevance: 0, - contains: [{ - className: "function", - begin: "(\\(.*\\))?\\s*\\B[-=]>", - end: "[-=]>", - returnBegin: !0, - contains: [l] - }] - }, { - className: "class", - beginKeywords: "class", - end: "$", - illegal: /[:="\[\]]/, - contains: [{ - beginKeywords: "extends", - endsWithParent: !0, - illegal: /[:="\[\]]/, - contains: [c] - }, c] - }, { - begin: i + ":", - end: ":", - returnBegin: !0, - returnEnd: !0, - relevance: 0 - }]) - }; - }; -}()); -hljs.registerLanguage("cpp", function () { - - return function (e) { - var i = e.requireLanguage("c-like").rawDefinition(); - return i.disableAutodetect = !1, i.name = "C++", i.aliases = ["cc", "c++", "h++", "hpp", "hh", "hxx", "cxx"], i; - }; -}()); -hljs.registerLanguage("csharp", function () { - - return function (e) { - var n = { - keyword: "abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in init int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield", - literal: "null false true" - }, - i = e.inherit(e.TITLE_MODE, { - begin: "[a-zA-Z](\\.?\\w)*" - }), - a = { - className: "number", - variants: [{ - begin: "\\b(0b[01']+)" - }, { - begin: "(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)" - }, { - begin: "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" - }], - relevance: 0 - }, - s = { - className: "string", - begin: '@"', - end: '"', - contains: [{ - begin: '""' - }] - }, - t = e.inherit(s, { - illegal: /\n/ - }), - l = { - className: "subst", - begin: "{", - end: "}", - keywords: n - }, - r = e.inherit(l, { - illegal: /\n/ - }), - c = { - className: "string", - begin: /\$"/, - end: '"', - illegal: /\n/, - contains: [{ - begin: "{{" - }, { - begin: "}}" - }, e.BACKSLASH_ESCAPE, r] - }, - o = { - className: "string", - begin: /\$@"/, - end: '"', - contains: [{ - begin: "{{" - }, { - begin: "}}" - }, { - begin: '""' - }, l] - }, - g = e.inherit(o, { - illegal: /\n/, - contains: [{ - begin: "{{" - }, { - begin: "}}" - }, { - begin: '""' - }, r] - }); - l.contains = [o, c, s, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, a, e.C_BLOCK_COMMENT_MODE], r.contains = [g, c, t, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, a, e.inherit(e.C_BLOCK_COMMENT_MODE, { - illegal: /\n/ - })]; - - var d = { - variants: [o, c, s, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE] - }, - E = { - begin: "<", - end: ">", - contains: [{ - beginKeywords: "in out" - }, i] - }, - _ = e.IDENT_RE + "(<" + e.IDENT_RE + "(\\s*,\\s*" + e.IDENT_RE + ")*>)?(\\[\\])?", - b = { - begin: "@" + e.IDENT_RE, - relevance: 0 - }; - - return { - name: "C#", - aliases: ["cs", "c#"], - keywords: n, - illegal: /::/, - contains: [e.COMMENT("///", "$", { - returnBegin: !0, - contains: [{ - className: "doctag", - variants: [{ - begin: "///", - relevance: 0 - }, { - begin: "\x3c!--|--\x3e" - }, { - begin: "" - }] - }] - }), e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, { - className: "meta", - begin: "#", - end: "$", - keywords: { - "meta-keyword": "if else elif endif define undef warning error line region endregion pragma checksum" - } - }, d, a, { - beginKeywords: "class interface", - end: /[{;=]/, - illegal: /[^\s:,]/, - contains: [{ - beginKeywords: "where class" - }, i, E, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE] - }, { - beginKeywords: "namespace", - end: /[{;=]/, - illegal: /[^\s:]/, - contains: [i, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE] - }, { - beginKeywords: "record", - end: /[{;=]/, - illegal: /[^\s:]/, - contains: [i, E, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE] - }, { - className: "meta", - begin: "^\\s*\\[", - excludeBegin: !0, - end: "\\]", - excludeEnd: !0, - contains: [{ - className: "meta-string", - begin: /"/, - end: /"/ - }] - }, { - beginKeywords: "new return throw await else", - relevance: 0 - }, { - className: "function", - begin: "(" + _ + "\\s+)+" + e.IDENT_RE + "\\s*(\\<.+\\>)?\\s*\\(", - returnBegin: !0, - end: /\s*[{;=]/, - excludeEnd: !0, - keywords: n, - contains: [{ - begin: e.IDENT_RE + "\\s*(\\<.+\\>)?\\s*\\(", - returnBegin: !0, - contains: [e.TITLE_MODE, E], - relevance: 0 - }, { - className: "params", - begin: /\(/, - end: /\)/, - excludeBegin: !0, - excludeEnd: !0, - keywords: n, - relevance: 0, - contains: [d, a, e.C_BLOCK_COMMENT_MODE] - }, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE] - }, b] - }; - }; -}()); -hljs.registerLanguage("css", function () { - - return function (e) { - var n = { - begin: /(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/, - returnBegin: !0, - end: ";", - endsWithParent: !0, - contains: [{ - className: "attribute", - begin: /\S/, - end: ":", - excludeEnd: !0, - starts: { - endsWithParent: !0, - excludeEnd: !0, - contains: [{ - begin: /[\w-]+\(/, - returnBegin: !0, - contains: [{ - className: "built_in", - begin: /[\w-]+/ - }, { - begin: /\(/, - end: /\)/, - contains: [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, e.CSS_NUMBER_MODE] - }] - }, e.CSS_NUMBER_MODE, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, e.C_BLOCK_COMMENT_MODE, { - className: "number", - begin: "#[0-9A-Fa-f]+" - }, { - className: "meta", - begin: "!important" - }] - } - }] - }; - return { - name: "CSS", - case_insensitive: !0, - illegal: /[=\/|'\$]/, - contains: [e.C_BLOCK_COMMENT_MODE, { - className: "selector-id", - begin: /#[A-Za-z0-9_-]+/ - }, { - className: "selector-class", - begin: /\.[A-Za-z0-9_-]+/ - }, { - className: "selector-attr", - begin: /\[/, - end: /\]/, - illegal: "$", - contains: [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE] - }, { - className: "selector-pseudo", - begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ - }, { - begin: "@(page|font-face)", - lexemes: "@[a-z-]+", - keywords: "@page @font-face" - }, { - begin: "@", - end: "[{;]", - illegal: /:/, - returnBegin: !0, - contains: [{ - className: "keyword", - begin: /@\-?\w[\w]*(\-\w+)*/ - }, { - begin: /\s/, - endsWithParent: !0, - excludeEnd: !0, - relevance: 0, - keywords: "and or not only", - contains: [{ - begin: /[a-z-]+:/, - className: "attribute" - }, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, e.CSS_NUMBER_MODE] - }] - }, { - className: "selector-tag", - begin: "[a-zA-Z-][a-zA-Z0-9_-]*", - relevance: 0 - }, { - begin: "{", - end: "}", - illegal: /\S/, - contains: [e.C_BLOCK_COMMENT_MODE, n] - }] - }; - }; -}()); -hljs.registerLanguage("diff", function () { - - return function (e) { - return { - name: "Diff", - aliases: ["patch"], - contains: [{ - className: "meta", - relevance: 10, - variants: [{ - begin: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/ - }, { - begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/ - }, { - begin: /^\-\-\- +\d+,\d+ +\-\-\-\-$/ - }] - }, { - className: "comment", - variants: [{ - begin: /Index: /, - end: /$/ - }, { - begin: /={3,}/, - end: /$/ - }, { - begin: /^\-{3}/, - end: /$/ - }, { - begin: /^\*{3} /, - end: /$/ - }, { - begin: /^\+{3}/, - end: /$/ - }, { - begin: /^\*{15}$/ - }] - }, { - className: "addition", - begin: "^\\+", - end: "$" - }, { - className: "deletion", - begin: "^\\-", - end: "$" - }, { - className: "addition", - begin: "^\\!", - end: "$" - }] - }; - }; -}()); -hljs.registerLanguage("go", function () { - - return function (e) { - var n = { - keyword: "break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune", - literal: "true false iota nil", - built_in: "append cap close complex copy imag len make new panic print println real recover delete" - }; - return { - name: "Go", - aliases: ["golang"], - keywords: n, - illegal: " e(n)).join(""); - } - - return function (a) { - var s = { - className: "number", - relevance: 0, - variants: [{ - begin: /([\+\-]+)?[\d]+_[\d_]+/ - }, { - begin: a.NUMBER_RE - }] - }, - i = a.COMMENT(); - i.variants = [{ - begin: /;/, - end: /$/ - }, { - begin: /#/, - end: /$/ - }]; - var t = { - className: "variable", - variants: [{ - begin: /\$[\w\d"][\w\d_]*/ - }, { - begin: /\$\{(.*?)}/ - }] - }, - r = { - className: "literal", - begin: /\bon|off|true|false|yes|no\b/ - }, - l = { - className: "string", - contains: [a.BACKSLASH_ESCAPE], - variants: [{ - begin: "'''", - end: "'''", - relevance: 10 - }, { - begin: '"""', - end: '"""', - relevance: 10 - }, { - begin: '"', - end: '"' - }, { - begin: "'", - end: "'" - }] - }, - c = { - begin: /\[/, - end: /\]/, - contains: [i, r, t, l, s, "self"], - relevance: 0 - }, - g = "(" + [/[A-Za-z0-9_-]+/, /"(\\"|[^"])*"/, /'[^']*'/].map(n => e(n)).join("|") + ")"; - return { - name: "TOML, also INI", - aliases: ["toml"], - case_insensitive: !0, - illegal: /\S/, - contains: [i, { - className: "section", - begin: /\[+/, - end: /\]+/ - }, { - begin: n(g, "(\\s*\\.\\s*", g, ")*", n("(?=", /\s*=\s*[^#\s]/, ")")), - className: "attr", - starts: { - end: /$/, - contains: [i, c, r, t, l, s] - } - }] - }; - }; -}()); -hljs.registerLanguage("java", function () { - - function e(e) { - return e ? "string" == typeof e ? e : e.source : null; - } - - function n(e) { - return a("(", e, ")?"); - } - - function a(...n) { - return n.map(n => e(n)).join(""); - } - - function s(...n) { - return "(" + n.map(n => e(n)).join("|") + ")"; - } - - return function (e) { - var t = "false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do", - i = { - className: "meta", - begin: "@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*", - contains: [{ - begin: /\(/, - end: /\)/, - contains: ["self"] - }] - }, - r = e => a("[", e, "]+([", e, "_]*[", e, "]+)?"), - c = { - className: "number", - variants: [{ - begin: `\\b(0[bB]${r("01")})[lL]?` - }, { - begin: `\\b(0${r("0-7")})[dDfFlL]?` - }, { - begin: a(/\b0[xX]/, s(a(r("a-fA-F0-9"), /\./, r("a-fA-F0-9")), a(r("a-fA-F0-9"), /\.?/), a(/\./, r("a-fA-F0-9"))), /([pP][+-]?(\d+))?/, /[fFdDlL]?/) - }, { - begin: a(/\b/, s(a(/\d*\./, r("\\d")), r("\\d")), /[eE][+-]?[\d]+[dDfF]?/) - }, { - begin: a(/\b/, r(/\d/), n(/\.?/), n(r(/\d/)), /[dDfFlL]?/) - }], - relevance: 0 - }; - - return { - name: "Java", - aliases: ["jsp"], - keywords: t, - illegal: /<\/|#/, - contains: [e.COMMENT("/\\*\\*", "\\*/", { - relevance: 0, - contains: [{ - begin: /\w+@/, - relevance: 0 - }, { - className: "doctag", - begin: "@[A-Za-z]+" - }] - }), e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, { - className: "class", - beginKeywords: "class interface enum", - end: /[{;=]/, - excludeEnd: !0, - keywords: "class interface enum", - illegal: /[:"\[\]]/, - contains: [{ - beginKeywords: "extends implements" - }, e.UNDERSCORE_TITLE_MODE] - }, { - beginKeywords: "new throw return else", - relevance: 0 - }, { - className: "function", - begin: "([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+" + e.UNDERSCORE_IDENT_RE + "\\s*\\(", - returnBegin: !0, - end: /[{;=]/, - excludeEnd: !0, - keywords: t, - contains: [{ - begin: e.UNDERSCORE_IDENT_RE + "\\s*\\(", - returnBegin: !0, - relevance: 0, - contains: [e.UNDERSCORE_TITLE_MODE] - }, { - className: "params", - begin: /\(/, - end: /\)/, - keywords: t, - relevance: 0, - contains: [i, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, e.C_NUMBER_MODE, e.C_BLOCK_COMMENT_MODE] - }, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE] - }, c, i] - }; - }; -}()); -hljs.registerLanguage("javascript", function () { - - const e = ["as", "in", "of", "if", "for", "while", "finally", "var", "new", "function", "do", "return", "void", "else", "break", "catch", "instanceof", "with", "throw", "case", "default", "try", "switch", "continue", "typeof", "delete", "let", "yield", "const", "class", "debugger", "async", "await", "static", "import", "from", "export", "extends"], - n = ["true", "false", "null", "undefined", "NaN", "Infinity"], - a = [].concat(["setInterval", "setTimeout", "clearInterval", "clearTimeout", "require", "exports", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape"], ["arguments", "this", "super", "console", "window", "document", "localStorage", "module", "global"], ["Intl", "DataView", "Number", "Math", "Date", "String", "RegExp", "Object", "Function", "Boolean", "Error", "Symbol", "Set", "Map", "WeakSet", "WeakMap", "Proxy", "Reflect", "JSON", "Promise", "Float64Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Float32Array", "Array", "Uint8Array", "Uint8ClampedArray", "ArrayBuffer"], ["EvalError", "InternalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError"]); - - function s(e) { - return r("(?=", e, ")"); - } - - function r(...e) { - return e.map(e => function (e) { - return e ? "string" == typeof e ? e : e.source : null; - }(e)).join(""); - } - - return function (t) { - var i = "[A-Za-z$_][0-9A-Za-z$_]*", - c = { - begin: /<[A-Za-z0-9\\._:-]+/, - end: /\/[A-Za-z0-9\\._:-]+>|\/>/ - }, - o = { - $pattern: "[A-Za-z$_][0-9A-Za-z$_]*", - keyword: e.join(" "), - literal: n.join(" "), - built_in: a.join(" ") - }, - l = { - className: "number", - variants: [{ - begin: "\\b(0[bB][01]+)n?" - }, { - begin: "\\b(0[oO][0-7]+)n?" - }, { - begin: t.C_NUMBER_RE + "n?" - }], - relevance: 0 - }, - E = { - className: "subst", - begin: "\\$\\{", - end: "\\}", - keywords: o, - contains: [] - }, - d = { - begin: "html`", - end: "", - starts: { - end: "`", - returnEnd: !1, - contains: [t.BACKSLASH_ESCAPE, E], - subLanguage: "xml" - } - }, - g = { - begin: "css`", - end: "", - starts: { - end: "`", - returnEnd: !1, - contains: [t.BACKSLASH_ESCAPE, E], - subLanguage: "css" - } - }, - u = { - className: "string", - begin: "`", - end: "`", - contains: [t.BACKSLASH_ESCAPE, E] - }; - E.contains = [t.APOS_STRING_MODE, t.QUOTE_STRING_MODE, d, g, u, l, t.REGEXP_MODE]; - var b = E.contains.concat([{ - begin: /\(/, - end: /\)/, - contains: ["self"].concat(E.contains, [t.C_BLOCK_COMMENT_MODE, t.C_LINE_COMMENT_MODE]) - }, t.C_BLOCK_COMMENT_MODE, t.C_LINE_COMMENT_MODE]), - _ = { - className: "params", - begin: /\(/, - end: /\)/, - excludeBegin: !0, - excludeEnd: !0, - contains: b - }; - return { - name: "JavaScript", - aliases: ["js", "jsx", "mjs", "cjs"], - keywords: o, - contains: [t.SHEBANG({ - binary: "node", - relevance: 5 - }), { - className: "meta", - relevance: 10, - begin: /^\s*['"]use (strict|asm)['"]/ - }, t.APOS_STRING_MODE, t.QUOTE_STRING_MODE, d, g, u, t.C_LINE_COMMENT_MODE, t.COMMENT("/\\*\\*", "\\*/", { - relevance: 0, - contains: [{ - className: "doctag", - begin: "@[A-Za-z]+", - contains: [{ - className: "type", - begin: "\\{", - end: "\\}", - relevance: 0 - }, { - className: "variable", - begin: i + "(?=\\s*(-)|$)", - endsParent: !0, - relevance: 0 - }, { - begin: /(?=[^\n])\s/, - relevance: 0 - }] - }] - }), t.C_BLOCK_COMMENT_MODE, l, { - begin: r(/[{,\n]\s*/, s(r(/(((\/\/.*$)|(\/\*(.|\n)*\*\/))\s*)*/, i + "\\s*:"))), - relevance: 0, - contains: [{ - className: "attr", - begin: i + s("\\s*:"), - relevance: 0 - }] - }, { - begin: "(" + t.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*", - keywords: "return throw case", - contains: [t.C_LINE_COMMENT_MODE, t.C_BLOCK_COMMENT_MODE, t.REGEXP_MODE, { - className: "function", - begin: "(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|" + t.UNDERSCORE_IDENT_RE + ")\\s*=>", - returnBegin: !0, - end: "\\s*=>", - contains: [{ - className: "params", - variants: [{ - begin: t.UNDERSCORE_IDENT_RE - }, { - className: null, - begin: /\(\s*\)/, - skip: !0 - }, { - begin: /\(/, - end: /\)/, - excludeBegin: !0, - excludeEnd: !0, - keywords: o, - contains: b - }] - }] - }, { - begin: /,/, - relevance: 0 - }, { - className: "", - begin: /\s/, - end: /\s*/, - skip: !0 - }, { - variants: [{ - begin: "<>", - end: "" - }, { - begin: c.begin, - end: c.end - }], - subLanguage: "xml", - contains: [{ - begin: c.begin, - end: c.end, - skip: !0, - contains: ["self"] - }] - }], - relevance: 0 - }, { - className: "function", - beginKeywords: "function", - end: /\{/, - excludeEnd: !0, - contains: [t.inherit(t.TITLE_MODE, { - begin: i - }), _], - illegal: /\[|%/ - }, { - begin: /\$[(.]/ - }, t.METHOD_GUARD, { - className: "class", - beginKeywords: "class", - end: /[{;=]/, - excludeEnd: !0, - illegal: /[:"\[\]]/, - contains: [{ - beginKeywords: "extends" - }, t.UNDERSCORE_TITLE_MODE] - }, { - beginKeywords: "constructor", - end: /\{/, - excludeEnd: !0 - }, { - begin: "(get|set)\\s+(?=" + i + "\\()", - end: /{/, - keywords: "get set", - contains: [t.inherit(t.TITLE_MODE, { - begin: i - }), { - begin: /\(\)/ - }, _] - }], - illegal: /#(?!!)/ - }; - }; -}()); -hljs.registerLanguage("json", function () { - - return function (n) { - var e = { - literal: "true false null" - }, - i = [n.C_LINE_COMMENT_MODE, n.C_BLOCK_COMMENT_MODE], - t = [n.QUOTE_STRING_MODE, n.C_NUMBER_MODE], - a = { - end: ",", - endsWithParent: !0, - excludeEnd: !0, - contains: t, - keywords: e - }, - l = { - begin: "{", - end: "}", - contains: [{ - className: "attr", - begin: /"/, - end: /"/, - contains: [n.BACKSLASH_ESCAPE], - illegal: "\\n" - }, n.inherit(a, { - begin: /:/ - })].concat(i), - illegal: "\\S" - }, - s = { - begin: "\\[", - end: "\\]", - contains: [n.inherit(a)], - illegal: "\\S" - }; - return t.push(l, s), i.forEach(function (n) { - t.push(n); - }), { - name: "JSON", - contains: t, - keywords: e, - illegal: "\\S" - }; - }; -}()); -hljs.registerLanguage("kotlin", function () { - - return function (e) { - var n = { - keyword: "abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", - built_in: "Byte Short Char Int Long Boolean Float Double Void Unit Nothing", - literal: "true false null" - }, - a = { - className: "symbol", - begin: e.UNDERSCORE_IDENT_RE + "@" - }, - i = { - className: "subst", - begin: "\\${", - end: "}", - contains: [e.C_NUMBER_MODE] - }, - s = { - className: "variable", - begin: "\\$" + e.UNDERSCORE_IDENT_RE - }, - t = { - className: "string", - variants: [{ - begin: '"""', - end: '"""(?=[^"])', - contains: [s, i] - }, { - begin: "'", - end: "'", - illegal: /\n/, - contains: [e.BACKSLASH_ESCAPE] - }, { - begin: '"', - end: '"', - illegal: /\n/, - contains: [e.BACKSLASH_ESCAPE, s, i] - }] - }; - i.contains.push(t); - var r = { - className: "meta", - begin: "@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*" + e.UNDERSCORE_IDENT_RE + ")?" - }, - l = { - className: "meta", - begin: "@" + e.UNDERSCORE_IDENT_RE, - contains: [{ - begin: /\(/, - end: /\)/, - contains: [e.inherit(t, { - className: "meta-string" - })] - }] - }, - c = e.COMMENT("/\\*", "\\*/", { - contains: [e.C_BLOCK_COMMENT_MODE] - }), - o = { - variants: [{ - className: "type", - begin: e.UNDERSCORE_IDENT_RE - }, { - begin: /\(/, - end: /\)/, - contains: [] - }] - }, - d = o; - return d.variants[1].contains = [o], o.variants[1].contains = [d], { - name: "Kotlin", - aliases: ["kt"], - keywords: n, - contains: [e.COMMENT("/\\*\\*", "\\*/", { - relevance: 0, - contains: [{ - className: "doctag", - begin: "@[A-Za-z]+" - }] - }), e.C_LINE_COMMENT_MODE, c, { - className: "keyword", - begin: /\b(break|continue|return|this)\b/, - starts: { - contains: [{ - className: "symbol", - begin: /@\w+/ - }] - } - }, a, r, l, { - className: "function", - beginKeywords: "fun", - end: "[(]|$", - returnBegin: !0, - excludeEnd: !0, - keywords: n, - illegal: /fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/, - relevance: 5, - contains: [{ - begin: e.UNDERSCORE_IDENT_RE + "\\s*\\(", - returnBegin: !0, - relevance: 0, - contains: [e.UNDERSCORE_TITLE_MODE] - }, { - className: "type", - begin: //, - keywords: "reified", - relevance: 0 - }, { - className: "params", - begin: /\(/, - end: /\)/, - endsParent: !0, - keywords: n, - relevance: 0, - contains: [{ - begin: /:/, - end: /[=,\/]/, - endsWithParent: !0, - contains: [o, e.C_LINE_COMMENT_MODE, c], - relevance: 0 - }, e.C_LINE_COMMENT_MODE, c, r, l, t, e.C_NUMBER_MODE] - }, c] - }, { - className: "class", - beginKeywords: "class interface trait", - end: /[:\{(]|$/, - excludeEnd: !0, - illegal: "extends implements", - contains: [{ - beginKeywords: "public protected internal private constructor" - }, e.UNDERSCORE_TITLE_MODE, { - className: "type", - begin: //, - excludeBegin: !0, - excludeEnd: !0, - relevance: 0 - }, { - className: "type", - begin: /[,:]\s*/, - end: /[<\(,]|$/, - excludeBegin: !0, - returnEnd: !0 - }, r, l] - }, t, { - className: "meta", - begin: "^#!/usr/bin/env", - end: "$", - illegal: "\n" - }, { - className: "number", - begin: "\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?", - relevance: 0 - }] - }; - }; -}()); -hljs.registerLanguage("less", function () { - - return function (e) { - var n = "([\\w-]+|@{[\\w-]+})", - a = [], - s = [], - t = function (e) { - return { - className: "string", - begin: "~?" + e + ".*?" + e - }; - }, - r = function (e, n, a) { - return { - className: e, - begin: n, - relevance: a - }; - }, - i = { - begin: "\\(", - end: "\\)", - contains: s, - relevance: 0 - }; - - s.push(e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, t("'"), t('"'), e.CSS_NUMBER_MODE, { - begin: "(url|data-uri)\\(", - starts: { - className: "string", - end: "[\\)\\n]", - excludeEnd: !0 - } - }, r("number", "#[0-9A-Fa-f]+\\b"), i, r("variable", "@@?[\\w-]+", 10), r("variable", "@{[\\w-]+}"), r("built_in", "~?`[^`]*?`"), { - className: "attribute", - begin: "[\\w-]+\\s*:", - end: ":", - returnBegin: !0, - excludeEnd: !0 - }, { - className: "meta", - begin: "!important" - }); - var c = s.concat({ - begin: "{", - end: "}", - contains: a - }), - l = { - beginKeywords: "when", - endsWithParent: !0, - contains: [{ - beginKeywords: "and not" - }].concat(s) - }, - o = { - begin: n + "\\s*:", - returnBegin: !0, - end: "[;}]", - relevance: 0, - contains: [{ - className: "attribute", - begin: n, - end: ":", - excludeEnd: !0, - starts: { - endsWithParent: !0, - illegal: "[<=$]", - relevance: 0, - contains: s - } - }] - }, - g = { - className: "keyword", - begin: "@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", - starts: { - end: "[;{}]", - returnEnd: !0, - contains: s, - relevance: 0 - } - }, - d = { - className: "variable", - variants: [{ - begin: "@[\\w-]+\\s*:", - relevance: 15 - }, { - begin: "@[\\w-]+" - }], - starts: { - end: "[;}]", - returnEnd: !0, - contains: c - } - }, - b = { - variants: [{ - begin: "[\\.#:&\\[>]", - end: "[;{}]" - }, { - begin: n, - end: "{" - }], - returnBegin: !0, - returnEnd: !0, - illegal: "[<='$\"]", - relevance: 0, - contains: [e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, l, r("keyword", "all\\b"), r("variable", "@{[\\w-]+}"), r("selector-tag", n + "%?", 0), r("selector-id", "#" + n), r("selector-class", "\\." + n, 0), r("selector-tag", "&", 0), { - className: "selector-attr", - begin: "\\[", - end: "\\]" - }, { - className: "selector-pseudo", - begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ - }, { - begin: "\\(", - end: "\\)", - contains: c - }, { - begin: "!important" - }] - }; - return a.push(e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, g, d, o, b), { - name: "Less", - case_insensitive: !0, - illegal: "[=>'/<($\"]", - contains: a - }; - }; -}()); -hljs.registerLanguage("lua", function () { - - return function (e) { - var t = { - begin: "\\[=*\\[", - end: "\\]=*\\]", - contains: ["self"] - }, - a = [e.COMMENT("--(?!\\[=*\\[)", "$"), e.COMMENT("--\\[=*\\[", "\\]=*\\]", { - contains: [t], - relevance: 10 - })]; - return { - name: "Lua", - keywords: { - $pattern: e.UNDERSCORE_IDENT_RE, - literal: "true false nil", - keyword: "and break do else elseif end for goto if in local not or repeat return then until while", - built_in: "_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" - }, - contains: a.concat([{ - className: "function", - beginKeywords: "function", - end: "\\)", - contains: [e.inherit(e.TITLE_MODE, { - begin: "([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*" - }), { - className: "params", - begin: "\\(", - endsWithParent: !0, - contains: a - }].concat(a) - }, e.C_NUMBER_MODE, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, { - className: "string", - begin: "\\[=*\\[", - end: "\\]=*\\]", - contains: [t], - relevance: 5 - }]) - }; - }; -}()); -hljs.registerLanguage("makefile", function () { - - return function (e) { - var i = { - className: "variable", - variants: [{ - begin: "\\$\\(" + e.UNDERSCORE_IDENT_RE + "\\)", - contains: [e.BACKSLASH_ESCAPE] - }, { - begin: /\$[@%`]+/ - }] - }] - }] - }; - return { - name: "HTML, XML", - aliases: ["html", "xhtml", "rss", "atom", "xjb", "xsd", "xsl", "plist", "wsf", "svg"], - case_insensitive: !0, - contains: [{ - className: "meta", - begin: "", - relevance: 10, - contains: [a, i, t, s, { - begin: "\\[", - end: "\\]", - contains: [{ - className: "meta", - begin: "", - contains: [a, s, i, t] - }] - }] - }, e.COMMENT("\x3c!--", "--\x3e", { - relevance: 10 - }), { - begin: "<\\!\\[CDATA\\[", - end: "\\]\\]>", - relevance: 10 - }, n, { - className: "meta", - begin: /<\?xml/, - end: /\?>/, - relevance: 10 - }, { - className: "tag", - begin: ")", - end: ">", - keywords: { - name: "style" - }, - contains: [c], - starts: { - end: "", - returnEnd: !0, - subLanguage: ["css", "xml"] - } - }, { - className: "tag", - begin: ")", - end: ">", - keywords: { - name: "script" - }, - contains: [c], - starts: { - end: "<\/script>", - returnEnd: !0, - subLanguage: ["javascript", "handlebars", "xml"] - } - }, { - className: "tag", - begin: "", - contains: [{ - className: "name", - begin: /[^\/><\s]+/, - relevance: 0 - }, c] - }] - }; - }; -}()); -hljs.registerLanguage("markdown", function () { - - return function (n) { - const e = { - begin: "<", - end: ">", - subLanguage: "xml", - relevance: 0 - }, - a = { - begin: "\\[.+?\\][\\(\\[].*?[\\)\\]]", - returnBegin: !0, - contains: [{ - className: "string", - begin: "\\[", - end: "\\]", - excludeBegin: !0, - returnEnd: !0, - relevance: 0 - }, { - className: "link", - begin: "\\]\\(", - end: "\\)", - excludeBegin: !0, - excludeEnd: !0 - }, { - className: "symbol", - begin: "\\]\\[", - end: "\\]", - excludeBegin: !0, - excludeEnd: !0 - }], - relevance: 10 - }, - i = { - className: "strong", - contains: [], - variants: [{ - begin: /_{2}/, - end: /_{2}/ - }, { - begin: /\*{2}/, - end: /\*{2}/ - }] - }, - s = { - className: "emphasis", - contains: [], - variants: [{ - begin: /\*(?!\*)/, - end: /\*/ - }, { - begin: /_(?!_)/, - end: /_/, - relevance: 0 - }] - }; - i.contains.push(s), s.contains.push(i); - var c = [e, a]; - return i.contains = i.contains.concat(c), s.contains = s.contains.concat(c), { - name: "Markdown", - aliases: ["md", "mkdown", "mkd"], - contains: [{ - className: "section", - variants: [{ - begin: "^#{1,6}", - end: "$", - contains: c = c.concat(i, s) - }, { - begin: "(?=^.+?\\n[=-]{2,}$)", - contains: [{ - begin: "^[=-]*$" - }, { - begin: "^", - end: "\\n", - contains: c - }] - }] - }, e, { - className: "bullet", - begin: "^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", - end: "\\s+", - excludeEnd: !0 - }, i, s, { - className: "quote", - begin: "^>\\s+", - contains: c, - end: "$" - }, { - className: "code", - variants: [{ - begin: "(`{3,})(.|\\n)*?\\1`*[ ]*" - }, { - begin: "(~{3,})(.|\\n)*?\\1~*[ ]*" - }, { - begin: "```", - end: "```+[ ]*$" - }, { - begin: "~~~", - end: "~~~+[ ]*$" - }, { - begin: "`.+?`" - }, { - begin: "(?=^( {4}|\\t))", - contains: [{ - begin: "^( {4}|\\t)", - end: "(\\n)$" - }], - relevance: 0 - }] - }, { - begin: "^[-\\*]{3,}", - end: "$" - }, a, { - begin: /^\[[^\n]+\]:/, - returnBegin: !0, - contains: [{ - className: "symbol", - begin: /\[/, - end: /\]/, - excludeBegin: !0, - excludeEnd: !0 - }, { - className: "link", - begin: /:\s*/, - end: /$/, - excludeBegin: !0 - }] - }] - }; - }; -}()); -hljs.registerLanguage("nginx", function () { - - return function (e) { - var n = { - className: "variable", - variants: [{ - begin: /\$\d+/ - }, { - begin: /\$\{/, - end: /}/ - }, { - begin: "[\\$\\@]" + e.UNDERSCORE_IDENT_RE - }] - }, - a = { - endsWithParent: !0, - keywords: { - $pattern: "[a-z/_]+", - literal: "on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll" - }, - relevance: 0, - illegal: "=>", - contains: [e.HASH_COMMENT_MODE, { - className: "string", - contains: [e.BACKSLASH_ESCAPE, n], - variants: [{ - begin: /"/, - end: /"/ - }, { - begin: /'/, - end: /'/ - }] - }, { - begin: "([a-z]+):/", - end: "\\s", - endsWithParent: !0, - excludeEnd: !0, - contains: [n] - }, { - className: "regexp", - contains: [e.BACKSLASH_ESCAPE, n], - variants: [{ - begin: "\\s\\^", - end: "\\s|{|;", - returnEnd: !0 - }, { - begin: "~\\*?\\s+", - end: "\\s|{|;", - returnEnd: !0 - }, { - begin: "\\*(\\.[a-z\\-]+)+" - }, { - begin: "([a-z\\-]+\\.)+\\*" - }] - }, { - className: "number", - begin: "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b" - }, { - className: "number", - begin: "\\b\\d+[kKmMgGdshdwy]*\\b", - relevance: 0 - }, n] - }; - return { - name: "Nginx config", - aliases: ["nginxconf"], - contains: [e.HASH_COMMENT_MODE, { - begin: e.UNDERSCORE_IDENT_RE + "\\s+{", - returnBegin: !0, - end: "{", - contains: [{ - className: "section", - begin: e.UNDERSCORE_IDENT_RE - }], - relevance: 0 - }, { - begin: e.UNDERSCORE_IDENT_RE + "\\s", - end: ";|{", - returnBegin: !0, - contains: [{ - className: "attribute", - begin: e.UNDERSCORE_IDENT_RE, - starts: a - }], - relevance: 0 - }], - illegal: "[^\\s\\}]" - }; - }; -}()); -hljs.registerLanguage("objectivec", function () { - - return function (e) { - var n = /[a-zA-Z@][a-zA-Z0-9_]*/, - _ = { - $pattern: n, - keyword: "@interface @class @protocol @implementation" - }; - return { - name: "Objective-C", - aliases: ["mm", "objc", "obj-c"], - keywords: { - $pattern: n, - keyword: "int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN", - literal: "false true FALSE TRUE nil YES NO NULL", - built_in: "BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once" - }, - illegal: "/, - end: /$/, - illegal: "\\n" - }, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE] - }, { - className: "class", - begin: "(" + _.keyword.split(" ").join("|") + ")\\b", - end: "({|$)", - excludeEnd: !0, - keywords: _, - contains: [e.UNDERSCORE_TITLE_MODE] - }, { - begin: "\\." + e.UNDERSCORE_IDENT_RE, - relevance: 0 - }] - }; - }; -}()); -hljs.registerLanguage("perl", function () { - - return function (e) { - var n = { - $pattern: /[\w.]+/, - keyword: "getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when" - }, - t = { - className: "subst", - begin: "[$@]\\{", - end: "\\}", - keywords: n - }, - s = { - begin: "->{", - end: "}" - }, - r = { - variants: [{ - begin: /\$\d/ - }, { - begin: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/ - }, { - begin: /[\$%@][^\s\w{]/, - relevance: 0 - }] - }, - i = [e.BACKSLASH_ESCAPE, t, r], - a = [r, e.HASH_COMMENT_MODE, e.COMMENT("^\\=\\w", "\\=cut", { - endsWithParent: !0 - }), s, { - className: "string", - contains: i, - variants: [{ - begin: "q[qwxr]?\\s*\\(", - end: "\\)", - relevance: 5 - }, { - begin: "q[qwxr]?\\s*\\[", - end: "\\]", - relevance: 5 - }, { - begin: "q[qwxr]?\\s*\\{", - end: "\\}", - relevance: 5 - }, { - begin: "q[qwxr]?\\s*\\|", - end: "\\|", - relevance: 5 - }, { - begin: "q[qwxr]?\\s*\\<", - end: "\\>", - relevance: 5 - }, { - begin: "qw\\s+q", - end: "q", - relevance: 5 - }, { - begin: "'", - end: "'", - contains: [e.BACKSLASH_ESCAPE] - }, { - begin: '"', - end: '"' - }, { - begin: "`", - end: "`", - contains: [e.BACKSLASH_ESCAPE] - }, { - begin: "{\\w+}", - contains: [], - relevance: 0 - }, { - begin: "-?\\w+\\s*\\=\\>", - contains: [], - relevance: 0 - }] - }, { - className: "number", - begin: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", - relevance: 0 - }, { - begin: "(\\/\\/|" + e.RE_STARTERS_RE + "|\\b(split|return|print|reverse|grep)\\b)\\s*", - keywords: "split return print reverse grep", - relevance: 0, - contains: [e.HASH_COMMENT_MODE, { - className: "regexp", - begin: "(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*", - relevance: 10 - }, { - className: "regexp", - begin: "(m|qr)?/", - end: "/[a-z]*", - contains: [e.BACKSLASH_ESCAPE], - relevance: 0 - }] - }, { - className: "function", - beginKeywords: "sub", - end: "(\\s*\\(.*?\\))?[;{]", - excludeEnd: !0, - relevance: 5, - contains: [e.TITLE_MODE] - }, { - begin: "-\\w\\b", - relevance: 0 - }, { - begin: "^__DATA__$", - end: "^__END__$", - subLanguage: "mojolicious", - contains: [{ - begin: "^@@.*", - end: "$", - className: "comment" - }] - }]; - return t.contains = a, s.contains = a, { - name: "Perl", - aliases: ["pl", "pm"], - keywords: n, - contains: a - }; - }; -}()); -hljs.registerLanguage("php", function () { - - return function (e) { - var r = { - begin: "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*" - }, - t = { - className: "meta", - variants: [{ - begin: /<\?php/, - relevance: 10 - }, { - begin: /<\?[=]?/ - }, { - begin: /\?>/ - }] - }, - a = { - className: "subst", - variants: [{ - begin: /\$\w+/ - }, { - begin: /\{\$/, - end: /\}/ - }] - }, - n = e.inherit(e.APOS_STRING_MODE, { - illegal: null - }), - i = e.inherit(e.QUOTE_STRING_MODE, { - illegal: null, - contains: e.QUOTE_STRING_MODE.contains.concat(a) - }), - o = e.END_SAME_AS_BEGIN({ - begin: /<<<[ \t]*(\w+)\n/, - end: /[ \t]*(\w+)\b/, - contains: e.QUOTE_STRING_MODE.contains.concat(a) - }), - l = { - className: "string", - contains: [e.BACKSLASH_ESCAPE, t], - variants: [e.inherit(n, { - begin: "b'", - end: "'" - }), e.inherit(i, { - begin: 'b"', - end: '"' - }), i, n, o] - }, - s = { - variants: [e.BINARY_NUMBER_MODE, e.C_NUMBER_MODE] - }, - c = { - keyword: "__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield", - literal: "false null true", - built_in: "Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass" - }; - return { - aliases: ["php", "php3", "php4", "php5", "php6", "php7"], - case_insensitive: !0, - keywords: c, - contains: [e.HASH_COMMENT_MODE, e.COMMENT("//", "$", { - contains: [t] - }), e.COMMENT("/\\*", "\\*/", { - contains: [{ - className: "doctag", - begin: "@[A-Za-z]+" - }] - }), e.COMMENT("__halt_compiler.+?;", !1, { - endsWithParent: !0, - keywords: "__halt_compiler" - }), t, { - className: "keyword", - begin: /\$this\b/ - }, r, { - begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/ - }, { - className: "function", - beginKeywords: "fn function", - end: /[;{]/, - excludeEnd: !0, - illegal: "[$%\\[]", - contains: [e.UNDERSCORE_TITLE_MODE, { - className: "params", - begin: "\\(", - end: "\\)", - excludeBegin: !0, - excludeEnd: !0, - keywords: c, - contains: ["self", r, e.C_BLOCK_COMMENT_MODE, l, s] - }] - }, { - className: "class", - beginKeywords: "class interface", - end: "{", - excludeEnd: !0, - illegal: /[:\(\$"]/, - contains: [{ - beginKeywords: "extends implements" - }, e.UNDERSCORE_TITLE_MODE] - }, { - beginKeywords: "namespace", - end: ";", - illegal: /[\.']/, - contains: [e.UNDERSCORE_TITLE_MODE] - }, { - beginKeywords: "use", - end: ";", - contains: [e.UNDERSCORE_TITLE_MODE] - }, { - begin: "=>" - }, l, s] - }; - }; -}()); -hljs.registerLanguage("php-template", function () { - - return function (n) { - return { - name: "PHP template", - subLanguage: "xml", - contains: [{ - begin: /<\?(php|=)?/, - end: /\?>/, - subLanguage: "php", - contains: [{ - begin: "/\\*", - end: "\\*/", - skip: !0 - }, { - begin: 'b"', - end: '"', - skip: !0 - }, { - begin: "b'", - end: "'", - skip: !0 - }, n.inherit(n.APOS_STRING_MODE, { - illegal: null, - className: null, - contains: null, - skip: !0 - }), n.inherit(n.QUOTE_STRING_MODE, { - illegal: null, - className: null, - contains: null, - skip: !0 - })] - }] - }; - }; -}()); -hljs.registerLanguage("plaintext", function () { - - return function (t) { - return { - name: "Plain text", - aliases: ["text", "txt"], - disableAutodetect: !0 - }; - }; -}()); -hljs.registerLanguage("properties", function () { - - return function (e) { - var n = "[ \\t\\f]*", - t = "(" + n + "[:=]" + n + "|[ \\t\\f]+)", - a = "([^\\\\:= \\t\\f\\n]|\\\\.)+", - s = { - end: t, - relevance: 0, - starts: { - className: "string", - end: /$/, - relevance: 0, - contains: [{ - begin: "\\\\\\n" - }] - } - }; - return { - name: ".properties", - case_insensitive: !0, - illegal: /\S/, - contains: [e.COMMENT("^\\s*[!#]", "$"), { - begin: "([^\\\\\\W:= \\t\\f\\n]|\\\\.)+" + t, - returnBegin: !0, - contains: [{ - className: "attr", - begin: "([^\\\\\\W:= \\t\\f\\n]|\\\\.)+", - endsParent: !0, - relevance: 0 - }], - starts: s - }, { - begin: a + t, - returnBegin: !0, - relevance: 0, - contains: [{ - className: "meta", - begin: a, - endsParent: !0, - relevance: 0 - }], - starts: s - }, { - className: "attr", - relevance: 0, - begin: a + n + "$" - }] - }; - }; -}()); -hljs.registerLanguage("python", function () { - - return function (e) { - var n = { - keyword: "and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10", - built_in: "Ellipsis NotImplemented", - literal: "False None True" - }, - a = { - className: "meta", - begin: /^(>>>|\.\.\.) / - }, - i = { - className: "subst", - begin: /\{/, - end: /\}/, - keywords: n, - illegal: /#/ - }, - s = { - begin: /\{\{/, - relevance: 0 - }, - r = { - className: "string", - contains: [e.BACKSLASH_ESCAPE], - variants: [{ - begin: /(u|b)?r?'''/, - end: /'''/, - contains: [e.BACKSLASH_ESCAPE, a], - relevance: 10 - }, { - begin: /(u|b)?r?"""/, - end: /"""/, - contains: [e.BACKSLASH_ESCAPE, a], - relevance: 10 - }, { - begin: /(fr|rf|f)'''/, - end: /'''/, - contains: [e.BACKSLASH_ESCAPE, a, s, i] - }, { - begin: /(fr|rf|f)"""/, - end: /"""/, - contains: [e.BACKSLASH_ESCAPE, a, s, i] - }, { - begin: /(u|r|ur)'/, - end: /'/, - relevance: 10 - }, { - begin: /(u|r|ur)"/, - end: /"/, - relevance: 10 - }, { - begin: /(b|br)'/, - end: /'/ - }, { - begin: /(b|br)"/, - end: /"/ - }, { - begin: /(fr|rf|f)'/, - end: /'/, - contains: [e.BACKSLASH_ESCAPE, s, i] - }, { - begin: /(fr|rf|f)"/, - end: /"/, - contains: [e.BACKSLASH_ESCAPE, s, i] - }, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE] - }, - l = { - className: "number", - relevance: 0, - variants: [{ - begin: e.BINARY_NUMBER_RE + "[lLjJ]?" - }, { - begin: "\\b(0o[0-7]+)[lLjJ]?" - }, { - begin: e.C_NUMBER_RE + "[lLjJ]?" - }] - }, - t = { - className: "params", - variants: [{ - begin: /\(\s*\)/, - skip: !0, - className: null - }, { - begin: /\(/, - end: /\)/, - excludeBegin: !0, - excludeEnd: !0, - contains: ["self", a, l, r, e.HASH_COMMENT_MODE] - }] - }; - return i.contains = [r, l, a], { - name: "Python", - aliases: ["py", "gyp", "ipython"], - keywords: n, - illegal: /(<\/|->|\?)|=>/, - contains: [a, l, { - beginKeywords: "if", - relevance: 0 - }, r, e.HASH_COMMENT_MODE, { - variants: [{ - className: "function", - beginKeywords: "def" - }, { - className: "class", - beginKeywords: "class" - }], - end: /:/, - illegal: /[${=;\n,]/, - contains: [e.UNDERSCORE_TITLE_MODE, t, { - begin: /->/, - endsWithParent: !0, - keywords: "None" - }] - }, { - className: "meta", - begin: /^[\t ]*@/, - end: /$/ - }, { - begin: /\b(print|exec)\(/ - }] - }; - }; -}()); -hljs.registerLanguage("python-repl", function () { - - return function (n) { - return { - aliases: ["pycon"], - contains: [{ - className: "meta", - starts: { - end: / |$/, - starts: { - end: "$", - subLanguage: "python" - } - }, - variants: [{ - begin: /^>>>(?=[ ]|$)/ - }, { - begin: /^\.\.\.(?=[ ]|$)/ - }] - }] - }; - }; -}()); -hljs.registerLanguage("ruby", function () { - - return function (e) { - var n = "[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?", - a = { - keyword: "and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor", - literal: "true false nil" - }, - s = { - className: "doctag", - begin: "@[A-Za-z]+" - }, - i = { - begin: "#<", - end: ">" - }, - r = [e.COMMENT("#", "$", { - contains: [s] - }), e.COMMENT("^\\=begin", "^\\=end", { - contains: [s], - relevance: 10 - }), e.COMMENT("^__END__", "\\n$")], - c = { - className: "subst", - begin: "#\\{", - end: "}", - keywords: a - }, - t = { - className: "string", - contains: [e.BACKSLASH_ESCAPE, c], - variants: [{ - begin: /'/, - end: /'/ - }, { - begin: /"/, - end: /"/ - }, { - begin: /`/, - end: /`/ - }, { - begin: "%[qQwWx]?\\(", - end: "\\)" - }, { - begin: "%[qQwWx]?\\[", - end: "\\]" - }, { - begin: "%[qQwWx]?{", - end: "}" - }, { - begin: "%[qQwWx]?<", - end: ">" - }, { - begin: "%[qQwWx]?/", - end: "/" - }, { - begin: "%[qQwWx]?%", - end: "%" - }, { - begin: "%[qQwWx]?-", - end: "-" - }, { - begin: "%[qQwWx]?\\|", - end: "\\|" - }, { - begin: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/ - }, { - begin: /<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/, - returnBegin: !0, - contains: [{ - begin: /<<[-~]?'?/ - }, e.END_SAME_AS_BEGIN({ - begin: /(\w+)/, - end: /(\w+)/, - contains: [e.BACKSLASH_ESCAPE, c] - })] - }] - }, - b = { - className: "params", - begin: "\\(", - end: "\\)", - endsParent: !0, - keywords: a - }, - d = [t, i, { - className: "class", - beginKeywords: "class module", - end: "$|;", - illegal: /=/, - contains: [e.inherit(e.TITLE_MODE, { - begin: "[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?" - }), { - begin: "<\\s*", - contains: [{ - begin: "(" + e.IDENT_RE + "::)?" + e.IDENT_RE - }] - }].concat(r) - }, { - className: "function", - beginKeywords: "def", - end: "$|;", - contains: [e.inherit(e.TITLE_MODE, { - begin: n - }), b].concat(r) - }, { - begin: e.IDENT_RE + "::" - }, { - className: "symbol", - begin: e.UNDERSCORE_IDENT_RE + "(\\!|\\?)?:", - relevance: 0 - }, { - className: "symbol", - begin: ":(?!\\s)", - contains: [t, { - begin: n - }], - relevance: 0 - }, { - className: "number", - begin: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", - relevance: 0 - }, { - begin: "(\\$\\W)|((\\$|\\@\\@?)(\\w+))" - }, { - className: "params", - begin: /\|/, - end: /\|/, - keywords: a - }, { - begin: "(" + e.RE_STARTERS_RE + "|unless)\\s*", - keywords: "unless", - contains: [i, { - className: "regexp", - contains: [e.BACKSLASH_ESCAPE, c], - illegal: /\n/, - variants: [{ - begin: "/", - end: "/[a-z]*" - }, { - begin: "%r{", - end: "}[a-z]*" - }, { - begin: "%r\\(", - end: "\\)[a-z]*" - }, { - begin: "%r!", - end: "![a-z]*" - }, { - begin: "%r\\[", - end: "\\][a-z]*" - }] - }].concat(r), - relevance: 0 - }].concat(r); - c.contains = d, b.contains = d; - var g = [{ - begin: /^\s*=>/, - starts: { - end: "$", - contains: d - } - }, { - className: "meta", - begin: "^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)", - starts: { - end: "$", - contains: d - } - }]; - return { - name: "Ruby", - aliases: ["rb", "gemspec", "podspec", "thor", "irb"], - keywords: a, - illegal: /\/\*/, - contains: r.concat(g).concat(d) - }; - }; -}()); -hljs.registerLanguage("rust", function () { - - return function (e) { - var n = "([ui](8|16|32|64|128|size)|f(32|64))?", - t = "drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!"; - return { - name: "Rust", - aliases: ["rs"], - keywords: { - $pattern: e.IDENT_RE + "!?", - keyword: "abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield", - literal: "true false Some None Ok Err", - built_in: t - }, - illegal: "" - }] - }; - }; -}()); -hljs.registerLanguage("scss", function () { - - return function (e) { - var t = { - className: "variable", - begin: "(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b" - }, - i = { - className: "number", - begin: "#[0-9A-Fa-f]+" - }; - return e.CSS_NUMBER_MODE, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, e.C_BLOCK_COMMENT_MODE, { - name: "SCSS", - case_insensitive: !0, - illegal: "[=/|']", - contains: [e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, { - className: "selector-id", - begin: "\\#[A-Za-z0-9_-]+", - relevance: 0 - }, { - className: "selector-class", - begin: "\\.[A-Za-z0-9_-]+", - relevance: 0 - }, { - className: "selector-attr", - begin: "\\[", - end: "\\]", - illegal: "$" - }, { - className: "selector-tag", - begin: "\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b", - relevance: 0 - }, { - className: "selector-pseudo", - begin: ":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)" - }, { - className: "selector-pseudo", - begin: "::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)" - }, t, { - className: "attribute", - begin: "\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b", - illegal: "[^\\s]" - }, { - begin: "\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" - }, { - begin: ":", - end: ";", - contains: [t, i, e.CSS_NUMBER_MODE, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, { - className: "meta", - begin: "!important" - }] - }, { - begin: "@(page|font-face)", - lexemes: "@[a-z-]+", - keywords: "@page @font-face" - }, { - begin: "@", - end: "[{;]", - returnBegin: !0, - keywords: "and or not only", - contains: [{ - begin: "@[a-z-]+", - className: "keyword" - }, t, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, i, e.CSS_NUMBER_MODE] - }] - }; - }; -}()); -hljs.registerLanguage("shell", function () { - - return function (s) { - return { - name: "Shell Session", - aliases: ["console"], - contains: [{ - className: "meta", - begin: "^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]", - starts: { - end: "$", - subLanguage: "bash" - } - }] - }; - }; -}()); -hljs.registerLanguage("sql", function () { - - return function (e) { - var t = e.COMMENT("--", "$"); - return { - name: "SQL", - case_insensitive: !0, - illegal: /[<>{}*]/, - contains: [{ - beginKeywords: "begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with", - end: /;/, - endsWithParent: !0, - keywords: { - $pattern: /[\w\.]+/, - keyword: "as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek", - literal: "true false null unknown", - built_in: "array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void" - }, - contains: [{ - className: "string", - begin: "'", - end: "'", - contains: [{ - begin: "''" - }] - }, { - className: "string", - begin: '"', - end: '"', - contains: [{ - begin: '""' - }] - }, { - className: "string", - begin: "`", - end: "`" - }, e.C_NUMBER_MODE, e.C_BLOCK_COMMENT_MODE, t, e.HASH_COMMENT_MODE] - }, e.C_BLOCK_COMMENT_MODE, t, e.HASH_COMMENT_MODE] - }; - }; -}()); -hljs.registerLanguage("swift", function () { - - return function (e) { - var i = { - keyword: "#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet", - literal: "true false nil", - built_in: "abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip" - }, - n = e.COMMENT("/\\*", "\\*/", { - contains: ["self"] - }), - t = { - className: "subst", - begin: /\\\(/, - end: "\\)", - keywords: i, - contains: [] - }, - a = { - className: "string", - contains: [e.BACKSLASH_ESCAPE, t], - variants: [{ - begin: /"""/, - end: /"""/ - }, { - begin: /"/, - end: /"/ - }] - }, - r = { - className: "number", - begin: "\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b", - relevance: 0 - }; - return t.contains = [r], { - name: "Swift", - keywords: i, - contains: [a, e.C_LINE_COMMENT_MODE, n, { - className: "type", - begin: "\\b[A-Z][\\wÀ-ʸ']*[!?]" - }, { - className: "type", - begin: "\\b[A-Z][\\wÀ-ʸ']*", - relevance: 0 - }, r, { - className: "function", - beginKeywords: "func", - end: "{", - excludeEnd: !0, - contains: [e.inherit(e.TITLE_MODE, { - begin: /[A-Za-z$_][0-9A-Za-z$_]*/ - }), { - begin: // - }, { - className: "params", - begin: /\(/, - end: /\)/, - endsParent: !0, - keywords: i, - contains: ["self", r, a, e.C_BLOCK_COMMENT_MODE, { - begin: ":" - }], - illegal: /["']/ - }], - illegal: /\[|%/ - }, { - className: "class", - beginKeywords: "struct protocol class extension enum", - keywords: i, - end: "\\{", - excludeEnd: !0, - contains: [e.inherit(e.TITLE_MODE, { - begin: /[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/ - })] - }, { - className: "meta", - begin: "(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\b" - }, { - beginKeywords: "import", - end: /$/, - contains: [e.C_LINE_COMMENT_MODE, n] - }] - }; - }; -}()); -hljs.registerLanguage("typescript", function () { - - const e = ["as", "in", "of", "if", "for", "while", "finally", "var", "new", "function", "do", "return", "void", "else", "break", "catch", "instanceof", "with", "throw", "case", "default", "try", "switch", "continue", "typeof", "delete", "let", "yield", "const", "class", "debugger", "async", "await", "static", "import", "from", "export", "extends"], - n = ["true", "false", "null", "undefined", "NaN", "Infinity"], - a = [].concat(["setInterval", "setTimeout", "clearInterval", "clearTimeout", "require", "exports", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape"], ["arguments", "this", "super", "console", "window", "document", "localStorage", "module", "global"], ["Intl", "DataView", "Number", "Math", "Date", "String", "RegExp", "Object", "Function", "Boolean", "Error", "Symbol", "Set", "Map", "WeakSet", "WeakMap", "Proxy", "Reflect", "JSON", "Promise", "Float64Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Float32Array", "Array", "Uint8Array", "Uint8ClampedArray", "ArrayBuffer"], ["EvalError", "InternalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError"]); - return function (r) { - var t = { - $pattern: "[A-Za-z$_][0-9A-Za-z$_]*", - keyword: e.concat(["type", "namespace", "typedef", "interface", "public", "private", "protected", "implements", "declare", "abstract", "readonly"]).join(" "), - literal: n.join(" "), - built_in: a.concat(["any", "void", "number", "boolean", "string", "object", "never", "enum"]).join(" ") - }, - s = { - className: "meta", - begin: "@[A-Za-z$_][0-9A-Za-z$_]*" - }, - i = { - className: "number", - variants: [{ - begin: "\\b(0[bB][01]+)n?" - }, { - begin: "\\b(0[oO][0-7]+)n?" - }, { - begin: r.C_NUMBER_RE + "n?" - }], - relevance: 0 - }, - o = { - className: "subst", - begin: "\\$\\{", - end: "\\}", - keywords: t, - contains: [] - }, - c = { - begin: "html`", - end: "", - starts: { - end: "`", - returnEnd: !1, - contains: [r.BACKSLASH_ESCAPE, o], - subLanguage: "xml" - } - }, - l = { - begin: "css`", - end: "", - starts: { - end: "`", - returnEnd: !1, - contains: [r.BACKSLASH_ESCAPE, o], - subLanguage: "css" - } - }, - E = { - className: "string", - begin: "`", - end: "`", - contains: [r.BACKSLASH_ESCAPE, o] - }; - o.contains = [r.APOS_STRING_MODE, r.QUOTE_STRING_MODE, c, l, E, i, r.REGEXP_MODE]; - var d = { - begin: "\\(", - end: /\)/, - keywords: t, - contains: ["self", r.QUOTE_STRING_MODE, r.APOS_STRING_MODE, r.NUMBER_MODE] - }, - u = { - className: "params", - begin: /\(/, - end: /\)/, - excludeBegin: !0, - excludeEnd: !0, - keywords: t, - contains: [r.C_LINE_COMMENT_MODE, r.C_BLOCK_COMMENT_MODE, s, d] - }; - return { - name: "TypeScript", - aliases: ["ts"], - keywords: t, - contains: [r.SHEBANG(), { - className: "meta", - begin: /^\s*['"]use strict['"]/ - }, r.APOS_STRING_MODE, r.QUOTE_STRING_MODE, c, l, E, r.C_LINE_COMMENT_MODE, r.C_BLOCK_COMMENT_MODE, i, { - begin: "(" + r.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*", - keywords: "return throw case", - contains: [r.C_LINE_COMMENT_MODE, r.C_BLOCK_COMMENT_MODE, r.REGEXP_MODE, { - className: "function", - begin: "(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|" + r.UNDERSCORE_IDENT_RE + ")\\s*=>", - returnBegin: !0, - end: "\\s*=>", - contains: [{ - className: "params", - variants: [{ - begin: r.UNDERSCORE_IDENT_RE - }, { - className: null, - begin: /\(\s*\)/, - skip: !0 - }, { - begin: /\(/, - end: /\)/, - excludeBegin: !0, - excludeEnd: !0, - keywords: t, - contains: d.contains - }] - }] - }], - relevance: 0 - }, { - className: "function", - beginKeywords: "function", - end: /[\{;]/, - excludeEnd: !0, - keywords: t, - contains: ["self", r.inherit(r.TITLE_MODE, { - begin: "[A-Za-z$_][0-9A-Za-z$_]*" - }), u], - illegal: /%/, - relevance: 0 - }, { - beginKeywords: "constructor", - end: /[\{;]/, - excludeEnd: !0, - contains: ["self", u] - }, { - begin: /module\./, - keywords: { - built_in: "module" - }, - relevance: 0 - }, { - beginKeywords: "module", - end: /\{/, - excludeEnd: !0 - }, { - beginKeywords: "interface", - end: /\{/, - excludeEnd: !0, - keywords: "interface extends" - }, { - begin: /\$[(.]/ - }, { - begin: "\\." + r.IDENT_RE, - relevance: 0 - }, s, d] - }; - }; -}()); -hljs.registerLanguage("yaml", function () { - - return function (e) { - var n = "true false yes no null", - a = "[\\w#;/?:@&=+$,.~*\\'()[\\]]+", - s = { - className: "string", - relevance: 0, - variants: [{ - begin: /'/, - end: /'/ - }, { - begin: /"/, - end: /"/ - }, { - begin: /\S+/ - }], - contains: [e.BACKSLASH_ESCAPE, { - className: "template-variable", - variants: [{ - begin: "{{", - end: "}}" - }, { - begin: "%{", - end: "}" - }] - }] - }, - i = e.inherit(s, { - variants: [{ - begin: /'/, - end: /'/ - }, { - begin: /"/, - end: /"/ - }, { - begin: /[^\s,{}[\]]+/ - }] - }), - l = { - end: ",", - endsWithParent: !0, - excludeEnd: !0, - contains: [], - keywords: n, - relevance: 0 - }, - t = { - begin: "{", - end: "}", - contains: [l], - illegal: "\\n", - relevance: 0 - }, - g = { - begin: "\\[", - end: "\\]", - contains: [l], - illegal: "\\n", - relevance: 0 - }, - b = [{ - className: "attr", - variants: [{ - begin: "\\w[\\w :\\/.-]*:(?=[ \t]|$)" - }, { - begin: '"\\w[\\w :\\/.-]*":(?=[ \t]|$)' - }, { - begin: "'\\w[\\w :\\/.-]*':(?=[ \t]|$)" - }] - }, { - className: "meta", - begin: "^---s*$", - relevance: 10 - }, { - className: "string", - begin: "[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*" - }, { - begin: "<%[%=-]?", - end: "[%-]?%>", - subLanguage: "ruby", - excludeBegin: !0, - excludeEnd: !0, - relevance: 0 - }, { - className: "type", - begin: "!\\w+!" + a - }, { - className: "type", - begin: "!<" + a + ">" - }, { - className: "type", - begin: "!" + a - }, { - className: "type", - begin: "!!" + a - }, { - className: "meta", - begin: "&" + e.UNDERSCORE_IDENT_RE + "$" - }, { - className: "meta", - begin: "\\*" + e.UNDERSCORE_IDENT_RE + "$" - }, { - className: "bullet", - begin: "\\-(?=[ ]|$)", - relevance: 0 - }, e.HASH_COMMENT_MODE, { - beginKeywords: n, - keywords: { - literal: n - } - }, { - className: "number", - begin: "\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" - }, { - className: "number", - begin: e.C_NUMBER_RE + "\\b" - }, t, g, s], - c = [...b]; - return c.pop(), c.push(i), l.contains = c, { - name: "YAML", - case_insensitive: !0, - aliases: ["yml", "YAML"], - contains: b - }; - }; -}()); -//# sourceMappingURL=highlight.min.js.map diff --git a/__transpiled/js/highlight.min.js.map b/__transpiled/js/highlight.min.js.map deleted file mode 100644 index 9ab18547a..000000000 --- a/__transpiled/js/highlight.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"highlight.min.js","sources":["../../template/js/highlight.min.js"],"sourcesContent":["/*\n Highlight.js 10.2.0 (da7d149b)\n License: BSD-3-Clause\n Copyright (c) 2006-2020, Ivan Sagalaev\n*/\nvar hljs=function(){\"use strict\";function e(n){Object.freeze(n);var t=\"function\"==typeof n;return Object.getOwnPropertyNames(n).forEach((function(r){!Object.hasOwnProperty.call(n,r)||null===n[r]||\"object\"!=typeof n[r]&&\"function\"!=typeof n[r]||t&&(\"caller\"===r||\"callee\"===r||\"arguments\"===r)||Object.isFrozen(n[r])||e(n[r])})),n}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data}ignoreMatch(){this.ignore=!0}}function t(e){return e.replace(/&/g,\"&\").replace(//g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\")}function r(e,...n){var t={};for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null,escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({event:\"start\",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({event:\"stop\",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){var i=0,s=\"\",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset\"}function u(e){s+=\"\"}function g(e){(\"start\"===e.event?c:u)(e.node)}for(;e.length||n.length;){var d=l();if(s+=t(r.substring(i,d[0].offset)),i=d[0].offset,d===e){o.reverse().forEach(u);do{g(d.splice(0,1)[0]),d=l()}while(d===e&&d.length&&d[0].offset===i);o.reverse().forEach(c)}else\"start\"===d[0].event?o.push(d[0].node):o.pop(),g(d.splice(0,1)[0])}return s+t(r.substr(i))}});const s=\"
\",o=e=>!!e.kind;class l{constructor(e,n){this.buffer=\"\",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!o(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){o(e)&&(this.buffer+=s)}value(){return this.buffer}span(e){this.buffer+=``}}class c{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return\"string\"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){\"string\"!=typeof e&&e.children&&(e.children.every(e=>\"string\"==typeof e)?e.children=[e.children.join(\"\")]:e.children.forEach(e=>{c._collapse(e)}))}}class u extends c{constructor(e){super(),this.options=e}addKeyword(e,n){\"\"!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){\"\"!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new l(this,this.options).value()}finalize(){return!0}}function g(e){return e?\"string\"==typeof e?e:e.source:null}const d=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",h={begin:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},f={className:\"string\",begin:\"'\",end:\"'\",illegal:\"\\\\n\",contains:[h]},p={className:\"string\",begin:'\"',end:'\"',illegal:\"\\\\n\",contains:[h]},m={begin:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},b=function(e,n,t={}){var a=r({className:\"comment\",begin:e,end:n,contains:[]},t);return a.contains.push(m),a.contains.push({className:\"doctag\",begin:\"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):\",relevance:0}),a},v=b(\"//\",\"$\"),x=b(\"/\\\\*\",\"\\\\*/\"),E=b(\"#\",\"$\");var _=Object.freeze({__proto__:null,IDENT_RE:\"[a-zA-Z]\\\\w*\",UNDERSCORE_IDENT_RE:\"[a-zA-Z_]\\\\w*\",NUMBER_RE:\"\\\\b\\\\d+(\\\\.\\\\d+)?\",C_NUMBER_RE:d,BINARY_NUMBER_RE:\"\\\\b(0b[01]+)\",RE_STARTERS_RE:\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",SHEBANG:(e={})=>{const n=/^#![ ]*\\//;return e.binary&&(e.begin=function(...e){return e.map(e=>g(e)).join(\"\")}(n,/.*\\b/,e.binary,/\\b.*/)),r({className:\"meta\",begin:n,end:/$/,relevance:0,\"on:begin\":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:h,APOS_STRING_MODE:f,QUOTE_STRING_MODE:p,PHRASAL_WORDS_MODE:m,COMMENT:b,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:x,HASH_COMMENT_MODE:E,NUMBER_MODE:{className:\"number\",begin:\"\\\\b\\\\d+(\\\\.\\\\d+)?\",relevance:0},C_NUMBER_MODE:{className:\"number\",begin:d,relevance:0},BINARY_NUMBER_MODE:{className:\"number\",begin:\"\\\\b(0b[01]+)\",relevance:0},CSS_NUMBER_MODE:{className:\"number\",begin:\"\\\\b\\\\d+(\\\\.\\\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",relevance:0},REGEXP_MODE:{begin:/(?=\\/[^/\\n]*\\/)/,contains:[{className:\"regexp\",begin:/\\//,end:/\\/[gimuy]*/,illegal:/\\n/,contains:[h,{begin:/\\[/,end:/\\]/,relevance:0,contains:[h]}]}]},TITLE_MODE:{className:\"title\",begin:\"[a-zA-Z]\\\\w*\",relevance:0},UNDERSCORE_TITLE_MODE:{className:\"title\",begin:\"[a-zA-Z_]\\\\w*\",relevance:0},METHOD_GUARD:{begin:\"\\\\.\\\\s*[a-zA-Z_]\\\\w*\",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{\"on:begin\":(e,n)=>{n.data._beginMatch=e[1]},\"on:end\":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}}),w=\"of and for in not or if then\".split(\" \");function N(e,n){return n?+n:function(e){return w.includes(e.toLowerCase())}(e)?0:1}const y={props:[\"language\",\"code\",\"autodetect\"],data:function(){return{detectedLanguage:\"\",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?\"\":\"hljs \"+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!hljs.getLanguage(this.language))return console.warn(`The language \"${this.language}\" you specified could not be found.`),this.unknownLanguage=!0,t(this.code);let e;return this.autoDetect?(e=hljs.highlightAuto(this.code),this.detectedLanguage=e.language):(e=hljs.highlight(this.language,this.code,this.ignoreIllegals),this.detectectLanguage=this.language),e.value},autoDetect(){return!(this.language&&(e=this.autodetect,!e&&\"\"!==e));var e},ignoreIllegals:()=>!0},render(e){return e(\"pre\",{},[e(\"code\",{class:this.className,domProps:{innerHTML:this.highlighted}})])}},R={install(e){e.component(\"highlightjs\",y)}},k=t,O=r,{nodeStream:M,mergeStreams:L}=i,T=Symbol(\"nomatch\");return function(t){var a=[],i=Object.create(null),s=Object.create(null),o=[],l=!0,c=/(^(<[^>]+>|\\t|)+|\\n)/gm,d=\"Could not find the language '{}', did you forget to load/include a language module?\";const h={disableAutodetect:!0,name:\"Plain text\",contains:[]};var f={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\\blang(?:uage)?-([\\w-]+)\\b/i,classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:null,__emitter:u};function p(e){return f.noHighlightRe.test(e)}function m(e,n,t,r){var a={code:n,language:e};S(\"before:highlight\",a);var i=a.result?a.result:b(a.language,a.code,t,r);return i.code=a.code,S(\"after:highlight\",i),i}function b(e,t,a,s){var o=t;function c(e,n){var t=E.case_insensitive?n[0].toLowerCase():n[0];return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]}function u(){null!=R.subLanguage?function(){if(\"\"!==L){var e=null;if(\"string\"==typeof R.subLanguage){if(!i[R.subLanguage])return void M.addText(L);e=b(R.subLanguage,L,!0,O[R.subLanguage]),O[R.subLanguage]=e.top}else e=v(L,R.subLanguage.length?R.subLanguage:null);R.relevance>0&&(j+=e.relevance),M.addSublanguage(e.emitter,e.language)}}():function(){if(!R.keywords)return void M.addText(L);let e=0;R.keywordPatternRe.lastIndex=0;let n=R.keywordPatternRe.exec(L),t=\"\";for(;n;){t+=L.substring(e,n.index);const r=c(R,n);if(r){const[e,a]=r;M.addText(t),t=\"\",j+=a,M.addKeyword(n[0],e)}else t+=n[0];e=R.keywordPatternRe.lastIndex,n=R.keywordPatternRe.exec(L)}t+=L.substr(e),M.addText(t)}(),L=\"\"}function h(e){return e.className&&M.openNode(e.className),R=Object.create(e,{parent:{value:R}})}function p(e){return 0===R.matcher.regexIndex?(L+=e[0],1):(I=!0,0)}var m={};function x(t,r){var i=r&&r[0];if(L+=t,null==i)return u(),0;if(\"begin\"===m.type&&\"end\"===r.type&&m.index===r.index&&\"\"===i){if(L+=o.slice(r.index,r.index+1),!l){const n=Error(\"0 width match regex\");throw n.languageName=e,n.badRule=m.rule,n}return 1}if(m=r,\"begin\"===r.type)return function(e){var t=e[0],r=e.rule;const a=new n(r),i=[r.__beforeBegin,r[\"on:begin\"]];for(const n of i)if(n&&(n(e,a),a.ignore))return p(t);return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"),\"m\")),r.skip?L+=t:(r.excludeBegin&&(L+=t),u(),r.returnBegin||r.excludeBegin||(L=t)),h(r),r.returnBegin?0:t.length}(r);if(\"illegal\"===r.type&&!a){const e=Error('Illegal lexeme \"'+i+'\" for mode \"'+(R.className||\"\")+'\"');throw e.mode=R,e}if(\"end\"===r.type){var s=function(e){var t=e[0],r=o.substr(e.index),a=function e(t,r,a){let i=function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(t.endRe,a);if(i){if(t[\"on:end\"]){const e=new n(t);t[\"on:end\"](r,e),e.ignore&&(i=!1)}if(i){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,r,a)}(R,e,r);if(!a)return T;var i=R;i.skip?L+=t:(i.returnEnd||i.excludeEnd||(L+=t),u(),i.excludeEnd&&(L=t));do{R.className&&M.closeNode(),R.skip||R.subLanguage||(j+=R.relevance),R=R.parent}while(R!==a.parent);return a.starts&&(a.endSameAsBegin&&(a.starts.endRe=a.endRe),h(a.starts)),i.returnEnd?0:t.length}(r);if(s!==T)return s}if(\"illegal\"===r.type&&\"\"===i)return 1;if(S>1e5&&S>3*r.index)throw Error(\"potential infinite loop, way more iterations than matches\");return L+=i,i.length}var E=y(e);if(!E)throw console.error(d.replace(\"{}\",e)),Error('Unknown language: \"'+e+'\"');var _=function(e){function n(n,t){return RegExp(g(n),\"m\"+(e.case_insensitive?\"i\":\"\")+(t?\"g\":\"\"))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+\"|\").exec(\"\").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n=\"|\"){for(var t=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./,r=0,a=\"\",i=0;i0&&(a+=n),a+=\"(\";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),\"\\\\\"===l[0][0]&&l[1]?a+=\"\\\\\"+(+l[1]+s):(a+=l[0],\"(\"===l[0]&&r++)}a+=\")\"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),r=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){return 0!=this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),\"begin\"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;const t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e,n){const t=e.input[e.index-1],r=e.input[e.index+e[0].length];\".\"!==t&&\".\"!==r||n.ignoreMatch()}if(e.contains&&e.contains.includes(\"self\"))throw Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");return function t(s,o){const l=s;if(s.compiled)return l;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords;let c=null;if(\"object\"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=function(e,n){var t={};return\"string\"==typeof e?r(\"keyword\",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(\" \").forEach((function(n){var r=n.split(\"|\");t[r[0]]=[e,N(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error(\"ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) \");return l.keywordPatternRe=n(s.lexemes||c||/\\w+/,!0),o&&(s.beginKeywords&&(s.begin=\"\\\\b(\"+s.beginKeywords.split(\" \").join(\"|\")+\")(?=\\\\b|\\\\s)\",s.__beforeBegin=i),s.begin||(s.begin=/\\B|\\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\\B|\\b/),s.end&&(l.endRe=n(s.end)),l.terminator_end=g(s.end)||\"\",s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?\"|\":\"\")+o.terminator_end)),s.illegal&&(l.illegalRe=n(s.illegal)),void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}(\"self\"===e?s:e)}))),s.contains.forEach((function(e){t(e,l)})),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:\"begin\"})),e.terminator_end&&n.addRule(e.terminator_end,{type:\"end\"}),e.illegal&&n.addRule(e.illegal,{type:\"illegal\"}),n}(l),l}(e)}(E),w=\"\",R=s||_,O={},M=new f.__emitter(f);!function(){for(var e=[],n=R;n!==E;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>M.openNode(e))}();var L=\"\",j=0,A=0,S=0,I=!1;try{for(R.matcher.considerAll();;){S++,I?I=!1:(R.matcher.lastIndex=A,R.matcher.considerAll());const e=R.matcher.exec(o);if(!e&&R.matcher.resumingScanAtSamePosition()){L+=o[A],A+=1;continue}if(!e)break;const n=x(o.substring(A,e.index),e);A=e.index+n}return x(o.substr(A)),M.closeAllNodes(),M.finalize(),w=M.toHTML(),{relevance:j,value:w,language:e,illegal:!1,emitter:M,top:R}}catch(n){if(n.message&&n.message.includes(\"Illegal\"))return{illegal:!0,illegalBy:{msg:n.message,context:o.slice(A-100,A+100),mode:n.mode},sofar:w,relevance:0,value:k(o),emitter:M};if(l)return{illegal:!1,relevance:0,value:k(o),emitter:M,language:e,top:R,errorRaised:n};throw n}}function v(e,n){n=n||f.languages||Object.keys(i);var t=function(e){const n={relevance:0,emitter:new f.__emitter(f),value:k(e),illegal:!1,top:h};return n.emitter.addText(e),n}(e),r=t;return n.filter(y).filter(A).forEach((function(n){var a=b(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function x(e){return f.tabReplace||f.useBR?e.replace(c,e=>\"\\n\"===e?f.useBR?\"
\":e:f.tabReplace?e.replace(/\\t/g,f.tabReplace):e):e}function E(e){let n=null;const t=function(e){var n=e.className+\" \";n+=e.parentNode?e.parentNode.className:\"\";const t=f.languageDetectRe.exec(n);if(t){var r=y(t[1]);return r||(console.warn(d.replace(\"{}\",t[1])),console.warn(\"Falling back to no-highlight mode for this block.\",e)),r?t[1]:\"no-highlight\"}return n.split(/\\s+/).find(e=>p(e)||y(e))}(e);if(p(t))return;S(\"before:highlightBlock\",{block:e,language:t}),f.useBR?(n=document.createElement(\"div\")).innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(//g,\"\\n\"):n=e;const r=n.textContent,a=t?m(t,r,!0):v(r),i=M(n);if(i.length){const e=document.createElement(\"div\");e.innerHTML=a.value,a.value=L(i,M(e),r)}a.value=x(a.value),S(\"after:highlightBlock\",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?s[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),e.includes(r)||a.push(r),a.join(\" \").trim()}(e.className,t,a.language),e.result={language:a.language,re:a.relevance,relavance:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance,relavance:a.second_best.relevance})}const w=()=>{if(!w.called){w.called=!0;var e=document.querySelectorAll(\"pre code\");a.forEach.call(e,E)}};function y(e){return e=(e||\"\").toLowerCase(),i[e]||i[s[e]]}function j(e,{languageName:n}){\"string\"==typeof e&&(e=[e]),e.forEach(e=>{s[e]=n})}function A(e){var n=y(e);return n&&!n.disableAutodetect}function S(e,n){var t=e;o.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:m,highlightAuto:v,fixMarkup:function(e){return console.warn(\"fixMarkup is deprecated and will be removed entirely in v11.0\"),console.warn(\"Please see https://github.com/highlightjs/highlight.js/issues/2534\"),x(e)},highlightBlock:E,configure:function(e){f=O(f,e)},initHighlighting:w,initHighlightingOnLoad:function(){window.addEventListener(\"DOMContentLoaded\",w,!1)},registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){if(console.error(\"Language definition for '{}' could not be registered.\".replace(\"{}\",e)),!l)throw n;console.error(n),r=h}r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&j(r.aliases,{languageName:e})},listLanguages:function(){return Object.keys(i)},getLanguage:y,registerAliases:j,requireLanguage:function(e){var n=y(e);if(n)return n;throw Error(\"The '{}' language is required, but not loaded.\".replace(\"{}\",e))},autoDetection:A,inherit:O,addPlugin:function(e){o.push(e)},vuePlugin:R}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString=\"10.2.0\";for(const n in _)\"object\"==typeof _[n]&&e(_[n]);return Object.assign(t,_),t}({})}();\"object\"==typeof exports&&\"undefined\"!=typeof module&&(module.exports=hljs);\nhljs.registerLanguage(\"apache\",function(){\"use strict\";return function(e){var n={className:\"number\",begin:\"\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\"};return{name:\"Apache config\",aliases:[\"apacheconf\"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:\"section\",begin:\"\",contains:[n,{className:\"number\",begin:\":\\\\d{1,5}\"},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:\"attribute\",begin:/\\w+/,relevance:0,keywords:{nomarkup:\"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername\"},starts:{end:/$/,relevance:0,keywords:{literal:\"on off all deny allow\"},contains:[{className:\"meta\",begin:\"\\\\s\\\\[\",end:\"\\\\]$\"},{className:\"variable\",begin:\"[\\\\$%]\\\\{\",end:\"\\\\}\",contains:[\"self\",{className:\"number\",begin:\"[\\\\$%]\\\\d+\"}]},n,{className:\"number\",begin:\"\\\\d+\"},e.QUOTE_STRING_MODE]}}],illegal:/\\S/}}}());\nhljs.registerLanguage(\"bash\",function(){\"use strict\";return function(e){const s={};Object.assign(s,{className:\"variable\",variants:[{begin:/\\$[\\w\\d#@][\\w\\d_]*/},{begin:/\\$\\{/,end:/\\}/,contains:[{begin:/:-/,contains:[s]}]}]});const t={className:\"subst\",begin:/\\$\\(/,end:/\\)/,contains:[e.BACKSLASH_ESCAPE]},n={className:\"string\",begin:/\"/,end:/\"/,contains:[e.BACKSLASH_ESCAPE,s,t]};t.contains.push(n);const a={begin:/\\$\\(\\(/,end:/\\)\\)/,contains:[{begin:/\\d+#[0-9a-f]+/,className:\"number\"},e.NUMBER_MODE,s]},i=e.SHEBANG({binary:\"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)\",relevance:10}),c={className:\"function\",begin:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\\w[\\w\\d_]*/})],relevance:0};return{name:\"Bash\",aliases:[\"sh\",\"zsh\"],keywords:{$pattern:/\\b-?[a-z\\._-]+\\b/,keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",_:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},contains:[i,e.SHEBANG(),c,a,e.HASH_COMMENT_MODE,n,{className:\"\",begin:/\\\\\"/},{className:\"string\",begin:/'/,end:/'/},s]}}}());\nhljs.registerLanguage(\"c-like\",function(){\"use strict\";return function(e){function t(e){return\"(?:\"+e+\")?\"}var n=\"(decltype\\\\(auto\\\\)|\"+t(\"[a-zA-Z_]\\\\w*::\")+\"[a-zA-Z_]\\\\w*\"+t(\"<.*?>\")+\")\",r={className:\"keyword\",begin:\"\\\\b[a-z\\\\d_]*_t\\\\b\"},a={className:\"string\",variants:[{begin:'(u8?|U|L)?\"',end:'\"',illegal:\"\\\\n\",contains:[e.BACKSLASH_ESCAPE]},{begin:\"(u8?|U|L)?'(\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)|.)\",end:\"'\",illegal:\".\"},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,end:/\\)([^()\\\\ ]{0,16})\"/})]},i={className:\"number\",variants:[{begin:\"\\\\b(0b[01']+)\"},{begin:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{begin:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},s={className:\"meta\",begin:/#\\s*[a-z]+\\b/,end:/$/,keywords:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include\"},contains:[{begin:/\\\\\\n/,relevance:0},e.inherit(a,{className:\"meta-string\"}),{className:\"meta-string\",begin:/<.*?>/,end:/$/,illegal:\"\\\\n\"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o={className:\"title\",begin:t(\"[a-zA-Z_]\\\\w*::\")+e.IDENT_RE,relevance:0},c=t(\"[a-zA-Z_]\\\\w*::\")+e.IDENT_RE+\"\\\\s*\\\\(\",l={keyword:\"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq\",built_in:\"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary\",literal:\"true false nullptr NULL\"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a],_={variants:[{begin:/=/,end:/;/},{begin:/\\(/,end:/\\)/},{beginKeywords:\"new throw return else\",end:/;/}],keywords:l,contains:d.concat([{begin:/\\(/,end:/\\)/,keywords:l,contains:d.concat([\"self\"]),relevance:0}]),relevance:0},u={className:\"function\",begin:\"(\"+n+\"[\\\\*&\\\\s]+)+\"+c,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\\w\\s\\*&:<>]/,contains:[{begin:\"decltype\\\\(auto\\\\)\",keywords:l,relevance:0},{begin:c,returnBegin:!0,contains:[o],relevance:0},{className:\"params\",begin:/\\(/,end:/\\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{begin:/\\(/,end:/\\)/,keywords:l,relevance:0,contains:[\"self\",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\",\"hh\",\"hxx\",\"cxx\"],keywords:l,disableAutodetect:!0,illegal:\"\",keywords:l,contains:[\"self\",r]},{begin:e.IDENT_RE+\"::\",keywords:l},{className:\"class\",beginKeywords:\"class struct\",end:/[{;:]/,contains:[{begin://,contains:[\"self\"]},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:a,keywords:l}}}}());\nhljs.registerLanguage(\"c\",function(){\"use strict\";return function(e){var n=e.requireLanguage(\"c-like\").rawDefinition();return n.name=\"C\",n.aliases=[\"c\",\"h\"],n}}());\nhljs.registerLanguage(\"coffeescript\",function(){\"use strict\";const e=[\"as\",\"in\",\"of\",\"if\",\"for\",\"while\",\"finally\",\"var\",\"new\",\"function\",\"do\",\"return\",\"void\",\"else\",\"break\",\"catch\",\"instanceof\",\"with\",\"throw\",\"case\",\"default\",\"try\",\"switch\",\"continue\",\"typeof\",\"delete\",\"let\",\"yield\",\"const\",\"class\",\"debugger\",\"async\",\"await\",\"static\",\"import\",\"from\",\"export\",\"extends\"],n=[\"true\",\"false\",\"null\",\"undefined\",\"NaN\",\"Infinity\"],a=[].concat([\"setInterval\",\"setTimeout\",\"clearInterval\",\"clearTimeout\",\"require\",\"exports\",\"eval\",\"isFinite\",\"isNaN\",\"parseFloat\",\"parseInt\",\"decodeURI\",\"decodeURIComponent\",\"encodeURI\",\"encodeURIComponent\",\"escape\",\"unescape\"],[\"arguments\",\"this\",\"super\",\"console\",\"window\",\"document\",\"localStorage\",\"module\",\"global\"],[\"Intl\",\"DataView\",\"Number\",\"Math\",\"Date\",\"String\",\"RegExp\",\"Object\",\"Function\",\"Boolean\",\"Error\",\"Symbol\",\"Set\",\"Map\",\"WeakSet\",\"WeakMap\",\"Proxy\",\"Reflect\",\"JSON\",\"Promise\",\"Float64Array\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Uint16Array\",\"Uint32Array\",\"Float32Array\",\"Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"ArrayBuffer\"],[\"EvalError\",\"InternalError\",\"RangeError\",\"ReferenceError\",\"SyntaxError\",\"TypeError\",\"URIError\"]);return function(r){var t={keyword:e.concat([\"then\",\"unless\",\"until\",\"loop\",\"by\",\"when\",\"and\",\"or\",\"is\",\"isnt\",\"not\"]).filter((e=>n=>!e.includes(n))([\"var\",\"const\",\"let\",\"function\",\"static\"])).join(\" \"),literal:n.concat([\"yes\",\"no\",\"on\",\"off\"]).join(\" \"),built_in:a.concat([\"npm\",\"print\"]).join(\" \")},i=\"[A-Za-z$_][0-9A-Za-z$_]*\",s={className:\"subst\",begin:/#\\{/,end:/}/,keywords:t},o=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:\"(\\\\s*/)?\",relevance:0}}),{className:\"string\",variants:[{begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]},{begin:/\"\"\"/,end:/\"\"\"/,contains:[r.BACKSLASH_ESCAPE,s]},{begin:/\"/,end:/\"/,contains:[r.BACKSLASH_ESCAPE,s]}]},{className:\"regexp\",variants:[{begin:\"///\",end:\"///\",contains:[s,r.HASH_COMMENT_MODE]},{begin:\"//[gim]{0,3}(?=\\\\W)\",relevance:0},{begin:/\\/(?![ *]).*?(?![\\\\]).\\/[gim]{0,3}(?=\\W)/}]},{begin:\"@\"+i},{subLanguage:\"javascript\",excludeBegin:!0,excludeEnd:!0,variants:[{begin:\"```\",end:\"```\"},{begin:\"`\",end:\"`\"}]}];s.contains=o;var c=r.inherit(r.TITLE_MODE,{begin:i}),l={className:\"params\",begin:\"\\\\([^\\\\(]\",returnBegin:!0,contains:[{begin:/\\(/,end:/\\)/,keywords:t,contains:[\"self\"].concat(o)}]};return{name:\"CoffeeScript\",aliases:[\"coffee\",\"cson\",\"iced\"],keywords:t,illegal:/\\/\\*/,contains:o.concat([r.COMMENT(\"###\",\"###\"),r.HASH_COMMENT_MODE,{className:\"function\",begin:\"^\\\\s*\"+i+\"\\\\s*=\\\\s*(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",end:\"[-=]>\",returnBegin:!0,contains:[c,l]},{begin:/[:\\(,=]\\s*/,relevance:0,contains:[{className:\"function\",begin:\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",end:\"[-=]>\",returnBegin:!0,contains:[l]}]},{className:\"class\",beginKeywords:\"class\",end:\"$\",illegal:/[:=\"\\[\\]]/,contains:[{beginKeywords:\"extends\",endsWithParent:!0,illegal:/[:=\"\\[\\]]/,contains:[c]},c]},{begin:i+\":\",end:\":\",returnBegin:!0,returnEnd:!0,relevance:0}])}}}());\nhljs.registerLanguage(\"cpp\",function(){\"use strict\";return function(e){var i=e.requireLanguage(\"c-like\").rawDefinition();return i.disableAutodetect=!1,i.name=\"C++\",i.aliases=[\"cc\",\"c++\",\"h++\",\"hpp\",\"hh\",\"hxx\",\"cxx\"],i}}());\nhljs.registerLanguage(\"csharp\",function(){\"use strict\";return function(e){var n={keyword:\"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in init int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield\",literal:\"null false true\"},i=e.inherit(e.TITLE_MODE,{begin:\"[a-zA-Z](\\\\.?\\\\w)*\"}),a={className:\"number\",variants:[{begin:\"\\\\b(0b[01']+)\"},{begin:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{begin:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},s={className:\"string\",begin:'@\"',end:'\"',contains:[{begin:'\"\"'}]},t=e.inherit(s,{illegal:/\\n/}),l={className:\"subst\",begin:\"{\",end:\"}\",keywords:n},r=e.inherit(l,{illegal:/\\n/}),c={className:\"string\",begin:/\\$\"/,end:'\"',illegal:/\\n/,contains:[{begin:\"{{\"},{begin:\"}}\"},e.BACKSLASH_ESCAPE,r]},o={className:\"string\",begin:/\\$@\"/,end:'\"',contains:[{begin:\"{{\"},{begin:\"}}\"},{begin:'\"\"'},l]},g=e.inherit(o,{illegal:/\\n/,contains:[{begin:\"{{\"},{begin:\"}}\"},{begin:'\"\"'},r]});l.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],r.contains=[g,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\\n/})];var d={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:\"<\",end:\">\",contains:[{beginKeywords:\"in out\"},i]},_=e.IDENT_RE+\"(<\"+e.IDENT_RE+\"(\\\\s*,\\\\s*\"+e.IDENT_RE+\")*>)?(\\\\[\\\\])?\",b={begin:\"@\"+e.IDENT_RE,relevance:0};return{name:\"C#\",aliases:[\"cs\",\"c#\"],keywords:n,illegal:/::/,contains:[e.COMMENT(\"///\",\"$\",{returnBegin:!0,contains:[{className:\"doctag\",variants:[{begin:\"///\",relevance:0},{begin:\"\\x3c!--|--\\x3e\"},{begin:\"\"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:\"meta\",begin:\"#\",end:\"$\",keywords:{\"meta-keyword\":\"if else elif endif define undef warning error line region endregion pragma checksum\"}},d,a,{beginKeywords:\"class interface\",end:/[{;=]/,illegal:/[^\\s:,]/,contains:[{beginKeywords:\"where class\"},i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:\"namespace\",end:/[{;=]/,illegal:/[^\\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:\"record\",end:/[{;=]/,illegal:/[^\\s:]/,contains:[i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:\"meta\",begin:\"^\\\\s*\\\\[\",excludeBegin:!0,end:\"\\\\]\",excludeEnd:!0,contains:[{className:\"meta-string\",begin:/\"/,end:/\"/}]},{beginKeywords:\"new return throw await else\",relevance:0},{className:\"function\",begin:\"(\"+_+\"\\\\s+)+\"+e.IDENT_RE+\"\\\\s*(\\\\<.+\\\\>)?\\\\s*\\\\(\",returnBegin:!0,end:/\\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.IDENT_RE+\"\\\\s*(\\\\<.+\\\\>)?\\\\s*\\\\(\",returnBegin:!0,contains:[e.TITLE_MODE,E],relevance:0},{className:\"params\",begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[d,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}}());\nhljs.registerLanguage(\"css\",function(){\"use strict\";return function(e){var n={begin:/(?:[A-Z\\_\\.\\-]+|--[a-zA-Z0-9_-]+)\\s*:/,returnBegin:!0,end:\";\",endsWithParent:!0,contains:[{className:\"attribute\",begin:/\\S/,end:\":\",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\\w-]+\\(/,returnBegin:!0,contains:[{className:\"built_in\",begin:/[\\w-]+/},{begin:/\\(/,end:/\\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:\"number\",begin:\"#[0-9A-Fa-f]+\"},{className:\"meta\",begin:\"!important\"}]}}]};return{name:\"CSS\",case_insensitive:!0,illegal:/[=\\/|'\\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:\"selector-id\",begin:/#[A-Za-z0-9_-]+/},{className:\"selector-class\",begin:/\\.[A-Za-z0-9_-]+/},{className:\"selector-attr\",begin:/\\[/,end:/\\]/,illegal:\"$\",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},{className:\"selector-pseudo\",begin:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{begin:\"@(page|font-face)\",lexemes:\"@[a-z-]+\",keywords:\"@page @font-face\"},{begin:\"@\",end:\"[{;]\",illegal:/:/,returnBegin:!0,contains:[{className:\"keyword\",begin:/@\\-?\\w[\\w]*(\\-\\w+)*/},{begin:/\\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:\"and or not only\",contains:[{begin:/[a-z-]+:/,className:\"attribute\"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:\"selector-tag\",begin:\"[a-zA-Z-][a-zA-Z0-9_-]*\",relevance:0},{begin:\"{\",end:\"}\",illegal:/\\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}}());\nhljs.registerLanguage(\"diff\",function(){\"use strict\";return function(e){return{name:\"Diff\",aliases:[\"patch\"],contains:[{className:\"meta\",relevance:10,variants:[{begin:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{begin:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{begin:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{className:\"comment\",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\\-{3}/,end:/$/},{begin:/^\\*{3} /,end:/$/},{begin:/^\\+{3}/,end:/$/},{begin:/^\\*{15}$/}]},{className:\"addition\",begin:\"^\\\\+\",end:\"$\"},{className:\"deletion\",begin:\"^\\\\-\",end:\"$\"},{className:\"addition\",begin:\"^\\\\!\",end:\"$\"}]}}}());\nhljs.registerLanguage(\"go\",function(){\"use strict\";return function(e){var n={keyword:\"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune\",literal:\"true false iota nil\",built_in:\"append cap close complex copy imag len make new panic print println real recover delete\"};return{name:\"Go\",aliases:[\"golang\"],keywords:n,illegal:\"e(n)).join(\"\")}return function(a){var s={className:\"number\",relevance:0,variants:[{begin:/([\\+\\-]+)?[\\d]+_[\\d_]+/},{begin:a.NUMBER_RE}]},i=a.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];var t={className:\"variable\",variants:[{begin:/\\$[\\w\\d\"][\\w\\d_]*/},{begin:/\\$\\{(.*?)}/}]},r={className:\"literal\",begin:/\\bon|off|true|false|yes|no\\b/},l={className:\"string\",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:\"'''\",end:\"'''\",relevance:10},{begin:'\"\"\"',end:'\"\"\"',relevance:10},{begin:'\"',end:'\"'},{begin:\"'\",end:\"'\"}]},c={begin:/\\[/,end:/\\]/,contains:[i,r,t,l,s,\"self\"],relevance:0},g=\"(\"+[/[A-Za-z0-9_-]+/,/\"(\\\\\"|[^\"])*\"/,/'[^']*'/].map(n=>e(n)).join(\"|\")+\")\";return{name:\"TOML, also INI\",aliases:[\"toml\"],case_insensitive:!0,illegal:/\\S/,contains:[i,{className:\"section\",begin:/\\[+/,end:/\\]+/},{begin:n(g,\"(\\\\s*\\\\.\\\\s*\",g,\")*\",n(\"(?=\",/\\s*=\\s*[^#\\s]/,\")\")),className:\"attr\",starts:{end:/$/,contains:[i,c,r,t,l,s]}}]}}}());\nhljs.registerLanguage(\"java\",function(){\"use strict\";function e(e){return e?\"string\"==typeof e?e:e.source:null}function n(e){return a(\"(\",e,\")?\")}function a(...n){return n.map(n=>e(n)).join(\"\")}function s(...n){return\"(\"+n.map(n=>e(n)).join(\"|\")+\")\"}return function(e){var t=\"false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do\",i={className:\"meta\",begin:\"@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*\",contains:[{begin:/\\(/,end:/\\)/,contains:[\"self\"]}]},r=e=>a(\"[\",e,\"]+([\",e,\"_]*[\",e,\"]+)?\"),c={className:\"number\",variants:[{begin:`\\\\b(0[bB]${r(\"01\")})[lL]?`},{begin:`\\\\b(0${r(\"0-7\")})[dDfFlL]?`},{begin:a(/\\b0[xX]/,s(a(r(\"a-fA-F0-9\"),/\\./,r(\"a-fA-F0-9\")),a(r(\"a-fA-F0-9\"),/\\.?/),a(/\\./,r(\"a-fA-F0-9\"))),/([pP][+-]?(\\d+))?/,/[fFdDlL]?/)},{begin:a(/\\b/,s(a(/\\d*\\./,r(\"\\\\d\")),r(\"\\\\d\")),/[eE][+-]?[\\d]+[dDfF]?/)},{begin:a(/\\b/,r(/\\d/),n(/\\.?/),n(r(/\\d/)),/[dDfFlL]?/)}],relevance:0};return{name:\"Java\",aliases:[\"jsp\"],keywords:t,illegal:/<\\/|#/,contains:[e.COMMENT(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,contains:[{begin:/\\w+@/,relevance:0},{className:\"doctag\",begin:\"@[A-Za-z]+\"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:\"class\",beginKeywords:\"class interface enum\",end:/[{;=]/,excludeEnd:!0,keywords:\"class interface enum\",illegal:/[:\"\\[\\]]/,contains:[{beginKeywords:\"extends implements\"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:\"new throw return else\",relevance:0},{className:\"function\",begin:\"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\\\s*,\\\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\\\s+)+\"+e.UNDERSCORE_IDENT_RE+\"\\\\s*\\\\(\",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+\"\\\\s*\\\\(\",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:\"params\",begin:/\\(/,end:/\\)/,keywords:t,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c,i]}}}());\nhljs.registerLanguage(\"javascript\",function(){\"use strict\";const e=[\"as\",\"in\",\"of\",\"if\",\"for\",\"while\",\"finally\",\"var\",\"new\",\"function\",\"do\",\"return\",\"void\",\"else\",\"break\",\"catch\",\"instanceof\",\"with\",\"throw\",\"case\",\"default\",\"try\",\"switch\",\"continue\",\"typeof\",\"delete\",\"let\",\"yield\",\"const\",\"class\",\"debugger\",\"async\",\"await\",\"static\",\"import\",\"from\",\"export\",\"extends\"],n=[\"true\",\"false\",\"null\",\"undefined\",\"NaN\",\"Infinity\"],a=[].concat([\"setInterval\",\"setTimeout\",\"clearInterval\",\"clearTimeout\",\"require\",\"exports\",\"eval\",\"isFinite\",\"isNaN\",\"parseFloat\",\"parseInt\",\"decodeURI\",\"decodeURIComponent\",\"encodeURI\",\"encodeURIComponent\",\"escape\",\"unescape\"],[\"arguments\",\"this\",\"super\",\"console\",\"window\",\"document\",\"localStorage\",\"module\",\"global\"],[\"Intl\",\"DataView\",\"Number\",\"Math\",\"Date\",\"String\",\"RegExp\",\"Object\",\"Function\",\"Boolean\",\"Error\",\"Symbol\",\"Set\",\"Map\",\"WeakSet\",\"WeakMap\",\"Proxy\",\"Reflect\",\"JSON\",\"Promise\",\"Float64Array\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Uint16Array\",\"Uint32Array\",\"Float32Array\",\"Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"ArrayBuffer\"],[\"EvalError\",\"InternalError\",\"RangeError\",\"ReferenceError\",\"SyntaxError\",\"TypeError\",\"URIError\"]);function s(e){return r(\"(?=\",e,\")\")}function r(...e){return e.map(e=>(function(e){return e?\"string\"==typeof e?e:e.source:null})(e)).join(\"\")}return function(t){var i=\"[A-Za-z$_][0-9A-Za-z$_]*\",c={begin:/<[A-Za-z0-9\\\\._:-]+/,end:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/},o={$pattern:\"[A-Za-z$_][0-9A-Za-z$_]*\",keyword:e.join(\" \"),literal:n.join(\" \"),built_in:a.join(\" \")},l={className:\"number\",variants:[{begin:\"\\\\b(0[bB][01]+)n?\"},{begin:\"\\\\b(0[oO][0-7]+)n?\"},{begin:t.C_NUMBER_RE+\"n?\"}],relevance:0},E={className:\"subst\",begin:\"\\\\$\\\\{\",end:\"\\\\}\",keywords:o,contains:[]},d={begin:\"html`\",end:\"\",starts:{end:\"`\",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:\"xml\"}},g={begin:\"css`\",end:\"\",starts:{end:\"`\",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:\"css\"}},u={className:\"string\",begin:\"`\",end:\"`\",contains:[t.BACKSLASH_ESCAPE,E]};E.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,l,t.REGEXP_MODE];var b=E.contains.concat([{begin:/\\(/,end:/\\)/,contains:[\"self\"].concat(E.contains,[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE])},t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]),_={className:\"params\",begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,contains:b};return{name:\"JavaScript\",aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],keywords:o,contains:[t.SHEBANG({binary:\"node\",relevance:5}),{className:\"meta\",relevance:10,begin:/^\\s*['\"]use (strict|asm)['\"]/},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,t.C_LINE_COMMENT_MODE,t.COMMENT(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,contains:[{className:\"doctag\",begin:\"@[A-Za-z]+\",contains:[{className:\"type\",begin:\"\\\\{\",end:\"\\\\}\",relevance:0},{className:\"variable\",begin:i+\"(?=\\\\s*(-)|$)\",endsParent:!0,relevance:0},{begin:/(?=[^\\n])\\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,l,{begin:r(/[{,\\n]\\s*/,s(r(/(((\\/\\/.*$)|(\\/\\*(.|\\n)*\\*\\/))\\s*)*/,i+\"\\\\s*:\"))),relevance:0,contains:[{className:\"attr\",begin:i+s(\"\\\\s*:\"),relevance:0}]},{begin:\"(\"+t.RE_STARTERS_RE+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",keywords:\"return throw case\",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:\"function\",begin:\"(\\\\([^(]*(\\\\([^(]*(\\\\([^(]*\\\\))?\\\\))?\\\\)|\"+t.UNDERSCORE_IDENT_RE+\")\\\\s*=>\",returnBegin:!0,end:\"\\\\s*=>\",contains:[{className:\"params\",variants:[{begin:t.UNDERSCORE_IDENT_RE},{className:null,begin:/\\(\\s*\\)/,skip:!0},{begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:b}]}]},{begin:/,/,relevance:0},{className:\"\",begin:/\\s/,end:/\\s*/,skip:!0},{variants:[{begin:\"<>\",end:\"\"},{begin:c.begin,end:c.end}],subLanguage:\"xml\",contains:[{begin:c.begin,end:c.end,skip:!0,contains:[\"self\"]}]}],relevance:0},{className:\"function\",beginKeywords:\"function\",end:/\\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{begin:i}),_],illegal:/\\[|%/},{begin:/\\$[(.]/},t.METHOD_GUARD,{className:\"class\",beginKeywords:\"class\",end:/[{;=]/,excludeEnd:!0,illegal:/[:\"\\[\\]]/,contains:[{beginKeywords:\"extends\"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:\"constructor\",end:/\\{/,excludeEnd:!0},{begin:\"(get|set)\\\\s+(?=\"+i+\"\\\\()\",end:/{/,keywords:\"get set\",contains:[t.inherit(t.TITLE_MODE,{begin:i}),{begin:/\\(\\)/},_]}],illegal:/#(?!!)/}}}());\nhljs.registerLanguage(\"json\",function(){\"use strict\";return function(n){var e={literal:\"true false null\"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],t=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],a={end:\",\",endsWithParent:!0,excludeEnd:!0,contains:t,keywords:e},l={begin:\"{\",end:\"}\",contains:[{className:\"attr\",begin:/\"/,end:/\"/,contains:[n.BACKSLASH_ESCAPE],illegal:\"\\\\n\"},n.inherit(a,{begin:/:/})].concat(i),illegal:\"\\\\S\"},s={begin:\"\\\\[\",end:\"\\\\]\",contains:[n.inherit(a)],illegal:\"\\\\S\"};return t.push(l,s),i.forEach((function(n){t.push(n)})),{name:\"JSON\",contains:t,keywords:e,illegal:\"\\\\S\"}}}());\nhljs.registerLanguage(\"kotlin\",function(){\"use strict\";return function(e){var n={keyword:\"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual\",built_in:\"Byte Short Char Int Long Boolean Float Double Void Unit Nothing\",literal:\"true false null\"},a={className:\"symbol\",begin:e.UNDERSCORE_IDENT_RE+\"@\"},i={className:\"subst\",begin:\"\\\\${\",end:\"}\",contains:[e.C_NUMBER_MODE]},s={className:\"variable\",begin:\"\\\\$\"+e.UNDERSCORE_IDENT_RE},t={className:\"string\",variants:[{begin:'\"\"\"',end:'\"\"\"(?=[^\"])',contains:[s,i]},{begin:\"'\",end:\"'\",illegal:/\\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'\"',end:'\"',illegal:/\\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(t);var r={className:\"meta\",begin:\"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*\"+e.UNDERSCORE_IDENT_RE+\")?\"},l={className:\"meta\",begin:\"@\"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\\(/,end:/\\)/,contains:[e.inherit(t,{className:\"meta-string\"})]}]},c=e.COMMENT(\"/\\\\*\",\"\\\\*/\",{contains:[e.C_BLOCK_COMMENT_MODE]}),o={variants:[{className:\"type\",begin:e.UNDERSCORE_IDENT_RE},{begin:/\\(/,end:/\\)/,contains:[]}]},d=o;return d.variants[1].contains=[o],o.variants[1].contains=[d],{name:\"Kotlin\",aliases:[\"kt\"],keywords:n,contains:[e.COMMENT(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,contains:[{className:\"doctag\",begin:\"@[A-Za-z]+\"}]}),e.C_LINE_COMMENT_MODE,c,{className:\"keyword\",begin:/\\b(break|continue|return|this)\\b/,starts:{contains:[{className:\"symbol\",begin:/@\\w+/}]}},a,r,l,{className:\"function\",beginKeywords:\"fun\",end:\"[(]|$\",returnBegin:!0,excludeEnd:!0,keywords:n,illegal:/fun\\s+(<.*>)?[^\\s\\(]+(\\s+[^\\s\\(]+)\\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+\"\\\\s*\\\\(\",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:\"type\",begin://,keywords:\"reified\",relevance:0},{className:\"params\",begin:/\\(/,end:/\\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\\/]/,endsWithParent:!0,contains:[o,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,r,l,t,e.C_NUMBER_MODE]},c]},{className:\"class\",beginKeywords:\"class interface trait\",end:/[:\\{(]|$/,excludeEnd:!0,illegal:\"extends implements\",contains:[{beginKeywords:\"public protected internal private constructor\"},e.UNDERSCORE_TITLE_MODE,{className:\"type\",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:\"type\",begin:/[,:]\\s*/,end:/[<\\(,]|$/,excludeBegin:!0,returnEnd:!0},r,l]},t,{className:\"meta\",begin:\"^#!/usr/bin/env\",end:\"$\",illegal:\"\\n\"},{className:\"number\",begin:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0}]}}}());\nhljs.registerLanguage(\"less\",function(){\"use strict\";return function(e){var n=\"([\\\\w-]+|@{[\\\\w-]+})\",a=[],s=[],t=function(e){return{className:\"string\",begin:\"~?\"+e+\".*?\"+e}},r=function(e,n,a){return{className:e,begin:n,relevance:a}},i={begin:\"\\\\(\",end:\"\\\\)\",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t(\"'\"),t('\"'),e.CSS_NUMBER_MODE,{begin:\"(url|data-uri)\\\\(\",starts:{className:\"string\",end:\"[\\\\)\\\\n]\",excludeEnd:!0}},r(\"number\",\"#[0-9A-Fa-f]+\\\\b\"),i,r(\"variable\",\"@@?[\\\\w-]+\",10),r(\"variable\",\"@{[\\\\w-]+}\"),r(\"built_in\",\"~?`[^`]*?`\"),{className:\"attribute\",begin:\"[\\\\w-]+\\\\s*:\",end:\":\",returnBegin:!0,excludeEnd:!0},{className:\"meta\",begin:\"!important\"});var c=s.concat({begin:\"{\",end:\"}\",contains:a}),l={beginKeywords:\"when\",endsWithParent:!0,contains:[{beginKeywords:\"and not\"}].concat(s)},o={begin:n+\"\\\\s*:\",returnBegin:!0,end:\"[;}]\",relevance:0,contains:[{className:\"attribute\",begin:n,end:\":\",excludeEnd:!0,starts:{endsWithParent:!0,illegal:\"[<=$]\",relevance:0,contains:s}}]},g={className:\"keyword\",begin:\"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b\",starts:{end:\"[;{}]\",returnEnd:!0,contains:s,relevance:0}},d={className:\"variable\",variants:[{begin:\"@[\\\\w-]+\\\\s*:\",relevance:15},{begin:\"@[\\\\w-]+\"}],starts:{end:\"[;}]\",returnEnd:!0,contains:c}},b={variants:[{begin:\"[\\\\.#:&\\\\[>]\",end:\"[;{}]\"},{begin:n,end:\"{\"}],returnBegin:!0,returnEnd:!0,illegal:\"[<='$\\\"]\",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,r(\"keyword\",\"all\\\\b\"),r(\"variable\",\"@{[\\\\w-]+}\"),r(\"selector-tag\",n+\"%?\",0),r(\"selector-id\",\"#\"+n),r(\"selector-class\",\"\\\\.\"+n,0),r(\"selector-tag\",\"&\",0),{className:\"selector-attr\",begin:\"\\\\[\",end:\"\\\\]\"},{className:\"selector-pseudo\",begin:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{begin:\"\\\\(\",end:\"\\\\)\",contains:c},{begin:\"!important\"}]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,d,o,b),{name:\"Less\",case_insensitive:!0,illegal:\"[=>'/<($\\\"]\",contains:a}}}());\nhljs.registerLanguage(\"lua\",function(){\"use strict\";return function(e){var t={begin:\"\\\\[=*\\\\[\",end:\"\\\\]=*\\\\]\",contains:[\"self\"]},a=[e.COMMENT(\"--(?!\\\\[=*\\\\[)\",\"$\"),e.COMMENT(\"--\\\\[=*\\\\[\",\"\\\\]=*\\\\]\",{contains:[t],relevance:10})];return{name:\"Lua\",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:\"true false nil\",keyword:\"and break do else elseif end for goto if in local not or repeat return then until while\",built_in:\"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove\"},contains:a.concat([{className:\"function\",beginKeywords:\"function\",end:\"\\\\)\",contains:[e.inherit(e.TITLE_MODE,{begin:\"([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*\"}),{className:\"params\",begin:\"\\\\(\",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:\"string\",begin:\"\\\\[=*\\\\[\",end:\"\\\\]=*\\\\]\",contains:[t],relevance:5}])}}}());\nhljs.registerLanguage(\"makefile\",function(){\"use strict\";return function(e){var i={className:\"variable\",variants:[{begin:\"\\\\$\\\\(\"+e.UNDERSCORE_IDENT_RE+\"\\\\)\",contains:[e.BACKSLASH_ESCAPE]},{begin:/\\$[@%`]+/}]}]}]};return{name:\"HTML, XML\",aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\",\"wsf\",\"svg\"],case_insensitive:!0,contains:[{className:\"meta\",begin:\"\",relevance:10,contains:[a,i,t,s,{begin:\"\\\\[\",end:\"\\\\]\",contains:[{className:\"meta\",begin:\"\",contains:[a,s,i,t]}]}]},e.COMMENT(\"\\x3c!--\",\"--\\x3e\",{relevance:10}),{begin:\"<\\\\!\\\\[CDATA\\\\[\",end:\"\\\\]\\\\]>\",relevance:10},n,{className:\"meta\",begin:/<\\?xml/,end:/\\?>/,relevance:10},{className:\"tag\",begin:\")\",end:\">\",keywords:{name:\"style\"},contains:[c],starts:{end:\"\",returnEnd:!0,subLanguage:[\"css\",\"xml\"]}},{className:\"tag\",begin:\")\",end:\">\",keywords:{name:\"script\"},contains:[c],starts:{end:\"<\\/script>\",returnEnd:!0,subLanguage:[\"javascript\",\"handlebars\",\"xml\"]}},{className:\"tag\",begin:\"\",contains:[{className:\"name\",begin:/[^\\/><\\s]+/,relevance:0},c]}]}}}());\nhljs.registerLanguage(\"markdown\",function(){\"use strict\";return function(n){const e={begin:\"<\",end:\">\",subLanguage:\"xml\",relevance:0},a={begin:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",returnBegin:!0,contains:[{className:\"string\",begin:\"\\\\[\",end:\"\\\\]\",excludeBegin:!0,returnEnd:!0,relevance:0},{className:\"link\",begin:\"\\\\]\\\\(\",end:\"\\\\)\",excludeBegin:!0,excludeEnd:!0},{className:\"symbol\",begin:\"\\\\]\\\\[\",end:\"\\\\]\",excludeBegin:!0,excludeEnd:!0}],relevance:10},i={className:\"strong\",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\\*{2}/,end:/\\*{2}/}]},s={className:\"emphasis\",contains:[],variants:[{begin:/\\*(?!\\*)/,end:/\\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i);var c=[e,a];return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),{name:\"Markdown\",aliases:[\"md\",\"mkdown\",\"mkd\"],contains:[{className:\"section\",variants:[{begin:\"^#{1,6}\",end:\"$\",contains:c=c.concat(i,s)},{begin:\"(?=^.+?\\\\n[=-]{2,}$)\",contains:[{begin:\"^[=-]*$\"},{begin:\"^\",end:\"\\\\n\",contains:c}]}]},e,{className:\"bullet\",begin:\"^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)\",end:\"\\\\s+\",excludeEnd:!0},i,s,{className:\"quote\",begin:\"^>\\\\s+\",contains:c,end:\"$\"},{className:\"code\",variants:[{begin:\"(`{3,})(.|\\\\n)*?\\\\1`*[ ]*\"},{begin:\"(~{3,})(.|\\\\n)*?\\\\1~*[ ]*\"},{begin:\"```\",end:\"```+[ ]*$\"},{begin:\"~~~\",end:\"~~~+[ ]*$\"},{begin:\"`.+?`\"},{begin:\"(?=^( {4}|\\\\t))\",contains:[{begin:\"^( {4}|\\\\t)\",end:\"(\\\\n)$\"}],relevance:0}]},{begin:\"^[-\\\\*]{3,}\",end:\"$\"},a,{begin:/^\\[[^\\n]+\\]:/,returnBegin:!0,contains:[{className:\"symbol\",begin:/\\[/,end:/\\]/,excludeBegin:!0,excludeEnd:!0},{className:\"link\",begin:/:\\s*/,end:/$/,excludeBegin:!0}]}]}}}());\nhljs.registerLanguage(\"nginx\",function(){\"use strict\";return function(e){var n={className:\"variable\",variants:[{begin:/\\$\\d+/},{begin:/\\$\\{/,end:/}/},{begin:\"[\\\\$\\\\@]\"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:\"[a-z/_]+\",literal:\"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll\"},relevance:0,illegal:\"=>\",contains:[e.HASH_COMMENT_MODE,{className:\"string\",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/\"/,end:/\"/},{begin:/'/,end:/'/}]},{begin:\"([a-z]+):/\",end:\"\\\\s\",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:\"regexp\",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:\"\\\\s\\\\^\",end:\"\\\\s|{|;\",returnEnd:!0},{begin:\"~\\\\*?\\\\s+\",end:\"\\\\s|{|;\",returnEnd:!0},{begin:\"\\\\*(\\\\.[a-z\\\\-]+)+\"},{begin:\"([a-z\\\\-]+\\\\.)+\\\\*\"}]},{className:\"number\",begin:\"\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b\"},{className:\"number\",begin:\"\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b\",relevance:0},n]};return{name:\"Nginx config\",aliases:[\"nginxconf\"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+\"\\\\s+{\",returnBegin:!0,end:\"{\",contains:[{className:\"section\",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+\"\\\\s\",end:\";|{\",returnBegin:!0,contains:[{className:\"attribute\",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:\"[^\\\\s\\\\}]\"}}}());\nhljs.registerLanguage(\"objectivec\",function(){\"use strict\";return function(e){var n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,keyword:\"@interface @class @protocol @implementation\"};return{name:\"Objective-C\",aliases:[\"mm\",\"objc\",\"obj-c\"],keywords:{$pattern:n,keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},illegal:\"/,end:/$/,illegal:\"\\\\n\"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:\"class\",begin:\"(\"+_.keyword.split(\" \").join(\"|\")+\")\\\\b\",end:\"({|$)\",excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:\"\\\\.\"+e.UNDERSCORE_IDENT_RE,relevance:0}]}}}());\nhljs.registerLanguage(\"perl\",function(){\"use strict\";return function(e){var n={$pattern:/[\\w.]+/,keyword:\"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when\"},t={className:\"subst\",begin:\"[$@]\\\\{\",end:\"\\\\}\",keywords:n},s={begin:\"->{\",end:\"}\"},r={variants:[{begin:/\\$\\d/},{begin:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{begin:/[\\$%@][^\\s\\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,t,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT(\"^\\\\=\\\\w\",\"\\\\=cut\",{endsWithParent:!0}),s,{className:\"string\",contains:i,variants:[{begin:\"q[qwxr]?\\\\s*\\\\(\",end:\"\\\\)\",relevance:5},{begin:\"q[qwxr]?\\\\s*\\\\[\",end:\"\\\\]\",relevance:5},{begin:\"q[qwxr]?\\\\s*\\\\{\",end:\"\\\\}\",relevance:5},{begin:\"q[qwxr]?\\\\s*\\\\|\",end:\"\\\\|\",relevance:5},{begin:\"q[qwxr]?\\\\s*\\\\<\",end:\"\\\\>\",relevance:5},{begin:\"qw\\\\s+q\",end:\"q\",relevance:5},{begin:\"'\",end:\"'\",contains:[e.BACKSLASH_ESCAPE]},{begin:'\"',end:'\"'},{begin:\"`\",end:\"`\",contains:[e.BACKSLASH_ESCAPE]},{begin:\"{\\\\w+}\",contains:[],relevance:0},{begin:\"-?\\\\w+\\\\s*\\\\=\\\\>\",contains:[],relevance:0}]},{className:\"number\",begin:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{begin:\"(\\\\/\\\\/|\"+e.RE_STARTERS_RE+\"|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*\",keywords:\"split return print reverse grep\",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:\"regexp\",begin:\"(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*\",relevance:10},{className:\"regexp\",begin:\"(m|qr)?/\",end:\"/[a-z]*\",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:\"function\",beginKeywords:\"sub\",end:\"(\\\\s*\\\\(.*?\\\\))?[;{]\",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:\"-\\\\w\\\\b\",relevance:0},{begin:\"^__DATA__$\",end:\"^__END__$\",subLanguage:\"mojolicious\",contains:[{begin:\"^@@.*\",end:\"$\",className:\"comment\"}]}];return t.contains=a,s.contains=a,{name:\"Perl\",aliases:[\"pl\",\"pm\"],keywords:n,contains:a}}}());\nhljs.registerLanguage(\"php\",function(){\"use strict\";return function(e){var r={begin:\"\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*\"},t={className:\"meta\",variants:[{begin:/<\\?php/,relevance:10},{begin:/<\\?[=]?/},{begin:/\\?>/}]},a={className:\"subst\",variants:[{begin:/\\$\\w+/},{begin:/\\{\\$/,end:/\\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({begin:/<<<[ \\t]*(\\w+)\\n/,end:/[ \\t]*(\\w+)\\b/,contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:\"string\",contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:\"b'\",end:\"'\"}),e.inherit(i,{begin:'b\"',end:'\"'}),i,n,o]},s={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},c={keyword:\"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield\",literal:\"false null true\",built_in:\"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass\"};return{aliases:[\"php\",\"php3\",\"php4\",\"php5\",\"php6\",\"php7\"],case_insensitive:!0,keywords:c,contains:[e.HASH_COMMENT_MODE,e.COMMENT(\"//\",\"$\",{contains:[t]}),e.COMMENT(\"/\\\\*\",\"\\\\*/\",{contains:[{className:\"doctag\",begin:\"@[A-Za-z]+\"}]}),e.COMMENT(\"__halt_compiler.+?;\",!1,{endsWithParent:!0,keywords:\"__halt_compiler\"}),t,{className:\"keyword\",begin:/\\$this\\b/},r,{begin:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{className:\"function\",beginKeywords:\"fn function\",end:/[;{]/,excludeEnd:!0,illegal:\"[$%\\\\[]\",contains:[e.UNDERSCORE_TITLE_MODE,{className:\"params\",begin:\"\\\\(\",end:\"\\\\)\",excludeBegin:!0,excludeEnd:!0,keywords:c,contains:[\"self\",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:\"class\",beginKeywords:\"class interface\",end:\"{\",excludeEnd:!0,illegal:/[:\\(\\$\"]/,contains:[{beginKeywords:\"extends implements\"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:\"namespace\",end:\";\",illegal:/[\\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:\"use\",end:\";\",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:\"=>\"},l,s]}}}());\nhljs.registerLanguage(\"php-template\",function(){\"use strict\";return function(n){return{name:\"PHP template\",subLanguage:\"xml\",contains:[{begin:/<\\?(php|=)?/,end:/\\?>/,subLanguage:\"php\",contains:[{begin:\"/\\\\*\",end:\"\\\\*/\",skip:!0},{begin:'b\"',end:'\"',skip:!0},{begin:\"b'\",end:\"'\",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}());\nhljs.registerLanguage(\"plaintext\",function(){\"use strict\";return function(t){return{name:\"Plain text\",aliases:[\"text\",\"txt\"],disableAutodetect:!0}}}());\nhljs.registerLanguage(\"properties\",function(){\"use strict\";return function(e){var n=\"[ \\\\t\\\\f]*\",t=\"(\"+n+\"[:=]\"+n+\"|[ \\\\t\\\\f]+)\",a=\"([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",s={end:t,relevance:0,starts:{className:\"string\",end:/$/,relevance:0,contains:[{begin:\"\\\\\\\\\\\\n\"}]}};return{name:\".properties\",case_insensitive:!0,illegal:/\\S/,contains:[e.COMMENT(\"^\\\\s*[!#]\",\"$\"),{begin:\"([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\"+t,returnBegin:!0,contains:[{className:\"attr\",begin:\"([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",endsParent:!0,relevance:0}],starts:s},{begin:a+t,returnBegin:!0,relevance:0,contains:[{className:\"meta\",begin:a,endsParent:!0,relevance:0}],starts:s},{className:\"attr\",relevance:0,begin:a+n+\"$\"}]}}}());\nhljs.registerLanguage(\"python\",function(){\"use strict\";return function(e){var n={keyword:\"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10\",built_in:\"Ellipsis NotImplemented\",literal:\"False None True\"},a={className:\"meta\",begin:/^(>>>|\\.\\.\\.) /},i={className:\"subst\",begin:/\\{/,end:/\\}/,keywords:n,illegal:/#/},s={begin:/\\{\\{/,relevance:0},r={className:\"string\",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(u|b)?r?\"\"\"/,end:/\"\"\"/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(fr|rf|f)\"\"\"/,end:/\"\"\"/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)\"/,end:/\"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)\"/,end:/\"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/(fr|rf|f)\"/,end:/\"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l={className:\"number\",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+\"[lLjJ]?\"},{begin:\"\\\\b(0o[0-7]+)[lLjJ]?\"},{begin:e.C_NUMBER_RE+\"[lLjJ]?\"}]},t={className:\"params\",variants:[{begin:/\\(\\s*\\)/,skip:!0,className:null},{begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,contains:[\"self\",a,l,r,e.HASH_COMMENT_MODE]}]};return i.contains=[r,l,a],{name:\"Python\",aliases:[\"py\",\"gyp\",\"ipython\"],keywords:n,illegal:/(<\\/|->|\\?)|=>/,contains:[a,l,{beginKeywords:\"if\",relevance:0},r,e.HASH_COMMENT_MODE,{variants:[{className:\"function\",beginKeywords:\"def\"},{className:\"class\",beginKeywords:\"class\"}],end:/:/,illegal:/[${=;\\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,t,{begin:/->/,endsWithParent:!0,keywords:\"None\"}]},{className:\"meta\",begin:/^[\\t ]*@/,end:/$/},{begin:/\\b(print|exec)\\(/}]}}}());\nhljs.registerLanguage(\"python-repl\",function(){\"use strict\";return function(n){return{aliases:[\"pycon\"],contains:[{className:\"meta\",starts:{end:/ |$/,starts:{end:\"$\",subLanguage:\"python\"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\\.\\.\\.(?=[ ]|$)/}]}]}}}());\nhljs.registerLanguage(\"ruby\",function(){\"use strict\";return function(e){var n=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",a={keyword:\"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",literal:\"true false nil\"},s={className:\"doctag\",begin:\"@[A-Za-z]+\"},i={begin:\"#<\",end:\">\"},r=[e.COMMENT(\"#\",\"$\",{contains:[s]}),e.COMMENT(\"^\\\\=begin\",\"^\\\\=end\",{contains:[s],relevance:10}),e.COMMENT(\"^__END__\",\"\\\\n$\")],c={className:\"subst\",begin:\"#\\\\{\",end:\"}\",keywords:a},t={className:\"string\",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/\"/,end:/\"/},{begin:/`/,end:/`/},{begin:\"%[qQwWx]?\\\\(\",end:\"\\\\)\"},{begin:\"%[qQwWx]?\\\\[\",end:\"\\\\]\"},{begin:\"%[qQwWx]?{\",end:\"}\"},{begin:\"%[qQwWx]?<\",end:\">\"},{begin:\"%[qQwWx]?/\",end:\"/\"},{begin:\"%[qQwWx]?%\",end:\"%\"},{begin:\"%[qQwWx]?-\",end:\"-\"},{begin:\"%[qQwWx]?\\\\|\",end:\"\\\\|\"},{begin:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/},{begin:/<<[-~]?'?(\\w+)(?:.|\\n)*?\\n\\s*\\1\\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\\w+)/,end:/(\\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},b={className:\"params\",begin:\"\\\\(\",end:\"\\\\)\",endsParent:!0,keywords:a},d=[t,i,{className:\"class\",beginKeywords:\"class module\",end:\"$|;\",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{begin:\"<\\\\s*\",contains:[{begin:\"(\"+e.IDENT_RE+\"::)?\"+e.IDENT_RE}]}].concat(r)},{className:\"function\",beginKeywords:\"def\",end:\"$|;\",contains:[e.inherit(e.TITLE_MODE,{begin:n}),b].concat(r)},{begin:e.IDENT_RE+\"::\"},{className:\"symbol\",begin:e.UNDERSCORE_IDENT_RE+\"(\\\\!|\\\\?)?:\",relevance:0},{className:\"symbol\",begin:\":(?!\\\\s)\",contains:[t,{begin:n}],relevance:0},{className:\"number\",begin:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{begin:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{className:\"params\",begin:/\\|/,end:/\\|/,keywords:a},{begin:\"(\"+e.RE_STARTERS_RE+\"|unless)\\\\s*\",keywords:\"unless\",contains:[i,{className:\"regexp\",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\\n/,variants:[{begin:\"/\",end:\"/[a-z]*\"},{begin:\"%r{\",end:\"}[a-z]*\"},{begin:\"%r\\\\(\",end:\"\\\\)[a-z]*\"},{begin:\"%r!\",end:\"![a-z]*\"},{begin:\"%r\\\\[\",end:\"\\\\][a-z]*\"}]}].concat(r),relevance:0}].concat(r);c.contains=d,b.contains=d;var g=[{begin:/^\\s*=>/,starts:{end:\"$\",contains:d}},{className:\"meta\",begin:\"^([>?]>|[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>|(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>)\",starts:{end:\"$\",contains:d}}];return{name:\"Ruby\",aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],keywords:a,illegal:/\\/\\*/,contains:r.concat(g).concat(d)}}}());\nhljs.registerLanguage(\"rust\",function(){\"use strict\";return function(e){var n=\"([ui](8|16|32|64|128|size)|f(32|64))?\",t=\"drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!\";return{name:\"Rust\",aliases:[\"rs\"],keywords:{$pattern:e.IDENT_RE+\"!?\",keyword:\"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield\",literal:\"true false Some None Ok Err\",built_in:t},illegal:\"\"}]}}}());\nhljs.registerLanguage(\"scss\",function(){\"use strict\";return function(e){var t={className:\"variable\",begin:\"(\\\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\\\b\"},i={className:\"number\",begin:\"#[0-9A-Fa-f]+\"};return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:\"SCSS\",case_insensitive:!0,illegal:\"[=/|']\",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:\"selector-id\",begin:\"\\\\#[A-Za-z0-9_-]+\",relevance:0},{className:\"selector-class\",begin:\"\\\\.[A-Za-z0-9_-]+\",relevance:0},{className:\"selector-attr\",begin:\"\\\\[\",end:\"\\\\]\",illegal:\"$\"},{className:\"selector-tag\",begin:\"\\\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\\\b\",relevance:0},{className:\"selector-pseudo\",begin:\":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)\"},{className:\"selector-pseudo\",begin:\"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)\"},t,{className:\"attribute\",begin:\"\\\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\\\b\",illegal:\"[^\\\\s]\"},{begin:\"\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b\"},{begin:\":\",end:\";\",contains:[t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:\"meta\",begin:\"!important\"}]},{begin:\"@(page|font-face)\",lexemes:\"@[a-z-]+\",keywords:\"@page @font-face\"},{begin:\"@\",end:\"[{;]\",returnBegin:!0,keywords:\"and or not only\",contains:[{begin:\"@[a-z-]+\",className:\"keyword\"},t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE]}]}}}());\nhljs.registerLanguage(\"shell\",function(){\"use strict\";return function(s){return{name:\"Shell Session\",aliases:[\"console\"],contains:[{className:\"meta\",begin:\"^\\\\s{0,3}[/\\\\w\\\\d\\\\[\\\\]()@-]*[>%$#]\",starts:{end:\"$\",subLanguage:\"bash\"}}]}}}());\nhljs.registerLanguage(\"sql\",function(){\"use strict\";return function(e){var t=e.COMMENT(\"--\",\"$\");return{name:\"SQL\",case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:\"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with\",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\\w\\.]+/,keyword:\"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek\",literal:\"true false null unknown\",built_in:\"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void\"},contains:[{className:\"string\",begin:\"'\",end:\"'\",contains:[{begin:\"''\"}]},{className:\"string\",begin:'\"',end:'\"',contains:[{begin:'\"\"'}]},{className:\"string\",begin:\"`\",end:\"`\"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}}());\nhljs.registerLanguage(\"swift\",function(){\"use strict\";return function(e){var i={keyword:\"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet\",literal:\"true false nil\",built_in:\"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip\"},n=e.COMMENT(\"/\\\\*\",\"\\\\*/\",{contains:[\"self\"]}),t={className:\"subst\",begin:/\\\\\\(/,end:\"\\\\)\",keywords:i,contains:[]},a={className:\"string\",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/\"\"\"/,end:/\"\"\"/},{begin:/\"/,end:/\"/}]},r={className:\"number\",begin:\"\\\\b([\\\\d_]+(\\\\.[\\\\deE_]+)?|0x[a-fA-F0-9_]+(\\\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\\\b\",relevance:0};return t.contains=[r],{name:\"Swift\",keywords:i,contains:[a,e.C_LINE_COMMENT_MODE,n,{className:\"type\",begin:\"\\\\b[A-Z][\\\\wÀ-ʸ']*[!?]\"},{className:\"type\",begin:\"\\\\b[A-Z][\\\\wÀ-ʸ']*\",relevance:0},r,{className:\"function\",beginKeywords:\"func\",end:\"{\",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:\"params\",begin:/\\(/,end:/\\)/,endsParent:!0,keywords:i,contains:[\"self\",r,a,e.C_BLOCK_COMMENT_MODE,{begin:\":\"}],illegal:/[\"']/}],illegal:/\\[|%/},{className:\"class\",beginKeywords:\"struct protocol class extension enum\",keywords:i,end:\"\\\\{\",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/})]},{className:\"meta\",begin:\"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\\\b\"},{beginKeywords:\"import\",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}}}());\nhljs.registerLanguage(\"typescript\",function(){\"use strict\";const e=[\"as\",\"in\",\"of\",\"if\",\"for\",\"while\",\"finally\",\"var\",\"new\",\"function\",\"do\",\"return\",\"void\",\"else\",\"break\",\"catch\",\"instanceof\",\"with\",\"throw\",\"case\",\"default\",\"try\",\"switch\",\"continue\",\"typeof\",\"delete\",\"let\",\"yield\",\"const\",\"class\",\"debugger\",\"async\",\"await\",\"static\",\"import\",\"from\",\"export\",\"extends\"],n=[\"true\",\"false\",\"null\",\"undefined\",\"NaN\",\"Infinity\"],a=[].concat([\"setInterval\",\"setTimeout\",\"clearInterval\",\"clearTimeout\",\"require\",\"exports\",\"eval\",\"isFinite\",\"isNaN\",\"parseFloat\",\"parseInt\",\"decodeURI\",\"decodeURIComponent\",\"encodeURI\",\"encodeURIComponent\",\"escape\",\"unescape\"],[\"arguments\",\"this\",\"super\",\"console\",\"window\",\"document\",\"localStorage\",\"module\",\"global\"],[\"Intl\",\"DataView\",\"Number\",\"Math\",\"Date\",\"String\",\"RegExp\",\"Object\",\"Function\",\"Boolean\",\"Error\",\"Symbol\",\"Set\",\"Map\",\"WeakSet\",\"WeakMap\",\"Proxy\",\"Reflect\",\"JSON\",\"Promise\",\"Float64Array\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Uint16Array\",\"Uint32Array\",\"Float32Array\",\"Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"ArrayBuffer\"],[\"EvalError\",\"InternalError\",\"RangeError\",\"ReferenceError\",\"SyntaxError\",\"TypeError\",\"URIError\"]);return function(r){var t={$pattern:\"[A-Za-z$_][0-9A-Za-z$_]*\",keyword:e.concat([\"type\",\"namespace\",\"typedef\",\"interface\",\"public\",\"private\",\"protected\",\"implements\",\"declare\",\"abstract\",\"readonly\"]).join(\" \"),literal:n.join(\" \"),built_in:a.concat([\"any\",\"void\",\"number\",\"boolean\",\"string\",\"object\",\"never\",\"enum\"]).join(\" \")},s={className:\"meta\",begin:\"@[A-Za-z$_][0-9A-Za-z$_]*\"},i={className:\"number\",variants:[{begin:\"\\\\b(0[bB][01]+)n?\"},{begin:\"\\\\b(0[oO][0-7]+)n?\"},{begin:r.C_NUMBER_RE+\"n?\"}],relevance:0},o={className:\"subst\",begin:\"\\\\$\\\\{\",end:\"\\\\}\",keywords:t,contains:[]},c={begin:\"html`\",end:\"\",starts:{end:\"`\",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:\"xml\"}},l={begin:\"css`\",end:\"\",starts:{end:\"`\",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:\"css\"}},E={className:\"string\",begin:\"`\",end:\"`\",contains:[r.BACKSLASH_ESCAPE,o]};o.contains=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,i,r.REGEXP_MODE];var d={begin:\"\\\\(\",end:/\\)/,keywords:t,contains:[\"self\",r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.NUMBER_MODE]},u={className:\"params\",begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,s,d]};return{name:\"TypeScript\",aliases:[\"ts\"],keywords:t,contains:[r.SHEBANG(),{className:\"meta\",begin:/^\\s*['\"]use strict['\"]/},r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,i,{begin:\"(\"+r.RE_STARTERS_RE+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",keywords:\"return throw case\",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,r.REGEXP_MODE,{className:\"function\",begin:\"(\\\\([^(]*(\\\\([^(]*(\\\\([^(]*\\\\))?\\\\))?\\\\)|\"+r.UNDERSCORE_IDENT_RE+\")\\\\s*=>\",returnBegin:!0,end:\"\\\\s*=>\",contains:[{className:\"params\",variants:[{begin:r.UNDERSCORE_IDENT_RE},{className:null,begin:/\\(\\s*\\)/,skip:!0},{begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:d.contains}]}]}],relevance:0},{className:\"function\",beginKeywords:\"function\",end:/[\\{;]/,excludeEnd:!0,keywords:t,contains:[\"self\",r.inherit(r.TITLE_MODE,{begin:\"[A-Za-z$_][0-9A-Za-z$_]*\"}),u],illegal:/%/,relevance:0},{beginKeywords:\"constructor\",end:/[\\{;]/,excludeEnd:!0,contains:[\"self\",u]},{begin:/module\\./,keywords:{built_in:\"module\"},relevance:0},{beginKeywords:\"module\",end:/\\{/,excludeEnd:!0},{beginKeywords:\"interface\",end:/\\{/,excludeEnd:!0,keywords:\"interface extends\"},{begin:/\\$[(.]/},{begin:\"\\\\.\"+r.IDENT_RE,relevance:0},s,d]}}}());\nhljs.registerLanguage(\"yaml\",function(){\"use strict\";return function(e){var n=\"true false yes no null\",a=\"[\\\\w#;/?:@&=+$,.~*\\\\'()[\\\\]]+\",s={className:\"string\",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/\"/,end:/\"/},{begin:/\\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:\"template-variable\",variants:[{begin:\"{{\",end:\"}}\"},{begin:\"%{\",end:\"}\"}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/\"/,end:/\"/},{begin:/[^\\s,{}[\\]]+/}]}),l={end:\",\",endsWithParent:!0,excludeEnd:!0,contains:[],keywords:n,relevance:0},t={begin:\"{\",end:\"}\",contains:[l],illegal:\"\\\\n\",relevance:0},g={begin:\"\\\\[\",end:\"\\\\]\",contains:[l],illegal:\"\\\\n\",relevance:0},b=[{className:\"attr\",variants:[{begin:\"\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)\"},{begin:'\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)'},{begin:\"'\\\\w[\\\\w :\\\\/.-]*':(?=[ \\t]|$)\"}]},{className:\"meta\",begin:\"^---s*$\",relevance:10},{className:\"string\",begin:\"[\\\\|>]([0-9]?[+-])?[ ]*\\\\n( *)[\\\\S ]+\\\\n(\\\\2[\\\\S ]+\\\\n?)*\"},{begin:\"<%[%=-]?\",end:\"[%-]?%>\",subLanguage:\"ruby\",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:\"type\",begin:\"!\\\\w+!\"+a},{className:\"type\",begin:\"!<\"+a+\">\"},{className:\"type\",begin:\"!\"+a},{className:\"type\",begin:\"!!\"+a},{className:\"meta\",begin:\"&\"+e.UNDERSCORE_IDENT_RE+\"$\"},{className:\"meta\",begin:\"\\\\*\"+e.UNDERSCORE_IDENT_RE+\"$\"},{className:\"bullet\",begin:\"\\\\-(?=[ ]|$)\",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:\"number\",begin:\"\\\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\\\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\\\.[0-9]*)?([ \\\\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\\\b\"},{className:\"number\",begin:e.C_NUMBER_RE+\"\\\\b\"},t,g,s],c=[...b];return c.pop(),c.push(i),l.contains=c,{name:\"YAML\",case_insensitive:!0,aliases:[\"yml\",\"YAML\"],contains:b}}}());"],"names":["hljs","e","n","Object","freeze","t","getOwnPropertyNames","forEach","r","hasOwnProperty","call","isFrozen","constructor","data","ignoreMatch","ignore","replace","a","nodeName","toLowerCase","i","__proto__","escapeHTML","inherit","nodeStream","firstChild","nextSibling","nodeType","nodeValue","length","push","event","offset","node","match","mergeStreams","s","o","l","c","map","attributes","value","join","u","g","d","substring","reverse","splice","pop","substr","kind","buffer","classPrefix","walk","addText","openNode","sublanguage","span","closeNode","rootNode","children","stack","top","root","add","closeAllNodes","toJSON","JSON","stringify","_walk","_collapse","every","options","addKeyword","addSublanguage","toHTML","finalize","source","h","begin","relevance","f","className","end","illegal","contains","p","m","b","v","x","E","_","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","binary","index","BACKSLASH_ESCAPE","APOS_STRING_MODE","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","END_SAME_AS_BEGIN","assign","_beginMatch","w","split","N","includes","y","props","detectedLanguage","unknownLanguage","computed","highlighted","autoDetect","getLanguage","language","console","warn","code","highlightAuto","highlight","ignoreIllegals","detectectLanguage","autodetect","render","class","domProps","innerHTML","R","install","component","k","O","M","L","T","Symbol","create","disableAutodetect","name","noHighlightRe","languageDetectRe","tabReplace","useBR","languages","__emitter","test","S","result","case_insensitive","prototype","keywords","subLanguage","j","emitter","keywordPatternRe","lastIndex","exec","parent","matcher","regexIndex","I","type","slice","Error","languageName","badRule","rule","__beforeBegin","endSameAsBegin","endRe","RegExp","skip","excludeBegin","returnBegin","mode","endsParent","endsWithParent","returnEnd","excludeEnd","starts","error","matchIndexes","regexes","matchAt","position","addRule","toString","compile","matcherRe","findIndex","rules","multiRegexes","count","getMatcher","resumingScanAtSamePosition","considerAll","input","compiled","beginKeywords","$pattern","keys","lexemes","beginRe","terminator_end","illegalRe","concat","variants","cached_variants","unshift","A","message","illegalBy","msg","context","sofar","errorRaised","filter","second_best","parentNode","find","block","document","createElement","textContent","trim","re","relavance","called","querySelectorAll","fixMarkup","highlightBlock","configure","initHighlighting","initHighlightingOnLoad","window","addEventListener","registerLanguage","rawDefinition","bind","aliases","listLanguages","registerAliases","requireLanguage","autoDetection","addPlugin","vuePlugin","debugMode","safeMode","versionString","exports","module","nomarkup","literal","keyword","built_in","preprocessor","strings"],"mappings":"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"} \ No newline at end of file diff --git a/__transpiled/js/main.js b/__transpiled/js/main.js deleted file mode 100644 index cc879a3ca..000000000 --- a/__transpiled/js/main.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -require('source-map-support/register'); - -/* eslint-disable */ -function bindExpanders() { - var props = document.querySelectorAll('.js-prop'); - - for (let index = 0; index < props.length; index++) { - const prop = props[index]; - prop.addEventListener('click', function (ev) { - ev.stopPropagation(); - ev.currentTarget.parentElement.classList.toggle('is-open'); - }); - } -} - -function highlightCode() { - var blocks = document.querySelectorAll('.hljs code'); - - for (var i = 0; i < blocks.length; i++) { - hljs.highlightBlock(blocks[i]); - } -} - -function bindMenuItems() { - var items = document.querySelectorAll('.js-menu-item'); - - for (var i = 0; i < items.length; i++) { - items[i].addEventListener('click', function () { - document.getElementById("burger-menu").checked = false; - }); - } -} - -window.addEventListener('load', highlightCode); -window.addEventListener('load', bindExpanders); -window.addEventListener('load', bindMenuItems); -//# sourceMappingURL=main.js.map diff --git a/__transpiled/js/main.js.map b/__transpiled/js/main.js.map deleted file mode 100644 index b11cac39c..000000000 --- a/__transpiled/js/main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.js","sources":["../../template/js/main.js"],"sourcesContent":["/* eslint-disable */\n\nfunction bindExpanders() {\n var props = document.querySelectorAll('.js-prop');\n for (let index = 0; index < props.length; index++) {\n const prop = props[index];\n prop.addEventListener('click', function (ev) {\n ev.stopPropagation();\n ev.currentTarget.parentElement.classList.toggle('is-open');\n });\n }\n}\n\nfunction highlightCode() {\n var blocks = document.querySelectorAll('.hljs code');\n\n for (var i = 0; i < blocks.length; i++) {\n hljs.highlightBlock(blocks[i]);\n }\n}\n\nfunction bindMenuItems() {\n var items = document.querySelectorAll('.js-menu-item');\n\n for (var i = 0; i < items.length; i++) {\n items[i].addEventListener('click', function () {\n document.getElementById(\"burger-menu\").checked = false;\n });\n }\n}\n\nwindow.addEventListener('load', highlightCode);\nwindow.addEventListener('load', bindExpanders);\nwindow.addEventListener('load', bindMenuItems);\n"],"names":["bindExpanders","props","document","querySelectorAll","index","length","prop","addEventListener","ev","stopPropagation","currentTarget","parentElement","classList","toggle","highlightCode","blocks","i","hljs","highlightBlock","bindMenuItems","items","getElementById","checked","window"],"mappings":";;;;AAAA;AAEA,SAASA,aAAT,GAAyB;AACvB,MAAIC,KAAK,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,UAA1B,CAAZ;;AACA,OAAK,IAAIC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGH,KAAK,CAACI,MAAlC,EAA0CD,KAAK,EAA/C,EAAmD;AACjD,UAAME,IAAI,GAAGL,KAAK,CAACG,KAAD,CAAlB;AACAE,IAAAA,IAAI,CAACC,gBAAL,CAAsB,OAAtB,EAA+B,UAAUC,EAAV,EAAc;AAC3CA,MAAAA,EAAE,CAACC,eAAH;AACAD,MAAAA,EAAE,CAACE,aAAH,CAAiBC,aAAjB,CAA+BC,SAA/B,CAAyCC,MAAzC,CAAgD,SAAhD;AACD,KAHD;AAID;AACF;;AAED,SAASC,aAAT,GAAyB;AACvB,MAAIC,MAAM,GAAGb,QAAQ,CAACC,gBAAT,CAA0B,YAA1B,CAAb;;AAEA,OAAK,IAAIa,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,MAAM,CAACV,MAA3B,EAAmCW,CAAC,EAApC,EAAwC;AACtCC,IAAAA,IAAI,CAACC,cAAL,CAAoBH,MAAM,CAACC,CAAD,CAA1B;AACD;AACF;;AAED,SAASG,aAAT,GAAyB;AACvB,MAAIC,KAAK,GAAGlB,QAAQ,CAACC,gBAAT,CAA0B,eAA1B,CAAZ;;AAEA,OAAK,IAAIa,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGI,KAAK,CAACf,MAA1B,EAAkCW,CAAC,EAAnC,EAAuC;AACrCI,IAAAA,KAAK,CAACJ,CAAD,CAAL,CAAST,gBAAT,CAA0B,OAA1B,EAAmC,YAAY;AAC7CL,MAAAA,QAAQ,CAACmB,cAAT,CAAwB,aAAxB,EAAuCC,OAAvC,GAAiD,KAAjD;AACD,KAFD;AAGD;AACF;;AAEDC,MAAM,CAAChB,gBAAP,CAAwB,MAAxB,EAAgCO,aAAhC;AACAS,MAAM,CAAChB,gBAAP,CAAwB,MAAxB,EAAgCP,aAAhC;AACAuB,MAAM,CAAChB,gBAAP,CAAwB,MAAxB,EAAgCY,aAAhC;;"} \ No newline at end of file diff --git a/__transpiled/js/react-dom.min.js b/__transpiled/js/react-dom.min.js deleted file mode 100644 index b41807d7f..000000000 --- a/__transpiled/js/react-dom.min.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('source-map-support/register'); - -//# sourceMappingURL=react-dom.min.js.map diff --git a/__transpiled/js/react-dom.min.js.map b/__transpiled/js/react-dom.min.js.map deleted file mode 100644 index 510bbf4b8..000000000 --- a/__transpiled/js/react-dom.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-dom.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/__transpiled/js/react.min.js b/__transpiled/js/react.min.js deleted file mode 100644 index 7da8abe5d..000000000 --- a/__transpiled/js/react.min.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('source-map-support/register'); - -//# sourceMappingURL=react.min.js.map diff --git a/__transpiled/js/react.min.js.map b/__transpiled/js/react.min.js.map deleted file mode 100644 index 43a75ded7..000000000 --- a/__transpiled/js/react.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/__transpiled/js/web-component-polyfill.js b/__transpiled/js/web-component-polyfill.js deleted file mode 100644 index ba14ce45a..000000000 --- a/__transpiled/js/web-component-polyfill.js +++ /dev/null @@ -1,6617 +0,0 @@ -'use strict'; - -require('source-map-support/register'); - -/** -@license @nocompile -Copyright (c) 2018 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt -*/ -(function () { - - var v; - - function ba(a) { - var b = 0; - return function () { - return b < a.length ? { - done: !1, - value: a[b++] - } : { - done: !0 - }; - }; - } - - var ca = "function" == typeof Object.defineProperties ? Object.defineProperty : function (a, b, c) { - a != Array.prototype && a != Object.prototype && (a[b] = c.value); - }, - da = "undefined" != typeof window && window === this ? this : "undefined" != typeof global && null != global ? global : this; - - function ea() { - ea = function () {}; - - da.Symbol || (da.Symbol = ha); - } - - function ia(a, b) { - this.a = a; - ca(this, "description", { - configurable: !0, - writable: !0, - value: b - }); - } - - ia.prototype.toString = function () { - return this.a; - }; - - var ha = function () { - function a(c) { - if (this instanceof a) throw new TypeError("Symbol is not a constructor"); - return new ia("jscomp_symbol_" + (c || "") + "_" + b++, c); - } - - var b = 0; - return a; - }(); - - function ja() { - ea(); - var a = da.Symbol.iterator; - a || (a = da.Symbol.iterator = da.Symbol("Symbol.iterator")); - "function" != typeof Array.prototype[a] && ca(Array.prototype, a, { - configurable: !0, - writable: !0, - value: function () { - return ma(ba(this)); - } - }); - - ja = function () {}; - } - - function ma(a) { - ja(); - a = { - next: a - }; - - a[da.Symbol.iterator] = function () { - return this; - }; - - return a; - } - - function na(a) { - var b = "undefined" != typeof Symbol && Symbol.iterator && a[Symbol.iterator]; - return b ? b.call(a) : { - next: ba(a) - }; - } - - function x(a) { - if (!(a instanceof Array)) { - a = na(a); - - for (var b, c = []; !(b = a.next()).done;) c.push(b.value); - - a = c; - } - - return a; - } - - var oa; - if ("function" == typeof Object.setPrototypeOf) oa = Object.setPrototypeOf;else { - var pa; - - a: { - var qa = { - Pa: !0 - }, - ra = {}; - - try { - ra.__proto__ = qa; - pa = ra.Pa; - break a; - } catch (a) {} - - pa = !1; - } - - oa = pa ? function (a, b) { - a.__proto__ = b; - if (a.__proto__ !== b) throw new TypeError(a + " is not extensible"); - return a; - } : null; - } - var sa = oa; - - function ta() { - this.l = !1; - this.b = null; - this.Ea = void 0; - this.a = 1; - this.Y = 0; - this.c = null; - } - - function ua(a) { - if (a.l) throw new TypeError("Generator is already running"); - a.l = !0; - } - - ta.prototype.J = function (a) { - this.Ea = a; - }; - - function xa(a, b) { - a.c = { - Sa: b, - Wa: !0 - }; - a.a = a.Y; - } - - ta.prototype.return = function (a) { - this.c = { - return: a - }; - this.a = this.Y; - }; - - function Aa(a, b) { - a.a = 3; - return { - value: b - }; - } - - function Ba(a) { - this.a = new ta(); - this.b = a; - } - - function Ca(a, b) { - ua(a.a); - var c = a.a.b; - if (c) return Da(a, "return" in c ? c["return"] : function (d) { - return { - value: d, - done: !0 - }; - }, b, a.a.return); - a.a.return(b); - return Ea(a); - } - - function Da(a, b, c, d) { - try { - var e = b.call(a.a.b, c); - if (!(e instanceof Object)) throw new TypeError("Iterator result " + e + " is not an object"); - if (!e.done) return a.a.l = !1, e; - var f = e.value; - } catch (g) { - return a.a.b = null, xa(a.a, g), Ea(a); - } - - a.a.b = null; - d.call(a.a, f); - return Ea(a); - } - - function Ea(a) { - for (; a.a.a;) try { - var b = a.b(a.a); - if (b) return a.a.l = !1, { - value: b.value, - done: !1 - }; - } catch (c) { - a.a.Ea = void 0, xa(a.a, c); - } - - a.a.l = !1; - - if (a.a.c) { - b = a.a.c; - a.a.c = null; - if (b.Wa) throw b.Sa; - return { - value: b.return, - done: !0 - }; - } - - return { - value: void 0, - done: !0 - }; - } - - function Fa(a) { - this.next = function (b) { - ua(a.a); - a.a.b ? b = Da(a, a.a.b.next, b, a.a.J) : (a.a.J(b), b = Ea(a)); - return b; - }; - - this.throw = function (b) { - ua(a.a); - a.a.b ? b = Da(a, a.a.b["throw"], b, a.a.J) : (xa(a.a, b), b = Ea(a)); - return b; - }; - - this.return = function (b) { - return Ca(a, b); - }; - - ja(); - - this[Symbol.iterator] = function () { - return this; - }; - } - - function Ga(a, b) { - b = new Fa(new Ba(b)); - sa && sa(b, a.prototype); - return b; - } - - Array.from || (Array.from = function (a) { - return [].slice.call(a); - }); - Object.assign || (Object.assign = function (a) { - for (var b = [].slice.call(arguments, 1), c = 0, d; c < b.length; c++) if (d = b[c]) for (var e = a, f = Object.keys(d), g = 0; g < f.length; g++) { - var h = f[g]; - e[h] = d[h]; - } - - return a; - }); - var Ha = setTimeout; - - function Ia() {} - - function Ja(a, b) { - return function () { - a.apply(b, arguments); - }; - } - - function A(a) { - if (!(this instanceof A)) throw new TypeError("Promises must be constructed via new"); - if ("function" !== typeof a) throw new TypeError("not a function"); - this.I = 0; - this.za = !1; - this.C = void 0; - this.W = []; - Ka(a, this); - } - - function La(a, b) { - for (; 3 === a.I;) a = a.C; - - 0 === a.I ? a.W.push(b) : (a.za = !0, Ma(function () { - var c = 1 === a.I ? b.Ya : b.Za; - if (null === c) (1 === a.I ? Na : Oa)(b.va, a.C);else { - try { - var d = c(a.C); - } catch (e) { - Oa(b.va, e); - return; - } - - Na(b.va, d); - } - })); - } - - function Na(a, b) { - try { - if (b === a) throw new TypeError("A promise cannot be resolved with itself."); - - if (b && ("object" === typeof b || "function" === typeof b)) { - var c = b.then; - - if (b instanceof A) { - a.I = 3; - a.C = b; - Pa(a); - return; - } - - if ("function" === typeof c) { - Ka(Ja(c, b), a); - return; - } - } - - a.I = 1; - a.C = b; - Pa(a); - } catch (d) { - Oa(a, d); - } - } - - function Oa(a, b) { - a.I = 2; - a.C = b; - Pa(a); - } - - function Pa(a) { - 2 === a.I && 0 === a.W.length && Ma(function () { - a.za || "undefined" !== typeof console && console && console.warn("Possible Unhandled Promise Rejection:", a.C); - }); - - for (var b = 0, c = a.W.length; b < c; b++) La(a, a.W[b]); - - a.W = null; - } - - function Qa(a, b, c) { - this.Ya = "function" === typeof a ? a : null; - this.Za = "function" === typeof b ? b : null; - this.va = c; - } - - function Ka(a, b) { - var c = !1; - - try { - a(function (d) { - c || (c = !0, Na(b, d)); - }, function (d) { - c || (c = !0, Oa(b, d)); - }); - } catch (d) { - c || (c = !0, Oa(b, d)); - } - } - - A.prototype["catch"] = function (a) { - return this.then(null, a); - }; - - A.prototype.then = function (a, b) { - var c = new this.constructor(Ia); - La(this, new Qa(a, b, c)); - return c; - }; - - A.prototype["finally"] = function (a) { - var b = this.constructor; - return this.then(function (c) { - return b.resolve(a()).then(function () { - return c; - }); - }, function (c) { - return b.resolve(a()).then(function () { - return b.reject(c); - }); - }); - }; - - function Ra(a) { - return new A(function (b, c) { - function d(h, k) { - try { - if (k && ("object" === typeof k || "function" === typeof k)) { - var l = k.then; - - if ("function" === typeof l) { - l.call(k, function (m) { - d(h, m); - }, c); - return; - } - } - - e[h] = k; - 0 === --f && b(e); - } catch (m) { - c(m); - } - } - - if (!a || "undefined" === typeof a.length) return c(new TypeError("Promise.all accepts an array")); - var e = Array.prototype.slice.call(a); - if (0 === e.length) return b([]); - - for (var f = e.length, g = 0; g < e.length; g++) d(g, e[g]); - }); - } - - function Sa(a) { - return a && "object" === typeof a && a.constructor === A ? a : new A(function (b) { - b(a); - }); - } - - function Ta(a) { - return new A(function (b, c) { - c(a); - }); - } - - function Ua(a) { - return new A(function (b, c) { - if (!a || "undefined" === typeof a.length) return c(new TypeError("Promise.race accepts an array")); - - for (var d = 0, e = a.length; d < e; d++) Sa(a[d]).then(b, c); - }); - } - - var Ma = "function" === typeof setImmediate && function (a) { - setImmediate(a); - } || function (a) { - Ha(a, 0); - }; - /* - Copyright (c) 2017 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at - http://polymer.github.io/LICENSE.txt The complete set of authors may be found at - http://polymer.github.io/AUTHORS.txt The complete set of contributors may be - found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as - part of the polymer project is also subject to an additional IP rights grant - found at http://polymer.github.io/PATENTS.txt - */ - - - if (!window.Promise) { - window.Promise = A; - A.prototype.then = A.prototype.then; - A.all = Ra; - A.race = Ua; - A.resolve = Sa; - A.reject = Ta; - var Va = document.createTextNode(""), - Xa = []; - new MutationObserver(function () { - for (var a = Xa.length, b = 0; b < a; b++) Xa[b](); - - Xa.splice(0, a); - }).observe(Va, { - characterData: !0 - }); - - Ma = function (a) { - Xa.push(a); - Va.textContent = 0 < Va.textContent.length ? "" : "a"; - }; - } - /* - Copyright (C) 2015 by WebReflection - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - */ - - (function (a, b) { - if (!(b in a)) { - var c = typeof global === typeof c ? window : global, - d = 0, - e = "" + Math.random(), - f = "__\u0001symbol@@" + e, - g = a.getOwnPropertyNames, - h = a.getOwnPropertyDescriptor, - k = a.create, - l = a.keys, - m = a.freeze || a, - q = a.defineProperty, - H = a.defineProperties, - C = h(a, "getOwnPropertyNames"), - t = a.prototype, - F = t.hasOwnProperty, - E = t.propertyIsEnumerable, - M = t.toString, - y = function (I, u, G) { - F.call(I, f) || q(I, f, { - enumerable: !1, - configurable: !1, - writable: !1, - value: {} - }); - I[f]["@@" + u] = G; - }, - W = function (I, u) { - var G = k(I); - g(u).forEach(function (p) { - va.call(u, p) && Wa(G, p, u[p]); - }); - return G; - }, - w = function () {}, - wa = function (I) { - return I != f && !F.call(ka, I); - }, - fa = function (I) { - return I != f && F.call(ka, I); - }, - va = function (I) { - var u = "" + I; - return fa(u) ? F.call(this, u) && this[f]["@@" + u] : E.call(this, I); - }, - n = function (I) { - q(t, I, { - enumerable: !1, - configurable: !0, - get: w, - set: function (u) { - za(this, I, { - enumerable: !1, - configurable: !0, - writable: !0, - value: u - }); - y(this, I, !0); - } - }); - return m(ka[I] = q(a(I), "constructor", hc)); - }, - J = function G(u) { - if (this instanceof G) throw new TypeError("Symbol is not a constructor"); - return n("__\u0001symbol:".concat(u || "", e, ++d)); - }, - ka = k(null), - hc = { - value: J - }, - hb = function (u) { - return ka[u]; - }, - Wa = function (u, G, p) { - var r = "" + G; - - if (fa(r)) { - G = za; - - if (p.enumerable) { - var B = k(p); - B.enumerable = !1; - } else B = p; - - G(u, r, B); - y(u, r, !!p.enumerable); - } else q(u, G, p); - - return u; - }, - ib = function (u) { - return g(u).filter(fa).map(hb); - }; - - C.value = Wa; - q(a, "defineProperty", C); - C.value = ib; - q(a, b, C); - - C.value = function (u) { - return g(u).filter(wa); - }; - - q(a, "getOwnPropertyNames", C); - - C.value = function (u, G) { - var p = ib(G); - p.length ? l(G).concat(p).forEach(function (r) { - va.call(G, r) && Wa(u, r, G[r]); - }) : H(u, G); - return u; - }; - - q(a, "defineProperties", C); - C.value = va; - q(t, "propertyIsEnumerable", C); - C.value = J; - q(c, "Symbol", C); - - C.value = function (u) { - u = "__\u0001symbol:".concat("__\u0001symbol:", u, e); - return u in t ? ka[u] : n(u); - }; - - q(J, "for", C); - - C.value = function (u) { - if (wa(u)) throw new TypeError(u + " is not a symbol"); - if (F.call(ka, u) && (u = u.slice(10), "__\u0001symbol:" === u.slice(0, 10) && (u = u.slice(10), u !== e))) return u = u.slice(0, u.length - e.length), 0 < u.length ? u : void 0; - }; - - q(J, "keyFor", C); - - C.value = function (u, G) { - var p = h(u, G); - p && fa(G) && (p.enumerable = va.call(u, G)); - return p; - }; - - q(a, "getOwnPropertyDescriptor", C); - - C.value = function (u, G) { - return 1 === arguments.length || "undefined" === typeof G ? k(u) : W(u, G); - }; - - q(a, "create", C); - - C.value = function () { - var u = M.call(this); - return "[object String]" === u && fa(this) ? "[object Symbol]" : u; - }; - - q(t, "toString", C); - - try { - if (!0 === k(q({}, "__\u0001symbol:", { - get: function () { - return q(this, "__\u0001symbol:", { - value: !0 - })["__\u0001symbol:"]; - } - }))["__\u0001symbol:"]) var za = q;else throw "IE11"; - } catch (u) { - za = function (G, p, r) { - var B = h(t, p); - delete t[p]; - q(G, p, r); - q(t, p, B); - }; - } - } - })(Object, "getOwnPropertySymbols"); - - (function (a, b) { - var c = a.defineProperty, - d = a.prototype, - e = d.toString, - f; - "iterator match replace search split hasInstance isConcatSpreadable unscopables species toPrimitive toStringTag".split(" ").forEach(function (g) { - if (!(g in b)) switch (c(b, g, { - value: b(g) - }), g) { - case "toStringTag": - f = a.getOwnPropertyDescriptor(d, "toString"), f.value = function () { - var h = e.call(this), - k = null != this ? this[b.toStringTag] : this; - return null == k ? h : "[object " + k + "]"; - }, c(d, "toString", f); - } - }); - })(Object, Symbol); - - (function (a, b, c) { - function d() { - return this; - } - - b[a] || (b[a] = function () { - var e = 0, - f = this, - g = { - next: function () { - var h = f.length <= e; - return h ? { - done: h - } : { - done: h, - value: f[e++] - }; - } - }; - g[a] = d; - return g; - }); - c[a] || (c[a] = function () { - var e = String.fromCodePoint, - f = this, - g = 0, - h = f.length, - k = { - next: function () { - var l = h <= g, - m = l ? "" : e(f.codePointAt(g)); - g += m.length; - return l ? { - done: l - } : { - done: l, - value: m - }; - } - }; - k[a] = d; - return k; - }); - })(Symbol.iterator, Array.prototype, String.prototype); - /* - Copyright (c) 2018 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at - http://polymer.github.io/LICENSE.txt The complete set of authors may be found at - http://polymer.github.io/AUTHORS.txt The complete set of contributors may be - found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as - part of the polymer project is also subject to an additional IP rights grant - found at http://polymer.github.io/PATENTS.txt - */ - - - var Ya = Object.prototype.toString; - - Object.prototype.toString = function () { - return void 0 === this ? "[object Undefined]" : null === this ? "[object Null]" : Ya.call(this); - }; - - Object.keys = function (a) { - return Object.getOwnPropertyNames(a).filter(function (b) { - return (b = Object.getOwnPropertyDescriptor(a, b)) && b.enumerable; - }); - }; - - ea(); - ja(); - String.prototype[Symbol.iterator] && String.prototype.codePointAt || (ea(), ja(), String.prototype[Symbol.iterator] = function b() { - var c, - d = this; - return Ga(b, function (e) { - 1 == e.a && (c = 0); - if (3 != e.a) return c < d.length ? e = Aa(e, d[c]) : (e.a = 0, e = void 0), e; - c++; - e.a = 2; - }); - }); - ea(); - ja(); - Set.prototype[Symbol.iterator] || (ea(), ja(), Set.prototype[Symbol.iterator] = function b() { - var c, - d = this, - e; - return Ga(b, function (f) { - 1 == f.a && (c = [], d.forEach(function (g) { - c.push(g); - }), e = 0); - if (3 != f.a) return e < c.length ? f = Aa(f, c[e]) : (f.a = 0, f = void 0), f; - e++; - f.a = 2; - }); - }); - ea(); - ja(); - Map.prototype[Symbol.iterator] || (ea(), ja(), Map.prototype[Symbol.iterator] = function b() { - var c, - d = this, - e; - return Ga(b, function (f) { - 1 == f.a && (c = [], d.forEach(function (g, h) { - c.push([h, g]); - }), e = 0); - if (3 != f.a) return e < c.length ? f = Aa(f, c[e]) : (f.a = 0, f = void 0), f; - e++; - f.a = 2; - }); - }); - /* - Copyright (c) 2020 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ - - var Za = document.createEvent("Event"); - Za.initEvent("foo", !0, !0); - Za.preventDefault(); - - if (!Za.defaultPrevented) { - var $a = Event.prototype.preventDefault; - - Event.prototype.preventDefault = function () { - this.cancelable && ($a.call(this), Object.defineProperty(this, "defaultPrevented", { - get: function () { - return !0; - }, - configurable: !0 - })); - }; - } - - var ab = /Trident/.test(navigator.userAgent); - - if (!window.Event || ab && "function" !== typeof window.Event) { - var bb = window.Event; - - window.Event = function (a, b) { - b = b || {}; - var c = document.createEvent("Event"); - c.initEvent(a, !!b.bubbles, !!b.cancelable); - return c; - }; - - if (bb) { - for (var cb in bb) window.Event[cb] = bb[cb]; - - window.Event.prototype = bb.prototype; - } - } - - if (!window.CustomEvent || ab && "function" !== typeof window.CustomEvent) window.CustomEvent = function (a, b) { - b = b || {}; - var c = document.createEvent("CustomEvent"); - c.initCustomEvent(a, !!b.bubbles, !!b.cancelable, b.detail); - return c; - }, window.CustomEvent.prototype = window.Event.prototype; - - if (!window.MouseEvent || ab && "function" !== typeof window.MouseEvent) { - var db = window.MouseEvent; - - window.MouseEvent = function (a, b) { - b = b || {}; - var c = document.createEvent("MouseEvent"); - c.initMouseEvent(a, !!b.bubbles, !!b.cancelable, b.view || window, b.detail, b.screenX, b.screenY, b.clientX, b.clientY, b.ctrlKey, b.altKey, b.shiftKey, b.metaKey, b.button, b.relatedTarget); - return c; - }; - - if (db) for (var eb in db) window.MouseEvent[eb] = db[eb]; - window.MouseEvent.prototype = db.prototype; - } - Object.getOwnPropertyDescriptor(Node.prototype, "baseURI") || Object.defineProperty(Node.prototype, "baseURI", { - get: function () { - var a = (this.ownerDocument || this).querySelector("base[href]"); - return a && a.href || window.location.href; - }, - configurable: !0, - enumerable: !0 - }); - /* - Copyright (c) 2020 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at - http://polymer.github.io/LICENSE.txt The complete set of authors may be found at - http://polymer.github.io/AUTHORS.txt The complete set of contributors may be - found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as - part of the polymer project is also subject to an additional IP rights grant - found at http://polymer.github.io/PATENTS.txt - */ - - var fb, - gb, - jb = Element.prototype, - kb = null !== (fb = Object.getOwnPropertyDescriptor(jb, "attributes")) && void 0 !== fb ? fb : Object.getOwnPropertyDescriptor(Node.prototype, "attributes"), - lb = null !== (gb = null === kb || void 0 === kb ? void 0 : kb.get) && void 0 !== gb ? gb : function () { - return this.attributes; - }, - mb = Array.prototype.map; - jb.hasOwnProperty("getAttributeNames") || (jb.getAttributeNames = function () { - return mb.call(lb.call(this), function (a) { - return a.name; - }); - }); - var pb, - qb = Element.prototype; - qb.hasOwnProperty("matches") || (qb.matches = null !== (pb = qb.webkitMatchesSelector) && void 0 !== pb ? pb : qb.msMatchesSelector); - var rb = Node.prototype.appendChild; - - function sb(a) { - a = a.prototype; - a.hasOwnProperty("append") || Object.defineProperty(a, "append", { - configurable: !0, - enumerable: !0, - writable: !0, - value: function (b) { - for (var c = [], d = 0; d < arguments.length; ++d) c[d] = arguments[d]; - - c = na(c); - - for (d = c.next(); !d.done; d = c.next()) d = d.value, rb.call(this, "string" === typeof d ? document.createTextNode(d) : d); - } - }); - } - - sb(Document); - sb(DocumentFragment); - sb(Element); - var tb, - ub, - vb = Node.prototype.insertBefore, - wb = null !== (ub = null === (tb = Object.getOwnPropertyDescriptor(Node.prototype, "firstChild")) || void 0 === tb ? void 0 : tb.get) && void 0 !== ub ? ub : function () { - return this.firstChild; - }; - - function xb(a) { - a = a.prototype; - a.hasOwnProperty("prepend") || Object.defineProperty(a, "prepend", { - configurable: !0, - enumerable: !0, - writable: !0, - value: function (b) { - for (var c = [], d = 0; d < arguments.length; ++d) c[d] = arguments[d]; - - d = wb.call(this); - c = na(c); - - for (var e = c.next(); !e.done; e = c.next()) e = e.value, vb.call(this, "string" === typeof e ? document.createTextNode(e) : e, d); - } - }); - } - - xb(Document); - xb(DocumentFragment); - xb(Element); - var yb, - zb, - Ab = Node.prototype.appendChild, - Bb = Node.prototype.removeChild, - Cb = null !== (zb = null === (yb = Object.getOwnPropertyDescriptor(Node.prototype, "firstChild")) || void 0 === yb ? void 0 : yb.get) && void 0 !== zb ? zb : function () { - return this.firstChild; - }; - - function Db(a) { - a = a.prototype; - a.hasOwnProperty("replaceChildren") || Object.defineProperty(a, "replaceChildren", { - configurable: !0, - enumerable: !0, - writable: !0, - value: function (b) { - for (var c = [], d = 0; d < arguments.length; ++d) c[d] = arguments[d]; - - for (; null !== (d = Cb.call(this));) Bb.call(this, d); - - c = na(c); - - for (d = c.next(); !d.done; d = c.next()) d = d.value, Ab.call(this, "string" === typeof d ? document.createTextNode(d) : d); - } - }); - } - - Db(Document); - Db(DocumentFragment); - Db(Element); - var Eb, - Fb, - Gb, - Hb, - Ib = Node.prototype.insertBefore, - Jb = null !== (Fb = null === (Eb = Object.getOwnPropertyDescriptor(Node.prototype, "parentNode")) || void 0 === Eb ? void 0 : Eb.get) && void 0 !== Fb ? Fb : function () { - return this.parentNode; - }, - Kb = null !== (Hb = null === (Gb = Object.getOwnPropertyDescriptor(Node.prototype, "nextSibling")) || void 0 === Gb ? void 0 : Gb.get) && void 0 !== Hb ? Hb : function () { - return this.nextSibling; - }; - - function Lb(a) { - a = a.prototype; - a.hasOwnProperty("after") || Object.defineProperty(a, "after", { - configurable: !0, - enumerable: !0, - writable: !0, - value: function (b) { - for (var c = [], d = 0; d < arguments.length; ++d) c[d] = arguments[d]; - - d = Jb.call(this); - - if (null !== d) { - var e = Kb.call(this); - c = na(c); - - for (var f = c.next(); !f.done; f = c.next()) f = f.value, Ib.call(d, "string" === typeof f ? document.createTextNode(f) : f, e); - } - } - }); - } - - Lb(CharacterData); - Lb(Element); - var Mb, - Nb, - Ob = Node.prototype.insertBefore, - Pb = null !== (Nb = null === (Mb = Object.getOwnPropertyDescriptor(Node.prototype, "parentNode")) || void 0 === Mb ? void 0 : Mb.get) && void 0 !== Nb ? Nb : function () { - return this.parentNode; - }; - - function Qb(a) { - a = a.prototype; - a.hasOwnProperty("before") || Object.defineProperty(a, "before", { - configurable: !0, - enumerable: !0, - writable: !0, - value: function (b) { - for (var c = [], d = 0; d < arguments.length; ++d) c[d] = arguments[d]; - - d = Pb.call(this); - - if (null !== d) { - c = na(c); - - for (var e = c.next(); !e.done; e = c.next()) e = e.value, Ob.call(d, "string" === typeof e ? document.createTextNode(e) : e, this); - } - } - }); - } - - Qb(CharacterData); - Qb(Element); - var Rb, - Sb, - Tb = Node.prototype.removeChild, - Ub = null !== (Sb = null === (Rb = Object.getOwnPropertyDescriptor(Node.prototype, "parentNode")) || void 0 === Rb ? void 0 : Rb.get) && void 0 !== Sb ? Sb : function () { - return this.parentNode; - }; - - function Vb(a) { - a = a.prototype; - a.hasOwnProperty("remove") || Object.defineProperty(a, "remove", { - configurable: !0, - enumerable: !0, - writable: !0, - value: function () { - var b = Ub.call(this); - b && Tb.call(b, this); - } - }); - } - - Vb(CharacterData); - Vb(Element); - var Wb, - Xb, - Yb = Node.prototype.insertBefore, - Zb = Node.prototype.removeChild, - $b = null !== (Xb = null === (Wb = Object.getOwnPropertyDescriptor(Node.prototype, "parentNode")) || void 0 === Wb ? void 0 : Wb.get) && void 0 !== Xb ? Xb : function () { - return this.parentNode; - }; - - function ac(a) { - a = a.prototype; - a.hasOwnProperty("replaceWith") || Object.defineProperty(a, "replaceWith", { - configurable: !0, - enumerable: !0, - writable: !0, - value: function (b) { - for (var c = [], d = 0; d < arguments.length; ++d) c[d] = arguments[d]; - - d = $b.call(this); - - if (null !== d) { - c = na(c); - - for (var e = c.next(); !e.done; e = c.next()) e = e.value, Yb.call(d, "string" === typeof e ? document.createTextNode(e) : e, this); - - Zb.call(d, this); - } - } - }); - } - - ac(CharacterData); - ac(Element); - var bc = window.Element.prototype, - cc = window.HTMLElement.prototype, - dc = window.SVGElement.prototype; - !cc.hasOwnProperty("classList") || bc.hasOwnProperty("classList") || dc.hasOwnProperty("classList") || Object.defineProperty(bc, "classList", Object.getOwnPropertyDescriptor(cc, "classList")); - /* - Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at - http://polymer.github.io/LICENSE.txt The complete set of authors may be found - at http://polymer.github.io/AUTHORS.txt The complete set of contributors may - be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by - Google as part of the polymer project is also subject to an additional IP - rights grant found at http://polymer.github.io/PATENTS.txt - */ - - var ec = document.createElement("style"); - ec.textContent = "body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n"; - var fc = document.querySelector("head"); - fc.insertBefore(ec, fc.firstChild); - var gc = window; - gc.WebComponents = gc.WebComponents || { - flags: {} - }; - var ic = document.querySelector('script[src*="webcomponents-bundle"]'), - jc = /wc-(.+)/, - kc = {}; - - if (!kc.noOpts) { - location.search.slice(1).split("&").forEach(function (a) { - a = a.split("="); - var b; - a[0] && (b = a[0].match(jc)) && (kc[b[1]] = a[1] || !0); - }); - if (ic) for (var lc = 0, mc = void 0; mc = ic.attributes[lc]; lc++) "src" !== mc.name && (kc[mc.name] = mc.value || !0); - var nc = {}; - kc.log && kc.log.split && kc.log.split(",").forEach(function (a) { - nc[a] = !0; - }); - kc.log = nc; - } - - gc.WebComponents.flags = kc; - var oc = kc.shadydom; - - if (oc) { - gc.ShadyDOM = gc.ShadyDOM || {}; - gc.ShadyDOM.force = oc; - var pc = kc.noPatch; - gc.ShadyDOM.noPatch = "true" === pc ? !0 : pc; - } - - var qc = kc.register || kc.ce; - qc && window.customElements && (gc.customElements.forcePolyfill = qc); - /* - Copyright (c) 2016 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ - - (function () { - function a() {} - - function b(p, r) { - if (!p.childNodes.length) return []; - - switch (p.nodeType) { - case Node.DOCUMENT_NODE: - return F.call(p, r); - - case Node.DOCUMENT_FRAGMENT_NODE: - return E.call(p, r); - - default: - return t.call(p, r); - } - } - - var c = "undefined" === typeof HTMLTemplateElement, - d = !(document.createDocumentFragment().cloneNode() instanceof DocumentFragment), - e = !1; - /Trident/.test(navigator.userAgent) && function () { - function p(z, R) { - if (z instanceof DocumentFragment) for (var nb; nb = z.firstChild;) B.call(this, nb, R);else B.call(this, z, R); - return z; - } - - e = !0; - var r = Node.prototype.cloneNode; - - Node.prototype.cloneNode = function (z) { - z = r.call(this, z); - this instanceof DocumentFragment && (z.__proto__ = DocumentFragment.prototype); - return z; - }; - - DocumentFragment.prototype.querySelectorAll = HTMLElement.prototype.querySelectorAll; - DocumentFragment.prototype.querySelector = HTMLElement.prototype.querySelector; - Object.defineProperties(DocumentFragment.prototype, { - nodeType: { - get: function () { - return Node.DOCUMENT_FRAGMENT_NODE; - }, - configurable: !0 - }, - localName: { - get: function () {}, - configurable: !0 - }, - nodeName: { - get: function () { - return "#document-fragment"; - }, - configurable: !0 - } - }); - var B = Node.prototype.insertBefore; - Node.prototype.insertBefore = p; - var K = Node.prototype.appendChild; - - Node.prototype.appendChild = function (z) { - z instanceof DocumentFragment ? p.call(this, z, null) : K.call(this, z); - return z; - }; - - var aa = Node.prototype.removeChild, - la = Node.prototype.replaceChild; - - Node.prototype.replaceChild = function (z, R) { - z instanceof DocumentFragment ? (p.call(this, z, R), aa.call(this, R)) : la.call(this, z, R); - return R; - }; - - Document.prototype.createDocumentFragment = function () { - var z = this.createElement("df"); - z.__proto__ = DocumentFragment.prototype; - return z; - }; - - var ya = Document.prototype.importNode; - - Document.prototype.importNode = function (z, R) { - R = ya.call(this, z, R || !1); - z instanceof DocumentFragment && (R.__proto__ = DocumentFragment.prototype); - return R; - }; - }(); - - var f = Node.prototype.cloneNode, - g = Document.prototype.createElement, - h = Document.prototype.importNode, - k = Node.prototype.removeChild, - l = Node.prototype.appendChild, - m = Node.prototype.replaceChild, - q = DOMParser.prototype.parseFromString, - H = Object.getOwnPropertyDescriptor(window.HTMLElement.prototype, "innerHTML") || { - get: function () { - return this.innerHTML; - }, - set: function (p) { - this.innerHTML = p; - } - }, - C = Object.getOwnPropertyDescriptor(window.Node.prototype, "childNodes") || { - get: function () { - return this.childNodes; - } - }, - t = Element.prototype.querySelectorAll, - F = Document.prototype.querySelectorAll, - E = DocumentFragment.prototype.querySelectorAll, - M = function () { - if (!c) { - var p = document.createElement("template"), - r = document.createElement("template"); - r.content.appendChild(document.createElement("div")); - p.content.appendChild(r); - p = p.cloneNode(!0); - return 0 === p.content.childNodes.length || 0 === p.content.firstChild.content.childNodes.length || d; - } - }(); - - if (c) { - var y = document.implementation.createHTMLDocument("template"), - W = !0, - w = document.createElement("style"); - w.textContent = "template{display:none;}"; - var wa = document.head; - wa.insertBefore(w, wa.firstElementChild); - a.prototype = Object.create(HTMLElement.prototype); - var fa = !document.createElement("div").hasOwnProperty("innerHTML"); - - a.U = function (p) { - if (!p.content && p.namespaceURI === document.documentElement.namespaceURI) { - p.content = y.createDocumentFragment(); - - for (var r; r = p.firstChild;) l.call(p.content, r); - - if (fa) p.__proto__ = a.prototype;else if (p.cloneNode = function (B) { - return a.b(this, B); - }, W) try { - n(p), J(p); - } catch (B) { - W = !1; - } - a.a(p.content); - } - }; - - var va = { - option: ["select"], - thead: ["table"], - col: ["colgroup", "table"], - tr: ["tbody", "table"], - th: ["tr", "tbody", "table"], - td: ["tr", "tbody", "table"] - }, - n = function (p) { - Object.defineProperty(p, "innerHTML", { - get: function () { - return za(this); - }, - set: function (r) { - var B = va[(/<([a-z][^/\0>\x20\t\r\n\f]+)/i.exec(r) || ["", ""])[1].toLowerCase()]; - if (B) for (var K = 0; K < B.length; K++) r = "<" + B[K] + ">" + r + ""; - y.body.innerHTML = r; - - for (a.a(y); this.content.firstChild;) k.call(this.content, this.content.firstChild); - - r = y.body; - if (B) for (K = 0; K < B.length; K++) r = r.lastChild; - - for (; r.firstChild;) l.call(this.content, r.firstChild); - }, - configurable: !0 - }); - }, - J = function (p) { - Object.defineProperty(p, "outerHTML", { - get: function () { - return ""; - }, - set: function (r) { - if (this.parentNode) { - y.body.innerHTML = r; - - for (r = this.ownerDocument.createDocumentFragment(); y.body.firstChild;) l.call(r, y.body.firstChild); - - m.call(this.parentNode, r, this); - } else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node."); - }, - configurable: !0 - }); - }; - - n(a.prototype); - J(a.prototype); - - a.a = function (p) { - p = b(p, "template"); - - for (var r = 0, B = p.length, K; r < B && (K = p[r]); r++) a.U(K); - }; - - document.addEventListener("DOMContentLoaded", function () { - a.a(document); - }); - - Document.prototype.createElement = function () { - var p = g.apply(this, arguments); - "template" === p.localName && a.U(p); - return p; - }; - - DOMParser.prototype.parseFromString = function () { - var p = q.apply(this, arguments); - a.a(p); - return p; - }; - - Object.defineProperty(HTMLElement.prototype, "innerHTML", { - get: function () { - return za(this); - }, - set: function (p) { - H.set.call(this, p); - a.a(this); - }, - configurable: !0, - enumerable: !0 - }); - - var ka = /[&\u00A0"]/g, - hc = /[&\u00A0<>]/g, - hb = function (p) { - switch (p) { - case "&": - return "&"; - - case "<": - return "<"; - - case ">": - return ">"; - - case '"': - return """; - - case "\u00a0": - return " "; - } - }; - - w = function (p) { - for (var r = {}, B = 0; B < p.length; B++) r[p[B]] = !0; - - return r; - }; - - var Wa = w("area base br col command embed hr img input keygen link meta param source track wbr".split(" ")), - ib = w("style script xmp iframe noembed noframes plaintext noscript".split(" ")), - za = function (p, r) { - "template" === p.localName && (p = p.content); - - for (var B = "", K = r ? r(p) : C.get.call(p), aa = 0, la = K.length, ya; aa < la && (ya = K[aa]); aa++) { - a: { - var z = ya; - var R = p; - var nb = r; - - switch (z.nodeType) { - case Node.ELEMENT_NODE: - for (var Gc = z.localName, ob = "<" + Gc, zh = z.attributes, qe = 0; R = zh[qe]; qe++) ob += " " + R.name + '="' + R.value.replace(ka, hb) + '"'; - - ob += ">"; - z = Wa[Gc] ? ob : ob + za(z, nb) + ""; - break a; - - case Node.TEXT_NODE: - z = z.data; - z = R && ib[R.localName] ? z : z.replace(hc, hb); - break a; - - case Node.COMMENT_NODE: - z = "\x3c!--" + z.data + "--\x3e"; - break a; - - default: - throw window.console.error(z), Error("not implemented"); - } - } - - B += z; - } - - return B; - }; - } - - if (c || M) { - a.b = function (p, r) { - var B = f.call(p, !1); - this.U && this.U(B); - r && (l.call(B.content, f.call(p.content, !0)), I(B.content, p.content)); - return B; - }; - - var I = function (p, r) { - if (r.querySelectorAll && (r = b(r, "template"), 0 !== r.length)) { - p = b(p, "template"); - - for (var B = 0, K = p.length, aa, la; B < K; B++) la = r[B], aa = p[B], a && a.U && a.U(la), m.call(aa.parentNode, u.call(la, !0), aa); - } - }, - u = Node.prototype.cloneNode = function (p) { - if (!e && d && this instanceof DocumentFragment) { - if (p) var r = G.call(this.ownerDocument, this, !0);else return this.ownerDocument.createDocumentFragment(); - } else this.nodeType === Node.ELEMENT_NODE && "template" === this.localName && this.namespaceURI == document.documentElement.namespaceURI ? r = a.b(this, p) : r = f.call(this, p); - p && I(r, this); - return r; - }, - G = Document.prototype.importNode = function (p, r) { - r = r || !1; - if ("template" === p.localName) return a.b(p, r); - var B = h.call(this, p, r); - - if (r) { - I(B, p); - p = b(B, 'script:not([type]),script[type="application/javascript"],script[type="text/javascript"]'); - - for (var K, aa = 0; aa < p.length; aa++) { - K = p[aa]; - r = g.call(document, "script"); - r.textContent = K.textContent; - - for (var la = K.attributes, ya = 0, z; ya < la.length; ya++) z = la[ya], r.setAttribute(z.name, z.value); - - m.call(K.parentNode, r, K); - } - } - - return B; - }; - } - - c && (window.HTMLTemplateElement = a); - })(); - /* - Copyright (c) 2016 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ - - - function rc() {} - - rc.prototype.toJSON = function () { - return {}; - }; - - function D(a) { - a.__shady || (a.__shady = new rc()); - return a.__shady; - } - - function L(a) { - return a && a.__shady; - } - var N = window.ShadyDOM || {}; - N.Ua = !(!Element.prototype.attachShadow || !Node.prototype.getRootNode); - var sc = Object.getOwnPropertyDescriptor(Node.prototype, "firstChild"); - N.B = !!(sc && sc.configurable && sc.get); - N.sa = N.force || !N.Ua; - N.D = N.noPatch || !1; - N.aa = N.preferPerformance; - N.ua = "on-demand" === N.D; - N.Ia = navigator.userAgent.match("Trident"); - - function tc(a) { - return (a = L(a)) && void 0 !== a.firstChild; - } - - function O(a) { - return a instanceof ShadowRoot; - } - - function uc(a) { - return (a = (a = L(a)) && a.root) && vc(a); - } - - var wc = Element.prototype, - xc = wc.matches || wc.matchesSelector || wc.mozMatchesSelector || wc.msMatchesSelector || wc.oMatchesSelector || wc.webkitMatchesSelector, - yc = document.createTextNode(""), - zc = 0, - Ac = []; - new MutationObserver(function () { - for (; Ac.length;) try { - Ac.shift()(); - } catch (a) { - throw yc.textContent = zc++, a; - } - }).observe(yc, { - characterData: !0 - }); - - function Bc(a) { - Ac.push(a); - yc.textContent = zc++; - } - - var Cc = document.contains ? function (a, b) { - return a.__shady_native_contains(b); - } : function (a, b) { - return a === b || a.documentElement && a.documentElement.__shady_native_contains(b); - }; - - function Dc(a, b) { - for (; b;) { - if (b == a) return !0; - b = b.__shady_parentNode; - } - - return !1; - } - - function Ec(a) { - for (var b = a.length - 1; 0 <= b; b--) { - var c = a[b], - d = c.getAttribute("id") || c.getAttribute("name"); - d && "length" !== d && isNaN(d) && (a[d] = c); - } - - a.item = function (e) { - return a[e]; - }; - - a.namedItem = function (e) { - if ("length" !== e && isNaN(e) && a[e]) return a[e]; - - for (var f = na(a), g = f.next(); !g.done; g = f.next()) if (g = g.value, (g.getAttribute("id") || g.getAttribute("name")) == e) return g; - - return null; - }; - - return a; - } - - function Fc(a) { - var b = []; - - for (a = a.__shady_native_firstChild; a; a = a.__shady_native_nextSibling) b.push(a); - - return b; - } - - function Hc(a) { - var b = []; - - for (a = a.__shady_firstChild; a; a = a.__shady_nextSibling) b.push(a); - - return b; - } - - function Ic(a, b, c) { - c.configurable = !0; - if (c.value) a[b] = c.value;else try { - Object.defineProperty(a, b, c); - } catch (d) {} - } - - function P(a, b, c, d) { - c = void 0 === c ? "" : c; - - for (var e in b) d && 0 <= d.indexOf(e) || Ic(a, c + e, b[e]); - } - - function Jc(a, b) { - for (var c in b) c in a && Ic(a, c, b[c]); - } - - function Q(a) { - var b = {}; - Object.getOwnPropertyNames(a).forEach(function (c) { - b[c] = Object.getOwnPropertyDescriptor(a, c); - }); - return b; - } - - function Kc(a, b) { - for (var c = Object.getOwnPropertyNames(b), d = 0, e; d < c.length; d++) e = c[d], a[e] = b[e]; - } - - function Lc(a) { - return a instanceof Node ? a : document.createTextNode("" + a); - } - - function Mc(a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - if (1 === b.length) return Lc(b[0]); - c = document.createDocumentFragment(); - b = na(b); - - for (var d = b.next(); !d.done; d = b.next()) c.appendChild(Lc(d.value)); - - return c; - } - var Nc = [], - Oc; - - function Pc(a) { - Oc || (Oc = !0, Bc(Qc)); - Nc.push(a); - } - - function Qc() { - Oc = !1; - - for (var a = !!Nc.length; Nc.length;) Nc.shift()(); - - return a; - } - - Qc.list = Nc; - - function Rc() { - this.a = !1; - this.addedNodes = []; - this.removedNodes = []; - this.ja = new Set(); - } - - function Sc(a) { - a.a || (a.a = !0, Bc(function () { - a.flush(); - })); - } - - Rc.prototype.flush = function () { - if (this.a) { - this.a = !1; - var a = this.takeRecords(); - a.length && this.ja.forEach(function (b) { - b(a); - }); - } - }; - - Rc.prototype.takeRecords = function () { - if (this.addedNodes.length || this.removedNodes.length) { - var a = [{ - addedNodes: this.addedNodes, - removedNodes: this.removedNodes - }]; - this.addedNodes = []; - this.removedNodes = []; - return a; - } - - return []; - }; - - function Tc(a, b) { - var c = D(a); - c.Z || (c.Z = new Rc()); - c.Z.ja.add(b); - var d = c.Z; - return { - Ma: b, - S: d, - Na: a, - takeRecords: function () { - return d.takeRecords(); - } - }; - } - - function Uc(a) { - var b = a && a.S; - b && (b.ja.delete(a.Ma), b.ja.size || (D(a.Na).Z = null)); - } - - function Vc(a, b) { - var c = b.getRootNode(); - return a.map(function (d) { - var e = c === d.target.getRootNode(); - - if (e && d.addedNodes) { - if (e = [].slice.call(d.addedNodes).filter(function (f) { - return c === f.getRootNode(); - }), e.length) return d = Object.create(d), Object.defineProperty(d, "addedNodes", { - value: e, - configurable: !0 - }), d; - } else if (e) return d; - }).filter(function (d) { - return d; - }); - } - var Wc = /[&\u00A0"]/g, - Xc = /[&\u00A0<>]/g; - - function Yc(a) { - switch (a) { - case "&": - return "&"; - - case "<": - return "<"; - - case ">": - return ">"; - - case '"': - return """; - - case "\u00a0": - return " "; - } - } - - function Zc(a) { - for (var b = {}, c = 0; c < a.length; c++) b[a[c]] = !0; - - return b; - } - - var $c = Zc("area base br col command embed hr img input keygen link meta param source track wbr".split(" ")), - ad = Zc("style script xmp iframe noembed noframes plaintext noscript".split(" ")); - - function bd(a, b) { - "template" === a.localName && (a = a.content); - - for (var c = "", d = b ? b(a) : a.childNodes, e = 0, f = d.length, g = void 0; e < f && (g = d[e]); e++) { - a: { - var h = g; - var k = a, - l = b; - - switch (h.nodeType) { - case Node.ELEMENT_NODE: - k = h.localName; - - for (var m = "<" + k, q = h.attributes, H = 0, C; C = q[H]; H++) m += " " + C.name + '="' + C.value.replace(Wc, Yc) + '"'; - - m += ">"; - h = $c[k] ? m : m + bd(h, l) + ""; - break a; - - case Node.TEXT_NODE: - h = h.data; - h = k && ad[k.localName] ? h : h.replace(Xc, Yc); - break a; - - case Node.COMMENT_NODE: - h = "\x3c!--" + h.data + "--\x3e"; - break a; - - default: - throw window.console.error(h), Error("not implemented"); - } - } - - c += h; - } - - return c; - } - var cd = N.B, - dd = { - querySelector: function (a) { - return this.__shady_native_querySelector(a); - }, - querySelectorAll: function (a) { - return this.__shady_native_querySelectorAll(a); - } - }, - ed = {}; - - function fd(a) { - ed[a] = function (b) { - return b["__shady_native_" + a]; - }; - } - - function gd(a, b) { - P(a, b, "__shady_native_"); - - for (var c in b) fd(c); - } - - function S(a, b) { - b = void 0 === b ? [] : b; - - for (var c = 0; c < b.length; c++) { - var d = b[c], - e = Object.getOwnPropertyDescriptor(a, d); - e && (Object.defineProperty(a, "__shady_native_" + d, e), e.value ? dd[d] || (dd[d] = e.value) : fd(d)); - } - } - - var hd = document.createTreeWalker(document, NodeFilter.SHOW_ALL, null, !1), - id = document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, null, !1), - jd = document.implementation.createHTMLDocument("inert"); - - function kd(a) { - for (var b; b = a.__shady_native_firstChild;) a.__shady_native_removeChild(b); - } - - var ld = ["firstElementChild", "lastElementChild", "children", "childElementCount"], - md = ["querySelector", "querySelectorAll", "append", "prepend", "replaceChildren"]; - - function nd() { - var a = ["dispatchEvent", "addEventListener", "removeEventListener"]; - window.EventTarget ? S(window.EventTarget.prototype, a) : (S(Node.prototype, a), S(Window.prototype, a)); - cd ? S(Node.prototype, "parentNode firstChild lastChild previousSibling nextSibling childNodes parentElement textContent".split(" ")) : gd(Node.prototype, { - parentNode: { - get: function () { - hd.currentNode = this; - return hd.parentNode(); - } - }, - firstChild: { - get: function () { - hd.currentNode = this; - return hd.firstChild(); - } - }, - lastChild: { - get: function () { - hd.currentNode = this; - return hd.lastChild(); - } - }, - previousSibling: { - get: function () { - hd.currentNode = this; - return hd.previousSibling(); - } - }, - nextSibling: { - get: function () { - hd.currentNode = this; - return hd.nextSibling(); - } - }, - childNodes: { - get: function () { - var b = []; - hd.currentNode = this; - - for (var c = hd.firstChild(); c;) b.push(c), c = hd.nextSibling(); - - return b; - } - }, - parentElement: { - get: function () { - id.currentNode = this; - return id.parentNode(); - } - }, - textContent: { - get: function () { - switch (this.nodeType) { - case Node.ELEMENT_NODE: - case Node.DOCUMENT_FRAGMENT_NODE: - for (var b = document.createTreeWalker(this, NodeFilter.SHOW_TEXT, null, !1), c = "", d; d = b.nextNode();) c += d.nodeValue; - - return c; - - default: - return this.nodeValue; - } - }, - set: function (b) { - if ("undefined" === typeof b || null === b) b = ""; - - switch (this.nodeType) { - case Node.ELEMENT_NODE: - case Node.DOCUMENT_FRAGMENT_NODE: - kd(this); - (0 < b.length || this.nodeType === Node.ELEMENT_NODE) && this.__shady_native_insertBefore(document.createTextNode(b), void 0); - break; - - default: - this.nodeValue = b; - } - } - } - }); - S(Node.prototype, "appendChild insertBefore removeChild replaceChild cloneNode contains".split(" ")); - S(HTMLElement.prototype, ["parentElement", "contains"]); - a = { - firstElementChild: { - get: function () { - id.currentNode = this; - return id.firstChild(); - } - }, - lastElementChild: { - get: function () { - id.currentNode = this; - return id.lastChild(); - } - }, - children: { - get: function () { - var b = []; - id.currentNode = this; - - for (var c = id.firstChild(); c;) b.push(c), c = id.nextSibling(); - - return Ec(b); - } - }, - childElementCount: { - get: function () { - return this.children ? this.children.length : 0; - } - } - }; - cd ? (S(Element.prototype, ld), S(Element.prototype, ["previousElementSibling", "nextElementSibling", "innerHTML", "className"]), S(HTMLElement.prototype, ["children", "innerHTML", "className"])) : (gd(Element.prototype, a), gd(Element.prototype, { - previousElementSibling: { - get: function () { - id.currentNode = this; - return id.previousSibling(); - } - }, - nextElementSibling: { - get: function () { - id.currentNode = this; - return id.nextSibling(); - } - }, - innerHTML: { - get: function () { - return bd(this, Fc); - }, - set: function (b) { - var c = "template" === this.localName ? this.content : this; - kd(c); - var d = this.localName || "div"; - d = this.namespaceURI && this.namespaceURI !== jd.namespaceURI ? jd.createElementNS(this.namespaceURI, d) : jd.createElement(d); - d.innerHTML = b; - - for (b = "template" === this.localName ? d.content : d; d = b.__shady_native_firstChild;) c.__shady_native_insertBefore(d, void 0); - } - }, - className: { - get: function () { - return this.getAttribute("class") || ""; - }, - set: function (b) { - this.setAttribute("class", b); - } - } - })); - S(Element.prototype, "setAttribute getAttribute hasAttribute removeAttribute focus blur".split(" ")); - S(Element.prototype, md); - S(HTMLElement.prototype, ["focus", "blur"]); - window.HTMLTemplateElement && S(window.HTMLTemplateElement.prototype, ["innerHTML"]); - cd ? S(DocumentFragment.prototype, ld) : gd(DocumentFragment.prototype, a); - S(DocumentFragment.prototype, md); - cd ? (S(Document.prototype, ld), S(Document.prototype, ["activeElement"])) : gd(Document.prototype, a); - S(Document.prototype, ["importNode", "getElementById"]); - S(Document.prototype, md); - } - var od = Q({ - get childNodes() { - return this.__shady_childNodes; - }, - - get firstChild() { - return this.__shady_firstChild; - }, - - get lastChild() { - return this.__shady_lastChild; - }, - - get childElementCount() { - return this.__shady_childElementCount; - }, - - get children() { - return this.__shady_children; - }, - - get firstElementChild() { - return this.__shady_firstElementChild; - }, - - get lastElementChild() { - return this.__shady_lastElementChild; - }, - - get shadowRoot() { - return this.__shady_shadowRoot; - } - - }), - pd = Q({ - get textContent() { - return this.__shady_textContent; - }, - - set textContent(a) { - this.__shady_textContent = a; - }, - - get innerHTML() { - return this.__shady_innerHTML; - }, - - set innerHTML(a) { - return this.__shady_innerHTML = a; - } - - }), - qd = Q({ - get parentElement() { - return this.__shady_parentElement; - }, - - get parentNode() { - return this.__shady_parentNode; - }, - - get nextSibling() { - return this.__shady_nextSibling; - }, - - get previousSibling() { - return this.__shady_previousSibling; - }, - - get nextElementSibling() { - return this.__shady_nextElementSibling; - }, - - get previousElementSibling() { - return this.__shady_previousElementSibling; - }, - - get className() { - return this.__shady_className; - }, - - set className(a) { - return this.__shady_className = a; - } - - }); - - function rd(a) { - for (var b in a) { - var c = a[b]; - c && (c.enumerable = !1); - } - } - - rd(od); - rd(pd); - rd(qd); - var sd = N.B || !0 === N.D, - td = sd ? function () {} : function (a) { - var b = D(a); - b.Ka || (b.Ka = !0, Jc(a, qd)); - }, - ud = sd ? function () {} : function (a) { - var b = D(a); - b.Ja || (b.Ja = !0, Jc(a, od), window.customElements && window.customElements.polyfillWrapFlushCallback && !N.D || Jc(a, pd)); - }; - - var vd = "__eventWrappers" + Date.now(), - wd = function () { - var a = Object.getOwnPropertyDescriptor(Event.prototype, "composed"); - return a ? function (b) { - return a.get.call(b); - } : null; - }(), - xd = function () { - function a() {} - - var b = !1, - c = { - get capture() { - b = !0; - return !1; - } - - }; - window.addEventListener("test", a, c); - window.removeEventListener("test", a, c); - return b; - }(); - - function yd(a) { - if (a && "object" === typeof a) { - var b = !!a.capture; - var c = !!a.once; - var d = !!a.passive; - var e = a.O; - } else b = !!a, d = c = !1; - - return { - Ga: e, - capture: b, - once: c, - passive: d, - Fa: xd ? a : b - }; - } - - var zd = { - blur: !0, - focus: !0, - focusin: !0, - focusout: !0, - click: !0, - dblclick: !0, - mousedown: !0, - mouseenter: !0, - mouseleave: !0, - mousemove: !0, - mouseout: !0, - mouseover: !0, - mouseup: !0, - wheel: !0, - beforeinput: !0, - input: !0, - keydown: !0, - keyup: !0, - compositionstart: !0, - compositionupdate: !0, - compositionend: !0, - touchstart: !0, - touchend: !0, - touchmove: !0, - touchcancel: !0, - pointerover: !0, - pointerenter: !0, - pointerdown: !0, - pointermove: !0, - pointerup: !0, - pointercancel: !0, - pointerout: !0, - pointerleave: !0, - gotpointercapture: !0, - lostpointercapture: !0, - dragstart: !0, - drag: !0, - dragenter: !0, - dragleave: !0, - dragover: !0, - drop: !0, - dragend: !0, - DOMActivate: !0, - DOMFocusIn: !0, - DOMFocusOut: !0, - keypress: !0 - }, - Ad = { - DOMAttrModified: !0, - DOMAttributeNameChanged: !0, - DOMCharacterDataModified: !0, - DOMElementNameChanged: !0, - DOMNodeInserted: !0, - DOMNodeInsertedIntoDocument: !0, - DOMNodeRemoved: !0, - DOMNodeRemovedFromDocument: !0, - DOMSubtreeModified: !0 - }; - - function Bd(a) { - return a instanceof Node ? a.__shady_getRootNode() : a; - } - - function Cd(a, b) { - var c = [], - d = a; - - for (a = Bd(a); d;) c.push(d), d.__shady_assignedSlot ? d = d.__shady_assignedSlot : d.nodeType === Node.DOCUMENT_FRAGMENT_NODE && d.host && (b || d !== a) ? d = d.host : d = d.__shady_parentNode; - - c[c.length - 1] === document && c.push(window); - return c; - } - - function Dd(a) { - a.__composedPath || (a.__composedPath = Cd(a.target, !0)); - return a.__composedPath; - } - - function Ed(a, b) { - if (!O) return a; - a = Cd(a, !0); - - for (var c = 0, d, e = void 0, f, g = void 0; c < b.length; c++) if (d = b[c], f = Bd(d), f !== e && (g = a.indexOf(f), e = f), !O(f) || -1 < g) return d; - } - - function Fd(a) { - function b(c, d) { - c = new a(c, d); - c.__composed = d && !!d.composed; - return c; - } - - b.__proto__ = a; - b.prototype = a.prototype; - return b; - } - - var Gd = { - focus: !0, - blur: !0 - }; - - function Hd(a) { - return a.__target !== a.target || a.__relatedTarget !== a.relatedTarget; - } - - function Id(a, b, c) { - if (c = b.__handlers && b.__handlers[a.type] && b.__handlers[a.type][c]) for (var d = 0, e; (e = c[d]) && (!Hd(a) || a.target !== a.relatedTarget) && (e.call(b, a), !a.__immediatePropagationStopped); d++); - } - - function Jd(a) { - var b = a.composedPath(), - c = b.map(function (k) { - return Ed(k, b); - }), - d = a.bubbles; - Object.defineProperty(a, "currentTarget", { - configurable: !0, - enumerable: !0, - get: function () { - return g; - } - }); - var e = Event.CAPTURING_PHASE; - Object.defineProperty(a, "eventPhase", { - configurable: !0, - enumerable: !0, - get: function () { - return e; - } - }); - - for (var f = b.length - 1; 0 <= f; f--) { - var g = b[f]; - e = g === c[f] ? Event.AT_TARGET : Event.CAPTURING_PHASE; - Id(a, g, "capture"); - if (a.ma) return; - } - - for (f = 0; f < b.length; f++) { - g = b[f]; - var h = g === c[f]; - if (h || d) if (e = h ? Event.AT_TARGET : Event.BUBBLING_PHASE, Id(a, g, "bubble"), a.ma) return; - } - - e = 0; - g = null; - } - - function Kd(a, b, c, d, e, f) { - for (var g = 0; g < a.length; g++) { - var h = a[g], - k = h.type, - l = h.capture, - m = h.once, - q = h.passive; - if (b === h.node && c === k && d === l && e === m && f === q) return g; - } - - return -1; - } - - function Ld(a) { - Qc(); - return !N.aa && this instanceof Node && !Cc(document, this) ? (a.__target || Md(a, this), Jd(a)) : this.__shady_native_dispatchEvent(a); - } - - function Nd(a, b, c) { - var d = yd(c), - e = d.capture, - f = d.once, - g = d.passive, - h = d.Ga; - d = d.Fa; - - if (b) { - var k = typeof b; - if ("function" === k || "object" === k) if ("object" !== k || b.handleEvent && "function" === typeof b.handleEvent) { - if (Ad[a]) return this.__shady_native_addEventListener(a, b, d); - var l = h || this; - - if (h = b[vd]) { - if (-1 < Kd(h, l, a, e, f, g)) return; - } else b[vd] = []; - - h = function (m) { - f && this.__shady_removeEventListener(a, b, c); - m.__target || Md(m); - - if (l !== this) { - var q = Object.getOwnPropertyDescriptor(m, "currentTarget"); - Object.defineProperty(m, "currentTarget", { - get: function () { - return l; - }, - configurable: !0 - }); - var H = Object.getOwnPropertyDescriptor(m, "eventPhase"); - Object.defineProperty(m, "eventPhase", { - configurable: !0, - enumerable: !0, - get: function () { - return e ? Event.CAPTURING_PHASE : Event.BUBBLING_PHASE; - } - }); - } - - m.__previousCurrentTarget = m.currentTarget; - if (!O(l) && "slot" !== l.localName || -1 != m.composedPath().indexOf(l)) if (m.composed || -1 < m.composedPath().indexOf(l)) if (Hd(m) && m.target === m.relatedTarget) m.eventPhase === Event.BUBBLING_PHASE && m.stopImmediatePropagation();else if (m.eventPhase === Event.CAPTURING_PHASE || m.bubbles || m.target === l || l instanceof Window) { - var C = "function" === k ? b.call(l, m) : b.handleEvent && b.handleEvent(m); - l !== this && (q ? (Object.defineProperty(m, "currentTarget", q), q = null) : delete m.currentTarget, H ? (Object.defineProperty(m, "eventPhase", H), H = null) : delete m.eventPhase); - return C; - } - }; - - b[vd].push({ - node: l, - type: a, - capture: e, - once: f, - passive: g, - lb: h - }); - this.__handlers = this.__handlers || {}; - this.__handlers[a] = this.__handlers[a] || { - capture: [], - bubble: [] - }; - - this.__handlers[a][e ? "capture" : "bubble"].push(h); - - Gd[a] || this.__shady_native_addEventListener(a, h, d); - } - } - } - - function Od(a, b, c) { - if (b) { - var d = yd(c); - c = d.capture; - var e = d.once, - f = d.passive, - g = d.Ga; - d = d.Fa; - if (Ad[a]) return this.__shady_native_removeEventListener(a, b, d); - var h = g || this; - g = void 0; - var k = null; - - try { - k = b[vd]; - } catch (l) {} - - k && (e = Kd(k, h, a, c, e, f), -1 < e && (g = k.splice(e, 1)[0].lb, k.length || (b[vd] = void 0))); - - this.__shady_native_removeEventListener(a, g || b, d); - - g && this.__handlers && this.__handlers[a] && (a = this.__handlers[a][c ? "capture" : "bubble"], b = a.indexOf(g), -1 < b && a.splice(b, 1)); - } - } - - function Pd() { - for (var a in Gd) window.__shady_native_addEventListener(a, function (b) { - b.__target || (Md(b), Jd(b)); - }, !0); - } - - var Qd = Q({ - get composed() { - void 0 === this.__composed && (wd ? this.__composed = "focusin" === this.type || "focusout" === this.type || wd(this) : !1 !== this.isTrusted && (this.__composed = zd[this.type])); - return this.__composed || !1; - }, - - composedPath: function () { - this.__composedPath || (this.__composedPath = Cd(this.__target, this.composed)); - return this.__composedPath; - }, - - get target() { - return Ed(this.currentTarget || this.__previousCurrentTarget, this.composedPath()); - }, - - get relatedTarget() { - if (!this.__relatedTarget) return null; - this.__relatedTargetComposedPath || (this.__relatedTargetComposedPath = Cd(this.__relatedTarget, !0)); - return Ed(this.currentTarget || this.__previousCurrentTarget, this.__relatedTargetComposedPath); - }, - - stopPropagation: function () { - Event.prototype.stopPropagation.call(this); - this.ma = !0; - }, - stopImmediatePropagation: function () { - Event.prototype.stopImmediatePropagation.call(this); - this.ma = this.__immediatePropagationStopped = !0; - } - }); - - function Md(a, b) { - b = void 0 === b ? a.target : b; - a.__target = b; - a.__relatedTarget = a.relatedTarget; - - if (N.B) { - b = Object.getPrototypeOf(a); - - if (!b.hasOwnProperty("__shady_patchedProto")) { - var c = Object.create(b); - c.__shady_sourceProto = b; - P(c, Qd); - b.__shady_patchedProto = c; - } - - a.__proto__ = b.__shady_patchedProto; - } else P(a, Qd); - } - - var Rd = Fd(Event), - Sd = Fd(CustomEvent), - Td = Fd(MouseEvent); - - function Ud() { - if (!wd && Object.getOwnPropertyDescriptor(Event.prototype, "isTrusted")) { - var a = function () { - var b = new MouseEvent("click", { - bubbles: !0, - cancelable: !0, - composed: !0 - }); - - this.__shady_dispatchEvent(b); - }; - - Element.prototype.click ? Element.prototype.click = a : HTMLElement.prototype.click && (HTMLElement.prototype.click = a); - } - } - - var Vd = Object.getOwnPropertyNames(Element.prototype).filter(function (a) { - return "on" === a.substring(0, 2); - }), - Wd = Object.getOwnPropertyNames(HTMLElement.prototype).filter(function (a) { - return "on" === a.substring(0, 2); - }); - - function Xd(a) { - return { - set: function (b) { - var c = D(this), - d = a.substring(2); - c.N || (c.N = {}); - c.N[a] && this.removeEventListener(d, c.N[a]); - - this.__shady_addEventListener(d, b); - - c.N[a] = b; - }, - get: function () { - var b = L(this); - return b && b.N && b.N[a]; - }, - configurable: !0 - }; - } - - function Yd(a, b) { - return { - index: a, - ba: [], - ia: b - }; - } - - function Zd(a, b, c, d) { - var e = 0, - f = 0, - g = 0, - h = 0, - k = Math.min(b - e, d - f); - if (0 == e && 0 == f) a: { - for (g = 0; g < k; g++) if (a[g] !== c[g]) break a; - - g = k; - } - - if (b == a.length && d == c.length) { - h = a.length; - - for (var l = c.length, m = 0; m < k - g && $d(a[--h], c[--l]);) m++; - - h = m; - } - - e += g; - f += g; - b -= h; - d -= h; - if (0 == b - e && 0 == d - f) return []; - - if (e == b) { - for (b = Yd(e, 0); f < d;) b.ba.push(c[f++]); - - return [b]; - } - - if (f == d) return [Yd(e, b - e)]; - k = e; - g = f; - d = d - g + 1; - h = b - k + 1; - b = Array(d); - - for (l = 0; l < d; l++) b[l] = Array(h), b[l][0] = l; - - for (l = 0; l < h; l++) b[0][l] = l; - - for (l = 1; l < d; l++) for (m = 1; m < h; m++) if (a[k + m - 1] === c[g + l - 1]) b[l][m] = b[l - 1][m - 1];else { - var q = b[l - 1][m] + 1, - H = b[l][m - 1] + 1; - b[l][m] = q < H ? q : H; - } - - k = b.length - 1; - g = b[0].length - 1; - d = b[k][g]; - - for (a = []; 0 < k || 0 < g;) 0 == k ? (a.push(2), g--) : 0 == g ? (a.push(3), k--) : (h = b[k - 1][g - 1], l = b[k - 1][g], m = b[k][g - 1], q = l < m ? l < h ? l : h : m < h ? m : h, q == h ? (h == d ? a.push(0) : (a.push(1), d = h), k--, g--) : q == l ? (a.push(3), k--, d = l) : (a.push(2), g--, d = m)); - - a.reverse(); - b = void 0; - k = []; - - for (g = 0; g < a.length; g++) switch (a[g]) { - case 0: - b && (k.push(b), b = void 0); - e++; - f++; - break; - - case 1: - b || (b = Yd(e, 0)); - b.ia++; - e++; - b.ba.push(c[f]); - f++; - break; - - case 2: - b || (b = Yd(e, 0)); - b.ia++; - e++; - break; - - case 3: - b || (b = Yd(e, 0)), b.ba.push(c[f]), f++; - } - - b && k.push(b); - return k; - } - - function $d(a, b) { - return a === b; - } - var ae = Q({ - dispatchEvent: Ld, - addEventListener: Nd, - removeEventListener: Od - }); - var be = null; - - function ce() { - be || (be = window.ShadyCSS && window.ShadyCSS.ScopingShim); - return be || null; - } - - function de(a, b, c) { - var d = ce(); - return d && "class" === b ? (d.setElementClass(a, c), !0) : !1; - } - - function ee(a, b) { - var c = ce(); - c && c.unscopeNode(a, b); - } - - function fe(a, b) { - var c = ce(); - if (!c) return !0; - - if (a.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { - c = !0; - - for (a = a.__shady_firstChild; a; a = a.__shady_nextSibling) c = c && fe(a, b); - - return c; - } - - return a.nodeType !== Node.ELEMENT_NODE ? !0 : c.currentScopeForNode(a) === b; - } - - function ge(a) { - if (a.nodeType !== Node.ELEMENT_NODE) return ""; - var b = ce(); - return b ? b.currentScopeForNode(a) : ""; - } - - function he(a, b) { - if (a) for (a.nodeType === Node.ELEMENT_NODE && b(a), a = a.__shady_firstChild; a; a = a.__shady_nextSibling) a.nodeType === Node.ELEMENT_NODE && he(a, b); - } - var ie = window.document, - je = N.aa, - ke = Object.getOwnPropertyDescriptor(Node.prototype, "isConnected"), - le = ke && ke.get; - - function me(a) { - for (var b; b = a.__shady_firstChild;) a.__shady_removeChild(b); - } - - function ne(a) { - var b = L(a); - if (b && void 0 !== b.la) for (b = a.__shady_firstChild; b; b = b.__shady_nextSibling) ne(b); - if (a = L(a)) a.la = void 0; - } - - function oe(a) { - var b = a; - - if (a && "slot" === a.localName) { - var c = L(a); - (c = c && c.V) && (b = c.length ? c[0] : oe(a.__shady_nextSibling)); - } - - return b; - } - - function pe(a, b, c) { - if (a = (a = L(a)) && a.Z) { - if (b) if (b.nodeType === Node.DOCUMENT_FRAGMENT_NODE) for (var d = 0, e = b.childNodes.length; d < e; d++) a.addedNodes.push(b.childNodes[d]);else a.addedNodes.push(b); - c && a.removedNodes.push(c); - Sc(a); - } - } - - var xe = Q({ - get parentNode() { - var a = L(this); - a = a && a.parentNode; - return void 0 !== a ? a : this.__shady_native_parentNode; - }, - - get firstChild() { - var a = L(this); - a = a && a.firstChild; - return void 0 !== a ? a : this.__shady_native_firstChild; - }, - - get lastChild() { - var a = L(this); - a = a && a.lastChild; - return void 0 !== a ? a : this.__shady_native_lastChild; - }, - - get nextSibling() { - var a = L(this); - a = a && a.nextSibling; - return void 0 !== a ? a : this.__shady_native_nextSibling; - }, - - get previousSibling() { - var a = L(this); - a = a && a.previousSibling; - return void 0 !== a ? a : this.__shady_native_previousSibling; - }, - - get childNodes() { - if (tc(this)) { - var a = L(this); - - if (!a.childNodes) { - a.childNodes = []; - - for (var b = this.__shady_firstChild; b; b = b.__shady_nextSibling) a.childNodes.push(b); - } - - var c = a.childNodes; - } else c = this.__shady_native_childNodes; - - c.item = function (d) { - return c[d]; - }; - - return c; - }, - - get parentElement() { - var a = L(this); - (a = a && a.parentNode) && a.nodeType !== Node.ELEMENT_NODE && (a = null); - return void 0 !== a ? a : this.__shady_native_parentElement; - }, - - get isConnected() { - if (le && le.call(this)) return !0; - if (this.nodeType == Node.DOCUMENT_FRAGMENT_NODE) return !1; - var a = this.ownerDocument; - if (null === a || Cc(a, this)) return !0; - - for (a = this; a && !(a instanceof Document);) a = a.__shady_parentNode || (O(a) ? a.host : void 0); - - return !!(a && a instanceof Document); - }, - - get textContent() { - if (tc(this)) { - for (var a = [], b = this.__shady_firstChild; b; b = b.__shady_nextSibling) b.nodeType !== Node.COMMENT_NODE && a.push(b.__shady_textContent); - - return a.join(""); - } - - return this.__shady_native_textContent; - }, - - set textContent(a) { - if ("undefined" === typeof a || null === a) a = ""; - - switch (this.nodeType) { - case Node.ELEMENT_NODE: - case Node.DOCUMENT_FRAGMENT_NODE: - if (!tc(this) && N.B) { - var b = this.__shady_firstChild; - (b != this.__shady_lastChild || b && b.nodeType != Node.TEXT_NODE) && me(this); - this.__shady_native_textContent = a; - } else me(this), (0 < a.length || this.nodeType === Node.ELEMENT_NODE) && this.__shady_insertBefore(document.createTextNode(a)); - - break; - - default: - this.nodeValue = a; - } - }, - - insertBefore: function (a, b) { - if (this.ownerDocument !== ie && a.ownerDocument !== ie) return this.__shady_native_insertBefore(a, b), a; - if (a === this) throw Error("Failed to execute 'appendChild' on 'Node': The new child element contains the parent."); - - if (b) { - var c = L(b); - c = c && c.parentNode; - if (void 0 !== c && c !== this || void 0 === c && b.__shady_native_parentNode !== this) throw Error("Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node."); - } - - if (b === a) return a; - pe(this, a); - var d = [], - e = (c = re(this)) ? c.host.localName : ge(this), - f = a.__shady_parentNode; - - if (f) { - var g = ge(a); - var h = !!c || !re(a) || je && void 0 !== this.__noInsertionPoint; - - f.__shady_removeChild(a, h); - } - - f = !0; - var k = (!je || void 0 === a.__noInsertionPoint && void 0 === this.__noInsertionPoint) && !fe(a, e), - l = c && !a.__noInsertionPoint && (!je || a.nodeType === Node.DOCUMENT_FRAGMENT_NODE); - if (l || k) k && (g = g || ge(a)), he(a, function (m) { - l && "slot" === m.localName && d.push(m); - - if (k) { - var q = g; - ce() && (q && ee(m, q), (q = ce()) && q.scopeNode(m, e)); - } - }); - d.length && (se(c), c.c.push.apply(c.c, x(d)), te(c)); - tc(this) && (ue(a, this, b), h = L(this), h.root ? (f = !1, uc(this) && te(h.root)) : c && "slot" === this.localName && (f = !1, te(c))); - f ? (c = O(this) ? this.host : this, b ? (b = oe(b), c.__shady_native_insertBefore(a, b)) : c.__shady_native_appendChild(a)) : a.ownerDocument !== this.ownerDocument && this.ownerDocument.adoptNode(a); - return a; - }, - appendChild: function (a) { - if (this != a || !O(a)) return this.__shady_insertBefore(a); - }, - removeChild: function (a, b) { - b = void 0 === b ? !1 : b; - if (this.ownerDocument !== ie) return this.__shady_native_removeChild(a); - if (a.__shady_parentNode !== this) throw Error("The node to be removed is not a child of this node: " + a); - pe(this, null, a); - var c = re(a), - d = c && ve(c, a), - e = L(this); - - if (tc(this) && (we(a, this), uc(this))) { - te(e.root); - var f = !0; - } - - if (ce() && !b && c && a.nodeType !== Node.TEXT_NODE) { - var g = ge(a); - he(a, function (h) { - ee(h, g); - }); - } - - ne(a); - c && ((b = "slot" === this.localName) && (f = !0), (d || b) && te(c)); - f || (f = O(this) ? this.host : this, (!e.root && "slot" !== a.localName || f === a.__shady_native_parentNode) && f.__shady_native_removeChild(a)); - return a; - }, - replaceChild: function (a, b) { - this.__shady_insertBefore(a, b); - - this.__shady_removeChild(b); - - return a; - }, - cloneNode: function (a) { - if ("template" == this.localName) return this.__shady_native_cloneNode(a); - - var b = this.__shady_native_cloneNode(!1); - - if (a && b.nodeType !== Node.ATTRIBUTE_NODE) { - a = this.__shady_firstChild; - - for (var c; a; a = a.__shady_nextSibling) c = a.__shady_cloneNode(!0), b.__shady_appendChild(c); - } - - return b; - }, - getRootNode: function (a) { - if (this && this.nodeType) { - var b = D(this), - c = b.la; - void 0 === c && (O(this) ? (c = this, b.la = c) : (c = (c = this.__shady_parentNode) ? c.__shady_getRootNode(a) : this, document.documentElement.__shady_native_contains(this) && (b.la = c))); - return c; - } - }, - contains: function (a) { - return Dc(this, a); - } - }); - var ze = Q({ - get assignedSlot() { - var a = this.__shady_parentNode; - (a = a && a.__shady_shadowRoot) && ye(a); - return (a = L(this)) && a.assignedSlot || null; - } - - }); - - function Ae(a, b, c) { - var d = []; - Be(a, b, c, d); - return d; - } - - function Be(a, b, c, d) { - for (a = a.__shady_firstChild; a; a = a.__shady_nextSibling) { - var e; - - if (e = a.nodeType === Node.ELEMENT_NODE) { - e = a; - var f = b, - g = c, - h = d, - k = f(e); - k && h.push(e); - g && g(k) ? e = k : (Be(e, f, g, h), e = void 0); - } - - if (e) break; - } - } - - var Ce = { - get firstElementChild() { - var a = L(this); - - if (a && void 0 !== a.firstChild) { - for (a = this.__shady_firstChild; a && a.nodeType !== Node.ELEMENT_NODE;) a = a.__shady_nextSibling; - - return a; - } - - return this.__shady_native_firstElementChild; - }, - - get lastElementChild() { - var a = L(this); - - if (a && void 0 !== a.lastChild) { - for (a = this.__shady_lastChild; a && a.nodeType !== Node.ELEMENT_NODE;) a = a.__shady_previousSibling; - - return a; - } - - return this.__shady_native_lastElementChild; - }, - - get children() { - return tc(this) ? Ec(Array.prototype.filter.call(Hc(this), function (a) { - return a.nodeType === Node.ELEMENT_NODE; - })) : this.__shady_native_children; - }, - - get childElementCount() { - var a = this.__shady_children; - return a ? a.length : 0; - } - - }, - De = Q((Ce.append = function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - this.__shady_insertBefore(Mc.apply(null, x(b)), null); - }, Ce.prepend = function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - this.__shady_insertBefore(Mc.apply(null, x(b)), this.__shady_firstChild); - }, Ce.replaceChildren = function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - for (; null !== (c = this.__shady_firstChild);) this.__shady_removeChild(c); - - this.__shady_insertBefore(Mc.apply(null, x(b)), null); - }, Ce)), - Ee = Q({ - querySelector: function (a) { - return Ae(this, function (b) { - return xc.call(b, a); - }, function (b) { - return !!b; - })[0] || null; - }, - querySelectorAll: function (a, b) { - if (b) { - b = Array.prototype.slice.call(this.__shady_native_querySelectorAll(a)); - - var c = this.__shady_getRootNode(); - - return Ec(b.filter(function (d) { - return d.__shady_getRootNode() == c; - })); - } - - return Ec(Ae(this, function (d) { - return xc.call(d, a); - })); - } - }), - Fe = N.aa && !N.D ? Kc({}, De) : De; - Kc(De, Ee); - var Ge = Q({ - after: function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - c = this.__shady_parentNode; - - if (null !== c) { - var d = this.__shady_nextSibling; - - c.__shady_insertBefore(Mc.apply(null, x(b)), d); - } - }, - before: function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - c = this.__shady_parentNode; - null !== c && c.__shady_insertBefore(Mc.apply(null, x(b)), this); - }, - remove: function () { - var a = this.__shady_parentNode; - null !== a && a.__shady_removeChild(this); - }, - replaceWith: function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - c = this.__shady_parentNode; - - if (null !== c) { - var d = this.__shady_nextSibling; - - c.__shady_removeChild(this); - - c.__shady_insertBefore(Mc.apply(null, x(b)), d); - } - } - }); - var He = window.document; - - function Ie(a, b) { - if ("slot" === b) a = a.__shady_parentNode, uc(a) && te(L(a).root);else if ("slot" === a.localName && "name" === b && (b = re(a))) { - if (b.a) { - Je(b); - var c = a.La, - d = Ke(a); - - if (d !== c) { - c = b.b[c]; - var e = c.indexOf(a); - 0 <= e && c.splice(e, 1); - c = b.b[d] || (b.b[d] = []); - c.push(a); - 1 < c.length && (b.b[d] = Le(c)); - } - } - - te(b); - } - } - - var Me = Q({ - get previousElementSibling() { - var a = L(this); - - if (a && void 0 !== a.previousSibling) { - for (a = this.__shady_previousSibling; a && a.nodeType !== Node.ELEMENT_NODE;) a = a.__shady_previousSibling; - - return a; - } - - return this.__shady_native_previousElementSibling; - }, - - get nextElementSibling() { - var a = L(this); - - if (a && void 0 !== a.nextSibling) { - for (a = this.__shady_nextSibling; a && a.nodeType !== Node.ELEMENT_NODE;) a = a.__shady_nextSibling; - - return a; - } - - return this.__shady_native_nextElementSibling; - }, - - get slot() { - return this.getAttribute("slot"); - }, - - set slot(a) { - this.__shady_setAttribute("slot", a); - }, - - get className() { - return this.getAttribute("class") || ""; - }, - - set className(a) { - this.__shady_setAttribute("class", a); - }, - - setAttribute: function (a, b) { - this.ownerDocument !== He ? this.__shady_native_setAttribute(a, b) : de(this, a, b) || (this.__shady_native_setAttribute(a, b), Ie(this, a)); - }, - removeAttribute: function (a) { - this.ownerDocument !== He ? this.__shady_native_removeAttribute(a) : de(this, a, "") ? "" === this.getAttribute(a) && this.__shady_native_removeAttribute(a) : (this.__shady_native_removeAttribute(a), Ie(this, a)); - } - }); - N.aa || Vd.forEach(function (a) { - Me[a] = Xd(a); - }); - var Re = Q({ - attachShadow: function (a) { - if (!this) throw Error("Must provide a host."); - if (!a) throw Error("Not enough arguments."); - - if (a.shadyUpgradeFragment && !N.Ia) { - var b = a.shadyUpgradeFragment; - b.__proto__ = ShadowRoot.prototype; - Ne(b, this, a); - Oe(b, b); - a = b.__noInsertionPoint ? null : b.querySelectorAll("slot"); - b.__noInsertionPoint = void 0; - - if (a && a.length) { - var c = b; - se(c); - c.c.push.apply(c.c, x(a)); - te(b); - } - - b.host.__shady_native_appendChild(b); - } else b = new Pe(Qe, this, a); - - return this.__CE_shadowRoot = b; - }, - - get shadowRoot() { - var a = L(this); - return a && a.bb || null; - } - - }); - Kc(Me, Re); - var Se = document.implementation.createHTMLDocument("inert"), - Te = Q({ - get innerHTML() { - return tc(this) ? bd("template" === this.localName ? this.content : this, Hc) : this.__shady_native_innerHTML; - }, - - set innerHTML(a) { - if ("template" === this.localName) this.__shady_native_innerHTML = a;else { - me(this); - var b = this.localName || "div"; - b = this.namespaceURI && this.namespaceURI !== Se.namespaceURI ? Se.createElementNS(this.namespaceURI, b) : Se.createElement(b); - - for (N.B ? b.__shady_native_innerHTML = a : b.innerHTML = a; a = b.__shady_firstChild;) this.__shady_insertBefore(a); - } - } - - }); - var Ue = Q({ - blur: function () { - var a = L(this); - (a = (a = a && a.root) && a.activeElement) ? a.__shady_blur() : this.__shady_native_blur(); - } - }); - N.aa || Wd.forEach(function (a) { - Ue[a] = Xd(a); - }); - var Ve = Q({ - assignedNodes: function (a) { - if ("slot" === this.localName) { - var b = this.__shady_getRootNode(); - - b && O(b) && ye(b); - return (b = L(this)) ? (a && a.flatten ? b.V : b.assignedNodes) || [] : []; - } - }, - addEventListener: function (a, b, c) { - if ("slot" !== this.localName || "slotchange" === a) Nd.call(this, a, b, c);else { - "object" !== typeof c && (c = { - capture: !!c - }); - var d = this.__shady_parentNode; - if (!d) throw Error("ShadyDOM cannot attach event to slot unless it has a `parentNode`"); - c.O = this; - - d.__shady_addEventListener(a, b, c); - } - }, - removeEventListener: function (a, b, c) { - if ("slot" !== this.localName || "slotchange" === a) Od.call(this, a, b, c);else { - "object" !== typeof c && (c = { - capture: !!c - }); - var d = this.__shady_parentNode; - if (!d) throw Error("ShadyDOM cannot attach event to slot unless it has a `parentNode`"); - c.O = this; - - d.__shady_removeEventListener(a, b, c); - } - } - }); - var We = Q({ - getElementById: function (a) { - return "" === a ? null : Ae(this, function (b) { - return b.id == a; - }, function (b) { - return !!b; - })[0] || null; - } - }); - var Xe = Q({ - get activeElement() { - var a = N.B ? document.__shady_native_activeElement : document.activeElement; - if (!a || !a.nodeType) return null; - var b = !!O(this); - if (!(this === document || b && this.host !== a && this.host.__shady_native_contains(a))) return null; - - for (b = re(a); b && b !== this;) a = b.host, b = re(a); - - return this === document ? b ? null : a : b === this ? a : null; - } - - }); - var Ye = window.document, - Ze = Q({ - importNode: function (a, b) { - if (a.ownerDocument !== Ye || "template" === a.localName) return this.__shady_native_importNode(a, b); - - var c = this.__shady_native_importNode(a, !1); - - if (b) for (a = a.__shady_firstChild; a; a = a.__shady_nextSibling) b = this.__shady_importNode(a, !0), c.__shady_appendChild(b); - return c; - } - }); - var $e = Q({ - dispatchEvent: Ld, - addEventListener: Nd.bind(window), - removeEventListener: Od.bind(window) - }); - var af = {}; - Object.getOwnPropertyDescriptor(HTMLElement.prototype, "parentElement") && (af.parentElement = xe.parentElement); - Object.getOwnPropertyDescriptor(HTMLElement.prototype, "contains") && (af.contains = xe.contains); - Object.getOwnPropertyDescriptor(HTMLElement.prototype, "children") && (af.children = De.children); - Object.getOwnPropertyDescriptor(HTMLElement.prototype, "innerHTML") && (af.innerHTML = Te.innerHTML); - Object.getOwnPropertyDescriptor(HTMLElement.prototype, "className") && (af.className = Me.className); - var bf = { - EventTarget: [ae], - Node: [xe, window.EventTarget ? null : ae], - Text: [ze], - Comment: [ze], - CDATASection: [ze], - ProcessingInstruction: [ze], - Element: [Me, De, Ge, ze, !N.B || "innerHTML" in Element.prototype ? Te : null, window.HTMLSlotElement ? null : Ve], - HTMLElement: [Ue, af], - HTMLSlotElement: [Ve], - DocumentFragment: [Fe, We], - Document: [Ze, Fe, We, Xe], - Window: [$e], - CharacterData: [Ge] - }, - cf = N.B ? null : ["innerHTML", "textContent"]; - - function df(a, b, c, d) { - b.forEach(function (e) { - return a && e && P(a, e, c, d); - }); - } - - function ef(a) { - var b = a ? null : cf, - c; - - for (c in bf) df(window[c] && window[c].prototype, bf[c], a, b); - } - - ["Text", "Comment", "CDATASection", "ProcessingInstruction"].forEach(function (a) { - var b = window[a], - c = Object.create(b.prototype); - c.__shady_protoIsPatched = !0; - df(c, bf.EventTarget); - df(c, bf.Node); - bf[a] && df(c, bf[a]); - b.prototype.__shady_patchedProto = c; - }); - - function ff(a) { - a.__shady_protoIsPatched = !0; - df(a, bf.EventTarget); - df(a, bf.Node); - df(a, bf.Element); - df(a, bf.HTMLElement); - df(a, bf.HTMLSlotElement); - return a; - } - var gf = N.ua, - hf = N.B; - - function jf(a, b) { - if (gf && !a.__shady_protoIsPatched && !O(a)) { - var c = Object.getPrototypeOf(a), - d = c.hasOwnProperty("__shady_patchedProto") && c.__shady_patchedProto; - - d || (d = Object.create(c), ff(d), c.__shady_patchedProto = d); - Object.setPrototypeOf(a, d); - } - - hf || (1 === b ? td(a) : 2 === b && ud(a)); - } - - function kf(a, b, c, d) { - jf(a, 1); - d = d || null; - var e = D(a), - f = d ? D(d) : null; - e.previousSibling = d ? f.previousSibling : b.__shady_lastChild; - if (f = L(e.previousSibling)) f.nextSibling = a; - if (f = L(e.nextSibling = d)) f.previousSibling = a; - e.parentNode = b; - d ? d === c.firstChild && (c.firstChild = a) : (c.lastChild = a, c.firstChild || (c.firstChild = a)); - c.childNodes = null; - } - - function ue(a, b, c) { - jf(b, 2); - var d = D(b); - void 0 !== d.firstChild && (d.childNodes = null); - if (a.nodeType === Node.DOCUMENT_FRAGMENT_NODE) for (a = a.__shady_native_firstChild; a; a = a.__shady_native_nextSibling) kf(a, b, d, c);else kf(a, b, d, c); - } - - function we(a, b) { - var c = D(a); - b = D(b); - a === b.firstChild && (b.firstChild = c.nextSibling); - a === b.lastChild && (b.lastChild = c.previousSibling); - a = c.previousSibling; - var d = c.nextSibling; - a && (D(a).nextSibling = d); - d && (D(d).previousSibling = a); - c.parentNode = c.previousSibling = c.nextSibling = void 0; - void 0 !== b.childNodes && (b.childNodes = null); - } - - function Oe(a, b) { - var c = D(a); - - if (b || void 0 === c.firstChild) { - c.childNodes = null; - var d = c.firstChild = a.__shady_native_firstChild; - c.lastChild = a.__shady_native_lastChild; - jf(a, 2); - c = d; - - for (d = void 0; c; c = c.__shady_native_nextSibling) { - var e = D(c); - e.parentNode = b || a; - e.nextSibling = c.__shady_native_nextSibling; - e.previousSibling = d || null; - d = c; - jf(c, 1); - } - } - } - var lf = Q({ - addEventListener: function (a, b, c) { - "object" !== typeof c && (c = { - capture: !!c - }); - c.O = c.O || this; - - this.host.__shady_addEventListener(a, b, c); - }, - removeEventListener: function (a, b, c) { - "object" !== typeof c && (c = { - capture: !!c - }); - c.O = c.O || this; - - this.host.__shady_removeEventListener(a, b, c); - } - }); - - function mf(a, b) { - P(a, lf, b); - P(a, Xe, b); - P(a, Te, b); - P(a, De, b); - N.D && !b ? (P(a, xe, b), P(a, We, b)) : N.B || (P(a, qd), P(a, od), P(a, pd)); - } - var Qe = {}, - nf = N.deferConnectionCallbacks && "loading" === document.readyState, - of; - - function pf(a) { - var b = []; - - do b.unshift(a); while (a = a.__shady_parentNode); - - return b; - } - - function Pe(a, b, c) { - if (a !== Qe) throw new TypeError("Illegal constructor"); - this.a = null; - Ne(this, b, c); - } - - function Ne(a, b, c) { - a.host = b; - a.mode = c && c.mode; - Oe(a.host); - b = D(a.host); - b.root = a; - b.bb = "closed" !== a.mode ? a : null; - b = D(a); - b.firstChild = b.lastChild = b.parentNode = b.nextSibling = b.previousSibling = null; - if (N.preferPerformance) for (; b = a.host.__shady_native_firstChild;) a.host.__shady_native_removeChild(b);else te(a); - } - - function te(a) { - a.T || (a.T = !0, Pc(function () { - return ye(a); - })); - } - - function ye(a) { - var b; - - if (b = a.T) { - for (var c; a;) a: { - a.T && (c = a), b = a; - a = b.host.__shady_getRootNode(); - if (O(a) && (b = L(b.host)) && 0 < b.da) break a; - a = void 0; - } - - b = c; - } - - (c = b) && c._renderSelf(); - } - - Pe.prototype._renderSelf = function () { - var a = nf; - nf = !0; - this.T = !1; - - if (this.a) { - Je(this); - - for (var b = 0, c; b < this.a.length; b++) { - c = this.a[b]; - var d = L(c), - e = d.assignedNodes; - d.assignedNodes = []; - d.V = []; - if (d.Ba = e) for (d = 0; d < e.length; d++) { - var f = L(e[d]); - f.oa = f.assignedSlot; - f.assignedSlot === c && (f.assignedSlot = null); - } - } - - for (b = this.host.__shady_firstChild; b; b = b.__shady_nextSibling) qf(this, b); - - for (b = 0; b < this.a.length; b++) { - c = this.a[b]; - e = L(c); - if (!e.assignedNodes.length) for (d = c.__shady_firstChild; d; d = d.__shady_nextSibling) qf(this, d, c); - (d = (d = L(c.__shady_parentNode)) && d.root) && (vc(d) || d.T) && d._renderSelf(); - rf(this, e.V, e.assignedNodes); - - if (d = e.Ba) { - for (f = 0; f < d.length; f++) L(d[f]).oa = null; - - e.Ba = null; - d.length > e.assignedNodes.length && (e.ra = !0); - } - - e.ra && (e.ra = !1, sf(this, c)); - } - - c = this.a; - b = []; - - for (e = 0; e < c.length; e++) d = c[e].__shady_parentNode, (f = L(d)) && f.root || !(0 > b.indexOf(d)) || b.push(d); - - for (c = 0; c < b.length; c++) { - f = b[c]; - e = f === this ? this.host : f; - d = []; - - for (f = f.__shady_firstChild; f; f = f.__shady_nextSibling) if ("slot" == f.localName) for (var g = L(f).V, h = 0; h < g.length; h++) d.push(g[h]);else d.push(f); - - f = Fc(e); - g = Zd(d, d.length, f, f.length); - - for (var k = h = 0, l = void 0; h < g.length && (l = g[h]); h++) { - for (var m = 0, q = void 0; m < l.ba.length && (q = l.ba[m]); m++) q.__shady_native_parentNode === e && e.__shady_native_removeChild(q), f.splice(l.index + k, 1); - - k -= l.ia; - } - - k = 0; - - for (l = void 0; k < g.length && (l = g[k]); k++) for (h = f[l.index], m = l.index; m < l.index + l.ia; m++) q = d[m], e.__shady_native_insertBefore(q, h), f.splice(m, 0, q); - } - } - - if (!N.preferPerformance && !this.Aa) for (b = this.host.__shady_firstChild; b; b = b.__shady_nextSibling) c = L(b), b.__shady_native_parentNode !== this.host || "slot" !== b.localName && c.assignedSlot || this.host.__shady_native_removeChild(b); - this.Aa = !0; - nf = a; - of && of(); - }; - - function qf(a, b, c) { - var d = D(b), - e = d.oa; - d.oa = null; - c || (c = (a = a.b[b.__shady_slot || "__catchall"]) && a[0]); - c ? (D(c).assignedNodes.push(b), d.assignedSlot = c) : d.assignedSlot = void 0; - e !== d.assignedSlot && d.assignedSlot && (D(d.assignedSlot).ra = !0); - } - - function rf(a, b, c) { - for (var d = 0, e = void 0; d < c.length && (e = c[d]); d++) if ("slot" == e.localName) { - var f = L(e).assignedNodes; - f && f.length && rf(a, b, f); - } else b.push(c[d]); - } - - function sf(a, b) { - b.__shady_native_dispatchEvent(new Event("slotchange")); - - b = L(b); - b.assignedSlot && sf(a, b.assignedSlot); - } - - function se(a) { - a.c = a.c || []; - a.a = a.a || []; - a.b = a.b || {}; - } - - function Je(a) { - if (a.c && a.c.length) { - for (var b = a.c, c, d = 0; d < b.length; d++) { - var e = b[d]; - Oe(e); - var f = e.__shady_parentNode; - Oe(f); - f = L(f); - f.da = (f.da || 0) + 1; - f = Ke(e); - a.b[f] ? (c = c || {}, c[f] = !0, a.b[f].push(e)) : a.b[f] = [e]; - a.a.push(e); - } - - if (c) for (var g in c) a.b[g] = Le(a.b[g]); - a.c = []; - } - } - - function Ke(a) { - var b = a.name || a.getAttribute("name") || "__catchall"; - return a.La = b; - } - - function Le(a) { - return a.sort(function (b, c) { - b = pf(b); - - for (var d = pf(c), e = 0; e < b.length; e++) { - c = b[e]; - var f = d[e]; - if (c !== f) return b = Hc(c.__shady_parentNode), b.indexOf(c) - b.indexOf(f); - } - }); - } - - function ve(a, b) { - if (a.a) { - Je(a); - var c = a.b, - d; - - for (d in c) for (var e = c[d], f = 0; f < e.length; f++) { - var g = e[f]; - - if (Dc(b, g)) { - e.splice(f, 1); - var h = a.a.indexOf(g); - 0 <= h && (a.a.splice(h, 1), (h = L(g.__shady_parentNode)) && h.da && h.da--); - f--; - g = L(g); - if (h = g.V) for (var k = 0; k < h.length; k++) { - var l = h[k], - m = l.__shady_native_parentNode; - m && m.__shady_native_removeChild(l); - } - g.V = []; - g.assignedNodes = []; - h = !0; - } - } - - return h; - } - } - - function vc(a) { - Je(a); - return !(!a.a || !a.a.length); - } - - (function (a) { - a.__proto__ = DocumentFragment.prototype; - mf(a, "__shady_"); - mf(a); - Object.defineProperties(a, { - nodeType: { - value: Node.DOCUMENT_FRAGMENT_NODE, - configurable: !0 - }, - nodeName: { - value: "#document-fragment", - configurable: !0 - }, - nodeValue: { - value: null, - configurable: !0 - } - }); - ["localName", "namespaceURI", "prefix"].forEach(function (b) { - Object.defineProperty(a, b, { - value: void 0, - configurable: !0 - }); - }); - ["ownerDocument", "baseURI", "isConnected"].forEach(function (b) { - Object.defineProperty(a, b, { - get: function () { - return this.host[b]; - }, - configurable: !0 - }); - }); - })(Pe.prototype); - - if (window.customElements && window.customElements.define && N.sa && !N.preferPerformance) { - var tf = new Map(); - - of = function () { - var a = []; - tf.forEach(function (d, e) { - a.push([e, d]); - }); - tf.clear(); - - for (var b = 0; b < a.length; b++) { - var c = a[b][0]; - a[b][1] ? c.__shadydom_connectedCallback() : c.__shadydom_disconnectedCallback(); - } - }; - - nf && document.addEventListener("readystatechange", function () { - nf = !1; - of(); - }, { - once: !0 - }); - - var uf = function (a, b, c) { - var d = 0, - e = "__isConnected" + d++; - if (b || c) a.prototype.connectedCallback = a.prototype.__shadydom_connectedCallback = function () { - nf ? tf.set(this, !0) : this[e] || (this[e] = !0, b && b.call(this)); - }, a.prototype.disconnectedCallback = a.prototype.__shadydom_disconnectedCallback = function () { - nf ? this.isConnected || tf.set(this, !1) : this[e] && (this[e] = !1, c && c.call(this)); - }; - return a; - }, - vf = window.customElements.define, - wf = function (a, b) { - var c = b.prototype.connectedCallback, - d = b.prototype.disconnectedCallback; - vf.call(window.customElements, a, uf(b, c, d)); - b.prototype.connectedCallback = c; - b.prototype.disconnectedCallback = d; - }; - - window.customElements.define = wf; - Object.defineProperty(window.CustomElementRegistry.prototype, "define", { - value: wf, - configurable: !0 - }); - } - - function re(a) { - a = a.__shady_getRootNode(); - if (O(a)) return a; - } - - function xf(a) { - this.node = a; - } - - v = xf.prototype; - - v.addEventListener = function (a, b, c) { - return this.node.__shady_addEventListener(a, b, c); - }; - - v.removeEventListener = function (a, b, c) { - return this.node.__shady_removeEventListener(a, b, c); - }; - - v.appendChild = function (a) { - return this.node.__shady_appendChild(a); - }; - - v.insertBefore = function (a, b) { - return this.node.__shady_insertBefore(a, b); - }; - - v.removeChild = function (a) { - return this.node.__shady_removeChild(a); - }; - - v.replaceChild = function (a, b) { - return this.node.__shady_replaceChild(a, b); - }; - - v.cloneNode = function (a) { - return this.node.__shady_cloneNode(a); - }; - - v.getRootNode = function (a) { - return this.node.__shady_getRootNode(a); - }; - - v.contains = function (a) { - return this.node.__shady_contains(a); - }; - - v.dispatchEvent = function (a) { - return this.node.__shady_dispatchEvent(a); - }; - - v.setAttribute = function (a, b) { - this.node.__shady_setAttribute(a, b); - }; - - v.getAttribute = function (a) { - return this.node.__shady_native_getAttribute(a); - }; - - v.hasAttribute = function (a) { - return this.node.__shady_native_hasAttribute(a); - }; - - v.removeAttribute = function (a) { - this.node.__shady_removeAttribute(a); - }; - - v.attachShadow = function (a) { - return this.node.__shady_attachShadow(a); - }; - - v.focus = function () { - this.node.__shady_native_focus(); - }; - - v.blur = function () { - this.node.__shady_blur(); - }; - - v.importNode = function (a, b) { - if (this.node.nodeType === Node.DOCUMENT_NODE) return this.node.__shady_importNode(a, b); - }; - - v.getElementById = function (a) { - if (this.node.nodeType === Node.DOCUMENT_NODE) return this.node.__shady_getElementById(a); - }; - - v.querySelector = function (a) { - return this.node.__shady_querySelector(a); - }; - - v.querySelectorAll = function (a, b) { - return this.node.__shady_querySelectorAll(a, b); - }; - - v.assignedNodes = function (a) { - if ("slot" === this.node.localName) return this.node.__shady_assignedNodes(a); - }; - - v.append = function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - return this.node.__shady_append.apply(this.node, x(b)); - }; - - v.prepend = function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - return this.node.__shady_prepend.apply(this.node, x(b)); - }; - - v.after = function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - return this.node.__shady_after.apply(this.node, x(b)); - }; - - v.before = function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - return this.node.__shady_before.apply(this.node, x(b)); - }; - - v.remove = function () { - return this.node.__shady_remove(); - }; - - v.replaceWith = function (a) { - for (var b = [], c = 0; c < arguments.length; ++c) b[c] = arguments[c]; - - return this.node.__shady_replaceWith.apply(this.node, x(b)); - }; - - da.Object.defineProperties(xf.prototype, { - activeElement: { - configurable: !0, - enumerable: !0, - get: function () { - if (O(this.node) || this.node.nodeType === Node.DOCUMENT_NODE) return this.node.__shady_activeElement; - } - }, - _activeElement: { - configurable: !0, - enumerable: !0, - get: function () { - return this.activeElement; - } - }, - host: { - configurable: !0, - enumerable: !0, - get: function () { - if (O(this.node)) return this.node.host; - } - }, - parentNode: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_parentNode; - } - }, - firstChild: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_firstChild; - } - }, - lastChild: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_lastChild; - } - }, - nextSibling: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_nextSibling; - } - }, - previousSibling: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_previousSibling; - } - }, - childNodes: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_childNodes; - } - }, - parentElement: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_parentElement; - } - }, - firstElementChild: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_firstElementChild; - } - }, - lastElementChild: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_lastElementChild; - } - }, - nextElementSibling: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_nextElementSibling; - } - }, - previousElementSibling: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_previousElementSibling; - } - }, - children: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_children; - } - }, - childElementCount: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_childElementCount; - } - }, - shadowRoot: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_shadowRoot; - } - }, - assignedSlot: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_assignedSlot; - } - }, - isConnected: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_isConnected; - } - }, - innerHTML: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_innerHTML; - }, - set: function (a) { - this.node.__shady_innerHTML = a; - } - }, - textContent: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_textContent; - }, - set: function (a) { - this.node.__shady_textContent = a; - } - }, - slot: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_slot; - }, - set: function (a) { - this.node.__shady_slot = a; - } - }, - className: { - configurable: !0, - enumerable: !0, - get: function () { - return this.node.__shady_className; - }, - set: function (a) { - return this.node.__shady_className = a; - } - } - }); - - function yf(a) { - Object.defineProperty(xf.prototype, a, { - get: function () { - return this.node["__shady_" + a]; - }, - set: function (b) { - this.node["__shady_" + a] = b; - }, - configurable: !0 - }); - } - - Vd.forEach(function (a) { - return yf(a); - }); - Wd.forEach(function (a) { - return yf(a); - }); - var zf = new WeakMap(); - - function Af(a) { - if (O(a) || a instanceof xf) return a; - var b = zf.get(a); - b || (b = new xf(a), zf.set(a, b)); - return b; - } - - if (N.sa) { - var Bf = N.B ? function (a) { - return a; - } : function (a) { - ud(a); - td(a); - return a; - }, - ShadyDOM = { - inUse: N.sa, - patch: Bf, - isShadyRoot: O, - enqueue: Pc, - flush: Qc, - flushInitial: function (a) { - !a.Aa && a.T && ye(a); - }, - settings: N, - filterMutations: Vc, - observeChildren: Tc, - unobserveChildren: Uc, - deferConnectionCallbacks: N.deferConnectionCallbacks, - preferPerformance: N.preferPerformance, - handlesDynamicScoping: !0, - wrap: N.D ? Af : Bf, - wrapIfNeeded: !0 === N.D ? Af : function (a) { - return a; - }, - Wrapper: xf, - composedPath: Dd, - noPatch: N.D, - patchOnDemand: N.ua, - nativeMethods: dd, - nativeTree: ed, - patchElementProto: ff - }; - window.ShadyDOM = ShadyDOM; - nd(); - ef("__shady_"); - Object.defineProperty(document, "_activeElement", Xe.activeElement); - P(Window.prototype, $e, "__shady_"); - N.D ? N.ua && P(Element.prototype, Re) : (ef(), Ud()); - Pd(); - window.Event = Rd; - window.CustomEvent = Sd; - window.MouseEvent = Td; - window.ShadowRoot = Pe; - } - /* - Copyright (c) 2020 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at - http://polymer.github.io/LICENSE.txt The complete set of authors may be found - at http://polymer.github.io/AUTHORS.txt The complete set of contributors may - be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by - Google as part of the polymer project is also subject to an additional IP - rights grant found at http://polymer.github.io/PATENTS.txt - */ - - var Cf = window.Document.prototype.createElement, - Df = window.Document.prototype.createElementNS, - Ef = window.Document.prototype.importNode, - Ff = window.Document.prototype.prepend, - Gf = window.Document.prototype.append, - Hf = window.DocumentFragment.prototype.prepend, - If = window.DocumentFragment.prototype.append, - Jf = window.Node.prototype.cloneNode, - Kf = window.Node.prototype.appendChild, - Lf = window.Node.prototype.insertBefore, - Mf = window.Node.prototype.removeChild, - Nf = window.Node.prototype.replaceChild, - Of = Object.getOwnPropertyDescriptor(window.Node.prototype, "textContent"), - Pf = window.Element.prototype.attachShadow, - Qf = Object.getOwnPropertyDescriptor(window.Element.prototype, "innerHTML"), - Rf = window.Element.prototype.getAttribute, - Sf = window.Element.prototype.setAttribute, - Tf = window.Element.prototype.removeAttribute, - Uf = window.Element.prototype.getAttributeNS, - Vf = window.Element.prototype.setAttributeNS, - Wf = window.Element.prototype.removeAttributeNS, - Xf = window.Element.prototype.insertAdjacentElement, - Yf = window.Element.prototype.insertAdjacentHTML, - Zf = window.Element.prototype.prepend, - $f = window.Element.prototype.append, - ag = window.Element.prototype.before, - bg = window.Element.prototype.after, - cg = window.Element.prototype.replaceWith, - dg = window.Element.prototype.remove, - eg = window.HTMLElement, - fg = Object.getOwnPropertyDescriptor(window.HTMLElement.prototype, "innerHTML"), - gg = window.HTMLElement.prototype.insertAdjacentElement, - hg = window.HTMLElement.prototype.insertAdjacentHTML; - var ig = new Set(); - "annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" ").forEach(function (a) { - return ig.add(a); - }); - - function jg(a) { - var b = ig.has(a); - a = /^[a-z][.0-9_a-z]*-[-.0-9_a-z]*$/.test(a); - return !b && a; - } - - var kg = document.contains ? document.contains.bind(document) : document.documentElement.contains.bind(document.documentElement); - - function T(a) { - var b = a.isConnected; - if (void 0 !== b) return b; - if (kg(a)) return !0; - - for (; a && !(a.__CE_isImportDocument || a instanceof Document);) a = a.parentNode || (window.ShadowRoot && a instanceof ShadowRoot ? a.host : void 0); - - return !(!a || !(a.__CE_isImportDocument || a instanceof Document)); - } - - function lg(a) { - var b = a.children; - if (b) return Array.prototype.slice.call(b); - b = []; - - for (a = a.firstChild; a; a = a.nextSibling) a.nodeType === Node.ELEMENT_NODE && b.push(a); - - return b; - } - - function mg(a, b) { - for (; b && b !== a && !b.nextSibling;) b = b.parentNode; - - return b && b !== a ? b.nextSibling : null; - } - - function ng(a, b, c) { - for (var d = a; d;) { - if (d.nodeType === Node.ELEMENT_NODE) { - var e = d; - b(e); - var f = e.localName; - - if ("link" === f && "import" === e.getAttribute("rel")) { - d = e.import; - void 0 === c && (c = new Set()); - if (d instanceof Node && !c.has(d)) for (c.add(d), d = d.firstChild; d; d = d.nextSibling) ng(d, b, c); - d = mg(a, e); - continue; - } else if ("template" === f) { - d = mg(a, e); - continue; - } - - if (e = e.__CE_shadowRoot) for (e = e.firstChild; e; e = e.nextSibling) ng(e, b, c); - } - - d = d.firstChild ? d.firstChild : mg(a, d); - } - } - - function og() { - var a = !(null === pg || void 0 === pg || !pg.noDocumentConstructionObserver), - b = !(null === pg || void 0 === pg || !pg.shadyDomFastWalk); - this.X = []; - this.a = []; - this.R = !1; - this.shadyDomFastWalk = b; - this.jb = !a; - } - - function qg(a, b, c, d) { - var e = window.ShadyDom; - - if (a.shadyDomFastWalk && e && e.inUse) { - if (b.nodeType === Node.ELEMENT_NODE && c(b), b.querySelectorAll) for (a = e.nativeMethods.querySelectorAll.call(b, "*"), b = 0; b < a.length; b++) c(a[b]); - } else ng(b, c, d); - } - - function rg(a, b) { - a.R = !0; - a.X.push(b); - } - - function sg(a, b) { - a.R = !0; - a.a.push(b); - } - - function tg(a, b) { - a.R && qg(a, b, function (c) { - return ug(a, c); - }); - } - - function ug(a, b) { - if (a.R && !b.__CE_patched) { - b.__CE_patched = !0; - - for (var c = 0; c < a.X.length; c++) a.X[c](b); - - for (c = 0; c < a.a.length; c++) a.a[c](b); - } - } - - function vg(a, b) { - var c = []; - qg(a, b, function (e) { - return c.push(e); - }); - - for (b = 0; b < c.length; b++) { - var d = c[b]; - 1 === d.__CE_state ? a.connectedCallback(d) : wg(a, d); - } - } - - function xg(a, b) { - var c = []; - qg(a, b, function (e) { - return c.push(e); - }); - - for (b = 0; b < c.length; b++) { - var d = c[b]; - 1 === d.__CE_state && a.disconnectedCallback(d); - } - } - - function yg(a, b, c) { - c = void 0 === c ? {} : c; - - var d = c.kb, - e = c.upgrade || function (g) { - return wg(a, g); - }, - f = []; - - qg(a, b, function (g) { - a.R && ug(a, g); - - if ("link" === g.localName && "import" === g.getAttribute("rel")) { - var h = g.import; - h instanceof Node && (h.__CE_isImportDocument = !0, h.__CE_registry = document.__CE_registry); - h && "complete" === h.readyState ? h.__CE_documentLoadHandled = !0 : g.addEventListener("load", function () { - var k = g.import; - - if (!k.__CE_documentLoadHandled) { - k.__CE_documentLoadHandled = !0; - var l = new Set(); - d && (d.forEach(function (m) { - return l.add(m); - }), l.delete(k)); - yg(a, k, { - kb: l, - upgrade: e - }); - } - }); - } else f.push(g); - }, d); - - for (b = 0; b < f.length; b++) e(f[b]); - } - - function wg(a, b) { - try { - var c = b.ownerDocument, - d = c.__CE_registry; - var e = d && (c.defaultView || c.__CE_isImportDocument) ? zg(d, b.localName) : void 0; - - if (e && void 0 === b.__CE_state) { - e.constructionStack.push(b); - - try { - try { - if (new e.constructorFunction() !== b) throw Error("The custom element constructor did not produce the element being upgraded."); - } finally { - e.constructionStack.pop(); - } - } catch (k) { - throw b.__CE_state = 2, k; - } - - b.__CE_state = 1; - b.__CE_definition = e; - - if (e.attributeChangedCallback && b.hasAttributes()) { - var f = e.observedAttributes; - - for (e = 0; e < f.length; e++) { - var g = f[e], - h = b.getAttribute(g); - null !== h && a.attributeChangedCallback(b, g, null, h, null); - } - } - - T(b) && a.connectedCallback(b); - } - } catch (k) { - Ag(k); - } - } - - og.prototype.connectedCallback = function (a) { - var b = a.__CE_definition; - if (b.connectedCallback) try { - b.connectedCallback.call(a); - } catch (c) { - Ag(c); - } - }; - - og.prototype.disconnectedCallback = function (a) { - var b = a.__CE_definition; - if (b.disconnectedCallback) try { - b.disconnectedCallback.call(a); - } catch (c) { - Ag(c); - } - }; - - og.prototype.attributeChangedCallback = function (a, b, c, d, e) { - var f = a.__CE_definition; - if (f.attributeChangedCallback && -1 < f.observedAttributes.indexOf(b)) try { - f.attributeChangedCallback.call(a, b, c, d, e); - } catch (g) { - Ag(g); - } - }; - - function Bg(a, b, c, d) { - var e = b.__CE_registry; - if (e && (null === d || "http://www.w3.org/1999/xhtml" === d) && (e = zg(e, c))) try { - var f = new e.constructorFunction(); - if (void 0 === f.__CE_state || void 0 === f.__CE_definition) throw Error("Failed to construct '" + c + "': The returned value was not constructed with the HTMLElement constructor."); - if ("http://www.w3.org/1999/xhtml" !== f.namespaceURI) throw Error("Failed to construct '" + c + "': The constructed element's namespace must be the HTML namespace."); - if (f.hasAttributes()) throw Error("Failed to construct '" + c + "': The constructed element must not have any attributes."); - if (null !== f.firstChild) throw Error("Failed to construct '" + c + "': The constructed element must not have any children."); - if (null !== f.parentNode) throw Error("Failed to construct '" + c + "': The constructed element must not have a parent node."); - if (f.ownerDocument !== b) throw Error("Failed to construct '" + c + "': The constructed element's owner document is incorrect."); - if (f.localName !== c) throw Error("Failed to construct '" + c + "': The constructed element's local name is incorrect."); - return f; - } catch (g) { - return Ag(g), b = null === d ? Cf.call(b, c) : Df.call(b, d, c), Object.setPrototypeOf(b, HTMLUnknownElement.prototype), b.__CE_state = 2, b.__CE_definition = void 0, ug(a, b), b; - } - b = null === d ? Cf.call(b, c) : Df.call(b, d, c); - ug(a, b); - return b; - } - - function Ag(a) { - var b = a.message, - c = a.sourceURL || a.fileName || "", - d = a.line || a.lineNumber || 0, - e = a.column || a.columnNumber || 0, - f = void 0; - void 0 === ErrorEvent.prototype.initErrorEvent ? f = new ErrorEvent("error", { - cancelable: !0, - message: b, - filename: c, - lineno: d, - colno: e, - error: a - }) : (f = document.createEvent("ErrorEvent"), f.initErrorEvent("error", !1, !0, b, c, d), f.preventDefault = function () { - Object.defineProperty(this, "defaultPrevented", { - configurable: !0, - get: function () { - return !0; - } - }); - }); - void 0 === f.error && Object.defineProperty(f, "error", { - configurable: !0, - enumerable: !0, - get: function () { - return a; - } - }); - window.dispatchEvent(f); - f.defaultPrevented || console.error(a); - } - - function Cg() { - var a = this; - this.C = void 0; - this.Ca = new Promise(function (b) { - a.a = b; - }); - } - - Cg.prototype.resolve = function (a) { - if (this.C) throw Error("Already resolved."); - this.C = a; - this.a(a); - }; - - function Dg(a) { - var b = document; - this.S = void 0; - this.M = a; - this.a = b; - yg(this.M, this.a); - "loading" === this.a.readyState && (this.S = new MutationObserver(this.b.bind(this)), this.S.observe(this.a, { - childList: !0, - subtree: !0 - })); - } - - function Eg(a) { - a.S && a.S.disconnect(); - } - - Dg.prototype.b = function (a) { - var b = this.a.readyState; - "interactive" !== b && "complete" !== b || Eg(this); - - for (b = 0; b < a.length; b++) for (var c = a[b].addedNodes, d = 0; d < c.length; d++) yg(this.M, c[d]); - }; - - function U(a) { - this.fa = new Map(); - this.ga = new Map(); - this.xa = new Map(); - this.na = !1; - this.qa = new Map(); - - this.ea = function (b) { - return b(); - }; - - this.P = !1; - this.ha = []; - this.M = a; - this.ya = a.jb ? new Dg(a) : void 0; - } - - v = U.prototype; - - v.$a = function (a, b) { - var c = this; - if (!(b instanceof Function)) throw new TypeError("Custom element constructor getters must be functions."); - Fg(this, a); - this.fa.set(a, b); - this.ha.push(a); - this.P || (this.P = !0, this.ea(function () { - return Gg(c); - })); - }; - - v.define = function (a, b) { - var c = this; - if (!(b instanceof Function)) throw new TypeError("Custom element constructors must be functions."); - Fg(this, a); - Hg(this, a, b); - this.ha.push(a); - this.P || (this.P = !0, this.ea(function () { - return Gg(c); - })); - }; - - function Fg(a, b) { - if (!jg(b)) throw new SyntaxError("The element name '" + b + "' is not valid."); - if (zg(a, b)) throw Error("A custom element with name '" + (b + "' has already been defined.")); - if (a.na) throw Error("A custom element is already being defined."); - } - - function Hg(a, b, c) { - a.na = !0; - var d; - - try { - var e = c.prototype; - if (!(e instanceof Object)) throw new TypeError("The custom element constructor's prototype is not an object."); - - var f = function (m) { - var q = e[m]; - if (void 0 !== q && !(q instanceof Function)) throw Error("The '" + m + "' callback must be a function."); - return q; - }; - - var g = f("connectedCallback"); - var h = f("disconnectedCallback"); - var k = f("adoptedCallback"); - var l = (d = f("attributeChangedCallback")) && c.observedAttributes || []; - } catch (m) { - throw m; - } finally { - a.na = !1; - } - - c = { - localName: b, - constructorFunction: c, - connectedCallback: g, - disconnectedCallback: h, - adoptedCallback: k, - attributeChangedCallback: d, - observedAttributes: l, - constructionStack: [] - }; - a.ga.set(b, c); - a.xa.set(c.constructorFunction, c); - return c; - } - - v.upgrade = function (a) { - yg(this.M, a); - }; - - function Gg(a) { - if (!1 !== a.P) { - a.P = !1; - - for (var b = [], c = a.ha, d = new Map(), e = 0; e < c.length; e++) d.set(c[e], []); - - yg(a.M, document, { - upgrade: function (k) { - if (void 0 === k.__CE_state) { - var l = k.localName, - m = d.get(l); - m ? m.push(k) : a.ga.has(l) && b.push(k); - } - } - }); - - for (e = 0; e < b.length; e++) wg(a.M, b[e]); - - for (e = 0; e < c.length; e++) { - for (var f = c[e], g = d.get(f), h = 0; h < g.length; h++) wg(a.M, g[h]); - - (f = a.qa.get(f)) && f.resolve(void 0); - } - - c.length = 0; - } - } - - v.get = function (a) { - if (a = zg(this, a)) return a.constructorFunction; - }; - - v.whenDefined = function (a) { - if (!jg(a)) return Promise.reject(new SyntaxError("'" + a + "' is not a valid custom element name.")); - var b = this.qa.get(a); - if (b) return b.Ca; - b = new Cg(); - this.qa.set(a, b); - var c = this.ga.has(a) || this.fa.has(a); - a = -1 === this.ha.indexOf(a); - c && a && b.resolve(void 0); - return b.Ca; - }; - - v.polyfillWrapFlushCallback = function (a) { - this.ya && Eg(this.ya); - var b = this.ea; - - this.ea = function (c) { - return a(function () { - return b(c); - }); - }; - }; - - function zg(a, b) { - var c = a.ga.get(b); - if (c) return c; - - if (c = a.fa.get(b)) { - a.fa.delete(b); - - try { - return Hg(a, b, c()); - } catch (d) { - Ag(d); - } - } - } - - window.CustomElementRegistry = U; - U.prototype.define = U.prototype.define; - U.prototype.upgrade = U.prototype.upgrade; - U.prototype.get = U.prototype.get; - U.prototype.whenDefined = U.prototype.whenDefined; - U.prototype.polyfillDefineLazy = U.prototype.$a; - U.prototype.polyfillWrapFlushCallback = U.prototype.polyfillWrapFlushCallback; - - function Ig(a, b, c) { - function d(e) { - return function (f) { - for (var g = [], h = 0; h < arguments.length; ++h) g[h] = arguments[h]; - - h = []; - - for (var k = [], l = 0; l < g.length; l++) { - var m = g[l]; - m instanceof Element && T(m) && k.push(m); - if (m instanceof DocumentFragment) for (m = m.firstChild; m; m = m.nextSibling) h.push(m);else h.push(m); - } - - e.apply(this, g); - - for (g = 0; g < k.length; g++) xg(a, k[g]); - - if (T(this)) for (g = 0; g < h.length; g++) k = h[g], k instanceof Element && vg(a, k); - }; - } - - void 0 !== c.prepend && (b.prepend = d(c.prepend)); - void 0 !== c.append && (b.append = d(c.append)); - } - - function Jg(a) { - Document.prototype.createElement = function (b) { - return Bg(a, this, b, null); - }; - - Document.prototype.importNode = function (b, c) { - b = Ef.call(this, b, !!c); - this.__CE_registry ? yg(a, b) : tg(a, b); - return b; - }; - - Document.prototype.createElementNS = function (b, c) { - return Bg(a, this, c, b); - }; - - Ig(a, Document.prototype, { - prepend: Ff, - append: Gf - }); - } - - function Kg(a) { - function b(d) { - return function (e) { - for (var f = [], g = 0; g < arguments.length; ++g) f[g] = arguments[g]; - - g = []; - - for (var h = [], k = 0; k < f.length; k++) { - var l = f[k]; - l instanceof Element && T(l) && h.push(l); - if (l instanceof DocumentFragment) for (l = l.firstChild; l; l = l.nextSibling) g.push(l);else g.push(l); - } - - d.apply(this, f); - - for (f = 0; f < h.length; f++) xg(a, h[f]); - - if (T(this)) for (f = 0; f < g.length; f++) h = g[f], h instanceof Element && vg(a, h); - }; - } - - var c = Element.prototype; - void 0 !== ag && (c.before = b(ag)); - void 0 !== bg && (c.after = b(bg)); - void 0 !== cg && (c.replaceWith = function (d) { - for (var e = [], f = 0; f < arguments.length; ++f) e[f] = arguments[f]; - - f = []; - - for (var g = [], h = 0; h < e.length; h++) { - var k = e[h]; - k instanceof Element && T(k) && g.push(k); - if (k instanceof DocumentFragment) for (k = k.firstChild; k; k = k.nextSibling) f.push(k);else f.push(k); - } - - h = T(this); - cg.apply(this, e); - - for (e = 0; e < g.length; e++) xg(a, g[e]); - - if (h) for (xg(a, this), e = 0; e < f.length; e++) g = f[e], g instanceof Element && vg(a, g); - }); - void 0 !== dg && (c.remove = function () { - var d = T(this); - dg.call(this); - d && xg(a, this); - }); - } - - function Lg(a) { - function b(e, f) { - Object.defineProperty(e, "innerHTML", { - enumerable: f.enumerable, - configurable: !0, - get: f.get, - set: function (g) { - var h = this, - k = void 0; - T(this) && (k = [], qg(a, this, function (q) { - q !== h && k.push(q); - })); - f.set.call(this, g); - if (k) for (var l = 0; l < k.length; l++) { - var m = k[l]; - 1 === m.__CE_state && a.disconnectedCallback(m); - } - this.ownerDocument.__CE_registry ? yg(a, this) : tg(a, this); - return g; - } - }); - } - - function c(e, f) { - e.insertAdjacentElement = function (g, h) { - var k = T(h); - g = f.call(this, g, h); - k && xg(a, h); - T(g) && vg(a, h); - return g; - }; - } - - function d(e, f) { - function g(h, k) { - for (var l = []; h !== k; h = h.nextSibling) l.push(h); - - for (k = 0; k < l.length; k++) yg(a, l[k]); - } - - e.insertAdjacentHTML = function (h, k) { - h = h.toLowerCase(); - - if ("beforebegin" === h) { - var l = this.previousSibling; - f.call(this, h, k); - g(l || this.parentNode.firstChild, this); - } else if ("afterbegin" === h) l = this.firstChild, f.call(this, h, k), g(this.firstChild, l);else if ("beforeend" === h) l = this.lastChild, f.call(this, h, k), g(l || this.firstChild, null);else if ("afterend" === h) l = this.nextSibling, f.call(this, h, k), g(this.nextSibling, l);else throw new SyntaxError("The value provided (" + String(h) + ") is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'."); - }; - } - - Pf && (Element.prototype.attachShadow = function (e) { - e = Pf.call(this, e); - - if (a.R && !e.__CE_patched) { - e.__CE_patched = !0; - - for (var f = 0; f < a.X.length; f++) a.X[f](e); - } - - return this.__CE_shadowRoot = e; - }); - Qf && Qf.get ? b(Element.prototype, Qf) : fg && fg.get ? b(HTMLElement.prototype, fg) : sg(a, function (e) { - b(e, { - enumerable: !0, - configurable: !0, - get: function () { - return Jf.call(this, !0).innerHTML; - }, - set: function (f) { - var g = "template" === this.localName, - h = g ? this.content : this, - k = Df.call(document, this.namespaceURI, this.localName); - - for (k.innerHTML = f; 0 < h.childNodes.length;) Mf.call(h, h.childNodes[0]); - - for (f = g ? k.content : k; 0 < f.childNodes.length;) Kf.call(h, f.childNodes[0]); - } - }); - }); - - Element.prototype.setAttribute = function (e, f) { - if (1 !== this.__CE_state) return Sf.call(this, e, f); - var g = Rf.call(this, e); - Sf.call(this, e, f); - f = Rf.call(this, e); - a.attributeChangedCallback(this, e, g, f, null); - }; - - Element.prototype.setAttributeNS = function (e, f, g) { - if (1 !== this.__CE_state) return Vf.call(this, e, f, g); - var h = Uf.call(this, e, f); - Vf.call(this, e, f, g); - g = Uf.call(this, e, f); - a.attributeChangedCallback(this, f, h, g, e); - }; - - Element.prototype.removeAttribute = function (e) { - if (1 !== this.__CE_state) return Tf.call(this, e); - var f = Rf.call(this, e); - Tf.call(this, e); - null !== f && a.attributeChangedCallback(this, e, f, null, null); - }; - - Element.prototype.removeAttributeNS = function (e, f) { - if (1 !== this.__CE_state) return Wf.call(this, e, f); - var g = Uf.call(this, e, f); - Wf.call(this, e, f); - var h = Uf.call(this, e, f); - g !== h && a.attributeChangedCallback(this, f, g, h, e); - }; - - gg ? c(HTMLElement.prototype, gg) : Xf && c(Element.prototype, Xf); - hg ? d(HTMLElement.prototype, hg) : Yf && d(Element.prototype, Yf); - Ig(a, Element.prototype, { - prepend: Zf, - append: $f - }); - Kg(a); - } - var Mg = {}; - - function Ng(a) { - function b() { - var c = this.constructor; - - var d = document.__CE_registry.xa.get(c); - - if (!d) throw Error("Failed to construct a custom element: The constructor was not registered with `customElements`."); - var e = d.constructionStack; - if (0 === e.length) return e = Cf.call(document, d.localName), Object.setPrototypeOf(e, c.prototype), e.__CE_state = 1, e.__CE_definition = d, ug(a, e), e; - var f = e.length - 1, - g = e[f]; - if (g === Mg) throw Error("Failed to construct '" + d.localName + "': This element was already constructed."); - e[f] = Mg; - Object.setPrototypeOf(g, c.prototype); - ug(a, g); - return g; - } - - b.prototype = eg.prototype; - Object.defineProperty(HTMLElement.prototype, "constructor", { - writable: !0, - configurable: !0, - enumerable: !1, - value: b - }); - window.HTMLElement = b; - } - - function Og(a) { - function b(c, d) { - Object.defineProperty(c, "textContent", { - enumerable: d.enumerable, - configurable: !0, - get: d.get, - set: function (e) { - if (this.nodeType === Node.TEXT_NODE) d.set.call(this, e);else { - var f = void 0; - - if (this.firstChild) { - var g = this.childNodes, - h = g.length; - - if (0 < h && T(this)) { - f = Array(h); - - for (var k = 0; k < h; k++) f[k] = g[k]; - } - } - - d.set.call(this, e); - if (f) for (e = 0; e < f.length; e++) xg(a, f[e]); - } - } - }); - } - - Node.prototype.insertBefore = function (c, d) { - if (c instanceof DocumentFragment) { - var e = lg(c); - c = Lf.call(this, c, d); - if (T(this)) for (d = 0; d < e.length; d++) vg(a, e[d]); - return c; - } - - e = c instanceof Element && T(c); - d = Lf.call(this, c, d); - e && xg(a, c); - T(this) && vg(a, c); - return d; - }; - - Node.prototype.appendChild = function (c) { - if (c instanceof DocumentFragment) { - var d = lg(c); - c = Kf.call(this, c); - if (T(this)) for (var e = 0; e < d.length; e++) vg(a, d[e]); - return c; - } - - d = c instanceof Element && T(c); - e = Kf.call(this, c); - d && xg(a, c); - T(this) && vg(a, c); - return e; - }; - - Node.prototype.cloneNode = function (c) { - c = Jf.call(this, !!c); - this.ownerDocument.__CE_registry ? yg(a, c) : tg(a, c); - return c; - }; - - Node.prototype.removeChild = function (c) { - var d = c instanceof Element && T(c), - e = Mf.call(this, c); - d && xg(a, c); - return e; - }; - - Node.prototype.replaceChild = function (c, d) { - if (c instanceof DocumentFragment) { - var e = lg(c); - c = Nf.call(this, c, d); - if (T(this)) for (xg(a, d), d = 0; d < e.length; d++) vg(a, e[d]); - return c; - } - - e = c instanceof Element && T(c); - var f = Nf.call(this, c, d), - g = T(this); - g && xg(a, d); - e && xg(a, c); - g && vg(a, c); - return f; - }; - - Of && Of.get ? b(Node.prototype, Of) : rg(a, function (c) { - b(c, { - enumerable: !0, - configurable: !0, - get: function () { - for (var d = [], e = this.firstChild; e; e = e.nextSibling) e.nodeType !== Node.COMMENT_NODE && d.push(e.textContent); - - return d.join(""); - }, - set: function (d) { - for (; this.firstChild;) Mf.call(this, this.firstChild); - - null != d && "" !== d && Kf.call(this, document.createTextNode(d)); - } - }); - }); - } - var pg = window.customElements; - - function Pg() { - var a = new og(); - Ng(a); - Jg(a); - Ig(a, DocumentFragment.prototype, { - prepend: Hf, - append: If - }); - Og(a); - Lg(a); - a = new U(a); - document.__CE_registry = a; - Object.defineProperty(window, "customElements", { - configurable: !0, - enumerable: !0, - value: a - }); - } - - pg && !pg.forcePolyfill && "function" == typeof pg.define && "function" == typeof pg.get || Pg(); - window.__CE_installPolyfill = Pg; - /* - Copyright (c) 2017 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ - - function Qg() { - this.end = this.start = 0; - this.rules = this.parent = this.previous = null; - this.cssText = this.parsedCssText = ""; - this.atRule = !1; - this.type = 0; - this.parsedSelector = this.selector = this.keyframesName = ""; - } - - function Rg(a) { - var b = a = a.replace(Sg, "").replace(Tg, ""), - c = new Qg(); - c.start = 0; - c.end = b.length; - - for (var d = c, e = 0, f = b.length; e < f; e++) if ("{" === b[e]) { - d.rules || (d.rules = []); - var g = d, - h = g.rules[g.rules.length - 1] || null; - d = new Qg(); - d.start = e + 1; - d.parent = g; - d.previous = h; - g.rules.push(d); - } else "}" === b[e] && (d.end = e + 1, d = d.parent || c); - - return Ug(c, a); - } - - function Ug(a, b) { - var c = b.substring(a.start, a.end - 1); - a.parsedCssText = a.cssText = c.trim(); - a.parent && (c = b.substring(a.previous ? a.previous.end : a.parent.start, a.start - 1), c = Vg(c), c = c.replace(Wg, " "), c = c.substring(c.lastIndexOf(";") + 1), c = a.parsedSelector = a.selector = c.trim(), a.atRule = 0 === c.indexOf("@"), a.atRule ? 0 === c.indexOf("@media") ? a.type = Xg : c.match(Yg) && (a.type = Zg, a.keyframesName = a.selector.split(Wg).pop()) : a.type = 0 === c.indexOf("--") ? $g : ah); - if (c = a.rules) for (var d = 0, e = c.length, f = void 0; d < e && (f = c[d]); d++) Ug(f, b); - return a; - } - - function Vg(a) { - return a.replace(/\\([0-9a-f]{1,6})\s/gi, function (b, c) { - b = c; - - for (c = 6 - b.length; c--;) b = "0" + b; - - return "\\" + b; - }); - } - - function bh(a, b, c) { - c = void 0 === c ? "" : c; - var d = ""; - - if (a.cssText || a.rules) { - var e = a.rules, - f; - if (f = e) f = e[0], f = !(f && f.selector && 0 === f.selector.indexOf("--")); - - if (f) { - f = 0; - - for (var g = e.length, h = void 0; f < g && (h = e[f]); f++) d = bh(h, b, d); - } else b ? b = a.cssText : (b = a.cssText, b = b.replace(ch, "").replace(dh, ""), b = b.replace(eh, "").replace(fh, "")), (d = b.trim()) && (d = " " + d + "\n"); - } - - d && (a.selector && (c += a.selector + " {\n"), c += d, a.selector && (c += "}\n\n")); - return c; - } - - var ah = 1, - Zg = 7, - Xg = 4, - $g = 1E3, - Sg = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim, - Tg = /@import[^;]*;/gim, - ch = /(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim, - dh = /(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim, - eh = /@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim, - fh = /[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim, - Yg = /^@[^\s]*keyframes/, - Wg = /\s+/g; - var V = !(window.ShadyDOM && window.ShadyDOM.inUse), - gh; - - function hh(a) { - gh = a && a.shimcssproperties ? !1 : V || !(navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/) || !window.CSS || !CSS.supports || !CSS.supports("box-shadow", "0 0 0 var(--foo)")); - } - - var ih; - window.ShadyCSS && void 0 !== window.ShadyCSS.cssBuild && (ih = window.ShadyCSS.cssBuild); - var jh = !(!window.ShadyCSS || !window.ShadyCSS.disableRuntime); - window.ShadyCSS && void 0 !== window.ShadyCSS.nativeCss ? gh = window.ShadyCSS.nativeCss : window.ShadyCSS ? (hh(window.ShadyCSS), window.ShadyCSS = void 0) : hh(window.WebComponents && window.WebComponents.flags); - var X = gh; - var kh = /(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi, - lh = /(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi, - mh = /(--[\w-]+)\s*([:,;)]|$)/gi, - nh = /(animation\s*:)|(animation-name\s*:)/, - oh = /@media\s(.*)/, - ph = /\{[^}]*\}/g; - var qh = new Set(); - - function rh(a, b) { - if (!a) return ""; - "string" === typeof a && (a = Rg(a)); - b && sh(a, b); - return bh(a, X); - } - - function th(a) { - !a.__cssRules && a.textContent && (a.__cssRules = Rg(a.textContent)); - return a.__cssRules || null; - } - - function uh(a) { - return !!a.parent && a.parent.type === Zg; - } - - function sh(a, b, c, d) { - if (a) { - var e = !1, - f = a.type; - - if (d && f === Xg) { - var g = a.selector.match(oh); - g && (window.matchMedia(g[1]).matches || (e = !0)); - } - - f === ah ? b(a) : c && f === Zg ? c(a) : f === $g && (e = !0); - if ((a = a.rules) && !e) for (e = 0, f = a.length, g = void 0; e < f && (g = a[e]); e++) sh(g, b, c, d); - } - } - - function vh(a, b, c, d) { - var e = document.createElement("style"); - b && e.setAttribute("scope", b); - e.textContent = a; - wh(e, c, d); - return e; - } - - var xh = null; - - function yh(a) { - a = document.createComment(" Shady DOM styles for " + a + " "); - var b = document.head; - b.insertBefore(a, (xh ? xh.nextSibling : null) || b.firstChild); - return xh = a; - } - - function wh(a, b, c) { - b = b || document.head; - b.insertBefore(a, c && c.nextSibling || b.firstChild); - xh ? a.compareDocumentPosition(xh) === Node.DOCUMENT_POSITION_PRECEDING && (xh = a) : xh = a; - } - - function Ah(a, b) { - for (var c = 0, d = a.length; b < d; b++) if ("(" === a[b]) c++;else if (")" === a[b] && 0 === --c) return b; - - return -1; - } - - function Bh(a, b) { - var c = a.indexOf("var("); - if (-1 === c) return b(a, "", "", ""); - var d = Ah(a, c + 3), - e = a.substring(c + 4, d); - c = a.substring(0, c); - a = Bh(a.substring(d + 1), b); - d = e.indexOf(","); - return -1 === d ? b(c, e.trim(), "", a) : b(c, e.substring(0, d).trim(), e.substring(d + 1).trim(), a); - } - - function Ch(a, b) { - V ? a.setAttribute("class", b) : window.ShadyDOM.nativeMethods.setAttribute.call(a, "class", b); - } - - var Dh = window.ShadyDOM && window.ShadyDOM.wrap || function (a) { - return a; - }; - - function Eh(a) { - var b = a.localName, - c = ""; - b ? -1 < b.indexOf("-") || (c = b, b = a.getAttribute && a.getAttribute("is") || "") : (b = a.is, c = a.extends); - return { - is: b, - ca: c - }; - } - - function Fh(a) { - for (var b = [], c = "", d = 0; 0 <= d && d < a.length; d++) if ("(" === a[d]) { - var e = Ah(a, d); - c += a.slice(d, e + 1); - d = e; - } else "," === a[d] ? (b.push(c), c = "") : c += a[d]; - - c && b.push(c); - return b; - } - - function Gh(a) { - if (void 0 !== ih) return ih; - - if (void 0 === a.__cssBuild) { - var b = a.getAttribute("css-build"); - if (b) a.__cssBuild = b;else { - a: { - b = "template" === a.localName ? a.content.firstChild : a.firstChild; - - if (b instanceof Comment && (b = b.textContent.trim().split(":"), "css-build" === b[0])) { - b = b[1]; - break a; - } - - b = ""; - } - - if ("" !== b) { - var c = "template" === a.localName ? a.content.firstChild : a.firstChild; - c.parentNode.removeChild(c); - } - - a.__cssBuild = b; - } - } - - return a.__cssBuild || ""; - } - - function Hh(a) { - a = void 0 === a ? "" : a; - return "" !== a && X ? V ? "shadow" === a : "shady" === a : !1; - } - - function Ih() {} - - function Jh(a, b) { - Kh(Lh, a, function (c) { - Mh(c, b || ""); - }); - } - - function Kh(a, b, c) { - b.nodeType === Node.ELEMENT_NODE && c(b); - var d; - "template" === b.localName ? d = (b.content || b._content || b).childNodes : d = b.children || b.childNodes; - if (d) for (b = 0; b < d.length; b++) Kh(a, d[b], c); - } - - function Mh(a, b, c) { - if (b) if (a.classList) c ? (a.classList.remove("style-scope"), a.classList.remove(b)) : (a.classList.add("style-scope"), a.classList.add(b));else if (a.getAttribute) { - var d = a.getAttribute("class"); - c ? d && (b = d.replace("style-scope", "").replace(b, ""), Ch(a, b)) : Ch(a, (d ? d + " " : "") + "style-scope " + b); - } - } - - function Nh(a, b, c) { - Kh(Lh, a, function (d) { - Mh(d, b, !0); - Mh(d, c); - }); - } - - function Oh(a, b) { - Kh(Lh, a, function (c) { - Mh(c, b || "", !0); - }); - } - - function Ph(a, b, c, d, e) { - var f = Lh; - e = void 0 === e ? "" : e; - "" === e && (V || "shady" === (void 0 === d ? "" : d) ? e = rh(b, c) : (a = Eh(a), e = Qh(f, b, a.is, a.ca, c) + "\n\n")); - return e.trim(); - } - - function Qh(a, b, c, d, e) { - var f = Rh(c, d); - c = c ? "." + c : ""; - return rh(b, function (g) { - g.c || (g.selector = g.w = Sh(a, g, a.b, c, f), g.c = !0); - e && e(g, c, f); - }); - } - - function Rh(a, b) { - return b ? "[is=" + a + "]" : a; - } - - function Sh(a, b, c, d, e) { - var f = Fh(b.selector); - - if (!uh(b)) { - b = 0; - - for (var g = f.length, h = void 0; b < g && (h = f[b]); b++) f[b] = c.call(a, h, d, e); - } - - return f.filter(function (k) { - return !!k; - }).join(","); - } - - function Th(a) { - return a.replace(Uh, function (b, c, d) { - -1 < d.indexOf("+") ? d = d.replace(/\+/g, "___") : -1 < d.indexOf("___") && (d = d.replace(/___/g, "+")); - return ":" + c + "(" + d + ")"; - }); - } - - function Vh(a) { - for (var b = [], c; c = a.match(Wh);) { - var d = c.index, - e = Ah(a, d); - if (-1 === e) throw Error(c.input + " selector missing ')'"); - c = a.slice(d, e + 1); - a = a.replace(c, "\ue000"); - b.push(c); - } - - return { - wa: a, - matches: b - }; - } - - function Xh(a, b) { - var c = a.split("\ue000"); - return b.reduce(function (d, e, f) { - return d + e + c[f + 1]; - }, c[0]); - } - - Ih.prototype.b = function (a, b, c) { - var d = !1; - a = a.trim(); - var e = Uh.test(a); - e && (a = a.replace(Uh, function (h, k, l) { - return ":" + k + "(" + l.replace(/\s/g, "") + ")"; - }), a = Th(a)); - var f = Wh.test(a); - - if (f) { - var g = Vh(a); - a = g.wa; - g = g.matches; - } - - a = a.replace(Yh, ":host $1"); - a = a.replace(Zh, function (h, k, l) { - d || (h = $h(l, k, b, c), d = d || h.stop, k = h.Qa, l = h.value); - return k + l; - }); - f && (a = Xh(a, g)); - e && (a = Th(a)); - return a = a.replace(ai, function (h, k, l, m) { - return '[dir="' + l + '"] ' + k + m + ", " + k + '[dir="' + l + '"]' + m; - }); - }; - - function $h(a, b, c, d) { - var e = a.indexOf("::slotted"); - 0 <= a.indexOf(":host") ? a = bi(a, d) : 0 !== e && (a = c ? ci(a, c) : a); - c = !1; - 0 <= e && (b = "", c = !0); - - if (c) { - var f = !0; - c && (a = a.replace(di, function (g, h) { - return " > " + h; - })); - } - - return { - value: a, - Qa: b, - stop: f - }; - } - - function ci(a, b) { - a = a.split(/(\[.+?\])/); - - for (var c = [], d = 0; d < a.length; d++) if (1 === d % 2) c.push(a[d]);else { - var e = a[d]; - if ("" !== e || d !== a.length - 1) e = e.split(":"), e[0] += b, c.push(e.join(":")); - } - - return c.join(""); - } - - function bi(a, b) { - var c = a.match(ei); - return (c = c && c[2].trim() || "") ? c[0].match(fi) ? a.replace(ei, function (d, e, f) { - return b + f; - }) : c.split(fi)[0] === b ? c : "should_not_match" : a.replace(":host", b); - } - - function gi(a) { - ":root" === a.selector && (a.selector = "html"); - } - - Ih.prototype.c = function (a) { - return a.match(":host") ? "" : a.match("::slotted") ? this.b(a, ":not(.style-scope)") : ci(a.trim(), ":not(.style-scope)"); - }; - - da.Object.defineProperties(Ih.prototype, { - a: { - configurable: !0, - enumerable: !0, - get: function () { - return "style-scope"; - } - } - }); - var Uh = /:(nth[-\w]+)\(([^)]+)\)/, - Zh = /(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g, - fi = /[[.:#*]/, - Yh = /^(::slotted)/, - ei = /(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/, - di = /(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/, - ai = /(.*):dir\((?:(ltr|rtl))\)(.*)/, - Wh = /:(?:matches|any|-(?:webkit|moz)-any)/, - Lh = new Ih(); - - function hi(a, b, c, d, e) { - this.H = a || null; - this.b = b || null; - this.ta = c || []; - this.F = null; - this.cssBuild = e || ""; - this.ca = d || ""; - this.a = this.G = this.L = null; - } - - function ii(a) { - return a ? a.__styleInfo : null; - } - - function ji(a, b) { - return a.__styleInfo = b; - } - - hi.prototype.c = function () { - return this.H; - }; - - hi.prototype._getStyleRules = hi.prototype.c; - - function ki(a) { - var b = this.matches || this.matchesSelector || this.mozMatchesSelector || this.msMatchesSelector || this.oMatchesSelector || this.webkitMatchesSelector; - return b && b.call(this, a); - } - - var li = /:host\s*>\s*/, - mi = navigator.userAgent.match("Trident"); - - function ni() {} - - function oi(a) { - var b = {}, - c = [], - d = 0; - sh(a, function (f) { - pi(f); - f.index = d++; - f = f.v.cssText; - - for (var g; g = mh.exec(f);) { - var h = g[1]; - ":" !== g[2] && (b[h] = !0); - } - }, function (f) { - c.push(f); - }); - a.b = c; - a = []; - - for (var e in b) a.push(e); - - return a; - } - - function pi(a) { - if (!a.v) { - var b = {}, - c = {}; - qi(a, c) && (b.K = c, a.rules = null); - b.cssText = a.parsedCssText.replace(ph, "").replace(kh, ""); - a.v = b; - } - } - - function qi(a, b) { - var c = a.v; - - if (c) { - if (c.K) return Object.assign(b, c.K), !0; - } else { - c = a.parsedCssText; - - for (var d; a = kh.exec(c);) { - d = (a[2] || a[3]).trim(); - if ("inherit" !== d || "unset" !== d) b[a[1].trim()] = d; - d = !0; - } - - return d; - } - } - - function ri(a, b, c) { - b && (b = 0 <= b.indexOf(";") ? si(a, b, c) : Bh(b, function (d, e, f, g) { - if (!e) return d + g; - (e = ri(a, c[e], c)) && "initial" !== e ? "apply-shim-inherit" === e && (e = "inherit") : e = ri(a, c[f] || f, c) || f; - return d + (e || "") + g; - })); - return b && b.trim() || ""; - } - - function si(a, b, c) { - b = b.split(";"); - - for (var d = 0, e, f; d < b.length; d++) if (e = b[d]) { - lh.lastIndex = 0; - if (f = lh.exec(e)) e = ri(a, c[f[1]], c);else if (f = e.indexOf(":"), -1 !== f) { - var g = e.substring(f); - g = g.trim(); - g = ri(a, g, c) || g; - e = e.substring(0, f) + g; - } - b[d] = e && e.lastIndexOf(";") === e.length - 1 ? e.slice(0, -1) : e || ""; - } - - return b.join(";"); - } - - function ti(a, b) { - var c = {}, - d = []; - sh(a, function (e) { - e.v || pi(e); - var f = e.w || e.parsedSelector; - b && e.v.K && f && ki.call(b, f) && (qi(e, c), e = e.index, f = parseInt(e / 32, 10), d[f] = (d[f] || 0) | 1 << e % 32); - }, null, !0); - return { - K: c, - key: d - }; - } - - function ui(a, b, c, d) { - b.v || pi(b); - - if (b.v.K) { - var e = Eh(a); - a = e.is; - e = e.ca; - e = a ? Rh(a, e) : "html"; - var f = b.parsedSelector; - var g = !!f.match(li) || "html" === e && -1 < f.indexOf("html"); - var h = 0 === f.indexOf(":host") && !g; - "shady" === c && (g = f === e + " > *." + e || -1 !== f.indexOf("html"), h = !g && 0 === f.indexOf(e)); - if (g || h) c = e, h && (b.w || (b.w = Sh(Lh, b, Lh.b, a ? "." + a : "", e)), c = b.w || e), g && "html" === e && (c = b.w || b.J), d({ - wa: c, - Xa: h, - mb: g - }); - } - } - - function vi(a, b, c) { - var d = {}, - e = {}; - sh(b, function (f) { - ui(a, f, c, function (g) { - ki.call(a._element || a, g.wa) && (g.Xa ? qi(f, d) : qi(f, e)); - }); - }, null, !0); - return { - cb: e, - Va: d - }; - } - - function wi(a, b, c, d) { - var e = Eh(b), - f = Rh(e.is, e.ca), - g = new RegExp("(?:^|[^.#[:])" + (b.extends ? "\\" + f.slice(0, -1) + "\\]" : f) + "($|[.:[\\s>+~])"), - h = ii(b); - e = h.H; - h = h.cssBuild; - var k = xi(e, d); - return Ph(b, e, function (l) { - var m = ""; - l.v || pi(l); - l.v.cssText && (m = si(a, l.v.cssText, c)); - l.cssText = m; - - if (!V && !uh(l) && l.cssText) { - var q = m = l.cssText; - null == l.Da && (l.Da = nh.test(m)); - if (l.Da) if (null == l.ka) { - l.ka = []; - - for (var H in k) q = k[H], q = q(m), m !== q && (m = q, l.ka.push(H)); - } else { - for (H = 0; H < l.ka.length; ++H) q = k[l.ka[H]], m = q(m); - - q = m; - } - l.cssText = q; - l.w = l.w || l.selector; - m = "." + d; - H = Fh(l.w); - q = 0; - - for (var C = H.length, t = void 0; q < C && (t = H[q]); q++) H[q] = t.match(g) ? t.replace(f, m) : m + " " + t; - - l.selector = H.join(","); - } - }, h); - } - - function xi(a, b) { - a = a.b; - var c = {}; - if (!V && a) for (var d = 0, e = a[d]; d < a.length; e = a[++d]) { - var f = e, - g = b; - f.l = new RegExp("\\b" + f.keyframesName + "(?!\\B|-)", "g"); - f.a = f.keyframesName + "-" + g; - f.w = f.w || f.selector; - f.selector = f.w.replace(f.keyframesName, f.a); - c[e.keyframesName] = yi(e); - } - return c; - } - - function yi(a) { - return function (b) { - return b.replace(a.l, a.a); - }; - } - - function zi(a, b) { - var c = Ai, - d = th(a); - a.textContent = rh(d, function (e) { - var f = e.cssText = e.parsedCssText; - e.v && e.v.cssText && (f = f.replace(ch, "").replace(dh, ""), e.cssText = si(c, f, b)); - }); - } - - da.Object.defineProperties(ni.prototype, { - a: { - configurable: !0, - enumerable: !0, - get: function () { - return "x-scope"; - } - } - }); - var Ai = new ni(); - var Bi = {}, - Ci = window.customElements; - - if (Ci && !V && !jh) { - var Di = Ci.define; - - Ci.define = function (a, b, c) { - Bi[a] || (Bi[a] = yh(a)); - Di.call(Ci, a, b, c); - }; - } - - function Ei() { - this.cache = {}; - } - - Ei.prototype.store = function (a, b, c, d) { - var e = this.cache[a] || []; - e.push({ - K: b, - styleElement: c, - G: d - }); - 100 < e.length && e.shift(); - this.cache[a] = e; - }; - - function Fi() {} - - var Gi = new RegExp(Lh.a + "\\s*([^\\s]*)"); - - function Hi(a) { - return (a = (a.classList && a.classList.value ? a.classList.value : a.getAttribute("class") || "").match(Gi)) ? a[1] : ""; - } - - function Ii(a) { - var b = Dh(a).getRootNode(); - return b === a || b === a.ownerDocument ? "" : (a = b.host) ? Eh(a).is : ""; - } - - function Ji(a) { - for (var b = 0; b < a.length; b++) { - var c = a[b]; - if (c.target !== document.documentElement && c.target !== document.head) for (var d = 0; d < c.addedNodes.length; d++) { - var e = c.addedNodes[d]; - - if (e.nodeType === Node.ELEMENT_NODE) { - var f = e.getRootNode(), - g = Hi(e); - if (g && f === e.ownerDocument && ("style" !== e.localName && "template" !== e.localName || "" === Gh(e))) Oh(e, g);else if (f instanceof ShadowRoot) for (f = Ii(e), f !== g && Nh(e, g, f), e = window.ShadyDOM.nativeMethods.querySelectorAll.call(e, ":not(." + Lh.a + ")"), g = 0; g < e.length; g++) { - f = e[g]; - var h = Ii(f); - h && Mh(f, h); - } - } - } - } - } - - if (!(V || window.ShadyDOM && window.ShadyDOM.handlesDynamicScoping)) { - var Ki = new MutationObserver(Ji), - Li = function (a) { - Ki.observe(a, { - childList: !0, - subtree: !0 - }); - }; - - if (window.customElements && !window.customElements.polyfillWrapFlushCallback) Li(document);else { - var Mi = function () { - Li(document.body); - }; - - window.HTMLImports ? window.HTMLImports.whenReady(Mi) : requestAnimationFrame(function () { - if ("loading" === document.readyState) { - var a = function () { - Mi(); - document.removeEventListener("readystatechange", a); - }; - - document.addEventListener("readystatechange", a); - } else Mi(); - }); - } - - Fi = function () { - Ji(Ki.takeRecords()); - }; - } - var Ni = {}; - var Oi = Promise.resolve(); - - function Pi(a) { - if (a = Ni[a]) a._applyShimCurrentVersion = a._applyShimCurrentVersion || 0, a._applyShimValidatingVersion = a._applyShimValidatingVersion || 0, a._applyShimNextVersion = (a._applyShimNextVersion || 0) + 1; - } - - function Qi(a) { - return a._applyShimCurrentVersion === a._applyShimNextVersion; - } - - function Ri(a) { - a._applyShimValidatingVersion = a._applyShimNextVersion; - a._validating || (a._validating = !0, Oi.then(function () { - a._applyShimCurrentVersion = a._applyShimNextVersion; - a._validating = !1; - })); - } - var Si = {}, - Ti = new Ei(); - - function Y() { - this.Y = {}; - this.c = document.documentElement; - var a = new Qg(); - a.rules = []; - this.l = ji(this.c, new hi(a)); - this.J = !1; - this.a = this.b = null; - } - - v = Y.prototype; - - v.flush = function () { - Fi(); - }; - - v.Ta = function (a) { - return th(a); - }; - - v.hb = function (a) { - return rh(a); - }; - - v.prepareTemplate = function (a, b, c) { - this.prepareTemplateDom(a, b); - this.prepareTemplateStyles(a, b, c); - }; - - v.prepareTemplateStyles = function (a, b, c) { - if (!a._prepared && !jh) { - V || Bi[b] || (Bi[b] = yh(b)); - a._prepared = !0; - a.name = b; - a.extends = c; - Ni[b] = a; - var d = Gh(a), - e = Hh(d); - c = { - is: b, - extends: c - }; - - for (var f = [], g = a.content.querySelectorAll("style"), h = 0; h < g.length; h++) { - var k = g[h]; - - if (k.hasAttribute("shady-unscoped")) { - if (!V) { - var l = k.textContent; - - if (!qh.has(l)) { - qh.add(l); - var m = document.createElement("style"); - m.setAttribute("shady-unscoped", ""); - m.textContent = l; - document.head.appendChild(m); - } - - k.parentNode.removeChild(k); - } - } else f.push(k.textContent), k.parentNode.removeChild(k); - } - - f = f.join("").trim() + (Si[b] || ""); - Ui(this); - - if (!e) { - if (g = !d) g = lh.test(f) || kh.test(f), lh.lastIndex = 0, kh.lastIndex = 0; - h = Rg(f); - g && X && this.b && this.b.transformRules(h, b); - a._styleAst = h; - } - - g = []; - X || (g = oi(a._styleAst)); - if (!g.length || X) h = V ? a.content : null, b = Bi[b] || null, d = Ph(c, a._styleAst, null, d, e ? f : ""), d = d.length ? vh(d, c.is, h, b) : null, a._style = d; - a.a = g; - } - }; - - v.ab = function (a, b) { - Si[b] = a.join(" "); - }; - - v.prepareTemplateDom = function (a, b) { - if (!jh) { - var c = Gh(a); - V || "shady" === c || a._domPrepared || (a._domPrepared = !0, Jh(a.content, b)); - } - }; - - function Vi(a) { - var b = Eh(a), - c = b.is; - b = b.ca; - var d = Bi[c] || null, - e = Ni[c]; - - if (e) { - c = e._styleAst; - var f = e.a; - e = Gh(e); - b = new hi(c, d, f, b, e); - ji(a, b); - return b; - } - } - - function Wi(a) { - !a.a && window.ShadyCSS && window.ShadyCSS.CustomStyleInterface && (a.a = window.ShadyCSS.CustomStyleInterface, a.a.transformCallback = function (b) { - a.Ha(b); - }, a.a.validateCallback = function () { - requestAnimationFrame(function () { - (a.a.enqueued || a.J) && a.flushCustomStyles(); - }); - }); - } - - function Ui(a) { - if (!a.b && window.ShadyCSS && window.ShadyCSS.ApplyShim) { - a.b = window.ShadyCSS.ApplyShim; - a.b.invalidCallback = Pi; - var b = !0; - } else b = !1; - - Wi(a); - return b; - } - - v.flushCustomStyles = function () { - if (!jh) { - var a = Ui(this); - - if (this.a) { - var b = this.a.processStyles(); - - if ((a || this.a.enqueued) && !Hh(this.l.cssBuild)) { - if (X) { - if (!this.l.cssBuild) for (a = 0; a < b.length; a++) { - var c = this.a.getStyleForCustomStyle(b[a]); - - if (c && X && this.b) { - var d = th(c); - Ui(this); - this.b.transformRules(d); - c.textContent = rh(d); - } - } - } else { - Xi(this, b); - Yi(this, this.c, this.l); - - for (a = 0; a < b.length; a++) (c = this.a.getStyleForCustomStyle(b[a])) && zi(c, this.l.L); - - this.J && this.styleDocument(); - } - - this.a.enqueued = !1; - } - } - } - }; - - function Xi(a, b) { - b = b.map(function (c) { - return a.a.getStyleForCustomStyle(c); - }).filter(function (c) { - return !!c; - }); - b.sort(function (c, d) { - c = d.compareDocumentPosition(c); - return c & Node.DOCUMENT_POSITION_FOLLOWING ? 1 : c & Node.DOCUMENT_POSITION_PRECEDING ? -1 : 0; - }); - a.l.H.rules = b.map(function (c) { - return th(c); - }); - } - - v.styleElement = function (a, b) { - if (jh) { - if (b) { - ii(a) || ji(a, new hi(null)); - var c = ii(a); - c.F = c.F || {}; - Object.assign(c.F, b); - Zi(this, a, c); - } - } else if (c = ii(a) || Vi(a)) if (a !== this.c && (this.J = !0), b && (c.F = c.F || {}, Object.assign(c.F, b)), X) Zi(this, a, c);else if (this.flush(), Yi(this, a, c), c.ta && c.ta.length) { - b = Eh(a).is; - var d; - - a: { - if (d = Ti.cache[b]) for (var e = d.length - 1; 0 <= e; e--) { - var f = d[e]; - - b: { - var g = c.ta; - - for (var h = 0; h < g.length; h++) { - var k = g[h]; - - if (f.K[k] !== c.L[k]) { - g = !1; - break b; - } - } - - g = !0; - } - - if (g) { - d = f; - break a; - } - } - d = void 0; - } - - g = d ? d.styleElement : null; - e = c.G; - (f = d && d.G) || (f = this.Y[b] = (this.Y[b] || 0) + 1, f = b + "-" + f); - c.G = f; - f = c.G; - h = Ai; - h = g ? g.textContent || "" : wi(h, a, c.L, f); - k = ii(a); - var l = k.a; - l && !V && l !== g && (l._useCount--, 0 >= l._useCount && l.parentNode && l.parentNode.removeChild(l)); - V ? k.a ? (k.a.textContent = h, g = k.a) : h && (g = vh(h, f, a.shadowRoot, k.b)) : g ? g.parentNode || (mi && -1 < h.indexOf("@media") && (g.textContent = h), wh(g, null, k.b)) : h && (g = vh(h, f, null, k.b)); - g && (g._useCount = g._useCount || 0, k.a != g && g._useCount++, k.a = g); - f = g; - V || (g = c.G, k = h = a.getAttribute("class") || "", e && (k = h.replace(new RegExp("\\s*x-scope\\s*" + e + "\\s*", "g"), " ")), k += (k ? " " : "") + "x-scope " + g, h !== k && Ch(a, k)); - d || Ti.store(b, c.L, f, c.G); - } - }; - - function Zi(a, b, c) { - var d = Eh(b).is; - - if (c.F) { - var e = c.F, - f; - - for (f in e) null === f ? b.style.removeProperty(f) : b.style.setProperty(f, e[f]); - } - - e = Ni[d]; - - if (!(!e && b !== a.c || e && "" !== Gh(e)) && e && e._style && !Qi(e)) { - if (Qi(e) || e._applyShimValidatingVersion !== e._applyShimNextVersion) Ui(a), a.b && a.b.transformRules(e._styleAst, d), e._style.textContent = Ph(b, c.H), Ri(e); - V && (a = b.shadowRoot) && (a = a.querySelector("style")) && (a.textContent = Ph(b, c.H)); - c.H = e._styleAst; - } - } - - function $i(a, b) { - return (b = Dh(b).getRootNode().host) ? ii(b) || Vi(b) ? b : $i(a, b) : a.c; - } - - function Yi(a, b, c) { - var d = $i(a, b), - e = ii(d), - f = e.L; - d === a.c || f || (Yi(a, d, e), f = e.L); - a = Object.create(f || null); - d = vi(b, c.H, c.cssBuild); - b = ti(e.H, b).K; - Object.assign(a, d.Va, b, d.cb); - b = c.F; - - for (var g in b) if ((e = b[g]) || 0 === e) a[g] = e; - - g = Ai; - b = Object.getOwnPropertyNames(a); - - for (e = 0; e < b.length; e++) d = b[e], a[d] = ri(g, a[d], a); - - c.L = a; - } - - v.styleDocument = function (a) { - this.styleSubtree(this.c, a); - }; - - v.styleSubtree = function (a, b) { - var c = Dh(a), - d = c.shadowRoot, - e = a === this.c; - (d || e) && this.styleElement(a, b); - if (a = e ? c : d) for (a = Array.from(a.querySelectorAll("*")).filter(function (f) { - return Dh(f).shadowRoot; - }), b = 0; b < a.length; b++) this.styleSubtree(a[b]); - }; - - v.Ha = function (a) { - var b = this, - c = Gh(a); - c !== this.l.cssBuild && (this.l.cssBuild = c); - - if (!Hh(c)) { - var d = th(a); - sh(d, function (e) { - if (V) gi(e);else { - var f = Lh; - e.selector = e.parsedSelector; - gi(e); - e.selector = e.w = Sh(f, e, f.c, void 0, void 0); - } - X && "" === c && (Ui(b), b.b && b.b.transformRule(e)); - }); - X ? a.textContent = rh(d) : this.l.H.rules.push(d); - } - }; - - v.getComputedStyleValue = function (a, b) { - var c; - X || (c = (ii(a) || ii($i(this, a))).L[b]); - return (c = c || window.getComputedStyle(a).getPropertyValue(b)) ? c.trim() : ""; - }; - - v.gb = function (a, b) { - var c = Dh(a).getRootNode(), - d; - b ? d = ("string" === typeof b ? b : String(b)).split(/\s/) : d = []; - b = c.host && c.host.localName; - - if (!b && (c = a.getAttribute("class"))) { - c = c.split(/\s/); - - for (var e = 0; e < c.length; e++) if (c[e] === Lh.a) { - b = c[e + 1]; - break; - } - } - - b && d.push(Lh.a, b); - X || (b = ii(a)) && b.G && d.push(Ai.a, b.G); - Ch(a, d.join(" ")); - }; - - v.Oa = function (a) { - return ii(a); - }; - - v.fb = function (a, b) { - Mh(a, b); - }; - - v.ib = function (a, b) { - Mh(a, b, !0); - }; - - v.eb = function (a) { - return Ii(a); - }; - - v.Ra = function (a) { - return Hi(a); - }; - - Y.prototype.flush = Y.prototype.flush; - Y.prototype.prepareTemplate = Y.prototype.prepareTemplate; - Y.prototype.styleElement = Y.prototype.styleElement; - Y.prototype.styleDocument = Y.prototype.styleDocument; - Y.prototype.styleSubtree = Y.prototype.styleSubtree; - Y.prototype.getComputedStyleValue = Y.prototype.getComputedStyleValue; - Y.prototype.setElementClass = Y.prototype.gb; - Y.prototype._styleInfoForNode = Y.prototype.Oa; - Y.prototype.transformCustomStyleForDocument = Y.prototype.Ha; - Y.prototype.getStyleAst = Y.prototype.Ta; - Y.prototype.styleAstToString = Y.prototype.hb; - Y.prototype.flushCustomStyles = Y.prototype.flushCustomStyles; - Y.prototype.scopeNode = Y.prototype.fb; - Y.prototype.unscopeNode = Y.prototype.ib; - Y.prototype.scopeForNode = Y.prototype.eb; - Y.prototype.currentScopeForNode = Y.prototype.Ra; - Y.prototype.prepareAdoptedCssText = Y.prototype.ab; - Object.defineProperties(Y.prototype, { - nativeShadow: { - get: function () { - return V; - } - }, - nativeCss: { - get: function () { - return X; - } - } - }); - var Z = new Y(), - aj, - bj; - window.ShadyCSS && (aj = window.ShadyCSS.ApplyShim, bj = window.ShadyCSS.CustomStyleInterface); - window.ShadyCSS = { - ScopingShim: Z, - prepareTemplate: function (a, b, c) { - Z.flushCustomStyles(); - Z.prepareTemplate(a, b, c); - }, - prepareTemplateDom: function (a, b) { - Z.prepareTemplateDom(a, b); - }, - prepareTemplateStyles: function (a, b, c) { - Z.flushCustomStyles(); - Z.prepareTemplateStyles(a, b, c); - }, - styleSubtree: function (a, b) { - Z.flushCustomStyles(); - Z.styleSubtree(a, b); - }, - styleElement: function (a) { - Z.flushCustomStyles(); - Z.styleElement(a); - }, - styleDocument: function (a) { - Z.flushCustomStyles(); - Z.styleDocument(a); - }, - flushCustomStyles: function () { - Z.flushCustomStyles(); - }, - getComputedStyleValue: function (a, b) { - return Z.getComputedStyleValue(a, b); - }, - nativeCss: X, - nativeShadow: V, - cssBuild: ih, - disableRuntime: jh - }; - aj && (window.ShadyCSS.ApplyShim = aj); - bj && (window.ShadyCSS.CustomStyleInterface = bj); - - (function (a) { - function b(t) { - "" == t && (f.call(this), this.h = !0); - return t.toLowerCase(); - } - - function c(t) { - var F = t.charCodeAt(0); - return 32 < F && 127 > F && -1 == [34, 35, 60, 62, 63, 96].indexOf(F) ? t : encodeURIComponent(t); - } - - function d(t) { - var F = t.charCodeAt(0); - return 32 < F && 127 > F && -1 == [34, 35, 60, 62, 96].indexOf(F) ? t : encodeURIComponent(t); - } - - function e(t, F, E) { - function M(ka) { - } - - var y = F || "scheme start", - W = 0, - w = "", - wa = !1, - fa = !1; - - a: for (; (void 0 != t[W - 1] || 0 == W) && !this.h;) { - var n = t[W]; - - switch (y) { - case "scheme start": - if (n && q.test(n)) w += n.toLowerCase(), y = "scheme";else if (F) { - break a; - } else { - w = ""; - y = "no scheme"; - continue; - } - break; - - case "scheme": - if (n && H.test(n)) w += n.toLowerCase();else if (":" == n) { - this.g = w; - w = ""; - if (F) break a; - void 0 !== l[this.g] && (this.A = !0); - y = "file" == this.g ? "relative" : this.A && E && E.g == this.g ? "relative or authority" : this.A ? "authority first slash" : "scheme data"; - } else if (F) { - break a; - } else { - w = ""; - W = 0; - y = "no scheme"; - continue; - } - break; - - case "scheme data": - "?" == n ? (this.o = "?", y = "query") : "#" == n ? (this.u = "#", y = "fragment") : void 0 != n && "\t" != n && "\n" != n && "\r" != n && (this.pa += c(n)); - break; - - case "no scheme": - if (E && void 0 !== l[E.g]) { - y = "relative"; - continue; - } else f.call(this), this.h = !0; - - break; - - case "relative or authority": - if ("/" == n && "/" == t[W + 1]) y = "authority ignore slashes";else { - y = "relative"; - continue; - } - break; - - case "relative": - this.A = !0; - "file" != this.g && (this.g = E.g); - - if (void 0 == n) { - this.i = E.i; - this.m = E.m; - this.j = E.j.slice(); - this.o = E.o; - this.s = E.s; - this.f = E.f; - break a; - } else if ("/" == n || "\\" == n) y = "relative slash";else if ("?" == n) this.i = E.i, this.m = E.m, this.j = E.j.slice(), this.o = "?", this.s = E.s, this.f = E.f, y = "query";else if ("#" == n) this.i = E.i, this.m = E.m, this.j = E.j.slice(), this.o = E.o, this.u = "#", this.s = E.s, this.f = E.f, y = "fragment";else { - y = t[W + 1]; - var J = t[W + 2]; - if ("file" != this.g || !q.test(n) || ":" != y && "|" != y || void 0 != J && "/" != J && "\\" != J && "?" != J && "#" != J) this.i = E.i, this.m = E.m, this.s = E.s, this.f = E.f, this.j = E.j.slice(), this.j.pop(); - y = "relative path"; - continue; - } - - break; - - case "relative slash": - if ("/" == n || "\\" == n) y = "file" == this.g ? "file host" : "authority ignore slashes";else { - "file" != this.g && (this.i = E.i, this.m = E.m, this.s = E.s, this.f = E.f); - y = "relative path"; - continue; - } - break; - - case "authority first slash": - if ("/" == n) y = "authority second slash";else { - y = "authority ignore slashes"; - continue; - } - break; - - case "authority second slash": - y = "authority ignore slashes"; - - if ("/" != n) { - continue; - } - - break; - - case "authority ignore slashes": - if ("/" != n && "\\" != n) { - y = "authority"; - continue; - } - - break; - - case "authority": - if ("@" == n) { - wa && (w += "%40"); - wa = !0; - - for (n = 0; n < w.length; n++) J = w[n], "\t" == J || "\n" == J || "\r" == J ? M() : ":" == J && null === this.f ? this.f = "" : (J = c(J), null !== this.f ? this.f += J : this.s += J); - - w = ""; - } else if (void 0 == n || "/" == n || "\\" == n || "?" == n || "#" == n) { - W -= w.length; - w = ""; - y = "host"; - continue; - } else w += n; - - break; - - case "file host": - if (void 0 == n || "/" == n || "\\" == n || "?" == n || "#" == n) { - 2 != w.length || !q.test(w[0]) || ":" != w[1] && "|" != w[1] ? (0 != w.length && (this.i = b.call(this, w), w = ""), y = "relative path start") : y = "relative path"; - continue; - } else "\t" == n || "\n" == n || "\r" == n ? M() : w += n; - - break; - - case "host": - case "hostname": - if (":" != n || fa) { - if (void 0 == n || "/" == n || "\\" == n || "?" == n || "#" == n) { - this.i = b.call(this, w); - w = ""; - y = "relative path start"; - if (F) break a; - continue; - } else "\t" != n && "\n" != n && "\r" != n ? ("[" == n ? fa = !0 : "]" == n && (fa = !1), w += n) : M(); - } else if (this.i = b.call(this, w), w = "", y = "port", "hostname" == F) break a; - break; - - case "port": - if (/[0-9]/.test(n)) w += n;else if (void 0 == n || "/" == n || "\\" == n || "?" == n || "#" == n || F) { - "" != w && (w = parseInt(w, 10), w != l[this.g] && (this.m = w + ""), w = ""); - if (F) break a; - y = "relative path start"; - continue; - } else "\t" == n || "\n" == n || "\r" == n ? M() : (f.call(this), this.h = !0); - break; - - case "relative path start": - y = "relative path"; - if ("/" != n && "\\" != n) continue; - break; - - case "relative path": - if (void 0 != n && "/" != n && "\\" != n && (F || "?" != n && "#" != n)) "\t" != n && "\n" != n && "\r" != n && (w += c(n));else { - if (J = m[w.toLowerCase()]) w = J; - ".." == w ? (this.j.pop(), "/" != n && "\\" != n && this.j.push("")) : "." == w && "/" != n && "\\" != n ? this.j.push("") : "." != w && ("file" == this.g && 0 == this.j.length && 2 == w.length && q.test(w[0]) && "|" == w[1] && (w = w[0] + ":"), this.j.push(w)); - w = ""; - "?" == n ? (this.o = "?", y = "query") : "#" == n && (this.u = "#", y = "fragment"); - } - break; - - case "query": - F || "#" != n ? void 0 != n && "\t" != n && "\n" != n && "\r" != n && (this.o += d(n)) : (this.u = "#", y = "fragment"); - break; - - case "fragment": - void 0 != n && "\t" != n && "\n" != n && "\r" != n && (this.u += n); - } - - W++; - } - } - - function f() { - this.s = this.pa = this.g = ""; - this.f = null; - this.m = this.i = ""; - this.j = []; - this.u = this.o = ""; - this.A = this.h = !1; - } - - function g(t, F) { - void 0 === F || F instanceof g || (F = new g(String(F))); - this.a = t; - f.call(this); - e.call(this, this.a.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ""), null, F); - } - - var h = !1; - - try { - var k = new URL("b", "http://a"); - k.pathname = "c%20d"; - h = "http://a/c%20d" === k.href; - } catch (t) {} - - if (!h) { - var l = Object.create(null); - l.ftp = 21; - l.file = 0; - l.gopher = 70; - l.http = 80; - l.https = 443; - l.ws = 80; - l.wss = 443; - var m = Object.create(null); - m["%2e"] = "."; - m[".%2e"] = ".."; - m["%2e."] = ".."; - m["%2e%2e"] = ".."; - var q = /[a-zA-Z]/, - H = /[a-zA-Z0-9\+\-\.]/; - g.prototype = { - toString: function () { - return this.href; - }, - - get href() { - if (this.h) return this.a; - var t = ""; - if ("" != this.s || null != this.f) t = this.s + (null != this.f ? ":" + this.f : "") + "@"; - return this.protocol + (this.A ? "//" + t + this.host : "") + this.pathname + this.o + this.u; - }, - - set href(t) { - f.call(this); - e.call(this, t); - }, - - get protocol() { - return this.g + ":"; - }, - - set protocol(t) { - this.h || e.call(this, t + ":", "scheme start"); - }, - - get host() { - return this.h ? "" : this.m ? this.i + ":" + this.m : this.i; - }, - - set host(t) { - !this.h && this.A && e.call(this, t, "host"); - }, - - get hostname() { - return this.i; - }, - - set hostname(t) { - !this.h && this.A && e.call(this, t, "hostname"); - }, - - get port() { - return this.m; - }, - - set port(t) { - !this.h && this.A && e.call(this, t, "port"); - }, - - get pathname() { - return this.h ? "" : this.A ? "/" + this.j.join("/") : this.pa; - }, - - set pathname(t) { - !this.h && this.A && (this.j = [], e.call(this, t, "relative path start")); - }, - - get search() { - return this.h || !this.o || "?" == this.o ? "" : this.o; - }, - - set search(t) { - !this.h && this.A && (this.o = "?", "?" == t[0] && (t = t.slice(1)), e.call(this, t, "query")); - }, - - get hash() { - return this.h || !this.u || "#" == this.u ? "" : this.u; - }, - - set hash(t) { - this.h || (t ? (this.u = "#", "#" == t[0] && (t = t.slice(1)), e.call(this, t, "fragment")) : this.u = ""); - }, - - get origin() { - var t; - if (this.h || !this.g) return ""; - - switch (this.g) { - case "data": - case "file": - case "javascript": - case "mailto": - return "null"; - } - - return (t = this.host) ? this.g + "://" + t : ""; - } - - }; - var C = a.URL; - C && (g.createObjectURL = function (t) { - return C.createObjectURL.apply(C, arguments); - }, g.revokeObjectURL = function (t) { - C.revokeObjectURL(t); - }); - a.URL = g; - } - })(window); - /* - Copyright (c) 2018 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ - - - var cj = window.customElements, - dj = !1, - ej = null; - cj.polyfillWrapFlushCallback && cj.polyfillWrapFlushCallback(function (a) { - ej = a; - dj && a(); - }); - - function fj() { - window.HTMLTemplateElement.bootstrap && window.HTMLTemplateElement.bootstrap(window.document); - ej && ej(); - dj = !0; - window.WebComponents.ready = !0; - document.dispatchEvent(new CustomEvent("WebComponentsReady", { - bubbles: !0 - })); - } - - "complete" !== document.readyState ? (window.addEventListener("load", fj), window.addEventListener("DOMContentLoaded", function () { - window.removeEventListener("load", fj); - fj(); - })) : fj(); -}).call(undefined); -//# sourceMappingURL=web-component-polyfill.js.map diff --git a/__transpiled/js/web-component-polyfill.js.map b/__transpiled/js/web-component-polyfill.js.map deleted file mode 100644 index 6c4581c19..000000000 --- a/__transpiled/js/web-component-polyfill.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web-component-polyfill.js","sources":["../../template/js/web-component-polyfill.js"],"sourcesContent":["/**\n@license @nocompile\nCopyright (c) 2018 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n(function(){/*\n\n Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at\n http://polymer.github.io/LICENSE.txt The complete set of authors may be found\n at http://polymer.github.io/AUTHORS.txt The complete set of contributors may\n be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by\n Google as part of the polymer project is also subject to an additional IP\n rights grant found at http://polymer.github.io/PATENTS.txt\n */\n 'use strict';var v;function ba(a){var b=0;return function(){return b\\x20\\t\\r\\n\\f]+)/i.exec(r)||\n [\"\",\"\"])[1].toLowerCase()];if(B)for(var K=0;K\"+r+\"\";y.body.innerHTML=r;for(a.a(y);this.content.firstChild;)k.call(this.content,this.content.firstChild);r=y.body;if(B)for(K=0;K\"+this.innerHTML+\"\"},set:function(r){if(this.parentNode){y.body.innerHTML=r;for(r=this.ownerDocument.createDocumentFragment();y.body.firstChild;)l.call(r,\n y.body.firstChild);m.call(this.parentNode,r,this)}else throw Error(\"Failed to set the 'outerHTML' property on 'Element': This element has no parent node.\");},configurable:!0})};n(a.prototype);J(a.prototype);a.a=function(p){p=b(p,\"template\");for(var r=0,B=p.length,K;r]/g,hb=function(p){switch(p){case \"&\":return\"&\";case \"<\":return\"<\";case \">\":return\">\";case '\"':return\""\";case \"\\u00a0\":return\" \"}};w=function(p){for(var r={},B=0;B\";z=Wa[Gc]?ob:ob+za(z,nb)+\"\";break a;case Node.TEXT_NODE:z=z.data;z=R&&ib[R.localName]?\n z:z.replace(hc,hb);break a;case Node.COMMENT_NODE:z=\"\\x3c!--\"+z.data+\"--\\x3e\";break a;default:throw window.console.error(z),Error(\"not implemented\");}}B+=z}return B}}if(c||M){a.b=function(p,r){var B=f.call(p,!1);this.U&&this.U(B);r&&(l.call(B.content,f.call(p.content,!0)),I(B.content,p.content));return B};var I=function(p,r){if(r.querySelectorAll&&(r=b(r,\"template\"),0!==r.length)){p=b(p,\"template\");for(var B=0,K=p.length,aa,la;B]/g;function Yc(a){switch(a){case \"&\":return\"&\";case \"<\":return\"<\";case \">\":return\">\";case '\"':return\""\";case \"\\u00a0\":return\" \"}}function Zc(a){for(var b={},c=0;c\";h=$c[k]?m:m+bd(h,l)+\"\";break a;case Node.TEXT_NODE:h=h.data;h=k&&ad[k.localName]?h:h.replace(Xc,Yc);break a;case Node.COMMENT_NODE:h=\"\\x3c!--\"+h.data+\"--\\x3e\";break a;default:throw window.console.error(h),\n Error(\"not implemented\");}}c+=h}return c};var cd=N.B,dd={querySelector:function(a){return this.__shady_native_querySelector(a)},querySelectorAll:function(a){return this.__shady_native_querySelectorAll(a)}},ed={};function fd(a){ed[a]=function(b){return b[\"__shady_native_\"+a]}}function gd(a,b){P(a,b,\"__shady_native_\");for(var c in b)fd(c)}function S(a,b){b=void 0===b?[]:b;for(var c=0;ce.assignedNodes.length&&(e.ra=!0)}e.ra&&(e.ra=!1,sf(this,c))}c=this.a;b=[];for(e=0;eb.indexOf(d))||b.push(d);for(c=0;c \"+h}))}return{value:a,Qa:b,stop:f}}function ci(a,b){a=a.split(/(\\[.+?\\])/);for(var c=[],d=0;d+~]+)((?:\\[.+?\\]|[^\\s>+~=[])+)/g,fi=/[[.:#*]/,Yh=/^(::slotted)/,ei=/(:host)(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))/,di=/(?:::slotted)(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))/,ai=/(.*):dir\\((?:(ltr|rtl))\\)(.*)/,Wh=/:(?:matches|any|-(?:webkit|moz)-any)/,Lh=new Ih;function hi(a,b,c,d,e){this.H=a||null;this.b=b||null;this.ta=c||[];this.F=null;this.cssBuild=e||\"\";this.ca=d||\"\";this.a=this.G=this.L=null}function ii(a){return a?a.__styleInfo:null}function ji(a,b){return a.__styleInfo=b}hi.prototype.c=function(){return this.H};hi.prototype._getStyleRules=hi.prototype.c;function ki(a){var b=this.matches||this.matchesSelector||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector;return b&&b.call(this,a)}var li=/:host\\s*>\\s*/,mi=navigator.userAgent.match(\"Trident\");function ni(){}function oi(a){var b={},c=[],d=0;sh(a,function(f){pi(f);f.index=d++;f=f.v.cssText;for(var g;g=mh.exec(f);){var h=g[1];\":\"!==g[2]&&(b[h]=!0)}},function(f){c.push(f)});a.b=c;a=[];for(var e in b)a.push(e);return a}\n function pi(a){if(!a.v){var b={},c={};qi(a,c)&&(b.K=c,a.rules=null);b.cssText=a.parsedCssText.replace(ph,\"\").replace(kh,\"\");a.v=b}}function qi(a,b){var c=a.v;if(c){if(c.K)return Object.assign(b,c.K),!0}else{c=a.parsedCssText;for(var d;a=kh.exec(c);){d=(a[2]||a[3]).trim();if(\"inherit\"!==d||\"unset\"!==d)b[a[1].trim()]=d;d=!0}return d}}\n function ri(a,b,c){b&&(b=0<=b.indexOf(\";\")?si(a,b,c):Bh(b,function(d,e,f,g){if(!e)return d+g;(e=ri(a,c[e],c))&&\"initial\"!==e?\"apply-shim-inherit\"===e&&(e=\"inherit\"):e=ri(a,c[f]||f,c)||f;return d+(e||\"\")+g}));return b&&b.trim()||\"\"}\n function si(a,b,c){b=b.split(\";\");for(var d=0,e,f;d *.\"+e||-1!==f.indexOf(\"html\"),h=!g&&0===f.indexOf(e));if(g||h)c=e,h&&(b.w||(b.w=Sh(Lh,b,Lh.b,a?\".\"+a:\"\",e)),c=b.w||e),g&&\"html\"===e&&(c=b.w||b.J),d({wa:c,Xa:h,mb:g})}}\n function vi(a,b,c){var d={},e={};sh(b,function(f){ui(a,f,c,function(g){ki.call(a._element||a,g.wa)&&(g.Xa?qi(f,d):qi(f,e))})},null,!0);return{cb:e,Va:d}}\n function wi(a,b,c,d){var e=Eh(b),f=Rh(e.is,e.ca),g=new RegExp(\"(?:^|[^.#[:])\"+(b.extends?\"\\\\\"+f.slice(0,-1)+\"\\\\]\":f)+\"($|[.:[\\\\s>+~])\"),h=ii(b);e=h.H;h=h.cssBuild;var k=xi(e,d);return Ph(b,e,function(l){var m=\"\";l.v||pi(l);l.v.cssText&&(m=si(a,l.v.cssText,c));l.cssText=m;if(!V&&!uh(l)&&l.cssText){var q=m=l.cssText;null==l.Da&&(l.Da=nh.test(m));if(l.Da)if(null==l.ka){l.ka=[];for(var H in k)q=k[H],q=q(m),m!==q&&(m=q,l.ka.push(H))}else{for(H=0;H=l._useCount&&l.parentNode&&l.parentNode.removeChild(l));V?k.a?(k.a.textContent=h,g=k.a):h&&(g=vh(h,f,a.shadowRoot,k.b)):g?g.parentNode||(mi&&-1F&&-1==[34,35,60,62,63,96].indexOf(F)?t:encodeURIComponent(t)}function d(t){var F=t.charCodeAt(0);return 32F&&-1==[34,35,60,62,96].indexOf(F)?t:encodeURIComponent(t)}function e(t,F,E){function M(ka){va.push(ka)}var y=F||\"scheme start\",W=0,w=\"\",wa=!1,fa=!1,va=[];a:for(;(void 0!=t[W-1]||0==W)&&!this.h;){var n=t[W];switch(y){case \"scheme start\":if(n&&q.test(n))w+=\n n.toLowerCase(),y=\"scheme\";else if(F){M(\"Invalid scheme.\");break a}else{w=\"\";y=\"no scheme\";continue}break;case \"scheme\":if(n&&H.test(n))w+=n.toLowerCase();else if(\":\"==n){this.g=w;w=\"\";if(F)break a;void 0!==l[this.g]&&(this.A=!0);y=\"file\"==this.g?\"relative\":this.A&&E&&E.g==this.g?\"relative or authority\":this.A?\"authority first slash\":\"scheme data\"}else if(F){void 0!=n&&M(\"Code point not allowed in scheme: \"+n);break a}else{w=\"\";W=0;y=\"no scheme\";continue}break;case \"scheme data\":\"?\"==n?(this.o=\"?\",\n y=\"query\"):\"#\"==n?(this.u=\"#\",y=\"fragment\"):void 0!=n&&\"\\t\"!=n&&\"\\n\"!=n&&\"\\r\"!=n&&(this.pa+=c(n));break;case \"no scheme\":if(E&&void 0!==l[E.g]){y=\"relative\";continue}else M(\"Missing scheme.\"),f.call(this),this.h=!0;break;case \"relative or authority\":if(\"/\"==n&&\"/\"==t[W+1])y=\"authority ignore slashes\";else{M(\"Expected /, got: \"+n);y=\"relative\";continue}break;case \"relative\":this.A=!0;\"file\"!=this.g&&(this.g=E.g);if(void 0==n){this.i=E.i;this.m=E.m;this.j=E.j.slice();this.o=E.o;this.s=E.s;this.f=E.f;\n break a}else if(\"/\"==n||\"\\\\\"==n)\"\\\\\"==n&&M(\"\\\\ is an invalid code point.\"),y=\"relative slash\";else if(\"?\"==n)this.i=E.i,this.m=E.m,this.j=E.j.slice(),this.o=\"?\",this.s=E.s,this.f=E.f,y=\"query\";else if(\"#\"==n)this.i=E.i,this.m=E.m,this.j=E.j.slice(),this.o=E.o,this.u=\"#\",this.s=E.s,this.f=E.f,y=\"fragment\";else{y=t[W+1];var J=t[W+2];if(\"file\"!=this.g||!q.test(n)||\":\"!=y&&\"|\"!=y||void 0!=J&&\"/\"!=J&&\"\\\\\"!=J&&\"?\"!=J&&\"#\"!=J)this.i=E.i,this.m=E.m,this.s=E.s,this.f=E.f,this.j=E.j.slice(),this.j.pop();y=\n \"relative path\";continue}break;case \"relative slash\":if(\"/\"==n||\"\\\\\"==n)\"\\\\\"==n&&M(\"\\\\ is an invalid code point.\"),y=\"file\"==this.g?\"file host\":\"authority ignore slashes\";else{\"file\"!=this.g&&(this.i=E.i,this.m=E.m,this.s=E.s,this.f=E.f);y=\"relative path\";continue}break;case \"authority first slash\":if(\"/\"==n)y=\"authority second slash\";else{M(\"Expected '/', got: \"+n);y=\"authority ignore slashes\";continue}break;case \"authority second slash\":y=\"authority ignore slashes\";if(\"/\"!=n){M(\"Expected '/', got: \"+\n n);continue}break;case \"authority ignore slashes\":if(\"/\"!=n&&\"\\\\\"!=n){y=\"authority\";continue}else M(\"Expected authority, got: \"+n);break;case \"authority\":if(\"@\"==n){wa&&(M(\"@ already seen.\"),w+=\"%40\");wa=!0;for(n=0;n=55296&&e<=57343)&&!(e>=64976&&e<=65007)&&65535!=(65535&e)&&65534!=(65535&e)&&!(e>=0&&e<=8)&&11!==e&&!(e>=14&&e<=31)&&!(e>=127&&e<=159)&&!(e>1114111);}function o(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r);}return String.fromCharCode(e);}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,u=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),l=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,c=r(50);var p=/[&<>"]/,f=/[&<>"]/g,h={"&":"&","<":"<",">":">",'"':"""};function d(e){return h[e];}var m=/[.?*+^$[\]\\(){}|-]/g;var y=r(40);t.lib={},t.lib.mdurl=r(51),t.lib.ucmicro=r(113),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach(function(r){e[r]=t[r];});}}),e;},t.isString=function(e){return "[object String]"===function(e){return Object.prototype.toString.call(e);}(e);},t.has=i,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1");},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(u,function(e,t,r){return t||function(e,t){var r=0;return i(c,t)?c[t]:35===t.charCodeAt(0)&&l.test(t)&&a(r="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?o(r):e;}(e,r);});},t.isValidEntityCode=a,t.fromCodePoint=o,t.escapeHtml=function(e){return p.test(e)?e.replace(f,d):e;},t.arrayReplaceAt=function(e,t,r){return [].concat(e.slice(0,t),r,e.slice(t+1));},t.isSpace=function(e){switch(e){case 9:case 32:return !0;}return !1;},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return !0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return !0;}return !1;},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return !0;default:return !1;}},t.isPunctChar=function(e){return y.test(e);},t.escapeRE=function(e){return e.replace(m,"\\$&");},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase();};},function(e,t,r){const n=r(72),{yamlAST:i,loc:a}=r(265),o=r(289),s=r(290),u=r(26),l=e=>(e||"/").split("/").splice(1),c=e.exports,p=(e,t)=>"yaml"===t?i(e):"json"===t?o(e):void 0,f=(e,t,r)=>{if("js"===r)return {jsonPointer:"/"+e.join("/")};let n,i;return "yaml"===r?n=((e,t)=>{for(const r of t)e=e?e[c.untilde(r)]:null;return e;})(t,e):"json"===r&&(n=((e,t)=>{let r=e;for(const e of t){if(!Array.isArray(r.children))return;let t;const n=r.children.find(r=>{if(r)return "Object"===r.type?t=r.children.find(t=>t.key.value===c.untilde(e)):"Property"===r.type&&r.key&&r.key.value===c.untilde(e);});if(!n)return;r=t?t.value:n.value;}return r;})(t,e)),n?("yaml"===r?i=n[a]:"json"===r&&(i=n.loc),i?{jsonPointer:"/"+e.join("/"),startLine:i.start.line,startColumn:i.start.column+1,startOffset:i.start.offset,endLine:i.end?i.end.line:void 0,endColumn:i.end?i.end.column+1:void 0,endOffset:i.end?i.end.offset:void 0}:{jsonPointer:"/"+e.join("/")}):{jsonPointer:"/"+e.join("/")};},h=(e,t,r)=>{if("string"!=typeof t||!e)return null;const n=e[String(t)];return void 0===n?null:r?new r(n):n;};c.tilde=e=>e.replace(/[~\/]{1}/g,e=>{switch(e){case"/":return "~1";case"~":return "~0";}return e;}),c.untilde=e=>e.includes("~")?e.replace(/~[01]/g,e=>{switch(e){case"~1":return "/";case"~0":return "~";}return e;}):e,c.toJS=e=>{if(!e)throw new u({type:"null-or-falsey-document",title:"Document can't be null or falsey."});if(e.constructor&&"Object"===e.constructor.name)return {initialFormat:"js",parsedJSON:e};if("string"!=typeof e)throw new u({type:"invalid-document-type",title:"The AsyncAPI document has to be either a string or a JS object."});if(e.trimLeft().startsWith("{"))try{return {initialFormat:"json",parsedJSON:s(e)};}catch(e){throw new u({type:"invalid-json",title:"The provided JSON is not valid.",detail:e.message,location:{startOffset:e.offset,startLine:e.startLine,startColumn:e.startColumn}});}else try{return {initialFormat:"yaml",parsedJSON:n.safeLoad(e)};}catch(e){throw new u({type:"invalid-yaml",title:"The provided YAML is not valid.",detail:e.message,location:{startOffset:e.mark.position,startLine:e.mark.line+1,startColumn:e.mark.column+1}});}},c.createMapOfType=(e,t)=>{const r={};return e?(Object.entries(e).forEach(([e,n])=>{r[String(e)]=new t(n);}),r):r;},c.getMapValueOfType=(e,t,r)=>h(e,t,r),c.getMapValueByKey=(e,t)=>h(e,t),c.mix=(e,...t)=>{let r=!1;if(t.some(function(t){return e===t||(r=Object.keys(t).some(t=>e.prototype.hasOwnProperty(t)),r);}))throw r?new Error(`invalid mix function: model ${e.name} has at least one method that it is trying to replace by mixin`):new Error(`invalid mix function: cannot use the model ${e.name} as a mixin`);return t.forEach(t=>Object.assign(e.prototype,t)),e;},c.findRefs=(e,t,r)=>{let n=[];if(e.map(({path:e})=>n.push({location:[...e.map(c.tilde),"$ref"]})),"js"===t)return n.map(e=>({jsonPointer:"/"+e.location.join("/")}));if("yaml"===t){const e=i(r);n=n.map(r=>f(r.location,e,t));}else if("json"===t){const e=o(r);n=n.map(r=>f(r.location,e,t));}return n;},c.getLocationOf=(e,t,r)=>{const n=p(t,r);return n?f(l(e),n,r):{jsonPointer:e};},c.improveAjvErrors=(e,t,r)=>{const n=p(t,r);return e.map(e=>{const t={jsonPointer:e.dataPath||"/"};return {title:`${e.dataPath||"/"} ${e.message}`,location:n?f(l(e.dataPath),n,r):t};});},c.parseUrlVariables=e=>{if("string"==typeof e)return e.match(/{(.+?)}/g);},c.parseUrlQueryParameters=e=>{if("string"==typeof e)return e.match(/\?((.*=.*)(&?))/g);},c.getMissingProps=(e,t)=>(e=e.map(e=>e.replace(/[{}]/g,"")),t?e.filter(e=>!t.hasOwnProperty(e)):e),c.groupValidationErrors=(e,t,r,n,i)=>{const a=[];return r.forEach((r,o)=>{"string"==typeof r&&(r=c.untilde(r)),a.push({title:r?`${c.untilde(o)} ${t}: ${r}`:`${c.untilde(o)} ${t}`,location:c.getLocationOf(`/${e}/${o}`,n,i)});}),a;},c.setNotProvidedParams=(e,t,r,n,i)=>{const a=c.getMissingProps(e,t.parameters);a.length&&i.set(c.tilde(r),n?n.concat(a):a);};},function(e,t,r){var n=r(23),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],a=["scalar","sequence","mapping"];e.exports=function(e,t){var r,o;if(t=t||{},Object.keys(t).forEach(function(t){if(-1===i.indexOf(t))throw new n('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.');}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return !0;},this.construct=t.construct||function(e){return e;},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,o={},null!==r&&Object.keys(r).forEach(function(e){r[e].forEach(function(t){o[String(t)]=e;});}),o),-1===a.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.');};},function(e,t,r){const n=r(26);e.exports=class{constructor(e){if(!e)throw new n(`Invalid JSON to instantiate the ${this.constructor.name} object.`);this._json=e;}json(e){return void 0===e?this._json:this._json?this._json[String(e)]:void 0;}};},function(e,t){const r={hasExtensions(){return !!this.extensionKeys().length;},extensions(){const e={};return Object.entries(this._json).forEach(([t,r])=>{/^x-[\w\d\.\-\_]+$/.test(t)&&(e[String(t)]=r);}),e;},extensionKeys(){return Object.keys(this.extensions());},extKeys(){return this.extensionKeys();},hasExtension(e){return !!e.startsWith("x-")&&!!this._json[String(e)];},extension(e){return e.startsWith("x-")?this._json[String(e)]:null;},hasExt(e){return this.hasExtension(e);},ext(e){return this.extension(e);}};e.exports=r;},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(27),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],a=["scalar","sequence","mapping"];var o=function(e,t){var r,o;if(t=t||{},Object.keys(t).forEach(function(t){if(-1===i.indexOf(t))throw new n('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.');}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return !0;},this.construct=t.construct||function(e){return e;},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,o={},null!==r&&Object.keys(r).forEach(function(e){r[e].forEach(function(t){o[String(t)]=e;});}),o),-1===a.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.');};t.Type=o;},function(e,t,r){(function(e){/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */var n=r(205),i=r(206),a=r(69);function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823;}function s(e,t){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e;}function d(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return q(e).length;default:if(n)return B(e).length;t=(""+t).toLowerCase(),n=!0;}}function m(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return "";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return "";if((r>>>=0)<=(t>>>=0))return "";for(e||(e="utf8");;)switch(e){case"hex":return _(this,t,r);case"utf8":case"utf-8":return D(this,t,r);case"ascii":return C(this,t,r);case"latin1":case"binary":return P(this,t,r);case"base64":return A(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0;}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n;}function g(e,t,r,n,i){if(0===e.length)return -1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return -1;r=e.length-1;}else if(r<0){if(!i)return -1;r=0;}if("string"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:v(e,t,r,n,i);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer");}function v(e,t,r,n,i){var a,o=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return -1;o=2,s/=2,u/=2,r/=2;}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o);}if(i){var c=-1;for(a=r;as&&(r=s-u),a=r;a>=0;a--){for(var p=!0,f=0;fi&&(n=i):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a;}(t,e.length-r),e,r,n);}function A(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r));}function D(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:l>223?3:l>191?2:1;if(i+p<=r)switch(p){case 1:l<128&&(c=l);break;case 2:128==(192&(a=e[i+1]))&&(u=(31&l)<<6|63&a)>127&&(c=u);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(u=(15&l)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(c=u);}null===c?(c=65533,p=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=p;}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"";},u.prototype.compare=function(e,t,r,n,i){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return -1;if(t>=r)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),s=Math.min(a,o),l=this.slice(n,i),c=e.slice(t,r),p=0;pi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return x(this,e,t,r);case"ascii":return E(this,e,t,r);case"latin1":case"binary":return w(this,e,t,r);case"base64":return S(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0;}},u.prototype.toJSON=function(){return {type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)};};function C(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length");}function O(e,t,r,n,i,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range");}function F(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>8*(n?i:1-i);}function I(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255;}function N(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range");}function $(e,t,r,n,a){return a||N(e,0,r,4),i.write(e,t,r,n,23,4),r+4;}function R(e,t,r,n,a){return a||N(e,0,r,8),i.write(e,t,r,n,52,8),r+8;}u.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n;},u.prototype.readUInt8=function(e,t){return t||j(e,1,this.length),this[e];},u.prototype.readUInt16LE=function(e,t){return t||j(e,2,this.length),this[e]|this[e+1]<<8;},u.prototype.readUInt16BE=function(e,t){return t||j(e,2,this.length),this[e]<<8|this[e+1];},u.prototype.readUInt32LE=function(e,t){return t||j(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3];},u.prototype.readUInt32BE=function(e,t){return t||j(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3]);},u.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=this[e],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*t)),n;},u.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=t,i=1,a=this[e+--n];n>0&&(i*=256);)a+=this[e+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a;},u.prototype.readInt8=function(e,t){return t||j(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e];},u.prototype.readInt16LE=function(e,t){t||j(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r;},u.prototype.readInt16BE=function(e,t){t||j(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r;},u.prototype.readInt32LE=function(e,t){return t||j(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24;},u.prototype.readInt32BE=function(e,t){return t||j(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3];},u.prototype.readFloatLE=function(e,t){return t||j(e,4,this.length),i.read(this,e,!0,23,4);},u.prototype.readFloatBE=function(e,t){return t||j(e,4,this.length),i.read(this,e,!1,23,4);},u.prototype.readDoubleLE=function(e,t){return t||j(e,8,this.length),i.read(this,e,!0,52,8);},u.prototype.readDoubleBE=function(e,t){return t||j(e,8,this.length),i.read(this,e,!1,52,8);},u.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||O(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+i]=e/a&255;return t+r;},u.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1;},u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2;},u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2;},u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):I(this,e,t,!0),t+4;},u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):I(this,e,t,!1),t+4;},u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);O(this,e,t,r,i-1,-i);}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+r;},u.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);O(this,e,t,r,i-1,-i);}var a=r-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+r;},u.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1;},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2;},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2;},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):I(this,e,t,!0),t+4;},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):I(this,e,t,!1),t+4;},u.prototype.writeFloatLE=function(e,t,r){return $(this,e,t,!0,r);},u.prototype.writeFloatBE=function(e,t,r){return $(this,e,t,!1,r);},u.prototype.writeDoubleLE=function(e,t,r){return R(this,e,t,!0,r);},u.prototype.writeDoubleBE=function(e,t,r){return R(this,e,t,!1,r);},u.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(a<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue;}if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue;}i=r;continue;}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue;}r=65536+(i-55296<<10|r-56320);}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r);}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128);}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128);}else {if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128);}}return a;}function q(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"");}(e).replace(M,"")).length<2)return "";for(;e.length%4!=0;)e+="=";return e;}(e));}function U(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i;}}).call(this,r(8));},function(e,t){var r;r=function(){return this;}();try{r=r||new Function("return this")();}catch(e){"object"==typeof window&&(r=window);}e.exports=r;},function(e,t){var r,n,i=e.exports={};function a(){throw new Error("setTimeout has not been defined");}function o(){throw new Error("clearTimeout has not been defined");}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0);}catch(t){try{return r.call(null,e,0);}catch(t){return r.call(this,e,0);}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a;}catch(e){r=a;}try{n="function"==typeof clearTimeout?clearTimeout:o;}catch(e){n=o;}}();var u,l=[],c=!1,p=-1;function f(){c&&u&&(c=!1,u.length?l=u.concat(l):p=-1,l.length&&h());}function h(){if(!c){var e=s(f);c=!0;for(var t=l.length;t;){for(u=l,l=[];++p1)for(var r=1;r=0?e.substr(t).toLowerCase():"";},t.getHash=function(e){let t=e.indexOf("#");return t>=0?e.substr(t):"#";},t.stripHash=function(e){let t=e.indexOf("#");return t>=0&&(e=e.substr(0,t)),e;},t.isHttp=function(e){let t=s.getProtocol(e);return "http"===t||"https"===t||void 0===t&&n.browser;},t.isFileSystemPath=function(e){if(n.browser)return !1;let t=s.getProtocol(e);return void 0===t||"file"===t;},t.fromFileSystemPath=function(e){i&&(e=e.replace(/\\/g,"/")),e=encodeURI(e);for(let t=0;tdecodeURIComponent(e).replace(u,"/").replace(l,"~"));};}).call(this,r(9));},function(e,t,r){const{Ono:n}=r(14),{stripHash:i,toFileSystemPath:a}=r(11),o=t.JSONParserError=class extends Error{constructor(e,t){super(),this.code="EUNKNOWN",this.message=e,this.source=t,this.path=null,n.extend(this);}};u(o);const s=t.JSONParserErrorGroup=class e extends Error{constructor(e){super(),this.files=e,this.message=`${this.errors.length} error${this.errors.length>1?"s":""} occurred while reading '${a(e.$refs._root$Ref.path)}'`,n.extend(this);}static getParserErrors(e){const t=[];for(const r of Object.values(e.$refs._$refs))r.errors&&t.push(...r.errors);return t;}get errors(){return e.getParserErrors(this.files);}};u(s);u(t.ParserError=class extends o{constructor(e,t){super(`Error parsing ${t}: ${e}`,t),this.code="EPARSER";}});u(t.UnmatchedParserError=class extends o{constructor(e){super(`Could not find parser for "${e}"`,e),this.code="EUNMATCHEDPARSER";}});u(t.ResolverError=class extends o{constructor(e,t){super(e.message||`Error reading file "${t}"`,t),this.code="ERESOLVER","code"in e&&(this.ioErrorCode=String(e.code));}});u(t.UnmatchedResolverError=class extends o{constructor(e){super(`Could not find resolver for "${e}"`,e),this.code="EUNMATCHEDRESOLVER";}});u(t.MissingPointerError=class extends o{constructor(e,t){super(`Token "${e}" does not exist.`,i(t)),this.code="EMISSINGPOINTER";}});function u(e){Object.defineProperty(e.prototype,"name",{value:e.name,enumerable:!0});}u(t.InvalidPointerError=class extends o{constructor(e,t){super(`Invalid $ref pointer "${e}". Pointers must begin with "#/"`,i(t)),this.code="EINVALIDPOINTER";}}),t.isHandledError=function(e){return e instanceof o||e instanceof s;},t.normalizeError=function(e){return null===e.path&&(e.path=[]),e;};},function(e,t,r){r.d(t,"a",function(){return m;});const n=/\r?\n/,i=/\bono[ @]/;function a(e,t){let r=s(e.stack),n=t?t.stack:void 0;return r&&n?r+"\n\n"+n:r||n;}function o(e,t,r){r?Object.defineProperty(t,"stack",{get:()=>a({stack:e.get.apply(t)},r),enumerable:!1,configurable:!0}):function(e,t){Object.defineProperty(e,"stack",{get:()=>s(t.get.apply(e)),enumerable:!1,configurable:!0});}(t,e);}function s(e){if(e){let t,r=e.split(n);for(let e=0;e0)return r.join("\n");}return e;}const u=["function","symbol","undefined"],l=["constructor","prototype","__proto__"],c=Object.getPrototypeOf({});function p(){let e={},t=this;for(let r of f(t))if("string"==typeof r){let n=t[r],i=typeof n;u.includes(i)||(e[r]=n);}return e;}function f(e,t=[]){let r=[];for(;e&&e!==c;)r=r.concat(Object.getOwnPropertyNames(e),Object.getOwnPropertySymbols(e)),e=Object.getPrototypeOf(e);let n=new Set(r);for(let e of t.concat(l))n.delete(e);return n;}const h=["name","message","stack"];function d(e,t,r){let n=e;return function(e,t){let r=Object.getOwnPropertyDescriptor(e,"stack");!function(e){return Boolean(e&&e.configurable&&"function"==typeof e.get);}(r)?function(e){return Boolean(!e||e.writable||"function"==typeof e.set);}(r)&&(e.stack=a(e,t)):o(r,e,t);}(n,t),t&&"object"==typeof t&&function(e,t){let r=f(t,h),n=e,i=t;for(let e of r)if(void 0===n[e])try{n[e]=i[e];}catch(e){}}(n,t),n.toJSON=p,r&&"object"==typeof r&&Object.assign(n,r),n;}const m=y;function y(e,t){function r(...r){let{originalError:n,props:i,message:a}=function(e,t){let r,n,i,a="";return "string"==typeof e[0]?i=e:"string"==typeof e[1]?(e[0]instanceof Error?r=e[0]:n=e[0],i=e.slice(1)):(r=e[0],n=e[1],i=e.slice(2)),i.length>0&&(a=t.format?t.format.apply(void 0,i):i.join(" ")),t.concatMessages&&r&&r.message&&(a+=(a?" \n":"")+r.message),{originalError:r,props:n,message:a};}(r,t);return d(new e(a),n,i);}return t=function(e){return {concatMessages:void 0===(e=e||{}).concatMessages||Boolean(e.concatMessages),format:void 0!==e.format&&"function"==typeof e.format&&e.format};}(t),r[Symbol.species]=e,r;}y.toJSON=function(e){return p.call(e);},y.extend=function(e,t,r){return r||t instanceof Error?d(e,t,r):t?d(e,void 0,t):d(e);};},function(e,t,r){r.r(t),function(e){var n=r(48);r.d(t,"ono",function(){return n.a;});var i=r(13);r.d(t,"Ono",function(){return i.a;});r(70);t.default=n.a,"object"==typeof e.exports&&(e.exports=Object.assign(e.exports.default,e.exports));}.call(this,r(208)(e));},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}));}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r(),e.prototype.constructor=e;}};},function(e,t,r){function n(e,t,r,n){var i=n?" !== ":" === ",a=n?" || ":" && ",o=n?"!":"",s=n?"":"!";switch(e){case"null":return t+i+"null";case"array":return o+"Array.isArray("+t+")";case"object":return "("+o+t+a+"typeof "+t+i+'"object"'+a+s+"Array.isArray("+t+"))";case"integer":return "(typeof "+t+i+'"number"'+a+s+"("+t+" % 1)"+a+t+i+t+(r?a+o+"isFinite("+t+")":"")+")";case"number":return "(typeof "+t+i+'"'+e+'"'+(r?a+o+"isFinite("+t+")":"")+")";default:return "typeof "+t+i+'"'+e+'"';}}e.exports={copy:function(e,t){for(var r in t=t||{},e)t[r]=e[r];return t;},checkDataType:n,checkDataTypes:function(e,t,r){switch(e.length){case 1:return n(e[0],t,r,!0);default:var i="",o=a(e);for(var s in o.array&&o.object&&(i=o.null?"(":"(!"+t+" || ",i+="typeof "+t+' !== "object")',delete o.null,delete o.array,delete o.object),o.number&&delete o.integer,o)i+=(i?" && ":"")+n(s,t,r,!0);return i;}},coerceToTypes:function(e,t){if(Array.isArray(t)){for(var r=[],n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return r[t-n];}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(a="data"+(t-n||""),!i)return a;}for(var s=a,l=i.split("/"),c=0;c0;},c.isExternal$Ref=function(e){return c.is$Ref(e)&&"#"!==e.$ref[0];},c.isAllowed$Ref=function(e,t){if(c.is$Ref(e)){if("#/"===e.$ref.substr(0,2)||"#"===e.$ref)return !0;if("#"!==e.$ref[0]&&(!t||t.resolve.external))return !0;}},c.isExtended$Ref=function(e){return c.is$Ref(e)&&Object.keys(e).length>1;},c.dereference=function(e,t){if(t&&"object"==typeof t&&c.isExtended$Ref(e)){let r={};for(let t of Object.keys(e))"$ref"!==t&&(r[t]=e[t]);for(let e of Object.keys(t))e in r||(r[e]=t[e]);return r;}return t;};},function(e,t,r){function n(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||"";}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t;},e.exports=n;},function(e,t,r){var n=r(18);e.exports=new n({include:[r(73)],implicit:[r(231),r(232)],explicit:[r(233),r(234),r(235),r(236)]});},function(e,t,r){(function(e){function r(e){return Object.prototype.toString.call(e);}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===r(e);},t.isBoolean=function(e){return "boolean"==typeof e;},t.isNull=function(e){return null===e;},t.isNullOrUndefined=function(e){return null==e;},t.isNumber=function(e){return "number"==typeof e;},t.isString=function(e){return "string"==typeof e;},t.isSymbol=function(e){return "symbol"==typeof e;},t.isUndefined=function(e){return void 0===e;},t.isRegExp=function(e){return "[object RegExp]"===r(e);},t.isObject=function(e){return "object"==typeof e&&null!==e;},t.isDate=function(e){return "[object Date]"===r(e);},t.isError=function(e){return "[object Error]"===r(e)||e instanceof Error;},t.isFunction=function(e){return "function"==typeof e;},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e;},t.isBuffer=e.isBuffer;}).call(this,r(7).Buffer);},function(e,t){const r=(e,t)=>(t.type=e.type.startsWith("https://github.com/asyncapi/parser-js/")?e.type:"https://github.com/asyncapi/parser-js/"+e.type,t.title=e.title,e.detail&&(t.detail=e.detail),e.validationErrors&&(t.validationErrors=e.validationErrors),e.parsedJSON&&(t.parsedJSON=e.parsedJSON),e.location&&(t.location=e.location),e.refs&&(t.refs=e.refs),t);class n extends Error{constructor(e){super(),r(e,this),this.message=e.title;}toJS(){return r(this,{});}}e.exports=n;},function(e,t,r){var n=function(){function e(e,t,r){void 0===t&&(t=null),void 0===r&&(r=!1),this.name="YAMLException",this.reason=e,this.mark=t,this.message=this.toString(!1),this.isWarning=r;}return e.isInstance=function(t){if(null!=t&&t.getClassIdentifier&&"function"==typeof t.getClassIdentifier)for(var r=0,n=t.getClassIdentifier();r",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),p=["%","/","?",";","#"].concat(c),f=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=r(213);function b(e,t,r){if(e&&i.isObject(e)&&e instanceof a)return e;var n=new a();return n.parse(e,t,r),n;}a.prototype.parse=function(e,t,r){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a127?F+="x":F+=O[I];if(!F.match(h)){var $=T.slice(0,C),R=T.slice(C+1),M=O.match(d);M&&($.push(M[1]),R.unshift(M[2])),R.length&&(b="/"+R.join(".")+b),this.hostname=$.join(".");break;}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),_||(this.hostname=n.toASCII(this.hostname));var L=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+L,this.href+=this.host,_&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b));}if(!m[w])for(C=0,j=c.length;C0)&&r.host.split("@"))&&(r.auth=_.shift(),r.host=r.hostname=_.shift());return r.search=e.search,r.query=e.query,i.isNull(r.pathname)&&i.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;}if(!S.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=S.slice(-1)[0],D=(r.host||e.host||S.length>1)&&("."===A||".."===A)||""===A,C=0,P=S.length;P>=0;P--)"."===(A=S[P])?S.splice(P,1):".."===A?(S.splice(P,1),C++):C&&(S.splice(P,1),C--);if(!E&&!w)for(;C--;C)S.unshift("..");!E||""===S[0]||S[0]&&"/"===S[0].charAt(0)||S.unshift(""),D&&"/"!==S.join("/").substr(-1)&&S.push("");var _,T=""===S[0]||S[0]&&"/"===S[0].charAt(0);k&&(r.hostname=r.host=T?"":S.length?S.shift():"",(_=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=_.shift(),r.host=r.hostname=_.shift()));return (E=E||r.host&&S.length)&&!T&&S.unshift(""),S.length?r.pathname=S.join("/"):(r.pathname=null,r.path=null),i.isNull(r.pathname)&&i.isNull(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;},a.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e);};},function(e,t,r){var n=r(18);e.exports=n.DEFAULT=new n({include:[r(24)],explicit:[r(237),r(238),r(239)]});},function(e,t,r){(function(t){void 0===t||!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,r,n,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var a,o,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,r);});case 3:return t.nextTick(function(){e.call(null,r,n);});case 4:return t.nextTick(function(){e.call(null,r,n,i);});default:for(a=new Array(s-1),o=0;onew c(e)):null;}oneOf(){return this._json.oneOf?this._json.oneOf.map(e=>new c(e)):null;}anyOf(){return this._json.anyOf?this._json.anyOf.map(e=>new c(e)):null;}not(){return this._json.not?new c(this._json.not):null;}items(){return this._json.items?Array.isArray(this._json.items)?this._json.items.map(e=>new c(e)):new c(this._json.items):null;}properties(){return n(this._json.properties,c);}property(e){return i(this._json.properties,e,c);}additionalProperties(){const e=this._json.additionalProperties;if(null!=e)return "boolean"==typeof e?e:new c(e);}additionalItems(){const e=this._json.additionalItems;if(null!=e)return new c(e);}patternProperties(){return n(this._json.patternProperties,c);}const(){return this._json.const;}contains(){return this._json.contains?new c(this._json.contains):null;}dependencies(){if(!this._json.dependencies)return null;const e={};return Object.entries(this._json.dependencies).forEach(([t,r])=>{e[String(t)]=Array.isArray(r)?r:new c(r);}),e;}propertyNames(){return this._json.propertyNames?new c(this._json.propertyNames):null;}if(){return this._json.if?new c(this._json.if):null;}then(){return this._json.then?new c(this._json.then):null;}else(){return this._json.else?new c(this._json.else):null;}format(){return this._json.format;}contentEncoding(){return this._json.contentEncoding;}contentMediaType(){return this._json.contentMediaType;}definitions(){return n(this._json.definitions,c);}title(){return this._json.title;}default(){return this._json.default;}deprecated(){return this._json.deprecated;}discriminator(){return this._json.discriminator;}readOnly(){return !!this._json.readOnly;}writeOnly(){return !!this._json.writeOnly;}examples(){return this._json.examples;}isCircular(){return !!this.ext("x-parser-circular");}hasCircularProps(){return !!this.ext("x-parser-circular-props");}circularProps(){return this.ext("x-parser-circular-props");}}e.exports=a(c,s,u,l);},function(e,t){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/;},function(e,t,r){function n(){this.__rules__=[],this.__cache__=null;}n.prototype.__find__=function(e){for(var t=0;t=0&&(r=this.attrs[t][1]),r;},n.prototype.attrJoin=function(e,t){var r=this.attrIndex(e);r<0?this.attrPush([e,t]):this.attrs[r][1]=this.attrs[r][1]+" "+t;},e.exports=n;},function(e,t,r){var n=r(165),i=r(31),a=r(16),o=r(60),s=r(167);function u(e,t,r){var n=this._refs[r];if("string"==typeof n){if(!this._refs[n])return u.call(this,e,t,n);n=this._refs[n];}if((n=n||this._schemas[r])instanceof o)return d(n.schema,this._opts.inlineRefs)?n.schema:n.validate||this._compile(n);var i,a,s,c=l.call(this,t,r);return c&&(i=c.schema,t=c.root,s=c.baseId),i instanceof o?a=i.validate||e.call(this,i.schema,t,void 0,s):void 0!==i&&(a=d(i,this._opts.inlineRefs)?i:e.call(this,i,t,void 0,s)),a;}function l(e,t){var r=n.parse(t),i=y(r),a=m(this._getId(e.schema));if(0===Object.keys(e.schema).length||i!==a){var s=v(i),u=this._refs[s];if("string"==typeof u)return c.call(this,e,u,r);if(u instanceof o)u.validate||this._compile(u),e=u;else {if(!((u=this._schemas[s])instanceof o))return;if(u.validate||this._compile(u),s==v(t))return {schema:u,root:e,baseId:a};e=u;}if(!e.schema)return;a=m(this._getId(e.schema));}return f.call(this,r,a,e.schema,e);}function c(e,t,r){var n=l.call(this,e,t);if(n){var i=n.schema,a=n.baseId;e=n.root;var o=this._getId(i);return o&&(a=b(a,o)),f.call(this,r,a,i,e);}}e.exports=u,u.normalizeId=v,u.fullPath=m,u.url=b,u.ids=function(e){var t=v(this._getId(e)),r={"":t},o={"":m(t,!1)},u={},l=this;return s(e,{allKeys:!0},function(e,t,s,c,p,f,h){if(""!==t){var d=l._getId(e),m=r[c],y=o[c]+"/"+p;if(void 0!==h&&(y+="/"+("number"==typeof h?h:a.escapeFragment(h))),"string"==typeof d){d=m=v(m?n.resolve(m,d):d);var g=l._refs[d];if("string"==typeof g&&(g=l._refs[g]),g&&g.schema){if(!i(e,g.schema))throw new Error('id "'+d+'" resolves to more than one schema');}else if(d!=v(y))if("#"==d[0]){if(u[d]&&!i(e,u[d]))throw new Error('id "'+d+'" resolves to more than one schema');u[d]=e;}else l._refs[d]=y;}r[t]=m,o[t]=y;}}),u;},u.inlineRef=d,u.schema=l;var p=a.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function f(e,t,r,n){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var i=e.fragment.split("/"),o=1;onew n(e)):[];},tagNames(){return this.hasTags()?this._json.tags.map(e=>e.name):[];},hasTag(e){return this.hasTags()&&this._json.tags.some(t=>t.name===e);},tag(e){const t=this.hasTags()&&this._json.tags.find(t=>t.name===e);return t?new n(t):null;}};e.exports=i;},function(e,t,r){r.d(t,"a",function(){return i;});var n=r(13);const i=o;o.error=new n.a(Error),o.eval=new n.a(EvalError),o.range=new n.a(RangeError),o.reference=new n.a(ReferenceError),o.syntax=new n.a(SyntaxError),o.type=new n.a(TypeError),o.uri=new n.a(URIError);const a=o;function o(...e){let t=e[0];if("object"==typeof t&&"string"==typeof t.name)for(let r of Object.values(a))if("function"==typeof r&&"ono"===r.name){let n=r[Symbol.species];if(n&&n!==Error&&(t instanceof n||t.name===n.name))return r.apply(void 0,e);}return o.error.apply(void 0,e);}},function(e,t,r){/* -object-assign -(c) Sindre Sorhus -@license MIT -*/var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e);}e.exports=function(){try{if(!Object.assign)return !1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return !1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e];}).join(""))return !1;var n={};return "abcdefghijklmnopqrst".split("").forEach(function(e){n[e]=e;}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("");}catch(e){return !1;}}()?Object.assign:function(e,t){for(var r,s,u=o(e),l=1;l`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",i="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",a=new RegExp("^(?:"+n+"|"+i+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?].*?[?]>|]*>|)"),o=new RegExp("^(?:"+n+"|"+i+")");e.exports.HTML_TAG_RE=a,e.exports.HTML_OPEN_CLOSE_TAG_RE=o;},function(e,t,r){function n(e,t){var r,n,i,a,o,s=[],u=t.length;for(r=0;r=0;r--)95!==(n=t[r]).marker&&42!==n.marker||-1!==n.end&&(i=t[n.end],s=r>0&&t[r-1].end===n.end+1&&t[r-1].token===n.token-1&&t[n.end+1].token===i.token+1&&t[r-1].marker===n.marker,o=String.fromCharCode(n.marker),(a=e.tokens[n.token]).type=s?"strong_open":"em_open",a.tag=s?"strong":"em",a.nesting=1,a.markup=s?o+o:o,a.content="",(a=e.tokens[i.token]).type=s?"strong_close":"em_close",a.tag=s?"strong":"em",a.nesting=-1,a.markup=s?o+o:o,a.content="",s&&(e.tokens[t[r-1].token].content="",e.tokens[t[n.end+1].token].content="",r--));}e.exports.tokenize=function(e,t){var r,n,i=e.pos,a=e.src.charCodeAt(i);if(t)return !1;if(95!==a&&42!==a)return !1;for(n=e.scanDelims(e.pos,42===a),r=0;r= 0x80 (not a basic code point)","invalid-input":"Invalid input"},h=Math.floor,d=String.fromCharCode;function m(e){throw new RangeError(f[e]);}function y(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n;}function g(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+y((e=e.replace(p,".")).split("."),t).join(".");}function v(e){for(var t,r,n=[],i=0,a=e.length;i=55296&&t<=56319&&i65535&&(t+=d((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=d(e);}).join("");}function x(e,t){return e+22+75*(e<26)-((0!=t)<<5);}function E(e,t,r){var n=0;for(e=r?h(e/700):e>>1,e+=h(e/t);e>455;n+=36)e=h(e/35);return h(n+36*e/(e+38));}function w(e){var t,r,n,i,a,o,s,l,c,p,f,d=[],y=e.length,g=0,v=128,x=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&m("not-basic"),d.push(e.charCodeAt(n));for(i=r>0?r+1:0;i=y&&m("invalid-input"),((l=(f=e.charCodeAt(i++))-48<10?f-22:f-65<26?f-65:f-97<26?f-97:36)>=36||l>h((u-g)/o))&&m("overflow"),g+=l*o,!(l<(c=s<=x?1:s>=x+26?26:s-x));s+=36)o>h(u/(p=36-c))&&m("overflow"),o*=p;x=E(g-a,t=d.length+1,0==a),h(g/t)>u-v&&m("overflow"),v+=h(g/t),g%=t,d.splice(g++,0,v);}return b(d);}function S(e){var t,r,n,i,a,o,s,l,c,p,f,y,g,b,w,S=[];for(y=(e=v(e)).length,t=128,r=0,a=72,o=0;o=t&&fh((u-r)/(g=n+1))&&m("overflow"),r+=(s-t)*g,t=s,o=0;ou&&m("overflow"),f==t){for(l=r,c=36;!(l<(p=c<=a?1:c>=a+26?26:c-a));c+=36)w=l-p,b=36-p,S.push(d(x(p+w%b,0))),l=h(w/b);S.push(d(x(l,0))),a=E(r,g,n==i),r=0,++n;}++r,++t;}return S.join("");}s={version:"1.4.1",ucs2:{decode:v,encode:b},decode:w,encode:S,toASCII:function(e){return g(e,function(e){return c.test(e)?"xn--"+S(e):e;});},toUnicode:function(e){return g(e,function(e){return l.test(e)?w(e.slice(4).toLowerCase()):e;});}},void 0===(i=function(){return s;}.call(t,r,t,e))||(e.exports=i);}();}).call(this,r(157)(e),r(8));},function(e,t,r){var n=r(164),i=r(43),a=r(168),o=r(60),s=r(61),u=r(169),l=r(170),c=r(191),p=r(16);e.exports=g,g.prototype.validate=function(e,t){var r;if("string"==typeof e){if(!(r=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"');}else {var n=this._addSchema(e);r=n.validate||this._compile(n);}var i=r(t);!0!==r.$async&&(this.errors=r.errors);return i;},g.prototype.compile=function(e,t){var r=this._addSchema(e,void 0,t);return r.validate||this._compile(r);},g.prototype.addSchema=function(e,t,r,n){if(Array.isArray(e)){for(var a=0;a",v=h?">":"<",b=void 0;if(!f&&"number"!=typeof s&&void 0!==s)throw new Error(t+" must be number");if(!y&&void 0!==m&&"number"!=typeof m&&"boolean"!=typeof m)throw new Error(d+" must be number or boolean");if(y){var x=e.util.getData(m.$data,o,e.dataPathArr),E="exclusive"+a,w="exclType"+a,S="exclIsNumber"+a,k="' + "+(C="op"+a)+" + '";i+=" var schemaExcl"+a+" = "+x+"; ",i+=" var "+E+"; var "+w+" = typeof "+(x="schemaExcl"+a)+"; if ("+w+" != 'boolean' && "+w+" != 'undefined' && "+w+" != 'number') { ";var A;b=d;(A=A||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(b||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(i+=" , message: '"+d+" should be boolean' "),e.opts.verbose&&(i+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),i+=" } "):i+=" {} ";var D=i;i=A.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+D+"]); ":i+=" validate.errors = ["+D+"]; return false; ":i+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else if ( ",f&&(i+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),i+=" "+w+" == 'number' ? ( ("+E+" = "+n+" === undefined || "+x+" "+g+"= "+n+") ? "+p+" "+v+"= "+x+" : "+p+" "+v+" "+n+" ) : ( ("+E+" = "+x+" === true) ? "+p+" "+v+"= "+n+" : "+p+" "+v+" "+n+" ) || "+p+" !== "+p+") { var op"+a+" = "+E+" ? '"+g+"' : '"+g+"='; ",void 0===s&&(b=d,l=e.errSchemaPath+"/"+d,n=x,f=y);}else {k=g;if((S="number"==typeof m)&&f){var C="'"+k+"'";i+=" if ( ",f&&(i+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),i+=" ( "+n+" === undefined || "+m+" "+g+"= "+n+" ? "+p+" "+v+"= "+m+" : "+p+" "+v+" "+n+" ) || "+p+" !== "+p+") { ";}else {S&&void 0===s?(E=!0,b=d,l=e.errSchemaPath+"/"+d,n=m,v+="="):(S&&(n=Math[h?"min":"max"](m,s)),m===(!S||n)?(E=!0,b=d,l=e.errSchemaPath+"/"+d,v+="="):(E=!1,k+="="));C="'"+k+"'";i+=" if ( ",f&&(i+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),i+=" "+p+" "+v+" "+n+" || "+p+" !== "+p+") { ";}}b=b||t,(A=A||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(b||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+C+", limit: "+n+", exclusive: "+E+" } ",!1!==e.opts.messages&&(i+=" , message: 'should be "+k+" ",i+=f?"' + "+n:n+"'"),e.opts.verbose&&(i+=" , schema: ",i+=f?"validate.schema"+u:""+s,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),i+=" } "):i+=" {} ";D=i;return i=A.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+D+"]); ":i+=" validate.errors = ["+D+"]; return false; ":i+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",c&&(i+=" else { "),i;};},function(e,t,r){e.exports=function(e,t,r){var n,i=" ",a=e.level,o=e.dataLevel,s=e.schema[t],u=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,p="data"+(o||""),f=e.opts.$data&&s&&s.$data;if(f?(i+=" var schema"+a+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+a):n=s,!f&&"number"!=typeof s)throw new Error(t+" must be number");i+="if ( ",f&&(i+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),i+=" "+p+".length "+("maxItems"==t?">":"<")+" "+n+") { ";var h=t,d=d||[];d.push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(h||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxItems"==t?"more":"fewer",i+=" than ",i+=f?"' + "+n+" + '":""+s,i+=" items' "),e.opts.verbose&&(i+=" , schema: ",i+=f?"validate.schema"+u:""+s,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),i+=" } "):i+=" {} ";var m=i;return i=d.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+m+"]); ":i+=" validate.errors = ["+m+"]; return false; ":i+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",c&&(i+=" else { "),i;};},function(e,t,r){e.exports=function(e,t,r){var n,i=" ",a=e.level,o=e.dataLevel,s=e.schema[t],u=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,p="data"+(o||""),f=e.opts.$data&&s&&s.$data;if(f?(i+=" var schema"+a+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+a):n=s,!f&&"number"!=typeof s)throw new Error(t+" must be number");var h="maxLength"==t?">":"<";i+="if ( ",f&&(i+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),!1===e.opts.unicode?i+=" "+p+".length ":i+=" ucs2length("+p+") ",i+=" "+h+" "+n+") { ";var d=t,m=m||[];m.push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(d||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT be ",i+="maxLength"==t?"longer":"shorter",i+=" than ",i+=f?"' + "+n+" + '":""+s,i+=" characters' "),e.opts.verbose&&(i+=" , schema: ",i+=f?"validate.schema"+u:""+s,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),i+=" } "):i+=" {} ";var y=i;return i=m.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+y+"]); ":i+=" validate.errors = ["+y+"]; return false; ":i+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",c&&(i+=" else { "),i;};},function(e,t,r){e.exports=function(e,t,r){var n,i=" ",a=e.level,o=e.dataLevel,s=e.schema[t],u=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,p="data"+(o||""),f=e.opts.$data&&s&&s.$data;if(f?(i+=" var schema"+a+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+a):n=s,!f&&"number"!=typeof s)throw new Error(t+" must be number");i+="if ( ",f&&(i+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),i+=" Object.keys("+p+").length "+("maxProperties"==t?">":"<")+" "+n+") { ";var h=t,d=d||[];d.push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(h||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxProperties"==t?"more":"fewer",i+=" than ",i+=f?"' + "+n+" + '":""+s,i+=" properties' "),e.opts.verbose&&(i+=" , schema: ",i+=f?"validate.schema"+u:""+s,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),i+=" } "):i+=" {} ";var m=i;return i=d.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+m+"]); ":i+=" validate.errors = ["+m+"]; return false; ":i+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",c&&(i+=" else { "),i;};},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}');},function(e,t,r){e.exports={"1.0.0":r(198),"1.1.0":r(199),"1.2.0":r(200),"2.0.0-rc1":r(201),"2.0.0-rc2":r(202),"2.0.0":r(203)};},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return "[object Array]"==r.call(e);};},function(e,t,r){r(209);},function(e,t,r){(function(t){const{ono:n}=r(14),i=r(11),a=r(216),{ResolverError:o,ParserError:s,UnmatchedParserError:u,UnmatchedResolverError:l,isHandledError:c}=r(12);e.exports=async function(e,r,p){e=i.stripHash(e);let f=r._add(e),h={url:e,extension:i.getExtension(e)};try{const e=await function(e,t,r){return new Promise((i,s)=>{let u=a.all(t.resolve);u=a.filter(u,"canRead",e),a.sort(u),a.run(u,"read",e,r).then(i,function(r){!r&&t.continueOnError?s(new l(e.url)):r&&"error"in r?r.error instanceof o?s(r.error):s(new o(r,e.url)):s(n.syntax(`Unable to resolve $ref pointer "${e.url}"`));});});}(h,p,r);f.pathType=e.plugin.name,h.data=e.result;const i=await function(e,r,i){return new Promise((o,l)=>{let c=a.all(r.parse),p=a.filter(c,"canParse",e),f=p.length>0?p:c;a.sort(f),a.run(f,"parse",e,i).then(function(r){!r.plugin.allowEmpty&&(i=r.result,void 0===i||"object"==typeof i&&0===Object.keys(i).length||"string"==typeof i&&0===i.trim().length||t.isBuffer(i)&&0===i.length)?l(n.syntax(`Error parsing "${e.url}" as ${r.plugin.name}. \nParsed value is empty`)):o(r);var i;},function(t){!t&&r.continueOnError?l(new u(e.url)):t&&"error"in t?t.error instanceof s?l(t.error):l(new s(t.error.message,e.url)):l(n.syntax("Unable to parse "+e.url));});});}(h,p,r);return f.value=i.result,i.result;}catch(e){throw c(e)&&(f.value=e),e;}};}).call(this,r(7).Buffer);},function(e,t,r){var n=r(221);e.exports=n;},function(e,t,r){var n=r(18);e.exports=new n({include:[r(74)]});},function(e,t,r){var n=r(18);e.exports=new n({include:[r(45)],implicit:[r(227),r(228),r(229),r(230)]});},function(e,t,r){(function(e){var n=r(247),i=r(77),a=r(256),o=r(257),s=r(33),u=t;u.request=function(t,r){t="string"==typeof t?s.parse(t):a(t);var i=-1===e.location.protocol.search(/^https?:$/)?"http:":"",o=t.protocol||i,u=t.hostname||t.host,l=t.port,c=t.path||"/";u&&-1!==u.indexOf(":")&&(u="["+u+"]"),t.url=(u?o+"//"+u:"")+(l?":"+l:"")+c,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var p=new n(t);return r&&p.on("response",r),p;},u.get=function(e,t){var r=u.request(e,t);return r.end(),r;},u.ClientRequest=n,u.IncomingMessage=i.IncomingMessage,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.globalAgent=new u.Agent(),u.STATUS_CODES=o,u.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"];}).call(this,r(8));},function(e,t,r){(function(e){t.fetch=s(e.fetch)&&s(e.ReadableStream),t.writableStream=s(e.WritableStream),t.abortController=s(e.AbortController),t.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),t.blobConstructor=!0;}catch(e){}var r;function n(){if(void 0!==r)return r;if(e.XMLHttpRequest){r=new e.XMLHttpRequest();try{r.open("GET",e.XDomainRequest?"/":"https://example.com");}catch(e){r=null;}}else r=null;return r;}function i(e){var t=n();if(!t)return !1;try{return t.responseType=e,t.responseType===e;}catch(e){}return !1;}var a=void 0!==e.ArrayBuffer,o=a&&s(e.ArrayBuffer.prototype.slice);function s(e){return "function"==typeof e;}t.arraybuffer=t.fetch||a&&i("arraybuffer"),t.msstream=!t.fetch&&o&&i("ms-stream"),t.mozchunkedarraybuffer=!t.fetch&&a&&i("moz-chunked-arraybuffer"),t.overrideMimeType=t.fetch||!!n()&&s(n().overrideMimeType),t.vbArray=s(e.VBArray),r=null;}).call(this,r(8));},function(e,t,r){(function(e,n,i){var a=r(76),o=r(15),s=r(78),u=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},l=t.IncomingMessage=function(t,r,o,u){var l=this;if(s.Readable.call(l),l._mode=o,l.headers={},l.rawHeaders=[],l.trailers={},l.rawTrailers=[],l.on("end",function(){e.nextTick(function(){l.emit("close");});}),"fetch"===o){if(l._fetchResponse=r,l.url=r.url,l.statusCode=r.status,l.statusMessage=r.statusText,r.headers.forEach(function(e,t){l.headers[t.toLowerCase()]=e,l.rawHeaders.push(t,e);}),a.writableStream){var c=new WritableStream({write:function(e){return new Promise(function(t,r){l._destroyed?r():l.push(new n(e))?t():l._resumeFetch=t;});},close:function(){i.clearTimeout(u),l._destroyed||l.push(null);},abort:function(e){l._destroyed||l.emit("error",e);}});try{return void r.body.pipeTo(c).catch(function(e){i.clearTimeout(u),l._destroyed||l.emit("error",e);});}catch(e){}}var p=r.body.getReader();!function e(){p.read().then(function(t){if(!l._destroyed){if(t.done)return i.clearTimeout(u),void l.push(null);l.push(new n(t.value)),e();}}).catch(function(e){i.clearTimeout(u),l._destroyed||l.emit("error",e);});}();}else {if(l._xhr=t,l._pos=0,l.url=t.responseURL,l.statusCode=t.status,l.statusMessage=t.statusText,t.getAllResponseHeaders().split(/\r?\n/).forEach(function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var r=t[1].toLowerCase();"set-cookie"===r?(void 0===l.headers[r]&&(l.headers[r]=[]),l.headers[r].push(t[2])):void 0!==l.headers[r]?l.headers[r]+=", "+t[2]:l.headers[r]=t[2],l.rawHeaders.push(t[1],t[2]);}}),l._charset="x-user-defined",!a.overrideMimeType){var f=l.rawHeaders["mime-type"];if(f){var h=f.match(/;\s*charset=([^;])(;|$)/);h&&(l._charset=h[1].toLowerCase());}l._charset||(l._charset="utf-8");}}};o(l,s.Readable),l.prototype._read=function(){var e=this._resumeFetch;e&&(this._resumeFetch=null,e());},l.prototype._onXHRProgress=function(){var e=this,t=e._xhr,r=null;switch(e._mode){case"text:vbarray":if(t.readyState!==u.DONE)break;try{r=new i.VBArray(t.responseBody).toArray();}catch(e){}if(null!==r){e.push(new n(r));break;}case"text":try{r=t.responseText;}catch(t){e._mode="text:vbarray";break;}if(r.length>e._pos){var a=r.substr(e._pos);if("x-user-defined"===e._charset){for(var o=new n(a.length),s=0;se._pos&&(e.push(new n(new Uint8Array(l.result.slice(e._pos)))),e._pos=l.result.byteLength);},l.onload=function(){e.push(null);},l.readAsArrayBuffer(r);}e._xhr.readyState===u.DONE&&"ms-stream"!==e._mode&&e.push(null);};}).call(this,r(9),r(7).Buffer,r(8));},function(e,t,r){(t=e.exports=r(79)).Stream=t,t.Readable=t,t.Writable=r(83),t.Duplex=r(19),t.Transform=r(85),t.PassThrough=r(254);},function(e,t,r){(function(t,n){var i=r(35);e.exports=b;var a,o=r(69);b.ReadableState=v;r(80).EventEmitter;var s=function(e,t){return e.listeners(t).length;},u=r(81),l=r(36).Buffer,c=t.Uint8Array||function(){};var p=Object.create(r(25));p.inherits=r(15);var f=r(248),h=void 0;h=f&&f.debuglog?f.debuglog("stream"):function(){};var d,m=r(249),y=r(82);p.inherits(b,u);var g=["error","close","destroy","pause","resume"];function v(e,t){e=e||{};var n=t instanceof(a=a||r(19));this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,o=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(o||0===o)?o:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m(),this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=r(84).StringDecoder),this.decoder=new d(e.encoding),this.encoding=e.encoding);}function b(e){if(a=a||r(19),!(this instanceof b))return new b(e);this._readableState=new v(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this);}function x(e,t,r,n,i){var a,o=e._readableState;null===t?(o.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length);}t.ended=!0,S(e);}(e,o)):(i||(a=function(e,t){var r;n=t,l.isBuffer(n)||n instanceof c||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r;}(o,t)),a?e.emit("error",a):o.objectMode||t&&t.length>0?("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===l.prototype||(t=function(e){return l.from(e);}(t)),n?o.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,o,t,!0):o.ended?e.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?E(e,o,t,!1):A(e,o)):E(e,o,t,!1))):n||(o.reading=!1));return function(e){return !e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e;}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0));}function S(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(k,e):k(e));}function k(e){h("emit readable"),e.emit("readable"),_(e);}function A(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(D,e,t));}function D(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;ea.length?a.length:e;if(o===a.length?i+=a:i+=a.slice(0,e),0===(e-=o)){o===a.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break;}++n;}return t.length-=n,i;}(e,t):function(e,t){var r=l.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var a=n.data,o=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,o),0===(e-=o)){o===a.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(o));break;}++i;}return t.length-=i,r;}(e,t);return n;}(e,t.buffer,t.decoder),r);var r;}function j(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(O,t,e));}function O(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"));}function F(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?j(this):S(this),null;if(0===(e=w(e,t))&&t.ended)return 0===t.length&&j(this),null;var n,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e0?T(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&j(this)),null!==n&&this.emit("data",n),n;},b.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"));},b.prototype.pipe=function(e,t){var r=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e);}a.pipesCount+=1,h("pipe count=%d opts=%j",a.pipesCount,t);var u=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?c:b;function l(t,n){h("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,h("cleanup"),e.removeListener("close",g),e.removeListener("finish",v),e.removeListener("drain",p),e.removeListener("error",y),e.removeListener("unpipe",l),r.removeListener("end",c),r.removeListener("end",b),r.removeListener("data",m),f=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||p());}function c(){h("onend"),e.end();}a.endEmitted?i.nextTick(u):r.once("end",u),e.on("unpipe",l);var p=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,_(e));};}(r);e.on("drain",p);var f=!1;var d=!1;function m(t){h("ondata"),d=!1,!1!==e.write(t)||d||((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==F(a.pipes,e))&&!f&&(h("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,d=!0),r.pause());}function y(t){h("onerror",t),b(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t);}function g(){e.removeListener("finish",v),b();}function v(){h("onfinish"),e.removeListener("close",g),b();}function b(){h("unpipe"),r.unpipe(e);}return r.on("data",m),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?o(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r);}(e,"error",y),e.once("close",g),e.once("finish",v),e.emit("pipe",r),a.flowing||(h("pipe resume"),r.resume()),e;},b.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0&&o.length>i&&!o.warned){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=o.length,s=u,console&&console.warn&&console.warn(s);}return e;}function f(){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 h(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=f.bind(n);return i.listener=r,n.wrapFn=i,i;}function d(e,t,r){var n=e._events;if(void 0===n)return [];var i=n[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s;}var u=i[e];if(void 0===u)return !1;if("function"==typeof u)a(u,this,t);else {var l=u.length,c=y(u,l);for(r=0;r=0;a--)if(r[a]===t||r[a].listener===t){o=r[a].listener,i=a;break;}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this;},s.prototype.listeners=function(e){return d(this,e,!0);},s.prototype.rawListeners=function(e){return d(this,e,!1);},s.listenerCount=function(e,t){return "function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t);},s.prototype.listenerCount=m,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[];};},function(e,t,r){e.exports=r(80).EventEmitter;},function(e,t,r){var n=r(35);function i(e,t){e.emit("error",t);}e.exports={destroy:function(e,t){var r=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||n.nextTick(i,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(n.nextTick(i,r,e),r._writableState&&(r._writableState.errorEmitted=!0)):t&&t(e);}),this);},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1);}};},function(e,t,r){(function(t,n,i){var a=r(35);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next;}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e;}(t,e);};}e.exports=v;var s,u=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?n:a.nextTick;v.WritableState=g;var l=Object.create(r(25));l.inherits=r(15);var c={deprecate:r(253)},p=r(81),f=r(36).Buffer,h=i.Uint8Array||function(){};var d,m=r(82);function y(){}function g(e,t){s=s||r(19),e=e||{};var n=t instanceof s;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,l=e.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(l||0===l)?l:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var p=!1===e.decodeStrings;this.decodeStrings=!p,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0;}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(a.nextTick(i,n),a.nextTick(k,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),k(e,t));}(e,r,n,t,i);else {var o=w(r);o||r.corked||r.bufferProcessing||!r.bufferedRequest||E(e,r),n?u(x,e,r,o,i):x(e,r,o,i);}}(t,e);},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this);}function v(e){if(s=s||r(19),!(d.call(v,this)||this instanceof s))return new v(e);this._writableState=new g(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),p.call(this);}function b(e,t,r,n,i,a,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1;}function x(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"));}(e,t),t.pendingcb--,n(),k(e,t);}function E(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),a=t.corkedRequestsFree;a.entry=r;for(var s=0,u=!0;r;)i[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;i.allBuffers=u,b(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0;}else {for(;r;){var l=r.chunk,c=r.encoding,p=r.callback;if(b(e,t,!1,t.objectMode?1:l.length,l,c,p),r=r.next,t.bufferedRequestCount--,t.writing)break;}null===r&&(t.lastBufferedRequest=null);}t.bufferedRequest=r,t.bufferProcessing=!1;}function w(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing;}function S(e,t){e._final(function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),k(e,t);});}function k(e,t){var r=w(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,a.nextTick(S,e,t)):(t.prefinished=!0,e.emit("prefinish")));}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r;}l.inherits(v,p),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t;},function(){try{Object.defineProperty(g.prototype,"buffer",{get:c.deprecate(function(){return this.getBuffer();},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")});}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return !!d.call(this,e)||this===v&&e&&e._writableState instanceof g;}})):d=function(e){return e instanceof this;},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"));},v.prototype.write=function(e,t,r){var n,i=this._writableState,o=!1,s=!i.objectMode&&(n=e,f.isBuffer(n)||n instanceof h);return s&&!f.isBuffer(e)&&(e=function(e){return f.from(e);}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=y),i.ended?function(e,t){var r=new Error("write after end");e.emit("error",r),a.nextTick(t,r);}(this,r):(s||function(e,t,r,n){var i=!0,o=!1;return null===r?o=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),a.nextTick(n,o),i=!1),i;}(this,i,e,r))&&(i.pendingcb++,o=function(e,t,r,n,i,a){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=f.from(t,r));return t;}(t,n,i);n!==o&&(r=!0,i="buffer",n=o);}var s=t.objectMode?1:n.length;t.length+=s;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this;},Object.defineProperty(v.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark;}}),v.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"));},v.prototype._writev=null,v.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,k(e,t),r&&(t.finished?a.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1;}(this,n,r);},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed;},set:function(e){this._writableState&&(this._writableState.destroyed=e);}}),v.prototype.destroy=m.destroy,v.prototype._undestroy=m.undestroy,v.prototype._destroy=function(e,t){this.end(),t(e);};}).call(this,r(9),r(251).setImmediate,r(8));},function(e,t,r){var n=r(36).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return !0;default:return !1;}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return "utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return "utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return "utf16le";case"latin1":case"binary":return "latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0;}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e;}(e),this.encoding){case"utf16le":this.text=u,this.end=l,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=c,this.end=p,t=3;break;default:return this.write=f,void(this.end=h);}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t);}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2;}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�";}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length));}function u(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1);}return r;}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1);}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r);}return t;}function c(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r));}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t;}function f(e){return e.toString(this.encoding);}function h(e){return e&&e.length?this.write(e):"";}t.StringDecoder=a,a.prototype.write=function(e){if(0===e.length)return "";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return "";r=this.lastNeed,this.lastNeed=0;}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0;}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n);},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length;};},function(e,t,r){e.exports=o;var n=r(19),i=Object.create(r(25));function a(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length1)||(this._json.message,!1);}messages(){return this._json.message?this._json.message.oneOf?this._json.message.oneOf.map(e=>new i(e)):[new i(this._json.message)]:[];}message(e){return this._json.message?this._json.message.oneOf?"number"!=typeof e||e>this._json.message.oneOf.length-1?null:new i(this._json.message.oneOf[+e]):new i(this._json.message):null;}};},function(e,t,r){const{mix:n}=r(2),i=r(4),a=r(10),o=r(47),s=r(29),u=r(38),l=r(5);e.exports=n(class extends i{id(){return this._json.operationId;}summary(){return this._json.summary;}},a,o,s,u,l);},function(e,t,r){(function(t){const n=r(91),i=r(39);e.exports=class extends n{uid(){return this.name()||this.ext("x-parser-message-name")||t.from(JSON.stringify(this._json)).toString("base64");}payload(){return this._json.payload?new i(this._json.payload):null;}originalPayload(){return this._json["x-parser-original-payload"]||this.payload();}originalSchemaFormat(){return this._json["x-parser-original-schema-format"]||this.schemaFormat();}};}).call(this,r(7).Buffer);},function(e,t,r){const{getMapValueOfType:n,mix:i}=r(2),a=r(4),o=r(39),s=r(92),u=r(10),l=r(29),c=r(47),p=r(38),f=r(5);e.exports=i(class extends a{headers(){return this._json.headers?new o(this._json.headers):null;}header(e){return this._json.headers?n(this._json.headers.properties,e,o):null;}correlationId(){return this._json.correlationId?new s(this._json.correlationId):null;}schemaFormat(){return "application/schema+json;version=draft-07";}contentType(){return this._json.contentType;}name(){return this._json.name;}title(){return this._json.title;}summary(){return this._json.summary;}examples(){return this._json.examples;}},u,c,l,p,f);},function(e,t,r){const{mix:n}=r(2),i=r(4),a=r(10),o=r(5);e.exports=n(class extends i{location(){return this._json.location;}},o,a);},function(e,t){e.exports={xParserMessageName:"x-parser-message-name",xParserSchemaId:"x-parser-schema-id",xParserCircle:"x-parser-circular",xParserCircleProps:"x-parser-circular-props"};},function(e,t){const r=Object.freeze({NEW_SCHEMA:"NEW_SCHEMA",END_SCHEMA:"END_SCHEMA"}),n=Object.freeze({parameters:"parameters",payloads:"payloads",headers:"headers",components:"components",objects:"objects",arrays:"arrays",oneOfs:"oneOfs",allOfs:"allOfs",anyOfs:"anyOfs"});function i(e,t,a,o){if(null!==e&&(o.includes(n.arrays)||"array"!==e.type())&&(o.includes(n.objects)||"object"!==e.type())&&!e.isCircular()&&!1!==t(e,a,r.NEW_SCHEMA)){if(void 0!==e.type())switch(e.type()){case"object":s(e,t,o);break;case"array":u(e,t,o);}else !function(e,t,r){const a=e=>{(e||[]).forEach(e=>{i(e,t,null,r);});};r.includes(n.allOfs)&&a(e.allOf());r.includes(n.anyOfs)&&a(e.anyOf());r.includes(n.oneOfs)&&a(e.oneOf());}(e,t,o);t(e,a,r.END_SCHEMA);}}function a(e,t,r){r.includes(n.parameters)&&Object.values(e.parameters()).forEach(e=>{i(e.schema(),t,null,r);}),e.hasPublish()&&e.publish().messages().forEach(e=>{o(e,t,r);}),e.hasSubscribe()&&e.subscribe().messages().forEach(e=>{o(e,t,r);});}function o(e,t,r){null!==e&&(r.includes(n.headers)&&i(e.headers(),t,null,r),r.includes(n.payloads)&&i(e.payload(),t,null,r));}function s(e,t,r){if(void 0!==e.additionalProperties()&&"boolean"!=typeof e.additionalProperties()){i(e.additionalProperties(),t,null,r);}if(null!==e.properties()){const n=e.properties();for(const[a,o]of Object.entries(n)){const n=e.circularProps();void 0!==n&&n.includes(a)||i(o,t,a,r);}}}function u(e,t,r){if(void 0!==e.additionalItems()){i(e.additionalItems(),t,null,r);}null!==e.items()&&(Array.isArray(e.items())?e.items().forEach(e=>{i(e,t,null,r);}):i(e.items(),t,null,r));}e.exports={SchemaIteratorCallbackType:r,SchemaTypesToIterate:n,traverseSchema:i,traverseAsyncApiDocument:function(e,t,r){r||(r=Object.values(n)),e.hasChannels()&&e.channelNames().forEach(n=>{a(e.channel(n),t,r);}),e.hasComponents()&&r.includes(n.components)&&(Object.values(e.components().schemas()).forEach(e=>{i(e,t,null,r);}),Object.values(e.components().messages()).forEach(e=>{o(e,t,r);}));},traverseChannel:a,traverseMessage:o,recursiveSchemaObject:s,recursiveSchemaArray:u};},function(e,t,r){var n=r(313).isObject,i=r(314);function a(e,t){t.cloneSchema&&(e=Object.assign({},e));for(var r=t._structs,p=t._notSupported,f=t.strictMode,h=0,d=0,m=null;ht.MAX_INT_32)&&(e.maximum=t.MAX_INT_32),e;}function s(e,t){return (!e.minimum&&0!==e.minimum||e.minimumt.MAX_INT_64)&&(e.maximum=t.MAX_INT_64),e;}function u(e,t){return (!e.minimum&&0!==e.minimum||e.minimumt.MAX_FLOAT)&&(e.maximum=t.MAX_FLOAT),e;}function l(e,t){return (!e.minimum&&0!==e.minimum||e.minimumt.MAX_DOUBLE)&&(e.maximum=t.MAX_DOUBLE),e;}function c(e,t){return e.pattern=t.BYTE_PATTERN,e;}e.exports=function(e,t){return (e=a(e,t)).$schema="http://json-schema.org/draft-04/schema#",e;};},function(e,t,r){var n,i;e.exports=(n=r(0),i=r(103),function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports;}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n});},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t];}.bind(null,i));return n;},r.n=function(e){var t=e&&e.__esModule?function(){return e.default;}:function(){return e;};return r.d(t,"a",t),t;},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t);},r.p="",r(r.s=2);}([function(e,t){e.exports=n;},function(e,t){e.exports=i;},function(e,t,r){r.r(t);var n=r(0),i=r.n(n),a=r(1),o=r.n(a);function s(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{useShadowDOM:!0},a=l(function(e){return c(T,e);},function(e){return f(m,e);})(t),s=Object.keys(a).map(function(e){return e.toLowerCase();}),u=function(t){var s=k({},P(t,a),p(function(e){return function(t){return function(){var r=t.apply(void 0,arguments);r&&e.dispatchEvent(r);};};}(t),r)),u=n.useShadowDOM?t.shadowRoot:t;o.a.render(i.a.createElement(e,s,i.a.createElement("slot")),u);},h=function(e){function t(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function");}(this,t),e=g(this,S(t).call(this)),n.useShadowDOM&&e.attachShadow({mode:"open"}),e;}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&w(e,t);}(t,x(HTMLElement)),b(t,null,[{key:"observedAttributes",get:function(){return s;}}]),b(t,[{key:"connectedCallback",value:function(){u(this);}},{key:"attributeChangedCallback",value:function(){u(this);}},{key:"disconnectedCallback",value:function(){var e=n.useShadowDOM?this.shadowRoot:this;o.a.unmountComponentAtNode(e);}}]),t;}();return _(h,a),h;}function O(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{useShadowDOM:!0};return customElements.define(t,j(e,r,n,i));}t.default={register:O,convert:j};}]));},function(e,t,r){/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.2.2/LICENSE */e.exports=function(){var e=Object.hasOwnProperty,t=Object.setPrototypeOf,r=Object.isFrozen,n=Object.getPrototypeOf,i=Object.getOwnPropertyDescriptor,a=Object.freeze,o=Object.seal,s=Object.create,u="undefined"!=typeof Reflect&&Reflect,l=u.apply,c=u.construct;l||(l=function(e,t,r){return e.apply(t,r);}),a||(a=function(e){return e;}),o||(o=function(e){return e;}),c||(c=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t1?r-1:0),i=1;i/gm),L=o(/^data-[\-\w.\u00B7-\uFFFF]/),B=o(/^aria-[\-\w]+$/),q=o(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),U=o(/^(?:\w+script|data):/i),z=o(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e;}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e;};function V(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:J(),r=function(t){return e(t);};if(r.version="2.2.6",r.removed=[],!t||!t.document||9!==t.document.nodeType)return r.isSupported=!1,r;var n=t.document,i=t.document,o=t.DocumentFragment,s=t.HTMLTemplateElement,u=t.Node,l=t.Element,c=t.NodeFilter,p=t.NamedNodeMap,w=void 0===p?t.NamedNodeMap||t.MozNamedAttrMap:p,X=t.Text,W=t.Comment,G=t.DOMParser,Y=t.trustedTypes,Q=l.prototype,Z=A(Q,"cloneNode"),ee=A(Q,"nextSibling"),te=A(Q,"childNodes"),re=A(Q,"parentNode");if("function"==typeof s){var ne=i.createElement("template");ne.content&&ne.content.ownerDocument&&(i=ne.content.ownerDocument);}var ie=K(Y,n),ae=ie&&Re?ie.createHTML(""):"",oe=i,se=oe.implementation,ue=oe.createNodeIterator,le=oe.getElementsByTagName,ce=oe.createDocumentFragment,pe=n.importNode,fe={};try{fe=k(i).documentMode?i.documentMode:{};}catch(e){}var he={};r.isSupported=se&&void 0!==se.createHTMLDocument&&9!==fe;var de=R,me=M,ye=L,ge=B,ve=U,be=z,xe=q,Ee=null,we=S({},[].concat(V(D),V(C),V(P),V(T),V(O))),Se=null,ke=S({},[].concat(V(F),V(I),V(N),V($))),Ae=null,De=null,Ce=!0,Pe=!0,_e=!1,Te=!1,je=!1,Oe=!1,Fe=!1,Ie=!1,Ne=!1,$e=!0,Re=!1,Me=!0,Le=!0,Be=!1,qe={},Ue=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ze=null,He=S({},["audio","video","img","source","image","track"]),Ve=null,Je=S({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Ke=null,Xe=i.createElement("form"),We=function(e){Ke&&Ke===e||(e&&"object"===(void 0===e?"undefined":H(e))||(e={}),e=k(e),Ee="ALLOWED_TAGS"in e?S({},e.ALLOWED_TAGS):we,Se="ALLOWED_ATTR"in e?S({},e.ALLOWED_ATTR):ke,Ve="ADD_URI_SAFE_ATTR"in e?S(k(Je),e.ADD_URI_SAFE_ATTR):Je,ze="ADD_DATA_URI_TAGS"in e?S(k(He),e.ADD_DATA_URI_TAGS):He,Ae="FORBID_TAGS"in e?S({},e.FORBID_TAGS):{},De="FORBID_ATTR"in e?S({},e.FORBID_ATTR):{},qe="USE_PROFILES"in e&&e.USE_PROFILES,Ce=!1!==e.ALLOW_ARIA_ATTR,Pe=!1!==e.ALLOW_DATA_ATTR,_e=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Te=e.SAFE_FOR_TEMPLATES||!1,je=e.WHOLE_DOCUMENT||!1,Ie=e.RETURN_DOM||!1,Ne=e.RETURN_DOM_FRAGMENT||!1,$e=!1!==e.RETURN_DOM_IMPORT,Re=e.RETURN_TRUSTED_TYPE||!1,Fe=e.FORCE_BODY||!1,Me=!1!==e.SANITIZE_DOM,Le=!1!==e.KEEP_CONTENT,Be=e.IN_PLACE||!1,xe=e.ALLOWED_URI_REGEXP||xe,Te&&(Pe=!1),Ne&&(Ie=!0),qe&&(Ee=S({},[].concat(V(O))),Se=[],!0===qe.html&&(S(Ee,D),S(Se,F)),!0===qe.svg&&(S(Ee,C),S(Se,I),S(Se,$)),!0===qe.svgFilters&&(S(Ee,P),S(Se,I),S(Se,$)),!0===qe.mathMl&&(S(Ee,T),S(Se,N),S(Se,$))),e.ADD_TAGS&&(Ee===we&&(Ee=k(Ee)),S(Ee,e.ADD_TAGS)),e.ADD_ATTR&&(Se===ke&&(Se=k(Se)),S(Se,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&S(Ve,e.ADD_URI_SAFE_ATTR),Le&&(Ee["#text"]=!0),je&&S(Ee,["html","head","body"]),Ee.table&&(S(Ee,["tbody"]),delete Ae.tbody),a&&a(e),Ke=e);},Ge=S({},["mi","mo","mn","ms","mtext"]),Ye=S({},["foreignobject","desc","title","annotation-xml"]),Qe=S({},C);S(Qe,P),S(Qe,_);var Ze=S({},T);S(Ze,j);var et="http://www.w3.org/1998/Math/MathML",tt="http://www.w3.org/2000/svg",rt="http://www.w3.org/1999/xhtml",nt=function(e){var t=re(e);t&&t.tagName||(t={namespaceURI:rt,tagName:"template"});var r=m(e.tagName),n=m(t.tagName);if(e.namespaceURI===tt)return t.namespaceURI===rt?"svg"===r:t.namespaceURI===et?"svg"===r&&("annotation-xml"===n||Ge[n]):Boolean(Qe[r]);if(e.namespaceURI===et)return t.namespaceURI===rt?"math"===r:t.namespaceURI===tt?"math"===r&&Ye[n]:Boolean(Ze[r]);if(e.namespaceURI===rt){if(t.namespaceURI===tt&&!Ye[n])return !1;if(t.namespaceURI===et&&!Ge[n])return !1;var i=S({},["title","style","font","a","script"]);return !Ze[r]&&(i[r]||!Qe[r]);}return !1;},it=function(e){d(r.removed,{element:e});try{e.parentNode.removeChild(e);}catch(t){try{e.outerHTML=ae;}catch(t){e.remove();}}},at=function(e,t){try{d(r.removed,{attribute:t.getAttributeNode(e),from:t});}catch(e){d(r.removed,{attribute:null,from:t});}t.removeAttribute(e);},ot=function(e){var t=void 0,r=void 0;if(Fe)e=""+e;else {var n=y(e,/^[\r\n\t ]+/);r=n&&n[0];}var a=ie?ie.createHTML(e):e;try{t=new G().parseFromString(a,"text/html");}catch(e){}if(!t||!t.documentElement){var o=(t=se.createHTMLDocument("")).body;o.parentNode.removeChild(o.parentNode.firstElementChild),o.outerHTML=a;}return e&&r&&t.body.insertBefore(i.createTextNode(r),t.body.childNodes[0]||null),le.call(t,je?"html":"body")[0];},st=function(e){return ue.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,function(){return c.FILTER_ACCEPT;},!1);},ut=function(e){return !(e instanceof X||e instanceof W||"string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof w&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI&&"function"==typeof e.insertBefore);},lt=function(e){return "object"===(void 0===u?"undefined":H(u))?e instanceof u:e&&"object"===(void 0===e?"undefined":H(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName;},ct=function(e,t,n){he[e]&&f(he[e],function(e){e.call(r,t,n,Ke);});},pt=function(e){var t=void 0;if(ct("beforeSanitizeElements",e,null),ut(e))return it(e),!0;if(y(e.nodeName,/[\u0080-\uFFFF]/))return it(e),!0;var n=m(e.nodeName);if(ct("uponSanitizeElement",e,{tagName:n,allowedTags:Ee}),!lt(e.firstElementChild)&&(!lt(e.content)||!lt(e.content.firstElementChild))&&x(/<[/\w]/g,e.innerHTML)&&x(/<[/\w]/g,e.textContent))return it(e),!0;if(!Ee[n]||Ae[n]){if(Le&&!Ue[n])for(var i=re(e),a=te(e),o=a.length-1;o>=0;--o)i.insertBefore(Z(a[o],!0),ee(e));return it(e),!0;}return e instanceof l&&!nt(e)?(it(e),!0):"noscript"!==n&&"noembed"!==n||!x(/<\/no(script|embed)/i,e.innerHTML)?(Te&&3===e.nodeType&&(t=e.textContent,t=g(t,de," "),t=g(t,me," "),e.textContent!==t&&(d(r.removed,{element:e.cloneNode()}),e.textContent=t)),ct("afterSanitizeElements",e,null),!1):(it(e),!0);},ft=function(e,t,r){if(Me&&("id"===t||"name"===t)&&(r in i||r in Xe))return !1;if(Pe&&x(ye,t));else if(Ce&&x(ge,t));else {if(!Se[t]||De[t])return !1;if(Ve[t]);else if(x(xe,g(r,be,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(r,"data:")||!ze[e])if(_e&&!x(ve,g(r,be,"")));else if(r)return !1;}return !0;},ht=function(e){var t=void 0,n=void 0,i=void 0,a=void 0;ct("beforeSanitizeAttributes",e,null);var o=e.attributes;if(o){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};for(a=o.length;a--;){var u=t=o[a],l=u.name,c=u.namespaceURI;if(n=b(t.value),i=m(l),s.attrName=i,s.attrValue=n,s.keepAttr=!0,s.forceKeepAttr=void 0,ct("uponSanitizeAttribute",e,s),n=s.attrValue,!s.forceKeepAttr&&(at(l,e),s.keepAttr))if(x(/\/>/i,n))at(l,e);else {Te&&(n=g(n,de," "),n=g(n,me," "));var p=e.nodeName.toLowerCase();if(ft(p,i,n))try{c?e.setAttributeNS(c,l,n):e.setAttribute(l,n),h(r.removed);}catch(e){}}}ct("afterSanitizeAttributes",e,null);}},dt=function e(t){var r=void 0,n=st(t);for(ct("beforeSanitizeShadowDOM",t,null);r=n.nextNode();)ct("uponSanitizeShadowNode",r,null),pt(r)||(r.content instanceof o&&e(r.content),ht(r));ct("afterSanitizeShadowDOM",t,null);};return r.sanitize=function(e,i){var a=void 0,s=void 0,l=void 0,c=void 0,p=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!lt(e)){if("function"!=typeof e.toString)throw E("toString is not a function");if("string"!=typeof(e=e.toString()))throw E("dirty is not a string, aborting");}if(!r.isSupported){if("object"===H(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof e)return t.toStaticHTML(e);if(lt(e))return t.toStaticHTML(e.outerHTML);}return e;}if(Oe||We(i),r.removed=[],"string"==typeof e&&(Be=!1),Be);else if(e instanceof u)1===(s=(a=ot("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===s.nodeName||"HTML"===s.nodeName?a=s:a.appendChild(s);else {if(!Ie&&!Te&&!je&&-1===e.indexOf("<"))return ie&&Re?ie.createHTML(e):e;if(!(a=ot(e)))return Ie?null:ae;}a&&Fe&&it(a.firstChild);for(var f=st(Be?e:a);l=f.nextNode();)3===l.nodeType&&l===c||pt(l)||(l.content instanceof o&&dt(l.content),ht(l),c=l);if(c=null,Be)return e;if(Ie){if(Ne)for(p=ce.call(a.ownerDocument);a.firstChild;)p.appendChild(a.firstChild);else p=a;return $e&&(p=pe.call(n,p,!0)),p;}var h=je?a.outerHTML:a.innerHTML;return Te&&(h=g(h,de," "),h=g(h,me," ")),ie&&Re?ie.createHTML(h):h;},r.setConfig=function(e){We(e),Oe=!0;},r.clearConfig=function(){Ke=null,Oe=!1;},r.isValidAttribute=function(e,t,r){Ke||We({});var n=m(e),i=m(t);return ft(n,i,r);},r.addHook=function(e,t){"function"==typeof t&&(he[e]=he[e]||[],d(he[e],t));},r.removeHook=function(e){he[e]&&h(he[e]);},r.removeHooks=function(e){he[e]&&(he[e]=[]);},r.removeAllHooks=function(){he={};},r;}();}();},function(e,t,r){e.exports=r(107);},function(e,t,r){var n=r(161);function i(e,t,r){if(3===arguments.length)return i.set(e,t,r);if(2===arguments.length)return i.get(e,t);var n=i.bind(i,e);for(var a in i)i.hasOwnProperty(a)&&(n[a]=i[a].bind(n,e));return n;}e.exports=i,i.get=function(e,t){for(var r=Array.isArray(t)?t:i.parse(t),n=0;n{const r=await n(e.payload);e["x-parser-original-schema-format"]=e.schemaFormat||t,e["x-parser-original-payload"]=e.payload,e.payload=r,delete e.schemaFormat;},e.exports.getMimeTypes=()=>["application/vnd.apache.avro;version=1.9.0","application/vnd.apache.avro+json;version=1.9.0","application/vnd.apache.avro+yaml;version=1.9.0","application/vnd.apache.avro;version=1.8.2","application/vnd.apache.avro+json;version=1.8.2","application/vnd.apache.avro+yaml;version=1.8.2"];},function(e,t,r){/** @license React v16.14.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var n=r(49),i="function"==typeof Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,o=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,u=i?Symbol.for("react.strict_mode"):60108,l=i?Symbol.for("react.profiler"):60114,c=i?Symbol.for("react.provider"):60109,p=i?Symbol.for("react.context"):60110,f=i?Symbol.for("react.forward_ref"):60112,h=i?Symbol.for("react.suspense"):60113,d=i?Symbol.for("react.memo"):60115,m=i?Symbol.for("react.lazy"):60116,y="function"==typeof Symbol&&Symbol.iterator;function g(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;rT.length&&T.push(e);}function F(e,t,r){return null==e?0:function e(t,r,n,i){var s=typeof t;"undefined"!==s&&"boolean"!==s||(t=null);var u=!1;if(null===t)u=!0;else switch(s){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case a:case o:u=!0;}}if(u)return n(i,t,""===r?"."+I(t,0):r),1;if(u=0,r=""===r?".":r+":",Array.isArray(t))for(var l=0;l