@prantlf/jsonlint 11.7.2 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,7 @@
1
- {"version":3,"file":"ajv.js","names":["f","exports","module","define","amd","g","window","global","self","this","Ajv","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","Cache","_cache","prototype","put","Cache_put","key","value","get","Cache_get","del","Cache_del","clear","Cache_clear","MissingRefError","MissingRef","compileAsync","schema","meta","callback","_opts","loadSchema","undefined","loadMetaSchemaOf","then","schemaObj","_addSchema","validate","_compileAsync","v","sch","$schema","getSchema","$ref","Promise","resolve","_compile","loadMissingSchema","ref","missingSchema","added","missingRef","schemaPromise","_loadingSchemas","removePromise","addSchema","_refs","_schemas","Validation","errorSubclass","ValidationError","errors","message","ajv","validation","baseId","url","normalizeId","fullPath","Subclass","Object","create","constructor","util","DATE","DAYS","TIME","HOSTNAME","URI","URIREF","URITEMPLATE","URL","UUID","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","formats","mode","copy","fast","date","time","uri","email","hostname","ipv4","ipv6","regex","uuid","full","date_time","isLeapYear","year","str","matches","match","month","day","hour","minute","second","timeZone","DATE_TIME_SEPARATOR","dateTime","split","NOT_URI_FRAGMENT","test","Z_ANCHOR","RegExp","errorClasses","stableStringify","validateGenerator","ucs2length","equal","compile","root","localRefs","opts","refVal","refs","patterns","patternsHash","defaults","defaultsHash","customRules","checkCompiling","compilation","_compilations","index","compiling","callValidate","_formats","RULES","localCompile","cv","$async","sourceCode","source","endCompiling","result","apply","arguments","_schema","_root","isRoot","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","logger","vars","refValCode","patternCode","defaultCode","customRuleCode","processCode","makeValidate","Function","error","refIndex","_refVal","refCode","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","removeLocalRef","replaceLocalRef","refId","inline","regexStr","toQuotedString","valueStr","rule","parentSchema","it","validateSchema","deps","definition","dependencies","every","keyword","hasOwnProperty","join","valid","errorsText","macro","compIndex","splice","arr","statement","SchemaObject","traverse","getFullPath","resolveUrl","ids","resolveIds","resolveSchema","res","parse","refPath","_getFullPath","_getId","keys","id","resolveRecursive","getJsonPointer","parsedRef","PREVENT_SCOPE_CHANGE","toHash","fragment","slice","parts","part","unescapeFragment","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","Array","isArray","count","Infinity","normalize","serialize","TRAILING_SLASH_HASH","replace","schemaId","baseIds","fullPaths","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","ruleModules","rules","type","maximum","minimum","properties","ALL","KEYWORDS","TYPES","all","types","forEach","group","map","implKeywords","k","push","implements","$comment","keywords","concat","custom","obj","len","pos","charCodeAt","checkDataType","checkDataTypes","coerceToTypes","getProperty","escapeQuotes","varOccurences","varReplace","schemaHasRules","schemaHasRulesExcept","schemaUnknownRules","getPathExpr","getPath","getData","unescapeJsonPointer","escapeJsonPointer","to","dataType","data","strictNumbers","negate","EQUAL","AND","OK","NOT","dataTypes","array","object","null","number","integer","COERCE_TO_TYPES","optionCoerceTypes","hash","IDENTIFIER","SINGLE_QUOTE","dataVar","expr","exceptKeyword","currentPath","jsonPointers","isNumber","path","joinPaths","prop","$data","lvl","paths","up","jsonPointer","segments","segment","b","decodeURIComponent","encodeURIComponent","metaSchema","keywordsJsonPointers","JSON","stringify","j","anyOf","$id","definitions","simpleTypes","statements","not","required","items","modifying","async","const","generate__limit","$keyword","$ruleType","out","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$errorKeyword","$isData","$schemaValue","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","Math","generate__limitItems","generate__limitLength","unicode","generate__limitProperties","generate_allOf","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","strictKeywords","generate_anyOf","$valid","$errs","$noEmptySchema","$wasComposite","generate_comment","generate_const","generate_contains","$idx","$dataNxt","$nextData","$nonEmptySchema","$passData","$code","generate_custom","$rule","$definition","$rDef","$compile","$inline","$macro","$ruleValidate","$validateCode","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","passContext","$parentData","$parentDataProperty","def_callRuleValidate","def_customError","generate_dependencies","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$propertyKey","$prop","$useData","$propertyPath","$missingProperty","_errorDataPathProperty","arr2","i2","l2","generate_enum","$vSchema","generate_format","format","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","warn","indexOf","$formatRef","generate_if","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","allOf","contains","enum","if","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","oneOf","pattern","propertyNames","uniqueItems","generate_items","$additionalItems","additionalItems","$currErrSchemaPath","generate_multipleOf","multipleOfPrecision","generate_not","$allErrorsOption","generate_oneOf","$prevValid","$passingSchemas","generate_pattern","$regexp","generate_properties","$key","$dataProperties","$schemaKeys","filter","notProto","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","useDefaults","arr3","i3","l3","$hasDefault","default","arr4","i4","l4","generate_propertyNames","$invalidName","generate_ref","$refCode","$refVal","$message","missingRefs","__callValidate","generate_required","$propertySch","$loopRequired","generate_uniqueItems","$itemType","$typeIsArray","$method","generate_validate","$refKeywords","$unknownKwd","$keywordsMsg","$top","rootId","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","nullable","extendRefs","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","$type","arr5","i5","l5","$shouldUseRule","$ruleImplementsSomeKeyword","impl","definitionSchema","add","addKeyword","getKeyword","remove","removeKeyword","validateKeyword","_addRule","ruleGroup","rg","throwError","_validateKeyword","description","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","stringArray","readOnly","examples","exclusiveMinimum","exclusiveMaximum","contentMediaType","contentEncoding","else","flags","valueOf","toString","cmp","cycles","node","aobj","bobj","seen","toJSON","isFinite","TypeError","seenIndex","sort","cb","pre","post","_traverse","arrayKeywords","propsKeywords","skipKeywords","escapeJsonPtr","factory","merge","_len","sets","_key","xl","x","subexp","typeOf","shift","toLowerCase","toUpperCase","toArray","setInterval","assign","target","buildExps","isIRI","ALPHA$$","CR$","DIGIT$$","DQUOTE$$","HEXDIG$$","LF$$","SP$$","PCT_ENCODED$","GEN_DELIMS$$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","IPV6ADDRZ$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","PATH$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","URI_REFERENCE$","ABSOLUTE_URI$","GENERIC_REF$","RELATIVE_REF$","ABSOLUTE_REF$","SAMEDOC_REF$","AUTHORITY_REF$","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","_d","_e","_i","Symbol","iterator","_s","next","done","err","toConsumableArray","from","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","overflow","baseMinusTMin","floor","stringFromCharCode","String","fromCharCode","error$1","RangeError","fn","mapDomain","string","labels","encoded","ucs2decode","output","counter","extra","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","decode","input","inputLength","bias","basic","lastIndexOf","oldi","w","baseMinusT","encode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","_currentValue2","return","basicLength","handledCPCount","m","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","_currentValue","q","qMinusT","toUnicode","toASCII","punycode","version","ucs2","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","parseInt","substr","c2","_c","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","scheme","userinfo","host","query","_stripLeadingZeros","_normalizeIPv4","_matches","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","reverse","_address$toLowerCase$2","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","options","iri","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","baseURI","relativeURI","schemelessOptions","uriA","uriB","escapeComponent","unescapeComponent","handler","secure","handler$1","isSecure","wsComponents","handler$2","resourceName","_wsComponents$resourc","_wsComponents$resourc2","handler$3","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$4","parse$$1","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","_x","_xl","subject","body","_x2","_xl2","addr","serialize$$1","toAddr","atIdx","localPart","domain","name","URN_PARSE","handler$5","urnComponents","nid","nss","urnScheme","uriComponents","handler$6","uuidComponents","defineProperty","compileSchema","$dataMetaSchema","addMetaSchema","removeSchema","addFormat","customKeyword","META_SCHEMA_ID","META_IGNORE_OPTIONS","META_SUPPORT_DATA","setLogger","_fragments","cache","chooseGetId","errorDataPath","_metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addDefaultMetaSchema","addInitialSchemas","schemaKeyRef","_meta","_skipValidation","checkUnique","skipValidation","throwOrLogError","defaultMeta","keyRef","_getSchemaObj","_getSchemaFragment","_removeAllSchemas","cacheKey","schemas","shouldAddSchema","cached","addUsedSchema","willValidate","recursiveMeta","currentOpts","_validate","_get$IdOrId","_get$Id","separator","text","dataPath","$dataSchema","optsSchemas","metaOpts","log","noop","console"],"sources":["node_modules/ajv/dist/ajv.bundle.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Ajv = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;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 require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n\n},{}],2:[function(require,module,exports){\n'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n\n},{\"./error_classes\":3}],3:[function(require,module,exports){\n'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n\n},{\"./resolve\":6}],4:[function(require,module,exports){\n'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\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;\nvar 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-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-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;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.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\nformats.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\nfunction 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\nfunction 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\nfunction time(str, full) {\n var matches = str.match(TIME);\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\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction 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\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction 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\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction 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},{\"./util\":10}],5:[function(require,module,exports){\n'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\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 {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 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 */\nfunction 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 */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n\n},{\"../dotjs/validate\":38,\"./error_classes\":3,\"./resolve\":6,\"./util\":10,\"fast-deep-equal\":42,\"fast-json-stable-stringify\":43}],6:[function(require,module,exports){\n'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n\n},{\"./schema_obj\":8,\"./util\":10,\"fast-deep-equal\":42,\"json-schema-traverse\":44,\"uri-js\":45}],7:[function(require,module,exports){\n'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = 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: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$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},{\"../dotjs\":27,\"./util\":10}],8:[function(require,module,exports){\n'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n\n},{\"./util\":10}],9:[function(require,module,exports){\n'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = 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},{}],10:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\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\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction 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\nfunction 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(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\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= 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<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n\n},{\"./ucs2length\":9,\"fast-deep-equal\":42}],11:[function(require,module,exports){\n'use strict';\n\nvar 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\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n\n},{}],12:[function(require,module,exports){\n'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n\n},{\"./refs/json-schema-draft-07.json\":41}],13:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],14:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],15:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],16:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],17:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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},{}],18:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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},{}],19:[function(require,module,exports){\n'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !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},{}],20:[function(require,module,exports){\n'use strict';\nmodule.exports = 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 $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) {\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},{}],21:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $schema === false : 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},{}],22:[function(require,module,exports){\n'use strict';\nmodule.exports = function generate_custom(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 $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $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 var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (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 def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\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 var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\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 } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n\n},{}],23:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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},{}],24:[function(require,module,exports){\n'use strict';\nmodule.exports = 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 $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 $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},{}],25:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],26:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : 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},{}],27:[function(require,module,exports){\n'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n\n},{\"./_limit\":13,\"./_limitItems\":14,\"./_limitLength\":15,\"./_limitProperties\":16,\"./allOf\":17,\"./anyOf\":18,\"./comment\":19,\"./const\":20,\"./contains\":21,\"./dependencies\":23,\"./enum\":24,\"./format\":25,\"./if\":26,\"./items\":28,\"./multipleOf\":29,\"./not\":30,\"./oneOf\":31,\"./pattern\":32,\"./properties\":33,\"./propertyNames\":34,\"./ref\":35,\"./required\":36,\"./uniqueItems\":37,\"./validate\":38}],28:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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) || $additionalItems === false : 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) || $schema === false : 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},{}],29:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],30:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $schema === false : 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},{}],31:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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},{}],32:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],33:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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) || $sch === false : 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},{}],34:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $schema === false : 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) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\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 if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n\n},{}],35:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],36:[function(require,module,exports){\n'use strict';\nmodule.exports = function generate_required(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 var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : 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},{}],37:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],38:[function(require,module,exports){\n'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\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 $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\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 } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\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 += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\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 }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\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 ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\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 += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n\n},{}],39:[function(require,module,exports){\n'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n\n},{\"./definition_schema\":12,\"./dotjs/custom\":22}],40:[function(require,module,exports){\nmodule.exports={\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n \"description\": \"Meta-schema for $data reference (JSON Schema extension proposal)\",\n \"type\": \"object\",\n \"required\": [ \"$data\" ],\n \"properties\": {\n \"$data\": {\n \"type\": \"string\",\n \"anyOf\": [\n { \"format\": \"relative-json-pointer\" }, \n { \"format\": \"json-pointer\" }\n ]\n }\n },\n \"additionalProperties\": false\n}\n\n},{}],41:[function(require,module,exports){\nmodule.exports={\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Core schema meta-schema\",\n \"definitions\": {\n \"schemaArray\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": { \"$ref\": \"#\" }\n },\n \"nonNegativeInteger\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"nonNegativeIntegerDefault0\": {\n \"allOf\": [\n { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n { \"default\": 0 }\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\": { \"type\": \"string\" },\n \"uniqueItems\": true,\n \"default\": []\n }\n },\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"$id\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$schema\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"$ref\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$comment\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"default\": true,\n \"readOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"examples\": {\n \"type\": \"array\",\n \"items\": true\n },\n \"multipleOf\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maximum\": {\n \"type\": \"number\"\n },\n \"exclusiveMaximum\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"exclusiveMinimum\": {\n \"type\": \"number\"\n },\n \"maxLength\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minLength\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"pattern\": {\n \"type\": \"string\",\n \"format\": \"regex\"\n },\n \"additionalItems\": { \"$ref\": \"#\" },\n \"items\": {\n \"anyOf\": [\n { \"$ref\": \"#\" },\n { \"$ref\": \"#/definitions/schemaArray\" }\n ],\n \"default\": true\n },\n \"maxItems\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minItems\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"uniqueItems\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"contains\": { \"$ref\": \"#\" },\n \"maxProperties\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minProperties\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"required\": { \"$ref\": \"#/definitions/stringArray\" },\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"definitions\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"default\": {}\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"default\": {}\n },\n \"patternProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"propertyNames\": { \"format\": \"regex\" },\n \"default\": {}\n },\n \"dependencies\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n { \"$ref\": \"#\" },\n { \"$ref\": \"#/definitions/stringArray\" }\n ]\n }\n },\n \"propertyNames\": { \"$ref\": \"#\" },\n \"const\": true,\n \"enum\": {\n \"type\": \"array\",\n \"items\": true,\n \"minItems\": 1,\n \"uniqueItems\": true\n },\n \"type\": {\n \"anyOf\": [\n { \"$ref\": \"#/definitions/simpleTypes\" },\n {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/definitions/simpleTypes\" },\n \"minItems\": 1,\n \"uniqueItems\": true\n }\n ]\n },\n \"format\": { \"type\": \"string\" },\n \"contentMediaType\": { \"type\": \"string\" },\n \"contentEncoding\": { \"type\": \"string\" },\n \"if\": {\"$ref\": \"#\"},\n \"then\": {\"$ref\": \"#\"},\n \"else\": {\"$ref\": \"#\"},\n \"allOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"anyOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"oneOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"not\": { \"$ref\": \"#\" }\n },\n \"default\": true\n}\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = 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},{}],43:[function(require,module,exports){\n'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n},{}],45:[function(require,module,exports){\n/** @license URI.js v4.4.0 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.URI = global.URI || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction 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}\nfunction subexp(str) {\n return \"(?:\" + str + \")\";\n}\nfunction typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nfunction 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}\nfunction 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\nfunction buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n CR$ = \"[\\\\x0D]\",\n DIGIT$$ = \"[0-9]\",\n DQUOTE$$ = \"[\\\\x22]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n //case-insensitive\n LF$$ = \"[\\\\x0A]\",\n SP$$ = \"[\\\\x20]\",\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 SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n 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\n IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n //RFC 6874\n IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n //RFC 6874, with relaxed parsing rules\n IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n //RFC 6874\n REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n PORT$ = subexp(DIGIT$$ + \"*\"),\n AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n SEGMENT$ = subexp(PCHAR$ + \"*\"),\n SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n //simplified\n PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n //simplified\n PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n //simplified\n PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\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}\nvar URI_PROTOCOL = buildExps(false);\n\nvar IRI_PROTOCOL = buildExps(true);\n\nvar 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\nvar 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\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error$1(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tvar result = [];\n\tvar length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tvar parts = string.split('@');\n\tvar result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tvar labels = string.split('.');\n\tvar encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t// Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nvar ucs2encode = function ucs2encode(array) {\n\treturn 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 */\nvar basicToDigit = function basicToDigit(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nvar digitToBasic = function digitToBasic(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nvar adapt = function adapt(delta, numPoints, firstTime) {\n\tvar k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nvar decode = function decode(input) {\n\t// Don't use UCS-2.\n\tvar output = [];\n\tvar inputLength = input.length;\n\tvar i = 0;\n\tvar n = initialN;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tvar basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (var j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror$1('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tvar oldi = i;\n\t\tfor (var w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror$1('invalid-input');\n\t\t\t}\n\n\t\t\tvar digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\t\t}\n\n\t\tvar out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\t}\n\n\treturn 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 */\nvar encode = function encode(input) {\n\tvar output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tvar inputLength = input.length;\n\n\t// Initialize the state.\n\tvar n = initialN;\n\tvar delta = 0;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points.\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _currentValue2 = _step.value;\n\n\t\t\tif (_currentValue2 < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(_currentValue2));\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar basicLength = output.length;\n\tvar handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tvar m = maxInt;\n\t\tvar _iteratorNormalCompletion2 = true;\n\t\tvar _didIteratorError2 = false;\n\t\tvar _iteratorError2 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\tvar currentValue = _step2.value;\n\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow.\n\t\t} catch (err) {\n\t\t\t_didIteratorError2 = true;\n\t\t\t_iteratorError2 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t_iterator2.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tvar _iteratorNormalCompletion3 = true;\n\t\tvar _didIteratorError3 = false;\n\t\tvar _iteratorError3 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\tvar _currentValue = _step3.value;\n\n\t\t\t\tif (_currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror$1('overflow');\n\t\t\t\t}\n\t\t\t\tif (_currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\t\tvar q = delta;\n\t\t\t\t\tfor (var k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar qMinusT = q - t;\n\t\t\t\t\t\tvar baseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError3 = true;\n\t\t\t_iteratorError3 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t_iterator3.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nvar toUnicode = function toUnicode(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nvar toASCII = function toASCII(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nvar punycode = {\n\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t'version': '2.1.0',\n\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\n/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * 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 */\nvar SCHEMES = {};\nfunction 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}\nfunction 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}\nfunction _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\nfunction _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _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}\nfunction _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}\nvar URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nvar NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\nfunction 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\nfunction _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\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n\nvar RDS1 = /^\\.\\.?\\//;\nvar RDS2 = /^\\/\\.(\\/|$)/;\nvar RDS3 = /^\\/\\.\\.(\\/|$)/;\nvar RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n}\n\nfunction unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n}\n\nvar 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 var secure = String(components.scheme).toLowerCase() === \"https\";\n //normalize the default port\n if (components.port === (secure ? 443 : 80) || 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\nvar handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n};\n\nfunction isSecure(wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nvar handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n //indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents);\n //construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n //normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n //ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n wsComponents.secure = undefined;\n }\n //reconstruct path from resource name\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n path = _wsComponents$resourc2[0],\n query = _wsComponents$resourc2[1];\n\n wsComponents.path = path && path !== '/' ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n //forbid fragment component\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n};\n\nvar handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n};\n\nvar O = {};\nvar isIRI = true;\n//RFC 3986\nvar UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nvar HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nvar 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$ + \"?\" + '\\\\\"');\nvar ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nvar QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nvar VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nvar SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nvar UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nvar PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nvar NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nvar NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nvar NOT_HFVALUE = NOT_HFNAME;\nfunction decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n}\nvar handler$4 = {\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\nvar URN_PARSE = /^([^\\:]+)\\:(.*)/;\n//RFC 2141\nvar handler$5 = {\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\nvar UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n//RFC 4122\nvar handler$6 = {\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\nSCHEMES[handler.scheme] = handler;\nSCHEMES[handler$1.scheme] = handler$1;\nSCHEMES[handler$2.scheme] = handler$2;\nSCHEMES[handler$3.scheme] = handler$3;\nSCHEMES[handler$4.scheme] = handler$4;\nSCHEMES[handler$5.scheme] = handler$5;\nSCHEMES[handler$6.scheme] = handler$6;\n\nexports.SCHEMES = SCHEMES;\nexports.pctEncChar = pctEncChar;\nexports.pctDecChars = pctDecChars;\nexports.parse = parse;\nexports.removeDotSegments = removeDotSegments;\nexports.serialize = serialize;\nexports.resolveComponents = resolveComponents;\nexports.resolve = resolve;\nexports.normalize = normalize;\nexports.equal = equal;\nexports.escapeComponent = escapeComponent;\nexports.unescapeComponent = unescapeComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n},{}],\"ajv\":[function(require,module,exports){\n'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} 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 */\nfunction 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<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n\n},{\"./cache\":1,\"./compile\":5,\"./compile/async\":2,\"./compile/error_classes\":3,\"./compile/formats\":4,\"./compile/resolve\":6,\"./compile/rules\":7,\"./compile/schema_obj\":8,\"./compile/util\":10,\"./data\":11,\"./keyword\":39,\"./refs/data.json\":40,\"./refs/json-schema-draft-07.json\":41,\"fast-json-stable-stringify\":43}]},{},[])(\"ajv\")\n});\n"],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/dist/ajv.bundle.js"],
4
+ "sourcesContent": ["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Ajv = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;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 require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n\n},{}],2:[function(require,module,exports){\n'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n\n},{\"./error_classes\":3}],3:[function(require,module,exports){\n'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n\n},{\"./resolve\":6}],4:[function(require,module,exports){\n'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\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;\nvar 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-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-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;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.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\nformats.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\nfunction 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\nfunction 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\nfunction time(str, full) {\n var matches = str.match(TIME);\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\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction 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\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction 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\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction 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},{\"./util\":10}],5:[function(require,module,exports){\n'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\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 {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 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 */\nfunction 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 */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n\n},{\"../dotjs/validate\":38,\"./error_classes\":3,\"./resolve\":6,\"./util\":10,\"fast-deep-equal\":42,\"fast-json-stable-stringify\":43}],6:[function(require,module,exports){\n'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n\n},{\"./schema_obj\":8,\"./util\":10,\"fast-deep-equal\":42,\"json-schema-traverse\":44,\"uri-js\":45}],7:[function(require,module,exports){\n'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = 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: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$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},{\"../dotjs\":27,\"./util\":10}],8:[function(require,module,exports){\n'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n\n},{\"./util\":10}],9:[function(require,module,exports){\n'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = 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},{}],10:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\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\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction 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\nfunction 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(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\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= 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<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n\n},{\"./ucs2length\":9,\"fast-deep-equal\":42}],11:[function(require,module,exports){\n'use strict';\n\nvar 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\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n\n},{}],12:[function(require,module,exports){\n'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n\n},{\"./refs/json-schema-draft-07.json\":41}],13:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],14:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],15:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],16:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],17:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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},{}],18:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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},{}],19:[function(require,module,exports){\n'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !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},{}],20:[function(require,module,exports){\n'use strict';\nmodule.exports = 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 $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) {\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},{}],21:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $schema === false : 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},{}],22:[function(require,module,exports){\n'use strict';\nmodule.exports = function generate_custom(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 $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $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 var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (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 def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\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 var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\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 } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n\n},{}],23:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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},{}],24:[function(require,module,exports){\n'use strict';\nmodule.exports = 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 $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 $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},{}],25:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],26:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : 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},{}],27:[function(require,module,exports){\n'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n\n},{\"./_limit\":13,\"./_limitItems\":14,\"./_limitLength\":15,\"./_limitProperties\":16,\"./allOf\":17,\"./anyOf\":18,\"./comment\":19,\"./const\":20,\"./contains\":21,\"./dependencies\":23,\"./enum\":24,\"./format\":25,\"./if\":26,\"./items\":28,\"./multipleOf\":29,\"./not\":30,\"./oneOf\":31,\"./pattern\":32,\"./properties\":33,\"./propertyNames\":34,\"./ref\":35,\"./required\":36,\"./uniqueItems\":37,\"./validate\":38}],28:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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) || $additionalItems === false : 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) || $schema === false : 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},{}],29:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],30:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $schema === false : 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},{}],31:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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},{}],32:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],33:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $sch === false : 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) || $sch === false : 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},{}],34:[function(require,module,exports){\n'use strict';\nmodule.exports = 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) || $schema === false : 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) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\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 if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n\n},{}],35:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],36:[function(require,module,exports){\n'use strict';\nmodule.exports = function generate_required(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 var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : 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},{}],37:[function(require,module,exports){\n'use strict';\nmodule.exports = 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},{}],38:[function(require,module,exports){\n'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\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 $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\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 } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\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 += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\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 }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\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 ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\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 += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n\n},{}],39:[function(require,module,exports){\n'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n\n},{\"./definition_schema\":12,\"./dotjs/custom\":22}],40:[function(require,module,exports){\nmodule.exports={\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n \"description\": \"Meta-schema for $data reference (JSON Schema extension proposal)\",\n \"type\": \"object\",\n \"required\": [ \"$data\" ],\n \"properties\": {\n \"$data\": {\n \"type\": \"string\",\n \"anyOf\": [\n { \"format\": \"relative-json-pointer\" }, \n { \"format\": \"json-pointer\" }\n ]\n }\n },\n \"additionalProperties\": false\n}\n\n},{}],41:[function(require,module,exports){\nmodule.exports={\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Core schema meta-schema\",\n \"definitions\": {\n \"schemaArray\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": { \"$ref\": \"#\" }\n },\n \"nonNegativeInteger\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"nonNegativeIntegerDefault0\": {\n \"allOf\": [\n { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n { \"default\": 0 }\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\": { \"type\": \"string\" },\n \"uniqueItems\": true,\n \"default\": []\n }\n },\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"$id\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$schema\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"$ref\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$comment\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"default\": true,\n \"readOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"examples\": {\n \"type\": \"array\",\n \"items\": true\n },\n \"multipleOf\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maximum\": {\n \"type\": \"number\"\n },\n \"exclusiveMaximum\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"exclusiveMinimum\": {\n \"type\": \"number\"\n },\n \"maxLength\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minLength\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"pattern\": {\n \"type\": \"string\",\n \"format\": \"regex\"\n },\n \"additionalItems\": { \"$ref\": \"#\" },\n \"items\": {\n \"anyOf\": [\n { \"$ref\": \"#\" },\n { \"$ref\": \"#/definitions/schemaArray\" }\n ],\n \"default\": true\n },\n \"maxItems\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minItems\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"uniqueItems\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"contains\": { \"$ref\": \"#\" },\n \"maxProperties\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n \"minProperties\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n \"required\": { \"$ref\": \"#/definitions/stringArray\" },\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"definitions\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"default\": {}\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"default\": {}\n },\n \"patternProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#\" },\n \"propertyNames\": { \"format\": \"regex\" },\n \"default\": {}\n },\n \"dependencies\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n { \"$ref\": \"#\" },\n { \"$ref\": \"#/definitions/stringArray\" }\n ]\n }\n },\n \"propertyNames\": { \"$ref\": \"#\" },\n \"const\": true,\n \"enum\": {\n \"type\": \"array\",\n \"items\": true,\n \"minItems\": 1,\n \"uniqueItems\": true\n },\n \"type\": {\n \"anyOf\": [\n { \"$ref\": \"#/definitions/simpleTypes\" },\n {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/definitions/simpleTypes\" },\n \"minItems\": 1,\n \"uniqueItems\": true\n }\n ]\n },\n \"format\": { \"type\": \"string\" },\n \"contentMediaType\": { \"type\": \"string\" },\n \"contentEncoding\": { \"type\": \"string\" },\n \"if\": {\"$ref\": \"#\"},\n \"then\": {\"$ref\": \"#\"},\n \"else\": {\"$ref\": \"#\"},\n \"allOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"anyOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"oneOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n \"not\": { \"$ref\": \"#\" }\n },\n \"default\": true\n}\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = 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},{}],43:[function(require,module,exports){\n'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n},{}],45:[function(require,module,exports){\n/** @license URI.js v4.4.0 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.URI = global.URI || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction 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}\nfunction subexp(str) {\n return \"(?:\" + str + \")\";\n}\nfunction typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nfunction 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}\nfunction 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\nfunction buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n CR$ = \"[\\\\x0D]\",\n DIGIT$$ = \"[0-9]\",\n DQUOTE$$ = \"[\\\\x22]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n //case-insensitive\n LF$$ = \"[\\\\x0A]\",\n SP$$ = \"[\\\\x20]\",\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 SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n 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\n IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n //RFC 6874\n IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n //RFC 6874, with relaxed parsing rules\n IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n //RFC 6874\n REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n PORT$ = subexp(DIGIT$$ + \"*\"),\n AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n SEGMENT$ = subexp(PCHAR$ + \"*\"),\n SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n //simplified\n PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n //simplified\n PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n //simplified\n PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\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}\nvar URI_PROTOCOL = buildExps(false);\n\nvar IRI_PROTOCOL = buildExps(true);\n\nvar 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\nvar 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\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error$1(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tvar result = [];\n\tvar length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tvar parts = string.split('@');\n\tvar result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tvar labels = string.split('.');\n\tvar encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t// Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nvar ucs2encode = function ucs2encode(array) {\n\treturn 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 */\nvar basicToDigit = function basicToDigit(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nvar digitToBasic = function digitToBasic(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nvar adapt = function adapt(delta, numPoints, firstTime) {\n\tvar k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nvar decode = function decode(input) {\n\t// Don't use UCS-2.\n\tvar output = [];\n\tvar inputLength = input.length;\n\tvar i = 0;\n\tvar n = initialN;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tvar basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (var j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror$1('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tvar oldi = i;\n\t\tfor (var w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror$1('invalid-input');\n\t\t\t}\n\n\t\t\tvar digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\t\t}\n\n\t\tvar out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\t}\n\n\treturn 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 */\nvar encode = function encode(input) {\n\tvar output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tvar inputLength = input.length;\n\n\t// Initialize the state.\n\tvar n = initialN;\n\tvar delta = 0;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points.\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _currentValue2 = _step.value;\n\n\t\t\tif (_currentValue2 < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(_currentValue2));\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar basicLength = output.length;\n\tvar handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tvar m = maxInt;\n\t\tvar _iteratorNormalCompletion2 = true;\n\t\tvar _didIteratorError2 = false;\n\t\tvar _iteratorError2 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\tvar currentValue = _step2.value;\n\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow.\n\t\t} catch (err) {\n\t\t\t_didIteratorError2 = true;\n\t\t\t_iteratorError2 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t_iterator2.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tvar _iteratorNormalCompletion3 = true;\n\t\tvar _didIteratorError3 = false;\n\t\tvar _iteratorError3 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\tvar _currentValue = _step3.value;\n\n\t\t\t\tif (_currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror$1('overflow');\n\t\t\t\t}\n\t\t\t\tif (_currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\t\tvar q = delta;\n\t\t\t\t\tfor (var k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar qMinusT = q - t;\n\t\t\t\t\t\tvar baseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError3 = true;\n\t\t\t_iteratorError3 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t_iterator3.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nvar toUnicode = function toUnicode(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nvar toASCII = function toASCII(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nvar punycode = {\n\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t'version': '2.1.0',\n\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\n/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * 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 */\nvar SCHEMES = {};\nfunction 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}\nfunction 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}\nfunction _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\nfunction _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _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}\nfunction _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}\nvar URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nvar NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\nfunction 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\nfunction _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\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n\nvar RDS1 = /^\\.\\.?\\//;\nvar RDS2 = /^\\/\\.(\\/|$)/;\nvar RDS3 = /^\\/\\.\\.(\\/|$)/;\nvar RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n}\n\nfunction unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n}\n\nvar 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 var secure = String(components.scheme).toLowerCase() === \"https\";\n //normalize the default port\n if (components.port === (secure ? 443 : 80) || 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\nvar handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n};\n\nfunction isSecure(wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nvar handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n //indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents);\n //construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n //normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n //ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n wsComponents.secure = undefined;\n }\n //reconstruct path from resource name\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n path = _wsComponents$resourc2[0],\n query = _wsComponents$resourc2[1];\n\n wsComponents.path = path && path !== '/' ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n //forbid fragment component\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n};\n\nvar handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n};\n\nvar O = {};\nvar isIRI = true;\n//RFC 3986\nvar UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nvar HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nvar 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$ + \"?\" + '\\\\\"');\nvar ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nvar QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nvar VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nvar SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nvar UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nvar PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nvar NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nvar NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nvar NOT_HFVALUE = NOT_HFNAME;\nfunction decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n}\nvar handler$4 = {\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\nvar URN_PARSE = /^([^\\:]+)\\:(.*)/;\n//RFC 2141\nvar handler$5 = {\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\nvar UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n//RFC 4122\nvar handler$6 = {\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\nSCHEMES[handler.scheme] = handler;\nSCHEMES[handler$1.scheme] = handler$1;\nSCHEMES[handler$2.scheme] = handler$2;\nSCHEMES[handler$3.scheme] = handler$3;\nSCHEMES[handler$4.scheme] = handler$4;\nSCHEMES[handler$5.scheme] = handler$5;\nSCHEMES[handler$6.scheme] = handler$6;\n\nexports.SCHEMES = SCHEMES;\nexports.pctEncChar = pctEncChar;\nexports.pctDecChars = pctDecChars;\nexports.parse = parse;\nexports.removeDotSegments = removeDotSegments;\nexports.serialize = serialize;\nexports.resolveComponents = resolveComponents;\nexports.resolve = resolve;\nexports.normalize = normalize;\nexports.equal = equal;\nexports.escapeComponent = escapeComponent;\nexports.unescapeComponent = unescapeComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n},{}],\"ajv\":[function(require,module,exports){\n'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} 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 */\nfunction 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<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n\n},{\"./cache\":1,\"./compile\":5,\"./compile/async\":2,\"./compile/error_classes\":3,\"./compile/formats\":4,\"./compile/resolve\":6,\"./compile/rules\":7,\"./compile/schema_obj\":8,\"./compile/util\":10,\"./data\":11,\"./keyword\":39,\"./refs/data.json\":40,\"./refs/json-schema-draft-07.json\":41,\"fast-json-stable-stringify\":43}]},{},[])(\"ajv\")\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["f", "g", "define", "module", "exports", "r", "e", "n", "t", "o", "i", "c", "u", "a", "p", "require", "Cache", "key", "value", "MissingRefError", "compileAsync", "schema", "meta", "callback", "self", "loadMetaSchemaOf", "schemaObj", "_compileAsync", "v", "sch", "$schema", "loadMissingSchema", "ref", "added", "schemaPromise", "removePromise", "resolve", "errorSubclass", "ValidationError", "errors", "baseId", "message", "Subclass", "util", "DATE", "DAYS", "TIME", "HOSTNAME", "URI", "URIREF", "URITEMPLATE", "URL", "UUID", "JSON_POINTER", "JSON_POINTER_URI_FRAGMENT", "RELATIVE_JSON_POINTER", "formats", "mode", "regex", "date", "time", "date_time", "uri", "isLeapYear", "year", "str", "matches", "month", "day", "full", "hour", "minute", "second", "timeZone", "DATE_TIME_SEPARATOR", "dateTime", "NOT_URI_FRAGMENT", "Z_ANCHOR", "errorClasses", "stableStringify", "validateGenerator", "ucs2length", "equal", "compile", "root", "localRefs", "opts", "refVal", "refs", "patterns", "patternsHash", "defaults", "defaultsHash", "customRules", "checkCompiling", "compilation", "callValidate", "RULES", "localCompile", "cv", "endCompiling", "validate", "result", "_schema", "_root", "isRoot", "$async", "sourceCode", "resolveRef", "usePattern", "useDefault", "useCustomRule", "vars", "refValCode", "patternCode", "defaultCode", "customRuleCode", "makeValidate", "refIndex", "_refVal", "refCode", "resolvedRef", "rootRefId", "addLocalRef", "localSchema", "removeLocalRef", "replaceLocalRef", "refId", "code", "regexStr", "index", "valueStr", "rule", "parentSchema", "it", "deps", "keyword", "validateSchema", "valid", "inline", "macro", "compIndex", "arr", "statement", "SchemaObject", "traverse", "normalizeId", "getFullPath", "resolveUrl", "resolveIds", "inlineRef", "resolveSchema", "res", "refPath", "_getFullPath", "id", "resolveRecursive", "getJsonPointer", "parsedRef", "PREVENT_SCOPE_CHANGE", "parts", "part", "$ref", "SIMPLE_INLINED", "limit", "checkNoRef", "countKeys", "item", "count", "normalize", "TRAILING_SLASH_HASH", "schemaId", "baseIds", "fullPaths", "jsonPtr", "rootSchema", "parentJsonPtr", "parentKeyword", "keyIndex", "fullPath", "ruleModules", "toHash", "ALL", "KEYWORDS", "TYPES", "group", "implKeywords", "k", "obj", "length", "len", "pos", "copy", "checkDataType", "checkDataTypes", "coerceToTypes", "getProperty", "escapeQuotes", "varOccurences", "varReplace", "schemaHasRules", "schemaHasRulesExcept", "schemaUnknownRules", "toQuotedString", "getPathExpr", "getPath", "getData", "unescapeFragment", "unescapeJsonPointer", "escapeFragment", "escapeJsonPointer", "to", "dataType", "data", "strictNumbers", "negate", "EQUAL", "AND", "OK", "NOT", "dataTypes", "types", "COERCE_TO_TYPES", "optionCoerceTypes", "hash", "IDENTIFIER", "SINGLE_QUOTE", "dataVar", "expr", "rules", "exceptKeyword", "currentPath", "jsonPointers", "isNumber", "path", "joinPaths", "prop", "$data", "lvl", "paths", "up", "jsonPointer", "segments", "segment", "metaSchema", "keywordsJsonPointers", "keywords", "j", "$keyword", "$ruleType", "out", "$lvl", "$dataLvl", "$schemaPath", "$errSchemaPath", "$breakOnError", "$errorKeyword", "$isData", "$schemaValue", "$isMax", "$exclusiveKeyword", "$schemaExcl", "$isDataExcl", "$op", "$notOp", "$schemaValueExcl", "$exclusive", "$exclType", "$exclIsNumber", "$opExpr", "$opStr", "$$outStack", "__err", "$it", "$closingBraces", "$nextValid", "$currentBaseId", "$allSchemasEmpty", "arr1", "$sch", "$i", "l1", "$valid", "$errs", "$noEmptySchema", "$wasComposite", "$comment", "$idx", "$dataNxt", "$nextData", "$nonEmptySchema", "$passData", "$code", "$rule", "$definition", "$rDef", "$compile", "$inline", "$macro", "$ruleValidate", "$validateCode", "$validateSchema", "$ruleErrs", "$ruleErr", "$asyncKeyword", "$parentData", "$parentDataProperty", "def_callRuleValidate", "def_customError", "$schemaDeps", "$propertyDeps", "$ownProperties", "$property", "$deps", "$currentErrorPath", "$propertyKey", "$prop", "$useData", "$propertyPath", "$missingProperty", "arr2", "i2", "l2", "$vSchema", "$unknownFormats", "$allowUnknown", "$format", "$isObject", "$formatType", "$formatRef", "$thenSch", "$elseSch", "$thenPresent", "$elsePresent", "$ifClause", "$additionalItems", "$currErrSchemaPath", "$allErrorsOption", "$prevValid", "$passingSchemas", "$regexp", "$key", "$dataProperties", "$schemaKeys", "notProto", "$pProperties", "$pPropertyKeys", "$aProperties", "$someProperties", "$noAdditional", "$additionalIsSchema", "$removeAdditional", "$checkAdditional", "$required", "$requiredHash", "i1", "$pProperty", "$additionalProperty", "$useDefaults", "arr3", "i3", "l3", "$hasDefault", "arr4", "i4", "l4", "$invalidName", "$refCode", "$refVal", "$message", "__callValidate", "$propertySch", "$loopRequired", "$itemType", "$typeIsArray", "$method", "$refKeywords", "$id", "$unknownKwd", "$keywordsMsg", "$top", "$defaultMsg", "$closingBraces1", "$closingBraces2", "$typeSchema", "$coerceToTypes", "$rulesGroup", "$shouldUseGroup", "$dataType", "$coerced", "$type", "arr5", "i5", "l5", "$shouldUseRule", "$ruleImplementsSomeKeyword", "impl", "definitionSchema", "addKeyword", "getKeyword", "removeKeyword", "validateKeyword", "definition", "_addRule", "ruleGroup", "rg", "throwError", "b", "keys", "cycles", "cmp", "node", "aobj", "bobj", "seen", "stringify", "seenIndex", "cb", "pre", "post", "_traverse", "escapeJsonPtr", "global", "factory", "merge", "_len", "sets", "_key", "xl", "x", "subexp", "typeOf", "toUpperCase", "toArray", "assign", "target", "source", "buildExps", "isIRI", "ALPHA$$", "CR$", "DIGIT$$", "DQUOTE$$", "HEXDIG$$", "LF$$", "SP$$", "PCT_ENCODED$", "GEN_DELIMS$$", "SUB_DELIMS$$", "RESERVED$$", "UCSCHAR$$", "IPRIVATE$$", "UNRESERVED$$", "SCHEME$", "USERINFO$", "DEC_OCTET$", "DEC_OCTET_RELAXED$", "IPV4ADDRESS$", "H16$", "LS32$", "IPV6ADDRESS1$", "IPV6ADDRESS2$", "IPV6ADDRESS3$", "IPV6ADDRESS4$", "IPV6ADDRESS5$", "IPV6ADDRESS6$", "IPV6ADDRESS7$", "IPV6ADDRESS8$", "IPV6ADDRESS9$", "IPV6ADDRESS$", "ZONEID$", "IPV6ADDRZ$", "IPV6ADDRZ_RELAXED$", "IPVFUTURE$", "IP_LITERAL$", "REG_NAME$", "HOST$", "PORT$", "AUTHORITY$", "PCHAR$", "SEGMENT$", "SEGMENT_NZ$", "SEGMENT_NZ_NC$", "PATH_ABEMPTY$", "PATH_ABSOLUTE$", "PATH_NOSCHEME$", "PATH_ROOTLESS$", "PATH_EMPTY$", "PATH$", "QUERY$", "FRAGMENT$", "HIER_PART$", "URI$", "RELATIVE_PART$", "RELATIVE$", "URI_REFERENCE$", "ABSOLUTE_URI$", "GENERIC_REF$", "RELATIVE_REF$", "ABSOLUTE_REF$", "SAMEDOC_REF$", "AUTHORITY_REF$", "URI_PROTOCOL", "IRI_PROTOCOL", "slicedToArray", "sliceIterator", "_arr", "_n", "_d", "_e", "_i", "_s", "err", "toConsumableArray", "maxInt", "base", "tMin", "tMax", "skew", "damp", "initialBias", "initialN", "delimiter", "regexPunycode", "regexNonASCII", "regexSeparators", "baseMinusTMin", "floor", "stringFromCharCode", "error$1", "type", "map", "array", "fn", "mapDomain", "string", "labels", "encoded", "ucs2decode", "output", "counter", "extra", "ucs2encode", "basicToDigit", "codePoint", "digitToBasic", "digit", "flag", "adapt", "delta", "numPoints", "firstTime", "decode", "input", "inputLength", "bias", "basic", "oldi", "w", "baseMinusT", "encode", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "_currentValue2", "basicLength", "handledCPCount", "m", "_iteratorNormalCompletion2", "_didIteratorError2", "_iteratorError2", "_iterator2", "_step2", "currentValue", "handledCPCountPlusOne", "_iteratorNormalCompletion3", "_didIteratorError3", "_iteratorError3", "_iterator3", "_step3", "_currentValue", "q", "qMinusT", "toUnicode", "toASCII", "punycode", "SCHEMES", "pctEncChar", "chr", "pctDecChars", "newStr", "il", "c2", "_c", "c3", "_normalizeComponentEncoding", "components", "protocol", "decodeUnreserved", "decStr", "_stripLeadingZeros", "_normalizeIPv4", "host", "_matches", "address", "_normalizeIPv6", "_matches2", "zone", "_address$toLowerCase$", "_address$toLowerCase$2", "last", "first", "firstFields", "lastFields", "isLastFieldIPv4Address", "fieldCount", "lastFieldsStart", "fields", "allZeroFields", "acc", "field", "lastLongest", "longestZeroFields", "newHost", "newFirst", "newLast", "URI_PARSE", "NO_MATCH_IS_UNDEFINED", "parse", "uriString", "options", "schemeHandler", "_recomposeAuthority", "uriTokens", "_", "$1", "$2", "RDS1", "RDS2", "RDS3", "RDS5", "removeDotSegments", "im", "s", "serialize", "authority", "resolveComponents", "relative", "skipNormalization", "baseURI", "relativeURI", "schemelessOptions", "uriA", "uriB", "escapeComponent", "unescapeComponent", "handler", "secure", "handler$1", "isSecure", "wsComponents", "handler$2", "_wsComponents$resourc", "_wsComponents$resourc2", "query", "handler$3", "O", "ATEXT$$", "QTEXT$$", "VCHAR$$", "SOME_DELIMS$$", "UNRESERVED", "PCT_ENCODED", "NOT_LOCAL_PART", "NOT_HFNAME", "NOT_HFVALUE", "handler$4", "mailtoComponents", "unknownHeaders", "headers", "hfields", "hfield", "toAddrs", "_x", "_xl", "_x2", "_xl2", "addr", "toAddr", "atIdx", "localPart", "domain", "name", "URN_PARSE", "handler$5", "urnComponents", "scheme", "nid", "nss", "urnScheme", "uriComponents", "handler$6", "uuidComponents", "compileSchema", "$dataMetaSchema", "Ajv", "addSchema", "addMetaSchema", "getSchema", "removeSchema", "addFormat", "errorsText", "_addSchema", "_compile", "customKeyword", "META_SCHEMA_ID", "META_IGNORE_OPTIONS", "META_SUPPORT_DATA", "setLogger", "chooseGetId", "getMetaSchemaOptions", "addInitialFormats", "addInitialKeywords", "addDefaultMetaSchema", "addInitialSchemas", "schemaKeyRef", "_meta", "_skipValidation", "checkUnique", "skipValidation", "throwOrLogError", "defaultMeta", "keyRef", "_getSchemaObj", "_getSchemaFragment", "_removeAllSchemas", "cacheKey", "schemas", "shouldAddSchema", "cached", "willValidate", "recursiveMeta", "currentOpts", "_validate", "_get$IdOrId", "_getId", "_get$Id", "separator", "text", "format", "$dataSchema", "optsSchemas", "metaOpts", "logger", "noop"]
7
+ }