diff --git a/bin/avcodec-58.dll b/bin/avcodec-58.dll new file mode 100644 index 0000000..ec783a5 Binary files /dev/null and b/bin/avcodec-58.dll differ diff --git a/bin/avdevice-58.dll b/bin/avdevice-58.dll new file mode 100644 index 0000000..6fa85d4 Binary files /dev/null and b/bin/avdevice-58.dll differ diff --git a/bin/avfilter-7.dll b/bin/avfilter-7.dll new file mode 100644 index 0000000..32baf9d Binary files /dev/null and b/bin/avfilter-7.dll differ diff --git a/bin/avformat-58.dll b/bin/avformat-58.dll new file mode 100644 index 0000000..4ac7b34 Binary files /dev/null and b/bin/avformat-58.dll differ diff --git a/bin/avutil-56.dll b/bin/avutil-56.dll new file mode 100644 index 0000000..ff8d066 Binary files /dev/null and b/bin/avutil-56.dll differ diff --git a/bin/ffmpeg.exe b/bin/ffmpeg.exe index 6137c93..d15417d 100644 Binary files a/bin/ffmpeg.exe and b/bin/ffmpeg.exe differ diff --git a/bin/ffprobe.exe b/bin/ffprobe.exe index a25a351..2cf0e54 100644 Binary files a/bin/ffprobe.exe and b/bin/ffprobe.exe differ diff --git a/bin/postproc-55.dll b/bin/postproc-55.dll new file mode 100644 index 0000000..1355a2b Binary files /dev/null and b/bin/postproc-55.dll differ diff --git a/bin/swresample-3.dll b/bin/swresample-3.dll new file mode 100644 index 0000000..8a7d66b Binary files /dev/null and b/bin/swresample-3.dll differ diff --git a/bin/swscale-5.dll b/bin/swscale-5.dll new file mode 100644 index 0000000..f386223 Binary files /dev/null and b/bin/swscale-5.dll differ diff --git a/server.js b/server.js index 33d6ed8..0f26aec 100644 --- a/server.js +++ b/server.js @@ -42,7 +42,7 @@ return __webpack_require__.d(getter, "a", getter), getter; }, __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); - }, __webpack_require__.p = "", __webpack_require__(__webpack_require__.s = 418); + }, __webpack_require__.p = "", __webpack_require__(__webpack_require__.s = 518); })([ function(module, exports) { module.exports = require("util"); }, function(module, exports, __webpack_require__) { @@ -138,7 +138,7 @@ function loadLocale(name) { var oldLocale = null; if (!locales[name] && void 0 !== module && module && module.exports) try { - oldLocale = globalLocale._abbr, __webpack_require__(594)("./" + name), locale_locales__getSetGlobalLocale(oldLocale); + oldLocale = globalLocale._abbr, __webpack_require__(693)("./" + name), locale_locales__getSetGlobalLocale(oldLocale); } catch (e) {} return locales[name]; } @@ -1132,4130 +1132,4287 @@ !0)); }, utils_hooks__hooks; })(); - }).call(this, __webpack_require__(54)(module)); + }).call(this, __webpack_require__(62)(module)); }, function(module, exports) { module.exports = require("fs"); +}, function(module, exports) { + module.exports = require("stream"); }, function(module, exports) { module.exports = require("path"); }, function(module, exports) { module.exports = require("events"); -}, function(module, exports) { - module.exports = require("stream"); -}, function(module, exports, __webpack_require__) { - "undefined" != typeof process && "renderer" === process.type ? module.exports = __webpack_require__(440) : module.exports = __webpack_require__(442); }, function(module, exports) { module.exports = require("url"); -}, function(module, exports) { - module.exports = require("buffer"); -}, function(module, exports, __webpack_require__) { - "use strict"; - var byEbmlID = { - 128: { - name: "ChapterDisplay", - level: 4, - type: "m", - multiple: !0, - minver: 1, - webm: !0, - description: "Contains all possible strings to use for the chapter display." - }, - 131: { - name: "TrackType", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - range: "1-254", - description: "A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control)." - }, - 133: { - name: "ChapString", - cppname: "ChapterString", - level: 5, - type: "8", - mandatory: !0, - minver: 1, - webm: !0, - description: "Contains the string to use as the chapter atom." - }, - 134: { - name: "CodecID", - level: 3, - type: "s", - mandatory: !0, - minver: 1, - description: "An ID corresponding to the codec, see the codec page for more info." - }, - 136: { - name: "FlagDefault", - cppname: "TrackFlagDefault", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - default: 1, - range: "0-1", - description: "Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)" - }, - 137: { - name: "ChapterTrackNumber", - level: 5, - type: "u", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - range: "not 0", - description: "UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks." - }, - 145: { - name: "ChapterTimeStart", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !0, - description: "Timestamp of the start of Chapter (not scaled)." - }, - 146: { - name: "ChapterTimeEnd", - level: 4, - type: "u", - minver: 1, - webm: !1, - description: "Timestamp of the end of Chapter (timestamp excluded, not scaled)." - }, - 150: { - name: "CueRefTime", - level: 5, - type: "u", - mandatory: !0, - minver: 2, - webm: !1, - description: "Timestamp of the referenced Block." - }, - 151: { - name: "CueRefCluster", - level: 5, - type: "u", - mandatory: !0, - webm: !1, - description: "The Position of the Cluster containing the referenced Block." - }, - 152: { - name: "ChapterFlagHidden", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - range: "0-1", - description: "If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)" - }, - 16980: { - name: "ContentCompAlgo", - level: 6, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping" - }, - 16981: { - name: "ContentCompSettings", - level: 6, - type: "b", - minver: 1, - webm: !1, - description: "Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track." - }, - 17026: { - name: "DocType", - level: 1, - type: "s", - mandatory: !0, - default: "matroska", - minver: 1, - description: "A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files." - }, - 17029: { - name: "DocTypeReadVersion", - level: 1, - type: "u", - mandatory: !0, - default: 1, - minver: 1, - description: "The minimum DocType version an interpreter has to support to read this file." - }, - 17030: { - name: "EBMLVersion", - level: 1, - type: "u", - mandatory: !0, - default: 1, - minver: 1, - description: "The version of EBML parser used to create the file." - }, - 17031: { - name: "DocTypeVersion", - level: 1, - type: "u", - mandatory: !0, - default: 1, - minver: 1, - description: "The version of DocType interpreter used to create the file." - }, - 17476: { - name: "SegmentFamily", - level: 2, - type: "b", - multiple: !0, - minver: 1, - webm: !1, - bytesize: 16, - description: "A randomly generated unique ID that all segments related to each other must use (128 bits)." - }, - 17505: { - name: "DateUTC", - level: 2, - type: "d", - minver: 1, - description: "Date of the origin of timestamp (value 0), i.e. production date." - }, - 17540: { - name: "TagDefault", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 1, - range: "0-1", - description: "Indication to know if this is the default/original language to use for the given tag. (1 bit)" - }, - 17541: { - name: "TagBinary", - level: 4, - type: "b", - minver: 1, - webm: !1, - description: "The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString." - }, - 17543: { - name: "TagString", - level: 4, - type: "8", - minver: 1, - webm: !1, - description: "The value of the Element." - }, - 17545: { - name: "Duration", - level: 2, - type: "f", - minver: 1, - range: "> 0", - description: "Duration of the segment (based on TimecodeScale)." - }, - 17816: { - name: "ChapterFlagEnabled", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 1, - range: "0-1", - description: "Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)" - }, - 18016: { - name: "FileMimeType", - level: 3, - type: "s", - mandatory: !0, - minver: 1, - webm: !1, - description: "MIME type of the file." - }, - 18017: { - name: "FileUsedStartTime", - level: 3, - type: "u", - divx: !0, - description: "DivX font extension" - }, - 18018: { - name: "FileUsedEndTime", - level: 3, - type: "u", - divx: !0, - description: "DivX font extension" - }, - 18037: { - name: "FileReferral", - level: 3, - type: "b", - webm: !1, - description: "A binary value that a track/codec can refer to when the attachment is needed." - }, - 20529: { - name: "ContentEncodingOrder", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment." - }, - 20530: { - name: "ContentEncodingScope", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 1, - range: "not 0", - description: "A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)" - }, - 20531: { - name: "ContentEncodingType", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption" - }, - 20532: { - name: "ContentCompression", - level: 5, - type: "m", - minver: 1, - webm: !1, - description: "Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking." - }, - 20533: { - name: "ContentEncryption", - level: 5, - type: "m", - minver: 1, - webm: !1, - description: "Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise." - }, - 21368: { - name: "CueBlockNumber", - level: 4, - type: "u", - minver: 1, - default: 1, - range: "not 0", - description: "Number of the Block in the specified Cluster." - }, - 22100: { - name: "ChapterStringUID", - level: 4, - type: "8", - mandatory: !1, - minver: 3, - webm: !0, - description: "A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage." - }, - 22337: { - name: "WritingApp", - level: 2, - type: "8", - mandatory: !0, - minver: 1, - description: 'Writing application ("mkvmerge-0.3.3").' - }, - 22612: { - name: "SilentTracks", - cppname: "ClusterSilentTracks", - level: 2, - type: "m", - minver: 1, - webm: !1, - description: "The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use." - }, - 25152: { - name: "ContentEncoding", - level: 4, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "Settings for one content encoding like compression or encryption." - }, - 25188: { - name: "BitDepth", - cppname: "AudioBitDepth", - level: 4, - type: "u", - minver: 1, - range: "not 0", - description: "Bits per sample, mostly used for PCM." - }, - 25906: { - name: "SignedElement", - level: 3, - type: "b", - multiple: !0, - webm: !1, - description: "An element ID whose data will be used to compute the signature." - }, - 26148: { - name: "TrackTranslate", - level: 3, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "The track identification for the given Chapter Codec." - }, - 26897: { - name: "ChapProcessCommand", - cppname: "ChapterProcessCommand", - level: 5, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "Contains all the commands associated to the Atom." - }, - 26914: { - name: "ChapProcessTime", - cppname: "ChapterProcessTime", - level: 6, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - description: "Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter)." - }, - 26916: { - name: "ChapterTranslate", - level: 2, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "A tuple of corresponding ID used by chapter codecs to represent this segment." - }, - 26931: { - name: "ChapProcessData", - cppname: "ChapterProcessData", - level: 6, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands." - }, - 26948: { - name: "ChapProcess", - cppname: "ChapterProcess", - level: 4, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "Contains all the commands associated to the Atom." - }, - 26965: { - name: "ChapProcessCodecID", - cppname: "ChapterProcessCodecID", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later." - }, - 29555: { - name: "Tag", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "Element containing elements specific to Tracks/Chapters." - }, - 29572: { - name: "SegmentFilename", - level: 2, - type: "8", - minver: 1, - webm: !1, - description: "A filename corresponding to this segment." - }, - 29766: { - name: "AttachmentLink", - cppname: "TrackAttachmentLink", - level: 3, - type: "u", - minver: 1, - webm: !1, - range: "not 0", - description: "The UID of an attachment that is used by this codec." - }, - 2459272: { - name: "CodecName", - level: 3, - type: "8", - minver: 1, - description: "A human-readable string specifying the codec." - }, - 408125543: { - name: "Segment", - level: "0", - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment." - }, - 17530: { - name: "TagLanguage", - level: 4, - type: "s", - mandatory: !0, - minver: 1, - webm: !1, - default: "und", - description: "Specifies the language of the tag specified, in the Matroska languages form." - }, - 17827: { - name: "TagName", - level: 4, - type: "8", - mandatory: !0, - minver: 1, - webm: !1, - description: "The name of the Tag that is going to be stored." - }, - 26568: { - name: "SimpleTag", - cppname: "TagSimple", - level: 3, - recursive: "1", - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "Contains general information about the target." - }, - 25542: { - name: "TagAttachmentUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - default: 0, - description: "A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment." - }, - 25540: { - name: "TagChapterUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - default: 0, - description: "A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment." - }, - 25545: { - name: "TagEditionUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - default: 0, - description: "A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment." - }, - 25541: { - name: "TagTrackUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - default: 0, - description: "A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment." - }, - 25546: { - name: "TargetType", - cppname: "TagTargetType", - level: 4, - type: "s", - minver: 1, - webm: !1, - strong: "informational", - description: 'An string that can be used to display the logical level of the target like "ALBUM", "TRACK", "MOVIE", "CHAPTER", etc (see TargetType).' - }, - 26826: { - name: "TargetTypeValue", - cppname: "TagTargetTypeValue", - level: 4, - type: "u", - minver: 1, - webm: !1, - default: 50, - description: "A number to indicate the logical level of the target (see TargetType)." - }, - 25536: { - name: "Targets", - cppname: "TagTargets", - level: 3, - type: "m", - mandatory: !0, - minver: 1, - webm: !1, - description: "Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment." - }, - 307544935: { - name: "Tags", - level: 1, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here." - }, - 17677: { - name: "ChapProcessPrivate", - cppname: "ChapterProcessPrivate", - level: 5, - type: "b", - minver: 1, - webm: !1, - description: 'Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the "DVD level" equivalent.' - }, - 17278: { - name: "ChapCountry", - cppname: "ChapterCountry", - level: 5, - type: "s", - multiple: !0, - minver: 1, - webm: !1, - description: "The countries corresponding to the string, same 2 octets as in Internet domains." - }, - 17276: { - name: "ChapLanguage", - cppname: "ChapterLanguage", - level: 5, - type: "s", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !0, - default: "eng", - description: "The languages corresponding to the string, in the bibliographic ISO-639-2 form." - }, - 143: { - name: "ChapterTrack", - level: 4, - type: "m", - minver: 1, - webm: !1, - description: "List of tracks on which the chapter applies. If this element is not present, all tracks apply" - }, - 25539: { - name: "ChapterPhysicalEquiv", - level: 4, - type: "u", - minver: 1, - webm: !1, - description: 'Specify the physical equivalent of this ChapterAtom like "DVD" (60) or "SIDE" (50), see complete list of values.' - }, - 28348: { - name: "ChapterSegmentEditionUID", - level: 4, - type: "u", - minver: 1, - webm: !1, - range: "not 0", - description: "The EditionUID to play from the segment linked in ChapterSegmentUID." - }, - 28263: { - name: "ChapterSegmentUID", - level: 4, - type: "b", - minver: 1, - webm: !1, - range: ">0", - bytesize: 16, - description: "A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used." - }, - 29636: { - name: "ChapterUID", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !0, - range: "not 0", - description: "A unique ID to identify the Chapter." - }, - 182: { - name: "ChapterAtom", - level: 3, - recursive: "1", - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !0, - description: "Contains the atom information to use as the chapter atom (apply to all tracks)." - }, - 17885: { - name: "EditionFlagOrdered", - level: 3, - type: "u", - minver: 1, - webm: !1, - default: 0, - range: "0-1", - description: "Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)" - }, - 17883: { - name: "EditionFlagDefault", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - range: "0-1", - description: "If a flag is set (1) the edition should be used as the default one. (1 bit)" - }, - 17853: { - name: "EditionFlagHidden", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - range: "0-1", - description: "If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)" - }, - 17852: { - name: "EditionUID", - level: 3, - type: "u", - minver: 1, - webm: !1, - range: "not 0", - description: "A unique ID to identify the edition. It's useful for tagging an edition." - }, - 17849: { - name: "EditionEntry", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !0, - description: "Contains all information about a segment edition." - }, - 272869232: { - name: "Chapters", - level: 1, - type: "m", - minver: 1, - webm: !0, - description: "A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation." - }, - 18094: { - name: "FileUID", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - range: "not 0", - description: "Unique ID representing the file, as random as possible." - }, - 18012: { - name: "FileData", - level: 3, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "The data of the file." - }, - 18030: { - name: "FileName", - level: 3, - type: "8", - mandatory: !0, - minver: 1, - webm: !1, - description: "Filename of the attached file." - }, - 18046: { - name: "FileDescription", - level: 3, - type: "8", - minver: 1, - webm: !1, - description: "A human-friendly name for the attached file." - }, - 24999: { - name: "AttachedFile", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "An attached file." - }, - 423732329: { - name: "Attachments", - level: 1, - type: "m", - minver: 1, - webm: !1, - description: "Contain attached files." - }, - 235: { - name: "CueRefCodecState", - level: 5, - type: "u", - webm: !1, - default: 0, - description: "The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry." - }, - 21343: { - name: "CueRefNumber", - level: 5, - type: "u", - webm: !1, - default: 1, - range: "not 0", - description: "Number of the referenced Block of Track X in the specified Cluster." - }, - 219: { - name: "CueReference", - level: 4, - type: "m", - multiple: !0, - minver: 2, - webm: !1, - description: "The Clusters containing the required referenced Blocks." - }, - 234: { - name: "CueCodecState", - level: 4, - type: "u", - minver: 2, - webm: !1, - default: 0, - description: "The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry." - }, - 178: { - name: "CueDuration", - level: 4, - type: "u", - mandatory: !1, - minver: 4, - webm: !1, - description: "The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues." - }, - 240: { - name: "CueRelativePosition", - level: 4, - type: "u", - mandatory: !1, - minver: 4, - webm: !1, - description: "The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.", - position: "clusterRelative" - }, - 241: { - name: "CueClusterPosition", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - description: "The position of the Cluster containing the required Block.", - position: "segment" - }, - 247: { - name: "CueTrack", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "The track for which a position is given." - }, - 183: { - name: "CueTrackPositions", - level: 3, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Contain positions for different tracks corresponding to the timestamp." - }, - 179: { - name: "CueTime", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - description: "Absolute timestamp according to the segment time base." - }, - 187: { - name: "CuePoint", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Contains all information relative to a seek point in the segment." - }, - 475249515: { - name: "Cues", - level: 1, - type: "m", - minver: 1, - description: 'A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non "live" streams.' - }, - 18406: { - name: "ContentSigHashAlgo", - level: 6, - type: "u", - minver: 1, - webm: !1, - default: 0, - description: "The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5" - }, - 18405: { - name: "ContentSigAlgo", - level: 6, - type: "u", - minver: 1, - webm: !1, - default: 0, - description: "The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA" - }, - 18404: { - name: "ContentSigKeyID", - level: 6, - type: "b", - minver: 1, - webm: !1, - description: "This is the ID of the private key the data was signed with." - }, - 18403: { - name: "ContentSignature", - level: 6, - type: "b", - minver: 1, - webm: !1, - description: "A cryptographic signature of the contents." - }, - 18402: { - name: "ContentEncKeyID", - level: 6, - type: "b", - minver: 1, - webm: !1, - description: "For public key algorithms this is the ID of the public key the the data was encrypted with." - }, - 18401: { - name: "ContentEncAlgo", - level: 6, - type: "u", - minver: 1, - webm: !1, - default: 0, - description: "The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES" - }, - 28032: { - name: "ContentEncodings", - level: 3, - type: "m", - minver: 1, - webm: !1, - description: "Settings for several content encoding mechanisms like compression or encryption." - }, - 196: { - name: "TrickMasterTrackSegmentUID", - level: 3, - type: "b", - divx: !0, - bytesize: 16, - description: "DivX trick track extenstions" - }, - 199: { - name: "TrickMasterTrackUID", - level: 3, - type: "u", - divx: !0, - description: "DivX trick track extenstions" - }, - 198: { - name: "TrickTrackFlag", - level: 3, - type: "u", - divx: !0, - default: 0, - description: "DivX trick track extenstions" - }, - 193: { - name: "TrickTrackSegmentUID", - level: 3, - type: "b", - divx: !0, - bytesize: 16, - description: "DivX trick track extenstions" - }, - 192: { - name: "TrickTrackUID", - level: 3, - type: "u", - divx: !0, - description: "DivX trick track extenstions" - }, - 237: { - name: "TrackJoinUID", - level: 5, - type: "u", - mandatory: !0, - multiple: !0, - minver: 3, - webm: !1, - range: "not 0", - description: "The trackUID number of a track whose blocks are used to create this virtual track." - }, - 233: { - name: "TrackJoinBlocks", - level: 4, - type: "m", - minver: 3, - webm: !1, - description: "Contains the list of all tracks whose Blocks need to be combined to create this virtual track" - }, - 230: { - name: "TrackPlaneType", - level: 6, - type: "u", - mandatory: !0, - minver: 3, - webm: !1, - description: "The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background)." - }, - 229: { - name: "TrackPlaneUID", - level: 6, - type: "u", - mandatory: !0, - minver: 3, - webm: !1, - range: "not 0", - description: "The trackUID number of the track representing the plane." - }, - 228: { - name: "TrackPlane", - level: 5, - type: "m", - mandatory: !0, - multiple: !0, - minver: 3, - webm: !1, - description: "Contains a video plane track that need to be combined to create this 3D track" - }, - 227: { - name: "TrackCombinePlanes", - level: 4, - type: "m", - minver: 3, - webm: !1, - description: "Contains the list of all video plane tracks that need to be combined to create this 3D track" - }, - 226: { - name: "TrackOperation", - level: 3, - type: "m", - minver: 3, - webm: !1, - description: "Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject." - }, - 32123: { - name: "ChannelPositions", - cppname: "AudioPosition", - level: 4, - type: "b", - webm: !1, - description: "Table of horizontal angles for each successive channel, see appendix." - }, - 159: { - name: "Channels", - cppname: "AudioChannels", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - default: 1, - range: "not 0", - description: "Numbers of channels in the track." - }, - 30901: { - name: "OutputSamplingFrequency", - cppname: "AudioOutputSamplingFreq", - level: 4, - type: "f", - minver: 1, - default: "Sampling Frequency", - range: "> 0", - description: "Real output sampling frequency in Hz (used for SBR techniques)." - }, - 181: { - name: "SamplingFrequency", - cppname: "AudioSamplingFreq", - level: 4, - type: "f", - mandatory: !0, - minver: 1, - default: 8e3, - range: "> 0", - description: "Sampling frequency in Hz." - }, - 225: { - name: "Audio", - cppname: "TrackAudio", - level: 3, - type: "m", - minver: 1, - description: "Audio settings." - }, - 2327523: { - name: "FrameRate", - cppname: "VideoFrameRate", - level: 4, - type: "f", - range: "> 0", - strong: "Informational", - description: "Number of frames per second. only." - }, - 3126563: { - name: "GammaValue", - cppname: "VideoGamma", - level: 4, - type: "f", - webm: !1, - range: "> 0", - description: "Gamma Value." - }, - 3061028: { - name: "ColourSpace", - cppname: "VideoColourSpace", - level: 4, - type: "b", - minver: 1, - webm: !1, - bytesize: 4, - description: "Same value as in AVI (32 bits)." - }, - 21683: { - name: "AspectRatioType", - cppname: "VideoAspectRatio", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed)." - }, - 21682: { - name: "DisplayUnit", - cppname: "VideoDisplayUnit", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio)." - }, - 21690: { - name: "DisplayHeight", - cppname: "VideoDisplayHeight", - level: 4, - type: "u", - minver: 1, - default: "PixelHeight", - range: "not 0", - description: "Height of the video frames to display. The default value is only valid when DisplayUnit is 0." - }, - 21680: { - name: "DisplayWidth", - cppname: "VideoDisplayWidth", - level: 4, - type: "u", - minver: 1, - default: "PixelWidth", - range: "not 0", - description: "Width of the video frames to display. The default value is only valid when DisplayUnit is 0." - }, - 21725: { - name: "PixelCropRight", - cppname: "VideoPixelCropRight", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "The number of video pixels to remove on the right of the image." - }, - 21708: { - name: "PixelCropLeft", - cppname: "VideoPixelCropLeft", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "The number of video pixels to remove on the left of the image." - }, - 21691: { - name: "PixelCropTop", - cppname: "VideoPixelCropTop", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "The number of video pixels to remove at the top of the image." - }, - 21674: { - name: "PixelCropBottom", - cppname: "VideoPixelCropBottom", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "The number of video pixels to remove at the bottom of the image (for HDTV content)." - }, - 186: { - name: "PixelHeight", - cppname: "VideoPixelHeight", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "Height of the encoded video frames in pixels." - }, - 176: { - name: "PixelWidth", - cppname: "VideoPixelWidth", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "Width of the encoded video frames in pixels." - }, - 21433: { - name: "OldStereoMode", - level: 4, - type: "u", - maxver: "0", - webm: !1, - divx: !1, - description: "DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes)." - }, - 21440: { - name: "AlphaMode", - cppname: "VideoAlphaMode", - level: 4, - type: "u", - minver: 3, - webm: !0, - default: 0, - description: "Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data." - }, - 21432: { - name: "StereoMode", - cppname: "VideoStereoMode", - level: 4, - type: "u", - minver: 3, - webm: !0, - default: 0, - description: "Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes." - }, - 154: { - name: "FlagInterlaced", - cppname: "VideoFlagInterlaced", - level: 4, - type: "u", - mandatory: !0, - minver: 2, - webm: !0, - default: 0, - range: "0-1", - description: "Set if the video is interlaced. (1 bit)" - }, - 224: { - name: "Video", - cppname: "TrackVideo", - level: 3, - type: "m", - minver: 1, - description: "Video settings." - }, - 26277: { - name: "TrackTranslateTrackID", - level: 4, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used." - }, - 26303: { - name: "TrackTranslateCodec", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - description: "The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)." - }, - 26364: { - name: "TrackTranslateEditionUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - description: "Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment." - }, - 22203: { - name: "SeekPreRoll", - level: 3, - type: "u", - mandatory: !0, - multiple: !1, - default: 0, - minver: 4, - webm: !0, - description: "After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid." - }, - 22186: { - name: "CodecDelay", - level: 3, - type: "u", - multiple: !1, - default: 0, - minver: 4, - webm: !0, - description: "CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster." - }, - 28587: { - name: "TrackOverlay", - level: 3, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - description: "Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc." - }, - 170: { - name: "CodecDecodeAll", - level: 3, - type: "u", - mandatory: !0, - minver: 2, - webm: !1, - default: 1, - range: "0-1", - description: "The codec can decode potentially damaged data (1 bit)." - }, - 2536e3: { - name: "CodecDownloadURL", - level: 3, - type: "s", - multiple: !0, - webm: !1, - description: "A URL to download about the codec used." - }, - 3883072: { - name: "CodecInfoURL", - level: 3, - type: "s", - multiple: !0, - webm: !1, - description: "A URL to find information about the codec used." - }, - 3839639: { - name: "CodecSettings", - level: 3, - type: "8", - webm: !1, - description: "A string describing the encoding setting used." - }, - 25506: { - name: "CodecPrivate", - level: 3, - type: "b", - minver: 1, - description: "Private data only known to the codec." - }, - 2274716: { - name: "Language", - cppname: "TrackLanguage", - level: 3, - type: "s", - minver: 1, - default: "eng", - description: "Specifies the language of the track in the Matroska languages form." - }, - 21358: { - name: "Name", - cppname: "TrackName", - level: 3, - type: "8", - minver: 1, - description: "A human-readable track name." - }, - 21998: { - name: "MaxBlockAdditionID", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "The maximum value of BlockAdditions for this track." - }, - 21375: { - name: "TrackOffset", - level: 3, - type: "i", - webm: !1, - default: 0, - description: "A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track." - }, - 2306383: { - name: "TrackTimecodeScale", - level: 3, - type: "f", - mandatory: !0, - minver: 1, - maxver: "3", - webm: !1, - default: 1, - range: "> 0", - description: "DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs)." - }, - 2313850: { - name: "DefaultDecodedFieldDuration", - cppname: "TrackDefaultDecodedFieldDuration", - level: 3, - type: "u", - minver: 4, - range: "not 0", - description: "The period in nanoseconds (not scaled by TimcodeScale)\nbetween two successive fields at the output of the decoding process (see the notes)" - }, - 2352003: { - name: "DefaultDuration", - cppname: "TrackDefaultDuration", - level: 3, - type: "u", - minver: 1, - range: "not 0", - description: "Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block)." - }, - 28152: { - name: "MaxCache", - cppname: "TrackMaxCache", - level: 3, - type: "u", - minver: 1, - webm: !1, - description: "The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed." - }, - 28135: { - name: "MinCache", - cppname: "TrackMinCache", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used." - }, - 156: { - name: "FlagLacing", - cppname: "TrackFlagLacing", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - default: 1, - range: "0-1", - description: "Set if the track may contain blocks using lacing. (1 bit)" - }, - 21930: { - name: "FlagForced", - cppname: "TrackFlagForced", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - default: 0, - range: "0-1", - description: "Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)" - }, - 185: { - name: "FlagEnabled", - cppname: "TrackFlagEnabled", - level: 3, - type: "u", - mandatory: !0, - minver: 2, - webm: !0, - default: 1, - range: "0-1", - description: "Set if the track is usable. (1 bit)" - }, - 29637: { - name: "TrackUID", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file." - }, - 215: { - name: "TrackNumber", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number)." - }, - 174: { - name: "TrackEntry", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Describes a track with all elements." - }, - 374648427: { - name: "Tracks", - level: 1, - type: "m", - multiple: !0, - minver: 1, - description: "A top-level block of information with many tracks described." - }, - 175: { - name: "EncryptedBlock", - level: 2, - type: "b", - multiple: !0, - webm: !1, - description: "Similar to EncryptedBlock Structure)" - }, - 202: { - name: "ReferenceTimeCode", - level: 4, - type: "u", - multiple: !1, - mandatory: !0, - minver: 0, - webm: !1, - divx: !0, - description: "DivX trick track extenstions" - }, - 201: { - name: "ReferenceOffset", - level: 4, - type: "u", - multiple: !1, - mandatory: !0, - minver: 0, - webm: !1, - divx: !0, - description: "DivX trick track extenstions" - }, - 200: { - name: "ReferenceFrame", - level: 3, - type: "m", - multiple: !1, - minver: 0, - webm: !1, - divx: !0, - description: "DivX trick track extenstions" - }, - 207: { - name: "SliceDuration", - level: 5, - type: "u", - default: 0, - description: "The (scaled) duration to apply to the element." - }, - 206: { - name: "Delay", - cppname: "SliceDelay", - level: 5, - type: "u", - default: 0, - description: "The (scaled) delay to apply to the element." - }, - 203: { - name: "BlockAdditionID", - cppname: "SliceBlockAddID", - level: 5, - type: "u", - default: 0, - description: "The ID of the BlockAdditional element (0 is the main Block)." - }, - 205: { - name: "FrameNumber", - cppname: "SliceFrameNumber", - level: 5, - type: "u", - default: 0, - description: "The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame)." - }, - 204: { - name: "LaceNumber", - cppname: "SliceLaceNumber", - level: 5, - type: "u", - minver: 1, - default: 0, - divx: !1, - description: "The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback." - }, - 232: { - name: "TimeSlice", - level: 4, - type: "m", - multiple: !0, - minver: 1, - divx: !1, - description: "Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback." - }, - 142: { - name: "Slices", - level: 3, - type: "m", - minver: 1, - divx: !1, - description: "Contains slices description." - }, - 30114: { - name: "DiscardPadding", - level: 3, - type: "i", - minver: 4, - webm: !0, - description: "Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback." - }, - 164: { - name: "CodecState", - level: 3, - type: "b", - minver: 2, - webm: !1, - description: "The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry." - }, - 253: { - name: "ReferenceVirtual", - level: 3, - type: "i", - webm: !1, - description: "Relative position of the data that should be in position of the virtual block." - }, - 251: { - name: "ReferenceBlock", - level: 3, - type: "i", - multiple: !0, - minver: 1, - description: "Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to." - }, - 250: { - name: "ReferencePriority", - cppname: "FlagReferenced", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced." - }, - 155: { - name: "BlockDuration", - level: 3, - type: "u", - minver: 1, - default: "TrackDuration", - description: 'The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in "display" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.' - }, - 165: { - name: "BlockAdditional", - level: 5, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "Interpreted by the codec as it wishes (using the BlockAddID)." - }, - 238: { - name: "BlockAddID", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 1, - range: "not 0", - description: "An ID to identify the BlockAdditional level." - }, - 166: { - name: "BlockMore", - level: 4, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "Contain the BlockAdditional and some parameters." - }, - 30113: { - name: "BlockAdditions", - level: 3, - type: "m", - minver: 1, - webm: !1, - description: "Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data." - }, - 162: { - name: "BlockVirtual", - level: 3, - type: "b", - webm: !1, - description: "A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)" - }, - 161: { - name: "Block", - level: 3, - type: "b", - mandatory: !0, - minver: 1, - description: "Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)" - }, - 160: { - name: "BlockGroup", - level: 2, - type: "m", - multiple: !0, - minver: 1, - description: "Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock." - }, - 163: { - name: "SimpleBlock", - level: 2, - type: "b", - multiple: !0, - minver: 2, - webm: !0, - divx: !0, - description: "Similar to SimpleBlock Structure" - }, - 171: { - name: "PrevSize", - cppname: "ClusterPrevSize", - level: 2, - type: "u", - minver: 1, - description: "Size of the previous Cluster, in octets. Can be useful for backward playing.", - position: "prevCluster" - }, - 167: { - name: "Position", - cppname: "ClusterPosition", - level: 2, - type: "u", - minver: 1, - webm: !1, - description: "The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.", - position: "segment" - }, - 22743: { - name: "SilentTrackNumber", - cppname: "ClusterSilentTrackNumber", - level: 3, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - description: "One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster." - }, - 231: { - name: "Timecode", - cppname: "ClusterTimecode", - level: 2, - type: "u", - mandatory: !0, - minver: 1, - description: "Absolute timestamp of the cluster (based on TimecodeScale)." - }, - 524531317: { - name: "Cluster", - level: 1, - type: "m", - multiple: !0, - minver: 1, - description: "The lower level element containing the (monolithic) Block structure." - }, - 19840: { - name: "MuxingApp", - level: 2, - type: "8", - mandatory: !0, - minver: 1, - description: 'Muxing application or library ("libmatroska-0.4.3").' - }, - 31657: { - name: "Title", - level: 2, - type: "8", - minver: 1, - webm: !1, - description: "General name of the segment." - }, - 2807730: { - name: "TimecodeScaleDenominator", - level: 2, - type: "u", - mandatory: !0, - minver: 4, - default: "1000000000", - description: "Timestamp scale numerator, see TimecodeScale." - }, - 2807729: { - name: "TimecodeScale", - level: 2, - type: "u", - mandatory: !0, - minver: 1, - default: "1000000", - description: "Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds)." - }, - 27045: { - name: "ChapterTranslateID", - level: 3, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used." - }, - 27071: { - name: "ChapterTranslateCodec", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - description: "The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)." - }, - 27132: { - name: "ChapterTranslateEditionUID", - level: 3, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - description: "Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment." - }, - 4096955: { - name: "NextFilename", - level: 2, - type: "8", - minver: 1, - webm: !1, - description: "An escaped filename corresponding to the next segment." - }, - 4110627: { - name: "NextUID", - level: 2, - type: "b", - minver: 1, - webm: !1, - bytesize: 16, - description: "A unique ID to identify the next chained segment (128 bits)." - }, - 3965867: { - name: "PrevFilename", - level: 2, - type: "8", - minver: 1, - webm: !1, - description: "An escaped filename corresponding to the previous segment." - }, - 3979555: { - name: "PrevUID", - level: 2, - type: "b", - minver: 1, - webm: !1, - bytesize: 16, - description: "A unique ID to identify the previous chained segment (128 bits)." - }, - 29604: { - name: "SegmentUID", - level: 2, - type: "b", - minver: 1, - webm: !1, - range: "not 0", - bytesize: 16, - description: "A randomly generated unique ID to identify the current segment between many others (128 bits)." - }, - 357149030: { - name: "Info", - level: 1, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Contains miscellaneous general information and statistics on the file." - }, - 21420: { - name: "SeekPosition", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - description: "The position of the element in the segment in octets (0 = first level 1 element).", - position: "segment" - }, - 21419: { - name: "SeekID", - level: 3, - type: "b", - mandatory: !0, - minver: 1, - description: "The binary ID corresponding to the element name.", - type2: "ebmlID" - }, - 19899: { - name: "Seek", - cppname: "SeekPoint", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Contains a single seek entry to an EBML element." - }, - 290298740: { - name: "SeekHead", - cppname: "SeekHeader", - level: 1, - type: "m", - multiple: !0, - minver: 1, - description: "Contains the position of other level 1 elements." - }, - 32379: { - name: "SignatureElementList", - level: 2, - type: "m", - multiple: !0, - webm: !1, - i: "Cluster|Block|BlockAdditional", - description: "A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption." - }, - 32347: { - name: "SignatureElements", - level: 1, - type: "m", - webm: !1, - description: "Contains elements that will be used to compute the signature." - }, - 32437: { - name: "Signature", - level: 1, - type: "b", - webm: !1, - description: "The signature of the data (until a new." - }, - 32421: { - name: "SignaturePublicKey", - level: 1, - type: "b", - webm: !1, - description: "The public key to use with the algorithm (in the case of a PKI-based signature)." - }, - 32410: { - name: "SignatureHash", - level: 1, - type: "u", - webm: !1, - description: "Hash algorithm used (1=SHA1-160, 2=MD5)." - }, - 32394: { - name: "SignatureAlgo", - level: 1, - type: "u", - webm: !1, - description: "Signature algorithm used (1=RSA, 2=elliptic)." - }, - 458458727: { - name: "SignatureSlot", - level: -1, - type: "m", - multiple: !0, - webm: !1, - description: "Contain signature of some (coming) elements in the stream." - }, - 191: { - name: "CRC-32", - level: -1, - type: "b", - minver: 1, - webm: !1, - description: "The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian", - crc: !0 - }, - 236: { - name: "Void", - level: -1, - type: "b", - minver: 1, - description: "Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use." - }, - 17139: { - name: "EBMLMaxSizeLength", - level: 1, - type: "u", - mandatory: !0, - default: 8, - minver: 1, - description: "The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid." - }, - 17138: { - name: "EBMLMaxIDLength", - level: 1, - type: "u", - mandatory: !0, - default: 4, - minver: 1, - description: "The maximum length of the IDs you'll find in this file (4 or less in Matroska)." - }, - 17143: { - name: "EBMLReadVersion", - level: 1, - type: "u", - mandatory: !0, - default: 1, - minver: 1, - description: "The minimum EBML version a parser has to support to read this file." - }, - 440786851: { - name: "EBML", - level: "0", - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Set the EBML characteristics of the data to follow. Each EBML document has to start with this." - } - }, byName = {}, schema = { - byEbmlID: byEbmlID, - byName: byName - }; - for (var ebmlID in byEbmlID) byName[byEbmlID[ebmlID].name.replace("-", "_")] = parseInt(ebmlID, 10); - module.exports = schema; -}, function(module, exports, __webpack_require__) { - "use strict"; - var byEbmlID = { - 128: { - name: "ChapterDisplay", - level: 4, - type: "m", - multiple: !0, - minver: 1, - webm: !0, - description: "Contains all possible strings to use for the chapter display." - }, - 131: { - name: "TrackType", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - range: "1-254", - description: "A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control)." - }, - 133: { - name: "ChapString", - cppname: "ChapterString", - level: 5, - type: "8", - mandatory: !0, - minver: 1, - webm: !0, - description: "Contains the string to use as the chapter atom." - }, - 134: { - name: "CodecID", - level: 3, - type: "s", - mandatory: !0, - minver: 1, - description: "An ID corresponding to the codec, see the codec page for more info." - }, - 136: { - name: "FlagDefault", - cppname: "TrackFlagDefault", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - default: 1, - range: "0-1", - description: "Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)" - }, - 137: { - name: "ChapterTrackNumber", - level: 5, - type: "u", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - range: "not 0", - description: "UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks." - }, - 145: { - name: "ChapterTimeStart", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !0, - description: "Timestamp of the start of Chapter (not scaled)." - }, - 146: { - name: "ChapterTimeEnd", - level: 4, - type: "u", - minver: 1, - webm: !1, - description: "Timestamp of the end of Chapter (timestamp excluded, not scaled)." - }, - 150: { - name: "CueRefTime", - level: 5, - type: "u", - mandatory: !0, - minver: 2, - webm: !1, - description: "Timestamp of the referenced Block." - }, - 151: { - name: "CueRefCluster", - level: 5, - type: "u", - mandatory: !0, - webm: !1, - description: "The Position of the Cluster containing the referenced Block." - }, - 152: { - name: "ChapterFlagHidden", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - range: "0-1", - description: "If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)" - }, - 16980: { - name: "ContentCompAlgo", - level: 6, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping" - }, - 16981: { - name: "ContentCompSettings", - level: 6, - type: "b", - minver: 1, - webm: !1, - description: "Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track." - }, - 17026: { - name: "DocType", - level: 1, - type: "s", - mandatory: !0, - default: "matroska", - minver: 1, - description: "A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files." - }, - 17029: { - name: "DocTypeReadVersion", - level: 1, - type: "u", - mandatory: !0, - default: 1, - minver: 1, - description: "The minimum DocType version an interpreter has to support to read this file." - }, - 17030: { - name: "EBMLVersion", - level: 1, - type: "u", - mandatory: !0, - default: 1, - minver: 1, - description: "The version of EBML parser used to create the file." - }, - 17031: { - name: "DocTypeVersion", - level: 1, - type: "u", - mandatory: !0, - default: 1, - minver: 1, - description: "The version of DocType interpreter used to create the file." - }, - 17476: { - name: "SegmentFamily", - level: 2, - type: "b", - multiple: !0, - minver: 1, - webm: !1, - bytesize: 16, - description: "A randomly generated unique ID that all segments related to each other must use (128 bits)." - }, - 17505: { - name: "DateUTC", - level: 2, - type: "d", - minver: 1, - description: "Date of the origin of timestamp (value 0), i.e. production date." - }, - 17540: { - name: "TagDefault", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 1, - range: "0-1", - description: "Indication to know if this is the default/original language to use for the given tag. (1 bit)" - }, - 17541: { - name: "TagBinary", - level: 4, - type: "b", - minver: 1, - webm: !1, - description: "The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString." - }, - 17543: { - name: "TagString", - level: 4, - type: "8", - minver: 1, - webm: !1, - description: "The value of the Element." - }, - 17545: { - name: "Duration", - level: 2, - type: "f", - minver: 1, - range: "> 0", - description: "Duration of the segment (based on TimecodeScale)." - }, - 17816: { - name: "ChapterFlagEnabled", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 1, - range: "0-1", - description: "Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)" - }, - 18016: { - name: "FileMimeType", - level: 3, - type: "s", - mandatory: !0, - minver: 1, - webm: !1, - description: "MIME type of the file." - }, - 18017: { - name: "FileUsedStartTime", - level: 3, - type: "u", - divx: !0, - description: "DivX font extension" - }, - 18018: { - name: "FileUsedEndTime", - level: 3, - type: "u", - divx: !0, - description: "DivX font extension" - }, - 18037: { - name: "FileReferral", - level: 3, - type: "b", - webm: !1, - description: "A binary value that a track/codec can refer to when the attachment is needed." - }, - 20529: { - name: "ContentEncodingOrder", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment." - }, - 20530: { - name: "ContentEncodingScope", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 1, - range: "not 0", - description: "A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)" - }, - 20531: { - name: "ContentEncodingType", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption" - }, - 20532: { - name: "ContentCompression", - level: 5, - type: "m", - minver: 1, - webm: !1, - description: "Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking." - }, - 20533: { - name: "ContentEncryption", - level: 5, - type: "m", - minver: 1, - webm: !1, - description: "Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise." - }, - 21368: { - name: "CueBlockNumber", - level: 4, - type: "u", - minver: 1, - default: 1, - range: "not 0", - description: "Number of the Block in the specified Cluster." - }, - 22100: { - name: "ChapterStringUID", - level: 4, - type: "8", - mandatory: !1, - minver: 3, - webm: !0, - description: "A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage." - }, - 22337: { - name: "WritingApp", - level: 2, - type: "8", - mandatory: !0, - minver: 1, - description: 'Writing application ("mkvmerge-0.3.3").' - }, - 22612: { - name: "SilentTracks", - cppname: "ClusterSilentTracks", - level: 2, - type: "m", - minver: 1, - webm: !1, - description: "The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use." - }, - 25152: { - name: "ContentEncoding", - level: 4, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "Settings for one content encoding like compression or encryption." - }, - 25188: { - name: "BitDepth", - cppname: "AudioBitDepth", - level: 4, - type: "u", - minver: 1, - range: "not 0", - description: "Bits per sample, mostly used for PCM." - }, - 25906: { - name: "SignedElement", - level: 3, - type: "b", - multiple: !0, - webm: !1, - description: "An element ID whose data will be used to compute the signature." - }, - 26148: { - name: "TrackTranslate", - level: 3, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "The track identification for the given Chapter Codec." - }, - 26897: { - name: "ChapProcessCommand", - cppname: "ChapterProcessCommand", - level: 5, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "Contains all the commands associated to the Atom." - }, - 26914: { - name: "ChapProcessTime", - cppname: "ChapterProcessTime", - level: 6, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - description: "Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter)." - }, - 26916: { - name: "ChapterTranslate", - level: 2, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "A tuple of corresponding ID used by chapter codecs to represent this segment." - }, - 26931: { - name: "ChapProcessData", - cppname: "ChapterProcessData", - level: 6, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands." - }, - 26948: { - name: "ChapProcess", - cppname: "ChapterProcess", - level: 4, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "Contains all the commands associated to the Atom." - }, - 26965: { - name: "ChapProcessCodecID", - cppname: "ChapterProcessCodecID", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later." - }, - 29555: { - name: "Tag", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "Element containing elements specific to Tracks/Chapters." - }, - 29572: { - name: "SegmentFilename", - level: 2, - type: "8", - minver: 1, - webm: !1, - description: "A filename corresponding to this segment." - }, - 29766: { - name: "AttachmentLink", - cppname: "TrackAttachmentLink", - level: 3, - type: "u", - minver: 1, - webm: !1, - range: "not 0", - description: "The UID of an attachment that is used by this codec." - }, - 2459272: { - name: "CodecName", - level: 3, - type: "8", - minver: 1, - description: "A human-readable string specifying the codec." - }, - 408125543: { - name: "Segment", - level: "0", - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment." - }, - 17530: { - name: "TagLanguage", - level: 4, - type: "s", - mandatory: !0, - minver: 1, - webm: !1, - default: "und", - description: "Specifies the language of the tag specified, in the Matroska languages form." - }, - 17827: { - name: "TagName", - level: 4, - type: "8", - mandatory: !0, - minver: 1, - webm: !1, - description: "The name of the Tag that is going to be stored." - }, - 26568: { - name: "SimpleTag", - cppname: "TagSimple", - level: 3, - recursive: "1", - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "Contains general information about the target." - }, - 25542: { - name: "TagAttachmentUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - default: 0, - description: "A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment." - }, - 25540: { - name: "TagChapterUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - default: 0, - description: "A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment." - }, - 25545: { - name: "TagEditionUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - default: 0, - description: "A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment." - }, - 25541: { - name: "TagTrackUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - default: 0, - description: "A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment." - }, - 25546: { - name: "TargetType", - cppname: "TagTargetType", - level: 4, - type: "s", - minver: 1, - webm: !1, - strong: "informational", - description: 'An string that can be used to display the logical level of the target like "ALBUM", "TRACK", "MOVIE", "CHAPTER", etc (see TargetType).' - }, - 26826: { - name: "TargetTypeValue", - cppname: "TagTargetTypeValue", - level: 4, - type: "u", - minver: 1, - webm: !1, - default: 50, - description: "A number to indicate the logical level of the target (see TargetType)." - }, - 25536: { - name: "Targets", - cppname: "TagTargets", - level: 3, - type: "m", - mandatory: !0, - minver: 1, - webm: !1, - description: "Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment." - }, - 307544935: { - name: "Tags", - level: 1, - type: "m", - multiple: !0, - minver: 1, - webm: !1, - description: "Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here." - }, - 17677: { - name: "ChapProcessPrivate", - cppname: "ChapterProcessPrivate", - level: 5, - type: "b", - minver: 1, - webm: !1, - description: 'Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the "DVD level" equivalent.' - }, - 17278: { - name: "ChapCountry", - cppname: "ChapterCountry", - level: 5, - type: "s", - multiple: !0, - minver: 1, - webm: !1, - description: "The countries corresponding to the string, same 2 octets as in Internet domains." - }, - 17276: { - name: "ChapLanguage", - cppname: "ChapterLanguage", - level: 5, - type: "s", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !0, - default: "eng", - description: "The languages corresponding to the string, in the bibliographic ISO-639-2 form." - }, - 143: { - name: "ChapterTrack", - level: 4, - type: "m", - minver: 1, - webm: !1, - description: "List of tracks on which the chapter applies. If this element is not present, all tracks apply" - }, - 25539: { - name: "ChapterPhysicalEquiv", - level: 4, - type: "u", - minver: 1, - webm: !1, - description: 'Specify the physical equivalent of this ChapterAtom like "DVD" (60) or "SIDE" (50), see complete list of values.' - }, - 28348: { - name: "ChapterSegmentEditionUID", - level: 4, - type: "u", - minver: 1, - webm: !1, - range: "not 0", - description: "The EditionUID to play from the segment linked in ChapterSegmentUID." - }, - 28263: { - name: "ChapterSegmentUID", - level: 4, - type: "b", - minver: 1, - webm: !1, - range: ">0", - bytesize: 16, - description: "A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used." - }, - 29636: { - name: "ChapterUID", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !0, - range: "not 0", - description: "A unique ID to identify the Chapter." - }, - 182: { - name: "ChapterAtom", - level: 3, - recursive: "1", - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !0, - description: "Contains the atom information to use as the chapter atom (apply to all tracks)." - }, - 17885: { - name: "EditionFlagOrdered", - level: 3, - type: "u", - minver: 1, - webm: !1, - default: 0, - range: "0-1", - description: "Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)" - }, - 17883: { - name: "EditionFlagDefault", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - range: "0-1", - description: "If a flag is set (1) the edition should be used as the default one. (1 bit)" - }, - 17853: { - name: "EditionFlagHidden", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - range: "0-1", - description: "If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)" - }, - 17852: { - name: "EditionUID", - level: 3, - type: "u", - minver: 1, - webm: !1, - range: "not 0", - description: "A unique ID to identify the edition. It's useful for tagging an edition." - }, - 17849: { - name: "EditionEntry", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !0, - description: "Contains all information about a segment edition." - }, - 272869232: { - name: "Chapters", - level: 1, - type: "m", - minver: 1, - webm: !0, - description: "A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation." - }, - 18094: { - name: "FileUID", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - range: "not 0", - description: "Unique ID representing the file, as random as possible." - }, - 18012: { - name: "FileData", - level: 3, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "The data of the file." - }, - 18030: { - name: "FileName", - level: 3, - type: "8", - mandatory: !0, - minver: 1, - webm: !1, - description: "Filename of the attached file." - }, - 18046: { - name: "FileDescription", - level: 3, - type: "8", - minver: 1, - webm: !1, - description: "A human-friendly name for the attached file." - }, - 24999: { - name: "AttachedFile", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "An attached file." - }, - 423732329: { - name: "Attachments", - level: 1, - type: "m", - minver: 1, - webm: !1, - description: "Contain attached files." - }, - 235: { - name: "CueRefCodecState", - level: 5, - type: "u", - webm: !1, - default: 0, - description: "The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry." - }, - 21343: { - name: "CueRefNumber", - level: 5, - type: "u", - webm: !1, - default: 1, - range: "not 0", - description: "Number of the referenced Block of Track X in the specified Cluster." - }, - 219: { - name: "CueReference", - level: 4, - type: "m", - multiple: !0, - minver: 2, - webm: !1, - description: "The Clusters containing the required referenced Blocks." - }, - 234: { - name: "CueCodecState", - level: 4, - type: "u", - minver: 2, - webm: !1, - default: 0, - description: "The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry." - }, - 178: { - name: "CueDuration", - level: 4, - type: "u", - mandatory: !1, - minver: 4, - webm: !1, - description: "The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues." - }, - 240: { - name: "CueRelativePosition", - level: 4, - type: "u", - mandatory: !1, - minver: 4, - webm: !1, - description: "The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.", - position: "clusterRelative" - }, - 241: { - name: "CueClusterPosition", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - description: "The position of the Cluster containing the required Block.", - position: "segment" - }, - 247: { - name: "CueTrack", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "The track for which a position is given." - }, - 183: { - name: "CueTrackPositions", - level: 3, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Contain positions for different tracks corresponding to the timestamp." - }, - 179: { - name: "CueTime", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - description: "Absolute timestamp according to the segment time base." - }, - 187: { - name: "CuePoint", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Contains all information relative to a seek point in the segment." - }, - 475249515: { - name: "Cues", - level: 1, - type: "m", - minver: 1, - description: 'A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non "live" streams.' - }, - 18406: { - name: "ContentSigHashAlgo", - level: 6, - type: "u", - minver: 1, - webm: !1, - default: 0, - description: "The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5" - }, - 18405: { - name: "ContentSigAlgo", - level: 6, - type: "u", - minver: 1, - webm: !1, - default: 0, - description: "The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA" - }, - 18404: { - name: "ContentSigKeyID", - level: 6, - type: "b", - minver: 1, - webm: !1, - description: "This is the ID of the private key the data was signed with." - }, - 18403: { - name: "ContentSignature", - level: 6, - type: "b", - minver: 1, - webm: !1, - description: "A cryptographic signature of the contents." - }, - 18402: { - name: "ContentEncKeyID", - level: 6, - type: "b", - minver: 1, - webm: !1, - description: "For public key algorithms this is the ID of the public key the the data was encrypted with." - }, - 18401: { - name: "ContentEncAlgo", - level: 6, - type: "u", - minver: 1, - webm: !1, - default: 0, - description: "The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES" - }, - 28032: { - name: "ContentEncodings", - level: 3, - type: "m", - minver: 1, - webm: !1, - description: "Settings for several content encoding mechanisms like compression or encryption." - }, - 196: { - name: "TrickMasterTrackSegmentUID", - level: 3, - type: "b", - divx: !0, - bytesize: 16, - description: "DivX trick track extenstions" - }, - 199: { - name: "TrickMasterTrackUID", - level: 3, - type: "u", - divx: !0, - description: "DivX trick track extenstions" - }, - 198: { - name: "TrickTrackFlag", - level: 3, - type: "u", - divx: !0, - default: 0, - description: "DivX trick track extenstions" - }, - 193: { - name: "TrickTrackSegmentUID", - level: 3, - type: "b", - divx: !0, - bytesize: 16, - description: "DivX trick track extenstions" - }, - 192: { - name: "TrickTrackUID", - level: 3, - type: "u", - divx: !0, - description: "DivX trick track extenstions" - }, - 237: { - name: "TrackJoinUID", - level: 5, - type: "u", - mandatory: !0, - multiple: !0, - minver: 3, - webm: !1, - range: "not 0", - description: "The trackUID number of a track whose blocks are used to create this virtual track." - }, - 233: { - name: "TrackJoinBlocks", - level: 4, - type: "m", - minver: 3, - webm: !1, - description: "Contains the list of all tracks whose Blocks need to be combined to create this virtual track" - }, - 230: { - name: "TrackPlaneType", - level: 6, - type: "u", - mandatory: !0, - minver: 3, - webm: !1, - description: "The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background)." - }, - 229: { - name: "TrackPlaneUID", - level: 6, - type: "u", - mandatory: !0, - minver: 3, - webm: !1, - range: "not 0", - description: "The trackUID number of the track representing the plane." - }, - 228: { - name: "TrackPlane", - level: 5, - type: "m", - mandatory: !0, - multiple: !0, - minver: 3, - webm: !1, - description: "Contains a video plane track that need to be combined to create this 3D track" - }, - 227: { - name: "TrackCombinePlanes", - level: 4, - type: "m", - minver: 3, - webm: !1, - description: "Contains the list of all video plane tracks that need to be combined to create this 3D track" - }, - 226: { - name: "TrackOperation", - level: 3, - type: "m", - minver: 3, - webm: !1, - description: "Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject." - }, - 32123: { - name: "ChannelPositions", - cppname: "AudioPosition", - level: 4, - type: "b", - webm: !1, - description: "Table of horizontal angles for each successive channel, see appendix." - }, - 159: { - name: "Channels", - cppname: "AudioChannels", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - default: 1, - range: "not 0", - description: "Numbers of channels in the track." - }, - 30901: { - name: "OutputSamplingFrequency", - cppname: "AudioOutputSamplingFreq", - level: 4, - type: "f", - minver: 1, - default: "Sampling Frequency", - range: "> 0", - description: "Real output sampling frequency in Hz (used for SBR techniques)." - }, - 181: { - name: "SamplingFrequency", - cppname: "AudioSamplingFreq", - level: 4, - type: "f", - mandatory: !0, - minver: 1, - default: 8e3, - range: "> 0", - description: "Sampling frequency in Hz." - }, - 225: { - name: "Audio", - cppname: "TrackAudio", - level: 3, - type: "m", - minver: 1, - description: "Audio settings." - }, - 2327523: { - name: "FrameRate", - cppname: "VideoFrameRate", - level: 4, - type: "f", - range: "> 0", - strong: "Informational", - description: "Number of frames per second. only." - }, - 3126563: { - name: "GammaValue", - cppname: "VideoGamma", - level: 4, - type: "f", - webm: !1, - range: "> 0", - description: "Gamma Value." - }, - 3061028: { - name: "ColourSpace", - cppname: "VideoColourSpace", - level: 4, - type: "b", - minver: 1, - webm: !1, - bytesize: 4, - description: "Same value as in AVI (32 bits)." - }, - 21683: { - name: "AspectRatioType", - cppname: "VideoAspectRatio", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed)." - }, - 21682: { - name: "DisplayUnit", - cppname: "VideoDisplayUnit", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio)." - }, - 21690: { - name: "DisplayHeight", - cppname: "VideoDisplayHeight", - level: 4, - type: "u", - minver: 1, - default: "PixelHeight", - range: "not 0", - description: "Height of the video frames to display. The default value is only valid when DisplayUnit is 0." - }, - 21680: { - name: "DisplayWidth", - cppname: "VideoDisplayWidth", - level: 4, - type: "u", - minver: 1, - default: "PixelWidth", - range: "not 0", - description: "Width of the video frames to display. The default value is only valid when DisplayUnit is 0." - }, - 21725: { - name: "PixelCropRight", - cppname: "VideoPixelCropRight", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "The number of video pixels to remove on the right of the image." - }, - 21708: { - name: "PixelCropLeft", - cppname: "VideoPixelCropLeft", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "The number of video pixels to remove on the left of the image." - }, - 21691: { - name: "PixelCropTop", - cppname: "VideoPixelCropTop", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "The number of video pixels to remove at the top of the image." - }, - 21674: { - name: "PixelCropBottom", - cppname: "VideoPixelCropBottom", - level: 4, - type: "u", - minver: 1, - default: 0, - description: "The number of video pixels to remove at the bottom of the image (for HDTV content)." - }, - 186: { - name: "PixelHeight", - cppname: "VideoPixelHeight", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "Height of the encoded video frames in pixels." - }, - 176: { - name: "PixelWidth", - cppname: "VideoPixelWidth", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "Width of the encoded video frames in pixels." - }, - 21433: { - name: "OldStereoMode", - level: 4, - type: "u", - maxver: "0", - webm: !1, - divx: !1, - description: "DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes)." - }, - 21440: { - name: "AlphaMode", - cppname: "VideoAlphaMode", - level: 4, - type: "u", - minver: 3, - webm: !0, - default: 0, - description: "Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data." - }, - 21432: { - name: "StereoMode", - cppname: "VideoStereoMode", - level: 4, - type: "u", - minver: 3, - webm: !0, - default: 0, - description: "Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes." - }, - 154: { - name: "FlagInterlaced", - cppname: "VideoFlagInterlaced", - level: 4, - type: "u", - mandatory: !0, - minver: 2, - webm: !0, - default: 0, - range: "0-1", - description: "Set if the video is interlaced. (1 bit)" - }, - 224: { - name: "Video", - cppname: "TrackVideo", - level: 3, - type: "m", - minver: 1, - description: "Video settings." - }, - 26277: { - name: "TrackTranslateTrackID", - level: 4, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used." - }, - 26303: { - name: "TrackTranslateCodec", - level: 4, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - description: "The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)." - }, - 26364: { - name: "TrackTranslateEditionUID", - level: 4, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - description: "Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment." - }, - 22203: { - name: "SeekPreRoll", - level: 3, - type: "u", - mandatory: !0, - multiple: !1, - default: 0, - minver: 4, - webm: !0, - description: "After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid." - }, - 22186: { - name: "CodecDelay", - level: 3, - type: "u", - multiple: !1, - default: 0, - minver: 4, - webm: !0, - description: "CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster." - }, - 28587: { - name: "TrackOverlay", - level: 3, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - description: "Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc." - }, - 170: { - name: "CodecDecodeAll", - level: 3, - type: "u", - mandatory: !0, - minver: 2, - webm: !1, - default: 1, - range: "0-1", - description: "The codec can decode potentially damaged data (1 bit)." - }, - 2536e3: { - name: "CodecDownloadURL", - level: 3, - type: "s", - multiple: !0, - webm: !1, - description: "A URL to download about the codec used." - }, - 3883072: { - name: "CodecInfoURL", - level: 3, - type: "s", - multiple: !0, - webm: !1, - description: "A URL to find information about the codec used." - }, - 3839639: { - name: "CodecSettings", - level: 3, - type: "8", - webm: !1, - description: "A string describing the encoding setting used." - }, - 25506: { - name: "CodecPrivate", - level: 3, - type: "b", - minver: 1, - description: "Private data only known to the codec." - }, - 2274716: { - name: "Language", - cppname: "TrackLanguage", - level: 3, - type: "s", - minver: 1, - default: "eng", - description: "Specifies the language of the track in the Matroska languages form." - }, - 21358: { - name: "Name", - cppname: "TrackName", - level: 3, - type: "8", - minver: 1, - description: "A human-readable track name." - }, - 21998: { - name: "MaxBlockAdditionID", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "The maximum value of BlockAdditions for this track." - }, - 21375: { - name: "TrackOffset", - level: 3, - type: "i", - webm: !1, - default: 0, - description: "A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track." - }, - 2306383: { - name: "TrackTimecodeScale", - level: 3, - type: "f", - mandatory: !0, - minver: 1, - maxver: "3", - webm: !1, - default: 1, - range: "> 0", - description: "DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs)." - }, - 2313850: { - name: "DefaultDecodedFieldDuration", - cppname: "TrackDefaultDecodedFieldDuration", - level: 3, - type: "u", - minver: 4, - range: "not 0", - description: "The period in nanoseconds (not scaled by TimcodeScale)\nbetween two successive fields at the output of the decoding process (see the notes)" - }, - 2352003: { - name: "DefaultDuration", - cppname: "TrackDefaultDuration", - level: 3, - type: "u", - minver: 1, - range: "not 0", - description: "Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block)." - }, - 28152: { - name: "MaxCache", - cppname: "TrackMaxCache", - level: 3, - type: "u", - minver: 1, - webm: !1, - description: "The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed." - }, - 28135: { - name: "MinCache", - cppname: "TrackMinCache", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used." - }, - 156: { - name: "FlagLacing", - cppname: "TrackFlagLacing", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - default: 1, - range: "0-1", - description: "Set if the track may contain blocks using lacing. (1 bit)" - }, - 21930: { - name: "FlagForced", - cppname: "TrackFlagForced", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - default: 0, - range: "0-1", - description: "Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)" - }, - 185: { - name: "FlagEnabled", - cppname: "TrackFlagEnabled", - level: 3, - type: "u", - mandatory: !0, - minver: 2, - webm: !0, - default: 1, - range: "0-1", - description: "Set if the track is usable. (1 bit)" - }, - 29637: { - name: "TrackUID", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file." - }, - 215: { - name: "TrackNumber", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - range: "not 0", - description: "The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number)." - }, - 174: { - name: "TrackEntry", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Describes a track with all elements." - }, - 374648427: { - name: "Tracks", - level: 1, - type: "m", - multiple: !0, - minver: 1, - description: "A top-level block of information with many tracks described." - }, - 175: { - name: "EncryptedBlock", - level: 2, - type: "b", - multiple: !0, - webm: !1, - description: "Similar to EncryptedBlock Structure)" - }, - 202: { - name: "ReferenceTimeCode", - level: 4, - type: "u", - multiple: !1, - mandatory: !0, - minver: 0, - webm: !1, - divx: !0, - description: "DivX trick track extenstions" - }, - 201: { - name: "ReferenceOffset", - level: 4, - type: "u", - multiple: !1, - mandatory: !0, - minver: 0, - webm: !1, - divx: !0, - description: "DivX trick track extenstions" - }, - 200: { - name: "ReferenceFrame", - level: 3, - type: "m", - multiple: !1, - minver: 0, - webm: !1, - divx: !0, - description: "DivX trick track extenstions" - }, - 207: { - name: "SliceDuration", - level: 5, - type: "u", - default: 0, - description: "The (scaled) duration to apply to the element." - }, - 206: { - name: "Delay", - cppname: "SliceDelay", - level: 5, - type: "u", - default: 0, - description: "The (scaled) delay to apply to the element." - }, - 203: { - name: "BlockAdditionID", - cppname: "SliceBlockAddID", - level: 5, - type: "u", - default: 0, - description: "The ID of the BlockAdditional element (0 is the main Block)." - }, - 205: { - name: "FrameNumber", - cppname: "SliceFrameNumber", - level: 5, - type: "u", - default: 0, - description: "The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame)." - }, - 204: { - name: "LaceNumber", - cppname: "SliceLaceNumber", - level: 5, - type: "u", - minver: 1, - default: 0, - divx: !1, - description: "The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback." - }, - 232: { - name: "TimeSlice", - level: 4, - type: "m", - multiple: !0, - minver: 1, - divx: !1, - description: "Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback." - }, - 142: { - name: "Slices", - level: 3, - type: "m", - minver: 1, - divx: !1, - description: "Contains slices description." - }, - 30114: { - name: "DiscardPadding", - level: 3, - type: "i", - minver: 4, - webm: !0, - description: "Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback." - }, - 164: { - name: "CodecState", - level: 3, - type: "b", - minver: 2, - webm: !1, - description: "The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry." - }, - 253: { - name: "ReferenceVirtual", - level: 3, - type: "i", - webm: !1, - description: "Relative position of the data that should be in position of the virtual block." - }, - 251: { - name: "ReferenceBlock", - level: 3, - type: "i", - multiple: !0, - minver: 1, - description: "Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to." - }, - 250: { - name: "ReferencePriority", - cppname: "FlagReferenced", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 0, - description: "This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced." - }, - 155: { - name: "BlockDuration", - level: 3, - type: "u", - minver: 1, - default: "TrackDuration", - description: 'The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in "display" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.' - }, - 165: { - name: "BlockAdditional", - level: 5, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "Interpreted by the codec as it wishes (using the BlockAddID)." - }, - 238: { - name: "BlockAddID", - level: 5, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - default: 1, - range: "not 0", - description: "An ID to identify the BlockAdditional level." - }, - 166: { - name: "BlockMore", - level: 4, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - webm: !1, - description: "Contain the BlockAdditional and some parameters." - }, - 30113: { - name: "BlockAdditions", - level: 3, - type: "m", - minver: 1, - webm: !1, - description: "Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data." - }, - 162: { - name: "BlockVirtual", - level: 3, - type: "b", - webm: !1, - description: "A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)" - }, - 161: { - name: "Block", - level: 3, - type: "b", - mandatory: !0, - minver: 1, - description: "Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)" - }, - 160: { - name: "BlockGroup", - level: 2, - type: "m", - multiple: !0, - minver: 1, - description: "Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock." - }, - 163: { - name: "SimpleBlock", - level: 2, - type: "b", - multiple: !0, - minver: 2, - webm: !0, - divx: !0, - description: "Similar to SimpleBlock Structure" - }, - 171: { - name: "PrevSize", - cppname: "ClusterPrevSize", - level: 2, - type: "u", - minver: 1, - description: "Size of the previous Cluster, in octets. Can be useful for backward playing.", - position: "prevCluster" - }, - 167: { - name: "Position", - cppname: "ClusterPosition", - level: 2, - type: "u", - minver: 1, - webm: !1, - description: "The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.", - position: "segment" - }, - 22743: { - name: "SilentTrackNumber", - cppname: "ClusterSilentTrackNumber", - level: 3, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - description: "One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster." - }, - 231: { - name: "Timecode", - cppname: "ClusterTimecode", - level: 2, - type: "u", - mandatory: !0, - minver: 1, - description: "Absolute timestamp of the cluster (based on TimecodeScale)." - }, - 524531317: { - name: "Cluster", - level: 1, - type: "m", - multiple: !0, - minver: 1, - description: "The lower level element containing the (monolithic) Block structure." - }, - 19840: { - name: "MuxingApp", - level: 2, - type: "8", - mandatory: !0, - minver: 1, - description: 'Muxing application or library ("libmatroska-0.4.3").' - }, - 31657: { - name: "Title", - level: 2, - type: "8", - minver: 1, - webm: !1, - description: "General name of the segment." - }, - 2807730: { - name: "TimecodeScaleDenominator", - level: 2, - type: "u", - mandatory: !0, - minver: 4, - default: "1000000000", - description: "Timestamp scale numerator, see TimecodeScale." - }, - 2807729: { - name: "TimecodeScale", - level: 2, - type: "u", - mandatory: !0, - minver: 1, - default: "1000000", - description: "Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds)." - }, - 27045: { - name: "ChapterTranslateID", - level: 3, - type: "b", - mandatory: !0, - minver: 1, - webm: !1, - description: "The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used." - }, - 27071: { - name: "ChapterTranslateCodec", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - webm: !1, - description: "The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)." - }, - 27132: { - name: "ChapterTranslateEditionUID", - level: 3, - type: "u", - multiple: !0, - minver: 1, - webm: !1, - description: "Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment." - }, - 4096955: { - name: "NextFilename", - level: 2, - type: "8", - minver: 1, - webm: !1, - description: "An escaped filename corresponding to the next segment." - }, - 4110627: { - name: "NextUID", - level: 2, - type: "b", - minver: 1, - webm: !1, - bytesize: 16, - description: "A unique ID to identify the next chained segment (128 bits)." - }, - 3965867: { - name: "PrevFilename", - level: 2, - type: "8", - minver: 1, - webm: !1, - description: "An escaped filename corresponding to the previous segment." - }, - 3979555: { - name: "PrevUID", - level: 2, - type: "b", - minver: 1, - webm: !1, - bytesize: 16, - description: "A unique ID to identify the previous chained segment (128 bits)." - }, - 29604: { - name: "SegmentUID", - level: 2, - type: "b", - minver: 1, - webm: !1, - range: "not 0", - bytesize: 16, - description: "A randomly generated unique ID to identify the current segment between many others (128 bits)." - }, - 357149030: { - name: "Info", - level: 1, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Contains miscellaneous general information and statistics on the file." - }, - 21420: { - name: "SeekPosition", - level: 3, - type: "u", - mandatory: !0, - minver: 1, - description: "The position of the element in the segment in octets (0 = first level 1 element).", - position: "segment" - }, - 21419: { - name: "SeekID", - level: 3, - type: "b", - mandatory: !0, - minver: 1, - description: "The binary ID corresponding to the element name.", - type2: "ebmlID" - }, - 19899: { - name: "Seek", - cppname: "SeekPoint", - level: 2, - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Contains a single seek entry to an EBML element." - }, - 290298740: { - name: "SeekHead", - cppname: "SeekHeader", - level: 1, - type: "m", - multiple: !0, - minver: 1, - description: "Contains the position of other level 1 elements." - }, - 32379: { - name: "SignatureElementList", - level: 2, - type: "m", - multiple: !0, - webm: !1, - i: "Cluster|Block|BlockAdditional", - description: "A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption." - }, - 32347: { - name: "SignatureElements", - level: 1, - type: "m", - webm: !1, - description: "Contains elements that will be used to compute the signature." - }, - 32437: { - name: "Signature", - level: 1, - type: "b", - webm: !1, - description: "The signature of the data (until a new." - }, - 32421: { - name: "SignaturePublicKey", - level: 1, - type: "b", - webm: !1, - description: "The public key to use with the algorithm (in the case of a PKI-based signature)." - }, - 32410: { - name: "SignatureHash", - level: 1, - type: "u", - webm: !1, - description: "Hash algorithm used (1=SHA1-160, 2=MD5)." - }, - 32394: { - name: "SignatureAlgo", - level: 1, - type: "u", - webm: !1, - description: "Signature algorithm used (1=RSA, 2=elliptic)." - }, - 458458727: { - name: "SignatureSlot", - level: -1, - type: "m", - multiple: !0, - webm: !1, - description: "Contain signature of some (coming) elements in the stream." - }, - 191: { - name: "CRC-32", - level: -1, - type: "b", - minver: 1, - webm: !1, - description: "The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian", - crc: !0 - }, - 236: { - name: "Void", - level: -1, - type: "b", - minver: 1, - description: "Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use." - }, - 17139: { - name: "EBMLMaxSizeLength", - level: 1, - type: "u", - mandatory: !0, - default: 8, - minver: 1, - description: "The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid." - }, - 17138: { - name: "EBMLMaxIDLength", - level: 1, - type: "u", - mandatory: !0, - default: 4, - minver: 1, - description: "The maximum length of the IDs you'll find in this file (4 or less in Matroska)." - }, - 17143: { - name: "EBMLReadVersion", - level: 1, - type: "u", - mandatory: !0, - default: 1, - minver: 1, - description: "The minimum EBML version a parser has to support to read this file." - }, - 440786851: { - name: "EBML", - level: "0", - type: "m", - mandatory: !0, - multiple: !0, - minver: 1, - description: "Set the EBML characteristics of the data to follow. Each EBML document has to start with this." - } - }, byName = {}, schema = { - byEbmlID: byEbmlID, - byName: byName - }; - for (var ebmlID in byEbmlID) byName[byEbmlID[ebmlID].name.replace("-", "_")] = parseInt(ebmlID, 10); - module.exports = schema; }, function(module, exports, __webpack_require__) { try { var util = __webpack_require__(0); if ("function" != typeof util.inherits) throw ""; module.exports = util.inherits; } catch (e) { - module.exports = __webpack_require__(451); + module.exports = __webpack_require__(552); } +}, function(module, exports, __webpack_require__) { + "undefined" != typeof process && "renderer" === process.type ? module.exports = __webpack_require__(541) : module.exports = __webpack_require__(543); +}, function(module, exports) { + module.exports = require("crypto"); +}, function(module, exports) { + module.exports = require("buffer"); }, function(module, exports) { module.exports = require("http"); }, function(module, exports, __webpack_require__) { "use strict"; - var tryCatchTarget, es5 = __webpack_require__(48), canEvaluate = "undefined" == typeof navigator, errorObj = { + var byEbmlID = { + 128: { + name: "ChapterDisplay", + level: 4, + type: "m", + multiple: !0, + minver: 1, + webm: !0, + description: "Contains all possible strings to use for the chapter display." + }, + 131: { + name: "TrackType", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + range: "1-254", + description: "A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control)." + }, + 133: { + name: "ChapString", + cppname: "ChapterString", + level: 5, + type: "8", + mandatory: !0, + minver: 1, + webm: !0, + description: "Contains the string to use as the chapter atom." + }, + 134: { + name: "CodecID", + level: 3, + type: "s", + mandatory: !0, + minver: 1, + description: "An ID corresponding to the codec, see the codec page for more info." + }, + 136: { + name: "FlagDefault", + cppname: "TrackFlagDefault", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + default: 1, + range: "0-1", + description: "Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)" + }, + 137: { + name: "ChapterTrackNumber", + level: 5, + type: "u", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + range: "not 0", + description: "UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks." + }, + 145: { + name: "ChapterTimeStart", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !0, + description: "Timestamp of the start of Chapter (not scaled)." + }, + 146: { + name: "ChapterTimeEnd", + level: 4, + type: "u", + minver: 1, + webm: !1, + description: "Timestamp of the end of Chapter (timestamp excluded, not scaled)." + }, + 150: { + name: "CueRefTime", + level: 5, + type: "u", + mandatory: !0, + minver: 2, + webm: !1, + description: "Timestamp of the referenced Block." + }, + 151: { + name: "CueRefCluster", + level: 5, + type: "u", + mandatory: !0, + webm: !1, + description: "The Position of the Cluster containing the referenced Block." + }, + 152: { + name: "ChapterFlagHidden", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + range: "0-1", + description: "If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)" + }, + 16980: { + name: "ContentCompAlgo", + level: 6, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping" + }, + 16981: { + name: "ContentCompSettings", + level: 6, + type: "b", + minver: 1, + webm: !1, + description: "Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track." + }, + 17026: { + name: "DocType", + level: 1, + type: "s", + mandatory: !0, + default: "matroska", + minver: 1, + description: "A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files." + }, + 17029: { + name: "DocTypeReadVersion", + level: 1, + type: "u", + mandatory: !0, + default: 1, + minver: 1, + description: "The minimum DocType version an interpreter has to support to read this file." + }, + 17030: { + name: "EBMLVersion", + level: 1, + type: "u", + mandatory: !0, + default: 1, + minver: 1, + description: "The version of EBML parser used to create the file." + }, + 17031: { + name: "DocTypeVersion", + level: 1, + type: "u", + mandatory: !0, + default: 1, + minver: 1, + description: "The version of DocType interpreter used to create the file." + }, + 17476: { + name: "SegmentFamily", + level: 2, + type: "b", + multiple: !0, + minver: 1, + webm: !1, + bytesize: 16, + description: "A randomly generated unique ID that all segments related to each other must use (128 bits)." + }, + 17505: { + name: "DateUTC", + level: 2, + type: "d", + minver: 1, + description: "Date of the origin of timestamp (value 0), i.e. production date." + }, + 17540: { + name: "TagDefault", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 1, + range: "0-1", + description: "Indication to know if this is the default/original language to use for the given tag. (1 bit)" + }, + 17541: { + name: "TagBinary", + level: 4, + type: "b", + minver: 1, + webm: !1, + description: "The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString." + }, + 17543: { + name: "TagString", + level: 4, + type: "8", + minver: 1, + webm: !1, + description: "The value of the Element." + }, + 17545: { + name: "Duration", + level: 2, + type: "f", + minver: 1, + range: "> 0", + description: "Duration of the segment (based on TimecodeScale)." + }, + 17816: { + name: "ChapterFlagEnabled", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 1, + range: "0-1", + description: "Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)" + }, + 18016: { + name: "FileMimeType", + level: 3, + type: "s", + mandatory: !0, + minver: 1, + webm: !1, + description: "MIME type of the file." + }, + 18017: { + name: "FileUsedStartTime", + level: 3, + type: "u", + divx: !0, + description: "DivX font extension" + }, + 18018: { + name: "FileUsedEndTime", + level: 3, + type: "u", + divx: !0, + description: "DivX font extension" + }, + 18037: { + name: "FileReferral", + level: 3, + type: "b", + webm: !1, + description: "A binary value that a track/codec can refer to when the attachment is needed." + }, + 20529: { + name: "ContentEncodingOrder", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment." + }, + 20530: { + name: "ContentEncodingScope", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 1, + range: "not 0", + description: "A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)" + }, + 20531: { + name: "ContentEncodingType", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption" + }, + 20532: { + name: "ContentCompression", + level: 5, + type: "m", + minver: 1, + webm: !1, + description: "Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking." + }, + 20533: { + name: "ContentEncryption", + level: 5, + type: "m", + minver: 1, + webm: !1, + description: "Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise." + }, + 21368: { + name: "CueBlockNumber", + level: 4, + type: "u", + minver: 1, + default: 1, + range: "not 0", + description: "Number of the Block in the specified Cluster." + }, + 22100: { + name: "ChapterStringUID", + level: 4, + type: "8", + mandatory: !1, + minver: 3, + webm: !0, + description: "A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage." + }, + 22337: { + name: "WritingApp", + level: 2, + type: "8", + mandatory: !0, + minver: 1, + description: 'Writing application ("mkvmerge-0.3.3").' + }, + 22612: { + name: "SilentTracks", + cppname: "ClusterSilentTracks", + level: 2, + type: "m", + minver: 1, + webm: !1, + description: "The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use." + }, + 25152: { + name: "ContentEncoding", + level: 4, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "Settings for one content encoding like compression or encryption." + }, + 25188: { + name: "BitDepth", + cppname: "AudioBitDepth", + level: 4, + type: "u", + minver: 1, + range: "not 0", + description: "Bits per sample, mostly used for PCM." + }, + 25906: { + name: "SignedElement", + level: 3, + type: "b", + multiple: !0, + webm: !1, + description: "An element ID whose data will be used to compute the signature." + }, + 26148: { + name: "TrackTranslate", + level: 3, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "The track identification for the given Chapter Codec." + }, + 26897: { + name: "ChapProcessCommand", + cppname: "ChapterProcessCommand", + level: 5, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "Contains all the commands associated to the Atom." + }, + 26914: { + name: "ChapProcessTime", + cppname: "ChapterProcessTime", + level: 6, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + description: "Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter)." + }, + 26916: { + name: "ChapterTranslate", + level: 2, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "A tuple of corresponding ID used by chapter codecs to represent this segment." + }, + 26931: { + name: "ChapProcessData", + cppname: "ChapterProcessData", + level: 6, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands." + }, + 26948: { + name: "ChapProcess", + cppname: "ChapterProcess", + level: 4, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "Contains all the commands associated to the Atom." + }, + 26965: { + name: "ChapProcessCodecID", + cppname: "ChapterProcessCodecID", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later." + }, + 29555: { + name: "Tag", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "Element containing elements specific to Tracks/Chapters." + }, + 29572: { + name: "SegmentFilename", + level: 2, + type: "8", + minver: 1, + webm: !1, + description: "A filename corresponding to this segment." + }, + 29766: { + name: "AttachmentLink", + cppname: "TrackAttachmentLink", + level: 3, + type: "u", + minver: 1, + webm: !1, + range: "not 0", + description: "The UID of an attachment that is used by this codec." + }, + 2459272: { + name: "CodecName", + level: 3, + type: "8", + minver: 1, + description: "A human-readable string specifying the codec." + }, + 408125543: { + name: "Segment", + level: "0", + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment." + }, + 17530: { + name: "TagLanguage", + level: 4, + type: "s", + mandatory: !0, + minver: 1, + webm: !1, + default: "und", + description: "Specifies the language of the tag specified, in the Matroska languages form." + }, + 17827: { + name: "TagName", + level: 4, + type: "8", + mandatory: !0, + minver: 1, + webm: !1, + description: "The name of the Tag that is going to be stored." + }, + 26568: { + name: "SimpleTag", + cppname: "TagSimple", + level: 3, + recursive: "1", + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "Contains general information about the target." + }, + 25542: { + name: "TagAttachmentUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + default: 0, + description: "A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment." + }, + 25540: { + name: "TagChapterUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + default: 0, + description: "A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment." + }, + 25545: { + name: "TagEditionUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + default: 0, + description: "A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment." + }, + 25541: { + name: "TagTrackUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + default: 0, + description: "A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment." + }, + 25546: { + name: "TargetType", + cppname: "TagTargetType", + level: 4, + type: "s", + minver: 1, + webm: !1, + strong: "informational", + description: 'An string that can be used to display the logical level of the target like "ALBUM", "TRACK", "MOVIE", "CHAPTER", etc (see TargetType).' + }, + 26826: { + name: "TargetTypeValue", + cppname: "TagTargetTypeValue", + level: 4, + type: "u", + minver: 1, + webm: !1, + default: 50, + description: "A number to indicate the logical level of the target (see TargetType)." + }, + 25536: { + name: "Targets", + cppname: "TagTargets", + level: 3, + type: "m", + mandatory: !0, + minver: 1, + webm: !1, + description: "Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment." + }, + 307544935: { + name: "Tags", + level: 1, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here." + }, + 17677: { + name: "ChapProcessPrivate", + cppname: "ChapterProcessPrivate", + level: 5, + type: "b", + minver: 1, + webm: !1, + description: 'Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the "DVD level" equivalent.' + }, + 17278: { + name: "ChapCountry", + cppname: "ChapterCountry", + level: 5, + type: "s", + multiple: !0, + minver: 1, + webm: !1, + description: "The countries corresponding to the string, same 2 octets as in Internet domains." + }, + 17276: { + name: "ChapLanguage", + cppname: "ChapterLanguage", + level: 5, + type: "s", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !0, + default: "eng", + description: "The languages corresponding to the string, in the bibliographic ISO-639-2 form." + }, + 143: { + name: "ChapterTrack", + level: 4, + type: "m", + minver: 1, + webm: !1, + description: "List of tracks on which the chapter applies. If this element is not present, all tracks apply" + }, + 25539: { + name: "ChapterPhysicalEquiv", + level: 4, + type: "u", + minver: 1, + webm: !1, + description: 'Specify the physical equivalent of this ChapterAtom like "DVD" (60) or "SIDE" (50), see complete list of values.' + }, + 28348: { + name: "ChapterSegmentEditionUID", + level: 4, + type: "u", + minver: 1, + webm: !1, + range: "not 0", + description: "The EditionUID to play from the segment linked in ChapterSegmentUID." + }, + 28263: { + name: "ChapterSegmentUID", + level: 4, + type: "b", + minver: 1, + webm: !1, + range: ">0", + bytesize: 16, + description: "A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used." + }, + 29636: { + name: "ChapterUID", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !0, + range: "not 0", + description: "A unique ID to identify the Chapter." + }, + 182: { + name: "ChapterAtom", + level: 3, + recursive: "1", + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !0, + description: "Contains the atom information to use as the chapter atom (apply to all tracks)." + }, + 17885: { + name: "EditionFlagOrdered", + level: 3, + type: "u", + minver: 1, + webm: !1, + default: 0, + range: "0-1", + description: "Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)" + }, + 17883: { + name: "EditionFlagDefault", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + range: "0-1", + description: "If a flag is set (1) the edition should be used as the default one. (1 bit)" + }, + 17853: { + name: "EditionFlagHidden", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + range: "0-1", + description: "If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)" + }, + 17852: { + name: "EditionUID", + level: 3, + type: "u", + minver: 1, + webm: !1, + range: "not 0", + description: "A unique ID to identify the edition. It's useful for tagging an edition." + }, + 17849: { + name: "EditionEntry", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !0, + description: "Contains all information about a segment edition." + }, + 272869232: { + name: "Chapters", + level: 1, + type: "m", + minver: 1, + webm: !0, + description: "A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation." + }, + 18094: { + name: "FileUID", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + range: "not 0", + description: "Unique ID representing the file, as random as possible." + }, + 18012: { + name: "FileData", + level: 3, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "The data of the file." + }, + 18030: { + name: "FileName", + level: 3, + type: "8", + mandatory: !0, + minver: 1, + webm: !1, + description: "Filename of the attached file." + }, + 18046: { + name: "FileDescription", + level: 3, + type: "8", + minver: 1, + webm: !1, + description: "A human-friendly name for the attached file." + }, + 24999: { + name: "AttachedFile", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "An attached file." + }, + 423732329: { + name: "Attachments", + level: 1, + type: "m", + minver: 1, + webm: !1, + description: "Contain attached files." + }, + 235: { + name: "CueRefCodecState", + level: 5, + type: "u", + webm: !1, + default: 0, + description: "The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry." + }, + 21343: { + name: "CueRefNumber", + level: 5, + type: "u", + webm: !1, + default: 1, + range: "not 0", + description: "Number of the referenced Block of Track X in the specified Cluster." + }, + 219: { + name: "CueReference", + level: 4, + type: "m", + multiple: !0, + minver: 2, + webm: !1, + description: "The Clusters containing the required referenced Blocks." + }, + 234: { + name: "CueCodecState", + level: 4, + type: "u", + minver: 2, + webm: !1, + default: 0, + description: "The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry." + }, + 178: { + name: "CueDuration", + level: 4, + type: "u", + mandatory: !1, + minver: 4, + webm: !1, + description: "The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues." + }, + 240: { + name: "CueRelativePosition", + level: 4, + type: "u", + mandatory: !1, + minver: 4, + webm: !1, + description: "The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.", + position: "clusterRelative" + }, + 241: { + name: "CueClusterPosition", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + description: "The position of the Cluster containing the required Block.", + position: "segment" + }, + 247: { + name: "CueTrack", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "The track for which a position is given." + }, + 183: { + name: "CueTrackPositions", + level: 3, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Contain positions for different tracks corresponding to the timestamp." + }, + 179: { + name: "CueTime", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + description: "Absolute timestamp according to the segment time base." + }, + 187: { + name: "CuePoint", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Contains all information relative to a seek point in the segment." + }, + 475249515: { + name: "Cues", + level: 1, + type: "m", + minver: 1, + description: 'A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non "live" streams.' + }, + 18406: { + name: "ContentSigHashAlgo", + level: 6, + type: "u", + minver: 1, + webm: !1, + default: 0, + description: "The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5" + }, + 18405: { + name: "ContentSigAlgo", + level: 6, + type: "u", + minver: 1, + webm: !1, + default: 0, + description: "The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA" + }, + 18404: { + name: "ContentSigKeyID", + level: 6, + type: "b", + minver: 1, + webm: !1, + description: "This is the ID of the private key the data was signed with." + }, + 18403: { + name: "ContentSignature", + level: 6, + type: "b", + minver: 1, + webm: !1, + description: "A cryptographic signature of the contents." + }, + 18402: { + name: "ContentEncKeyID", + level: 6, + type: "b", + minver: 1, + webm: !1, + description: "For public key algorithms this is the ID of the public key the the data was encrypted with." + }, + 18401: { + name: "ContentEncAlgo", + level: 6, + type: "u", + minver: 1, + webm: !1, + default: 0, + description: "The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES" + }, + 28032: { + name: "ContentEncodings", + level: 3, + type: "m", + minver: 1, + webm: !1, + description: "Settings for several content encoding mechanisms like compression or encryption." + }, + 196: { + name: "TrickMasterTrackSegmentUID", + level: 3, + type: "b", + divx: !0, + bytesize: 16, + description: "DivX trick track extenstions" + }, + 199: { + name: "TrickMasterTrackUID", + level: 3, + type: "u", + divx: !0, + description: "DivX trick track extenstions" + }, + 198: { + name: "TrickTrackFlag", + level: 3, + type: "u", + divx: !0, + default: 0, + description: "DivX trick track extenstions" + }, + 193: { + name: "TrickTrackSegmentUID", + level: 3, + type: "b", + divx: !0, + bytesize: 16, + description: "DivX trick track extenstions" + }, + 192: { + name: "TrickTrackUID", + level: 3, + type: "u", + divx: !0, + description: "DivX trick track extenstions" + }, + 237: { + name: "TrackJoinUID", + level: 5, + type: "u", + mandatory: !0, + multiple: !0, + minver: 3, + webm: !1, + range: "not 0", + description: "The trackUID number of a track whose blocks are used to create this virtual track." + }, + 233: { + name: "TrackJoinBlocks", + level: 4, + type: "m", + minver: 3, + webm: !1, + description: "Contains the list of all tracks whose Blocks need to be combined to create this virtual track" + }, + 230: { + name: "TrackPlaneType", + level: 6, + type: "u", + mandatory: !0, + minver: 3, + webm: !1, + description: "The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background)." + }, + 229: { + name: "TrackPlaneUID", + level: 6, + type: "u", + mandatory: !0, + minver: 3, + webm: !1, + range: "not 0", + description: "The trackUID number of the track representing the plane." + }, + 228: { + name: "TrackPlane", + level: 5, + type: "m", + mandatory: !0, + multiple: !0, + minver: 3, + webm: !1, + description: "Contains a video plane track that need to be combined to create this 3D track" + }, + 227: { + name: "TrackCombinePlanes", + level: 4, + type: "m", + minver: 3, + webm: !1, + description: "Contains the list of all video plane tracks that need to be combined to create this 3D track" + }, + 226: { + name: "TrackOperation", + level: 3, + type: "m", + minver: 3, + webm: !1, + description: "Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject." + }, + 32123: { + name: "ChannelPositions", + cppname: "AudioPosition", + level: 4, + type: "b", + webm: !1, + description: "Table of horizontal angles for each successive channel, see appendix." + }, + 159: { + name: "Channels", + cppname: "AudioChannels", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + default: 1, + range: "not 0", + description: "Numbers of channels in the track." + }, + 30901: { + name: "OutputSamplingFrequency", + cppname: "AudioOutputSamplingFreq", + level: 4, + type: "f", + minver: 1, + default: "Sampling Frequency", + range: "> 0", + description: "Real output sampling frequency in Hz (used for SBR techniques)." + }, + 181: { + name: "SamplingFrequency", + cppname: "AudioSamplingFreq", + level: 4, + type: "f", + mandatory: !0, + minver: 1, + default: 8e3, + range: "> 0", + description: "Sampling frequency in Hz." + }, + 225: { + name: "Audio", + cppname: "TrackAudio", + level: 3, + type: "m", + minver: 1, + description: "Audio settings." + }, + 2327523: { + name: "FrameRate", + cppname: "VideoFrameRate", + level: 4, + type: "f", + range: "> 0", + strong: "Informational", + description: "Number of frames per second. only." + }, + 3126563: { + name: "GammaValue", + cppname: "VideoGamma", + level: 4, + type: "f", + webm: !1, + range: "> 0", + description: "Gamma Value." + }, + 3061028: { + name: "ColourSpace", + cppname: "VideoColourSpace", + level: 4, + type: "b", + minver: 1, + webm: !1, + bytesize: 4, + description: "Same value as in AVI (32 bits)." + }, + 21683: { + name: "AspectRatioType", + cppname: "VideoAspectRatio", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed)." + }, + 21682: { + name: "DisplayUnit", + cppname: "VideoDisplayUnit", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio)." + }, + 21690: { + name: "DisplayHeight", + cppname: "VideoDisplayHeight", + level: 4, + type: "u", + minver: 1, + default: "PixelHeight", + range: "not 0", + description: "Height of the video frames to display. The default value is only valid when DisplayUnit is 0." + }, + 21680: { + name: "DisplayWidth", + cppname: "VideoDisplayWidth", + level: 4, + type: "u", + minver: 1, + default: "PixelWidth", + range: "not 0", + description: "Width of the video frames to display. The default value is only valid when DisplayUnit is 0." + }, + 21725: { + name: "PixelCropRight", + cppname: "VideoPixelCropRight", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "The number of video pixels to remove on the right of the image." + }, + 21708: { + name: "PixelCropLeft", + cppname: "VideoPixelCropLeft", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "The number of video pixels to remove on the left of the image." + }, + 21691: { + name: "PixelCropTop", + cppname: "VideoPixelCropTop", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "The number of video pixels to remove at the top of the image." + }, + 21674: { + name: "PixelCropBottom", + cppname: "VideoPixelCropBottom", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "The number of video pixels to remove at the bottom of the image (for HDTV content)." + }, + 186: { + name: "PixelHeight", + cppname: "VideoPixelHeight", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "Height of the encoded video frames in pixels." + }, + 176: { + name: "PixelWidth", + cppname: "VideoPixelWidth", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "Width of the encoded video frames in pixels." + }, + 21433: { + name: "OldStereoMode", + level: 4, + type: "u", + maxver: "0", + webm: !1, + divx: !1, + description: "DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes)." + }, + 21440: { + name: "AlphaMode", + cppname: "VideoAlphaMode", + level: 4, + type: "u", + minver: 3, + webm: !0, + default: 0, + description: "Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data." + }, + 21432: { + name: "StereoMode", + cppname: "VideoStereoMode", + level: 4, + type: "u", + minver: 3, + webm: !0, + default: 0, + description: "Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes." + }, + 154: { + name: "FlagInterlaced", + cppname: "VideoFlagInterlaced", + level: 4, + type: "u", + mandatory: !0, + minver: 2, + webm: !0, + default: 0, + range: "0-1", + description: "Set if the video is interlaced. (1 bit)" + }, + 224: { + name: "Video", + cppname: "TrackVideo", + level: 3, + type: "m", + minver: 1, + description: "Video settings." + }, + 26277: { + name: "TrackTranslateTrackID", + level: 4, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used." + }, + 26303: { + name: "TrackTranslateCodec", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + description: "The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)." + }, + 26364: { + name: "TrackTranslateEditionUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + description: "Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment." + }, + 22203: { + name: "SeekPreRoll", + level: 3, + type: "u", + mandatory: !0, + multiple: !1, + default: 0, + minver: 4, + webm: !0, + description: "After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid." + }, + 22186: { + name: "CodecDelay", + level: 3, + type: "u", + multiple: !1, + default: 0, + minver: 4, + webm: !0, + description: "CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster." + }, + 28587: { + name: "TrackOverlay", + level: 3, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + description: "Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc." + }, + 170: { + name: "CodecDecodeAll", + level: 3, + type: "u", + mandatory: !0, + minver: 2, + webm: !1, + default: 1, + range: "0-1", + description: "The codec can decode potentially damaged data (1 bit)." + }, + 2536e3: { + name: "CodecDownloadURL", + level: 3, + type: "s", + multiple: !0, + webm: !1, + description: "A URL to download about the codec used." + }, + 3883072: { + name: "CodecInfoURL", + level: 3, + type: "s", + multiple: !0, + webm: !1, + description: "A URL to find information about the codec used." + }, + 3839639: { + name: "CodecSettings", + level: 3, + type: "8", + webm: !1, + description: "A string describing the encoding setting used." + }, + 25506: { + name: "CodecPrivate", + level: 3, + type: "b", + minver: 1, + description: "Private data only known to the codec." + }, + 2274716: { + name: "Language", + cppname: "TrackLanguage", + level: 3, + type: "s", + minver: 1, + default: "eng", + description: "Specifies the language of the track in the Matroska languages form." + }, + 21358: { + name: "Name", + cppname: "TrackName", + level: 3, + type: "8", + minver: 1, + description: "A human-readable track name." + }, + 21998: { + name: "MaxBlockAdditionID", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "The maximum value of BlockAdditions for this track." + }, + 21375: { + name: "TrackOffset", + level: 3, + type: "i", + webm: !1, + default: 0, + description: "A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track." + }, + 2306383: { + name: "TrackTimecodeScale", + level: 3, + type: "f", + mandatory: !0, + minver: 1, + maxver: "3", + webm: !1, + default: 1, + range: "> 0", + description: "DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs)." + }, + 2313850: { + name: "DefaultDecodedFieldDuration", + cppname: "TrackDefaultDecodedFieldDuration", + level: 3, + type: "u", + minver: 4, + range: "not 0", + description: "The period in nanoseconds (not scaled by TimcodeScale)\nbetween two successive fields at the output of the decoding process (see the notes)" + }, + 2352003: { + name: "DefaultDuration", + cppname: "TrackDefaultDuration", + level: 3, + type: "u", + minver: 1, + range: "not 0", + description: "Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block)." + }, + 28152: { + name: "MaxCache", + cppname: "TrackMaxCache", + level: 3, + type: "u", + minver: 1, + webm: !1, + description: "The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed." + }, + 28135: { + name: "MinCache", + cppname: "TrackMinCache", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used." + }, + 156: { + name: "FlagLacing", + cppname: "TrackFlagLacing", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + default: 1, + range: "0-1", + description: "Set if the track may contain blocks using lacing. (1 bit)" + }, + 21930: { + name: "FlagForced", + cppname: "TrackFlagForced", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + default: 0, + range: "0-1", + description: "Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)" + }, + 185: { + name: "FlagEnabled", + cppname: "TrackFlagEnabled", + level: 3, + type: "u", + mandatory: !0, + minver: 2, + webm: !0, + default: 1, + range: "0-1", + description: "Set if the track is usable. (1 bit)" + }, + 29637: { + name: "TrackUID", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file." + }, + 215: { + name: "TrackNumber", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number)." + }, + 174: { + name: "TrackEntry", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Describes a track with all elements." + }, + 374648427: { + name: "Tracks", + level: 1, + type: "m", + multiple: !0, + minver: 1, + description: "A top-level block of information with many tracks described." + }, + 175: { + name: "EncryptedBlock", + level: 2, + type: "b", + multiple: !0, + webm: !1, + description: "Similar to EncryptedBlock Structure)" + }, + 202: { + name: "ReferenceTimeCode", + level: 4, + type: "u", + multiple: !1, + mandatory: !0, + minver: 0, + webm: !1, + divx: !0, + description: "DivX trick track extenstions" + }, + 201: { + name: "ReferenceOffset", + level: 4, + type: "u", + multiple: !1, + mandatory: !0, + minver: 0, + webm: !1, + divx: !0, + description: "DivX trick track extenstions" + }, + 200: { + name: "ReferenceFrame", + level: 3, + type: "m", + multiple: !1, + minver: 0, + webm: !1, + divx: !0, + description: "DivX trick track extenstions" + }, + 207: { + name: "SliceDuration", + level: 5, + type: "u", + default: 0, + description: "The (scaled) duration to apply to the element." + }, + 206: { + name: "Delay", + cppname: "SliceDelay", + level: 5, + type: "u", + default: 0, + description: "The (scaled) delay to apply to the element." + }, + 203: { + name: "BlockAdditionID", + cppname: "SliceBlockAddID", + level: 5, + type: "u", + default: 0, + description: "The ID of the BlockAdditional element (0 is the main Block)." + }, + 205: { + name: "FrameNumber", + cppname: "SliceFrameNumber", + level: 5, + type: "u", + default: 0, + description: "The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame)." + }, + 204: { + name: "LaceNumber", + cppname: "SliceLaceNumber", + level: 5, + type: "u", + minver: 1, + default: 0, + divx: !1, + description: "The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback." + }, + 232: { + name: "TimeSlice", + level: 4, + type: "m", + multiple: !0, + minver: 1, + divx: !1, + description: "Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback." + }, + 142: { + name: "Slices", + level: 3, + type: "m", + minver: 1, + divx: !1, + description: "Contains slices description." + }, + 30114: { + name: "DiscardPadding", + level: 3, + type: "i", + minver: 4, + webm: !0, + description: "Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback." + }, + 164: { + name: "CodecState", + level: 3, + type: "b", + minver: 2, + webm: !1, + description: "The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry." + }, + 253: { + name: "ReferenceVirtual", + level: 3, + type: "i", + webm: !1, + description: "Relative position of the data that should be in position of the virtual block." + }, + 251: { + name: "ReferenceBlock", + level: 3, + type: "i", + multiple: !0, + minver: 1, + description: "Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to." + }, + 250: { + name: "ReferencePriority", + cppname: "FlagReferenced", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced." + }, + 155: { + name: "BlockDuration", + level: 3, + type: "u", + minver: 1, + default: "TrackDuration", + description: 'The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in "display" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.' + }, + 165: { + name: "BlockAdditional", + level: 5, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "Interpreted by the codec as it wishes (using the BlockAddID)." + }, + 238: { + name: "BlockAddID", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 1, + range: "not 0", + description: "An ID to identify the BlockAdditional level." + }, + 166: { + name: "BlockMore", + level: 4, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "Contain the BlockAdditional and some parameters." + }, + 30113: { + name: "BlockAdditions", + level: 3, + type: "m", + minver: 1, + webm: !1, + description: "Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data." + }, + 162: { + name: "BlockVirtual", + level: 3, + type: "b", + webm: !1, + description: "A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)" + }, + 161: { + name: "Block", + level: 3, + type: "b", + mandatory: !0, + minver: 1, + description: "Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)" + }, + 160: { + name: "BlockGroup", + level: 2, + type: "m", + multiple: !0, + minver: 1, + description: "Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock." + }, + 163: { + name: "SimpleBlock", + level: 2, + type: "b", + multiple: !0, + minver: 2, + webm: !0, + divx: !0, + description: "Similar to SimpleBlock Structure" + }, + 171: { + name: "PrevSize", + cppname: "ClusterPrevSize", + level: 2, + type: "u", + minver: 1, + description: "Size of the previous Cluster, in octets. Can be useful for backward playing.", + position: "prevCluster" + }, + 167: { + name: "Position", + cppname: "ClusterPosition", + level: 2, + type: "u", + minver: 1, + webm: !1, + description: "The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.", + position: "segment" + }, + 22743: { + name: "SilentTrackNumber", + cppname: "ClusterSilentTrackNumber", + level: 3, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + description: "One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster." + }, + 231: { + name: "Timecode", + cppname: "ClusterTimecode", + level: 2, + type: "u", + mandatory: !0, + minver: 1, + description: "Absolute timestamp of the cluster (based on TimecodeScale)." + }, + 524531317: { + name: "Cluster", + level: 1, + type: "m", + multiple: !0, + minver: 1, + description: "The lower level element containing the (monolithic) Block structure." + }, + 19840: { + name: "MuxingApp", + level: 2, + type: "8", + mandatory: !0, + minver: 1, + description: 'Muxing application or library ("libmatroska-0.4.3").' + }, + 31657: { + name: "Title", + level: 2, + type: "8", + minver: 1, + webm: !1, + description: "General name of the segment." + }, + 2807730: { + name: "TimecodeScaleDenominator", + level: 2, + type: "u", + mandatory: !0, + minver: 4, + default: "1000000000", + description: "Timestamp scale numerator, see TimecodeScale." + }, + 2807729: { + name: "TimecodeScale", + level: 2, + type: "u", + mandatory: !0, + minver: 1, + default: "1000000", + description: "Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds)." + }, + 27045: { + name: "ChapterTranslateID", + level: 3, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used." + }, + 27071: { + name: "ChapterTranslateCodec", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + description: "The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)." + }, + 27132: { + name: "ChapterTranslateEditionUID", + level: 3, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + description: "Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment." + }, + 4096955: { + name: "NextFilename", + level: 2, + type: "8", + minver: 1, + webm: !1, + description: "An escaped filename corresponding to the next segment." + }, + 4110627: { + name: "NextUID", + level: 2, + type: "b", + minver: 1, + webm: !1, + bytesize: 16, + description: "A unique ID to identify the next chained segment (128 bits)." + }, + 3965867: { + name: "PrevFilename", + level: 2, + type: "8", + minver: 1, + webm: !1, + description: "An escaped filename corresponding to the previous segment." + }, + 3979555: { + name: "PrevUID", + level: 2, + type: "b", + minver: 1, + webm: !1, + bytesize: 16, + description: "A unique ID to identify the previous chained segment (128 bits)." + }, + 29604: { + name: "SegmentUID", + level: 2, + type: "b", + minver: 1, + webm: !1, + range: "not 0", + bytesize: 16, + description: "A randomly generated unique ID to identify the current segment between many others (128 bits)." + }, + 357149030: { + name: "Info", + level: 1, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Contains miscellaneous general information and statistics on the file." + }, + 21420: { + name: "SeekPosition", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + description: "The position of the element in the segment in octets (0 = first level 1 element).", + position: "segment" + }, + 21419: { + name: "SeekID", + level: 3, + type: "b", + mandatory: !0, + minver: 1, + description: "The binary ID corresponding to the element name.", + type2: "ebmlID" + }, + 19899: { + name: "Seek", + cppname: "SeekPoint", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Contains a single seek entry to an EBML element." + }, + 290298740: { + name: "SeekHead", + cppname: "SeekHeader", + level: 1, + type: "m", + multiple: !0, + minver: 1, + description: "Contains the position of other level 1 elements." + }, + 32379: { + name: "SignatureElementList", + level: 2, + type: "m", + multiple: !0, + webm: !1, + i: "Cluster|Block|BlockAdditional", + description: "A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption." + }, + 32347: { + name: "SignatureElements", + level: 1, + type: "m", + webm: !1, + description: "Contains elements that will be used to compute the signature." + }, + 32437: { + name: "Signature", + level: 1, + type: "b", + webm: !1, + description: "The signature of the data (until a new." + }, + 32421: { + name: "SignaturePublicKey", + level: 1, + type: "b", + webm: !1, + description: "The public key to use with the algorithm (in the case of a PKI-based signature)." + }, + 32410: { + name: "SignatureHash", + level: 1, + type: "u", + webm: !1, + description: "Hash algorithm used (1=SHA1-160, 2=MD5)." + }, + 32394: { + name: "SignatureAlgo", + level: 1, + type: "u", + webm: !1, + description: "Signature algorithm used (1=RSA, 2=elliptic)." + }, + 458458727: { + name: "SignatureSlot", + level: -1, + type: "m", + multiple: !0, + webm: !1, + description: "Contain signature of some (coming) elements in the stream." + }, + 191: { + name: "CRC-32", + level: -1, + type: "b", + minver: 1, + webm: !1, + description: "The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian", + crc: !0 + }, + 236: { + name: "Void", + level: -1, + type: "b", + minver: 1, + description: "Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use." + }, + 17139: { + name: "EBMLMaxSizeLength", + level: 1, + type: "u", + mandatory: !0, + default: 8, + minver: 1, + description: "The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid." + }, + 17138: { + name: "EBMLMaxIDLength", + level: 1, + type: "u", + mandatory: !0, + default: 4, + minver: 1, + description: "The maximum length of the IDs you'll find in this file (4 or less in Matroska)." + }, + 17143: { + name: "EBMLReadVersion", + level: 1, + type: "u", + mandatory: !0, + default: 1, + minver: 1, + description: "The minimum EBML version a parser has to support to read this file." + }, + 440786851: { + name: "EBML", + level: "0", + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Set the EBML characteristics of the data to follow. Each EBML document has to start with this." + } + }, byName = {}, schema = { + byEbmlID: byEbmlID, + byName: byName + }; + for (var ebmlID in byEbmlID) byName[byEbmlID[ebmlID].name.replace("-", "_")] = parseInt(ebmlID, 10); + module.exports = schema; +}, function(module, exports, __webpack_require__) { + "use strict"; + var byEbmlID = { + 128: { + name: "ChapterDisplay", + level: 4, + type: "m", + multiple: !0, + minver: 1, + webm: !0, + description: "Contains all possible strings to use for the chapter display." + }, + 131: { + name: "TrackType", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + range: "1-254", + description: "A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control)." + }, + 133: { + name: "ChapString", + cppname: "ChapterString", + level: 5, + type: "8", + mandatory: !0, + minver: 1, + webm: !0, + description: "Contains the string to use as the chapter atom." + }, + 134: { + name: "CodecID", + level: 3, + type: "s", + mandatory: !0, + minver: 1, + description: "An ID corresponding to the codec, see the codec page for more info." + }, + 136: { + name: "FlagDefault", + cppname: "TrackFlagDefault", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + default: 1, + range: "0-1", + description: "Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)" + }, + 137: { + name: "ChapterTrackNumber", + level: 5, + type: "u", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + range: "not 0", + description: "UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks." + }, + 145: { + name: "ChapterTimeStart", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !0, + description: "Timestamp of the start of Chapter (not scaled)." + }, + 146: { + name: "ChapterTimeEnd", + level: 4, + type: "u", + minver: 1, + webm: !1, + description: "Timestamp of the end of Chapter (timestamp excluded, not scaled)." + }, + 150: { + name: "CueRefTime", + level: 5, + type: "u", + mandatory: !0, + minver: 2, + webm: !1, + description: "Timestamp of the referenced Block." + }, + 151: { + name: "CueRefCluster", + level: 5, + type: "u", + mandatory: !0, + webm: !1, + description: "The Position of the Cluster containing the referenced Block." + }, + 152: { + name: "ChapterFlagHidden", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + range: "0-1", + description: "If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)" + }, + 16980: { + name: "ContentCompAlgo", + level: 6, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping" + }, + 16981: { + name: "ContentCompSettings", + level: 6, + type: "b", + minver: 1, + webm: !1, + description: "Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track." + }, + 17026: { + name: "DocType", + level: 1, + type: "s", + mandatory: !0, + default: "matroska", + minver: 1, + description: "A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files." + }, + 17029: { + name: "DocTypeReadVersion", + level: 1, + type: "u", + mandatory: !0, + default: 1, + minver: 1, + description: "The minimum DocType version an interpreter has to support to read this file." + }, + 17030: { + name: "EBMLVersion", + level: 1, + type: "u", + mandatory: !0, + default: 1, + minver: 1, + description: "The version of EBML parser used to create the file." + }, + 17031: { + name: "DocTypeVersion", + level: 1, + type: "u", + mandatory: !0, + default: 1, + minver: 1, + description: "The version of DocType interpreter used to create the file." + }, + 17476: { + name: "SegmentFamily", + level: 2, + type: "b", + multiple: !0, + minver: 1, + webm: !1, + bytesize: 16, + description: "A randomly generated unique ID that all segments related to each other must use (128 bits)." + }, + 17505: { + name: "DateUTC", + level: 2, + type: "d", + minver: 1, + description: "Date of the origin of timestamp (value 0), i.e. production date." + }, + 17540: { + name: "TagDefault", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 1, + range: "0-1", + description: "Indication to know if this is the default/original language to use for the given tag. (1 bit)" + }, + 17541: { + name: "TagBinary", + level: 4, + type: "b", + minver: 1, + webm: !1, + description: "The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString." + }, + 17543: { + name: "TagString", + level: 4, + type: "8", + minver: 1, + webm: !1, + description: "The value of the Element." + }, + 17545: { + name: "Duration", + level: 2, + type: "f", + minver: 1, + range: "> 0", + description: "Duration of the segment (based on TimecodeScale)." + }, + 17816: { + name: "ChapterFlagEnabled", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 1, + range: "0-1", + description: "Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)" + }, + 18016: { + name: "FileMimeType", + level: 3, + type: "s", + mandatory: !0, + minver: 1, + webm: !1, + description: "MIME type of the file." + }, + 18017: { + name: "FileUsedStartTime", + level: 3, + type: "u", + divx: !0, + description: "DivX font extension" + }, + 18018: { + name: "FileUsedEndTime", + level: 3, + type: "u", + divx: !0, + description: "DivX font extension" + }, + 18037: { + name: "FileReferral", + level: 3, + type: "b", + webm: !1, + description: "A binary value that a track/codec can refer to when the attachment is needed." + }, + 20529: { + name: "ContentEncodingOrder", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment." + }, + 20530: { + name: "ContentEncodingScope", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 1, + range: "not 0", + description: "A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)" + }, + 20531: { + name: "ContentEncodingType", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption" + }, + 20532: { + name: "ContentCompression", + level: 5, + type: "m", + minver: 1, + webm: !1, + description: "Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking." + }, + 20533: { + name: "ContentEncryption", + level: 5, + type: "m", + minver: 1, + webm: !1, + description: "Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise." + }, + 21368: { + name: "CueBlockNumber", + level: 4, + type: "u", + minver: 1, + default: 1, + range: "not 0", + description: "Number of the Block in the specified Cluster." + }, + 22100: { + name: "ChapterStringUID", + level: 4, + type: "8", + mandatory: !1, + minver: 3, + webm: !0, + description: "A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage." + }, + 22337: { + name: "WritingApp", + level: 2, + type: "8", + mandatory: !0, + minver: 1, + description: 'Writing application ("mkvmerge-0.3.3").' + }, + 22612: { + name: "SilentTracks", + cppname: "ClusterSilentTracks", + level: 2, + type: "m", + minver: 1, + webm: !1, + description: "The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use." + }, + 25152: { + name: "ContentEncoding", + level: 4, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "Settings for one content encoding like compression or encryption." + }, + 25188: { + name: "BitDepth", + cppname: "AudioBitDepth", + level: 4, + type: "u", + minver: 1, + range: "not 0", + description: "Bits per sample, mostly used for PCM." + }, + 25906: { + name: "SignedElement", + level: 3, + type: "b", + multiple: !0, + webm: !1, + description: "An element ID whose data will be used to compute the signature." + }, + 26148: { + name: "TrackTranslate", + level: 3, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "The track identification for the given Chapter Codec." + }, + 26897: { + name: "ChapProcessCommand", + cppname: "ChapterProcessCommand", + level: 5, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "Contains all the commands associated to the Atom." + }, + 26914: { + name: "ChapProcessTime", + cppname: "ChapterProcessTime", + level: 6, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + description: "Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter)." + }, + 26916: { + name: "ChapterTranslate", + level: 2, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "A tuple of corresponding ID used by chapter codecs to represent this segment." + }, + 26931: { + name: "ChapProcessData", + cppname: "ChapterProcessData", + level: 6, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands." + }, + 26948: { + name: "ChapProcess", + cppname: "ChapterProcess", + level: 4, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "Contains all the commands associated to the Atom." + }, + 26965: { + name: "ChapProcessCodecID", + cppname: "ChapterProcessCodecID", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later." + }, + 29555: { + name: "Tag", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "Element containing elements specific to Tracks/Chapters." + }, + 29572: { + name: "SegmentFilename", + level: 2, + type: "8", + minver: 1, + webm: !1, + description: "A filename corresponding to this segment." + }, + 29766: { + name: "AttachmentLink", + cppname: "TrackAttachmentLink", + level: 3, + type: "u", + minver: 1, + webm: !1, + range: "not 0", + description: "The UID of an attachment that is used by this codec." + }, + 2459272: { + name: "CodecName", + level: 3, + type: "8", + minver: 1, + description: "A human-readable string specifying the codec." + }, + 408125543: { + name: "Segment", + level: "0", + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment." + }, + 17530: { + name: "TagLanguage", + level: 4, + type: "s", + mandatory: !0, + minver: 1, + webm: !1, + default: "und", + description: "Specifies the language of the tag specified, in the Matroska languages form." + }, + 17827: { + name: "TagName", + level: 4, + type: "8", + mandatory: !0, + minver: 1, + webm: !1, + description: "The name of the Tag that is going to be stored." + }, + 26568: { + name: "SimpleTag", + cppname: "TagSimple", + level: 3, + recursive: "1", + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "Contains general information about the target." + }, + 25542: { + name: "TagAttachmentUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + default: 0, + description: "A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment." + }, + 25540: { + name: "TagChapterUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + default: 0, + description: "A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment." + }, + 25545: { + name: "TagEditionUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + default: 0, + description: "A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment." + }, + 25541: { + name: "TagTrackUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + default: 0, + description: "A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment." + }, + 25546: { + name: "TargetType", + cppname: "TagTargetType", + level: 4, + type: "s", + minver: 1, + webm: !1, + strong: "informational", + description: 'An string that can be used to display the logical level of the target like "ALBUM", "TRACK", "MOVIE", "CHAPTER", etc (see TargetType).' + }, + 26826: { + name: "TargetTypeValue", + cppname: "TagTargetTypeValue", + level: 4, + type: "u", + minver: 1, + webm: !1, + default: 50, + description: "A number to indicate the logical level of the target (see TargetType)." + }, + 25536: { + name: "Targets", + cppname: "TagTargets", + level: 3, + type: "m", + mandatory: !0, + minver: 1, + webm: !1, + description: "Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment." + }, + 307544935: { + name: "Tags", + level: 1, + type: "m", + multiple: !0, + minver: 1, + webm: !1, + description: "Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here." + }, + 17677: { + name: "ChapProcessPrivate", + cppname: "ChapterProcessPrivate", + level: 5, + type: "b", + minver: 1, + webm: !1, + description: 'Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the "DVD level" equivalent.' + }, + 17278: { + name: "ChapCountry", + cppname: "ChapterCountry", + level: 5, + type: "s", + multiple: !0, + minver: 1, + webm: !1, + description: "The countries corresponding to the string, same 2 octets as in Internet domains." + }, + 17276: { + name: "ChapLanguage", + cppname: "ChapterLanguage", + level: 5, + type: "s", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !0, + default: "eng", + description: "The languages corresponding to the string, in the bibliographic ISO-639-2 form." + }, + 143: { + name: "ChapterTrack", + level: 4, + type: "m", + minver: 1, + webm: !1, + description: "List of tracks on which the chapter applies. If this element is not present, all tracks apply" + }, + 25539: { + name: "ChapterPhysicalEquiv", + level: 4, + type: "u", + minver: 1, + webm: !1, + description: 'Specify the physical equivalent of this ChapterAtom like "DVD" (60) or "SIDE" (50), see complete list of values.' + }, + 28348: { + name: "ChapterSegmentEditionUID", + level: 4, + type: "u", + minver: 1, + webm: !1, + range: "not 0", + description: "The EditionUID to play from the segment linked in ChapterSegmentUID." + }, + 28263: { + name: "ChapterSegmentUID", + level: 4, + type: "b", + minver: 1, + webm: !1, + range: ">0", + bytesize: 16, + description: "A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used." + }, + 29636: { + name: "ChapterUID", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !0, + range: "not 0", + description: "A unique ID to identify the Chapter." + }, + 182: { + name: "ChapterAtom", + level: 3, + recursive: "1", + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !0, + description: "Contains the atom information to use as the chapter atom (apply to all tracks)." + }, + 17885: { + name: "EditionFlagOrdered", + level: 3, + type: "u", + minver: 1, + webm: !1, + default: 0, + range: "0-1", + description: "Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)" + }, + 17883: { + name: "EditionFlagDefault", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + range: "0-1", + description: "If a flag is set (1) the edition should be used as the default one. (1 bit)" + }, + 17853: { + name: "EditionFlagHidden", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + range: "0-1", + description: "If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)" + }, + 17852: { + name: "EditionUID", + level: 3, + type: "u", + minver: 1, + webm: !1, + range: "not 0", + description: "A unique ID to identify the edition. It's useful for tagging an edition." + }, + 17849: { + name: "EditionEntry", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !0, + description: "Contains all information about a segment edition." + }, + 272869232: { + name: "Chapters", + level: 1, + type: "m", + minver: 1, + webm: !0, + description: "A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation." + }, + 18094: { + name: "FileUID", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + range: "not 0", + description: "Unique ID representing the file, as random as possible." + }, + 18012: { + name: "FileData", + level: 3, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "The data of the file." + }, + 18030: { + name: "FileName", + level: 3, + type: "8", + mandatory: !0, + minver: 1, + webm: !1, + description: "Filename of the attached file." + }, + 18046: { + name: "FileDescription", + level: 3, + type: "8", + minver: 1, + webm: !1, + description: "A human-friendly name for the attached file." + }, + 24999: { + name: "AttachedFile", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "An attached file." + }, + 423732329: { + name: "Attachments", + level: 1, + type: "m", + minver: 1, + webm: !1, + description: "Contain attached files." + }, + 235: { + name: "CueRefCodecState", + level: 5, + type: "u", + webm: !1, + default: 0, + description: "The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry." + }, + 21343: { + name: "CueRefNumber", + level: 5, + type: "u", + webm: !1, + default: 1, + range: "not 0", + description: "Number of the referenced Block of Track X in the specified Cluster." + }, + 219: { + name: "CueReference", + level: 4, + type: "m", + multiple: !0, + minver: 2, + webm: !1, + description: "The Clusters containing the required referenced Blocks." + }, + 234: { + name: "CueCodecState", + level: 4, + type: "u", + minver: 2, + webm: !1, + default: 0, + description: "The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry." + }, + 178: { + name: "CueDuration", + level: 4, + type: "u", + mandatory: !1, + minver: 4, + webm: !1, + description: "The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues." + }, + 240: { + name: "CueRelativePosition", + level: 4, + type: "u", + mandatory: !1, + minver: 4, + webm: !1, + description: "The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.", + position: "clusterRelative" + }, + 241: { + name: "CueClusterPosition", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + description: "The position of the Cluster containing the required Block.", + position: "segment" + }, + 247: { + name: "CueTrack", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "The track for which a position is given." + }, + 183: { + name: "CueTrackPositions", + level: 3, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Contain positions for different tracks corresponding to the timestamp." + }, + 179: { + name: "CueTime", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + description: "Absolute timestamp according to the segment time base." + }, + 187: { + name: "CuePoint", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Contains all information relative to a seek point in the segment." + }, + 475249515: { + name: "Cues", + level: 1, + type: "m", + minver: 1, + description: 'A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non "live" streams.' + }, + 18406: { + name: "ContentSigHashAlgo", + level: 6, + type: "u", + minver: 1, + webm: !1, + default: 0, + description: "The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5" + }, + 18405: { + name: "ContentSigAlgo", + level: 6, + type: "u", + minver: 1, + webm: !1, + default: 0, + description: "The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA" + }, + 18404: { + name: "ContentSigKeyID", + level: 6, + type: "b", + minver: 1, + webm: !1, + description: "This is the ID of the private key the data was signed with." + }, + 18403: { + name: "ContentSignature", + level: 6, + type: "b", + minver: 1, + webm: !1, + description: "A cryptographic signature of the contents." + }, + 18402: { + name: "ContentEncKeyID", + level: 6, + type: "b", + minver: 1, + webm: !1, + description: "For public key algorithms this is the ID of the public key the the data was encrypted with." + }, + 18401: { + name: "ContentEncAlgo", + level: 6, + type: "u", + minver: 1, + webm: !1, + default: 0, + description: "The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES" + }, + 28032: { + name: "ContentEncodings", + level: 3, + type: "m", + minver: 1, + webm: !1, + description: "Settings for several content encoding mechanisms like compression or encryption." + }, + 196: { + name: "TrickMasterTrackSegmentUID", + level: 3, + type: "b", + divx: !0, + bytesize: 16, + description: "DivX trick track extenstions" + }, + 199: { + name: "TrickMasterTrackUID", + level: 3, + type: "u", + divx: !0, + description: "DivX trick track extenstions" + }, + 198: { + name: "TrickTrackFlag", + level: 3, + type: "u", + divx: !0, + default: 0, + description: "DivX trick track extenstions" + }, + 193: { + name: "TrickTrackSegmentUID", + level: 3, + type: "b", + divx: !0, + bytesize: 16, + description: "DivX trick track extenstions" + }, + 192: { + name: "TrickTrackUID", + level: 3, + type: "u", + divx: !0, + description: "DivX trick track extenstions" + }, + 237: { + name: "TrackJoinUID", + level: 5, + type: "u", + mandatory: !0, + multiple: !0, + minver: 3, + webm: !1, + range: "not 0", + description: "The trackUID number of a track whose blocks are used to create this virtual track." + }, + 233: { + name: "TrackJoinBlocks", + level: 4, + type: "m", + minver: 3, + webm: !1, + description: "Contains the list of all tracks whose Blocks need to be combined to create this virtual track" + }, + 230: { + name: "TrackPlaneType", + level: 6, + type: "u", + mandatory: !0, + minver: 3, + webm: !1, + description: "The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background)." + }, + 229: { + name: "TrackPlaneUID", + level: 6, + type: "u", + mandatory: !0, + minver: 3, + webm: !1, + range: "not 0", + description: "The trackUID number of the track representing the plane." + }, + 228: { + name: "TrackPlane", + level: 5, + type: "m", + mandatory: !0, + multiple: !0, + minver: 3, + webm: !1, + description: "Contains a video plane track that need to be combined to create this 3D track" + }, + 227: { + name: "TrackCombinePlanes", + level: 4, + type: "m", + minver: 3, + webm: !1, + description: "Contains the list of all video plane tracks that need to be combined to create this 3D track" + }, + 226: { + name: "TrackOperation", + level: 3, + type: "m", + minver: 3, + webm: !1, + description: "Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject." + }, + 32123: { + name: "ChannelPositions", + cppname: "AudioPosition", + level: 4, + type: "b", + webm: !1, + description: "Table of horizontal angles for each successive channel, see appendix." + }, + 159: { + name: "Channels", + cppname: "AudioChannels", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + default: 1, + range: "not 0", + description: "Numbers of channels in the track." + }, + 30901: { + name: "OutputSamplingFrequency", + cppname: "AudioOutputSamplingFreq", + level: 4, + type: "f", + minver: 1, + default: "Sampling Frequency", + range: "> 0", + description: "Real output sampling frequency in Hz (used for SBR techniques)." + }, + 181: { + name: "SamplingFrequency", + cppname: "AudioSamplingFreq", + level: 4, + type: "f", + mandatory: !0, + minver: 1, + default: 8e3, + range: "> 0", + description: "Sampling frequency in Hz." + }, + 225: { + name: "Audio", + cppname: "TrackAudio", + level: 3, + type: "m", + minver: 1, + description: "Audio settings." + }, + 2327523: { + name: "FrameRate", + cppname: "VideoFrameRate", + level: 4, + type: "f", + range: "> 0", + strong: "Informational", + description: "Number of frames per second. only." + }, + 3126563: { + name: "GammaValue", + cppname: "VideoGamma", + level: 4, + type: "f", + webm: !1, + range: "> 0", + description: "Gamma Value." + }, + 3061028: { + name: "ColourSpace", + cppname: "VideoColourSpace", + level: 4, + type: "b", + minver: 1, + webm: !1, + bytesize: 4, + description: "Same value as in AVI (32 bits)." + }, + 21683: { + name: "AspectRatioType", + cppname: "VideoAspectRatio", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed)." + }, + 21682: { + name: "DisplayUnit", + cppname: "VideoDisplayUnit", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio)." + }, + 21690: { + name: "DisplayHeight", + cppname: "VideoDisplayHeight", + level: 4, + type: "u", + minver: 1, + default: "PixelHeight", + range: "not 0", + description: "Height of the video frames to display. The default value is only valid when DisplayUnit is 0." + }, + 21680: { + name: "DisplayWidth", + cppname: "VideoDisplayWidth", + level: 4, + type: "u", + minver: 1, + default: "PixelWidth", + range: "not 0", + description: "Width of the video frames to display. The default value is only valid when DisplayUnit is 0." + }, + 21725: { + name: "PixelCropRight", + cppname: "VideoPixelCropRight", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "The number of video pixels to remove on the right of the image." + }, + 21708: { + name: "PixelCropLeft", + cppname: "VideoPixelCropLeft", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "The number of video pixels to remove on the left of the image." + }, + 21691: { + name: "PixelCropTop", + cppname: "VideoPixelCropTop", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "The number of video pixels to remove at the top of the image." + }, + 21674: { + name: "PixelCropBottom", + cppname: "VideoPixelCropBottom", + level: 4, + type: "u", + minver: 1, + default: 0, + description: "The number of video pixels to remove at the bottom of the image (for HDTV content)." + }, + 186: { + name: "PixelHeight", + cppname: "VideoPixelHeight", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "Height of the encoded video frames in pixels." + }, + 176: { + name: "PixelWidth", + cppname: "VideoPixelWidth", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "Width of the encoded video frames in pixels." + }, + 21433: { + name: "OldStereoMode", + level: 4, + type: "u", + maxver: "0", + webm: !1, + divx: !1, + description: "DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes)." + }, + 21440: { + name: "AlphaMode", + cppname: "VideoAlphaMode", + level: 4, + type: "u", + minver: 3, + webm: !0, + default: 0, + description: "Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data." + }, + 21432: { + name: "StereoMode", + cppname: "VideoStereoMode", + level: 4, + type: "u", + minver: 3, + webm: !0, + default: 0, + description: "Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes." + }, + 154: { + name: "FlagInterlaced", + cppname: "VideoFlagInterlaced", + level: 4, + type: "u", + mandatory: !0, + minver: 2, + webm: !0, + default: 0, + range: "0-1", + description: "Set if the video is interlaced. (1 bit)" + }, + 224: { + name: "Video", + cppname: "TrackVideo", + level: 3, + type: "m", + minver: 1, + description: "Video settings." + }, + 26277: { + name: "TrackTranslateTrackID", + level: 4, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used." + }, + 26303: { + name: "TrackTranslateCodec", + level: 4, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + description: "The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)." + }, + 26364: { + name: "TrackTranslateEditionUID", + level: 4, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + description: "Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment." + }, + 22203: { + name: "SeekPreRoll", + level: 3, + type: "u", + mandatory: !0, + multiple: !1, + default: 0, + minver: 4, + webm: !0, + description: "After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid." + }, + 22186: { + name: "CodecDelay", + level: 3, + type: "u", + multiple: !1, + default: 0, + minver: 4, + webm: !0, + description: "CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster." + }, + 28587: { + name: "TrackOverlay", + level: 3, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + description: "Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc." + }, + 170: { + name: "CodecDecodeAll", + level: 3, + type: "u", + mandatory: !0, + minver: 2, + webm: !1, + default: 1, + range: "0-1", + description: "The codec can decode potentially damaged data (1 bit)." + }, + 2536e3: { + name: "CodecDownloadURL", + level: 3, + type: "s", + multiple: !0, + webm: !1, + description: "A URL to download about the codec used." + }, + 3883072: { + name: "CodecInfoURL", + level: 3, + type: "s", + multiple: !0, + webm: !1, + description: "A URL to find information about the codec used." + }, + 3839639: { + name: "CodecSettings", + level: 3, + type: "8", + webm: !1, + description: "A string describing the encoding setting used." + }, + 25506: { + name: "CodecPrivate", + level: 3, + type: "b", + minver: 1, + description: "Private data only known to the codec." + }, + 2274716: { + name: "Language", + cppname: "TrackLanguage", + level: 3, + type: "s", + minver: 1, + default: "eng", + description: "Specifies the language of the track in the Matroska languages form." + }, + 21358: { + name: "Name", + cppname: "TrackName", + level: 3, + type: "8", + minver: 1, + description: "A human-readable track name." + }, + 21998: { + name: "MaxBlockAdditionID", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "The maximum value of BlockAdditions for this track." + }, + 21375: { + name: "TrackOffset", + level: 3, + type: "i", + webm: !1, + default: 0, + description: "A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track." + }, + 2306383: { + name: "TrackTimecodeScale", + level: 3, + type: "f", + mandatory: !0, + minver: 1, + maxver: "3", + webm: !1, + default: 1, + range: "> 0", + description: "DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs)." + }, + 2313850: { + name: "DefaultDecodedFieldDuration", + cppname: "TrackDefaultDecodedFieldDuration", + level: 3, + type: "u", + minver: 4, + range: "not 0", + description: "The period in nanoseconds (not scaled by TimcodeScale)\nbetween two successive fields at the output of the decoding process (see the notes)" + }, + 2352003: { + name: "DefaultDuration", + cppname: "TrackDefaultDuration", + level: 3, + type: "u", + minver: 1, + range: "not 0", + description: "Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block)." + }, + 28152: { + name: "MaxCache", + cppname: "TrackMaxCache", + level: 3, + type: "u", + minver: 1, + webm: !1, + description: "The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed." + }, + 28135: { + name: "MinCache", + cppname: "TrackMinCache", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used." + }, + 156: { + name: "FlagLacing", + cppname: "TrackFlagLacing", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + default: 1, + range: "0-1", + description: "Set if the track may contain blocks using lacing. (1 bit)" + }, + 21930: { + name: "FlagForced", + cppname: "TrackFlagForced", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + default: 0, + range: "0-1", + description: "Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)" + }, + 185: { + name: "FlagEnabled", + cppname: "TrackFlagEnabled", + level: 3, + type: "u", + mandatory: !0, + minver: 2, + webm: !0, + default: 1, + range: "0-1", + description: "Set if the track is usable. (1 bit)" + }, + 29637: { + name: "TrackUID", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file." + }, + 215: { + name: "TrackNumber", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + range: "not 0", + description: "The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number)." + }, + 174: { + name: "TrackEntry", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Describes a track with all elements." + }, + 374648427: { + name: "Tracks", + level: 1, + type: "m", + multiple: !0, + minver: 1, + description: "A top-level block of information with many tracks described." + }, + 175: { + name: "EncryptedBlock", + level: 2, + type: "b", + multiple: !0, + webm: !1, + description: "Similar to EncryptedBlock Structure)" + }, + 202: { + name: "ReferenceTimeCode", + level: 4, + type: "u", + multiple: !1, + mandatory: !0, + minver: 0, + webm: !1, + divx: !0, + description: "DivX trick track extenstions" + }, + 201: { + name: "ReferenceOffset", + level: 4, + type: "u", + multiple: !1, + mandatory: !0, + minver: 0, + webm: !1, + divx: !0, + description: "DivX trick track extenstions" + }, + 200: { + name: "ReferenceFrame", + level: 3, + type: "m", + multiple: !1, + minver: 0, + webm: !1, + divx: !0, + description: "DivX trick track extenstions" + }, + 207: { + name: "SliceDuration", + level: 5, + type: "u", + default: 0, + description: "The (scaled) duration to apply to the element." + }, + 206: { + name: "Delay", + cppname: "SliceDelay", + level: 5, + type: "u", + default: 0, + description: "The (scaled) delay to apply to the element." + }, + 203: { + name: "BlockAdditionID", + cppname: "SliceBlockAddID", + level: 5, + type: "u", + default: 0, + description: "The ID of the BlockAdditional element (0 is the main Block)." + }, + 205: { + name: "FrameNumber", + cppname: "SliceFrameNumber", + level: 5, + type: "u", + default: 0, + description: "The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame)." + }, + 204: { + name: "LaceNumber", + cppname: "SliceLaceNumber", + level: 5, + type: "u", + minver: 1, + default: 0, + divx: !1, + description: "The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback." + }, + 232: { + name: "TimeSlice", + level: 4, + type: "m", + multiple: !0, + minver: 1, + divx: !1, + description: "Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback." + }, + 142: { + name: "Slices", + level: 3, + type: "m", + minver: 1, + divx: !1, + description: "Contains slices description." + }, + 30114: { + name: "DiscardPadding", + level: 3, + type: "i", + minver: 4, + webm: !0, + description: "Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback." + }, + 164: { + name: "CodecState", + level: 3, + type: "b", + minver: 2, + webm: !1, + description: "The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry." + }, + 253: { + name: "ReferenceVirtual", + level: 3, + type: "i", + webm: !1, + description: "Relative position of the data that should be in position of the virtual block." + }, + 251: { + name: "ReferenceBlock", + level: 3, + type: "i", + multiple: !0, + minver: 1, + description: "Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to." + }, + 250: { + name: "ReferencePriority", + cppname: "FlagReferenced", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 0, + description: "This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced." + }, + 155: { + name: "BlockDuration", + level: 3, + type: "u", + minver: 1, + default: "TrackDuration", + description: 'The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in "display" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.' + }, + 165: { + name: "BlockAdditional", + level: 5, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "Interpreted by the codec as it wishes (using the BlockAddID)." + }, + 238: { + name: "BlockAddID", + level: 5, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + default: 1, + range: "not 0", + description: "An ID to identify the BlockAdditional level." + }, + 166: { + name: "BlockMore", + level: 4, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + webm: !1, + description: "Contain the BlockAdditional and some parameters." + }, + 30113: { + name: "BlockAdditions", + level: 3, + type: "m", + minver: 1, + webm: !1, + description: "Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data." + }, + 162: { + name: "BlockVirtual", + level: 3, + type: "b", + webm: !1, + description: "A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)" + }, + 161: { + name: "Block", + level: 3, + type: "b", + mandatory: !0, + minver: 1, + description: "Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)" + }, + 160: { + name: "BlockGroup", + level: 2, + type: "m", + multiple: !0, + minver: 1, + description: "Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock." + }, + 163: { + name: "SimpleBlock", + level: 2, + type: "b", + multiple: !0, + minver: 2, + webm: !0, + divx: !0, + description: "Similar to SimpleBlock Structure" + }, + 171: { + name: "PrevSize", + cppname: "ClusterPrevSize", + level: 2, + type: "u", + minver: 1, + description: "Size of the previous Cluster, in octets. Can be useful for backward playing.", + position: "prevCluster" + }, + 167: { + name: "Position", + cppname: "ClusterPosition", + level: 2, + type: "u", + minver: 1, + webm: !1, + description: "The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.", + position: "segment" + }, + 22743: { + name: "SilentTrackNumber", + cppname: "ClusterSilentTrackNumber", + level: 3, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + description: "One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster." + }, + 231: { + name: "Timecode", + cppname: "ClusterTimecode", + level: 2, + type: "u", + mandatory: !0, + minver: 1, + description: "Absolute timestamp of the cluster (based on TimecodeScale)." + }, + 524531317: { + name: "Cluster", + level: 1, + type: "m", + multiple: !0, + minver: 1, + description: "The lower level element containing the (monolithic) Block structure." + }, + 19840: { + name: "MuxingApp", + level: 2, + type: "8", + mandatory: !0, + minver: 1, + description: 'Muxing application or library ("libmatroska-0.4.3").' + }, + 31657: { + name: "Title", + level: 2, + type: "8", + minver: 1, + webm: !1, + description: "General name of the segment." + }, + 2807730: { + name: "TimecodeScaleDenominator", + level: 2, + type: "u", + mandatory: !0, + minver: 4, + default: "1000000000", + description: "Timestamp scale numerator, see TimecodeScale." + }, + 2807729: { + name: "TimecodeScale", + level: 2, + type: "u", + mandatory: !0, + minver: 1, + default: "1000000", + description: "Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds)." + }, + 27045: { + name: "ChapterTranslateID", + level: 3, + type: "b", + mandatory: !0, + minver: 1, + webm: !1, + description: "The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used." + }, + 27071: { + name: "ChapterTranslateCodec", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + webm: !1, + description: "The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)." + }, + 27132: { + name: "ChapterTranslateEditionUID", + level: 3, + type: "u", + multiple: !0, + minver: 1, + webm: !1, + description: "Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment." + }, + 4096955: { + name: "NextFilename", + level: 2, + type: "8", + minver: 1, + webm: !1, + description: "An escaped filename corresponding to the next segment." + }, + 4110627: { + name: "NextUID", + level: 2, + type: "b", + minver: 1, + webm: !1, + bytesize: 16, + description: "A unique ID to identify the next chained segment (128 bits)." + }, + 3965867: { + name: "PrevFilename", + level: 2, + type: "8", + minver: 1, + webm: !1, + description: "An escaped filename corresponding to the previous segment." + }, + 3979555: { + name: "PrevUID", + level: 2, + type: "b", + minver: 1, + webm: !1, + bytesize: 16, + description: "A unique ID to identify the previous chained segment (128 bits)." + }, + 29604: { + name: "SegmentUID", + level: 2, + type: "b", + minver: 1, + webm: !1, + range: "not 0", + bytesize: 16, + description: "A randomly generated unique ID to identify the current segment between many others (128 bits)." + }, + 357149030: { + name: "Info", + level: 1, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Contains miscellaneous general information and statistics on the file." + }, + 21420: { + name: "SeekPosition", + level: 3, + type: "u", + mandatory: !0, + minver: 1, + description: "The position of the element in the segment in octets (0 = first level 1 element).", + position: "segment" + }, + 21419: { + name: "SeekID", + level: 3, + type: "b", + mandatory: !0, + minver: 1, + description: "The binary ID corresponding to the element name.", + type2: "ebmlID" + }, + 19899: { + name: "Seek", + cppname: "SeekPoint", + level: 2, + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Contains a single seek entry to an EBML element." + }, + 290298740: { + name: "SeekHead", + cppname: "SeekHeader", + level: 1, + type: "m", + multiple: !0, + minver: 1, + description: "Contains the position of other level 1 elements." + }, + 32379: { + name: "SignatureElementList", + level: 2, + type: "m", + multiple: !0, + webm: !1, + i: "Cluster|Block|BlockAdditional", + description: "A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption." + }, + 32347: { + name: "SignatureElements", + level: 1, + type: "m", + webm: !1, + description: "Contains elements that will be used to compute the signature." + }, + 32437: { + name: "Signature", + level: 1, + type: "b", + webm: !1, + description: "The signature of the data (until a new." + }, + 32421: { + name: "SignaturePublicKey", + level: 1, + type: "b", + webm: !1, + description: "The public key to use with the algorithm (in the case of a PKI-based signature)." + }, + 32410: { + name: "SignatureHash", + level: 1, + type: "u", + webm: !1, + description: "Hash algorithm used (1=SHA1-160, 2=MD5)." + }, + 32394: { + name: "SignatureAlgo", + level: 1, + type: "u", + webm: !1, + description: "Signature algorithm used (1=RSA, 2=elliptic)." + }, + 458458727: { + name: "SignatureSlot", + level: -1, + type: "m", + multiple: !0, + webm: !1, + description: "Contain signature of some (coming) elements in the stream." + }, + 191: { + name: "CRC-32", + level: -1, + type: "b", + minver: 1, + webm: !1, + description: "The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian", + crc: !0 + }, + 236: { + name: "Void", + level: -1, + type: "b", + minver: 1, + description: "Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use." + }, + 17139: { + name: "EBMLMaxSizeLength", + level: 1, + type: "u", + mandatory: !0, + default: 8, + minver: 1, + description: "The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid." + }, + 17138: { + name: "EBMLMaxIDLength", + level: 1, + type: "u", + mandatory: !0, + default: 4, + minver: 1, + description: "The maximum length of the IDs you'll find in this file (4 or less in Matroska)." + }, + 17143: { + name: "EBMLReadVersion", + level: 1, + type: "u", + mandatory: !0, + default: 1, + minver: 1, + description: "The minimum EBML version a parser has to support to read this file." + }, + 440786851: { + name: "EBML", + level: "0", + type: "m", + mandatory: !0, + multiple: !0, + minver: 1, + description: "Set the EBML characteristics of the data to follow. Each EBML document has to start with this." + } + }, byName = {}, schema = { + byEbmlID: byEbmlID, + byName: byName + }; + for (var ebmlID in byEbmlID) byName[byEbmlID[ebmlID].name.replace("-", "_")] = parseInt(ebmlID, 10); + module.exports = schema; +}, function(module, exports, __webpack_require__) { + "use strict"; + var key, buffer = __webpack_require__(10), Buffer = buffer.Buffer, safer = {}; + for (key in buffer) buffer.hasOwnProperty(key) && "SlowBuffer" !== key && "Buffer" !== key && (safer[key] = buffer[key]); + var Safer = safer.Buffer = {}; + for (key in Buffer) Buffer.hasOwnProperty(key) && "allocUnsafe" !== key && "allocUnsafeSlow" !== key && (Safer[key] = Buffer[key]); + if (safer.Buffer.prototype = Buffer.prototype, Safer.from && Safer.from !== Uint8Array.from || (Safer.from = function(value, encodingOrOffset, length) { + if ("number" == typeof value) throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); + if (value && void 0 === value.length) throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + return Buffer(value, encodingOrOffset, length); + }), Safer.alloc || (Safer.alloc = function(size, fill, encoding) { + if ("number" != typeof size) throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); + if (size < 0 || size >= 2 * (1 << 30)) throw new RangeError('The value "' + size + '" is invalid for option "size"'); + var buf = Buffer(size); + return fill && 0 !== fill.length ? "string" == typeof encoding ? buf.fill(fill, encoding) : buf.fill(fill) : buf.fill(0), + buf; + }), !safer.kStringMaxLength) try { + safer.kStringMaxLength = process.binding("buffer").kStringMaxLength; + } catch (e) {} + safer.constants || (safer.constants = { + MAX_LENGTH: safer.kMaxLength + }, safer.kStringMaxLength && (safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength)), + module.exports = safer; +}, function(module, exports, __webpack_require__) { + var assert = __webpack_require__(22), Stream = __webpack_require__(3).Stream, util = __webpack_require__(0), UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/; + function _capitalize(str) { + return str.charAt(0).toUpperCase() + str.slice(1); + } + function _toss(name, expected, oper, arg, actual) { + throw new assert.AssertionError({ + message: util.format("%s (%s) is required", name, expected), + actual: void 0 === actual ? typeof arg : actual(arg), + expected: expected, + operator: oper || "===", + stackStartFunction: _toss.caller + }); + } + function _getClass(arg) { + return Object.prototype.toString.call(arg).slice(8, -1); + } + function noop() {} + var types = { + bool: { + check: function(arg) { + return "boolean" == typeof arg; + } + }, + func: { + check: function(arg) { + return "function" == typeof arg; + } + }, + string: { + check: function(arg) { + return "string" == typeof arg; + } + }, + object: { + check: function(arg) { + return "object" == typeof arg && null !== arg; + } + }, + number: { + check: function(arg) { + return "number" == typeof arg && !isNaN(arg); + } + }, + finite: { + check: function(arg) { + return "number" == typeof arg && !isNaN(arg) && isFinite(arg); + } + }, + buffer: { + check: function(arg) { + return Buffer.isBuffer(arg); + }, + operator: "Buffer.isBuffer" + }, + array: { + check: function(arg) { + return Array.isArray(arg); + }, + operator: "Array.isArray" + }, + stream: { + check: function(arg) { + return arg instanceof Stream; + }, + operator: "instanceof", + actual: _getClass + }, + date: { + check: function(arg) { + return arg instanceof Date; + }, + operator: "instanceof", + actual: _getClass + }, + regexp: { + check: function(arg) { + return arg instanceof RegExp; + }, + operator: "instanceof", + actual: _getClass + }, + uuid: { + check: function(arg) { + return "string" == typeof arg && UUID_REGEXP.test(arg); + }, + operator: "isUUID" + } + }; + module.exports = (function _setExports(ndebug) { + var out, keys = Object.keys(types); + return out = process.env.NODE_NDEBUG ? noop : function(arg, msg) { + arg || _toss(msg, "true", arg); + }, keys.forEach((function(k) { + if (ndebug) out[k] = noop; else { + var type = types[k]; + out[k] = function(arg, msg) { + type.check(arg) || _toss(msg, k, type.operator, arg, type.actual); + }; + } + })), keys.forEach((function(k) { + var name = "optional" + _capitalize(k); + if (ndebug) out[name] = noop; else { + var type = types[k]; + out[name] = function(arg, msg) { + null != arg && (type.check(arg) || _toss(msg, k, type.operator, arg, type.actual)); + }; + } + })), keys.forEach((function(k) { + var name = "arrayOf" + _capitalize(k); + if (ndebug) out[name] = noop; else { + var type = types[k], expected = "[" + k + "]"; + out[name] = function(arg, msg) { + var i; + for (Array.isArray(arg) || _toss(msg, expected, type.operator, arg, type.actual), + i = 0; i < arg.length; i++) type.check(arg[i]) || _toss(msg, expected, type.operator, arg, type.actual); + }; + } + })), keys.forEach((function(k) { + var name = "optionalArrayOf" + _capitalize(k); + if (ndebug) out[name] = noop; else { + var type = types[k], expected = "[" + k + "]"; + out[name] = function(arg, msg) { + var i; + if (null != arg) for (Array.isArray(arg) || _toss(msg, expected, type.operator, arg, type.actual), + i = 0; i < arg.length; i++) type.check(arg[i]) || _toss(msg, expected, type.operator, arg, type.actual); + }; + } + })), Object.keys(assert).forEach((function(k) { + out[k] = "AssertionError" !== k && ndebug ? noop : assert[k]; + })), out._setExports = _setExports, out; + })(process.env.NODE_NDEBUG); +}, function(module, exports, __webpack_require__) { + "use strict"; + var tryCatchTarget, es5 = __webpack_require__(66), canEvaluate = "undefined" == typeof navigator, errorObj = { e: {} }, globalObject = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0 !== this ? this : null; function tryCatcher() { @@ -5470,13 +5627,227 @@ ret.lastLineError = e; } module.exports = ret; +}, function(module, exports, __webpack_require__) { + "use strict"; + var tryCatchTarget, es5 = __webpack_require__(81), canEvaluate = "undefined" == typeof navigator, errorObj = { + e: {} + }, globalObject = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0 !== this ? this : null; + function tryCatcher() { + try { + var target = tryCatchTarget; + return tryCatchTarget = null, target.apply(this, arguments); + } catch (e) { + return errorObj.e = e, errorObj; + } + } + function isPrimitive(val) { + return null == val || !0 === val || !1 === val || "string" == typeof val || "number" == typeof val; + } + function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: !0, + enumerable: !1, + writable: !0 + }; + return es5.defineProperty(obj, name, descriptor), obj; + } + var inheritedDataKeys = (function() { + var excludedPrototypes = [ Array.prototype, Object.prototype, Function.prototype ], isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) if (excludedPrototypes[i] === val) return !0; + return !1; + }; + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + for (var ret = [], visitedKeys = Object.create(null); null != obj && !isExcludedProto(obj); ) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!visitedKeys[key]) { + visitedKeys[key] = !0; + var desc = Object.getOwnPropertyDescriptor(obj, key); + null != desc && null == desc.get && null == desc.set && ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + enumeration: for (var key in obj) if (hasProp.call(obj, key)) ret.push(key); else { + for (var i = 0; i < excludedPrototypes.length; ++i) if (hasProp.call(excludedPrototypes[i], key)) continue enumeration; + ret.push(key); + } + return ret; + }; + })(), thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; + var rident = /^[a-z$_][a-z$_0-9]*$/i; + function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } + } + function isError(obj) { + return null !== obj && "object" == typeof obj && "string" == typeof obj.message && "string" == typeof obj.name; + } + function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); + } + var ensureErrorObject = "stack" in new Error ? function(value) { + return canAttachTrace(value) ? value : new Error(safeToString(value)); + } : function(value) { + if (canAttachTrace(value)) return value; + try { + throw new Error(safeToString(value)); + } catch (err) { + return err; + } + }; + function classString(obj) { + return {}.toString.call(obj); + } + var asArray = function(v) { + return es5.isArray(v) ? v : null; + }; + if ("undefined" != typeof Symbol && Symbol.iterator) { + var ArrayFrom = "function" == typeof Array.from ? function(v) { + return Array.from(v); + } : function(v) { + for (var itResult, ret = [], it = v[Symbol.iterator](); !(itResult = it.next()).done; ) ret.push(itResult.value); + return ret; + }; + asArray = function(v) { + return es5.isArray(v) ? v : null != v && "function" == typeof v[Symbol.iterator] ? ArrayFrom(v) : null; + }; + } + var isNode = "undefined" != typeof process && "[object process]" === classString(process).toLowerCase(), hasEnvVariables = "undefined" != typeof process && void 0 !== process.env; + var version, ret = { + isClass: function(fn) { + try { + if ("function" == typeof fn) { + var keys = es5.names(fn.prototype), hasMethods = es5.isES5 && keys.length > 1, hasMethodsOtherThanConstructor = keys.length > 0 && !(1 === keys.length && "constructor" === keys[0]), hasThisAssignmentAndStaticMethods = thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + if (hasMethods || hasMethodsOtherThanConstructor || hasThisAssignmentAndStaticMethods) return !0; + } + return !1; + } catch (e) { + return !1; + } + }, + isIdentifier: function(str) { + return rident.test(str); + }, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: function(obj, key, defaultValue) { + if (!es5.isES5) return {}.hasOwnProperty.call(obj, key) ? obj[key] : void 0; + var desc = Object.getOwnPropertyDescriptor(obj, key); + return null != desc ? null == desc.get && null == desc.set ? desc.value : defaultValue : void 0; + }, + thrower: function(r) { + throw r; + }, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: function(value) { + return "function" == typeof value || "object" == typeof value && null !== value; + }, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: function(fn) { + return tryCatchTarget = fn, tryCatcher; + }, + inherits: function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + function T() { + for (var propertyName in this.constructor = Child, this.constructor$ = Parent, Parent.prototype) hasProp.call(Parent.prototype, propertyName) && "$" !== propertyName.charAt(propertyName.length - 1) && (this[propertyName + "$"] = Parent.prototype[propertyName]); + } + return T.prototype = Parent.prototype, Child.prototype = new T, Child.prototype; + }, + withAppended: function(target, appendee) { + var i, len = target.length, ret = new Array(len + 1); + for (i = 0; i < len; ++i) ret[i] = target[i]; + return ret[i] = appendee, ret; + }, + maybeWrapAsError: function(maybeError) { + return isPrimitive(maybeError) ? new Error(safeToString(maybeError)) : maybeError; + }, + toFastProperties: function(obj) { + function FakeConstructor() {} + FakeConstructor.prototype = obj; + for (var l = 8; l--; ) new FakeConstructor; + return obj; + }, + filledRange: function(count, prefix, suffix) { + for (var ret = new Array(count), i = 0; i < count; ++i) ret[i] = prefix + i + suffix; + return ret; + }, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: function(e) { + return null != e && (e instanceof Error.__BluebirdErrorTypes__.OperationalError || !0 === e.isOperational); + }, + markAsOriginatingFromRejection: function(e) { + try { + notEnumerableProp(e, "isOperational", !0); + } catch (ignore) {} + }, + classString: classString, + copyDescriptors: function(from, to, filter) { + for (var keys = es5.names(from), i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + }, + hasDevTools: "undefined" != typeof chrome && chrome && "function" == typeof chrome.loadTimes, + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: function(key) { + return hasEnvVariables ? process.env[key] : void 0; + }, + global: globalObject, + getNativePromise: function() { + if ("function" == typeof Promise) try { + var promise = new Promise((function() {})); + if ("[object Promise]" === {}.toString.call(promise)) return Promise; + } catch (e) {} + }, + domainBind: function(self, cb) { + return self.bind(cb); + } + }; + ret.isRecentNode = ret.isNode && (0 === (version = process.versions.node.split(".").map(Number))[0] && version[1] > 10 || version[0] > 0), + ret.isNode && ret.toFastProperties(process); + try { + throw new Error; + } catch (e) { + ret.lastLineError = e; + } + module.exports = ret; }, function(module, exports) { module.exports = function(conf, csName, lang) { this.confidence = conf, this.charsetName = csName, this.lang = lang; }; }, function(module, exports, __webpack_require__) { "use strict"; - var schema = __webpack_require__(10), tools = __webpack_require__(60); + var schema = __webpack_require__(13), tools = __webpack_require__(75); module.exports = { addAttribute: function(proto, ebmlName) { var ebmlID = schema.byName[ebmlName]; @@ -5569,7 +5940,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var schema = __webpack_require__(9), tools = __webpack_require__(57); + var schema = __webpack_require__(12), tools = __webpack_require__(72); module.exports = { addAttribute: function(proto, ebmlName) { var ebmlID = schema.byName[ebmlName]; @@ -5660,22 +6031,564 @@ }; } }; +}, function(module, exports) { + module.exports = require("https"); +}, function(module, exports) { + module.exports = require("assert"); }, function(module, exports) { module.exports = require("os"); +}, function(module, exports) { + module.exports = require("querystring"); +}, function(module, exports, __webpack_require__) { + var buffer = __webpack_require__(10), Buffer = buffer.Buffer; + function copyProps(src, dst) { + for (var key in src) dst[key] = src[key]; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length); + } + Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow ? module.exports = buffer : (copyProps(buffer, exports), + exports.Buffer = SafeBuffer), copyProps(Buffer, SafeBuffer), SafeBuffer.from = function(arg, encodingOrOffset, length) { + if ("number" == typeof arg) throw new TypeError("Argument must not be a number"); + return Buffer(arg, encodingOrOffset, length); + }, SafeBuffer.alloc = function(size, fill, encoding) { + if ("number" != typeof size) throw new TypeError("Argument must be a number"); + var buf = Buffer(size); + return void 0 !== fill ? "string" == typeof encoding ? buf.fill(fill, encoding) : buf.fill(fill) : buf.fill(0), + buf; + }, SafeBuffer.allocUnsafe = function(size) { + if ("number" != typeof size) throw new TypeError("Argument must be a number"); + return Buffer(size); + }, SafeBuffer.allocUnsafeSlow = function(size) { + if ("number" != typeof size) throw new TypeError("Argument must be a number"); + return buffer.SlowBuffer(size); + }; +}, function(module, exports, __webpack_require__) { + module.exports = Key; + var edCompat, assert = __webpack_require__(15), algs = __webpack_require__(30), crypto = __webpack_require__(9), Fingerprint = __webpack_require__(97), Signature = __webpack_require__(48), DiffieHellman = __webpack_require__(233).DiffieHellman, errs = __webpack_require__(44), utils = __webpack_require__(27), PrivateKey = __webpack_require__(28); + try { + edCompat = __webpack_require__(479); + } catch (e) {} + var InvalidAlgorithmError = errs.InvalidAlgorithmError, KeyParseError = errs.KeyParseError, formats = {}; + function Key(opts) { + assert.object(opts, "options"), assert.arrayOfObject(opts.parts, "options.parts"), + assert.string(opts.type, "options.type"), assert.optionalString(opts.comment, "options.comment"); + var algInfo = algs.info[opts.type]; + if ("object" != typeof algInfo) throw new InvalidAlgorithmError(opts.type); + for (var sz, partLookup = {}, i = 0; i < opts.parts.length; ++i) { + var part = opts.parts[i]; + partLookup[part.name] = part; + } + if (this.type = opts.type, this.parts = opts.parts, this.part = partLookup, this.comment = void 0, + this.source = opts.source, this._rfc4253Cache = opts._rfc4253Cache, this._hashCache = {}, + this.curve = void 0, "ecdsa" === this.type) { + var curve = this.part.curve.data.toString(); + this.curve = curve, sz = algs.curves[curve].size; + } else if ("ed25519" === this.type || "curve25519" === this.type) sz = 256, this.curve = "curve25519"; else { + var szPart = this.part[algInfo.sizePart]; + sz = 8 * (sz = szPart.data.length) - utils.countZeros(szPart.data); + } + this.size = sz; + } + formats.auto = __webpack_require__(480), formats.pem = __webpack_require__(56), + formats.pkcs1 = __webpack_require__(234), formats.pkcs8 = __webpack_require__(101), + formats.rfc4253 = __webpack_require__(57), formats.ssh = __webpack_require__(482), + formats["ssh-private"] = __webpack_require__(152), formats.openssh = formats["ssh-private"], + formats.dnssec = __webpack_require__(235), formats.putty = __webpack_require__(483), + formats.ppk = formats.putty, Key.formats = formats, Key.prototype.toBuffer = function(format, options) { + return void 0 === format && (format = "ssh"), assert.string(format, "format"), assert.object(formats[format], "formats[format]"), + assert.optionalObject(options, "options"), "rfc4253" === format ? (void 0 === this._rfc4253Cache && (this._rfc4253Cache = formats.rfc4253.write(this)), + this._rfc4253Cache) : formats[format].write(this, options); + }, Key.prototype.toString = function(format, options) { + return this.toBuffer(format, options).toString(); + }, Key.prototype.hash = function(algo, type) { + if (assert.string(algo, "algorithm"), assert.optionalString(type, "type"), void 0 === type && (type = "ssh"), + algo = algo.toLowerCase(), void 0 === algs.hashAlgs[algo]) throw new InvalidAlgorithmError(algo); + var buf, cacheKey = algo + "||" + type; + if (this._hashCache[cacheKey]) return this._hashCache[cacheKey]; + if ("ssh" === type) buf = this.toBuffer("rfc4253"); else { + if ("spki" !== type) throw new Error("Hash type " + type + " not supported"); + buf = formats.pkcs8.pkcs8ToBuffer(this); + } + var hash = crypto.createHash(algo).update(buf).digest(); + return this._hashCache[cacheKey] = hash, hash; + }, Key.prototype.fingerprint = function(algo, type) { + void 0 === algo && (algo = "sha256"), void 0 === type && (type = "ssh"), assert.string(algo, "algorithm"), + assert.string(type, "type"); + var opts = { + type: "key", + hash: this.hash(algo, type), + algorithm: algo, + hashType: type + }; + return new Fingerprint(opts); + }, Key.prototype.defaultHashAlgorithm = function() { + var hashAlgo = "sha1"; + return "rsa" === this.type && (hashAlgo = "sha256"), "dsa" === this.type && this.size > 1024 && (hashAlgo = "sha256"), + "ed25519" === this.type && (hashAlgo = "sha512"), "ecdsa" === this.type && (hashAlgo = this.size <= 256 ? "sha256" : this.size <= 384 ? "sha384" : "sha512"), + hashAlgo; + }, Key.prototype.createVerify = function(hashAlgo) { + if (void 0 === hashAlgo && (hashAlgo = this.defaultHashAlgorithm()), assert.string(hashAlgo, "hash algorithm"), + "ed25519" === this.type && void 0 !== edCompat) return new edCompat.Verifier(this, hashAlgo); + if ("curve25519" === this.type) throw new Error("Curve25519 keys are not suitable for signing or verification"); + var v, nm, err; + try { + nm = hashAlgo.toUpperCase(), v = crypto.createVerify(nm); + } catch (e) { + err = e; + } + (void 0 === v || err instanceof Error && err.message.match(/Unknown message digest/)) && (nm = "RSA-", + nm += hashAlgo.toUpperCase(), v = crypto.createVerify(nm)), assert.ok(v, "failed to create verifier"); + var oldVerify = v.verify.bind(v), key = this.toBuffer("pkcs8"), curve = this.curve, self = this; + return v.verify = function(signature, fmt) { + if (Signature.isSignature(signature, [ 2, 0 ])) return signature.type === self.type && (!signature.hashAlgorithm || signature.hashAlgorithm === hashAlgo) && (!signature.curve || "ecdsa" !== self.type || signature.curve === curve) && oldVerify(key, signature.toBuffer("asn1")); + if ("string" == typeof signature || Buffer.isBuffer(signature)) return oldVerify(key, signature, fmt); + throw Signature.isSignature(signature, [ 1, 0 ]) ? new Error("signature was created by too old a version of sshpk and cannot be verified") : new TypeError("signature must be a string, Buffer, or Signature object"); + }, v; + }, Key.prototype.createDiffieHellman = function() { + if ("rsa" === this.type) throw new Error("RSA keys do not support Diffie-Hellman"); + return new DiffieHellman(this); + }, Key.prototype.createDH = Key.prototype.createDiffieHellman, Key.parse = function(data, format, options) { + "string" != typeof data && assert.buffer(data, "data"), void 0 === format && (format = "auto"), + assert.string(format, "format"), "string" == typeof options && (options = { + filename: options + }), assert.optionalObject(options, "options"), void 0 === options && (options = {}), + assert.optionalString(options.filename, "options.filename"), void 0 === options.filename && (options.filename = "(unnamed)"), + assert.object(formats[format], "formats[format]"); + try { + var k = formats[format].read(data, options); + return k instanceof PrivateKey && (k = k.toPublic()), k.comment || (k.comment = options.filename), + k; + } catch (e) { + if ("KeyEncryptedError" === e.name) throw e; + throw new KeyParseError(options.filename, format, e); + } + }, Key.isKey = function(obj, ver) { + return utils.isCompatible(obj, Key, ver); + }, Key.prototype._sshpkApiVersion = [ 1, 7 ], Key._oldVersionDetect = function(obj) { + return assert.func(obj.toBuffer), assert.func(obj.fingerprint), obj.createDH ? [ 1, 4 ] : obj.defaultHashAlgorithm ? [ 1, 3 ] : obj.formats.auto ? [ 1, 2 ] : obj.formats.pkcs1 ? [ 1, 1 ] : [ 1, 0 ]; + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + bufferSplit: function(buf, chr) { + assert.buffer(buf), assert.string(chr); + for (var parts = [], lastPart = 0, matches = 0, i = 0; i < buf.length; ++i) if (buf[i] === chr.charCodeAt(matches) ? ++matches : matches = buf[i] === chr.charCodeAt(0) ? 1 : 0, + matches >= chr.length) { + var newPart = i + 1; + parts.push(buf.slice(lastPart, newPart - matches)), lastPart = newPart, matches = 0; + } + return lastPart <= buf.length && parts.push(buf.slice(lastPart, buf.length)), parts; + }, + addRSAMissing: function(key) { + assert.object(key), assertCompatible(key, PrivateKey, [ 1, 1 ]); + var buf, d = new jsbn(key.part.d.data); + if (!key.part.dmodp) { + var p = new jsbn(key.part.p.data); + buf = bigintToMpBuf(d.mod(p.subtract(1))), key.part.dmodp = { + name: "dmodp", + data: buf + }, key.parts.push(key.part.dmodp); + } + if (!key.part.dmodq) { + var q = new jsbn(key.part.q.data); + buf = bigintToMpBuf(d.mod(q.subtract(1))), key.part.dmodq = { + name: "dmodq", + data: buf + }, key.parts.push(key.part.dmodq); + } + }, + calculateDSAPublic: function(g, p, x) { + return assert.buffer(g), assert.buffer(p), assert.buffer(x), g = new jsbn(g), p = new jsbn(p), + x = new jsbn(x), bigintToMpBuf(g.modPow(x, p)); + }, + calculateED25519Public: function(k) { + assert.buffer(k); + var kp = nacl.sign.keyPair.fromSeed(new Uint8Array(k)); + return Buffer.from(kp.publicKey); + }, + calculateX25519Public: function(k) { + assert.buffer(k); + var kp = nacl.box.keyPair.fromSeed(new Uint8Array(k)); + return Buffer.from(kp.publicKey); + }, + mpNormalize: mpNormalize, + mpDenormalize: function(buf) { + for (assert.buffer(buf); buf.length > 1 && 0 === buf[0]; ) buf = buf.slice(1); + return buf; + }, + ecNormalize: function(buf, addZero) { + if (assert.buffer(buf), 0 === buf[0] && 4 === buf[1]) return addZero ? buf : buf.slice(1); + if (4 === buf[0]) { + if (!addZero) return buf; + } else { + for (;0 === buf[0]; ) buf = buf.slice(1); + if (2 === buf[0] || 3 === buf[0]) throw new Error("Compressed elliptic curve points are not supported"); + if (4 !== buf[0]) throw new Error("Not a valid elliptic curve point"); + if (!addZero) return buf; + } + var b = Buffer.alloc(buf.length + 1); + return b[0] = 0, buf.copy(b, 1), b; + }, + countZeros: function(buf) { + for (var o = 0, obit = 8; o < buf.length; ) { + var mask = 1 << obit; + if ((buf[o] & mask) === mask) break; + --obit < 0 && (o++, obit = 8); + } + return 8 * o + (8 - obit) - 1; + }, + assertCompatible: assertCompatible, + isCompatible: function(obj, klass, needVer) { + if (null === obj || "object" != typeof obj) return !1; + if (void 0 === needVer && (needVer = klass.prototype._sshpkApiVersion), obj instanceof klass && klass.prototype._sshpkApiVersion[0] == needVer[0]) return !0; + for (var proto = Object.getPrototypeOf(obj), depth = 0; proto.constructor.name !== klass.name; ) if (!(proto = Object.getPrototypeOf(proto)) || ++depth > 3) return !1; + if (proto.constructor.name !== klass.name) return !1; + var ver = proto._sshpkApiVersion; + return void 0 === ver && (ver = klass._oldVersionDetect(obj)), !(ver[0] != needVer[0] || ver[1] < needVer[1]); + }, + opensslKeyDeriv: function(cipher, salt, passphrase, count) { + assert.buffer(salt, "salt"), assert.buffer(passphrase, "passphrase"), assert.number(count, "iteration count"); + var D, D_prev, bufs, clen = CIPHER_LEN[cipher]; + assert.object(clen, "supported cipher"), salt = salt.slice(0, 8); + for (var material = Buffer.alloc(0); material.length < clen.key + clen.iv; ) { + bufs = [], D_prev && bufs.push(D_prev), bufs.push(passphrase), bufs.push(salt), + D = Buffer.concat(bufs); + for (var j = 0; j < count; ++j) D = crypto.createHash("md5").update(D).digest(); + material = Buffer.concat([ material, D ]), D_prev = D; + } + return { + key: material.slice(0, clen.key), + iv: material.slice(clen.key, clen.key + clen.iv) + }; + }, + opensshCipherInfo: function(cipher) { + var inf = {}; + switch (cipher) { + case "3des-cbc": + inf.keySize = 24, inf.blockSize = 8, inf.opensslName = "des-ede3-cbc"; + break; + + case "blowfish-cbc": + inf.keySize = 16, inf.blockSize = 8, inf.opensslName = "bf-cbc"; + break; + + case "aes128-cbc": + case "aes128-ctr": + case "aes128-gcm@openssh.com": + inf.keySize = 16, inf.blockSize = 16, inf.opensslName = "aes-128-" + cipher.slice(7, 10); + break; + + case "aes192-cbc": + case "aes192-ctr": + case "aes192-gcm@openssh.com": + inf.keySize = 24, inf.blockSize = 16, inf.opensslName = "aes-192-" + cipher.slice(7, 10); + break; + + case "aes256-cbc": + case "aes256-ctr": + case "aes256-gcm@openssh.com": + inf.keySize = 32, inf.blockSize = 16, inf.opensslName = "aes-256-" + cipher.slice(7, 10); + break; + + default: + throw new Error('Unsupported openssl cipher "' + cipher + '"'); + } + return inf; + }, + publicFromPrivateECDSA: function(curveName, priv) { + assert.string(curveName, "curveName"), assert.buffer(priv); + var params = algs.curves[curveName], p = new jsbn(params.p), a = new jsbn(params.a), b = new jsbn(params.b), curve = new ec.ECCurveFp(p, a, b), G = curve.decodePointHex(params.G.toString("hex")), d = new jsbn(mpNormalize(priv)), pub = G.multiply(d); + pub = Buffer.from(curve.encodePointHex(pub), "hex"); + var parts = []; + return parts.push({ + name: "curve", + data: Buffer.from(curveName) + }), parts.push({ + name: "Q", + data: pub + }), new Key({ + type: "ecdsa", + curve: curve, + parts: parts + }); + }, + zeroPadToLength: function(buf, len) { + for (assert.buffer(buf), assert.number(len); buf.length > len; ) assert.equal(buf[0], 0), + buf = buf.slice(1); + for (;buf.length < len; ) { + var b = Buffer.alloc(buf.length + 1); + b[0] = 0, buf.copy(b, 1), buf = b; + } + return buf; + }, + writeBitString: function(der, buf, tag) { + void 0 === tag && (tag = asn1.Ber.BitString); + var b = Buffer.alloc(buf.length + 1); + b[0] = 0, buf.copy(b, 1), der.writeBuffer(b, tag); + }, + readBitString: function(der, tag) { + void 0 === tag && (tag = asn1.Ber.BitString); + var buf = der.readString(tag, !0); + return assert.strictEqual(buf[0], 0, "bit strings with unused bits are not supported (0x" + buf[0].toString(16) + ")"), + buf.slice(1); + }, + pbkdf2: function(hashAlg, salt, iterations, size, passphrase) { + var hkey = Buffer.alloc(salt.length + 4); + salt.copy(hkey); + for (var gen = 0, ts = [], i = 1; gen < size; ) { + var t = T(i++); + gen += t.length, ts.push(t); + } + return Buffer.concat(ts).slice(0, size); + function T(I) { + hkey.writeUInt32BE(I, hkey.length - 4); + var hmac = crypto.createHmac(hashAlg, passphrase); + hmac.update(hkey); + for (var Ti = hmac.digest(), Uc = Ti, c = 1; c++ < iterations; ) { + (hmac = crypto.createHmac(hashAlg, passphrase)).update(Uc), Uc = hmac.digest(); + for (var x = 0; x < Ti.length; ++x) Ti[x] ^= Uc[x]; + } + return Ti; + } + } + }; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, PrivateKey = __webpack_require__(28), Key = __webpack_require__(26), crypto = __webpack_require__(9), algs = __webpack_require__(30), asn1 = __webpack_require__(49), ec = __webpack_require__(151), jsbn = __webpack_require__(98).BigInteger, nacl = __webpack_require__(99); + function assertCompatible(obj, klass, needVer, name) { + if (void 0 === name && (name = "object"), assert.ok(obj, name + " must not be null"), + assert.object(obj, name + " must be an object"), void 0 === needVer && (needVer = klass.prototype._sshpkApiVersion), + !(obj instanceof klass && klass.prototype._sshpkApiVersion[0] == needVer[0])) { + for (var proto = Object.getPrototypeOf(obj), depth = 0; proto.constructor.name !== klass.name; ) proto = Object.getPrototypeOf(proto), + assert.ok(proto && ++depth <= 3, name + " must be a " + klass.name + " instance"); + assert.strictEqual(proto.constructor.name, klass.name, name + " must be a " + klass.name + " instance"); + var ver = proto._sshpkApiVersion; + void 0 === ver && (ver = klass._oldVersionDetect(obj)), assert.ok(ver[0] == needVer[0] && ver[1] >= needVer[1], name + " must be compatible with " + klass.name + " klass version " + needVer[0] + "." + needVer[1]); + } + } + var CIPHER_LEN = { + "des-ede3-cbc": { + key: 24, + iv: 8 + }, + "aes-128-cbc": { + key: 16, + iv: 16 + }, + "aes-256-cbc": { + key: 32, + iv: 16 + } + }; + function mpNormalize(buf) { + for (assert.buffer(buf); buf.length > 1 && 0 === buf[0] && 0 == (128 & buf[1]); ) buf = buf.slice(1); + if (128 == (128 & buf[0])) { + var b = Buffer.alloc(buf.length + 1); + b[0] = 0, buf.copy(b, 1), buf = b; + } + return buf; + } + function bigintToMpBuf(bigint) { + var buf = Buffer.from(bigint.toByteArray()); + return mpNormalize(buf); + } +}, function(module, exports, __webpack_require__) { + module.exports = PrivateKey; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), crypto = __webpack_require__(9), Signature = (__webpack_require__(97), + __webpack_require__(48)), errs = __webpack_require__(44), util = __webpack_require__(0), utils = __webpack_require__(27), dhe = __webpack_require__(233), generateECDSA = dhe.generateECDSA, generateED25519 = dhe.generateED25519, edCompat = __webpack_require__(479), nacl = __webpack_require__(99), Key = __webpack_require__(26), KeyParseError = (errs.InvalidAlgorithmError, + errs.KeyParseError), formats = (errs.KeyEncryptedError, {}); + function PrivateKey(opts) { + assert.object(opts, "options"), Key.call(this, opts), this._pubCache = void 0; + } + formats.auto = __webpack_require__(480), formats.pem = __webpack_require__(56), + formats.pkcs1 = __webpack_require__(234), formats.pkcs8 = __webpack_require__(101), + formats.rfc4253 = __webpack_require__(57), formats["ssh-private"] = __webpack_require__(152), + formats.openssh = formats["ssh-private"], formats.ssh = formats["ssh-private"], + formats.dnssec = __webpack_require__(235), util.inherits(PrivateKey, Key), PrivateKey.formats = formats, + PrivateKey.prototype.toBuffer = function(format, options) { + return void 0 === format && (format = "pkcs1"), assert.string(format, "format"), + assert.object(formats[format], "formats[format]"), assert.optionalObject(options, "options"), + formats[format].write(this, options); + }, PrivateKey.prototype.hash = function(algo, type) { + return this.toPublic().hash(algo, type); + }, PrivateKey.prototype.fingerprint = function(algo, type) { + return this.toPublic().fingerprint(algo, type); + }, PrivateKey.prototype.toPublic = function() { + if (this._pubCache) return this._pubCache; + for (var algInfo = algs.info[this.type], pubParts = [], i = 0; i < algInfo.parts.length; ++i) { + var p = algInfo.parts[i]; + pubParts.push(this.part[p]); + } + return this._pubCache = new Key({ + type: this.type, + source: this, + parts: pubParts + }), this.comment && (this._pubCache.comment = this.comment), this._pubCache; + }, PrivateKey.prototype.derive = function(newType) { + var priv, pub, pair; + if (assert.string(newType, "type"), "ed25519" === this.type && "curve25519" === newType) return 0 === (priv = this.part.k.data)[0] && (priv = priv.slice(1)), + pair = nacl.box.keyPair.fromSecretKey(new Uint8Array(priv)), pub = Buffer.from(pair.publicKey), + new PrivateKey({ + type: "curve25519", + parts: [ { + name: "A", + data: utils.mpNormalize(pub) + }, { + name: "k", + data: utils.mpNormalize(priv) + } ] + }); + if ("curve25519" === this.type && "ed25519" === newType) return 0 === (priv = this.part.k.data)[0] && (priv = priv.slice(1)), + pair = nacl.sign.keyPair.fromSeed(new Uint8Array(priv)), pub = Buffer.from(pair.publicKey), + new PrivateKey({ + type: "ed25519", + parts: [ { + name: "A", + data: utils.mpNormalize(pub) + }, { + name: "k", + data: utils.mpNormalize(priv) + } ] + }); + throw new Error("Key derivation not supported from " + this.type + " to " + newType); + }, PrivateKey.prototype.createVerify = function(hashAlgo) { + return this.toPublic().createVerify(hashAlgo); + }, PrivateKey.prototype.createSign = function(hashAlgo) { + if (void 0 === hashAlgo && (hashAlgo = this.defaultHashAlgorithm()), assert.string(hashAlgo, "hash algorithm"), + "ed25519" === this.type && void 0 !== edCompat) return new edCompat.Signer(this, hashAlgo); + if ("curve25519" === this.type) throw new Error("Curve25519 keys are not suitable for signing or verification"); + var v, nm, err; + try { + nm = hashAlgo.toUpperCase(), v = crypto.createSign(nm); + } catch (e) { + err = e; + } + (void 0 === v || err instanceof Error && err.message.match(/Unknown message digest/)) && (nm = "RSA-", + nm += hashAlgo.toUpperCase(), v = crypto.createSign(nm)), assert.ok(v, "failed to create verifier"); + var oldSign = v.sign.bind(v), key = this.toBuffer("pkcs1"), type = this.type, curve = this.curve; + return v.sign = function() { + var sig = oldSign(key); + return "string" == typeof sig && (sig = Buffer.from(sig, "binary")), (sig = Signature.parse(sig, type, "asn1")).hashAlgorithm = hashAlgo, + sig.curve = curve, sig; + }, v; + }, PrivateKey.parse = function(data, format, options) { + "string" != typeof data && assert.buffer(data, "data"), void 0 === format && (format = "auto"), + assert.string(format, "format"), "string" == typeof options && (options = { + filename: options + }), assert.optionalObject(options, "options"), void 0 === options && (options = {}), + assert.optionalString(options.filename, "options.filename"), void 0 === options.filename && (options.filename = "(unnamed)"), + assert.object(formats[format], "formats[format]"); + try { + var k = formats[format].read(data, options); + return assert.ok(k instanceof PrivateKey, "key is not a private key"), k.comment || (k.comment = options.filename), + k; + } catch (e) { + if ("KeyEncryptedError" === e.name) throw e; + throw new KeyParseError(options.filename, format, e); + } + }, PrivateKey.isPrivateKey = function(obj, ver) { + return utils.isCompatible(obj, PrivateKey, ver); + }, PrivateKey.generate = function(type, options) { + switch (void 0 === options && (options = {}), assert.object(options, "options"), + type) { + case "ecdsa": + return void 0 === options.curve && (options.curve = "nistp256"), assert.string(options.curve, "options.curve"), + generateECDSA(options.curve); + + case "ed25519": + return generateED25519(); + + default: + throw new Error('Key generation not supported with key type "' + type + '"'); + } + }, PrivateKey.prototype._sshpkApiVersion = [ 1, 6 ], PrivateKey._oldVersionDetect = function(obj) { + return assert.func(obj.toPublic), assert.func(obj.createSign), obj.derive ? [ 1, 3 ] : obj.defaultHashAlgorithm ? [ 1, 2 ] : obj.formats.auto ? [ 1, 1 ] : [ 1, 0 ]; + }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(35), _proto = (__webpack_require__(10), - __webpack_require__(15)); + var util = __webpack_require__(0), Element1 = __webpack_require__(43), _proto = (__webpack_require__(13), + __webpack_require__(19)); function MasterElement(doc, tagId, ebmlId, start, length) { Element1.call(this, doc, tagId, ebmlId, start, length); } util.inherits(MasterElement, Element1), module.exports = MasterElement, _proto.oneChild(MasterElement.prototype, "CRC_32"); -}, function(module, exports) { - module.exports = require("https"); -}, function(module, exports) { - module.exports = require("querystring"); -}, function(module, exports) { - module.exports = require("crypto"); +}, function(module, exports, __webpack_require__) { + var Buffer = __webpack_require__(14).Buffer, algInfo = { + dsa: { + parts: [ "p", "q", "g", "y" ], + sizePart: "p" + }, + rsa: { + parts: [ "e", "n" ], + sizePart: "n" + }, + ecdsa: { + parts: [ "curve", "Q" ], + sizePart: "Q" + }, + ed25519: { + parts: [ "A" ], + sizePart: "A" + } + }; + algInfo.curve25519 = algInfo.ed25519; + var algPrivInfo = { + dsa: { + parts: [ "p", "q", "g", "y", "x" ] + }, + rsa: { + parts: [ "n", "e", "d", "iqmp", "p", "q" ] + }, + ecdsa: { + parts: [ "curve", "Q", "d" ] + }, + ed25519: { + parts: [ "A", "k" ] + } + }; + algPrivInfo.curve25519 = algPrivInfo.ed25519; + var curves = { + nistp256: { + size: 256, + pkcs8oid: "1.2.840.10045.3.1.7", + p: Buffer.from("00ffffffff 00000001 00000000 0000000000000000 ffffffff ffffffff ffffffff".replace(/ /g, ""), "hex"), + a: Buffer.from("00FFFFFFFF 00000001 00000000 0000000000000000 FFFFFFFF FFFFFFFF FFFFFFFC".replace(/ /g, ""), "hex"), + b: Buffer.from("5ac635d8 aa3a93e7 b3ebbd55 769886bc651d06b0 cc53b0f6 3bce3c3e 27d2604b".replace(/ /g, ""), "hex"), + s: Buffer.from("00c49d3608 86e70493 6a6678e1 139d26b7819f7e90".replace(/ /g, ""), "hex"), + n: Buffer.from("00ffffffff 00000000 ffffffff ffffffffbce6faad a7179e84 f3b9cac2 fc632551".replace(/ /g, ""), "hex"), + G: Buffer.from("046b17d1f2 e12c4247 f8bce6e5 63a440f277037d81 2deb33a0 f4a13945 d898c2964fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e162bce3357 6b315ece cbb64068 37bf51f5".replace(/ /g, ""), "hex") + }, + nistp384: { + size: 384, + pkcs8oid: "1.3.132.0.34", + p: Buffer.from("00ffffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff fffffffeffffffff 00000000 00000000 ffffffff".replace(/ /g, ""), "hex"), + a: Buffer.from("00FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFEFFFFFFFF 00000000 00000000 FFFFFFFC".replace(/ /g, ""), "hex"), + b: Buffer.from("b3312fa7 e23ee7e4 988e056b e3f82d19181d9c6e fe814112 0314088f 5013875ac656398d 8a2ed19d 2a85c8ed d3ec2aef".replace(/ /g, ""), "hex"), + s: Buffer.from("00a335926a a319a27a 1d00896a 6773a4827acdac73".replace(/ /g, ""), "hex"), + n: Buffer.from("00ffffffff ffffffff ffffffff ffffffffffffffff ffffffff c7634d81 f4372ddf581a0db2 48b0a77a ecec196a ccc52973".replace(/ /g, ""), "hex"), + G: Buffer.from("04aa87ca22 be8b0537 8eb1c71e f320ad746e1d3b62 8ba79b98 59f741e0 82542a385502f25d bf55296c 3a545e38 72760ab73617de4a 96262c6f 5d9e98bf 9292dc29f8f41dbd 289a147c e9da3113 b5f0b8c00a60b1ce 1d7e819d 7a431d7c 90ea0e5f".replace(/ /g, ""), "hex") + }, + nistp521: { + size: 521, + pkcs8oid: "1.3.132.0.35", + p: Buffer.from("01ffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff ffffffffffff".replace(/ /g, ""), "hex"), + a: Buffer.from("01FFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFC".replace(/ /g, ""), "hex"), + b: Buffer.from("51953eb961 8e1c9a1f 929a21a0 b68540eea2da725b 99b315f3 b8b48991 8ef109e156193951 ec7e937b 1652c0bd 3bb1bf073573df88 3d2c34f1 ef451fd4 6b503f00".replace(/ /g, ""), "hex"), + s: Buffer.from("00d09e8800 291cb853 96cc6717 393284aaa0da64ba".replace(/ /g, ""), "hex"), + n: Buffer.from("01ffffffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff fffffffa51868783 bf2f966b 7fcc0148 f709a5d03bb5c9b8 899c47ae bb6fb71e 91386409".replace(/ /g, ""), "hex"), + G: Buffer.from("0400c6 858e06b7 0404e9cd 9e3ecb66 2395b4429c648139 053fb521 f828af60 6b4d3dbaa14b5e77 efe75928 fe1dc127 a2ffa8de3348b3c1 856a429b f97e7e31 c2e5bd660118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd998f54449 579b4468 17afbd17 273e662c97ee7299 5ef42640 c550b901 3fad0761353c7086 a272c240 88be9476 9fd16650".replace(/ /g, ""), "hex") + } + }; + module.exports = { + info: algInfo, + privInfo: algPrivInfo, + hashAlgs: { + md5: !0, + sha1: !0, + sha256: !0, + sha384: !0, + sha512: !0 + }, + curves: curves + }; }, function(module, exports) { module.exports = require("child_process"); }, function(module, exports, __webpack_require__) { @@ -5710,7 +6623,7 @@ return "function" == typeof arg; }, exports.isPrimitive = function(arg) { return null === arg || "boolean" == typeof arg || "number" == typeof arg || "string" == typeof arg || "symbol" == typeof arg || void 0 === arg; - }, exports.isBuffer = __webpack_require__(8).Buffer.isBuffer; + }, exports.isBuffer = __webpack_require__(10).Buffer.isBuffer; }, function(module, exports, __webpack_require__) { "use strict"; function _interopDefault(ex) { @@ -5719,7 +6632,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }); - var Stream = _interopDefault(__webpack_require__(5)), http = _interopDefault(__webpack_require__(12)), Url = _interopDefault(__webpack_require__(7)), https = _interopDefault(__webpack_require__(19)), zlib = _interopDefault(__webpack_require__(44)); + var Stream = _interopDefault(__webpack_require__(3)), http = _interopDefault(__webpack_require__(11)), Url = _interopDefault(__webpack_require__(6)), https = _interopDefault(__webpack_require__(21)), zlib = _interopDefault(__webpack_require__(45)); const Readable = Stream.Readable, BUFFER = Symbol("buffer"), TYPE = Symbol("type"); class Blob { constructor() { @@ -5794,7 +6707,7 @@ }), FetchError.prototype = Object.create(Error.prototype), FetchError.prototype.constructor = FetchError, FetchError.prototype.name = "FetchError"; try { - convert = __webpack_require__(419).convert; + convert = __webpack_require__(520).convert; } catch (e) {} const INTERNALS = Symbol("Body internals"), PassThrough = Stream.PassThrough; function Body(body) { @@ -6401,7 +7314,7 @@ }), exports.default = exports, exports.Headers = Headers, exports.Request = Request, exports.Response = Response, exports.FetchError = FetchError; }, function(module, exports, __webpack_require__) { - var wrappy = __webpack_require__(199); + var wrappy = __webpack_require__(252); function once(fn) { var f = function() { return f.called ? f.value : (f.called = !0, f.value = fn.apply(this, arguments)); @@ -6429,34 +7342,10 @@ configurable: !0 }); })); -}, function(module, exports, __webpack_require__) { - var buffer = __webpack_require__(8), Buffer = buffer.Buffer; - function copyProps(src, dst) { - for (var key in src) dst[key] = src[key]; - } - function SafeBuffer(arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length); - } - Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow ? module.exports = buffer : (copyProps(buffer, exports), - exports.Buffer = SafeBuffer), copyProps(Buffer, SafeBuffer), SafeBuffer.from = function(arg, encodingOrOffset, length) { - if ("number" == typeof arg) throw new TypeError("Argument must not be a number"); - return Buffer(arg, encodingOrOffset, length); - }, SafeBuffer.alloc = function(size, fill, encoding) { - if ("number" != typeof size) throw new TypeError("Argument must be a number"); - var buf = Buffer(size); - return void 0 !== fill ? "string" == typeof encoding ? buf.fill(fill, encoding) : buf.fill(fill) : buf.fill(0), - buf; - }, SafeBuffer.allocUnsafe = function(size) { - if ("number" != typeof size) throw new TypeError("Argument must be a number"); - return Buffer(size); - }, SafeBuffer.allocUnsafeSlow = function(size) { - if ("number" != typeof size) throw new TypeError("Argument must be a number"); - return buffer.SlowBuffer(size); - }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(46), _proto = (__webpack_require__(9), - __webpack_require__(16)); + var util = __webpack_require__(0), Element1 = __webpack_require__(64), _proto = (__webpack_require__(12), + __webpack_require__(20)); function MasterElement(doc, tagId, ebmlId, start, length) { Element1.call(this, doc, tagId, ebmlId, start, length); } @@ -6464,16 +7353,16 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, isEmpty, isFunction, isObject, ref, hasProp = {}.hasOwnProperty; - ref = __webpack_require__(40), isObject = ref.isObject, isFunction = ref.isFunction, + ref = __webpack_require__(52), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty, XMLElement = null, XMLCData = null, XMLComment = null, XMLDeclaration = null, XMLDocType = null, XMLRaw = null, XMLText = null, XMLProcessingInstruction = null, module.exports = (function() { function XMLNode(parent) { this.parent = parent, this.parent && (this.options = this.parent.options, this.stringify = this.parent.stringify), - this.children = [], XMLElement || (XMLElement = __webpack_require__(90), XMLCData = __webpack_require__(91), - XMLComment = __webpack_require__(92), XMLDeclaration = __webpack_require__(93), - XMLDocType = __webpack_require__(94), XMLRaw = __webpack_require__(99), XMLText = __webpack_require__(100), - XMLProcessingInstruction = __webpack_require__(101)); + this.children = [], XMLElement || (XMLElement = __webpack_require__(118), XMLCData = __webpack_require__(119), + XMLComment = __webpack_require__(120), XMLDeclaration = __webpack_require__(121), + XMLDocType = __webpack_require__(122), XMLRaw = __webpack_require__(127), XMLText = __webpack_require__(128), + XMLProcessingInstruction = __webpack_require__(129)); } return XMLNode.prototype.element = function(name, attributes, text) { var childNode, item, j, k, key, lastChild, len, len1, ref1, val; @@ -7326,7 +8215,7 @@ }.apply(exports, [])) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); })(); }, function(module, exports, __webpack_require__) { - var NGramParser = __webpack_require__(320), NGramParser_IBM420 = __webpack_require__(615); + var NGramParser = __webpack_require__(372), NGramParser_IBM420 = __webpack_require__(714); module.exports.match = function(input, ngrams, byteMap, spaceChar) { return spaceChar = spaceChar || 32, new NGramParser(ngrams, byteMap).parse(input, spaceChar); }, module.exports.matchIBM420 = function(input, ngrams, byteMap, spaceChar) { @@ -7335,7 +8224,7 @@ this.lang = la, this.ngrams = ng; }; }, function(module, exports, __webpack_require__) { - var tty = __webpack_require__(78); + var tty = __webpack_require__(105); module.exports = function(name) { function disabled() {} disabled.enabled = !1; @@ -7370,19 +8259,103 @@ return val instanceof Error ? val.stack || val.message : val; } }, function(module, exports, __webpack_require__) { - "undefined" == typeof window ? module.exports = __webpack_require__(32) : module.exports = __webpack_require__(720); + "undefined" == typeof window ? module.exports = __webpack_require__(40) : module.exports = __webpack_require__(818); }, function(module, exports) { - module.exports = require("assert"); + module.exports = require("net"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element = __webpack_require__(357); + var util = __webpack_require__(0), Element = __webpack_require__(407); function Element1(doc, tagId, ebmlId, start, length) { Element.call(this, doc, tagId, ebmlId, start, length); } - __webpack_require__(10), __webpack_require__(15), util.inherits(Element1, Element), + __webpack_require__(13), __webpack_require__(19), util.inherits(Element1, Element), module.exports = Element1; }, function(module, exports, __webpack_require__) { - var callSiteToString = __webpack_require__(193).callSiteToString, eventListenerCount = __webpack_require__(193).eventListenerCount, relative = __webpack_require__(3).relative; + __webpack_require__(15); + var util = __webpack_require__(0); + function FingerprintFormatError(fp, format) { + Error.captureStackTrace && Error.captureStackTrace(this, FingerprintFormatError), + this.name = "FingerprintFormatError", this.fingerprint = fp, this.format = format, + this.message = "Fingerprint format is not supported, or is invalid: ", void 0 !== fp && (this.message += " fingerprint = " + fp), + void 0 !== format && (this.message += " format = " + format); + } + function InvalidAlgorithmError(alg) { + Error.captureStackTrace && Error.captureStackTrace(this, InvalidAlgorithmError), + this.name = "InvalidAlgorithmError", this.algorithm = alg, this.message = 'Algorithm "' + alg + '" is not supported'; + } + function KeyParseError(name, format, innerErr) { + Error.captureStackTrace && Error.captureStackTrace(this, KeyParseError), this.name = "KeyParseError", + this.format = format, this.keyName = name, this.innerErr = innerErr, this.message = "Failed to parse " + name + " as a valid " + format + " format key: " + innerErr.message; + } + function SignatureParseError(type, format, innerErr) { + Error.captureStackTrace && Error.captureStackTrace(this, SignatureParseError), this.name = "SignatureParseError", + this.type = type, this.format = format, this.innerErr = innerErr, this.message = "Failed to parse the given data as a " + type + " signature in " + format + " format: " + innerErr.message; + } + function CertificateParseError(name, format, innerErr) { + Error.captureStackTrace && Error.captureStackTrace(this, CertificateParseError), + this.name = "CertificateParseError", this.format = format, this.certName = name, + this.innerErr = innerErr, this.message = "Failed to parse " + name + " as a valid " + format + " format certificate: " + innerErr.message; + } + function KeyEncryptedError(name, format) { + Error.captureStackTrace && Error.captureStackTrace(this, KeyEncryptedError), this.name = "KeyEncryptedError", + this.format = format, this.keyName = name, this.message = "The " + format + " format key " + name + " is encrypted (password-protected), and no passphrase was provided in `options`"; + } + util.inherits(FingerprintFormatError, Error), util.inherits(InvalidAlgorithmError, Error), + util.inherits(KeyParseError, Error), util.inherits(SignatureParseError, Error), + util.inherits(CertificateParseError, Error), util.inherits(KeyEncryptedError, Error), + module.exports = { + FingerprintFormatError: FingerprintFormatError, + InvalidAlgorithmError: InvalidAlgorithmError, + KeyParseError: KeyParseError, + SignatureParseError: SignatureParseError, + KeyEncryptedError: KeyEncryptedError, + CertificateParseError: CertificateParseError + }; +}, function(module, exports) { + module.exports = require("zlib"); +}, function(module, exports, __webpack_require__) { + "use strict"; + var url = __webpack_require__(6), parse = url.parse, Url = url.Url; + function parseurl(req) { + var url = req.url; + if (void 0 !== url) { + var parsed = req._parsedUrl; + return fresh(url, parsed) ? parsed : ((parsed = fastparse(url))._raw = url, req._parsedUrl = parsed); + } + } + function fastparse(str) { + if ("string" != typeof str || 47 !== str.charCodeAt(0)) return parse(str); + for (var pathname = str, query = null, search = null, i = 1; i < str.length; i++) switch (str.charCodeAt(i)) { + case 63: + null === search && (pathname = str.substring(0, i), query = str.substring(i + 1), + search = str.substring(i)); + break; + + case 9: + case 10: + case 12: + case 13: + case 32: + case 35: + case 160: + case 65279: + return parse(str); + } + var url = void 0 !== Url ? new Url : {}; + return url.path = str, url.href = str, url.pathname = pathname, null !== search && (url.query = query, + url.search = search), url; + } + function fresh(url, parsedUrl) { + return "object" == typeof parsedUrl && null !== parsedUrl && (void 0 === Url || parsedUrl instanceof Url) && parsedUrl._raw === url; + } + module.exports = parseurl, module.exports.original = function(req) { + var url = req.originalUrl; + if ("string" != typeof url) return parseurl(req); + var parsed = req._parsedOriginalUrl; + return fresh(url, parsed) ? parsed : ((parsed = fastparse(url))._raw = url, req._parsedOriginalUrl = parsed); + }; +}, function(module, exports, __webpack_require__) { + var callSiteToString = __webpack_require__(247).callSiteToString, eventListenerCount = __webpack_require__(247).eventListenerCount, relative = __webpack_require__(4).relative; module.exports = depd; var basePath = process.cwd(); function containsNamespace(str, namespace) { @@ -7542,53 +8515,214 @@ }), error; } }, function(module, exports, __webpack_require__) { - "use strict"; - var url = __webpack_require__(7), parse = url.parse, Url = url.Url; - function parseurl(req) { - var url = req.url; - if (void 0 !== url) { - var parsed = req._parsedUrl; - return fresh(url, parsed) ? parsed : ((parsed = fastparse(url))._raw = url, req._parsedUrl = parsed); + module.exports = Signature; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, errs = (__webpack_require__(30), + __webpack_require__(9), __webpack_require__(44)), utils = __webpack_require__(27), asn1 = __webpack_require__(49), SSHBuffer = __webpack_require__(100), InvalidAlgorithmError = errs.InvalidAlgorithmError, SignatureParseError = errs.SignatureParseError; + function Signature(opts) { + assert.object(opts, "options"), assert.arrayOfObject(opts.parts, "options.parts"), + assert.string(opts.type, "options.type"); + for (var partLookup = {}, i = 0; i < opts.parts.length; ++i) { + var part = opts.parts[i]; + partLookup[part.name] = part; } + this.type = opts.type, this.hashAlgorithm = opts.hashAlgo, this.curve = opts.curve, + this.parts = opts.parts, this.part = partLookup; } - function fastparse(str) { - if ("string" != typeof str || 47 !== str.charCodeAt(0)) return parse(str); - for (var pathname = str, query = null, search = null, i = 1; i < str.length; i++) switch (str.charCodeAt(i)) { - case 63: - null === search && (pathname = str.substring(0, i), query = str.substring(i + 1), - search = str.substring(i)); - break; + Signature.prototype.toBuffer = function(format) { + var buf; + void 0 === format && (format = "asn1"), assert.string(format, "format"); + var stype = "ssh-" + this.type; + switch (this.type) { + case "rsa": + switch (this.hashAlgorithm) { + case "sha256": + stype = "rsa-sha2-256"; + break; - case 9: - case 10: - case 12: - case 13: - case 32: - case 35: - case 160: - case 65279: - return parse(str); + case "sha512": + stype = "rsa-sha2-512"; + break; + + case "sha1": + case void 0: + break; + + default: + throw new Error("SSH signature format does not support hash algorithm " + this.hashAlgorithm); + } + return "ssh" === format ? ((buf = new SSHBuffer({})).writeString(stype), buf.writePart(this.part.sig), + buf.toBuffer()) : this.part.sig.data; + + case "ed25519": + return "ssh" === format ? ((buf = new SSHBuffer({})).writeString(stype), buf.writePart(this.part.sig), + buf.toBuffer()) : this.part.sig.data; + + case "dsa": + case "ecdsa": + var r, s; + if ("asn1" === format) { + var der = new asn1.BerWriter; + return der.startSequence(), r = utils.mpNormalize(this.part.r.data), s = utils.mpNormalize(this.part.s.data), + der.writeBuffer(r, asn1.Ber.Integer), der.writeBuffer(s, asn1.Ber.Integer), der.endSequence(), + der.buffer; + } + if ("ssh" === format && "dsa" === this.type) { + if ((buf = new SSHBuffer({})).writeString("ssh-dss"), (r = this.part.r.data).length > 20 && 0 === r[0] && (r = r.slice(1)), + (s = this.part.s.data).length > 20 && 0 === s[0] && (s = s.slice(1)), this.hashAlgorithm && "sha1" !== this.hashAlgorithm || r.length + s.length !== 40) throw new Error("OpenSSH only supports DSA signatures with SHA1 hash"); + return buf.writeBuffer(Buffer.concat([ r, s ])), buf.toBuffer(); + } + if ("ssh" === format && "ecdsa" === this.type) { + var curve, inner = new SSHBuffer({}); + r = this.part.r.data, inner.writeBuffer(r), inner.writePart(this.part.s), buf = new SSHBuffer({}), + 0 === r[0] && (r = r.slice(1)); + var sz = 8 * r.length; + return 256 === sz ? curve = "nistp256" : 384 === sz ? curve = "nistp384" : 528 === sz && (curve = "nistp521"), + buf.writeString("ecdsa-sha2-" + curve), buf.writeBuffer(inner.toBuffer()), buf.toBuffer(); + } + throw new Error("Invalid signature format"); + + default: + throw new Error("Invalid signature data"); } - var url = void 0 !== Url ? new Url : {}; - return url.path = str, url.href = str, url.pathname = pathname, null !== search && (url.query = query, - url.search = search), url; - } - function fresh(url, parsedUrl) { - return "object" == typeof parsedUrl && null !== parsedUrl && (void 0 === Url || parsedUrl instanceof Url) && parsedUrl._raw === url; - } - module.exports = parseurl, module.exports.original = function(req) { - var url = req.originalUrl; - if ("string" != typeof url) return parseurl(req); - var parsed = req._parsedOriginalUrl; - return fresh(url, parsed) ? parsed : ((parsed = fastparse(url))._raw = url, req._parsedOriginalUrl = parsed); + }, Signature.prototype.toString = function(format) { + return assert.optionalString(format, "format"), this.toBuffer(format).toString("base64"); + }, Signature.parse = function(data, type, format) { + "string" == typeof data && (data = Buffer.from(data, "base64")), assert.buffer(data, "data"), + assert.string(format, "format"), assert.string(type, "type"); + var opts = {}; + opts.type = type.toLowerCase(), opts.parts = []; + try { + switch (assert.ok(data.length > 0, "signature must not be empty"), opts.type) { + case "rsa": + case "ed25519": + return (function(data, type, format, opts) { + if ("ssh" === format) { + try { + var buf = new SSHBuffer({ + buffer: data + }), head = buf.readString(); + } catch (e) {} + if (void 0 !== buf) { + var msg = "SSH signature does not match expected type (expected " + type + ", got " + head + ")"; + switch (head) { + case "ssh-rsa": + assert.strictEqual(type, "rsa", msg), opts.hashAlgo = "sha1"; + break; + + case "rsa-sha2-256": + assert.strictEqual(type, "rsa", msg), opts.hashAlgo = "sha256"; + break; + + case "rsa-sha2-512": + assert.strictEqual(type, "rsa", msg), opts.hashAlgo = "sha512"; + break; + + case "ssh-ed25519": + assert.strictEqual(type, "ed25519", msg), opts.hashAlgo = "sha512"; + break; + + default: + throw new Error("Unknown SSH signature type: " + head); + } + var sig = buf.readPart(); + return assert.ok(buf.atEnd(), "extra trailing bytes"), sig.name = "sig", opts.parts.push(sig), + new Signature(opts); + } + } + return opts.parts.push({ + name: "sig", + data: data + }), new Signature(opts); + })(data, type, format, opts); + + case "dsa": + case "ecdsa": + return "asn1" === format ? (function(data, type, format, opts) { + var der = new asn1.BerReader(data); + der.readSequence(); + var r = der.readString(asn1.Ber.Integer, !0), s = der.readString(asn1.Ber.Integer, !0); + return opts.parts.push({ + name: "r", + data: utils.mpNormalize(r) + }), opts.parts.push({ + name: "s", + data: utils.mpNormalize(s) + }), new Signature(opts); + })(data, 0, 0, opts) : "dsa" === opts.type ? (function(data, type, format, opts) { + if (40 != data.length) { + var buf = new SSHBuffer({ + buffer: data + }), d = buf.readBuffer(); + "ssh-dss" === d.toString("ascii") && (d = buf.readBuffer()), assert.ok(buf.atEnd(), "extra trailing bytes"), + assert.strictEqual(d.length, 40, "invalid inner length"), data = d; + } + return opts.parts.push({ + name: "r", + data: data.slice(0, 20) + }), opts.parts.push({ + name: "s", + data: data.slice(20, 40) + }), new Signature(opts); + })(data, 0, 0, opts) : (function(data, type, format, opts) { + var r, s, buf = new SSHBuffer({ + buffer: data + }), inner = buf.readBuffer(), stype = inner.toString("ascii"); + if ("ecdsa-" === stype.slice(0, 6)) { + var parts = stype.split("-"); + switch (assert.strictEqual(parts[0], "ecdsa"), assert.strictEqual(parts[1], "sha2"), + opts.curve = parts[2], opts.curve) { + case "nistp256": + opts.hashAlgo = "sha256"; + break; + + case "nistp384": + opts.hashAlgo = "sha384"; + break; + + case "nistp521": + opts.hashAlgo = "sha512"; + break; + + default: + throw new Error("Unsupported ECDSA curve: " + opts.curve); + } + inner = buf.readBuffer(), assert.ok(buf.atEnd(), "extra trailing bytes on outer"), + r = (buf = new SSHBuffer({ + buffer: inner + })).readPart(); + } else r = { + data: inner + }; + return s = buf.readPart(), assert.ok(buf.atEnd(), "extra trailing bytes"), r.name = "r", + s.name = "s", opts.parts.push(r), opts.parts.push(s), new Signature(opts); + })(data, 0, 0, opts); + + default: + throw new InvalidAlgorithmError(type); + } + } catch (e) { + if (e instanceof InvalidAlgorithmError) throw e; + throw new SignatureParseError(type, format, e); + } + }, Signature.isSignature = function(obj, ver) { + return utils.isCompatible(obj, Signature, ver); + }, Signature.prototype._sshpkApiVersion = [ 2, 1 ], Signature._oldVersionDetect = function(obj) { + return assert.func(obj.toBuffer), obj.hasOwnProperty("hashAlgorithm") ? [ 2, 0 ] : [ 1, 0 ]; }; }, function(module, exports, __webpack_require__) { - var extend = __webpack_require__(486); + var Ber = __webpack_require__(1054); + module.exports = { + Ber: Ber, + BerReader: Ber.Reader, + BerWriter: Ber.Writer + }; +}, function(module, exports, __webpack_require__) { + var extend = __webpack_require__(587); exports.DEFAULT_ANNOUNCE_PEERS = 50, exports.MAX_ANNOUNCE_PEERS = 82, exports.binaryToHex = function(str) { return new Buffer(str, "binary").toString("hex"); }, exports.hexToBinary = function(str) { return new Buffer(str, "hex").toString("binary"); - }, extend(exports, __webpack_require__(487)); + }, extend(exports, __webpack_require__(588)); }, function(module, exports) { module.exports = function(model, calc) { var fn; @@ -7686,7 +8820,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _TypeError, _RangeError, es5 = __webpack_require__(48), Objectfreeze = es5.freeze, util = __webpack_require__(13), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp; + var _TypeError, _RangeError, es5 = __webpack_require__(66), Objectfreeze = es5.freeze, util = __webpack_require__(16), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp; function subError(nameProperty, defaultMessage) { function SubError(message) { if (!(this instanceof SubError)) return new SubError(message); @@ -7746,17 +8880,409 @@ AggregateError: errorTypes.AggregateError, Warning: Warning }; -}, function(module, exports) { - module.exports = require("zlib"); -}, function(module, exports) { - module.exports = require("net"); +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options, forceType) { + var input = buf; + "string" != typeof buf && (assert.buffer(buf, "buf"), buf = buf.toString("ascii")); + for (var m, m2, lines = buf.trim().split(/[\r\n]+/g), si = -1; !m && si < lines.length; ) m = lines[++si].match(/[-]+[ ]*BEGIN ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/); + assert.ok(m, "invalid PEM header"); + for (var ei = lines.length; !m2 && ei > 0; ) m2 = lines[--ei].match(/[-]+[ ]*END ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/); + assert.ok(m2, "invalid PEM footer"), assert.equal(m[2], m2[2]); + var alg, type = m[2].toLowerCase(); + m[1] && (assert.equal(m[1], m2[1], "PEM header and footer mismatch"), alg = m[1].trim()), + lines = lines.slice(si, ei + 1); + for (var cipher, key, iv, headers = {}; m = (lines = lines.slice(1))[0].match(/^([A-Za-z0-9-]+): (.+)$/); ) headers[m[1].toLowerCase()] = m[2]; + if (lines = lines.slice(0, -1).join(""), buf = Buffer.from(lines, "base64"), headers["proc-type"]) { + var parts = headers["proc-type"].split(","); + if ("4" === parts[0] && "ENCRYPTED" === parts[1]) { + if ("string" == typeof options.passphrase && (options.passphrase = Buffer.from(options.passphrase, "utf-8")), + !Buffer.isBuffer(options.passphrase)) throw new errors.KeyEncryptedError(options.filename, "PEM"); + parts = headers["dek-info"].split(","), assert.ok(2 === parts.length), cipher = parts[0].toLowerCase(), + iv = Buffer.from(parts[1], "hex"), key = utils.opensslKeyDeriv(cipher, iv, options.passphrase, 1).key; + } + } + if (alg && "encrypted" === alg.toLowerCase()) { + var pbesEnd, eder = new asn1.BerReader(buf); + eder.readSequence(), eder.readSequence(), pbesEnd = eder.offset + eder.length; + var method = eder.readOID(); + if ("1.2.840.113549.1.5.13" !== method) throw new Error("Unsupported PEM/PKCS8 encryption scheme: " + method); + eder.readSequence(), eder.readSequence(); + var kdfEnd = eder.offset + eder.length, kdfOid = eder.readOID(); + if ("1.2.840.113549.1.5.12" !== kdfOid) throw new Error("Unsupported PBES2 KDF: " + kdfOid); + eder.readSequence(); + var salt = eder.readString(asn1.Ber.OctetString, !0), iterations = eder.readInt(), hashAlg = "sha1"; + if (eder.offset < kdfEnd) { + eder.readSequence(); + var hashAlgOid = eder.readOID(); + if (void 0 === (hashAlg = OID_TO_HASH[hashAlgOid])) throw new Error("Unsupported PBKDF2 hash: " + hashAlgOid); + } + eder._offset = kdfEnd, eder.readSequence(); + var cipherOid = eder.readOID(); + if (void 0 === (cipher = OID_TO_CIPHER[cipherOid])) throw new Error("Unsupported PBES2 cipher: " + cipherOid); + if (iv = eder.readString(asn1.Ber.OctetString, !0), eder._offset = pbesEnd, buf = eder.readString(asn1.Ber.OctetString, !0), + "string" == typeof options.passphrase && (options.passphrase = Buffer.from(options.passphrase, "utf-8")), + !Buffer.isBuffer(options.passphrase)) throw new errors.KeyEncryptedError(options.filename, "PEM"); + var cinfo = utils.opensshCipherInfo(cipher); + cipher = cinfo.opensslName, key = utils.pbkdf2(hashAlg, salt, iterations, cinfo.keySize, options.passphrase), + alg = void 0; + } + if (cipher && key && iv) { + var chunk, cipherStream = crypto.createDecipheriv(cipher, key, iv), chunks = []; + for (cipherStream.once("error", (function(e) { + if (-1 !== e.toString().indexOf("bad decrypt")) throw new Error("Incorrect passphrase supplied, could not decrypt key"); + throw e; + })), cipherStream.write(buf), cipherStream.end(); null !== (chunk = cipherStream.read()); ) chunks.push(chunk); + buf = Buffer.concat(chunks); + } + if (alg && "openssh" === alg.toLowerCase()) return sshpriv.readSSHPrivate(type, buf, options); + if (alg && "ssh2" === alg.toLowerCase()) return rfc4253.readType(type, buf, options); + var der = new asn1.BerReader(buf); + return der.originalInput = input, der.readSequence(), alg ? (forceType && assert.strictEqual(forceType, "pkcs1"), + pkcs1.readPkcs1(alg, type, der)) : (forceType && assert.strictEqual(forceType, "pkcs8"), + pkcs8.readPkcs8(alg, type, der)); + }, + write: function(key, options, type) { + assert.object(key); + var header, alg = { + ecdsa: "EC", + rsa: "RSA", + dsa: "DSA", + ed25519: "EdDSA" + }[key.type], der = new asn1.BerWriter; + if (PrivateKey.isPrivateKey(key)) type && "pkcs8" === type ? (header = "PRIVATE KEY", + pkcs8.writePkcs8(der, key)) : (type && assert.strictEqual(type, "pkcs1"), header = alg + " PRIVATE KEY", + pkcs1.writePkcs1(der, key)); else { + if (!Key.isKey(key)) throw new Error("key is not a Key or PrivateKey"); + type && "pkcs1" === type ? (header = alg + " PUBLIC KEY", pkcs1.writePkcs1(der, key)) : (type && assert.strictEqual(type, "pkcs8"), + header = "PUBLIC KEY", pkcs8.writePkcs8(der, key)); + } + var tmp = der.buffer.toString("base64"), len = tmp.length + tmp.length / 64 + 18 + 16 + 2 * header.length + 10, buf = Buffer.alloc(len), o = 0; + o += buf.write("-----BEGIN " + header + "-----\n", o); + for (var i = 0; i < tmp.length; ) { + var limit = i + 64; + limit > tmp.length && (limit = tmp.length), o += buf.write(tmp.slice(i, limit), o), + buf[o++] = 10, i = limit; + } + return o += buf.write("-----END " + header + "-----\n", o), buf.slice(0, o); + } + }; + var assert = __webpack_require__(15), asn1 = __webpack_require__(49), crypto = __webpack_require__(9), Buffer = __webpack_require__(14).Buffer, utils = (__webpack_require__(30), + __webpack_require__(27)), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), pkcs1 = __webpack_require__(234), pkcs8 = __webpack_require__(101), sshpriv = __webpack_require__(152), rfc4253 = __webpack_require__(57), errors = __webpack_require__(44), OID_TO_CIPHER = { + "1.2.840.113549.3.7": "3des-cbc", + "2.16.840.1.101.3.4.1.2": "aes128-cbc", + "2.16.840.1.101.3.4.1.42": "aes256-cbc" + }, CIPHER_TO_OID = {}; + Object.keys(OID_TO_CIPHER).forEach((function(k) { + CIPHER_TO_OID[OID_TO_CIPHER[k]] = k; + })); + var OID_TO_HASH = { + "1.2.840.113549.2.7": "sha1", + "1.2.840.113549.2.9": "sha256", + "1.2.840.113549.2.11": "sha512" + }, HASH_TO_OID = {}; + Object.keys(OID_TO_HASH).forEach((function(k) { + HASH_TO_OID[OID_TO_HASH[k]] = k; + })); +}, function(module, exports, __webpack_require__) { + module.exports = { + read: read.bind(void 0, !1, void 0), + readType: read.bind(void 0, !1), + write: function(key, options) { + assert.object(key); + var i, alg = keyTypeToAlg(key), algInfo = algs.info[key.type]; + PrivateKey.isPrivateKey(key) && (algInfo = algs.privInfo[key.type]); + var parts = algInfo.parts, buf = new SSHBuffer({}); + for (buf.writeString(alg), i = 0; i < parts.length; ++i) { + var data = key.part[parts[i]].data; + !1 !== algInfo.normalize && (data = "ed25519" === key.type ? utils.zeroPadToLength(data, 32) : utils.mpNormalize(data)), + "ed25519" === key.type && "k" === parts[i] && (data = Buffer.concat([ data, key.part.A.data ])), + buf.writeBuffer(data); + } + return buf.toBuffer(); + }, + readPartial: read.bind(void 0, !0), + readInternal: read, + keyTypeToAlg: keyTypeToAlg, + algToKeyType: algToKeyType + }; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), utils = __webpack_require__(27), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), SSHBuffer = __webpack_require__(100); + function algToKeyType(alg) { + if (assert.string(alg), "ssh-dss" === alg) return "dsa"; + if ("ssh-rsa" === alg) return "rsa"; + if ("ssh-ed25519" === alg) return "ed25519"; + if ("ssh-curve25519" === alg) return "curve25519"; + if (alg.match(/^ecdsa-sha2-/)) return "ecdsa"; + throw new Error("Unknown algorithm " + alg); + } + function keyTypeToAlg(key) { + if (assert.object(key), "dsa" === key.type) return "ssh-dss"; + if ("rsa" === key.type) return "ssh-rsa"; + if ("ed25519" === key.type) return "ssh-ed25519"; + if ("curve25519" === key.type) return "ssh-curve25519"; + if ("ecdsa" === key.type) return "ecdsa-sha2-" + key.part.curve.data.toString(); + throw new Error("Unknown key type " + key.type); + } + function read(partial, type, buf, options) { + "string" == typeof buf && (buf = Buffer.from(buf)), assert.buffer(buf, "buf"); + var key = {}, parts = key.parts = [], sshbuf = new SSHBuffer({ + buffer: buf + }), alg = sshbuf.readString(); + assert.ok(!sshbuf.atEnd(), "key must have at least one part"), key.type = algToKeyType(alg); + var partCount = algs.info[key.type].parts.length; + for (type && "private" === type && (partCount = algs.privInfo[key.type].parts.length); !sshbuf.atEnd() && parts.length < partCount; ) parts.push(sshbuf.readPart()); + for (;!partial && !sshbuf.atEnd(); ) parts.push(sshbuf.readPart()); + assert.ok(parts.length >= 1, "key must have at least one part"), assert.ok(partial || sshbuf.atEnd(), "leftover bytes at end of key"); + var Constructor = Key, algInfo = algs.info[key.type]; + if ("private" !== type && algInfo.parts.length === parts.length || (algInfo = algs.privInfo[key.type], + Constructor = PrivateKey), assert.strictEqual(algInfo.parts.length, parts.length), + "ecdsa" === key.type) { + var res = /^ecdsa-sha2-(.+)$/.exec(alg); + assert.ok(null !== res), assert.strictEqual(res[1], parts[0].data.toString()); + } + for (var normalized = !0, i = 0; i < algInfo.parts.length; ++i) { + var nd, p = parts[i]; + p.name = algInfo.parts[i], "ed25519" === key.type && "k" === p.name && (p.data = p.data.slice(0, 32)), + "curve" !== p.name && !1 !== algInfo.normalize && (nd = "ed25519" === key.type ? utils.zeroPadToLength(p.data, 32) : utils.mpNormalize(p.data)).toString("binary") !== p.data.toString("binary") && (p.data = nd, + normalized = !1); + } + return normalized && (key._rfc4253Cache = sshbuf.toBuffer()), partial && "object" == typeof partial && (partial.remainder = sshbuf.remainder(), + partial.consumed = sshbuf._offset), new Constructor(key); + } }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element = __webpack_require__(222); + var _TypeError, _RangeError, es5 = __webpack_require__(81), Objectfreeze = es5.freeze, util = __webpack_require__(17), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp; + function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", "string" == typeof message ? message : defaultMessage), + notEnumerableProp(this, "name", nameProperty), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : Error.call(this); + } + return inherits(SubError, Error), SubError; + } + var Warning = subError("Warning", "warning"), CancellationError = subError("CancellationError", "cancellation error"), TimeoutError = subError("TimeoutError", "timeout error"), AggregateError = subError("AggregateError", "aggregate error"); + try { + _TypeError = TypeError, _RangeError = RangeError; + } catch (e) { + _TypeError = subError("TypeError", "type error"), _RangeError = subError("RangeError", "range error"); + } + for (var methods = "join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "), i = 0; i < methods.length; ++i) "function" == typeof Array.prototype[methods[i]] && (AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]); + es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: !1, + writable: !0, + enumerable: !0 + }), AggregateError.prototype.isOperational = !0; + var level = 0; + function OperationalError(message) { + if (!(this instanceof OperationalError)) return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"), notEnumerableProp(this, "message", message), + this.cause = message, this.isOperational = !0, message instanceof Error ? (notEnumerableProp(this, "message", message.message), + notEnumerableProp(this, "stack", message.stack)) : Error.captureStackTrace && Error.captureStackTrace(this, this.constructor); + } + AggregateError.prototype.toString = function() { + var indent = Array(4 * level + 1).join(" "), ret = "\n" + indent + "AggregateError of:\n"; + level++, indent = Array(4 * level + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + for (var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "", lines = str.split("\n"), j = 0; j < lines.length; ++j) lines[j] = indent + lines[j]; + ret += (str = lines.join("\n")) + "\n"; + } + return level--, ret; + }, inherits(OperationalError, Error); + var errorTypes = Error.__BluebirdErrorTypes__; + errorTypes || (errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }), es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: !1, + enumerable: !1, + configurable: !1 + })), module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning + }; +}, function(module, exports, __webpack_require__) { + var fs$close, fs$closeSync, fs = __webpack_require__(2), polyfills = __webpack_require__(1195), legacy = __webpack_require__(1197), clone = __webpack_require__(1198), queue = [], util = __webpack_require__(0), debug = function() {}; + function patch(fs) { + polyfills(fs), fs.gracefulify = patch, fs.FileReadStream = ReadStream, fs.FileWriteStream = WriteStream, + fs.createReadStream = function(path, options) { + return new ReadStream(path, options); + }, fs.createWriteStream = function(path, options) { + return new WriteStream(path, options); + }; + var fs$readFile = fs.readFile; + fs.readFile = function(path, options, cb) { + return "function" == typeof options && (cb = options, options = null), (function go$readFile(path, options, cb) { + return fs$readFile(path, options, (function(err) { + !err || "EMFILE" !== err.code && "ENFILE" !== err.code ? ("function" == typeof cb && cb.apply(this, arguments), + retry()) : enqueue([ go$readFile, [ path, options, cb ] ]); + })); + })(path, options, cb); + }; + var fs$writeFile = fs.writeFile; + fs.writeFile = function(path, data, options, cb) { + return "function" == typeof options && (cb = options, options = null), (function go$writeFile(path, data, options, cb) { + return fs$writeFile(path, data, options, (function(err) { + !err || "EMFILE" !== err.code && "ENFILE" !== err.code ? ("function" == typeof cb && cb.apply(this, arguments), + retry()) : enqueue([ go$writeFile, [ path, data, options, cb ] ]); + })); + })(path, data, options, cb); + }; + var fs$appendFile = fs.appendFile; + fs$appendFile && (fs.appendFile = function(path, data, options, cb) { + return "function" == typeof options && (cb = options, options = null), (function go$appendFile(path, data, options, cb) { + return fs$appendFile(path, data, options, (function(err) { + !err || "EMFILE" !== err.code && "ENFILE" !== err.code ? ("function" == typeof cb && cb.apply(this, arguments), + retry()) : enqueue([ go$appendFile, [ path, data, options, cb ] ]); + })); + })(path, data, options, cb); + }); + var fs$readdir = fs.readdir; + function go$readdir(args) { + return fs$readdir.apply(fs, args); + } + if (fs.readdir = function(path, options, cb) { + var args = [ path ]; + return "function" != typeof options ? args.push(options) : cb = options, args.push((function(err, files) { + files && files.sort && files.sort(), !err || "EMFILE" !== err.code && "ENFILE" !== err.code ? ("function" == typeof cb && cb.apply(this, arguments), + retry()) : enqueue([ go$readdir, [ args ] ]); + })), go$readdir(args); + }, "v0.8" === process.version.substr(0, 4)) { + var legStreams = legacy(fs); + ReadStream = legStreams.ReadStream, WriteStream = legStreams.WriteStream; + } + var fs$ReadStream = fs.ReadStream; + fs$ReadStream && (ReadStream.prototype = Object.create(fs$ReadStream.prototype), + ReadStream.prototype.open = function() { + var that = this; + open(that.path, that.flags, that.mode, (function(err, fd) { + err ? (that.autoClose && that.destroy(), that.emit("error", err)) : (that.fd = fd, + that.emit("open", fd), that.read()); + })); + }); + var fs$WriteStream = fs.WriteStream; + function ReadStream(path, options) { + return this instanceof ReadStream ? (fs$ReadStream.apply(this, arguments), this) : ReadStream.apply(Object.create(ReadStream.prototype), arguments); + } + function WriteStream(path, options) { + return this instanceof WriteStream ? (fs$WriteStream.apply(this, arguments), this) : WriteStream.apply(Object.create(WriteStream.prototype), arguments); + } + fs$WriteStream && (WriteStream.prototype = Object.create(fs$WriteStream.prototype), + WriteStream.prototype.open = function() { + var that = this; + open(that.path, that.flags, that.mode, (function(err, fd) { + err ? (that.destroy(), that.emit("error", err)) : (that.fd = fd, that.emit("open", fd)); + })); + }), fs.ReadStream = ReadStream, fs.WriteStream = WriteStream; + var fs$open = fs.open; + function open(path, flags, mode, cb) { + return "function" == typeof mode && (cb = mode, mode = null), (function go$open(path, flags, mode, cb) { + return fs$open(path, flags, mode, (function(err, fd) { + !err || "EMFILE" !== err.code && "ENFILE" !== err.code ? ("function" == typeof cb && cb.apply(this, arguments), + retry()) : enqueue([ go$open, [ path, flags, mode, cb ] ]); + })); + })(path, flags, mode, cb); + } + return fs.open = open, fs; + } + function enqueue(elem) { + debug("ENQUEUE", elem[0].name, elem[1]), queue.push(elem); + } + function retry() { + var elem = queue.shift(); + elem && (debug("RETRY", elem[0].name, elem[1]), elem[0].apply(null, elem[1])); + } + util.debuglog ? debug = util.debuglog("gfs4") : /\bgfs4\b/i.test(process.env.NODE_DEBUG || "") && (debug = function() { + var m = util.format.apply(util, arguments); + m = "GFS4: " + m.split(/\n/).join("\nGFS4: "), console.error(m); + }), /\bgfs4\b/i.test(process.env.NODE_DEBUG || "") && process.on("exit", (function() { + debug(queue), __webpack_require__(22).equal(queue.length, 0); + })), module.exports = patch(clone(fs)), process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched && (module.exports = patch(fs), + fs.__patched = !0), module.exports.close = (fs$close = fs.close, function(fd, cb) { + return fs$close.call(fs, fd, (function(err) { + err || retry(), "function" == typeof cb && cb.apply(this, arguments); + })); + }), module.exports.closeSync = (fs$closeSync = fs.closeSync, function(fd) { + var rval = fs$closeSync.apply(fs, arguments); + return retry(), rval; + }), /\bgraceful-fs\b/.test(fs.closeSync.toString()) || (fs.closeSync = module.exports.closeSync, + fs.close = module.exports.close); +}, function(module, exports) { + module.exports = function(a, b) { + if (a && b) for (var key in b) a[key] = b[key]; + return a; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var http = __webpack_require__(11); + module.exports = http.METHODS && http.METHODS.map((function(method) { + return method.toLowerCase(); + })) || [ "get", "post", "put", "head", "delete", "options", "trace", "copy", "lock", "mkcol", "move", "purge", "propfind", "proppatch", "unlock", "report", "mkactivity", "checkout", "merge", "m-search", "notify", "subscribe", "unsubscribe", "patch", "search", "connect" ]; +}, function(module, exports) { + module.exports = function(module) { + return module.webpackPolyfill || (module.deprecate = function() {}, module.paths = [], + module.children || (module.children = []), Object.defineProperty(module, "loaded", { + enumerable: !0, + get: function() { + return module.l; + } + }), Object.defineProperty(module, "id", { + enumerable: !0, + get: function() { + return module.i; + } + }), module.webpackPolyfill = 1), module; + }; +}, function(module, exports, __webpack_require__) { + __webpack_require__(4); + var fs = __webpack_require__(2); + function Mime() { + this.types = Object.create(null), this.extensions = Object.create(null); + } + Mime.prototype.define = function(map) { + for (var type in map) { + for (var exts = map[type], i = 0; i < exts.length; i++) process.env.DEBUG_MIME && this.types[exts[i]] && console.warn((this._loading || "define()").replace(/.*\//, ""), 'changes "' + exts[i] + '" extension type from ' + this.types[exts[i]] + " to " + type), + this.types[exts[i]] = type; + this.extensions[type] || (this.extensions[type] = exts[0]); + } + }, Mime.prototype.load = function(file) { + this._loading = file; + var map = {}; + fs.readFileSync(file, "ascii").split(/[\r\n]+/).forEach((function(line) { + var fields = line.replace(/\s*#.*|^\s*|\s*$/g, "").split(/\s+/); + map[fields.shift()] = fields; + })), this.define(map), this._loading = null; + }, Mime.prototype.lookup = function(path, fallback) { + var ext = path.replace(/.*[\.\/\\]/, "").toLowerCase(); + return this.types[ext] || fallback || this.default_type; + }, Mime.prototype.extension = function(mimeType) { + var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); + return this.extensions[type]; + }; + var mime = new Mime; + mime.define(__webpack_require__(651)), mime.default_type = mime.lookup("bin"), mime.Mime = Mime, + mime.charsets = { + lookup: function(mimeType, fallback) { + return /^text\/|^application\/(javascript|json)/.test(mimeType) ? "UTF-8" : fallback; + } + }, module.exports = mime; +}, function(module, exports, __webpack_require__) { + "use strict"; + var util = __webpack_require__(0), Element = __webpack_require__(274); function Element1(doc, tagId, ebmlId, start, length) { Element.call(this, doc, tagId, ebmlId, start, length); } - __webpack_require__(9), __webpack_require__(16), util.inherits(Element1, Element), + __webpack_require__(12), __webpack_require__(20), util.inherits(Element1, Element), module.exports = Element1; }, function(module, exports, __webpack_require__) { "use strict"; @@ -7866,7 +9392,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(26).Buffer, contentDisposition = __webpack_require__(409), contentType = __webpack_require__(79), deprecate = __webpack_require__(36)("express"), flatten = __webpack_require__(119), mime = __webpack_require__(187).mime, etag = __webpack_require__(410), proxyaddr = __webpack_require__(412), qs = __webpack_require__(126), querystring = __webpack_require__(20); + var Buffer = __webpack_require__(25).Buffer, contentDisposition = __webpack_require__(460), contentType = __webpack_require__(107), deprecate = __webpack_require__(47)("express"), flatten = __webpack_require__(149), mime = __webpack_require__(225).mime, etag = __webpack_require__(461), proxyaddr = __webpack_require__(463), qs = __webpack_require__(160), querystring = __webpack_require__(24); function createETagGenerator(options) { return function(body, encoding) { var buf = Buffer.isBuffer(body) ? body : Buffer.from(body, encoding); @@ -7968,7 +9494,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(51).Buffer, bomHandling = __webpack_require__(420), iconv = module.exports; + var Buffer = __webpack_require__(14).Buffer, bomHandling = __webpack_require__(521), iconv = module.exports; iconv.encodings = null, iconv.defaultCharUnicode = "�", iconv.defaultCharSingleByte = "?", iconv.encode = function(str, encoding, options) { str = "" + (str || ""); @@ -7987,7 +9513,7 @@ } }, iconv.toEncoding = iconv.encode, iconv.fromEncoding = iconv.decode, iconv._codecDataCache = {}, iconv.getCodec = function(encoding) { - iconv.encodings || (iconv.encodings = __webpack_require__(421)); + iconv.encodings || (iconv.encodings = __webpack_require__(522)); for (var enc = iconv._canonicalizeEncoding(encoding), codecOptions = {}; ;) { var codec = iconv._codecDataCache[enc]; if (codec) return codec; @@ -8024,55 +9550,12 @@ var nodeVer = "undefined" != typeof process && process.versions && process.versions.node; if (nodeVer) { var nodeVerArr = nodeVer.split(".").map(Number); - (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) && __webpack_require__(435)(iconv), __webpack_require__(436)(iconv); + (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) && __webpack_require__(536)(iconv), __webpack_require__(537)(iconv); } -}, function(module, exports, __webpack_require__) { - "use strict"; - var key, buffer = __webpack_require__(8), Buffer = buffer.Buffer, safer = {}; - for (key in buffer) buffer.hasOwnProperty(key) && "SlowBuffer" !== key && "Buffer" !== key && (safer[key] = buffer[key]); - var Safer = safer.Buffer = {}; - for (key in Buffer) Buffer.hasOwnProperty(key) && "allocUnsafe" !== key && "allocUnsafeSlow" !== key && (Safer[key] = Buffer[key]); - if (safer.Buffer.prototype = Buffer.prototype, Safer.from && Safer.from !== Uint8Array.from || (Safer.from = function(value, encodingOrOffset, length) { - if ("number" == typeof value) throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); - if (value && void 0 === value.length) throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); - return Buffer(value, encodingOrOffset, length); - }), Safer.alloc || (Safer.alloc = function(size, fill, encoding) { - if ("number" != typeof size) throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); - if (size < 0 || size >= 2 * (1 << 30)) throw new RangeError('The value "' + size + '" is invalid for option "size"'); - var buf = Buffer(size); - return fill && 0 !== fill.length ? "string" == typeof encoding ? buf.fill(fill, encoding) : buf.fill(fill) : buf.fill(0), - buf; - }), !safer.kStringMaxLength) try { - safer.kStringMaxLength = process.binding("buffer").kStringMaxLength; - } catch (e) {} - safer.constants || (safer.constants = { - MAX_LENGTH: safer.kMaxLength - }, safer.kStringMaxLength && (safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength)), - module.exports = safer; -}, function(module, exports) { - module.exports = function(a, b) { - if (a && b) for (var key in b) a[key] = b[key]; - return a; - }; }, function(module, exports) { module.exports = require("dgram"); -}, function(module, exports) { - module.exports = function(module) { - return module.webpackPolyfill || (module.deprecate = function() {}, module.paths = [], - module.children || (module.children = []), Object.defineProperty(module, "loaded", { - enumerable: !0, - get: function() { - return module.l; - } - }), Object.defineProperty(module, "id", { - enumerable: !0, - get: function() { - return module.i; - } - }), module.webpackPolyfill = 1), module; - }; }, function(module, exports, __webpack_require__) { - var paths, common = module.exports, once = __webpack_require__(25), child = __webpack_require__(22), eos = __webpack_require__(128); + var paths, common = module.exports, once = __webpack_require__(34), child = __webpack_require__(31), eos = __webpack_require__(163); common.servePlaylist = function(lines, res) { lines.push(""), lines = lines.join("\n"), res.setHeader("Content-Type", "application/vnd.apple.mpegurl"), res.setHeader("Content-Length", new Buffer(lines).length), res.statusCode = 200, @@ -8117,18 +9600,18 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - crc1: __webpack_require__(543), - crc8: __webpack_require__(544), - crc81wire: __webpack_require__(545), - crc16: __webpack_require__(546), - crc16ccitt: __webpack_require__(547), - crc16modbus: __webpack_require__(548), - crc24: __webpack_require__(549), - crc32: __webpack_require__(550) + crc1: __webpack_require__(642), + crc8: __webpack_require__(643), + crc81wire: __webpack_require__(644), + crc16: __webpack_require__(645), + crc16ccitt: __webpack_require__(646), + crc16modbus: __webpack_require__(647), + crc24: __webpack_require__(648), + crc32: __webpack_require__(649) }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), debug = __webpack_require__(32)("matroska:tools"), Schema = __webpack_require__(9), dateformat = __webpack_require__(223), CLASS_A_SIZE = Math.pow(2, 7), CLASS_B_SIZE = Math.pow(2, 14), CLASS_C_SIZE = Math.pow(2, 21), CLASS_D_SIZE = Math.pow(2, 28), CLASS_E_SIZE = Math.pow(2, 35), CLASS_F_SIZE = Math.pow(2, 42), CLASS_G_SIZE = Math.pow(2, 49), MAX_7BITS = (Math.pow(2, 56), + var util = __webpack_require__(0), debug = __webpack_require__(40)("matroska:tools"), Schema = __webpack_require__(12), dateformat = __webpack_require__(275), CLASS_A_SIZE = Math.pow(2, 7), CLASS_B_SIZE = Math.pow(2, 14), CLASS_C_SIZE = Math.pow(2, 21), CLASS_D_SIZE = Math.pow(2, 28), CLASS_E_SIZE = Math.pow(2, 35), CLASS_F_SIZE = Math.pow(2, 42), CLASS_G_SIZE = Math.pow(2, 49), MAX_7BITS = (Math.pow(2, 56), Math.pow(2, 7)), MAX_8BITS = Math.pow(2, 8), MAX_15BITS = Math.pow(2, 15), MAX_16BITS = Math.pow(2, 16), MAX_23BITS = Math.pow(2, 23), MAX_24BITS = Math.pow(2, 24), MAX_31BITS = Math.pow(2, 31), MAX_32BITS = Math.pow(2, 32), MAX_39BITS = Math.pow(2, 39), MAX_40BITS = Math.pow(2, 40), MAX_47BITS = Math.pow(2, 47), MAX_48BITS = Math.pow(2, 48), MAX_53BITS = (Math.pow(2, 52), Math.pow(2, 53)), MAX_55BITS = Math.pow(2, 55), MAX_56BITS = Math.pow(2, 56), BITSn = [ 0, 256, Math.pow(2, 16), Math.pow(2, 24), Math.pow(2, 32), Math.pow(2, 40), Math.pow(2, 48), Math.pow(2, 56) ], BUFFS = [ new Buffer([ 0 ]), new Buffer([ 1 ]), new Buffer([ 2 ]), new Buffer([ 3 ]) ], BUFFSV = [ new Buffer([ 128 ]), new Buffer([ 129 ]) ], floatBuf = new Buffer(4), tools = { readVInt: function(buffer, start, ret, keepMask) { @@ -8279,9 +9762,9 @@ var keys = []; for (var key in obj) keys.push(key); return keys; - }, util = __webpack_require__(23); - util.inherits = __webpack_require__(11); - var Readable = __webpack_require__(331), Writable = __webpack_require__(332); + }, util = __webpack_require__(32); + util.inherits = __webpack_require__(7); + var Readable = __webpack_require__(383), Writable = __webpack_require__(384); function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options), Writable.call(this, options), options && !1 === options.readable && (this.readable = !1), @@ -8297,15 +9780,15 @@ })(objectKeys(Writable.prototype)); }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(41), objectKeys = Object.keys || function(obj) { + var pna = __webpack_require__(53), objectKeys = Object.keys || function(obj) { var keys = []; for (var key in obj) keys.push(key); return keys; }; module.exports = Duplex; - var util = Object.create(__webpack_require__(23)); - util.inherits = __webpack_require__(76); - var Readable = __webpack_require__(340), Writable = __webpack_require__(344); + var util = Object.create(__webpack_require__(32)); + util.inherits = __webpack_require__(7); + var Readable = __webpack_require__(391), Writable = __webpack_require__(395); util.inherits(Duplex, Readable); for (var keys = objectKeys(Writable.prototype), v = 0; v < keys.length; v++) { var method = keys[v]; @@ -8341,7 +9824,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), debug = __webpack_require__(33)("matroska:tools"), Schema = __webpack_require__(10), dateformat = __webpack_require__(223), CLASS_A_SIZE = Math.pow(2, 7), CLASS_B_SIZE = Math.pow(2, 14), CLASS_C_SIZE = Math.pow(2, 21), CLASS_D_SIZE = Math.pow(2, 28), CLASS_E_SIZE = Math.pow(2, 35), CLASS_F_SIZE = Math.pow(2, 42), CLASS_G_SIZE = Math.pow(2, 49), MAX_7BITS = (Math.pow(2, 56), + var util = __webpack_require__(0), debug = __webpack_require__(41)("matroska:tools"), Schema = __webpack_require__(13), dateformat = __webpack_require__(275), CLASS_A_SIZE = Math.pow(2, 7), CLASS_B_SIZE = Math.pow(2, 14), CLASS_C_SIZE = Math.pow(2, 21), CLASS_D_SIZE = Math.pow(2, 28), CLASS_E_SIZE = Math.pow(2, 35), CLASS_F_SIZE = Math.pow(2, 42), CLASS_G_SIZE = Math.pow(2, 49), MAX_7BITS = (Math.pow(2, 56), Math.pow(2, 7)), MAX_8BITS = Math.pow(2, 8), MAX_15BITS = Math.pow(2, 15), MAX_16BITS = Math.pow(2, 16), MAX_23BITS = Math.pow(2, 23), MAX_24BITS = Math.pow(2, 24), MAX_31BITS = Math.pow(2, 31), MAX_32BITS = Math.pow(2, 32), MAX_39BITS = Math.pow(2, 39), MAX_40BITS = Math.pow(2, 40), MAX_47BITS = Math.pow(2, 47), MAX_48BITS = Math.pow(2, 48), MAX_53BITS = (Math.pow(2, 52), Math.pow(2, 53)), MAX_55BITS = Math.pow(2, 55), MAX_56BITS = Math.pow(2, 56), BITSn = [ 0, 256, Math.pow(2, 16), Math.pow(2, 24), Math.pow(2, 32), Math.pow(2, 40), Math.pow(2, 48), Math.pow(2, 56) ], BUFFS = [ new Buffer([ 0 ]), new Buffer([ 1 ]), new Buffer([ 2 ]), new Buffer([ 3 ]) ], BUFFSV = [ new Buffer([ 128 ]), new Buffer([ 129 ]) ], floatBuf = new Buffer(4), tools = { readVInt: function(buffer, start, ret, keepMask) { @@ -8494,8 +9977,8 @@ return keys; }; module.exports = Duplex; - var Readable = __webpack_require__(373), Writable = __webpack_require__(377); - __webpack_require__(11)(Duplex, Readable); + var Readable = __webpack_require__(423), Writable = __webpack_require__(427); + __webpack_require__(7)(Duplex, Readable); for (var keys = objectKeys(Writable.prototype), v = 0; v < keys.length; v++) { var method = keys[v]; Duplex.prototype[method] || (Duplex.prototype[method] = Writable.prototype[method]); @@ -8537,17 +10020,25 @@ this._writableState.destroyed = value); } }); +}, function(module, exports, __webpack_require__) { + var Stream = __webpack_require__(3); + "disable" === process.env.READABLE_STREAM && Stream ? (module.exports = Stream, + (exports = module.exports = Stream.Readable).Readable = Stream.Readable, exports.Writable = Stream.Writable, + exports.Duplex = Stream.Duplex, exports.Transform = Stream.Transform, exports.PassThrough = Stream.PassThrough, + exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(450)).Stream = Stream || exports, + exports.Readable = exports, exports.Writable = __webpack_require__(453), exports.Duplex = __webpack_require__(78), + exports.Transform = __webpack_require__(455), exports.PassThrough = __webpack_require__(966)); }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(41), objectKeys = Object.keys || function(obj) { + var pna = __webpack_require__(53), objectKeys = Object.keys || function(obj) { var keys = []; for (var key in obj) keys.push(key); return keys; }; module.exports = Duplex; - var util = __webpack_require__(23); - util.inherits = __webpack_require__(11); - var Readable = __webpack_require__(400), Writable = __webpack_require__(403); + var util = __webpack_require__(32); + util.inherits = __webpack_require__(96); + var Readable = __webpack_require__(450), Writable = __webpack_require__(453); util.inherits(Duplex, Readable); for (var keys = objectKeys(Writable.prototype), v = 0; v < keys.length; v++) { var method = keys[v]; @@ -8594,6 +10085,296 @@ INTERESTING_TYPE: [ "movie", "series" ], MAX_INDEXED: 1e4 }; +}, function(module, exports, __webpack_require__) { + "use strict"; + function checkDataType(dataType, data, negate) { + var EQUAL = negate ? " !== " : " === ", AND = negate ? " || " : " && ", OK = negate ? "!" : "", NOT = negate ? "" : "!"; + switch (dataType) { + case "null": + return data + EQUAL + "null"; + + case "array": + return OK + "Array.isArray(" + data + ")"; + + case "object": + return "(" + OK + data + AND + "typeof " + data + EQUAL + '"object"' + AND + NOT + "Array.isArray(" + data + "))"; + + case "integer": + return "(typeof " + data + EQUAL + '"number"' + AND + NOT + "(" + data + " % 1)" + AND + data + EQUAL + data + ")"; + + default: + return "typeof " + data + EQUAL + '"' + dataType + '"'; + } + } + module.exports = { + copy: function(o, to) { + for (var key in to = to || {}, o) to[key] = o[key]; + return to; + }, + checkDataType: checkDataType, + checkDataTypes: function(dataTypes, data) { + if (1 === dataTypes.length) return checkDataType(dataTypes[0], data, !0); + var code = "", types = toHash(dataTypes); + for (var t in types.array && types.object && (code = types.null ? "(" : "(!" + data + " || ", + code += "typeof " + data + ' !== "object")', delete types.null, delete types.array, + delete types.object), types.number && delete types.integer, types) code += (code ? " && " : "") + checkDataType(t, data, !0); + return code; + }, + coerceToTypes: function(optionCoerceTypes, dataTypes) { + if (Array.isArray(dataTypes)) { + for (var types = [], i = 0; i < dataTypes.length; i++) { + var t = dataTypes[i]; + (COERCE_TO_TYPES[t] || "array" === optionCoerceTypes && "array" === t) && (types[types.length] = t); + } + if (types.length) return types; + } else { + if (COERCE_TO_TYPES[dataTypes]) return [ dataTypes ]; + if ("array" === optionCoerceTypes && "array" === dataTypes) return [ "array" ]; + } + }, + toHash: toHash, + getProperty: getProperty, + escapeQuotes: escapeQuotes, + equal: __webpack_require__(238), + ucs2length: __webpack_require__(1086), + varOccurences: function(str, dataVar) { + dataVar += "[^0-9]"; + var matches = str.match(new RegExp(dataVar, "g")); + return matches ? matches.length : 0; + }, + varReplace: function(str, dataVar, expr) { + return dataVar += "([^0-9])", expr = expr.replace(/\$/g, "$$$$"), str.replace(new RegExp(dataVar, "g"), expr + "$1"); + }, + cleanUpCode: function(out) { + return out.replace(EMPTY_ELSE, "").replace(EMPTY_IF_NO_ELSE, "").replace(EMPTY_IF_WITH_ELSE, "if (!($1))"); + }, + finalCleanUpCode: function(out, async) { + var matches = out.match(ERRORS_REGEXP); + return matches && 2 == matches.length && (out = async ? out.replace(REMOVE_ERRORS_ASYNC, "").replace(RETURN_ASYNC, "return data;") : out.replace(REMOVE_ERRORS, "").replace("return errors === 0;", "validate.errors = null; return true;")), + (matches = out.match(ROOTDATA_REGEXP)) && 3 === matches.length ? out.replace(REMOVE_ROOTDATA, "") : out; + }, + schemaHasRules: function(schema, rules) { + if ("boolean" == typeof schema) return !schema; + for (var key in schema) if (rules[key]) return !0; + }, + schemaHasRulesExcept: function(schema, rules, exceptKeyword) { + if ("boolean" == typeof schema) return !schema && "not" != exceptKeyword; + for (var key in schema) if (key != exceptKeyword && rules[key]) return !0; + }, + schemaUnknownRules: function(schema, rules) { + if ("boolean" != typeof schema) for (var key in schema) if (!rules[key]) return key; + }, + toQuotedString: toQuotedString, + getPathExpr: function(currentPath, expr, jsonPointers, isNumber) { + return joinPaths(currentPath, jsonPointers ? "'/' + " + expr + (isNumber ? "" : ".replace(/~/g, '~0').replace(/\\//g, '~1')") : isNumber ? "'[' + " + expr + " + ']'" : "'[\\'' + " + expr + " + '\\']'"); + }, + getPath: function(currentPath, prop, jsonPointers) { + return joinPaths(currentPath, toQuotedString(jsonPointers ? "/" + escapeJsonPointer(prop) : getProperty(prop))); + }, + getData: function($data, lvl, paths) { + var up, jsonPointer, data, matches; + if ("" === $data) return "rootData"; + if ("/" == $data[0]) { + if (!JSON_POINTER.test($data)) throw new Error("Invalid JSON-pointer: " + $data); + jsonPointer = $data, data = "rootData"; + } else { + if (!(matches = $data.match(RELATIVE_JSON_POINTER))) throw new Error("Invalid JSON-pointer: " + $data); + if (up = +matches[1], "#" == (jsonPointer = matches[2])) { + if (up >= lvl) throw new Error("Cannot access property/index " + up + " levels up, current level is " + lvl); + return paths[lvl - up]; + } + if (up > lvl) throw new Error("Cannot access data " + up + " levels up, current level is " + lvl); + if (data = "data" + (lvl - up || ""), !jsonPointer) return data; + } + for (var expr = data, segments = jsonPointer.split("/"), i = 0; i < segments.length; i++) { + var segment = segments[i]; + segment && (expr += " && " + (data += getProperty(unescapeJsonPointer(segment)))); + } + return expr; + }, + unescapeFragment: function(str) { + return unescapeJsonPointer(decodeURIComponent(str)); + }, + unescapeJsonPointer: unescapeJsonPointer, + escapeFragment: function(str) { + return encodeURIComponent(escapeJsonPointer(str)); + }, + escapeJsonPointer: escapeJsonPointer + }; + var COERCE_TO_TYPES = toHash([ "string", "number", "integer", "boolean", "null" ]); + function toHash(arr) { + for (var hash = {}, i = 0; i < arr.length; i++) hash[arr[i]] = !0; + return hash; + } + var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i, SINGLE_QUOTE = /'|\\/g; + function getProperty(key) { + return "number" == typeof key ? "[" + key + "]" : IDENTIFIER.test(key) ? "." + key : "['" + escapeQuotes(key) + "']"; + } + function escapeQuotes(str) { + return str.replace(SINGLE_QUOTE, "\\$&").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\f/g, "\\f").replace(/\t/g, "\\t"); + } + var EMPTY_ELSE = /else\s*{\s*}/g, EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g, EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g, ERRORS_REGEXP = /[^v.]errors/g, REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g, REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g, RETURN_ASYNC = /if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/, ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g, REMOVE_ROOTDATA = /if \(rootData === undefined\) rootData = data;/; + function toQuotedString(str) { + return "'" + escapeQuotes(str) + "'"; + } + var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/, RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/; + function joinPaths(a, b) { + return '""' == a ? b : (a + " + " + b).replace(/' \+ '/g, ""); + } + function escapeJsonPointer(str) { + return str.replace(/~/g, "~0").replace(/\//g, "~1"); + } + function unescapeJsonPointer(str) { + return str.replace(/~1/g, "/").replace(/~0/g, "~"); + } +}, function(module, exports) { + var isES5 = (function() { + "use strict"; + return void 0 === this; + })(); + if (isES5) module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !(descriptor && !descriptor.writable && !descriptor.set); + } + }; else { + var has = {}.hasOwnProperty, str = {}.toString, proto = {}.constructor.prototype, ObjectKeys = function(o) { + var ret = []; + for (var key in o) has.call(o, key) && ret.push(key); + return ret; + }; + module.exports = { + isArray: function(obj) { + try { + return "[object Array]" === str.call(obj); + } catch (e) { + return !1; + } + }, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: function(o, key, desc) { + return o[key] = desc.value, o; + }, + getDescriptor: function(o, key) { + return { + value: o[key] + }; + }, + freeze: function(obj) { + return obj; + }, + getPrototypeOf: function(obj) { + try { + return Object(obj).constructor.prototype; + } catch (e) { + return proto; + } + }, + isES5: isES5, + propertyIsWritable: function() { + return !0; + } + }; + } +}, function(module, exports, __webpack_require__) { + module.exports = Reader; + var fs = __webpack_require__(59), Stream = __webpack_require__(3).Stream, inherits = __webpack_require__(7), path = __webpack_require__(4), getType = __webpack_require__(154), hardLinks = Reader.hardLinks = {}, Abstract = __webpack_require__(242); + inherits(Reader, Abstract); + var LinkReader = __webpack_require__(509); + function Reader(props, currentStat) { + var type, ClassType; + if (!(this instanceof Reader)) return new Reader(props, currentStat); + switch ("string" == typeof props && (props = { + path: props + }), props.type && "function" == typeof props.type ? ClassType = type = props.type : (type = getType(props), + ClassType = Reader), currentStat && !type && (props[type = getType(currentStat)] = !0, + props.type = type), type) { + case "Directory": + ClassType = __webpack_require__(510); + break; + + case "Link": + case "File": + ClassType = __webpack_require__(511); + break; + + case "SymbolicLink": + ClassType = LinkReader; + break; + + case "Socket": + ClassType = __webpack_require__(1199); + break; + + case null: + ClassType = __webpack_require__(512); + } + if (!(this instanceof ClassType)) return new ClassType(props); + Abstract.call(this), props.path || this.error("Must provide a path", null, !0), + this.readable = !0, this.writable = !1, this.type = type, this.props = props, this.depth = props.depth = props.depth || 0, + this.parent = props.parent || null, this.root = props.root || props.parent && props.parent.root || this, + this._path = this.path = path.resolve(props.path), "win32" === process.platform && (this.path = this._path = this.path.replace(/\?/g, "_"), + this._path.length >= 260 && (this._swallowErrors = !0, this._path = "\\\\?\\" + this.path.replace(/\//g, "\\"))), + this.basename = props.basename = path.basename(this.path), this.dirname = props.dirname = path.dirname(this.path), + props.parent = props.root = null, this.size = props.size, this.filter = "function" == typeof props.filter ? props.filter : null, + "alpha" === props.sort && (props.sort = alphasort), this._stat(currentStat); + } + function alphasort(a, b) { + return a === b ? 0 : a.toLowerCase() > b.toLowerCase() ? 1 : a.toLowerCase() < b.toLowerCase() ? -1 : a > b ? 1 : -1; + } + Reader.prototype._stat = function(currentStat) { + var self = this, props = self.props, stat = props.follow ? "stat" : "lstat"; + function statCb(er, props_) { + if (er) return self.error(er); + if (Object.keys(props_).forEach((function(k) { + props[k] = props_[k]; + })), void 0 !== self.size && props.size !== self.size) return self.error("incorrect size"); + self.size = props.size; + var type = getType(props); + if (!1 !== props.hardlinks && "Directory" !== type && props.nlink && props.nlink > 1) { + var k = props.dev + ":" + props.ino; + hardLinks[k] !== self._path && hardLinks[k] ? (type = self.type = self.props.type = "Link", + self.Link = self.props.Link = !0, self.linkpath = self.props.linkpath = hardLinks[k], + self._stat = self._read = LinkReader.prototype._read) : hardLinks[k] = self._path; + } + if (self.type && self.type !== type && self.error("Unexpected type: " + type), self.filter) { + var who = self._proxy || self; + if (!self.filter.call(who, who, props)) return void (self._disowned || (self.abort(), + self.emit("end"), self.emit("close"))); + } + var events = [ "_stat", "stat", "ready" ], e = 0; + !(function go() { + if (self._aborted) return self.emit("end"), void self.emit("close"); + if (self._paused && "Directory" !== self.type) self.once("resume", go); else { + var ev = events[e++]; + if (!ev) return self._read(); + self.emit(ev, props), go(); + } + })(); + } + currentStat ? process.nextTick(statCb.bind(null, null, currentStat)) : fs[stat](self._path, statCb); + }, Reader.prototype.pipe = function(dest) { + var self = this; + return "function" == typeof dest.add && self.on("entry", (function(entry) { + !1 === dest.add(entry) && self.pause(); + })), Stream.prototype.pipe.apply(this, arguments); + }, Reader.prototype.pause = function(who) { + this._paused = !0, who = who || this, this.emit("pause", who), this._stream && this._stream.pause(who); + }, Reader.prototype.resume = function(who) { + this._paused = !1, who = who || this, this.emit("resume", who), this._stream && this._stream.resume(who), + this._read(); + }, Reader.prototype._read = function() { + this.error("Cannot read unknown type: " + this.type); + }; }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(url) { @@ -8669,7 +10450,7 @@ })(msg, attached)), attached.queue.push(listener); })(msg, listener), msg); }, module.exports.isFinished = isFinished; - var first = __webpack_require__(444), defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var first = __webpack_require__(545), defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }; function isFinished(msg) { @@ -8706,7 +10487,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var deprecate = __webpack_require__(36)("http-errors"), setPrototypeOf = __webpack_require__(80), statuses = __webpack_require__(81), inherits = __webpack_require__(11), toIdentifier = __webpack_require__(452); + var deprecate = __webpack_require__(47)("http-errors"), setPrototypeOf = __webpack_require__(108), statuses = __webpack_require__(109), inherits = __webpack_require__(7), toIdentifier = __webpack_require__(553); function codeClass(status) { return Number(String(status).charAt(0) + "00"); } @@ -8796,7 +10577,7 @@ })(module.exports, statuses.codes, module.exports.HttpError); }, function(module, exports, __webpack_require__) { "use strict"; - var typer = __webpack_require__(454), mime = __webpack_require__(125); + var typer = __webpack_require__(555), mime = __webpack_require__(89); function typeis(value, types_) { var i, type, types = types_, val = tryNormalizeType(value); if (!val) return !1; @@ -8849,12 +10630,48 @@ module.exports.match = mimeMatch; }, function(module, exports, __webpack_require__) { "use strict"; - var http = __webpack_require__(12); - module.exports = http.METHODS && http.METHODS.map((function(method) { - return method.toLowerCase(); - })) || [ "get", "post", "put", "head", "delete", "options", "trace", "copy", "lock", "mkcol", "move", "purge", "propfind", "proppatch", "unlock", "report", "mkactivity", "checkout", "merge", "m-search", "notify", "subscribe", "unsubscribe", "patch", "search", "connect" ]; + var extensions, types, preference, db = __webpack_require__(556), extname = __webpack_require__(4).extname, EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/, TEXT_TYPE_REGEXP = /^text\//i; + function charset(type) { + if (!type || "string" != typeof type) return !1; + var match = EXTRACT_TYPE_REGEXP.exec(type), mime = match && db[match[1].toLowerCase()]; + return mime && mime.charset ? mime.charset : !(!match || !TEXT_TYPE_REGEXP.test(match[1])) && "UTF-8"; + } + exports.charset = charset, exports.charsets = { + lookup: charset + }, exports.contentType = function(str) { + if (!str || "string" != typeof str) return !1; + var mime = -1 === str.indexOf("/") ? exports.lookup(str) : str; + if (!mime) return !1; + if (-1 === mime.indexOf("charset")) { + var charset = exports.charset(mime); + charset && (mime += "; charset=" + charset.toLowerCase()); + } + return mime; + }, exports.extension = function(type) { + if (!type || "string" != typeof type) return !1; + var match = EXTRACT_TYPE_REGEXP.exec(type), exts = match && exports.extensions[match[1].toLowerCase()]; + return !(!exts || !exts.length) && exts[0]; + }, exports.extensions = Object.create(null), exports.lookup = function(path) { + if (!path || "string" != typeof path) return !1; + var extension = extname("x." + path).toLowerCase().substr(1); + return extension && exports.types[extension] || !1; + }, exports.types = Object.create(null), extensions = exports.extensions, types = exports.types, + preference = [ "nginx", "apache", void 0, "iana" ], Object.keys(db).forEach((function(type) { + var mime = db[type], exts = mime.extensions; + if (exts && exts.length) { + extensions[type] = exts; + for (var i = 0; i < exts.length; i++) { + var extension = exts[i]; + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source), to = preference.indexOf(mime.source); + if ("application/octet-stream" !== types[extension] && (from > to || from === to && "application/" === types[extension].substr(0, 12))) continue; + } + types[extension] = type; + } + } + })); }, function(module, exports, __webpack_require__) { - var buffer = __webpack_require__(8), Buffer = buffer.Buffer; + var buffer = __webpack_require__(10), Buffer = buffer.Buffer; function copyProps(src, dst) { for (var key in src) dst[key] = src[key]; } @@ -8909,8 +10726,10 @@ return fn.hats[id] = value, fn; }, fn.bits = bits || 128, fn.base = base || 16, fn; }; +}, function(module, exports) { + module.exports = require("tls"); }, function(module, exports, __webpack_require__) { - var stream = __webpack_require__(5), util = __webpack_require__(0), timers = __webpack_require__(89); + var stream = __webpack_require__(3), util = __webpack_require__(0), timers = __webpack_require__(117); function createLineStream(readStream, options) { if (!readStream) throw new Error("expected readStream"); if (!readStream.readable) throw new Error("readStream must be readable"); @@ -8957,40 +10776,7 @@ return this.encoding && this.encoding != chunkEncoding ? new Buffer(line, chunkEncoding).toString(this.encoding) : this.encoding ? line : new Buffer(line, chunkEncoding); }; }, function(module, exports, __webpack_require__) { - __webpack_require__(3); - var fs = __webpack_require__(2); - function Mime() { - this.types = Object.create(null), this.extensions = Object.create(null); - } - Mime.prototype.define = function(map) { - for (var type in map) { - for (var exts = map[type], i = 0; i < exts.length; i++) process.env.DEBUG_MIME && this.types[exts[i]] && console.warn((this._loading || "define()").replace(/.*\//, ""), 'changes "' + exts[i] + '" extension type from ' + this.types[exts[i]] + " to " + type), - this.types[exts[i]] = type; - this.extensions[type] || (this.extensions[type] = exts[0]); - } - }, Mime.prototype.load = function(file) { - this._loading = file; - var map = {}; - fs.readFileSync(file, "ascii").split(/[\r\n]+/).forEach((function(line) { - var fields = line.replace(/\s*#.*|^\s*|\s*$/g, "").split(/\s+/); - map[fields.shift()] = fields; - })), this.define(map), this._loading = null; - }, Mime.prototype.lookup = function(path, fallback) { - var ext = path.replace(/.*[\.\/\\]/, "").toLowerCase(); - return this.types[ext] || fallback || this.default_type; - }, Mime.prototype.extension = function(mimeType) { - var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); - return this.extensions[type]; - }; - var mime = new Mime; - mime.define(__webpack_require__(552)), mime.default_type = mime.lookup("bin"), mime.Mime = Mime, - mime.charsets = { - lookup: function(mimeType, fallback) { - return /^text\/|^application\/(javascript|json)/.test(mimeType) ? "UTF-8" : fallback; - } - }, module.exports = mime; -}, function(module, exports, __webpack_require__) { - var util = __webpack_require__(0), fs = __webpack_require__(2), path = __webpack_require__(3), pkg = __webpack_require__(326), isPositiveInteger = __webpack_require__(317), appPath = __webpack_require__(327); + var util = __webpack_require__(0), fs = __webpack_require__(2), path = __webpack_require__(4), pkg = __webpack_require__(378), isPositiveInteger = __webpack_require__(369), appPath = __webpack_require__(379); module.exports = (function(appPath, args) { var self = { get serverVersion() { @@ -9031,15 +10817,7 @@ self.load(), self; })(appPath); }, function(module, exports, __webpack_require__) { - try { - var util = __webpack_require__(0); - if ("function" != typeof util.inherits) throw ""; - module.exports = util.inherits; - } catch (e) { - module.exports = __webpack_require__(697); - } -}, function(module, exports, __webpack_require__) { - const miniget = __webpack_require__(118); + const miniget = __webpack_require__(146); exports.between = (haystack, left, right) => { let pos; if (left instanceof RegExp) { @@ -9081,7 +10859,7 @@ value) }); }; - const pkg = __webpack_require__(384); + const pkg = __webpack_require__(434); exports.lastUpdateCheck = 0, exports.checkForUpdates = () => !process.env.YTDL_NO_UPDATE && !pkg.version.startsWith("0.0.0-") && Date.now() - exports.lastUpdateCheck >= 432e5 ? (exports.lastUpdateCheck = Date.now(), miniget("https://api.github.com/repos/fent/node-ytdl-core/releases/latest", { headers: { @@ -9092,8 +10870,2398 @@ }), (err => { console.warn("Error checking for updates:", err.message), console.warn("You can disable this check by setting the `YTDL_NO_UPDATE` env variable."); }))) : null; +}, function(module, exports, __webpack_require__) { + try { + var util = __webpack_require__(0); + if ("function" != typeof util.inherits) throw ""; + module.exports = util.inherits; + } catch (e) { + module.exports = __webpack_require__(964); + } +}, function(module, exports, __webpack_require__) { + module.exports = Fingerprint; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), crypto = __webpack_require__(9), errs = __webpack_require__(44), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), Certificate = __webpack_require__(102), utils = __webpack_require__(27), FingerprintFormatError = errs.FingerprintFormatError, InvalidAlgorithmError = errs.InvalidAlgorithmError; + function Fingerprint(opts) { + if (assert.object(opts, "options"), assert.string(opts.type, "options.type"), assert.buffer(opts.hash, "options.hash"), + assert.string(opts.algorithm, "options.algorithm"), this.algorithm = opts.algorithm.toLowerCase(), + !0 !== algs.hashAlgs[this.algorithm]) throw new InvalidAlgorithmError(this.algorithm); + this.hash = opts.hash, this.type = opts.type, this.hashType = opts.hashType; + } + Fingerprint.prototype.toString = function(format) { + switch (void 0 === format && (format = "md5" === this.algorithm || "spki" === this.hashType ? "hex" : "base64"), + assert.string(format), format) { + case "hex": + return "spki" === this.hashType ? this.hash.toString("hex") : this.hash.toString("hex").replace(/(.{2})(?=.)/g, "$1:"); + + case "base64": + return "spki" === this.hashType ? this.hash.toString("base64") : (alg = this.algorithm, + h = this.hash.toString("base64"), alg.toUpperCase() + ":" + h.replace(/=*$/, "")); + + default: + throw new FingerprintFormatError(void 0, format); + } + var alg, h; + }, Fingerprint.prototype.matches = function(other) { + assert.object(other, "key or certificate"), "key" === this.type && "ssh" !== this.hashType ? (utils.assertCompatible(other, Key, [ 1, 7 ], "key with spki"), + PrivateKey.isPrivateKey(other) && utils.assertCompatible(other, PrivateKey, [ 1, 6 ], "privatekey with spki support")) : "key" === this.type ? utils.assertCompatible(other, Key, [ 1, 0 ], "key") : utils.assertCompatible(other, Certificate, [ 1, 0 ], "certificate"); + var theirHash = other.hash(this.algorithm, this.hashType), theirHash2 = crypto.createHash(this.algorithm).update(theirHash).digest("base64"); + return void 0 === this.hash2 && (this.hash2 = crypto.createHash(this.algorithm).update(this.hash).digest("base64")), + this.hash2 === theirHash2; + }; + var base64RE = /^[A-Za-z0-9+\/=]+$/, hexRE = /^[a-fA-F0-9]+$/; + Fingerprint.parse = function(fp, options) { + var alg, hash, enAlgs; + assert.string(fp, "fingerprint"), Array.isArray(options) && (enAlgs = options, options = {}), + assert.optionalObject(options, "options"), void 0 === options && (options = {}), + void 0 !== options.enAlgs && (enAlgs = options.enAlgs), void 0 !== options.algorithms && (enAlgs = options.algorithms), + assert.optionalArrayOfString(enAlgs, "algorithms"); + var hashType = "ssh"; + void 0 !== options.hashType && (hashType = options.hashType), assert.string(hashType, "options.hashType"); + var parts = fp.split(":"); + if (2 == parts.length) { + if (alg = parts[0].toLowerCase(), !base64RE.test(parts[1])) throw new FingerprintFormatError(fp); + try { + hash = Buffer.from(parts[1], "base64"); + } catch (e) { + throw new FingerprintFormatError(fp); + } + } else if (parts.length > 2) { + if (alg = "md5", "md5" === parts[0].toLowerCase() && (parts = parts.slice(1)), parts = (parts = parts.map((function(p) { + for (;p.length < 2; ) p = "0" + p; + if (p.length > 2) throw new FingerprintFormatError(fp); + return p; + }))).join(""), !hexRE.test(parts) || parts.length % 2 != 0) throw new FingerprintFormatError(fp); + try { + hash = Buffer.from(parts, "hex"); + } catch (e) { + throw new FingerprintFormatError(fp); + } + } else { + if (hexRE.test(fp)) hash = Buffer.from(fp, "hex"); else { + if (!base64RE.test(fp)) throw new FingerprintFormatError(fp); + hash = Buffer.from(fp, "base64"); + } + switch (hash.length) { + case 32: + alg = "sha256"; + break; + + case 16: + alg = "md5"; + break; + + case 20: + alg = "sha1"; + break; + + case 64: + alg = "sha512"; + break; + + default: + throw new FingerprintFormatError(fp); + } + void 0 === options.hashType && (hashType = "spki"); + } + if (void 0 === alg) throw new FingerprintFormatError(fp); + if (void 0 === algs.hashAlgs[alg]) throw new InvalidAlgorithmError(alg); + if (void 0 !== enAlgs && -1 === (enAlgs = enAlgs.map((function(a) { + return a.toLowerCase(); + }))).indexOf(alg)) throw new InvalidAlgorithmError(alg); + return new Fingerprint({ + algorithm: alg, + hash: hash, + type: options.type || "key", + hashType: hashType + }); + }, Fingerprint.isFingerprint = function(obj, ver) { + return utils.isCompatible(obj, Fingerprint, ver); + }, Fingerprint.prototype._sshpkApiVersion = [ 1, 2 ], Fingerprint._oldVersionDetect = function(obj) { + return assert.func(obj.toString), assert.func(obj.matches), [ 1, 0 ]; + }; +}, function(module, exports, __webpack_require__) { + (function() { + var dbits; + function BigInteger(a, b, c) { + null != a && ("number" == typeof a ? this.fromNumber(a, b, c) : null == b && "string" != typeof a ? this.fromString(a, 256) : this.fromString(a, b)); + } + function nbi() { + return new BigInteger(null); + } + var inBrowser = "undefined" != typeof navigator; + inBrowser && "Microsoft Internet Explorer" == navigator.appName ? (BigInteger.prototype.am = function(i, x, w, j, c, n) { + for (var xl = 32767 & x, xh = x >> 15; --n >= 0; ) { + var l = 32767 & this[i], h = this[i++] >> 15, m = xh * l + h * xl; + c = ((l = xl * l + ((32767 & m) << 15) + w[j] + (1073741823 & c)) >>> 30) + (m >>> 15) + xh * h + (c >>> 30), + w[j++] = 1073741823 & l; + } + return c; + }, dbits = 30) : inBrowser && "Netscape" != navigator.appName ? (BigInteger.prototype.am = function(i, x, w, j, c, n) { + for (;--n >= 0; ) { + var v = x * this[i++] + w[j] + c; + c = Math.floor(v / 67108864), w[j++] = 67108863 & v; + } + return c; + }, dbits = 26) : (BigInteger.prototype.am = function(i, x, w, j, c, n) { + for (var xl = 16383 & x, xh = x >> 14; --n >= 0; ) { + var l = 16383 & this[i], h = this[i++] >> 14, m = xh * l + h * xl; + c = ((l = xl * l + ((16383 & m) << 14) + w[j] + c) >> 28) + (m >> 14) + xh * h, + w[j++] = 268435455 & l; + } + return c; + }, dbits = 28), BigInteger.prototype.DB = dbits, BigInteger.prototype.DM = (1 << dbits) - 1, + BigInteger.prototype.DV = 1 << dbits, BigInteger.prototype.FV = Math.pow(2, 52), + BigInteger.prototype.F1 = 52 - dbits, BigInteger.prototype.F2 = 2 * dbits - 52; + var rr, vv, BI_RC = new Array; + for (rr = "0".charCodeAt(0), vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv; + for (rr = "a".charCodeAt(0), vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; + for (rr = "A".charCodeAt(0), vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; + function int2char(n) { + return "0123456789abcdefghijklmnopqrstuvwxyz".charAt(n); + } + function intAt(s, i) { + var c = BI_RC[s.charCodeAt(i)]; + return null == c ? -1 : c; + } + function nbv(i) { + var r = nbi(); + return r.fromInt(i), r; + } + function nbits(x) { + var t, r = 1; + return 0 != (t = x >>> 16) && (x = t, r += 16), 0 != (t = x >> 8) && (x = t, r += 8), + 0 != (t = x >> 4) && (x = t, r += 4), 0 != (t = x >> 2) && (x = t, r += 2), 0 != (t = x >> 1) && (x = t, + r += 1), r; + } + function Classic(m) { + this.m = m; + } + function Montgomery(m) { + this.m = m, this.mp = m.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, + this.um = (1 << m.DB - 15) - 1, this.mt2 = 2 * m.t; + } + function op_and(x, y) { + return x & y; + } + function op_or(x, y) { + return x | y; + } + function op_xor(x, y) { + return x ^ y; + } + function op_andnot(x, y) { + return x & ~y; + } + function lbit(x) { + if (0 == x) return -1; + var r = 0; + return 0 == (65535 & x) && (x >>= 16, r += 16), 0 == (255 & x) && (x >>= 8, r += 8), + 0 == (15 & x) && (x >>= 4, r += 4), 0 == (3 & x) && (x >>= 2, r += 2), 0 == (1 & x) && ++r, + r; + } + function cbit(x) { + for (var r = 0; 0 != x; ) x &= x - 1, ++r; + return r; + } + function NullExp() {} + function nNop(x) { + return x; + } + function Barrett(m) { + this.r2 = nbi(), this.q3 = nbi(), BigInteger.ONE.dlShiftTo(2 * m.t, this.r2), this.mu = this.r2.divide(m), + this.m = m; + } + Classic.prototype.convert = function(x) { + return x.s < 0 || x.compareTo(this.m) >= 0 ? x.mod(this.m) : x; + }, Classic.prototype.revert = function(x) { + return x; + }, Classic.prototype.reduce = function(x) { + x.divRemTo(this.m, null, x); + }, Classic.prototype.mulTo = function(x, y, r) { + x.multiplyTo(y, r), this.reduce(r); + }, Classic.prototype.sqrTo = function(x, r) { + x.squareTo(r), this.reduce(r); + }, Montgomery.prototype.convert = function(x) { + var r = nbi(); + return x.abs().dlShiftTo(this.m.t, r), r.divRemTo(this.m, null, r), x.s < 0 && r.compareTo(BigInteger.ZERO) > 0 && this.m.subTo(r, r), + r; + }, Montgomery.prototype.revert = function(x) { + var r = nbi(); + return x.copyTo(r), this.reduce(r), r; + }, Montgomery.prototype.reduce = function(x) { + for (;x.t <= this.mt2; ) x[x.t++] = 0; + for (var i = 0; i < this.m.t; ++i) { + var j = 32767 & x[i], u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM; + for (x[j = i + this.m.t] += this.m.am(0, u0, x, i, 0, this.m.t); x[j] >= x.DV; ) x[j] -= x.DV, + x[++j]++; + } + x.clamp(), x.drShiftTo(this.m.t, x), x.compareTo(this.m) >= 0 && x.subTo(this.m, x); + }, Montgomery.prototype.mulTo = function(x, y, r) { + x.multiplyTo(y, r), this.reduce(r); + }, Montgomery.prototype.sqrTo = function(x, r) { + x.squareTo(r), this.reduce(r); + }, BigInteger.prototype.copyTo = function(r) { + for (var i = this.t - 1; i >= 0; --i) r[i] = this[i]; + r.t = this.t, r.s = this.s; + }, BigInteger.prototype.fromInt = function(x) { + this.t = 1, this.s = x < 0 ? -1 : 0, x > 0 ? this[0] = x : x < -1 ? this[0] = x + this.DV : this.t = 0; + }, BigInteger.prototype.fromString = function(s, b) { + var k; + if (16 == b) k = 4; else if (8 == b) k = 3; else if (256 == b) k = 8; else if (2 == b) k = 1; else if (32 == b) k = 5; else { + if (4 != b) return void this.fromRadix(s, b); + k = 2; + } + this.t = 0, this.s = 0; + for (var i = s.length, mi = !1, sh = 0; --i >= 0; ) { + var x = 8 == k ? 255 & s[i] : intAt(s, i); + x < 0 ? "-" == s.charAt(i) && (mi = !0) : (mi = !1, 0 == sh ? this[this.t++] = x : sh + k > this.DB ? (this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh, + this[this.t++] = x >> this.DB - sh) : this[this.t - 1] |= x << sh, (sh += k) >= this.DB && (sh -= this.DB)); + } + 8 == k && 0 != (128 & s[0]) && (this.s = -1, sh > 0 && (this[this.t - 1] |= (1 << this.DB - sh) - 1 << sh)), + this.clamp(), mi && BigInteger.ZERO.subTo(this, this); + }, BigInteger.prototype.clamp = function() { + for (var c = this.s & this.DM; this.t > 0 && this[this.t - 1] == c; ) --this.t; + }, BigInteger.prototype.dlShiftTo = function(n, r) { + var i; + for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i]; + for (i = n - 1; i >= 0; --i) r[i] = 0; + r.t = this.t + n, r.s = this.s; + }, BigInteger.prototype.drShiftTo = function(n, r) { + for (var i = n; i < this.t; ++i) r[i - n] = this[i]; + r.t = Math.max(this.t - n, 0), r.s = this.s; + }, BigInteger.prototype.lShiftTo = function(n, r) { + var i, bs = n % this.DB, cbs = this.DB - bs, bm = (1 << cbs) - 1, ds = Math.floor(n / this.DB), c = this.s << bs & this.DM; + for (i = this.t - 1; i >= 0; --i) r[i + ds + 1] = this[i] >> cbs | c, c = (this[i] & bm) << bs; + for (i = ds - 1; i >= 0; --i) r[i] = 0; + r[ds] = c, r.t = this.t + ds + 1, r.s = this.s, r.clamp(); + }, BigInteger.prototype.rShiftTo = function(n, r) { + r.s = this.s; + var ds = Math.floor(n / this.DB); + if (ds >= this.t) r.t = 0; else { + var bs = n % this.DB, cbs = this.DB - bs, bm = (1 << bs) - 1; + r[0] = this[ds] >> bs; + for (var i = ds + 1; i < this.t; ++i) r[i - ds - 1] |= (this[i] & bm) << cbs, r[i - ds] = this[i] >> bs; + bs > 0 && (r[this.t - ds - 1] |= (this.s & bm) << cbs), r.t = this.t - ds, r.clamp(); + } + }, BigInteger.prototype.subTo = function(a, r) { + for (var i = 0, c = 0, m = Math.min(a.t, this.t); i < m; ) c += this[i] - a[i], + r[i++] = c & this.DM, c >>= this.DB; + if (a.t < this.t) { + for (c -= a.s; i < this.t; ) c += this[i], r[i++] = c & this.DM, c >>= this.DB; + c += this.s; + } else { + for (c += this.s; i < a.t; ) c -= a[i], r[i++] = c & this.DM, c >>= this.DB; + c -= a.s; + } + r.s = c < 0 ? -1 : 0, c < -1 ? r[i++] = this.DV + c : c > 0 && (r[i++] = c), r.t = i, + r.clamp(); + }, BigInteger.prototype.multiplyTo = function(a, r) { + var x = this.abs(), y = a.abs(), i = x.t; + for (r.t = i + y.t; --i >= 0; ) r[i] = 0; + for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t); + r.s = 0, r.clamp(), this.s != a.s && BigInteger.ZERO.subTo(r, r); + }, BigInteger.prototype.squareTo = function(r) { + for (var x = this.abs(), i = r.t = 2 * x.t; --i >= 0; ) r[i] = 0; + for (i = 0; i < x.t - 1; ++i) { + var c = x.am(i, x[i], r, 2 * i, 0, 1); + (r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV && (r[i + x.t] -= x.DV, + r[i + x.t + 1] = 1); + } + r.t > 0 && (r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1)), r.s = 0, r.clamp(); + }, BigInteger.prototype.divRemTo = function(m, q, r) { + var pm = m.abs(); + if (!(pm.t <= 0)) { + var pt = this.abs(); + if (pt.t < pm.t) return null != q && q.fromInt(0), void (null != r && this.copyTo(r)); + null == r && (r = nbi()); + var y = nbi(), ts = this.s, ms = m.s, nsh = this.DB - nbits(pm[pm.t - 1]); + nsh > 0 ? (pm.lShiftTo(nsh, y), pt.lShiftTo(nsh, r)) : (pm.copyTo(y), pt.copyTo(r)); + var ys = y.t, y0 = y[ys - 1]; + if (0 != y0) { + var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0), d1 = this.FV / yt, d2 = (1 << this.F1) / yt, e = 1 << this.F2, i = r.t, j = i - ys, t = null == q ? nbi() : q; + for (y.dlShiftTo(j, t), r.compareTo(t) >= 0 && (r[r.t++] = 1, r.subTo(t, r)), BigInteger.ONE.dlShiftTo(ys, t), + t.subTo(y, y); y.t < ys; ) y[y.t++] = 0; + for (;--j >= 0; ) { + var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2); + if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) for (y.dlShiftTo(j, t), r.subTo(t, r); r[i] < --qd; ) r.subTo(t, r); + } + null != q && (r.drShiftTo(ys, q), ts != ms && BigInteger.ZERO.subTo(q, q)), r.t = ys, + r.clamp(), nsh > 0 && r.rShiftTo(nsh, r), ts < 0 && BigInteger.ZERO.subTo(r, r); + } + } + }, BigInteger.prototype.invDigit = function() { + if (this.t < 1) return 0; + var x = this[0]; + if (0 == (1 & x)) return 0; + var y = 3 & x; + return (y = (y = (y = (y = y * (2 - (15 & x) * y) & 15) * (2 - (255 & x) * y) & 255) * (2 - ((65535 & x) * y & 65535)) & 65535) * (2 - x * y % this.DV) % this.DV) > 0 ? this.DV - y : -y; + }, BigInteger.prototype.isEven = function() { + return 0 == (this.t > 0 ? 1 & this[0] : this.s); + }, BigInteger.prototype.exp = function(e, z) { + if (e > 4294967295 || e < 1) return BigInteger.ONE; + var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e) - 1; + for (g.copyTo(r); --i >= 0; ) if (z.sqrTo(r, r2), (e & 1 << i) > 0) z.mulTo(r2, g, r); else { + var t = r; + r = r2, r2 = t; + } + return z.revert(r); + }, BigInteger.prototype.toString = function(b) { + if (this.s < 0) return "-" + this.negate().toString(b); + var k; + if (16 == b) k = 4; else if (8 == b) k = 3; else if (2 == b) k = 1; else if (32 == b) k = 5; else { + if (4 != b) return this.toRadix(b); + k = 2; + } + var d, km = (1 << k) - 1, m = !1, r = "", i = this.t, p = this.DB - i * this.DB % k; + if (i-- > 0) for (p < this.DB && (d = this[i] >> p) > 0 && (m = !0, r = int2char(d)); i >= 0; ) p < k ? (d = (this[i] & (1 << p) - 1) << k - p, + d |= this[--i] >> (p += this.DB - k)) : (d = this[i] >> (p -= k) & km, p <= 0 && (p += this.DB, + --i)), d > 0 && (m = !0), m && (r += int2char(d)); + return m ? r : "0"; + }, BigInteger.prototype.negate = function() { + var r = nbi(); + return BigInteger.ZERO.subTo(this, r), r; + }, BigInteger.prototype.abs = function() { + return this.s < 0 ? this.negate() : this; + }, BigInteger.prototype.compareTo = function(a) { + var r = this.s - a.s; + if (0 != r) return r; + var i = this.t; + if (0 != (r = i - a.t)) return this.s < 0 ? -r : r; + for (;--i >= 0; ) if (0 != (r = this[i] - a[i])) return r; + return 0; + }, BigInteger.prototype.bitLength = function() { + return this.t <= 0 ? 0 : this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM); + }, BigInteger.prototype.mod = function(a) { + var r = nbi(); + return this.abs().divRemTo(a, null, r), this.s < 0 && r.compareTo(BigInteger.ZERO) > 0 && a.subTo(r, r), + r; + }, BigInteger.prototype.modPowInt = function(e, m) { + var z; + return z = e < 256 || m.isEven() ? new Classic(m) : new Montgomery(m), this.exp(e, z); + }, BigInteger.ZERO = nbv(0), BigInteger.ONE = nbv(1), NullExp.prototype.convert = nNop, + NullExp.prototype.revert = nNop, NullExp.prototype.mulTo = function(x, y, r) { + x.multiplyTo(y, r); + }, NullExp.prototype.sqrTo = function(x, r) { + x.squareTo(r); + }, Barrett.prototype.convert = function(x) { + if (x.s < 0 || x.t > 2 * this.m.t) return x.mod(this.m); + if (x.compareTo(this.m) < 0) return x; + var r = nbi(); + return x.copyTo(r), this.reduce(r), r; + }, Barrett.prototype.revert = function(x) { + return x; + }, Barrett.prototype.reduce = function(x) { + for (x.drShiftTo(this.m.t - 1, this.r2), x.t > this.m.t + 1 && (x.t = this.m.t + 1, + x.clamp()), this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3), this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); x.compareTo(this.r2) < 0; ) x.dAddOffset(1, this.m.t + 1); + for (x.subTo(this.r2, x); x.compareTo(this.m) >= 0; ) x.subTo(this.m, x); + }, Barrett.prototype.mulTo = function(x, y, r) { + x.multiplyTo(y, r), this.reduce(r); + }, Barrett.prototype.sqrTo = function(x, r) { + x.squareTo(r), this.reduce(r); + }; + var rng_state, rng_pool, rng_pptr, lowprimes = [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997 ], lplim = (1 << 26) / lowprimes[lowprimes.length - 1]; + function rng_seed_time() { + var x; + x = (new Date).getTime(), rng_pool[rng_pptr++] ^= 255 & x, rng_pool[rng_pptr++] ^= x >> 8 & 255, + rng_pool[rng_pptr++] ^= x >> 16 & 255, rng_pool[rng_pptr++] ^= x >> 24 & 255, rng_pptr >= rng_psize && (rng_pptr -= rng_psize); + } + if (BigInteger.prototype.chunkSize = function(r) { + return Math.floor(Math.LN2 * this.DB / Math.log(r)); + }, BigInteger.prototype.toRadix = function(b) { + if (null == b && (b = 10), 0 == this.signum() || b < 2 || b > 36) return "0"; + var cs = this.chunkSize(b), a = Math.pow(b, cs), d = nbv(a), y = nbi(), z = nbi(), r = ""; + for (this.divRemTo(d, y, z); y.signum() > 0; ) r = (a + z.intValue()).toString(b).substr(1) + r, + y.divRemTo(d, y, z); + return z.intValue().toString(b) + r; + }, BigInteger.prototype.fromRadix = function(s, b) { + this.fromInt(0), null == b && (b = 10); + for (var cs = this.chunkSize(b), d = Math.pow(b, cs), mi = !1, j = 0, w = 0, i = 0; i < s.length; ++i) { + var x = intAt(s, i); + x < 0 ? "-" == s.charAt(i) && 0 == this.signum() && (mi = !0) : (w = b * w + x, + ++j >= cs && (this.dMultiply(d), this.dAddOffset(w, 0), j = 0, w = 0)); + } + j > 0 && (this.dMultiply(Math.pow(b, j)), this.dAddOffset(w, 0)), mi && BigInteger.ZERO.subTo(this, this); + }, BigInteger.prototype.fromNumber = function(a, b, c) { + if ("number" == typeof b) if (a < 2) this.fromInt(1); else for (this.fromNumber(a, c), + this.testBit(a - 1) || this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this), + this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(b); ) this.dAddOffset(2, 0), + this.bitLength() > a && this.subTo(BigInteger.ONE.shiftLeft(a - 1), this); else { + var x = new Array, t = 7 & a; + x.length = 1 + (a >> 3), b.nextBytes(x), t > 0 ? x[0] &= (1 << t) - 1 : x[0] = 0, + this.fromString(x, 256); + } + }, BigInteger.prototype.bitwiseTo = function(a, op, r) { + var i, f, m = Math.min(a.t, this.t); + for (i = 0; i < m; ++i) r[i] = op(this[i], a[i]); + if (a.t < this.t) { + for (f = a.s & this.DM, i = m; i < this.t; ++i) r[i] = op(this[i], f); + r.t = this.t; + } else { + for (f = this.s & this.DM, i = m; i < a.t; ++i) r[i] = op(f, a[i]); + r.t = a.t; + } + r.s = op(this.s, a.s), r.clamp(); + }, BigInteger.prototype.changeBit = function(n, op) { + var r = BigInteger.ONE.shiftLeft(n); + return this.bitwiseTo(r, op, r), r; + }, BigInteger.prototype.addTo = function(a, r) { + for (var i = 0, c = 0, m = Math.min(a.t, this.t); i < m; ) c += this[i] + a[i], + r[i++] = c & this.DM, c >>= this.DB; + if (a.t < this.t) { + for (c += a.s; i < this.t; ) c += this[i], r[i++] = c & this.DM, c >>= this.DB; + c += this.s; + } else { + for (c += this.s; i < a.t; ) c += a[i], r[i++] = c & this.DM, c >>= this.DB; + c += a.s; + } + r.s = c < 0 ? -1 : 0, c > 0 ? r[i++] = c : c < -1 && (r[i++] = this.DV + c), r.t = i, + r.clamp(); + }, BigInteger.prototype.dMultiply = function(n) { + this[this.t] = this.am(0, n - 1, this, 0, 0, this.t), ++this.t, this.clamp(); + }, BigInteger.prototype.dAddOffset = function(n, w) { + if (0 != n) { + for (;this.t <= w; ) this[this.t++] = 0; + for (this[w] += n; this[w] >= this.DV; ) this[w] -= this.DV, ++w >= this.t && (this[this.t++] = 0), + ++this[w]; + } + }, BigInteger.prototype.multiplyLowerTo = function(a, n, r) { + var j, i = Math.min(this.t + a.t, n); + for (r.s = 0, r.t = i; i > 0; ) r[--i] = 0; + for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(0, a[i], r, i, 0, this.t); + for (j = Math.min(a.t, n); i < j; ++i) this.am(0, a[i], r, i, 0, n - i); + r.clamp(); + }, BigInteger.prototype.multiplyUpperTo = function(a, n, r) { + --n; + var i = r.t = this.t + a.t - n; + for (r.s = 0; --i >= 0; ) r[i] = 0; + for (i = Math.max(n - this.t, 0); i < a.t; ++i) r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n); + r.clamp(), r.drShiftTo(1, r); + }, BigInteger.prototype.modInt = function(n) { + if (n <= 0) return 0; + var d = this.DV % n, r = this.s < 0 ? n - 1 : 0; + if (this.t > 0) if (0 == d) r = this[0] % n; else for (var i = this.t - 1; i >= 0; --i) r = (d * r + this[i]) % n; + return r; + }, BigInteger.prototype.millerRabin = function(t) { + var n1 = this.subtract(BigInteger.ONE), k = n1.getLowestSetBit(); + if (k <= 0) return !1; + var r = n1.shiftRight(k); + (t = t + 1 >> 1) > lowprimes.length && (t = lowprimes.length); + for (var a = nbi(), i = 0; i < t; ++i) { + a.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]); + var y = a.modPow(r, this); + if (0 != y.compareTo(BigInteger.ONE) && 0 != y.compareTo(n1)) { + for (var j = 1; j++ < k && 0 != y.compareTo(n1); ) if (0 == (y = y.modPowInt(2, this)).compareTo(BigInteger.ONE)) return !1; + if (0 != y.compareTo(n1)) return !1; + } + } + return !0; + }, BigInteger.prototype.clone = function() { + var r = nbi(); + return this.copyTo(r), r; + }, BigInteger.prototype.intValue = function() { + if (this.s < 0) { + if (1 == this.t) return this[0] - this.DV; + if (0 == this.t) return -1; + } else { + if (1 == this.t) return this[0]; + if (0 == this.t) return 0; + } + return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0]; + }, BigInteger.prototype.byteValue = function() { + return 0 == this.t ? this.s : this[0] << 24 >> 24; + }, BigInteger.prototype.shortValue = function() { + return 0 == this.t ? this.s : this[0] << 16 >> 16; + }, BigInteger.prototype.signum = function() { + return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1; + }, BigInteger.prototype.toByteArray = function() { + var i = this.t, r = new Array; + r[0] = this.s; + var d, p = this.DB - i * this.DB % 8, k = 0; + if (i-- > 0) for (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p && (r[k++] = d | this.s << this.DB - p); i >= 0; ) p < 8 ? (d = (this[i] & (1 << p) - 1) << 8 - p, + d |= this[--i] >> (p += this.DB - 8)) : (d = this[i] >> (p -= 8) & 255, p <= 0 && (p += this.DB, + --i)), 0 != (128 & d) && (d |= -256), 0 == k && (128 & this.s) != (128 & d) && ++k, + (k > 0 || d != this.s) && (r[k++] = d); + return r; + }, BigInteger.prototype.equals = function(a) { + return 0 == this.compareTo(a); + }, BigInteger.prototype.min = function(a) { + return this.compareTo(a) < 0 ? this : a; + }, BigInteger.prototype.max = function(a) { + return this.compareTo(a) > 0 ? this : a; + }, BigInteger.prototype.and = function(a) { + var r = nbi(); + return this.bitwiseTo(a, op_and, r), r; + }, BigInteger.prototype.or = function(a) { + var r = nbi(); + return this.bitwiseTo(a, op_or, r), r; + }, BigInteger.prototype.xor = function(a) { + var r = nbi(); + return this.bitwiseTo(a, op_xor, r), r; + }, BigInteger.prototype.andNot = function(a) { + var r = nbi(); + return this.bitwiseTo(a, op_andnot, r), r; + }, BigInteger.prototype.not = function() { + for (var r = nbi(), i = 0; i < this.t; ++i) r[i] = this.DM & ~this[i]; + return r.t = this.t, r.s = ~this.s, r; + }, BigInteger.prototype.shiftLeft = function(n) { + var r = nbi(); + return n < 0 ? this.rShiftTo(-n, r) : this.lShiftTo(n, r), r; + }, BigInteger.prototype.shiftRight = function(n) { + var r = nbi(); + return n < 0 ? this.lShiftTo(-n, r) : this.rShiftTo(n, r), r; + }, BigInteger.prototype.getLowestSetBit = function() { + for (var i = 0; i < this.t; ++i) if (0 != this[i]) return i * this.DB + lbit(this[i]); + return this.s < 0 ? this.t * this.DB : -1; + }, BigInteger.prototype.bitCount = function() { + for (var r = 0, x = this.s & this.DM, i = 0; i < this.t; ++i) r += cbit(this[i] ^ x); + return r; + }, BigInteger.prototype.testBit = function(n) { + var j = Math.floor(n / this.DB); + return j >= this.t ? 0 != this.s : 0 != (this[j] & 1 << n % this.DB); + }, BigInteger.prototype.setBit = function(n) { + return this.changeBit(n, op_or); + }, BigInteger.prototype.clearBit = function(n) { + return this.changeBit(n, op_andnot); + }, BigInteger.prototype.flipBit = function(n) { + return this.changeBit(n, op_xor); + }, BigInteger.prototype.add = function(a) { + var r = nbi(); + return this.addTo(a, r), r; + }, BigInteger.prototype.subtract = function(a) { + var r = nbi(); + return this.subTo(a, r), r; + }, BigInteger.prototype.multiply = function(a) { + var r = nbi(); + return this.multiplyTo(a, r), r; + }, BigInteger.prototype.divide = function(a) { + var r = nbi(); + return this.divRemTo(a, r, null), r; + }, BigInteger.prototype.remainder = function(a) { + var r = nbi(); + return this.divRemTo(a, null, r), r; + }, BigInteger.prototype.divideAndRemainder = function(a) { + var q = nbi(), r = nbi(); + return this.divRemTo(a, q, r), new Array(q, r); + }, BigInteger.prototype.modPow = function(e, m) { + var k, z, i = e.bitLength(), r = nbv(1); + if (i <= 0) return r; + k = i < 18 ? 1 : i < 48 ? 3 : i < 144 ? 4 : i < 768 ? 5 : 6, z = i < 8 ? new Classic(m) : m.isEven() ? new Barrett(m) : new Montgomery(m); + var g = new Array, n = 3, k1 = k - 1, km = (1 << k) - 1; + if (g[1] = z.convert(this), k > 1) { + var g2 = nbi(); + for (z.sqrTo(g[1], g2); n <= km; ) g[n] = nbi(), z.mulTo(g2, g[n - 2], g[n]), n += 2; + } + var w, t, j = e.t - 1, is1 = !0, r2 = nbi(); + for (i = nbits(e[j]) - 1; j >= 0; ) { + for (i >= k1 ? w = e[j] >> i - k1 & km : (w = (e[j] & (1 << i + 1) - 1) << k1 - i, + j > 0 && (w |= e[j - 1] >> this.DB + i - k1)), n = k; 0 == (1 & w); ) w >>= 1, --n; + if ((i -= n) < 0 && (i += this.DB, --j), is1) g[w].copyTo(r), is1 = !1; else { + for (;n > 1; ) z.sqrTo(r, r2), z.sqrTo(r2, r), n -= 2; + n > 0 ? z.sqrTo(r, r2) : (t = r, r = r2, r2 = t), z.mulTo(r2, g[w], r); + } + for (;j >= 0 && 0 == (e[j] & 1 << i); ) z.sqrTo(r, r2), t = r, r = r2, r2 = t, --i < 0 && (i = this.DB - 1, + --j); + } + return z.revert(r); + }, BigInteger.prototype.modInverse = function(m) { + var ac = m.isEven(); + if (this.isEven() && ac || 0 == m.signum()) return BigInteger.ZERO; + for (var u = m.clone(), v = this.clone(), a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1); 0 != u.signum(); ) { + for (;u.isEven(); ) u.rShiftTo(1, u), ac ? (a.isEven() && b.isEven() || (a.addTo(this, a), + b.subTo(m, b)), a.rShiftTo(1, a)) : b.isEven() || b.subTo(m, b), b.rShiftTo(1, b); + for (;v.isEven(); ) v.rShiftTo(1, v), ac ? (c.isEven() && d.isEven() || (c.addTo(this, c), + d.subTo(m, d)), c.rShiftTo(1, c)) : d.isEven() || d.subTo(m, d), d.rShiftTo(1, d); + u.compareTo(v) >= 0 ? (u.subTo(v, u), ac && a.subTo(c, a), b.subTo(d, b)) : (v.subTo(u, v), + ac && c.subTo(a, c), d.subTo(b, d)); + } + return 0 != v.compareTo(BigInteger.ONE) ? BigInteger.ZERO : d.compareTo(m) >= 0 ? d.subtract(m) : d.signum() < 0 ? (d.addTo(m, d), + d.signum() < 0 ? d.add(m) : d) : d; + }, BigInteger.prototype.pow = function(e) { + return this.exp(e, new NullExp); + }, BigInteger.prototype.gcd = function(a) { + var x = this.s < 0 ? this.negate() : this.clone(), y = a.s < 0 ? a.negate() : a.clone(); + if (x.compareTo(y) < 0) { + var t = x; + x = y, y = t; + } + var i = x.getLowestSetBit(), g = y.getLowestSetBit(); + if (g < 0) return x; + for (i < g && (g = i), g > 0 && (x.rShiftTo(g, x), y.rShiftTo(g, y)); x.signum() > 0; ) (i = x.getLowestSetBit()) > 0 && x.rShiftTo(i, x), + (i = y.getLowestSetBit()) > 0 && y.rShiftTo(i, y), x.compareTo(y) >= 0 ? (x.subTo(y, x), + x.rShiftTo(1, x)) : (y.subTo(x, y), y.rShiftTo(1, y)); + return g > 0 && y.lShiftTo(g, y), y; + }, BigInteger.prototype.isProbablePrime = function(t) { + var i, x = this.abs(); + if (1 == x.t && x[0] <= lowprimes[lowprimes.length - 1]) { + for (i = 0; i < lowprimes.length; ++i) if (x[0] == lowprimes[i]) return !0; + return !1; + } + if (x.isEven()) return !1; + for (i = 1; i < lowprimes.length; ) { + for (var m = lowprimes[i], j = i + 1; j < lowprimes.length && m < lplim; ) m *= lowprimes[j++]; + for (m = x.modInt(m); i < j; ) if (m % lowprimes[i++] == 0) return !1; + } + return x.millerRabin(t); + }, BigInteger.prototype.square = function() { + var r = nbi(); + return this.squareTo(r), r; + }, BigInteger.prototype.Barrett = Barrett, null == rng_pool) { + var t; + if (rng_pool = new Array, rng_pptr = 0, "undefined" != typeof window && window.crypto) if (window.crypto.getRandomValues) { + var ua = new Uint8Array(32); + for (window.crypto.getRandomValues(ua), t = 0; t < 32; ++t) rng_pool[rng_pptr++] = ua[t]; + } else if ("Netscape" == navigator.appName && navigator.appVersion < "5") { + var z = window.crypto.random(32); + for (t = 0; t < z.length; ++t) rng_pool[rng_pptr++] = 255 & z.charCodeAt(t); + } + for (;rng_pptr < rng_psize; ) t = Math.floor(65536 * Math.random()), rng_pool[rng_pptr++] = t >>> 8, + rng_pool[rng_pptr++] = 255 & t; + rng_pptr = 0, rng_seed_time(); + } + function rng_get_byte() { + if (null == rng_state) { + for (rng_seed_time(), (rng_state = new Arcfour).init(rng_pool), rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) rng_pool[rng_pptr] = 0; + rng_pptr = 0; + } + return rng_state.next(); + } + function SecureRandom() {} + function Arcfour() { + this.i = 0, this.j = 0, this.S = new Array; + } + SecureRandom.prototype.nextBytes = function(ba) { + var i; + for (i = 0; i < ba.length; ++i) ba[i] = rng_get_byte(); + }, Arcfour.prototype.init = function(key) { + var i, j, t; + for (i = 0; i < 256; ++i) this.S[i] = i; + for (j = 0, i = 0; i < 256; ++i) j = j + this.S[i] + key[i % key.length] & 255, + t = this.S[i], this.S[i] = this.S[j], this.S[j] = t; + this.i = 0, this.j = 0; + }, Arcfour.prototype.next = function() { + var t; + return this.i = this.i + 1 & 255, this.j = this.j + this.S[this.i] & 255, t = this.S[this.i], + this.S[this.i] = this.S[this.j], this.S[this.j] = t, this.S[t + this.S[this.i] & 255]; + }; + var rng_psize = 256; + BigInteger.SecureRandom = SecureRandom, BigInteger.BigInteger = BigInteger, module.exports = BigInteger; + }).call(this); +}, function(module, exports, __webpack_require__) { + !(function(nacl) { + "use strict"; + var gf = function(init) { + var i, r = new Float64Array(16); + if (init) for (i = 0; i < init.length; i++) r[i] = init[i]; + return r; + }, randombytes = function() { + throw new Error("no PRNG"); + }, _0 = new Uint8Array(16), _9 = new Uint8Array(32); + _9[0] = 9; + var gf0 = gf(), gf1 = gf([ 1 ]), _121665 = gf([ 56129, 1 ]), D = gf([ 30883, 4953, 19914, 30187, 55467, 16705, 2637, 112, 59544, 30585, 16505, 36039, 65139, 11119, 27886, 20995 ]), D2 = gf([ 61785, 9906, 39828, 60374, 45398, 33411, 5274, 224, 53552, 61171, 33010, 6542, 64743, 22239, 55772, 9222 ]), X = gf([ 54554, 36645, 11616, 51542, 42930, 38181, 51040, 26924, 56412, 64982, 57905, 49316, 21502, 52590, 14035, 8553 ]), Y = gf([ 26200, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214 ]), I = gf([ 41136, 18958, 6951, 50414, 58488, 44335, 6150, 12099, 55207, 15867, 153, 11085, 57099, 20417, 9344, 11139 ]); + function ts64(x, i, h, l) { + x[i] = h >> 24 & 255, x[i + 1] = h >> 16 & 255, x[i + 2] = h >> 8 & 255, x[i + 3] = 255 & h, + x[i + 4] = l >> 24 & 255, x[i + 5] = l >> 16 & 255, x[i + 6] = l >> 8 & 255, x[i + 7] = 255 & l; + } + function vn(x, xi, y, yi, n) { + var i, d = 0; + for (i = 0; i < n; i++) d |= x[xi + i] ^ y[yi + i]; + return (1 & d - 1 >>> 8) - 1; + } + function crypto_verify_16(x, xi, y, yi) { + return vn(x, xi, y, yi, 16); + } + function crypto_verify_32(x, xi, y, yi) { + return vn(x, xi, y, yi, 32); + } + function crypto_core_salsa20(out, inp, k, c) { + !(function(o, p, k, c) { + for (var u, j0 = 255 & c[0] | (255 & c[1]) << 8 | (255 & c[2]) << 16 | (255 & c[3]) << 24, j1 = 255 & k[0] | (255 & k[1]) << 8 | (255 & k[2]) << 16 | (255 & k[3]) << 24, j2 = 255 & k[4] | (255 & k[5]) << 8 | (255 & k[6]) << 16 | (255 & k[7]) << 24, j3 = 255 & k[8] | (255 & k[9]) << 8 | (255 & k[10]) << 16 | (255 & k[11]) << 24, j4 = 255 & k[12] | (255 & k[13]) << 8 | (255 & k[14]) << 16 | (255 & k[15]) << 24, j5 = 255 & c[4] | (255 & c[5]) << 8 | (255 & c[6]) << 16 | (255 & c[7]) << 24, j6 = 255 & p[0] | (255 & p[1]) << 8 | (255 & p[2]) << 16 | (255 & p[3]) << 24, j7 = 255 & p[4] | (255 & p[5]) << 8 | (255 & p[6]) << 16 | (255 & p[7]) << 24, j8 = 255 & p[8] | (255 & p[9]) << 8 | (255 & p[10]) << 16 | (255 & p[11]) << 24, j9 = 255 & p[12] | (255 & p[13]) << 8 | (255 & p[14]) << 16 | (255 & p[15]) << 24, j10 = 255 & c[8] | (255 & c[9]) << 8 | (255 & c[10]) << 16 | (255 & c[11]) << 24, j11 = 255 & k[16] | (255 & k[17]) << 8 | (255 & k[18]) << 16 | (255 & k[19]) << 24, j12 = 255 & k[20] | (255 & k[21]) << 8 | (255 & k[22]) << 16 | (255 & k[23]) << 24, j13 = 255 & k[24] | (255 & k[25]) << 8 | (255 & k[26]) << 16 | (255 & k[27]) << 24, j14 = 255 & k[28] | (255 & k[29]) << 8 | (255 & k[30]) << 16 | (255 & k[31]) << 24, j15 = 255 & c[12] | (255 & c[13]) << 8 | (255 & c[14]) << 16 | (255 & c[15]) << 24, x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, x15 = j15, i = 0; i < 20; i += 2) x0 ^= (u = (x12 ^= (u = (x8 ^= (u = (x4 ^= (u = x0 + x12 | 0) << 7 | u >>> 25) + x0 | 0) << 9 | u >>> 23) + x4 | 0) << 13 | u >>> 19) + x8 | 0) << 18 | u >>> 14, + x5 ^= (u = (x1 ^= (u = (x13 ^= (u = (x9 ^= (u = x5 + x1 | 0) << 7 | u >>> 25) + x5 | 0) << 9 | u >>> 23) + x9 | 0) << 13 | u >>> 19) + x13 | 0) << 18 | u >>> 14, + x10 ^= (u = (x6 ^= (u = (x2 ^= (u = (x14 ^= (u = x10 + x6 | 0) << 7 | u >>> 25) + x10 | 0) << 9 | u >>> 23) + x14 | 0) << 13 | u >>> 19) + x2 | 0) << 18 | u >>> 14, + x15 ^= (u = (x11 ^= (u = (x7 ^= (u = (x3 ^= (u = x15 + x11 | 0) << 7 | u >>> 25) + x15 | 0) << 9 | u >>> 23) + x3 | 0) << 13 | u >>> 19) + x7 | 0) << 18 | u >>> 14, + x0 ^= (u = (x3 ^= (u = (x2 ^= (u = (x1 ^= (u = x0 + x3 | 0) << 7 | u >>> 25) + x0 | 0) << 9 | u >>> 23) + x1 | 0) << 13 | u >>> 19) + x2 | 0) << 18 | u >>> 14, + x5 ^= (u = (x4 ^= (u = (x7 ^= (u = (x6 ^= (u = x5 + x4 | 0) << 7 | u >>> 25) + x5 | 0) << 9 | u >>> 23) + x6 | 0) << 13 | u >>> 19) + x7 | 0) << 18 | u >>> 14, + x10 ^= (u = (x9 ^= (u = (x8 ^= (u = (x11 ^= (u = x10 + x9 | 0) << 7 | u >>> 25) + x10 | 0) << 9 | u >>> 23) + x11 | 0) << 13 | u >>> 19) + x8 | 0) << 18 | u >>> 14, + x15 ^= (u = (x14 ^= (u = (x13 ^= (u = (x12 ^= (u = x15 + x14 | 0) << 7 | u >>> 25) + x15 | 0) << 9 | u >>> 23) + x12 | 0) << 13 | u >>> 19) + x13 | 0) << 18 | u >>> 14; + x0 = x0 + j0 | 0, x1 = x1 + j1 | 0, x2 = x2 + j2 | 0, x3 = x3 + j3 | 0, x4 = x4 + j4 | 0, + x5 = x5 + j5 | 0, x6 = x6 + j6 | 0, x7 = x7 + j7 | 0, x8 = x8 + j8 | 0, x9 = x9 + j9 | 0, + x10 = x10 + j10 | 0, x11 = x11 + j11 | 0, x12 = x12 + j12 | 0, x13 = x13 + j13 | 0, + x14 = x14 + j14 | 0, x15 = x15 + j15 | 0, o[0] = x0 >>> 0 & 255, o[1] = x0 >>> 8 & 255, + o[2] = x0 >>> 16 & 255, o[3] = x0 >>> 24 & 255, o[4] = x1 >>> 0 & 255, o[5] = x1 >>> 8 & 255, + o[6] = x1 >>> 16 & 255, o[7] = x1 >>> 24 & 255, o[8] = x2 >>> 0 & 255, o[9] = x2 >>> 8 & 255, + o[10] = x2 >>> 16 & 255, o[11] = x2 >>> 24 & 255, o[12] = x3 >>> 0 & 255, o[13] = x3 >>> 8 & 255, + o[14] = x3 >>> 16 & 255, o[15] = x3 >>> 24 & 255, o[16] = x4 >>> 0 & 255, o[17] = x4 >>> 8 & 255, + o[18] = x4 >>> 16 & 255, o[19] = x4 >>> 24 & 255, o[20] = x5 >>> 0 & 255, o[21] = x5 >>> 8 & 255, + o[22] = x5 >>> 16 & 255, o[23] = x5 >>> 24 & 255, o[24] = x6 >>> 0 & 255, o[25] = x6 >>> 8 & 255, + o[26] = x6 >>> 16 & 255, o[27] = x6 >>> 24 & 255, o[28] = x7 >>> 0 & 255, o[29] = x7 >>> 8 & 255, + o[30] = x7 >>> 16 & 255, o[31] = x7 >>> 24 & 255, o[32] = x8 >>> 0 & 255, o[33] = x8 >>> 8 & 255, + o[34] = x8 >>> 16 & 255, o[35] = x8 >>> 24 & 255, o[36] = x9 >>> 0 & 255, o[37] = x9 >>> 8 & 255, + o[38] = x9 >>> 16 & 255, o[39] = x9 >>> 24 & 255, o[40] = x10 >>> 0 & 255, o[41] = x10 >>> 8 & 255, + o[42] = x10 >>> 16 & 255, o[43] = x10 >>> 24 & 255, o[44] = x11 >>> 0 & 255, o[45] = x11 >>> 8 & 255, + o[46] = x11 >>> 16 & 255, o[47] = x11 >>> 24 & 255, o[48] = x12 >>> 0 & 255, o[49] = x12 >>> 8 & 255, + o[50] = x12 >>> 16 & 255, o[51] = x12 >>> 24 & 255, o[52] = x13 >>> 0 & 255, o[53] = x13 >>> 8 & 255, + o[54] = x13 >>> 16 & 255, o[55] = x13 >>> 24 & 255, o[56] = x14 >>> 0 & 255, o[57] = x14 >>> 8 & 255, + o[58] = x14 >>> 16 & 255, o[59] = x14 >>> 24 & 255, o[60] = x15 >>> 0 & 255, o[61] = x15 >>> 8 & 255, + o[62] = x15 >>> 16 & 255, o[63] = x15 >>> 24 & 255; + })(out, inp, k, c); + } + function crypto_core_hsalsa20(out, inp, k, c) { + !(function(o, p, k, c) { + for (var u, x0 = 255 & c[0] | (255 & c[1]) << 8 | (255 & c[2]) << 16 | (255 & c[3]) << 24, x1 = 255 & k[0] | (255 & k[1]) << 8 | (255 & k[2]) << 16 | (255 & k[3]) << 24, x2 = 255 & k[4] | (255 & k[5]) << 8 | (255 & k[6]) << 16 | (255 & k[7]) << 24, x3 = 255 & k[8] | (255 & k[9]) << 8 | (255 & k[10]) << 16 | (255 & k[11]) << 24, x4 = 255 & k[12] | (255 & k[13]) << 8 | (255 & k[14]) << 16 | (255 & k[15]) << 24, x5 = 255 & c[4] | (255 & c[5]) << 8 | (255 & c[6]) << 16 | (255 & c[7]) << 24, x6 = 255 & p[0] | (255 & p[1]) << 8 | (255 & p[2]) << 16 | (255 & p[3]) << 24, x7 = 255 & p[4] | (255 & p[5]) << 8 | (255 & p[6]) << 16 | (255 & p[7]) << 24, x8 = 255 & p[8] | (255 & p[9]) << 8 | (255 & p[10]) << 16 | (255 & p[11]) << 24, x9 = 255 & p[12] | (255 & p[13]) << 8 | (255 & p[14]) << 16 | (255 & p[15]) << 24, x10 = 255 & c[8] | (255 & c[9]) << 8 | (255 & c[10]) << 16 | (255 & c[11]) << 24, x11 = 255 & k[16] | (255 & k[17]) << 8 | (255 & k[18]) << 16 | (255 & k[19]) << 24, x12 = 255 & k[20] | (255 & k[21]) << 8 | (255 & k[22]) << 16 | (255 & k[23]) << 24, x13 = 255 & k[24] | (255 & k[25]) << 8 | (255 & k[26]) << 16 | (255 & k[27]) << 24, x14 = 255 & k[28] | (255 & k[29]) << 8 | (255 & k[30]) << 16 | (255 & k[31]) << 24, x15 = 255 & c[12] | (255 & c[13]) << 8 | (255 & c[14]) << 16 | (255 & c[15]) << 24, i = 0; i < 20; i += 2) x0 ^= (u = (x12 ^= (u = (x8 ^= (u = (x4 ^= (u = x0 + x12 | 0) << 7 | u >>> 25) + x0 | 0) << 9 | u >>> 23) + x4 | 0) << 13 | u >>> 19) + x8 | 0) << 18 | u >>> 14, + x5 ^= (u = (x1 ^= (u = (x13 ^= (u = (x9 ^= (u = x5 + x1 | 0) << 7 | u >>> 25) + x5 | 0) << 9 | u >>> 23) + x9 | 0) << 13 | u >>> 19) + x13 | 0) << 18 | u >>> 14, + x10 ^= (u = (x6 ^= (u = (x2 ^= (u = (x14 ^= (u = x10 + x6 | 0) << 7 | u >>> 25) + x10 | 0) << 9 | u >>> 23) + x14 | 0) << 13 | u >>> 19) + x2 | 0) << 18 | u >>> 14, + x15 ^= (u = (x11 ^= (u = (x7 ^= (u = (x3 ^= (u = x15 + x11 | 0) << 7 | u >>> 25) + x15 | 0) << 9 | u >>> 23) + x3 | 0) << 13 | u >>> 19) + x7 | 0) << 18 | u >>> 14, + x0 ^= (u = (x3 ^= (u = (x2 ^= (u = (x1 ^= (u = x0 + x3 | 0) << 7 | u >>> 25) + x0 | 0) << 9 | u >>> 23) + x1 | 0) << 13 | u >>> 19) + x2 | 0) << 18 | u >>> 14, + x5 ^= (u = (x4 ^= (u = (x7 ^= (u = (x6 ^= (u = x5 + x4 | 0) << 7 | u >>> 25) + x5 | 0) << 9 | u >>> 23) + x6 | 0) << 13 | u >>> 19) + x7 | 0) << 18 | u >>> 14, + x10 ^= (u = (x9 ^= (u = (x8 ^= (u = (x11 ^= (u = x10 + x9 | 0) << 7 | u >>> 25) + x10 | 0) << 9 | u >>> 23) + x11 | 0) << 13 | u >>> 19) + x8 | 0) << 18 | u >>> 14, + x15 ^= (u = (x14 ^= (u = (x13 ^= (u = (x12 ^= (u = x15 + x14 | 0) << 7 | u >>> 25) + x15 | 0) << 9 | u >>> 23) + x12 | 0) << 13 | u >>> 19) + x13 | 0) << 18 | u >>> 14; + o[0] = x0 >>> 0 & 255, o[1] = x0 >>> 8 & 255, o[2] = x0 >>> 16 & 255, o[3] = x0 >>> 24 & 255, + o[4] = x5 >>> 0 & 255, o[5] = x5 >>> 8 & 255, o[6] = x5 >>> 16 & 255, o[7] = x5 >>> 24 & 255, + o[8] = x10 >>> 0 & 255, o[9] = x10 >>> 8 & 255, o[10] = x10 >>> 16 & 255, o[11] = x10 >>> 24 & 255, + o[12] = x15 >>> 0 & 255, o[13] = x15 >>> 8 & 255, o[14] = x15 >>> 16 & 255, o[15] = x15 >>> 24 & 255, + o[16] = x6 >>> 0 & 255, o[17] = x6 >>> 8 & 255, o[18] = x6 >>> 16 & 255, o[19] = x6 >>> 24 & 255, + o[20] = x7 >>> 0 & 255, o[21] = x7 >>> 8 & 255, o[22] = x7 >>> 16 & 255, o[23] = x7 >>> 24 & 255, + o[24] = x8 >>> 0 & 255, o[25] = x8 >>> 8 & 255, o[26] = x8 >>> 16 & 255, o[27] = x8 >>> 24 & 255, + o[28] = x9 >>> 0 & 255, o[29] = x9 >>> 8 & 255, o[30] = x9 >>> 16 & 255, o[31] = x9 >>> 24 & 255; + })(out, inp, k, c); + } + var sigma = new Uint8Array([ 101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107 ]); + function crypto_stream_salsa20_xor(c, cpos, m, mpos, b, n, k) { + var u, i, z = new Uint8Array(16), x = new Uint8Array(64); + for (i = 0; i < 16; i++) z[i] = 0; + for (i = 0; i < 8; i++) z[i] = n[i]; + for (;b >= 64; ) { + for (crypto_core_salsa20(x, z, k, sigma), i = 0; i < 64; i++) c[cpos + i] = m[mpos + i] ^ x[i]; + for (u = 1, i = 8; i < 16; i++) u = u + (255 & z[i]) | 0, z[i] = 255 & u, u >>>= 8; + b -= 64, cpos += 64, mpos += 64; + } + if (b > 0) for (crypto_core_salsa20(x, z, k, sigma), i = 0; i < b; i++) c[cpos + i] = m[mpos + i] ^ x[i]; + return 0; + } + function crypto_stream_salsa20(c, cpos, b, n, k) { + var u, i, z = new Uint8Array(16), x = new Uint8Array(64); + for (i = 0; i < 16; i++) z[i] = 0; + for (i = 0; i < 8; i++) z[i] = n[i]; + for (;b >= 64; ) { + for (crypto_core_salsa20(x, z, k, sigma), i = 0; i < 64; i++) c[cpos + i] = x[i]; + for (u = 1, i = 8; i < 16; i++) u = u + (255 & z[i]) | 0, z[i] = 255 & u, u >>>= 8; + b -= 64, cpos += 64; + } + if (b > 0) for (crypto_core_salsa20(x, z, k, sigma), i = 0; i < b; i++) c[cpos + i] = x[i]; + return 0; + } + function crypto_stream(c, cpos, d, n, k) { + var s = new Uint8Array(32); + crypto_core_hsalsa20(s, n, k, sigma); + for (var sn = new Uint8Array(8), i = 0; i < 8; i++) sn[i] = n[i + 16]; + return crypto_stream_salsa20(c, cpos, d, sn, s); + } + function crypto_stream_xor(c, cpos, m, mpos, d, n, k) { + var s = new Uint8Array(32); + crypto_core_hsalsa20(s, n, k, sigma); + for (var sn = new Uint8Array(8), i = 0; i < 8; i++) sn[i] = n[i + 16]; + return crypto_stream_salsa20_xor(c, cpos, m, mpos, d, sn, s); + } + var poly1305 = function(key) { + var t0, t1, t2, t3, t4, t5, t6, t7; + this.buffer = new Uint8Array(16), this.r = new Uint16Array(10), this.h = new Uint16Array(10), + this.pad = new Uint16Array(8), this.leftover = 0, this.fin = 0, t0 = 255 & key[0] | (255 & key[1]) << 8, + this.r[0] = 8191 & t0, t1 = 255 & key[2] | (255 & key[3]) << 8, this.r[1] = 8191 & (t0 >>> 13 | t1 << 3), + t2 = 255 & key[4] | (255 & key[5]) << 8, this.r[2] = 7939 & (t1 >>> 10 | t2 << 6), + t3 = 255 & key[6] | (255 & key[7]) << 8, this.r[3] = 8191 & (t2 >>> 7 | t3 << 9), + t4 = 255 & key[8] | (255 & key[9]) << 8, this.r[4] = 255 & (t3 >>> 4 | t4 << 12), + this.r[5] = t4 >>> 1 & 8190, t5 = 255 & key[10] | (255 & key[11]) << 8, this.r[6] = 8191 & (t4 >>> 14 | t5 << 2), + t6 = 255 & key[12] | (255 & key[13]) << 8, this.r[7] = 8065 & (t5 >>> 11 | t6 << 5), + t7 = 255 & key[14] | (255 & key[15]) << 8, this.r[8] = 8191 & (t6 >>> 8 | t7 << 8), + this.r[9] = t7 >>> 5 & 127, this.pad[0] = 255 & key[16] | (255 & key[17]) << 8, + this.pad[1] = 255 & key[18] | (255 & key[19]) << 8, this.pad[2] = 255 & key[20] | (255 & key[21]) << 8, + this.pad[3] = 255 & key[22] | (255 & key[23]) << 8, this.pad[4] = 255 & key[24] | (255 & key[25]) << 8, + this.pad[5] = 255 & key[26] | (255 & key[27]) << 8, this.pad[6] = 255 & key[28] | (255 & key[29]) << 8, + this.pad[7] = 255 & key[30] | (255 & key[31]) << 8; + }; + function crypto_onetimeauth(out, outpos, m, mpos, n, k) { + var s = new poly1305(k); + return s.update(m, mpos, n), s.finish(out, outpos), 0; + } + function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) { + var x = new Uint8Array(16); + return crypto_onetimeauth(x, 0, m, mpos, n, k), crypto_verify_16(h, hpos, x, 0); + } + function crypto_secretbox(c, m, d, n, k) { + var i; + if (d < 32) return -1; + for (crypto_stream_xor(c, 0, m, 0, d, n, k), crypto_onetimeauth(c, 16, c, 32, d - 32, c), + i = 0; i < 16; i++) c[i] = 0; + return 0; + } + function crypto_secretbox_open(m, c, d, n, k) { + var i, x = new Uint8Array(32); + if (d < 32) return -1; + if (crypto_stream(x, 0, 32, n, k), 0 !== crypto_onetimeauth_verify(c, 16, c, 32, d - 32, x)) return -1; + for (crypto_stream_xor(m, 0, c, 0, d, n, k), i = 0; i < 32; i++) m[i] = 0; + return 0; + } + function set25519(r, a) { + var i; + for (i = 0; i < 16; i++) r[i] = 0 | a[i]; + } + function car25519(o) { + var i, v, c = 1; + for (i = 0; i < 16; i++) v = o[i] + c + 65535, c = Math.floor(v / 65536), o[i] = v - 65536 * c; + o[0] += c - 1 + 37 * (c - 1); + } + function sel25519(p, q, b) { + for (var t, c = ~(b - 1), i = 0; i < 16; i++) t = c & (p[i] ^ q[i]), p[i] ^= t, + q[i] ^= t; + } + function pack25519(o, n) { + var i, j, b, m = gf(), t = gf(); + for (i = 0; i < 16; i++) t[i] = n[i]; + for (car25519(t), car25519(t), car25519(t), j = 0; j < 2; j++) { + for (m[0] = t[0] - 65517, i = 1; i < 15; i++) m[i] = t[i] - 65535 - (m[i - 1] >> 16 & 1), + m[i - 1] &= 65535; + m[15] = t[15] - 32767 - (m[14] >> 16 & 1), b = m[15] >> 16 & 1, m[14] &= 65535, + sel25519(t, m, 1 - b); + } + for (i = 0; i < 16; i++) o[2 * i] = 255 & t[i], o[2 * i + 1] = t[i] >> 8; + } + function neq25519(a, b) { + var c = new Uint8Array(32), d = new Uint8Array(32); + return pack25519(c, a), pack25519(d, b), crypto_verify_32(c, 0, d, 0); + } + function par25519(a) { + var d = new Uint8Array(32); + return pack25519(d, a), 1 & d[0]; + } + function unpack25519(o, n) { + var i; + for (i = 0; i < 16; i++) o[i] = n[2 * i] + (n[2 * i + 1] << 8); + o[15] &= 32767; + } + function A(o, a, b) { + for (var i = 0; i < 16; i++) o[i] = a[i] + b[i]; + } + function Z(o, a, b) { + for (var i = 0; i < 16; i++) o[i] = a[i] - b[i]; + } + function M(o, a, b) { + var v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15]; + t0 += (v = a[0]) * b0, t1 += v * b1, t2 += v * b2, t3 += v * b3, t4 += v * b4, t5 += v * b5, + t6 += v * b6, t7 += v * b7, t8 += v * b8, t9 += v * b9, t10 += v * b10, t11 += v * b11, + t12 += v * b12, t13 += v * b13, t14 += v * b14, t15 += v * b15, t1 += (v = a[1]) * b0, + t2 += v * b1, t3 += v * b2, t4 += v * b3, t5 += v * b4, t6 += v * b5, t7 += v * b6, + t8 += v * b7, t9 += v * b8, t10 += v * b9, t11 += v * b10, t12 += v * b11, t13 += v * b12, + t14 += v * b13, t15 += v * b14, t16 += v * b15, t2 += (v = a[2]) * b0, t3 += v * b1, + t4 += v * b2, t5 += v * b3, t6 += v * b4, t7 += v * b5, t8 += v * b6, t9 += v * b7, + t10 += v * b8, t11 += v * b9, t12 += v * b10, t13 += v * b11, t14 += v * b12, t15 += v * b13, + t16 += v * b14, t17 += v * b15, t3 += (v = a[3]) * b0, t4 += v * b1, t5 += v * b2, + t6 += v * b3, t7 += v * b4, t8 += v * b5, t9 += v * b6, t10 += v * b7, t11 += v * b8, + t12 += v * b9, t13 += v * b10, t14 += v * b11, t15 += v * b12, t16 += v * b13, t17 += v * b14, + t18 += v * b15, t4 += (v = a[4]) * b0, t5 += v * b1, t6 += v * b2, t7 += v * b3, + t8 += v * b4, t9 += v * b5, t10 += v * b6, t11 += v * b7, t12 += v * b8, t13 += v * b9, + t14 += v * b10, t15 += v * b11, t16 += v * b12, t17 += v * b13, t18 += v * b14, + t19 += v * b15, t5 += (v = a[5]) * b0, t6 += v * b1, t7 += v * b2, t8 += v * b3, + t9 += v * b4, t10 += v * b5, t11 += v * b6, t12 += v * b7, t13 += v * b8, t14 += v * b9, + t15 += v * b10, t16 += v * b11, t17 += v * b12, t18 += v * b13, t19 += v * b14, + t20 += v * b15, t6 += (v = a[6]) * b0, t7 += v * b1, t8 += v * b2, t9 += v * b3, + t10 += v * b4, t11 += v * b5, t12 += v * b6, t13 += v * b7, t14 += v * b8, t15 += v * b9, + t16 += v * b10, t17 += v * b11, t18 += v * b12, t19 += v * b13, t20 += v * b14, + t21 += v * b15, t7 += (v = a[7]) * b0, t8 += v * b1, t9 += v * b2, t10 += v * b3, + t11 += v * b4, t12 += v * b5, t13 += v * b6, t14 += v * b7, t15 += v * b8, t16 += v * b9, + t17 += v * b10, t18 += v * b11, t19 += v * b12, t20 += v * b13, t21 += v * b14, + t22 += v * b15, t8 += (v = a[8]) * b0, t9 += v * b1, t10 += v * b2, t11 += v * b3, + t12 += v * b4, t13 += v * b5, t14 += v * b6, t15 += v * b7, t16 += v * b8, t17 += v * b9, + t18 += v * b10, t19 += v * b11, t20 += v * b12, t21 += v * b13, t22 += v * b14, + t23 += v * b15, t9 += (v = a[9]) * b0, t10 += v * b1, t11 += v * b2, t12 += v * b3, + t13 += v * b4, t14 += v * b5, t15 += v * b6, t16 += v * b7, t17 += v * b8, t18 += v * b9, + t19 += v * b10, t20 += v * b11, t21 += v * b12, t22 += v * b13, t23 += v * b14, + t24 += v * b15, t10 += (v = a[10]) * b0, t11 += v * b1, t12 += v * b2, t13 += v * b3, + t14 += v * b4, t15 += v * b5, t16 += v * b6, t17 += v * b7, t18 += v * b8, t19 += v * b9, + t20 += v * b10, t21 += v * b11, t22 += v * b12, t23 += v * b13, t24 += v * b14, + t25 += v * b15, t11 += (v = a[11]) * b0, t12 += v * b1, t13 += v * b2, t14 += v * b3, + t15 += v * b4, t16 += v * b5, t17 += v * b6, t18 += v * b7, t19 += v * b8, t20 += v * b9, + t21 += v * b10, t22 += v * b11, t23 += v * b12, t24 += v * b13, t25 += v * b14, + t26 += v * b15, t12 += (v = a[12]) * b0, t13 += v * b1, t14 += v * b2, t15 += v * b3, + t16 += v * b4, t17 += v * b5, t18 += v * b6, t19 += v * b7, t20 += v * b8, t21 += v * b9, + t22 += v * b10, t23 += v * b11, t24 += v * b12, t25 += v * b13, t26 += v * b14, + t27 += v * b15, t13 += (v = a[13]) * b0, t14 += v * b1, t15 += v * b2, t16 += v * b3, + t17 += v * b4, t18 += v * b5, t19 += v * b6, t20 += v * b7, t21 += v * b8, t22 += v * b9, + t23 += v * b10, t24 += v * b11, t25 += v * b12, t26 += v * b13, t27 += v * b14, + t28 += v * b15, t14 += (v = a[14]) * b0, t15 += v * b1, t16 += v * b2, t17 += v * b3, + t18 += v * b4, t19 += v * b5, t20 += v * b6, t21 += v * b7, t22 += v * b8, t23 += v * b9, + t24 += v * b10, t25 += v * b11, t26 += v * b12, t27 += v * b13, t28 += v * b14, + t29 += v * b15, t15 += (v = a[15]) * b0, t1 += 38 * (t17 += v * b2), t2 += 38 * (t18 += v * b3), + t3 += 38 * (t19 += v * b4), t4 += 38 * (t20 += v * b5), t5 += 38 * (t21 += v * b6), + t6 += 38 * (t22 += v * b7), t7 += 38 * (t23 += v * b8), t8 += 38 * (t24 += v * b9), + t9 += 38 * (t25 += v * b10), t10 += 38 * (t26 += v * b11), t11 += 38 * (t27 += v * b12), + t12 += 38 * (t28 += v * b13), t13 += 38 * (t29 += v * b14), t14 += 38 * (t30 += v * b15), + t0 = (v = (t0 += 38 * (t16 += v * b1)) + (c = 1) + 65535) - 65536 * (c = Math.floor(v / 65536)), + t1 = (v = t1 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t2 = (v = t2 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t3 = (v = t3 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t4 = (v = t4 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t5 = (v = t5 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t6 = (v = t6 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t7 = (v = t7 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t8 = (v = t8 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t9 = (v = t9 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t10 = (v = t10 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t11 = (v = t11 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t12 = (v = t12 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t13 = (v = t13 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t14 = (v = t14 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t15 = (v = t15 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t0 = (v = (t0 += c - 1 + 37 * (c - 1)) + (c = 1) + 65535) - 65536 * (c = Math.floor(v / 65536)), + t1 = (v = t1 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t2 = (v = t2 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t3 = (v = t3 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t4 = (v = t4 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t5 = (v = t5 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t6 = (v = t6 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t7 = (v = t7 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t8 = (v = t8 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t9 = (v = t9 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t10 = (v = t10 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t11 = (v = t11 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t12 = (v = t12 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t13 = (v = t13 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t14 = (v = t14 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), + t15 = (v = t15 + c + 65535) - 65536 * (c = Math.floor(v / 65536)), t0 += c - 1 + 37 * (c - 1), + o[0] = t0, o[1] = t1, o[2] = t2, o[3] = t3, o[4] = t4, o[5] = t5, o[6] = t6, o[7] = t7, + o[8] = t8, o[9] = t9, o[10] = t10, o[11] = t11, o[12] = t12, o[13] = t13, o[14] = t14, + o[15] = t15; + } + function S(o, a) { + M(o, a, a); + } + function inv25519(o, i) { + var a, c = gf(); + for (a = 0; a < 16; a++) c[a] = i[a]; + for (a = 253; a >= 0; a--) S(c, c), 2 !== a && 4 !== a && M(c, c, i); + for (a = 0; a < 16; a++) o[a] = c[a]; + } + function crypto_scalarmult(q, n, p) { + var r, i, z = new Uint8Array(32), x = new Float64Array(80), a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(); + for (i = 0; i < 31; i++) z[i] = n[i]; + for (z[31] = 127 & n[31] | 64, z[0] &= 248, unpack25519(x, p), i = 0; i < 16; i++) b[i] = x[i], + d[i] = a[i] = c[i] = 0; + for (a[0] = d[0] = 1, i = 254; i >= 0; --i) sel25519(a, b, r = z[i >>> 3] >>> (7 & i) & 1), + sel25519(c, d, r), A(e, a, c), Z(a, a, c), A(c, b, d), Z(b, b, d), S(d, e), S(f, a), + M(a, c, a), M(c, b, e), A(e, a, c), Z(a, a, c), S(b, a), Z(c, d, f), M(a, c, _121665), + A(a, a, d), M(c, c, a), M(a, d, f), M(d, b, x), S(b, e), sel25519(a, b, r), sel25519(c, d, r); + for (i = 0; i < 16; i++) x[i + 16] = a[i], x[i + 32] = c[i], x[i + 48] = b[i], x[i + 64] = d[i]; + var x32 = x.subarray(32), x16 = x.subarray(16); + return inv25519(x32, x32), M(x16, x16, x32), pack25519(q, x16), 0; + } + function crypto_scalarmult_base(q, n) { + return crypto_scalarmult(q, n, _9); + } + function crypto_box_keypair(y, x) { + return randombytes(x, 32), crypto_scalarmult_base(y, x); + } + function crypto_box_beforenm(k, y, x) { + var s = new Uint8Array(32); + return crypto_scalarmult(s, x, y), crypto_core_hsalsa20(k, _0, s, sigma); + } + poly1305.prototype.blocks = function(m, mpos, bytes) { + for (var t0, t1, t2, t3, t4, t5, t6, t7, c, d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, hibit = this.fin ? 0 : 2048, h0 = this.h[0], h1 = this.h[1], h2 = this.h[2], h3 = this.h[3], h4 = this.h[4], h5 = this.h[5], h6 = this.h[6], h7 = this.h[7], h8 = this.h[8], h9 = this.h[9], r0 = this.r[0], r1 = this.r[1], r2 = this.r[2], r3 = this.r[3], r4 = this.r[4], r5 = this.r[5], r6 = this.r[6], r7 = this.r[7], r8 = this.r[8], r9 = this.r[9]; bytes >= 16; ) d0 = c = 0, + d0 += (h0 += 8191 & (t0 = 255 & m[mpos + 0] | (255 & m[mpos + 1]) << 8)) * r0, d0 += (h1 += 8191 & (t0 >>> 13 | (t1 = 255 & m[mpos + 2] | (255 & m[mpos + 3]) << 8) << 3)) * (5 * r9), + d0 += (h2 += 8191 & (t1 >>> 10 | (t2 = 255 & m[mpos + 4] | (255 & m[mpos + 5]) << 8) << 6)) * (5 * r8), + d0 += (h3 += 8191 & (t2 >>> 7 | (t3 = 255 & m[mpos + 6] | (255 & m[mpos + 7]) << 8) << 9)) * (5 * r7), + c = (d0 += (h4 += 8191 & (t3 >>> 4 | (t4 = 255 & m[mpos + 8] | (255 & m[mpos + 9]) << 8) << 12)) * (5 * r6)) >>> 13, + d0 &= 8191, d0 += (h5 += t4 >>> 1 & 8191) * (5 * r5), d0 += (h6 += 8191 & (t4 >>> 14 | (t5 = 255 & m[mpos + 10] | (255 & m[mpos + 11]) << 8) << 2)) * (5 * r4), + d0 += (h7 += 8191 & (t5 >>> 11 | (t6 = 255 & m[mpos + 12] | (255 & m[mpos + 13]) << 8) << 5)) * (5 * r3), + d0 += (h8 += 8191 & (t6 >>> 8 | (t7 = 255 & m[mpos + 14] | (255 & m[mpos + 15]) << 8) << 8)) * (5 * r2), + d1 = c += (d0 += (h9 += t7 >>> 5 | hibit) * (5 * r1)) >>> 13, d1 += h0 * r1, d1 += h1 * r0, + d1 += h2 * (5 * r9), d1 += h3 * (5 * r8), c = (d1 += h4 * (5 * r7)) >>> 13, d1 &= 8191, + d1 += h5 * (5 * r6), d1 += h6 * (5 * r5), d1 += h7 * (5 * r4), d1 += h8 * (5 * r3), + c += (d1 += h9 * (5 * r2)) >>> 13, d1 &= 8191, d2 = c, d2 += h0 * r2, d2 += h1 * r1, + d2 += h2 * r0, d2 += h3 * (5 * r9), c = (d2 += h4 * (5 * r8)) >>> 13, d2 &= 8191, + d2 += h5 * (5 * r7), d2 += h6 * (5 * r6), d2 += h7 * (5 * r5), d2 += h8 * (5 * r4), + d3 = c += (d2 += h9 * (5 * r3)) >>> 13, d3 += h0 * r3, d3 += h1 * r2, d3 += h2 * r1, + d3 += h3 * r0, c = (d3 += h4 * (5 * r9)) >>> 13, d3 &= 8191, d3 += h5 * (5 * r8), + d3 += h6 * (5 * r7), d3 += h7 * (5 * r6), d3 += h8 * (5 * r5), d4 = c += (d3 += h9 * (5 * r4)) >>> 13, + d4 += h0 * r4, d4 += h1 * r3, d4 += h2 * r2, d4 += h3 * r1, c = (d4 += h4 * r0) >>> 13, + d4 &= 8191, d4 += h5 * (5 * r9), d4 += h6 * (5 * r8), d4 += h7 * (5 * r7), d4 += h8 * (5 * r6), + d5 = c += (d4 += h9 * (5 * r5)) >>> 13, d5 += h0 * r5, d5 += h1 * r4, d5 += h2 * r3, + d5 += h3 * r2, c = (d5 += h4 * r1) >>> 13, d5 &= 8191, d5 += h5 * r0, d5 += h6 * (5 * r9), + d5 += h7 * (5 * r8), d5 += h8 * (5 * r7), d6 = c += (d5 += h9 * (5 * r6)) >>> 13, + d6 += h0 * r6, d6 += h1 * r5, d6 += h2 * r4, d6 += h3 * r3, c = (d6 += h4 * r2) >>> 13, + d6 &= 8191, d6 += h5 * r1, d6 += h6 * r0, d6 += h7 * (5 * r9), d6 += h8 * (5 * r8), + d7 = c += (d6 += h9 * (5 * r7)) >>> 13, d7 += h0 * r7, d7 += h1 * r6, d7 += h2 * r5, + d7 += h3 * r4, c = (d7 += h4 * r3) >>> 13, d7 &= 8191, d7 += h5 * r2, d7 += h6 * r1, + d7 += h7 * r0, d7 += h8 * (5 * r9), d8 = c += (d7 += h9 * (5 * r8)) >>> 13, d8 += h0 * r8, + d8 += h1 * r7, d8 += h2 * r6, d8 += h3 * r5, c = (d8 += h4 * r4) >>> 13, d8 &= 8191, + d8 += h5 * r3, d8 += h6 * r2, d8 += h7 * r1, d8 += h8 * r0, d9 = c += (d8 += h9 * (5 * r9)) >>> 13, + d9 += h0 * r9, d9 += h1 * r8, d9 += h2 * r7, d9 += h3 * r6, c = (d9 += h4 * r5) >>> 13, + d9 &= 8191, d9 += h5 * r4, d9 += h6 * r3, d9 += h7 * r2, d9 += h8 * r1, h0 = d0 = 8191 & (c = (c = ((c += (d9 += h9 * r0) >>> 13) << 2) + c | 0) + (d0 &= 8191) | 0), + h1 = d1 += c >>>= 13, h2 = d2 &= 8191, h3 = d3 &= 8191, h4 = d4 &= 8191, h5 = d5 &= 8191, + h6 = d6 &= 8191, h7 = d7 &= 8191, h8 = d8 &= 8191, h9 = d9 &= 8191, mpos += 16, + bytes -= 16; + this.h[0] = h0, this.h[1] = h1, this.h[2] = h2, this.h[3] = h3, this.h[4] = h4, + this.h[5] = h5, this.h[6] = h6, this.h[7] = h7, this.h[8] = h8, this.h[9] = h9; + }, poly1305.prototype.finish = function(mac, macpos) { + var c, mask, f, i, g = new Uint16Array(10); + if (this.leftover) { + for (i = this.leftover, this.buffer[i++] = 1; i < 16; i++) this.buffer[i] = 0; + this.fin = 1, this.blocks(this.buffer, 0, 16); + } + for (c = this.h[1] >>> 13, this.h[1] &= 8191, i = 2; i < 10; i++) this.h[i] += c, + c = this.h[i] >>> 13, this.h[i] &= 8191; + for (this.h[0] += 5 * c, c = this.h[0] >>> 13, this.h[0] &= 8191, this.h[1] += c, + c = this.h[1] >>> 13, this.h[1] &= 8191, this.h[2] += c, g[0] = this.h[0] + 5, c = g[0] >>> 13, + g[0] &= 8191, i = 1; i < 10; i++) g[i] = this.h[i] + c, c = g[i] >>> 13, g[i] &= 8191; + for (g[9] -= 8192, mask = (1 ^ c) - 1, i = 0; i < 10; i++) g[i] &= mask; + for (mask = ~mask, i = 0; i < 10; i++) this.h[i] = this.h[i] & mask | g[i]; + for (this.h[0] = 65535 & (this.h[0] | this.h[1] << 13), this.h[1] = 65535 & (this.h[1] >>> 3 | this.h[2] << 10), + this.h[2] = 65535 & (this.h[2] >>> 6 | this.h[3] << 7), this.h[3] = 65535 & (this.h[3] >>> 9 | this.h[4] << 4), + this.h[4] = 65535 & (this.h[4] >>> 12 | this.h[5] << 1 | this.h[6] << 14), this.h[5] = 65535 & (this.h[6] >>> 2 | this.h[7] << 11), + this.h[6] = 65535 & (this.h[7] >>> 5 | this.h[8] << 8), this.h[7] = 65535 & (this.h[8] >>> 8 | this.h[9] << 5), + f = this.h[0] + this.pad[0], this.h[0] = 65535 & f, i = 1; i < 8; i++) f = (this.h[i] + this.pad[i] | 0) + (f >>> 16) | 0, + this.h[i] = 65535 & f; + mac[macpos + 0] = this.h[0] >>> 0 & 255, mac[macpos + 1] = this.h[0] >>> 8 & 255, + mac[macpos + 2] = this.h[1] >>> 0 & 255, mac[macpos + 3] = this.h[1] >>> 8 & 255, + mac[macpos + 4] = this.h[2] >>> 0 & 255, mac[macpos + 5] = this.h[2] >>> 8 & 255, + mac[macpos + 6] = this.h[3] >>> 0 & 255, mac[macpos + 7] = this.h[3] >>> 8 & 255, + mac[macpos + 8] = this.h[4] >>> 0 & 255, mac[macpos + 9] = this.h[4] >>> 8 & 255, + mac[macpos + 10] = this.h[5] >>> 0 & 255, mac[macpos + 11] = this.h[5] >>> 8 & 255, + mac[macpos + 12] = this.h[6] >>> 0 & 255, mac[macpos + 13] = this.h[6] >>> 8 & 255, + mac[macpos + 14] = this.h[7] >>> 0 & 255, mac[macpos + 15] = this.h[7] >>> 8 & 255; + }, poly1305.prototype.update = function(m, mpos, bytes) { + var i, want; + if (this.leftover) { + for ((want = 16 - this.leftover) > bytes && (want = bytes), i = 0; i < want; i++) this.buffer[this.leftover + i] = m[mpos + i]; + if (bytes -= want, mpos += want, this.leftover += want, this.leftover < 16) return; + this.blocks(this.buffer, 0, 16), this.leftover = 0; + } + if (bytes >= 16 && (want = bytes - bytes % 16, this.blocks(m, mpos, want), mpos += want, + bytes -= want), bytes) { + for (i = 0; i < bytes; i++) this.buffer[this.leftover + i] = m[mpos + i]; + this.leftover += bytes; + } + }; + var crypto_box_afternm = crypto_secretbox, crypto_box_open_afternm = crypto_secretbox_open, K = [ 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591 ]; + function crypto_hashblocks_hl(hh, hl, m, n) { + for (var bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, th, tl, i, j, h, l, a, b, c, d, wh = new Int32Array(16), wl = new Int32Array(16), ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7], pos = 0; n >= 128; ) { + for (i = 0; i < 16; i++) j = 8 * i + pos, wh[i] = m[j + 0] << 24 | m[j + 1] << 16 | m[j + 2] << 8 | m[j + 3], + wl[i] = m[j + 4] << 24 | m[j + 5] << 16 | m[j + 6] << 8 | m[j + 7]; + for (i = 0; i < 80; i++) if (bh0 = ah0, bh1 = ah1, bh2 = ah2, bh3 = ah3, bh4 = ah4, + bh5 = ah5, bh6 = ah6, bl0 = al0, bl1 = al1, bl2 = al2, bl3 = al3, bl4 = al4, bl5 = al5, + bl6 = al6, a = 65535 & (l = al7), b = l >>> 16, c = 65535 & (h = ah7), d = h >>> 16, + a += 65535 & (l = (al4 >>> 14 | ah4 << 18) ^ (al4 >>> 18 | ah4 << 14) ^ (ah4 >>> 9 | al4 << 23)), + b += l >>> 16, c += 65535 & (h = (ah4 >>> 14 | al4 << 18) ^ (ah4 >>> 18 | al4 << 14) ^ (al4 >>> 9 | ah4 << 23)), + d += h >>> 16, a += 65535 & (l = al4 & al5 ^ ~al4 & al6), b += l >>> 16, c += 65535 & (h = ah4 & ah5 ^ ~ah4 & ah6), + d += h >>> 16, a += 65535 & (l = K[2 * i + 1]), b += l >>> 16, c += 65535 & (h = K[2 * i]), + d += h >>> 16, h = wh[i % 16], b += (l = wl[i % 16]) >>> 16, c += 65535 & h, d += h >>> 16, + c += (b += (a += 65535 & l) >>> 16) >>> 16, a = 65535 & (l = tl = 65535 & a | b << 16), + b = l >>> 16, c = 65535 & (h = th = 65535 & c | (d += c >>> 16) << 16), d = h >>> 16, + a += 65535 & (l = (al0 >>> 28 | ah0 << 4) ^ (ah0 >>> 2 | al0 << 30) ^ (ah0 >>> 7 | al0 << 25)), + b += l >>> 16, c += 65535 & (h = (ah0 >>> 28 | al0 << 4) ^ (al0 >>> 2 | ah0 << 30) ^ (al0 >>> 7 | ah0 << 25)), + d += h >>> 16, b += (l = al0 & al1 ^ al0 & al2 ^ al1 & al2) >>> 16, c += 65535 & (h = ah0 & ah1 ^ ah0 & ah2 ^ ah1 & ah2), + d += h >>> 16, bh7 = 65535 & (c += (b += (a += 65535 & l) >>> 16) >>> 16) | (d += c >>> 16) << 16, + bl7 = 65535 & a | b << 16, a = 65535 & (l = bl3), b = l >>> 16, c = 65535 & (h = bh3), + d = h >>> 16, b += (l = tl) >>> 16, c += 65535 & (h = th), d += h >>> 16, ah1 = bh0, + ah2 = bh1, ah3 = bh2, ah4 = bh3 = 65535 & (c += (b += (a += 65535 & l) >>> 16) >>> 16) | (d += c >>> 16) << 16, + ah5 = bh4, ah6 = bh5, ah7 = bh6, ah0 = bh7, al1 = bl0, al2 = bl1, al3 = bl2, al4 = bl3 = 65535 & a | b << 16, + al5 = bl4, al6 = bl5, al7 = bl6, al0 = bl7, i % 16 == 15) for (j = 0; j < 16; j++) h = wh[j], + a = 65535 & (l = wl[j]), b = l >>> 16, c = 65535 & h, d = h >>> 16, h = wh[(j + 9) % 16], + a += 65535 & (l = wl[(j + 9) % 16]), b += l >>> 16, c += 65535 & h, d += h >>> 16, + th = wh[(j + 1) % 16], a += 65535 & (l = ((tl = wl[(j + 1) % 16]) >>> 1 | th << 31) ^ (tl >>> 8 | th << 24) ^ (tl >>> 7 | th << 25)), + b += l >>> 16, c += 65535 & (h = (th >>> 1 | tl << 31) ^ (th >>> 8 | tl << 24) ^ th >>> 7), + d += h >>> 16, th = wh[(j + 14) % 16], b += (l = ((tl = wl[(j + 14) % 16]) >>> 19 | th << 13) ^ (th >>> 29 | tl << 3) ^ (tl >>> 6 | th << 26)) >>> 16, + c += 65535 & (h = (th >>> 19 | tl << 13) ^ (tl >>> 29 | th << 3) ^ th >>> 6), d += h >>> 16, + d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, wh[j] = 65535 & c | d << 16, + wl[j] = 65535 & a | b << 16; + a = 65535 & (l = al0), b = l >>> 16, c = 65535 & (h = ah0), d = h >>> 16, h = hh[0], + b += (l = hl[0]) >>> 16, c += 65535 & h, d += h >>> 16, d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, + hh[0] = ah0 = 65535 & c | d << 16, hl[0] = al0 = 65535 & a | b << 16, a = 65535 & (l = al1), + b = l >>> 16, c = 65535 & (h = ah1), d = h >>> 16, h = hh[1], b += (l = hl[1]) >>> 16, + c += 65535 & h, d += h >>> 16, d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, + hh[1] = ah1 = 65535 & c | d << 16, hl[1] = al1 = 65535 & a | b << 16, a = 65535 & (l = al2), + b = l >>> 16, c = 65535 & (h = ah2), d = h >>> 16, h = hh[2], b += (l = hl[2]) >>> 16, + c += 65535 & h, d += h >>> 16, d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, + hh[2] = ah2 = 65535 & c | d << 16, hl[2] = al2 = 65535 & a | b << 16, a = 65535 & (l = al3), + b = l >>> 16, c = 65535 & (h = ah3), d = h >>> 16, h = hh[3], b += (l = hl[3]) >>> 16, + c += 65535 & h, d += h >>> 16, d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, + hh[3] = ah3 = 65535 & c | d << 16, hl[3] = al3 = 65535 & a | b << 16, a = 65535 & (l = al4), + b = l >>> 16, c = 65535 & (h = ah4), d = h >>> 16, h = hh[4], b += (l = hl[4]) >>> 16, + c += 65535 & h, d += h >>> 16, d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, + hh[4] = ah4 = 65535 & c | d << 16, hl[4] = al4 = 65535 & a | b << 16, a = 65535 & (l = al5), + b = l >>> 16, c = 65535 & (h = ah5), d = h >>> 16, h = hh[5], b += (l = hl[5]) >>> 16, + c += 65535 & h, d += h >>> 16, d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, + hh[5] = ah5 = 65535 & c | d << 16, hl[5] = al5 = 65535 & a | b << 16, a = 65535 & (l = al6), + b = l >>> 16, c = 65535 & (h = ah6), d = h >>> 16, h = hh[6], b += (l = hl[6]) >>> 16, + c += 65535 & h, d += h >>> 16, d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, + hh[6] = ah6 = 65535 & c | d << 16, hl[6] = al6 = 65535 & a | b << 16, a = 65535 & (l = al7), + b = l >>> 16, c = 65535 & (h = ah7), d = h >>> 16, h = hh[7], b += (l = hl[7]) >>> 16, + c += 65535 & h, d += h >>> 16, d += (c += (b += (a += 65535 & l) >>> 16) >>> 16) >>> 16, + hh[7] = ah7 = 65535 & c | d << 16, hl[7] = al7 = 65535 & a | b << 16, pos += 128, + n -= 128; + } + return n; + } + function crypto_hash(out, m, n) { + var i, hh = new Int32Array(8), hl = new Int32Array(8), x = new Uint8Array(256), b = n; + for (hh[0] = 1779033703, hh[1] = 3144134277, hh[2] = 1013904242, hh[3] = 2773480762, + hh[4] = 1359893119, hh[5] = 2600822924, hh[6] = 528734635, hh[7] = 1541459225, hl[0] = 4089235720, + hl[1] = 2227873595, hl[2] = 4271175723, hl[3] = 1595750129, hl[4] = 2917565137, + hl[5] = 725511199, hl[6] = 4215389547, hl[7] = 327033209, crypto_hashblocks_hl(hh, hl, m, n), + n %= 128, i = 0; i < n; i++) x[i] = m[b - n + i]; + for (x[n] = 128, x[(n = 256 - 128 * (n < 112 ? 1 : 0)) - 9] = 0, ts64(x, n - 8, b / 536870912 | 0, b << 3), + crypto_hashblocks_hl(hh, hl, x, n), i = 0; i < 8; i++) ts64(out, 8 * i, hh[i], hl[i]); + return 0; + } + function add(p, q) { + var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf(); + Z(a, p[1], p[0]), Z(t, q[1], q[0]), M(a, a, t), A(b, p[0], p[1]), A(t, q[0], q[1]), + M(b, b, t), M(c, p[3], q[3]), M(c, c, D2), M(d, p[2], q[2]), A(d, d, d), Z(e, b, a), + Z(f, d, c), A(g, d, c), A(h, b, a), M(p[0], e, f), M(p[1], h, g), M(p[2], g, f), + M(p[3], e, h); + } + function cswap(p, q, b) { + var i; + for (i = 0; i < 4; i++) sel25519(p[i], q[i], b); + } + function pack(r, p) { + var tx = gf(), ty = gf(), zi = gf(); + inv25519(zi, p[2]), M(tx, p[0], zi), M(ty, p[1], zi), pack25519(r, ty), r[31] ^= par25519(tx) << 7; + } + function scalarmult(p, q, s) { + var b, i; + for (set25519(p[0], gf0), set25519(p[1], gf1), set25519(p[2], gf1), set25519(p[3], gf0), + i = 255; i >= 0; --i) cswap(p, q, b = s[i / 8 | 0] >> (7 & i) & 1), add(q, p), add(p, p), + cswap(p, q, b); + } + function scalarbase(p, s) { + var q = [ gf(), gf(), gf(), gf() ]; + set25519(q[0], X), set25519(q[1], Y), set25519(q[2], gf1), M(q[3], X, Y), scalarmult(p, q, s); + } + function crypto_sign_keypair(pk, sk, seeded) { + var i, d = new Uint8Array(64), p = [ gf(), gf(), gf(), gf() ]; + for (seeded || randombytes(sk, 32), crypto_hash(d, sk, 32), d[0] &= 248, d[31] &= 127, + d[31] |= 64, scalarbase(p, d), pack(pk, p), i = 0; i < 32; i++) sk[i + 32] = pk[i]; + return 0; + } + var crypto, L = new Float64Array([ 237, 211, 245, 92, 26, 99, 18, 88, 214, 156, 247, 162, 222, 249, 222, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 ]); + function modL(r, x) { + var carry, i, j, k; + for (i = 63; i >= 32; --i) { + for (carry = 0, j = i - 32, k = i - 12; j < k; ++j) x[j] += carry - 16 * x[i] * L[j - (i - 32)], + carry = x[j] + 128 >> 8, x[j] -= 256 * carry; + x[j] += carry, x[i] = 0; + } + for (carry = 0, j = 0; j < 32; j++) x[j] += carry - (x[31] >> 4) * L[j], carry = x[j] >> 8, + x[j] &= 255; + for (j = 0; j < 32; j++) x[j] -= carry * L[j]; + for (i = 0; i < 32; i++) x[i + 1] += x[i] >> 8, r[i] = 255 & x[i]; + } + function reduce(r) { + var i, x = new Float64Array(64); + for (i = 0; i < 64; i++) x[i] = r[i]; + for (i = 0; i < 64; i++) r[i] = 0; + modL(r, x); + } + function crypto_sign(sm, m, n, sk) { + var i, j, d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64), x = new Float64Array(64), p = [ gf(), gf(), gf(), gf() ]; + crypto_hash(d, sk, 32), d[0] &= 248, d[31] &= 127, d[31] |= 64; + var smlen = n + 64; + for (i = 0; i < n; i++) sm[64 + i] = m[i]; + for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i]; + for (crypto_hash(r, sm.subarray(32), n + 32), reduce(r), scalarbase(p, r), pack(sm, p), + i = 32; i < 64; i++) sm[i] = sk[i]; + for (crypto_hash(h, sm, n + 64), reduce(h), i = 0; i < 64; i++) x[i] = 0; + for (i = 0; i < 32; i++) x[i] = r[i]; + for (i = 0; i < 32; i++) for (j = 0; j < 32; j++) x[i + j] += h[i] * d[j]; + return modL(sm.subarray(32), x), smlen; + } + function crypto_sign_open(m, sm, n, pk) { + var i, t = new Uint8Array(32), h = new Uint8Array(64), p = [ gf(), gf(), gf(), gf() ], q = [ gf(), gf(), gf(), gf() ]; + if (n < 64) return -1; + if ((function(r, p) { + var t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf(); + return set25519(r[2], gf1), unpack25519(r[1], p), S(num, r[1]), M(den, num, D), + Z(num, num, r[2]), A(den, r[2], den), S(den2, den), S(den4, den2), M(den6, den4, den2), + M(t, den6, num), M(t, t, den), (function(o, i) { + var a, c = gf(); + for (a = 0; a < 16; a++) c[a] = i[a]; + for (a = 250; a >= 0; a--) S(c, c), 1 !== a && M(c, c, i); + for (a = 0; a < 16; a++) o[a] = c[a]; + })(t, t), M(t, t, num), M(t, t, den), M(t, t, den), M(r[0], t, den), S(chk, r[0]), + M(chk, chk, den), neq25519(chk, num) && M(r[0], r[0], I), S(chk, r[0]), M(chk, chk, den), + neq25519(chk, num) ? -1 : (par25519(r[0]) === p[31] >> 7 && Z(r[0], gf0, r[0]), + M(r[3], r[0], r[1]), 0); + })(q, pk)) return -1; + for (i = 0; i < n; i++) m[i] = sm[i]; + for (i = 0; i < 32; i++) m[i + 32] = pk[i]; + if (crypto_hash(h, m, n), reduce(h), scalarmult(p, q, h), scalarbase(q, sm.subarray(32)), + add(p, q), pack(t, p), n -= 64, crypto_verify_32(sm, 0, t, 0)) { + for (i = 0; i < n; i++) m[i] = 0; + return -1; + } + for (i = 0; i < n; i++) m[i] = sm[i + 64]; + return n; + } + function checkLengths(k, n) { + if (32 !== k.length) throw new Error("bad key size"); + if (24 !== n.length) throw new Error("bad nonce size"); + } + function checkArrayTypes() { + var t, i; + for (i = 0; i < arguments.length; i++) if ("[object Uint8Array]" !== (t = Object.prototype.toString.call(arguments[i]))) throw new TypeError("unexpected type " + t + ", use Uint8Array"); + } + function cleanup(arr) { + for (var i = 0; i < arr.length; i++) arr[i] = 0; + } + nacl.lowlevel = { + crypto_core_hsalsa20: crypto_core_hsalsa20, + crypto_stream_xor: crypto_stream_xor, + crypto_stream: crypto_stream, + crypto_stream_salsa20_xor: crypto_stream_salsa20_xor, + crypto_stream_salsa20: crypto_stream_salsa20, + crypto_onetimeauth: crypto_onetimeauth, + crypto_onetimeauth_verify: crypto_onetimeauth_verify, + crypto_verify_16: crypto_verify_16, + crypto_verify_32: crypto_verify_32, + crypto_secretbox: crypto_secretbox, + crypto_secretbox_open: crypto_secretbox_open, + crypto_scalarmult: crypto_scalarmult, + crypto_scalarmult_base: crypto_scalarmult_base, + crypto_box_beforenm: crypto_box_beforenm, + crypto_box_afternm: crypto_box_afternm, + crypto_box: function(c, m, d, n, y, x) { + var k = new Uint8Array(32); + return crypto_box_beforenm(k, y, x), crypto_box_afternm(c, m, d, n, k); + }, + crypto_box_open: function(m, c, d, n, y, x) { + var k = new Uint8Array(32); + return crypto_box_beforenm(k, y, x), crypto_box_open_afternm(m, c, d, n, k); + }, + crypto_box_keypair: crypto_box_keypair, + crypto_hash: crypto_hash, + crypto_sign: crypto_sign, + crypto_sign_keypair: crypto_sign_keypair, + crypto_sign_open: crypto_sign_open, + crypto_secretbox_KEYBYTES: 32, + crypto_secretbox_NONCEBYTES: 24, + crypto_secretbox_ZEROBYTES: 32, + crypto_secretbox_BOXZEROBYTES: 16, + crypto_scalarmult_BYTES: 32, + crypto_scalarmult_SCALARBYTES: 32, + crypto_box_PUBLICKEYBYTES: 32, + crypto_box_SECRETKEYBYTES: 32, + crypto_box_BEFORENMBYTES: 32, + crypto_box_NONCEBYTES: 24, + crypto_box_ZEROBYTES: 32, + crypto_box_BOXZEROBYTES: 16, + crypto_sign_BYTES: 64, + crypto_sign_PUBLICKEYBYTES: 32, + crypto_sign_SECRETKEYBYTES: 64, + crypto_sign_SEEDBYTES: 32, + crypto_hash_BYTES: 64 + }, nacl.util || (nacl.util = {}, nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() { + throw new Error("nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js"); + }), nacl.randomBytes = function(n) { + var b = new Uint8Array(n); + return randombytes(b, n), b; + }, nacl.secretbox = function(msg, nonce, key) { + checkArrayTypes(msg, nonce, key), checkLengths(key, nonce); + for (var m = new Uint8Array(32 + msg.length), c = new Uint8Array(m.length), i = 0; i < msg.length; i++) m[i + 32] = msg[i]; + return crypto_secretbox(c, m, m.length, nonce, key), c.subarray(16); + }, nacl.secretbox.open = function(box, nonce, key) { + checkArrayTypes(box, nonce, key), checkLengths(key, nonce); + for (var c = new Uint8Array(16 + box.length), m = new Uint8Array(c.length), i = 0; i < box.length; i++) c[i + 16] = box[i]; + return !(c.length < 32) && 0 === crypto_secretbox_open(m, c, c.length, nonce, key) && m.subarray(32); + }, nacl.secretbox.keyLength = 32, nacl.secretbox.nonceLength = 24, nacl.secretbox.overheadLength = 16, + nacl.scalarMult = function(n, p) { + if (checkArrayTypes(n, p), 32 !== n.length) throw new Error("bad n size"); + if (32 !== p.length) throw new Error("bad p size"); + var q = new Uint8Array(32); + return crypto_scalarmult(q, n, p), q; + }, nacl.scalarMult.base = function(n) { + if (checkArrayTypes(n), 32 !== n.length) throw new Error("bad n size"); + var q = new Uint8Array(32); + return crypto_scalarmult_base(q, n), q; + }, nacl.scalarMult.scalarLength = 32, nacl.scalarMult.groupElementLength = 32, nacl.box = function(msg, nonce, publicKey, secretKey) { + var k = nacl.box.before(publicKey, secretKey); + return nacl.secretbox(msg, nonce, k); + }, nacl.box.before = function(publicKey, secretKey) { + checkArrayTypes(publicKey, secretKey), (function(pk, sk) { + if (32 !== pk.length) throw new Error("bad public key size"); + if (32 !== sk.length) throw new Error("bad secret key size"); + })(publicKey, secretKey); + var k = new Uint8Array(32); + return crypto_box_beforenm(k, publicKey, secretKey), k; + }, nacl.box.after = nacl.secretbox, nacl.box.open = function(msg, nonce, publicKey, secretKey) { + var k = nacl.box.before(publicKey, secretKey); + return nacl.secretbox.open(msg, nonce, k); + }, nacl.box.open.after = nacl.secretbox.open, nacl.box.keyPair = function() { + var pk = new Uint8Array(32), sk = new Uint8Array(32); + return crypto_box_keypair(pk, sk), { + publicKey: pk, + secretKey: sk + }; + }, nacl.box.keyPair.fromSecretKey = function(secretKey) { + if (checkArrayTypes(secretKey), 32 !== secretKey.length) throw new Error("bad secret key size"); + var pk = new Uint8Array(32); + return crypto_scalarmult_base(pk, secretKey), { + publicKey: pk, + secretKey: new Uint8Array(secretKey) + }; + }, nacl.box.publicKeyLength = 32, nacl.box.secretKeyLength = 32, nacl.box.sharedKeyLength = 32, + nacl.box.nonceLength = 24, nacl.box.overheadLength = nacl.secretbox.overheadLength, + nacl.sign = function(msg, secretKey) { + if (checkArrayTypes(msg, secretKey), 64 !== secretKey.length) throw new Error("bad secret key size"); + var signedMsg = new Uint8Array(64 + msg.length); + return crypto_sign(signedMsg, msg, msg.length, secretKey), signedMsg; + }, nacl.sign.open = function(signedMsg, publicKey) { + if (2 !== arguments.length) throw new Error("nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?"); + if (checkArrayTypes(signedMsg, publicKey), 32 !== publicKey.length) throw new Error("bad public key size"); + var tmp = new Uint8Array(signedMsg.length), mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey); + if (mlen < 0) return null; + for (var m = new Uint8Array(mlen), i = 0; i < m.length; i++) m[i] = tmp[i]; + return m; + }, nacl.sign.detached = function(msg, secretKey) { + for (var signedMsg = nacl.sign(msg, secretKey), sig = new Uint8Array(64), i = 0; i < sig.length; i++) sig[i] = signedMsg[i]; + return sig; + }, nacl.sign.detached.verify = function(msg, sig, publicKey) { + if (checkArrayTypes(msg, sig, publicKey), 64 !== sig.length) throw new Error("bad signature size"); + if (32 !== publicKey.length) throw new Error("bad public key size"); + var i, sm = new Uint8Array(64 + msg.length), m = new Uint8Array(64 + msg.length); + for (i = 0; i < 64; i++) sm[i] = sig[i]; + for (i = 0; i < msg.length; i++) sm[i + 64] = msg[i]; + return crypto_sign_open(m, sm, sm.length, publicKey) >= 0; + }, nacl.sign.keyPair = function() { + var pk = new Uint8Array(32), sk = new Uint8Array(64); + return crypto_sign_keypair(pk, sk), { + publicKey: pk, + secretKey: sk + }; + }, nacl.sign.keyPair.fromSecretKey = function(secretKey) { + if (checkArrayTypes(secretKey), 64 !== secretKey.length) throw new Error("bad secret key size"); + for (var pk = new Uint8Array(32), i = 0; i < pk.length; i++) pk[i] = secretKey[32 + i]; + return { + publicKey: pk, + secretKey: new Uint8Array(secretKey) + }; + }, nacl.sign.keyPair.fromSeed = function(seed) { + if (checkArrayTypes(seed), 32 !== seed.length) throw new Error("bad seed size"); + for (var pk = new Uint8Array(32), sk = new Uint8Array(64), i = 0; i < 32; i++) sk[i] = seed[i]; + return crypto_sign_keypair(pk, sk, !0), { + publicKey: pk, + secretKey: sk + }; + }, nacl.sign.publicKeyLength = 32, nacl.sign.secretKeyLength = 64, nacl.sign.seedLength = 32, + nacl.sign.signatureLength = 64, nacl.hash = function(msg) { + checkArrayTypes(msg); + var h = new Uint8Array(64); + return crypto_hash(h, msg, msg.length), h; + }, nacl.hash.hashLength = 64, nacl.verify = function(x, y) { + return checkArrayTypes(x, y), 0 !== x.length && 0 !== y.length && x.length === y.length && 0 === vn(x, 0, y, 0, x.length); + }, nacl.setPRNG = function(fn) { + randombytes = fn; + }, (crypto = "undefined" != typeof self ? self.crypto || self.msCrypto : null) && crypto.getRandomValues ? nacl.setPRNG((function(x, n) { + var i, v = new Uint8Array(n); + for (i = 0; i < n; i += 65536) crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, 65536))); + for (i = 0; i < n; i++) x[i] = v[i]; + cleanup(v); + })) : (crypto = __webpack_require__(9)) && crypto.randomBytes && nacl.setPRNG((function(x, n) { + var i, v = crypto.randomBytes(n); + for (i = 0; i < n; i++) x[i] = v[i]; + cleanup(v); + })); + })(module.exports ? module.exports : self.nacl = self.nacl || {}); +}, function(module, exports, __webpack_require__) { + module.exports = SSHBuffer; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer; + function SSHBuffer(opts) { + assert.object(opts, "options"), void 0 !== opts.buffer && assert.buffer(opts.buffer, "options.buffer"), + this._size = opts.buffer ? opts.buffer.length : 1024, this._buffer = opts.buffer || Buffer.alloc(this._size), + this._offset = 0; + } + SSHBuffer.prototype.toBuffer = function() { + return this._buffer.slice(0, this._offset); + }, SSHBuffer.prototype.atEnd = function() { + return this._offset >= this._buffer.length; + }, SSHBuffer.prototype.remainder = function() { + return this._buffer.slice(this._offset); + }, SSHBuffer.prototype.skip = function(n) { + this._offset += n; + }, SSHBuffer.prototype.expand = function() { + this._size *= 2; + var buf = Buffer.alloc(this._size); + this._buffer.copy(buf, 0), this._buffer = buf; + }, SSHBuffer.prototype.readPart = function() { + return { + data: this.readBuffer() + }; + }, SSHBuffer.prototype.readBuffer = function() { + var len = this._buffer.readUInt32BE(this._offset); + this._offset += 4, assert.ok(this._offset + len <= this._buffer.length, "length out of bounds at +0x" + this._offset.toString(16) + " (data truncated?)"); + var buf = this._buffer.slice(this._offset, this._offset + len); + return this._offset += len, buf; + }, SSHBuffer.prototype.readString = function() { + return this.readBuffer().toString(); + }, SSHBuffer.prototype.readCString = function() { + for (var offset = this._offset; offset < this._buffer.length && 0 !== this._buffer[offset]; ) offset++; + assert.ok(offset < this._buffer.length, "c string does not terminate"); + var str = this._buffer.slice(this._offset, offset).toString(); + return this._offset = offset + 1, str; + }, SSHBuffer.prototype.readInt = function() { + var v = this._buffer.readUInt32BE(this._offset); + return this._offset += 4, v; + }, SSHBuffer.prototype.readInt64 = function() { + assert.ok(this._offset + 8 < this._buffer.length, "buffer not long enough to read Int64"); + var v = this._buffer.slice(this._offset, this._offset + 8); + return this._offset += 8, v; + }, SSHBuffer.prototype.readChar = function() { + return this._buffer[this._offset++]; + }, SSHBuffer.prototype.writeBuffer = function(buf) { + for (;this._offset + 4 + buf.length > this._size; ) this.expand(); + this._buffer.writeUInt32BE(buf.length, this._offset), this._offset += 4, buf.copy(this._buffer, this._offset), + this._offset += buf.length; + }, SSHBuffer.prototype.writeString = function(str) { + this.writeBuffer(Buffer.from(str, "utf8")); + }, SSHBuffer.prototype.writeCString = function(str) { + for (;this._offset + 1 + str.length > this._size; ) this.expand(); + this._buffer.write(str, this._offset), this._offset += str.length, this._buffer[this._offset++] = 0; + }, SSHBuffer.prototype.writeInt = function(v) { + for (;this._offset + 4 > this._size; ) this.expand(); + this._buffer.writeUInt32BE(v, this._offset), this._offset += 4; + }, SSHBuffer.prototype.writeInt64 = function(v) { + if (assert.buffer(v, "value"), v.length > 8) { + for (var lead = v.slice(0, v.length - 8), i = 0; i < lead.length; ++i) assert.strictEqual(lead[i], 0, "must fit in 64 bits of precision"); + v = v.slice(v.length - 8, v.length); + } + for (;this._offset + 8 > this._size; ) this.expand(); + v.copy(this._buffer, this._offset), this._offset += 8; + }, SSHBuffer.prototype.writeChar = function(v) { + for (;this._offset + 1 > this._size; ) this.expand(); + this._buffer[this._offset++] = v; + }, SSHBuffer.prototype.writePart = function(p) { + this.writeBuffer(p.data); + }, SSHBuffer.prototype.write = function(buf) { + for (;this._offset + buf.length > this._size; ) this.expand(); + buf.copy(this._buffer, this._offset), this._offset += buf.length; + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + return pem.read(buf, options, "pkcs8"); + }, + readPkcs8: function(alg, type, der) { + der.peek() === asn1.Ber.Integer && (assert.strictEqual(type, "private", "unexpected Integer at start of public key"), + der.readString(asn1.Ber.Integer, !0)), der.readSequence(); + var next = der.offset + der.length, oid = der.readOID(); + switch (oid) { + case "1.2.840.113549.1.1.1": + return der._offset = next, "public" === type ? (function(der) { + der.readSequence(asn1.Ber.BitString), der.readByte(), der.readSequence(); + var n = readMPInt(der, "modulus"), e = readMPInt(der, "exponent"), key = { + type: "rsa", + source: der.originalInput, + parts: [ { + name: "e", + data: e + }, { + name: "n", + data: n + } ] + }; + return new Key(key); + })(der) : (function(der) { + der.readSequence(asn1.Ber.OctetString), der.readSequence(); + var ver = readMPInt(der, "version"); + assert.equal(ver[0], 0, "unknown RSA private key version"); + var n = readMPInt(der, "modulus"), e = readMPInt(der, "public exponent"), d = readMPInt(der, "private exponent"), p = readMPInt(der, "prime1"), q = readMPInt(der, "prime2"), dmodp = readMPInt(der, "exponent1"), dmodq = readMPInt(der, "exponent2"), iqmp = readMPInt(der, "iqmp"); + return new PrivateKey({ + type: "rsa", + parts: [ { + name: "n", + data: n + }, { + name: "e", + data: e + }, { + name: "d", + data: d + }, { + name: "iqmp", + data: iqmp + }, { + name: "p", + data: p + }, { + name: "q", + data: q + }, { + name: "dmodp", + data: dmodp + }, { + name: "dmodq", + data: dmodq + } ] + }); + })(der); + + case "1.2.840.10040.4.1": + return "public" === type ? (function(der) { + der.readSequence(); + var p = readMPInt(der, "p"), q = readMPInt(der, "q"), g = readMPInt(der, "g"); + der.readSequence(asn1.Ber.BitString), der.readByte(); + var y = readMPInt(der, "y"); + return new Key({ + type: "dsa", + parts: [ { + name: "p", + data: p + }, { + name: "q", + data: q + }, { + name: "g", + data: g + }, { + name: "y", + data: y + } ] + }); + })(der) : (function(der) { + der.readSequence(); + var p = readMPInt(der, "p"), q = readMPInt(der, "q"), g = readMPInt(der, "g"); + der.readSequence(asn1.Ber.OctetString); + var x = readMPInt(der, "x"), y = utils.calculateDSAPublic(g, p, x); + return new PrivateKey({ + type: "dsa", + parts: [ { + name: "p", + data: p + }, { + name: "q", + data: q + }, { + name: "g", + data: g + }, { + name: "y", + data: y + }, { + name: "x", + data: x + } ] + }); + })(der); + + case "1.2.840.10045.2.1": + return "public" === type ? (function(der) { + var curveName = readECDSACurve(der); + assert.string(curveName, "a known elliptic curve"); + var Q = der.readString(asn1.Ber.BitString, !0); + Q = utils.ecNormalize(Q); + var key = { + type: "ecdsa", + parts: [ { + name: "curve", + data: Buffer.from(curveName) + }, { + name: "Q", + data: Q + } ] + }; + return new Key(key); + })(der) : (function(der) { + var curveName = readECDSACurve(der); + assert.string(curveName, "a known elliptic curve"), der.readSequence(asn1.Ber.OctetString), + der.readSequence(); + var version = readMPInt(der, "version"); + assert.equal(version[0], 1, "unknown version of ECDSA key"); + var Q, d = der.readString(asn1.Ber.OctetString, !0); + 160 == der.peek() && (der.readSequence(160), der._offset += der.length), 161 == der.peek() && (der.readSequence(161), + Q = der.readString(asn1.Ber.BitString, !0), Q = utils.ecNormalize(Q)), void 0 === Q && (Q = utils.publicFromPrivateECDSA(curveName, d).part.Q.data); + var key = { + type: "ecdsa", + parts: [ { + name: "curve", + data: Buffer.from(curveName) + }, { + name: "Q", + data: Q + }, { + name: "d", + data: d + } ] + }; + return new PrivateKey(key); + })(der); + + case "1.3.101.112": + return "public" === type ? (function(der) { + 0 === der.peek() && der.readByte(); + var A = utils.readBitString(der), key = { + type: "ed25519", + parts: [ { + name: "A", + data: utils.zeroPadToLength(A, 32) + } ] + }; + return new Key(key); + })(der) : (function(der) { + 0 === der.peek() && der.readByte(), der.readSequence(asn1.Ber.OctetString); + var A, k = der.readString(asn1.Ber.OctetString, !0); + k = utils.zeroPadToLength(k, 32), der.peek() === asn1.Ber.BitString ? (A = utils.readBitString(der), + A = utils.zeroPadToLength(A, 32)) : A = utils.calculateED25519Public(k); + var key = { + type: "ed25519", + parts: [ { + name: "A", + data: utils.zeroPadToLength(A, 32) + }, { + name: "k", + data: utils.zeroPadToLength(k, 32) + } ] + }; + return new PrivateKey(key); + })(der); + + case "1.3.101.110": + return "public" === type ? (function(der) { + var A = utils.readBitString(der), key = { + type: "curve25519", + parts: [ { + name: "A", + data: utils.zeroPadToLength(A, 32) + } ] + }; + return new Key(key); + })(der) : (function(der) { + 0 === der.peek() && der.readByte(), der.readSequence(asn1.Ber.OctetString); + var k = der.readString(asn1.Ber.OctetString, !0); + k = utils.zeroPadToLength(k, 32); + var A = utils.calculateX25519Public(k), key = { + type: "curve25519", + parts: [ { + name: "A", + data: utils.zeroPadToLength(A, 32) + }, { + name: "k", + data: utils.zeroPadToLength(k, 32) + } ] + }; + return new PrivateKey(key); + })(der); + + default: + throw new Error("Unknown key type OID " + oid); + } + }, + write: function(key, options) { + return pem.write(key, options, "pkcs8"); + }, + writePkcs8: writePkcs8, + pkcs8ToBuffer: function(key) { + var der = new asn1.BerWriter; + return writePkcs8(der, key), der.buffer; + }, + readECDSACurve: readECDSACurve, + writeECDSACurve: writeECDSACurve + }; + var assert = __webpack_require__(15), asn1 = __webpack_require__(49), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), utils = __webpack_require__(27), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), pem = __webpack_require__(56); + function readMPInt(der, nm) { + return assert.strictEqual(der.peek(), asn1.Ber.Integer, nm + " is not an Integer"), + utils.mpNormalize(der.readString(asn1.Ber.Integer, !0)); + } + function readECDSACurve(der) { + var curveName, curveNames, j, c, cd; + if (der.peek() === asn1.Ber.OID) { + var oid = der.readOID(); + for (curveNames = Object.keys(algs.curves), j = 0; j < curveNames.length; ++j) if (c = curveNames[j], + (cd = algs.curves[c]).pkcs8oid === oid) { + curveName = c; + break; + } + } else { + der.readSequence(); + var version = der.readString(asn1.Ber.Integer, !0); + assert.strictEqual(version[0], 1, "ECDSA key not version 1"); + var curve = {}; + der.readSequence(); + var fieldTypeOid = der.readOID(); + assert.strictEqual(fieldTypeOid, "1.2.840.10045.1.1", "ECDSA key is not from a prime-field"); + var p = curve.p = utils.mpNormalize(der.readString(asn1.Ber.Integer, !0)); + curve.size = 8 * p.length - utils.countZeros(p), der.readSequence(), curve.a = utils.mpNormalize(der.readString(asn1.Ber.OctetString, !0)), + curve.b = utils.mpNormalize(der.readString(asn1.Ber.OctetString, !0)), der.peek() === asn1.Ber.BitString && (curve.s = der.readString(asn1.Ber.BitString, !0)), + curve.G = der.readString(asn1.Ber.OctetString, !0), assert.strictEqual(curve.G[0], 4, "uncompressed G is required"), + curve.n = utils.mpNormalize(der.readString(asn1.Ber.Integer, !0)), curve.h = utils.mpNormalize(der.readString(asn1.Ber.Integer, !0)), + assert.strictEqual(curve.h[0], 1, "a cofactor=1 curve is required"), curveNames = Object.keys(algs.curves); + var ks = Object.keys(curve); + for (j = 0; j < curveNames.length; ++j) { + c = curveNames[j], cd = algs.curves[c]; + for (var equal = !0, i = 0; i < ks.length; ++i) { + var k = ks[i]; + if (void 0 !== cd[k]) if ("object" == typeof cd[k] && void 0 !== cd[k].equals) { + if (!cd[k].equals(curve[k])) { + equal = !1; + break; + } + } else if (Buffer.isBuffer(cd[k])) { + if (cd[k].toString("binary") !== curve[k].toString("binary")) { + equal = !1; + break; + } + } else if (cd[k] !== curve[k]) { + equal = !1; + break; + } + } + if (equal) { + curveName = c; + break; + } + } + } + return curveName; + } + function writePkcs8(der, key) { + if (der.startSequence(), PrivateKey.isPrivateKey(key)) { + var sillyInt = Buffer.from([ 0 ]); + der.writeBuffer(sillyInt, asn1.Ber.Integer); + } + switch (der.startSequence(), key.type) { + case "rsa": + der.writeOID("1.2.840.113549.1.1.1"), PrivateKey.isPrivateKey(key) ? (function(key, der) { + der.writeNull(), der.endSequence(), der.startSequence(asn1.Ber.OctetString), der.startSequence(); + var version = Buffer.from([ 0 ]); + der.writeBuffer(version, asn1.Ber.Integer), der.writeBuffer(key.part.n.data, asn1.Ber.Integer), + der.writeBuffer(key.part.e.data, asn1.Ber.Integer), der.writeBuffer(key.part.d.data, asn1.Ber.Integer), + der.writeBuffer(key.part.p.data, asn1.Ber.Integer), der.writeBuffer(key.part.q.data, asn1.Ber.Integer), + key.part.dmodp && key.part.dmodq || utils.addRSAMissing(key), der.writeBuffer(key.part.dmodp.data, asn1.Ber.Integer), + der.writeBuffer(key.part.dmodq.data, asn1.Ber.Integer), der.writeBuffer(key.part.iqmp.data, asn1.Ber.Integer), + der.endSequence(), der.endSequence(); + })(key, der) : (function(key, der) { + der.writeNull(), der.endSequence(), der.startSequence(asn1.Ber.BitString), der.writeByte(0), + der.startSequence(), der.writeBuffer(key.part.n.data, asn1.Ber.Integer), der.writeBuffer(key.part.e.data, asn1.Ber.Integer), + der.endSequence(), der.endSequence(); + })(key, der); + break; + + case "dsa": + der.writeOID("1.2.840.10040.4.1"), PrivateKey.isPrivateKey(key) ? (function(key, der) { + der.startSequence(), der.writeBuffer(key.part.p.data, asn1.Ber.Integer), der.writeBuffer(key.part.q.data, asn1.Ber.Integer), + der.writeBuffer(key.part.g.data, asn1.Ber.Integer), der.endSequence(), der.endSequence(), + der.startSequence(asn1.Ber.OctetString), der.writeBuffer(key.part.x.data, asn1.Ber.Integer), + der.endSequence(); + })(key, der) : (function(key, der) { + der.startSequence(), der.writeBuffer(key.part.p.data, asn1.Ber.Integer), der.writeBuffer(key.part.q.data, asn1.Ber.Integer), + der.writeBuffer(key.part.g.data, asn1.Ber.Integer), der.endSequence(), der.endSequence(), + der.startSequence(asn1.Ber.BitString), der.writeByte(0), der.writeBuffer(key.part.y.data, asn1.Ber.Integer), + der.endSequence(); + })(key, der); + break; + + case "ecdsa": + der.writeOID("1.2.840.10045.2.1"), PrivateKey.isPrivateKey(key) ? (function(key, der) { + writeECDSACurve(key, der), der.endSequence(), der.startSequence(asn1.Ber.OctetString), + der.startSequence(); + var version = Buffer.from([ 1 ]); + der.writeBuffer(version, asn1.Ber.Integer), der.writeBuffer(key.part.d.data, asn1.Ber.OctetString), + der.startSequence(161); + var Q = utils.ecNormalize(key.part.Q.data, !0); + der.writeBuffer(Q, asn1.Ber.BitString), der.endSequence(), der.endSequence(), der.endSequence(); + })(key, der) : (function(key, der) { + writeECDSACurve(key, der), der.endSequence(); + var Q = utils.ecNormalize(key.part.Q.data, !0); + der.writeBuffer(Q, asn1.Ber.BitString); + })(key, der); + break; + + case "ed25519": + if (der.writeOID("1.3.101.112"), PrivateKey.isPrivateKey(key)) throw new Error("Ed25519 private keys in pkcs8 format are not supported"); + !(function(key, der) { + der.endSequence(), utils.writeBitString(der, key.part.A.data); + })(key, der); + break; + + default: + throw new Error("Unsupported key type: " + key.type); + } + der.endSequence(); + } + function writeECDSACurve(key, der) { + var curve = algs.curves[key.curve]; + if (curve.pkcs8oid) der.writeOID(curve.pkcs8oid); else { + der.startSequence(); + var version = Buffer.from([ 1 ]); + der.writeBuffer(version, asn1.Ber.Integer), der.startSequence(), der.writeOID("1.2.840.10045.1.1"), + der.writeBuffer(curve.p, asn1.Ber.Integer), der.endSequence(), der.startSequence(); + var a = curve.p; + 0 === a[0] && (a = a.slice(1)), der.writeBuffer(a, asn1.Ber.OctetString), der.writeBuffer(curve.b, asn1.Ber.OctetString), + der.writeBuffer(curve.s, asn1.Ber.BitString), der.endSequence(), der.writeBuffer(curve.G, asn1.Ber.OctetString), + der.writeBuffer(curve.n, asn1.Ber.Integer); + var h = curve.h; + h || (h = Buffer.from([ 1 ])), der.writeBuffer(h, asn1.Ber.Integer), der.endSequence(); + } + } +}, function(module, exports, __webpack_require__) { + module.exports = Certificate; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), crypto = __webpack_require__(9), Fingerprint = __webpack_require__(97), errs = (__webpack_require__(48), + __webpack_require__(44)), utils = (__webpack_require__(0), __webpack_require__(27)), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), Identity = __webpack_require__(103), formats = {}; + formats.openssh = __webpack_require__(1059), formats.x509 = __webpack_require__(484), + formats.pem = __webpack_require__(1060); + var CertificateParseError = errs.CertificateParseError, InvalidAlgorithmError = errs.InvalidAlgorithmError; + function Certificate(opts) { + assert.object(opts, "options"), assert.arrayOfObject(opts.subjects, "options.subjects"), + utils.assertCompatible(opts.subjects[0], Identity, [ 1, 0 ], "options.subjects"), + utils.assertCompatible(opts.subjectKey, Key, [ 1, 0 ], "options.subjectKey"), utils.assertCompatible(opts.issuer, Identity, [ 1, 0 ], "options.issuer"), + void 0 !== opts.issuerKey && utils.assertCompatible(opts.issuerKey, Key, [ 1, 0 ], "options.issuerKey"), + assert.object(opts.signatures, "options.signatures"), assert.buffer(opts.serial, "options.serial"), + assert.date(opts.validFrom, "options.validFrom"), assert.date(opts.validUntil, "optons.validUntil"), + assert.optionalArrayOfString(opts.purposes, "options.purposes"), this._hashCache = {}, + this.subjects = opts.subjects, this.issuer = opts.issuer, this.subjectKey = opts.subjectKey, + this.issuerKey = opts.issuerKey, this.signatures = opts.signatures, this.serial = opts.serial, + this.validFrom = opts.validFrom, this.validUntil = opts.validUntil, this.purposes = opts.purposes; + } + Certificate.formats = formats, Certificate.prototype.toBuffer = function(format, options) { + return void 0 === format && (format = "x509"), assert.string(format, "format"), + assert.object(formats[format], "formats[format]"), assert.optionalObject(options, "options"), + formats[format].write(this, options); + }, Certificate.prototype.toString = function(format, options) { + return void 0 === format && (format = "pem"), this.toBuffer(format, options).toString(); + }, Certificate.prototype.fingerprint = function(algo) { + void 0 === algo && (algo = "sha256"), assert.string(algo, "algorithm"); + var opts = { + type: "certificate", + hash: this.hash(algo), + algorithm: algo + }; + return new Fingerprint(opts); + }, Certificate.prototype.hash = function(algo) { + if (assert.string(algo, "algorithm"), algo = algo.toLowerCase(), void 0 === algs.hashAlgs[algo]) throw new InvalidAlgorithmError(algo); + if (this._hashCache[algo]) return this._hashCache[algo]; + var hash = crypto.createHash(algo).update(this.toBuffer("x509")).digest(); + return this._hashCache[algo] = hash, hash; + }, Certificate.prototype.isExpired = function(when) { + return void 0 === when && (when = new Date), !(when.getTime() >= this.validFrom.getTime() && when.getTime() < this.validUntil.getTime()); + }, Certificate.prototype.isSignedBy = function(issuerCert) { + return utils.assertCompatible(issuerCert, Certificate, [ 1, 0 ], "issuer"), !!this.issuer.equals(issuerCert.subjects[0]) && !(this.issuer.purposes && this.issuer.purposes.length > 0 && -1 === this.issuer.purposes.indexOf("ca")) && this.isSignedByKey(issuerCert.subjectKey); + }, Certificate.prototype.getExtension = function(keyOrOid) { + return assert.string(keyOrOid, "keyOrOid"), this.getExtensions().filter((function(maybeExt) { + return "x509" === maybeExt.format ? maybeExt.oid === keyOrOid : "openssh" === maybeExt.format && maybeExt.name === keyOrOid; + }))[0]; + }, Certificate.prototype.getExtensions = function() { + var exts = [], x509 = this.signatures.x509; + x509 && x509.extras && x509.extras.exts && x509.extras.exts.forEach((function(ext) { + ext.format = "x509", exts.push(ext); + })); + var openssh = this.signatures.openssh; + return openssh && openssh.exts && openssh.exts.forEach((function(ext) { + ext.format = "openssh", exts.push(ext); + })), exts; + }, Certificate.prototype.isSignedByKey = function(issuerKey) { + if (utils.assertCompatible(issuerKey, Key, [ 1, 2 ], "issuerKey"), void 0 !== this.issuerKey) return this.issuerKey.fingerprint("sha512").matches(issuerKey); + var fmt = Object.keys(this.signatures)[0], valid = formats[fmt].verify(this, issuerKey); + return valid && (this.issuerKey = issuerKey), valid; + }, Certificate.prototype.signWith = function(key) { + utils.assertCompatible(key, PrivateKey, [ 1, 2 ], "key"); + for (var fmts = Object.keys(formats), didOne = !1, i = 0; i < fmts.length; ++i) "pem" !== fmts[i] && !0 === formats[fmts[i]].sign(this, key) && (didOne = !0); + if (!didOne) throw new Error("Failed to sign the certificate for any available certificate formats"); + }, Certificate.createSelfSigned = function(subjectOrSubjects, key, options) { + var subjects; + subjects = Array.isArray(subjectOrSubjects) ? subjectOrSubjects : [ subjectOrSubjects ], + assert.arrayOfObject(subjects), subjects.forEach((function(subject) { + utils.assertCompatible(subject, Identity, [ 1, 0 ], "subject"); + })), utils.assertCompatible(key, PrivateKey, [ 1, 2 ], "private key"), assert.optionalObject(options, "options"), + void 0 === options && (options = {}), assert.optionalObject(options.validFrom, "options.validFrom"), + assert.optionalObject(options.validUntil, "options.validUntil"); + var validFrom = options.validFrom, validUntil = options.validUntil; + if (void 0 === validFrom && (validFrom = new Date), void 0 === validUntil) { + assert.optionalNumber(options.lifetime, "options.lifetime"); + var lifetime = options.lifetime; + void 0 === lifetime && (lifetime = 31536e4), (validUntil = new Date).setTime(validUntil.getTime() + 1e3 * lifetime); + } + assert.optionalBuffer(options.serial, "options.serial"); + var serial = options.serial; + void 0 === serial && (serial = Buffer.from("0000000000000001", "hex")); + var purposes = options.purposes; + if (void 0 === purposes && (purposes = []), -1 === purposes.indexOf("signature") && purposes.push("signature"), + -1 === purposes.indexOf("ca") && purposes.push("ca"), -1 === purposes.indexOf("crl") && purposes.push("crl"), + purposes.length <= 3) { + var hostSubjects = subjects.filter((function(subject) { + return "host" === subject.type; + })), userSubjects = subjects.filter((function(subject) { + return "user" === subject.type; + })); + hostSubjects.length > 0 && -1 === purposes.indexOf("serverAuth") && purposes.push("serverAuth"), + userSubjects.length > 0 && -1 === purposes.indexOf("clientAuth") && purposes.push("clientAuth"), + (userSubjects.length > 0 || hostSubjects.length > 0) && (-1 === purposes.indexOf("keyAgreement") && purposes.push("keyAgreement"), + "rsa" === key.type && -1 === purposes.indexOf("encryption") && purposes.push("encryption")); + } + var cert = new Certificate({ + subjects: subjects, + issuer: subjects[0], + subjectKey: key.toPublic(), + issuerKey: key.toPublic(), + signatures: {}, + serial: serial, + validFrom: validFrom, + validUntil: validUntil, + purposes: purposes + }); + return cert.signWith(key), cert; + }, Certificate.create = function(subjectOrSubjects, key, issuer, issuerKey, options) { + var subjects; + subjects = Array.isArray(subjectOrSubjects) ? subjectOrSubjects : [ subjectOrSubjects ], + assert.arrayOfObject(subjects), subjects.forEach((function(subject) { + utils.assertCompatible(subject, Identity, [ 1, 0 ], "subject"); + })), utils.assertCompatible(key, Key, [ 1, 0 ], "key"), PrivateKey.isPrivateKey(key) && (key = key.toPublic()), + utils.assertCompatible(issuer, Identity, [ 1, 0 ], "issuer"), utils.assertCompatible(issuerKey, PrivateKey, [ 1, 2 ], "issuer key"), + assert.optionalObject(options, "options"), void 0 === options && (options = {}), + assert.optionalObject(options.validFrom, "options.validFrom"), assert.optionalObject(options.validUntil, "options.validUntil"); + var validFrom = options.validFrom, validUntil = options.validUntil; + if (void 0 === validFrom && (validFrom = new Date), void 0 === validUntil) { + assert.optionalNumber(options.lifetime, "options.lifetime"); + var lifetime = options.lifetime; + void 0 === lifetime && (lifetime = 31536e4), (validUntil = new Date).setTime(validUntil.getTime() + 1e3 * lifetime); + } + assert.optionalBuffer(options.serial, "options.serial"); + var serial = options.serial; + void 0 === serial && (serial = Buffer.from("0000000000000001", "hex")); + var purposes = options.purposes; + void 0 === purposes && (purposes = []), -1 === purposes.indexOf("signature") && purposes.push("signature"), + !0 === options.ca && (-1 === purposes.indexOf("ca") && purposes.push("ca"), -1 === purposes.indexOf("crl") && purposes.push("crl")); + var hostSubjects = subjects.filter((function(subject) { + return "host" === subject.type; + })), userSubjects = subjects.filter((function(subject) { + return "user" === subject.type; + })); + hostSubjects.length > 0 && -1 === purposes.indexOf("serverAuth") && purposes.push("serverAuth"), + userSubjects.length > 0 && -1 === purposes.indexOf("clientAuth") && purposes.push("clientAuth"), + (userSubjects.length > 0 || hostSubjects.length > 0) && (-1 === purposes.indexOf("keyAgreement") && purposes.push("keyAgreement"), + "rsa" === key.type && -1 === purposes.indexOf("encryption") && purposes.push("encryption")); + var cert = new Certificate({ + subjects: subjects, + issuer: issuer, + subjectKey: key, + issuerKey: issuerKey.toPublic(), + signatures: {}, + serial: serial, + validFrom: validFrom, + validUntil: validUntil, + purposes: purposes + }); + return cert.signWith(issuerKey), cert; + }, Certificate.parse = function(data, format, options) { + "string" != typeof data && assert.buffer(data, "data"), void 0 === format && (format = "auto"), + assert.string(format, "format"), "string" == typeof options && (options = { + filename: options + }), assert.optionalObject(options, "options"), void 0 === options && (options = {}), + assert.optionalString(options.filename, "options.filename"), void 0 === options.filename && (options.filename = "(unnamed)"), + assert.object(formats[format], "formats[format]"); + try { + return formats[format].read(data, options); + } catch (e) { + throw new CertificateParseError(options.filename, format, e); + } + }, Certificate.isCertificate = function(obj, ver) { + return utils.isCompatible(obj, Certificate, ver); + }, Certificate.prototype._sshpkApiVersion = [ 1, 1 ], Certificate._oldVersionDetect = function(obj) { + return [ 1, 0 ]; + }; +}, function(module, exports, __webpack_require__) { + module.exports = Identity; + var assert = __webpack_require__(15), utils = (__webpack_require__(30), __webpack_require__(9), + __webpack_require__(97), __webpack_require__(48), __webpack_require__(44), __webpack_require__(0), + __webpack_require__(27)), asn1 = __webpack_require__(49), Buffer = __webpack_require__(14).Buffer, DNS_NAME_RE = /^([*]|[a-z0-9][a-z0-9\-]{0,62})(?:\.([*]|[a-z0-9][a-z0-9\-]{0,62}))*$/i, oids = { + cn: "2.5.4.3", + o: "2.5.4.10", + ou: "2.5.4.11", + l: "2.5.4.7", + s: "2.5.4.8", + c: "2.5.4.6", + sn: "2.5.4.4", + postalCode: "2.5.4.17", + serialNumber: "2.5.4.5", + street: "2.5.4.9", + x500UniqueIdentifier: "2.5.4.45", + role: "2.5.4.72", + telephoneNumber: "2.5.4.20", + description: "2.5.4.13", + dc: "0.9.2342.19200300.100.1.25", + uid: "0.9.2342.19200300.100.1.1", + mail: "0.9.2342.19200300.100.1.3", + title: "2.5.4.12", + gn: "2.5.4.42", + initials: "2.5.4.43", + pseudonym: "2.5.4.65", + emailAddress: "1.2.840.113549.1.9.1" + }, unoids = {}; + function Identity(opts) { + var self = this; + if (assert.object(opts, "options"), assert.arrayOfObject(opts.components, "options.components"), + this.components = opts.components, this.componentLookup = {}, this.components.forEach((function(c) { + c.name && !c.oid && (c.oid = oids[c.name]), c.oid && !c.name && (c.name = unoids[c.oid]), + void 0 === self.componentLookup[c.name] && (self.componentLookup[c.name] = []), + self.componentLookup[c.name].push(c); + })), this.componentLookup.cn && this.componentLookup.cn.length > 0 && (this.cn = this.componentLookup.cn[0].value), + assert.optionalString(opts.type, "options.type"), void 0 === opts.type) 1 === this.components.length && this.componentLookup.cn && 1 === this.componentLookup.cn.length && this.componentLookup.cn[0].value.match(DNS_NAME_RE) ? (this.type = "host", + this.hostname = this.componentLookup.cn[0].value) : this.componentLookup.dc && this.components.length === this.componentLookup.dc.length ? (this.type = "host", + this.hostname = this.componentLookup.dc.map((function(c) { + return c.value; + })).join(".")) : this.componentLookup.uid && this.components.length === this.componentLookup.uid.length ? (this.type = "user", + this.uid = this.componentLookup.uid[0].value) : this.componentLookup.cn && 1 === this.componentLookup.cn.length && this.componentLookup.cn[0].value.match(DNS_NAME_RE) ? (this.type = "host", + this.hostname = this.componentLookup.cn[0].value) : this.componentLookup.uid && 1 === this.componentLookup.uid.length ? (this.type = "user", + this.uid = this.componentLookup.uid[0].value) : this.componentLookup.mail && 1 === this.componentLookup.mail.length ? (this.type = "email", + this.email = this.componentLookup.mail[0].value) : this.componentLookup.cn && 1 === this.componentLookup.cn.length ? (this.type = "user", + this.uid = this.componentLookup.cn[0].value) : this.type = "unknown"; else if (this.type = opts.type, + "host" === this.type) this.hostname = opts.hostname; else if ("user" === this.type) this.uid = opts.uid; else { + if ("email" !== this.type) throw new Error("Unknown type " + this.type); + this.email = opts.email; + } + } + Object.keys(oids).forEach((function(k) { + unoids[oids[k]] = k; + })), Identity.prototype.toString = function() { + return this.components.map((function(c) { + var n = c.name.toUpperCase(); + n = n.replace(/=/g, "\\="); + var v = c.value; + return n + "=" + v.replace(/,/g, "\\,"); + })).join(", "); + }, Identity.prototype.get = function(name, asArray) { + assert.string(name, "name"); + var arr = this.componentLookup[name]; + if (void 0 !== arr && 0 !== arr.length) { + if (!asArray && arr.length > 1) throw new Error("Multiple values for attribute " + name); + return asArray ? arr.map((function(c) { + return c.value; + })) : arr[0].value; + } + }, Identity.prototype.toArray = function(idx) { + return this.components.map((function(c) { + return { + name: c.name, + value: c.value + }; + })); + }; + var NOT_PRINTABLE = /[^a-zA-Z0-9 '(),+.\/:=?-]/, NOT_IA5 = /[^\x00-\x7f]/; + function globMatch(a, b) { + if ("**" === a || "**" === b) return !0; + var aParts = a.split("."), bParts = b.split("."); + if (aParts.length !== bParts.length) return !1; + for (var i = 0; i < aParts.length; ++i) if ("*" !== aParts[i] && "*" !== bParts[i] && aParts[i] !== bParts[i]) return !1; + return !0; + } + Identity.prototype.toAsn1 = function(der, tag) { + der.startSequence(tag), this.components.forEach((function(c) { + if (der.startSequence(asn1.Ber.Constructor | asn1.Ber.Set), der.startSequence(), + der.writeOID(c.oid), c.asn1type === asn1.Ber.Utf8String || c.value.match(NOT_IA5)) { + var v = Buffer.from(c.value, "utf8"); + der.writeBuffer(v, asn1.Ber.Utf8String); + } else if (c.asn1type === asn1.Ber.IA5String || c.value.match(NOT_PRINTABLE)) der.writeString(c.value, asn1.Ber.IA5String); else { + var type = asn1.Ber.PrintableString; + void 0 !== c.asn1type && (type = c.asn1type), der.writeString(c.value, type); + } + der.endSequence(), der.endSequence(); + })), der.endSequence(); + }, Identity.prototype.equals = function(other) { + if (!Identity.isIdentity(other, [ 1, 0 ])) return !1; + if (other.components.length !== this.components.length) return !1; + for (var i = 0; i < this.components.length; ++i) { + if (this.components[i].oid !== other.components[i].oid) return !1; + if (!globMatch(this.components[i].value, other.components[i].value)) return !1; + } + return !0; + }, Identity.forHost = function(hostname) { + return assert.string(hostname, "hostname"), new Identity({ + type: "host", + hostname: hostname, + components: [ { + name: "cn", + value: hostname + } ] + }); + }, Identity.forUser = function(uid) { + return assert.string(uid, "uid"), new Identity({ + type: "user", + uid: uid, + components: [ { + name: "uid", + value: uid + } ] + }); + }, Identity.forEmail = function(email) { + return assert.string(email, "email"), new Identity({ + type: "email", + email: email, + components: [ { + name: "mail", + value: email + } ] + }); + }, Identity.parseDN = function(dn) { + assert.string(dn, "dn"); + for (var parts = [ "" ], idx = 0, rem = dn; rem.length > 0; ) { + var m; + if (null !== (m = /^,/.exec(rem))) parts[++idx] = "", rem = rem.slice(m[0].length); else if (null !== (m = /^\\,/.exec(rem))) parts[idx] += ",", + rem = rem.slice(m[0].length); else if (null !== (m = /^\\./.exec(rem))) parts[idx] += m[0], + rem = rem.slice(m[0].length); else { + if (null === (m = /^[^\\,]+/.exec(rem))) throw new Error("Failed to parse DN"); + parts[idx] += m[0], rem = rem.slice(m[0].length); + } + } + return new Identity({ + components: parts.map((function(c) { + for (var eqPos = (c = c.trim()).indexOf("="); eqPos > 0 && "\\" === c.charAt(eqPos - 1); ) eqPos = c.indexOf("=", eqPos + 1); + if (-1 === eqPos) throw new Error("Failed to parse DN"); + return { + name: c.slice(0, eqPos).toLowerCase().replace(/\\=/g, "="), + value: c.slice(eqPos + 1) + }; + })) + }); + }, Identity.fromArray = function(components) { + return assert.arrayOfObject(components, "components"), components.forEach((function(cmp) { + if (assert.object(cmp, "component"), assert.string(cmp.name, "component.name"), + !Buffer.isBuffer(cmp.value) && "string" != typeof cmp.value) throw new Error("Invalid component value"); + })), new Identity({ + components: components + }); + }, Identity.parseAsn1 = function(der, top) { + var components = []; + der.readSequence(top); + for (var end = der.offset + der.length; der.offset < end; ) { + der.readSequence(asn1.Ber.Constructor | asn1.Ber.Set); + var after = der.offset + der.length; + der.readSequence(); + var value, oid = der.readOID(), type = der.peek(); + switch (type) { + case asn1.Ber.PrintableString: + case asn1.Ber.IA5String: + case asn1.Ber.OctetString: + case asn1.Ber.T61String: + value = der.readString(type); + break; + + case asn1.Ber.Utf8String: + value = (value = der.readString(type, !0)).toString("utf8"); + break; + + case asn1.Ber.CharacterString: + case asn1.Ber.BMPString: + value = (value = der.readString(type, !0)).toString("utf16le"); + break; + + default: + throw new Error("Unknown asn1 type " + type); + } + components.push({ + oid: oid, + asn1type: type, + value: value + }), der._offset = after; + } + return der._offset = end, new Identity({ + components: components + }); + }, Identity.isIdentity = function(obj, ver) { + return utils.isCompatible(obj, Identity, ver); + }, Identity.prototype._sshpkApiVersion = [ 1, 0 ], Identity._oldVersionDetect = function(obj) { + return [ 1, 0 ]; + }; +}, function(module, exports, __webpack_require__) { + module.exports = Writer; + var fs = __webpack_require__(59), inherits = __webpack_require__(7), rimraf = __webpack_require__(513), mkdir = __webpack_require__(170), path = __webpack_require__(4), umask = "win32" === process.platform ? 0 : process.umask(), getType = __webpack_require__(154), Abstract = __webpack_require__(242); + inherits(Writer, Abstract), Writer.dirmode = parseInt("0777", 8) & ~umask, Writer.filemode = parseInt("0666", 8) & ~umask; + var DirWriter = __webpack_require__(514), LinkWriter = __webpack_require__(515), FileWriter = __webpack_require__(516), ProxyWriter = __webpack_require__(517); + function Writer(props, current) { + "string" == typeof props && (props = { + path: props + }); + var ClassType = Writer; + switch (getType(props)) { + case "Directory": + ClassType = DirWriter; + break; + + case "File": + ClassType = FileWriter; + break; + + case "Link": + case "SymbolicLink": + ClassType = LinkWriter; + break; + + default: + ClassType = ProxyWriter; + } + if (!(this instanceof ClassType)) return new ClassType(props); + Abstract.call(this), props.path || this.error("Must provide a path", null, !0), + this.type = props.type, this.props = props, this.depth = props.depth || 0, this.clobber = !1 !== props.clobber || props.clobber, + this.parent = props.parent || null, this.root = props.root || props.parent && props.parent.root || this, + this._path = this.path = path.resolve(props.path), "win32" === process.platform && (this.path = this._path = this.path.replace(/\?/g, "_"), + this._path.length >= 260 && (this._swallowErrors = !0, this._path = "\\\\?\\" + this.path.replace(/\//g, "\\"))), + this.basename = path.basename(props.path), this.dirname = path.dirname(props.path), + this.linkpath = props.linkpath || null, props.parent = props.root = null, this.size = props.size, + "string" == typeof props.mode && (props.mode = parseInt(props.mode, 8)), this.readable = !1, + this.writable = !0, this._buffer = [], this.ready = !1, this.filter = "function" == typeof props.filter ? props.filter : null, + this._stat(current); + } + function create(self) { + mkdir(path.dirname(self._path), Writer.dirmode, (function(er, made) { + return er ? self.error(er) : (self._madeDir = made, self._create()); + })); + } + function endChmod(self, want, current, path, cb) { + var wantMode = want.mode, chmod = want.follow || "SymbolicLink" !== self.type ? "chmod" : "lchmod"; + if (!fs[chmod]) return cb(); + if ("number" != typeof wantMode) return cb(); + var curMode = current.mode & parseInt("0777", 8); + if ((wantMode &= parseInt("0777", 8)) === curMode) return cb(); + fs[chmod](path, wantMode, cb); + } + function endChown(self, want, current, path, cb) { + if ("win32" === process.platform) return cb(); + if (!process.getuid || 0 !== process.getuid()) return cb(); + if ("number" != typeof want.uid && "number" != typeof want.gid) return cb(); + if (current.uid === want.uid && current.gid === want.gid) return cb(); + var chown = self.props.follow || "SymbolicLink" !== self.type ? "chown" : "lchown"; + if (!fs[chown]) return cb(); + "number" != typeof want.uid && (want.uid = current.uid), "number" != typeof want.gid && (want.gid = current.gid), + fs[chown](path, want.uid, want.gid, cb); + } + function endUtimes(self, want, current, path, cb) { + if (!fs.utimes || "win32" === process.platform) return cb(); + var utimes = want.follow || "SymbolicLink" !== self.type ? "utimes" : "lutimes"; + if ("lutimes" !== utimes || fs[utimes] || (utimes = "utimes"), !fs[utimes]) return cb(); + var curA = current.atime, curM = current.mtime, meA = want.atime, meM = want.mtime; + if (void 0 === meA && (meA = curA), void 0 === meM && (meM = curM), isDate(meA) || (meA = new Date(meA)), + isDate(meM) || (meA = new Date(meM)), meA.getTime() === curA.getTime() && meM.getTime() === curM.getTime()) return cb(); + fs[utimes](path, meA, meM, cb); + } + function endMadeDir(self, p, cb) { + var made = self._madeDir, d = path.dirname(p); + !(function(self, p, cb) { + var dirProps = {}; + Object.keys(self.props).forEach((function(k) { + dirProps[k] = self.props[k], "mode" === k && "Directory" !== self.type && (dirProps[k] = dirProps[k] | parseInt("0111", 8)); + })); + var todo = 3, errState = null; + function next(er) { + if (!errState) return er ? cb(errState = er) : 0 == --todo ? cb() : void 0; + } + fs.stat(p, (function(er, current) { + if (er) return cb(errState = er); + endChmod(self, dirProps, current, p, next), endChown(self, dirProps, current, p, next), + endUtimes(self, dirProps, current, p, next); + })); + })(self, d, (function(er) { + return er ? cb(er) : d === made ? cb() : void endMadeDir(self, d, cb); + })); + } + function isDate(d) { + return "object" == typeof d && "[object Date]" === (function(d) { + return Object.prototype.toString.call(d); + })(d); + } + Writer.prototype._create = function() { + var self = this; + fs[self.props.follow ? "stat" : "lstat"](self._path, (function(er) { + if (er) return self.warn("Cannot create " + self._path + "\nUnsupported type: " + self.type, "ENOTSUP"); + self._finish(); + })); + }, Writer.prototype._stat = function(current) { + var self = this, stat = self.props.follow ? "stat" : "lstat", who = self._proxy || self; + function statCb(er, current) { + return self.filter && !self.filter.call(who, who, current) ? (self._aborted = !0, + self.emit("end"), void self.emit("close")) : er || !current ? create(self) : (self._old = current, + getType(current) !== self.type || "File" === self.type && current.nlink > 1 ? rimraf(self._path, (function(er) { + if (er) return self.error(er); + self._old = null, create(self); + })) : void create(self)); + } + current ? statCb(null, current) : fs[stat](self._path, statCb); + }, Writer.prototype._finish = function() { + var self = this; + if (self._finishing) ; else { + self._finishing = !0; + var todo = 0, errState = null, done = !1; + if (self._old) self._old.atime = new Date(0), self._old.mtime = new Date(0), setProps(self._old); else { + var stat = self.props.follow ? "stat" : "lstat"; + fs[stat](self._path, (function(er, current) { + if (er) return "ENOENT" !== er.code || "Link" !== self.type && "SymbolicLink" !== self.type || "win32" !== process.platform ? self.error(er) : (self.ready = !0, + self.emit("ready"), self.emit("end"), self.emit("close"), void (self.end = self._finish = function() {})); + setProps(self._old = current); + })); + } + } + function setProps(current) { + todo += 3, endChmod(self, self.props, current, self._path, next("chmod")), endChown(self, self.props, current, self._path, next("chown")), + endUtimes(self, self.props, current, self._path, next("utimes")); + } + function next(what) { + return function(er) { + if (!errState) { + if (er) return er.fstream_finish_call = what, self.error(errState = er); + if (!(--todo > 0 || done)) { + if (done = !0, !self._madeDir) return end(); + endMadeDir(self, self._path, end); + } + } + function end(er) { + if (er) return er.fstream_finish_call = "setupMadeDir", self.error(er); + self.emit("end"), self.emit("close"); + } + }; + } + }, Writer.prototype.pipe = function() { + this.error("Can't pipe from writable stream"); + }, Writer.prototype.add = function() { + this.error("Can't add to non-Directory type"); + }, Writer.prototype.write = function() { + return !0; + }; }, function(module, exports) { module.exports = require("tty"); +}, function(module, exports, __webpack_require__) { + "use strict"; + var deprecate = __webpack_require__(47)("body-parser"), parsers = Object.create(null); + function createParserGetter(name) { + return function() { + return (function(parserName) { + var parser = parsers[parserName]; + if (void 0 !== parser) return parser; + switch (parserName) { + case "json": + parser = __webpack_require__(550); + break; + + case "raw": + parser = __webpack_require__(558); + break; + + case "text": + parser = __webpack_require__(559); + break; + + case "urlencoded": + parser = __webpack_require__(560); + } + return parsers[parserName] = parser; + })(name); + }; + } + exports = module.exports = deprecate.function((function(options) { + var opts = {}; + if (options) for (var prop in options) "type" !== prop && (opts[prop] = options[prop]); + var _urlencoded = exports.urlencoded(opts), _json = exports.json(opts); + return function(req, res, next) { + _json(req, res, (function(err) { + if (err) return next(err); + _urlencoded(req, res, next); + })); + }; + }), "bodyParser: use individual json/urlencoded middlewares"), Object.defineProperty(exports, "json", { + configurable: !0, + enumerable: !0, + get: createParserGetter("json") + }), Object.defineProperty(exports, "raw", { + configurable: !0, + enumerable: !0, + get: createParserGetter("raw") + }), Object.defineProperty(exports, "text", { + configurable: !0, + enumerable: !0, + get: createParserGetter("text") + }), Object.defineProperty(exports, "urlencoded", { + configurable: !0, + enumerable: !0, + get: createParserGetter("urlencoded") + }); }, function(module, exports, __webpack_require__) { "use strict"; var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g, TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/, TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/, QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g, QUOTE_REGEXP = /([\\"])/g, TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; @@ -9151,7 +13319,7 @@ }); }, function(module, exports, __webpack_require__) { "use strict"; - var codes = __webpack_require__(450); + var codes = __webpack_require__(551); function status(code) { if ("number" == typeof code) { if (!status[code]) throw new Error("invalid status code: " + code); @@ -9192,7 +13360,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var createError = __webpack_require__(68), getBody = __webpack_require__(453), iconv = __webpack_require__(50), onFinished = __webpack_require__(66), zlib = __webpack_require__(44); + var createError = __webpack_require__(87), getBody = __webpack_require__(554), iconv = __webpack_require__(68), onFinished = __webpack_require__(85), zlib = __webpack_require__(45); module.exports = function(req, res, next, parse, debug, options) { var length, stream, opts = options; req._body = !0; @@ -9263,7 +13431,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(6)("router"), flatten = __webpack_require__(196), Layer = __webpack_require__(197), methods = __webpack_require__(70), mixin = __webpack_require__(52), parseUrl = __webpack_require__(37), Route = __webpack_require__(462), setPrototypeOf = __webpack_require__(463), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var debug = __webpack_require__(8)("router"), flatten = __webpack_require__(250), Layer = __webpack_require__(251), methods = __webpack_require__(61), mixin = __webpack_require__(60), parseUrl = __webpack_require__(46), Route = __webpack_require__(563), setPrototypeOf = __webpack_require__(564), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }; function Router(options) { @@ -9447,7 +13615,7 @@ return !0; }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(21).randomBytes; + module.exports = __webpack_require__(9).randomBytes; }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(list, compare, sorted) { @@ -9474,7 +13642,7 @@ })(list)); }; }, function(module, exports, __webpack_require__) { - var zlib = __webpack_require__(44), AVAILABLE_WINDOW_BITS = [ 8, 9, 10, 11, 12, 13, 14, 15 ]; + var zlib = __webpack_require__(45), AVAILABLE_WINDOW_BITS = [ 8, 9, 10, 11, 12, 13, 14, 15 ]; function PerMessageDeflate(options, isServer, maxPayload) { if (this instanceof PerMessageDeflate == 0) throw new TypeError("Classes can't be function-called"); this._options = options || {}, this._isServer = !!isServer, this._inflate = null, @@ -9597,7 +13765,7 @@ })); }, module.exports = PerMessageDeflate; }, function(module, exports, __webpack_require__) { - var ip = exports, {Buffer: Buffer} = __webpack_require__(8), os = __webpack_require__(17); + var ip = exports, {Buffer: Buffer} = __webpack_require__(10), os = __webpack_require__(23); ip.toBuffer = function(ip, buff, offset) { var result; if (offset = ~~offset, this.isV4Format(ip)) result = buff || new Buffer(offset + 4), @@ -9750,8 +13918,8 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLAttribute, XMLNode, isFunction, isObject, ref, hasProp = {}.hasOwnProperty; - ref = __webpack_require__(40), isObject = ref.isObject, isFunction = ref.isFunction, - XMLNode = __webpack_require__(28), XMLAttribute = __webpack_require__(228), module.exports = (function(superClass) { + ref = __webpack_require__(52), isObject = ref.isObject, isFunction = ref.isFunction, + XMLNode = __webpack_require__(36), XMLAttribute = __webpack_require__(280), module.exports = (function(superClass) { function XMLElement(parent, name, attributes) { if (XMLElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing element name"); this.name = this.stringify.eleName(name), this.attributes = {}, null != attributes && this.attribute(attributes), @@ -9796,7 +13964,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(28), module.exports = (function(superClass) { + XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLCData(parent, text) { if (XMLCData.__super__.constructor.call(this, parent), null == text) throw new Error("Missing CDATA text"); this.text = this.stringify.cdata(text); @@ -9817,7 +13985,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(28), module.exports = (function(superClass) { + XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLComment(parent, text) { if (XMLComment.__super__.constructor.call(this, parent), null == text) throw new Error("Missing comment text"); this.text = this.stringify.comment(text); @@ -9838,7 +14006,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, isObject, hasProp = {}.hasOwnProperty; - isObject = __webpack_require__(40).isObject, XMLNode = __webpack_require__(28), + isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLDeclaration(parent, version, encoding, standalone) { var ref; @@ -9861,9 +14029,9 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLNode, isObject, hasProp = {}.hasOwnProperty; - isObject = __webpack_require__(40).isObject, XMLNode = __webpack_require__(28), - XMLDTDAttList = __webpack_require__(95), XMLDTDEntity = __webpack_require__(96), - XMLDTDElement = __webpack_require__(97), XMLDTDNotation = __webpack_require__(98), + isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(36), + XMLDTDAttList = __webpack_require__(123), XMLDTDEntity = __webpack_require__(124), + XMLDTDElement = __webpack_require__(125), XMLDTDNotation = __webpack_require__(126), module.exports = (function(superClass) { function XMLDocType(parent, pubID, sysID) { var ref, ref1; @@ -9918,7 +14086,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(28), module.exports = (function(superClass) { + XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { if (XMLDTDAttList.__super__.constructor.call(this, parent), null == elementName) throw new Error("Missing DTD element name"); if (null == attributeName) throw new Error("Missing DTD attribute name"); @@ -9945,7 +14113,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, isObject, hasProp = {}.hasOwnProperty; - isObject = __webpack_require__(40).isObject, XMLNode = __webpack_require__(28), + isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLDTDEntity(parent, pe, name, value) { if (XMLDTDEntity.__super__.constructor.call(this, parent), null == name) throw new Error("Missing entity name"); @@ -9972,7 +14140,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(28), module.exports = (function(superClass) { + XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLDTDElement(parent, name, value) { if (XMLDTDElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD element name"); value || (value = "(#PCDATA)"), Array.isArray(value) && (value = "(" + value.join(",") + ")"), @@ -9992,7 +14160,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(28), module.exports = (function(superClass) { + XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLDTDNotation(parent, name, value) { if (XMLDTDNotation.__super__.constructor.call(this, parent), null == name) throw new Error("Missing notation name"); if (!value.pubID && !value.sysID) throw new Error("Public or system identifiers are required for an external entity"); @@ -10013,7 +14181,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(28), module.exports = (function(superClass) { + XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLRaw(parent, text) { if (XMLRaw.__super__.constructor.call(this, parent), null == text) throw new Error("Missing raw text"); this.value = this.stringify.raw(text); @@ -10034,7 +14202,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(28), module.exports = (function(superClass) { + XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLText(parent, text) { if (XMLText.__super__.constructor.call(this, parent), null == text) throw new Error("Missing element text"); this.value = this.stringify.eleText(text); @@ -10055,7 +14223,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(28), module.exports = (function(superClass) { + XMLNode = __webpack_require__(36), module.exports = (function(superClass) { function XMLProcessingInstruction(parent, target, value) { if (XMLProcessingInstruction.__super__.constructor.call(this, parent), null == target) throw new Error("Missing instruction target"); this.target = this.stringify.insTarget(target), value && (this.value = this.stringify.insValue(value)); @@ -10112,7 +14280,7 @@ }; }; }, function(module, exports, __webpack_require__) { - var path = __webpack_require__(3), fs = __webpack_require__(2), _0777 = parseInt("0777", 8); + var path = __webpack_require__(4), fs = __webpack_require__(2), _0777 = parseInt("0777", 8); function mkdirP(p, opts, f, made) { "function" == typeof opts ? (f = opts, opts = {}) : opts && "object" == typeof opts || (opts = { mode: opts @@ -10153,6 +14321,159 @@ } return made; }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var Buffer = __webpack_require__(25).Buffer, isEncoding = Buffer.isEncoding || function(encoding) { + switch ((encoding = "" + encoding) && encoding.toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + case "raw": + return !0; + + default: + return !1; + } + }; + function StringDecoder(encoding) { + var nb; + switch (this.encoding = (function(enc) { + var nenc = (function(enc) { + if (!enc) return "utf8"; + for (var retried; ;) switch (enc) { + case "utf8": + case "utf-8": + return "utf8"; + + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return "utf16le"; + + case "latin1": + case "binary": + return "latin1"; + + case "base64": + case "ascii": + case "hex": + return enc; + + default: + if (retried) return; + enc = ("" + enc).toLowerCase(), retried = !0; + } + })(enc); + if ("string" != typeof nenc && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error("Unknown encoding: " + enc); + return nenc || enc; + })(encoding), this.encoding) { + case "utf16le": + this.text = utf16Text, this.end = utf16End, nb = 4; + break; + + case "utf8": + this.fillLast = utf8FillLast, nb = 4; + break; + + case "base64": + this.text = base64Text, this.end = base64End, nb = 3; + break; + + default: + return this.write = simpleWrite, void (this.end = simpleEnd); + } + this.lastNeed = 0, this.lastTotal = 0, this.lastChar = Buffer.allocUnsafe(nb); + } + function utf8CheckByte(byte) { + return byte <= 127 ? 0 : byte >> 5 == 6 ? 2 : byte >> 4 == 14 ? 3 : byte >> 3 == 30 ? 4 : byte >> 6 == 2 ? -1 : -2; + } + function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed, r = (function(self, buf, p) { + if (128 != (192 & buf[0])) return self.lastNeed = 0, "�"; + if (self.lastNeed > 1 && buf.length > 1) { + if (128 != (192 & buf[1])) return self.lastNeed = 1, "�"; + if (self.lastNeed > 2 && buf.length > 2 && 128 != (192 & buf[2])) return self.lastNeed = 2, + "�"; + } + })(this, buf); + return void 0 !== r ? r : this.lastNeed <= buf.length ? (buf.copy(this.lastChar, p, 0, this.lastNeed), + this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (buf.copy(this.lastChar, p, 0, buf.length), + void (this.lastNeed -= buf.length)); + } + function utf16Text(buf, i) { + if ((buf.length - i) % 2 == 0) { + var r = buf.toString("utf16le", i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 55296 && c <= 56319) return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = buf[buf.length - 2], + this.lastChar[1] = buf[buf.length - 1], r.slice(0, -1); + } + return r; + } + return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = buf[buf.length - 1], + buf.toString("utf16le", i, buf.length - 1); + } + function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString("utf16le", 0, end); + } + return r; + } + function base64Text(buf, i) { + var n = (buf.length - i) % 3; + return 0 === n ? buf.toString("base64", i) : (this.lastNeed = 3 - n, this.lastTotal = 3, + 1 === n ? this.lastChar[0] = buf[buf.length - 1] : (this.lastChar[0] = buf[buf.length - 2], + this.lastChar[1] = buf[buf.length - 1]), buf.toString("base64", i, buf.length - n)); + } + function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + return this.lastNeed ? r + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : r; + } + function simpleWrite(buf) { + return buf.toString(this.encoding); + } + function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ""; + } + exports.StringDecoder = StringDecoder, StringDecoder.prototype.write = function(buf) { + if (0 === buf.length) return ""; + var r, i; + if (this.lastNeed) { + if (void 0 === (r = this.fillLast(buf))) return ""; + i = this.lastNeed, this.lastNeed = 0; + } else i = 0; + return i < buf.length ? r ? r + this.text(buf, i) : this.text(buf, i) : r || ""; + }, StringDecoder.prototype.end = function(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + return this.lastNeed ? r + "�" : r; + }, StringDecoder.prototype.text = function(buf, i) { + var total = (function(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + return nb >= 0 ? (nb > 0 && (self.lastNeed = nb - 1), nb) : --j < i || -2 === nb ? 0 : (nb = utf8CheckByte(buf[j])) >= 0 ? (nb > 0 && (self.lastNeed = nb - 2), + nb) : --j < i || -2 === nb ? 0 : (nb = utf8CheckByte(buf[j])) >= 0 ? (nb > 0 && (2 === nb ? nb = 0 : self.lastNeed = nb - 3), + nb) : 0; + })(this, buf, i); + if (!this.lastNeed) return buf.toString("utf8", i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + return buf.copy(this.lastChar, 0, end), buf.toString("utf8", i, end); + }, StringDecoder.prototype.fillLast = function(buf) { + if (this.lastNeed <= buf.length) return buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), + this.lastChar.toString(this.encoding, 0, this.lastTotal); + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length), this.lastNeed -= buf.length; + }; }, function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__, __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __createBinding; !(function(factory) { @@ -10479,7 +14800,7 @@ exports.E_ALREADY_LOCKED = new Error("mutex already locked"), exports.E_CANCELED = new Error("request for lock canceled"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Segment(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Segment, start, length); } @@ -10490,7 +14811,7 @@ _proto.oneChild(Segment.prototype, "Tags"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Segment = __webpack_require__(107), schema = __webpack_require__(10); + var util = __webpack_require__(0), Segment = __webpack_require__(136), schema = __webpack_require__(13); function Segment1(doc, elementId, start, length) { Segment.call(this, doc, elementId, start, length); } @@ -10537,7 +14858,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var crc32 = __webpack_require__(56).crc32, fs = __webpack_require__(2), Mime = __webpack_require__(74), Path = __webpack_require__(3), util = __webpack_require__(0), Segment1 = __webpack_require__(108), schema = __webpack_require__(10), tools = __webpack_require__(60); + var crc32 = __webpack_require__(71).crc32, fs = __webpack_require__(2), Mime = __webpack_require__(63), Path = __webpack_require__(4), util = __webpack_require__(0), Segment1 = __webpack_require__(137), schema = __webpack_require__(13), tools = __webpack_require__(75); function Segment2(doc, tagId, start, length) { Segment1.call(this, doc, tagId, start, length); } @@ -10653,7 +14974,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _AdtsStream, Stream = __webpack_require__(29), ONE_SECOND_IN_TS = __webpack_require__(42).ONE_SECOND_IN_TS, ADTS_SAMPLING_FREQUENCIES = [ 96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350 ]; + var _AdtsStream, Stream = __webpack_require__(37), ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS, ADTS_SAMPLING_FREQUENCIES = [ 96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350 ]; (_AdtsStream = function(handlePartialSegments) { var buffer, frameNum = 0; _AdtsStream.prototype.init.call(this), this.skipWarn_ = function(start, end) { @@ -10882,7 +15203,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var ONE_SECOND_IN_TS = __webpack_require__(42).ONE_SECOND_IN_TS; + var ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS; module.exports = { clearDtsInfo: function(track) { delete track.minSegmentDts, delete track.maxSegmentDts, delete track.minSegmentPts, @@ -10906,7 +15227,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _TransportPacketStream, _TransportParseStream, _ElementaryStream, Stream = __webpack_require__(29), CaptionStream = __webpack_require__(366), StreamTypes = __webpack_require__(115), TimestampRolloverStream = __webpack_require__(368).TimestampRolloverStream; + var _TransportPacketStream, _TransportParseStream, _ElementaryStream, Stream = __webpack_require__(37), CaptionStream = __webpack_require__(416), StreamTypes = __webpack_require__(144), TimestampRolloverStream = __webpack_require__(418).TimestampRolloverStream; (_TransportPacketStream = function() { var buffer = new Uint8Array(188), bytesInBuffer = 0; _TransportPacketStream.prototype.init.call(this), this.push = function(bytes) { @@ -11074,7 +15395,7 @@ CaptionStream: CaptionStream.CaptionStream, Cea608Stream: CaptionStream.Cea608Stream, Cea708Stream: CaptionStream.Cea708Stream, - MetadataStream: __webpack_require__(732) + MetadataStream: __webpack_require__(830) }; for (var type in StreamTypes) StreamTypes.hasOwnProperty(type) && (m2ts[type] = StreamTypes[type]); module.exports = m2ts; @@ -11140,159 +15461,6 @@ return null; } }; -}, function(module, exports, __webpack_require__) { - "use strict"; - var Buffer = __webpack_require__(26).Buffer, isEncoding = Buffer.isEncoding || function(encoding) { - switch ((encoding = "" + encoding) && encoding.toLowerCase()) { - case "hex": - case "utf8": - case "utf-8": - case "ascii": - case "binary": - case "base64": - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - case "raw": - return !0; - - default: - return !1; - } - }; - function StringDecoder(encoding) { - var nb; - switch (this.encoding = (function(enc) { - var nenc = (function(enc) { - if (!enc) return "utf8"; - for (var retried; ;) switch (enc) { - case "utf8": - case "utf-8": - return "utf8"; - - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - return "utf16le"; - - case "latin1": - case "binary": - return "latin1"; - - case "base64": - case "ascii": - case "hex": - return enc; - - default: - if (retried) return; - enc = ("" + enc).toLowerCase(), retried = !0; - } - })(enc); - if ("string" != typeof nenc && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error("Unknown encoding: " + enc); - return nenc || enc; - })(encoding), this.encoding) { - case "utf16le": - this.text = utf16Text, this.end = utf16End, nb = 4; - break; - - case "utf8": - this.fillLast = utf8FillLast, nb = 4; - break; - - case "base64": - this.text = base64Text, this.end = base64End, nb = 3; - break; - - default: - return this.write = simpleWrite, void (this.end = simpleEnd); - } - this.lastNeed = 0, this.lastTotal = 0, this.lastChar = Buffer.allocUnsafe(nb); - } - function utf8CheckByte(byte) { - return byte <= 127 ? 0 : byte >> 5 == 6 ? 2 : byte >> 4 == 14 ? 3 : byte >> 3 == 30 ? 4 : byte >> 6 == 2 ? -1 : -2; - } - function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed, r = (function(self, buf, p) { - if (128 != (192 & buf[0])) return self.lastNeed = 0, "�"; - if (self.lastNeed > 1 && buf.length > 1) { - if (128 != (192 & buf[1])) return self.lastNeed = 1, "�"; - if (self.lastNeed > 2 && buf.length > 2 && 128 != (192 & buf[2])) return self.lastNeed = 2, - "�"; - } - })(this, buf); - return void 0 !== r ? r : this.lastNeed <= buf.length ? (buf.copy(this.lastChar, p, 0, this.lastNeed), - this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (buf.copy(this.lastChar, p, 0, buf.length), - void (this.lastNeed -= buf.length)); - } - function utf16Text(buf, i) { - if ((buf.length - i) % 2 == 0) { - var r = buf.toString("utf16le", i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 55296 && c <= 56319) return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = buf[buf.length - 2], - this.lastChar[1] = buf[buf.length - 1], r.slice(0, -1); - } - return r; - } - return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = buf[buf.length - 1], - buf.toString("utf16le", i, buf.length - 1); - } - function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ""; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString("utf16le", 0, end); - } - return r; - } - function base64Text(buf, i) { - var n = (buf.length - i) % 3; - return 0 === n ? buf.toString("base64", i) : (this.lastNeed = 3 - n, this.lastTotal = 3, - 1 === n ? this.lastChar[0] = buf[buf.length - 1] : (this.lastChar[0] = buf[buf.length - 2], - this.lastChar[1] = buf[buf.length - 1]), buf.toString("base64", i, buf.length - n)); - } - function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ""; - return this.lastNeed ? r + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : r; - } - function simpleWrite(buf) { - return buf.toString(this.encoding); - } - function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ""; - } - exports.StringDecoder = StringDecoder, StringDecoder.prototype.write = function(buf) { - if (0 === buf.length) return ""; - var r, i; - if (this.lastNeed) { - if (void 0 === (r = this.fillLast(buf))) return ""; - i = this.lastNeed, this.lastNeed = 0; - } else i = 0; - return i < buf.length ? r ? r + this.text(buf, i) : this.text(buf, i) : r || ""; - }, StringDecoder.prototype.end = function(buf) { - var r = buf && buf.length ? this.write(buf) : ""; - return this.lastNeed ? r + "�" : r; - }, StringDecoder.prototype.text = function(buf, i) { - var total = (function(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - return nb >= 0 ? (nb > 0 && (self.lastNeed = nb - 1), nb) : --j < i || -2 === nb ? 0 : (nb = utf8CheckByte(buf[j])) >= 0 ? (nb > 0 && (self.lastNeed = nb - 2), - nb) : --j < i || -2 === nb ? 0 : (nb = utf8CheckByte(buf[j])) >= 0 ? (nb > 0 && (2 === nb ? nb = 0 : self.lastNeed = nb - 3), - nb) : 0; - })(this, buf, i); - if (!this.lastNeed) return buf.toString("utf8", i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - return buf.copy(this.lastChar, 0, end), buf.toString("utf8", i, end); - }, StringDecoder.prototype.fillLast = function(buf) { - if (this.lastNeed <= buf.length) return buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), - this.lastChar.toString(this.encoding, 0, this.lastTotal); - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length), this.lastNeed -= buf.length; - }; }, function(module, exports, __webpack_require__) { "use strict"; var __importDefault = this && this.__importDefault || function(mod) { @@ -11300,7 +15468,7 @@ default: mod }; }; - const http_1 = __importDefault(__webpack_require__(12)), https_1 = __importDefault(__webpack_require__(19)), url_1 = __webpack_require__(7), stream_1 = __webpack_require__(5), httpLibs = { + const http_1 = __importDefault(__webpack_require__(11)), https_1 = __importDefault(__webpack_require__(21)), url_1 = __webpack_require__(6), stream_1 = __webpack_require__(3), httpLibs = { "http:": http_1.default, "https:": https_1.default }, redirectStatusCodes = new Set([ 301, 302, 303, 307, 308 ]), retryStatusCodes = new Set([ 429, 503 ]), requestEvents = [ "connect", "continue", "information", "socket", "timeout", "upgrade" ], responseEvents = [ "aborted" ]; @@ -11447,6 +15615,55 @@ max: 1e4 } }, module.exports = Miniget; +}, function(module, exports, __webpack_require__) { + "use strict"; + var hasOwn = Object.prototype.hasOwnProperty, toStr = Object.prototype.toString, defineProperty = Object.defineProperty, gOPD = Object.getOwnPropertyDescriptor, isArray = function(arr) { + return "function" == typeof Array.isArray ? Array.isArray(arr) : "[object Array]" === toStr.call(arr); + }, isPlainObject = function(obj) { + if (!obj || "[object Object]" !== toStr.call(obj)) return !1; + var key, hasOwnConstructor = hasOwn.call(obj, "constructor"), hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, "isPrototypeOf"); + if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) return !1; + for (key in obj) ; + return void 0 === key || hasOwn.call(obj, key); + }, setProperty = function(target, options) { + defineProperty && "__proto__" === options.name ? defineProperty(target, options.name, { + enumerable: !0, + configurable: !0, + value: options.newValue, + writable: !0 + }) : target[options.name] = options.newValue; + }, getProperty = function(obj, name) { + if ("__proto__" === name) { + if (!hasOwn.call(obj, name)) return; + if (gOPD) return gOPD(obj, name).value; + } + return obj[name]; + }; + module.exports = function extend() { + var options, name, src, copy, copyIsArray, clone, target = arguments[0], i = 1, length = arguments.length, deep = !1; + for ("boolean" == typeof target && (deep = target, target = arguments[1] || {}, + i = 2), (null == target || "object" != typeof target && "function" != typeof target) && (target = {}); i < length; ++i) if (null != (options = arguments[i])) for (name in options) src = getProperty(target, name), + target !== (copy = getProperty(options, name)) && (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy))) ? (copyIsArray ? (copyIsArray = !1, + clone = src && isArray(src) ? src : []) : clone = src && isPlainObject(src) ? src : {}, + setProperty(target, { + name: name, + newValue: extend(deep, clone, copy) + })) : void 0 !== copy && setProperty(target, { + name: name, + newValue: copy + })); + return target; + }; +}, function(module, exports, __webpack_require__) { + var rng = __webpack_require__(940), bytesToUuid = __webpack_require__(941); + module.exports = function(options, buf, offset) { + var i = buf && offset || 0; + "string" == typeof options && (buf = "binary" === options ? new Array(16) : null, + options = null); + var rnds = (options = options || {}).random || (options.rng || rng)(); + if (rnds[6] = 15 & rnds[6] | 64, rnds[8] = 63 & rnds[8] | 128, buf) for (var ii = 0; ii < 16; ++ii) buf[i + ii] = rnds[ii]; + return buf || bytesToUuid(rnds); + }; }, function(module, exports, __webpack_require__) { "use strict"; function flattenWithDepth(array, result, depth) { @@ -11467,7 +15684,350 @@ return null == depth ? flattenForever(array, []) : flattenWithDepth(array, [], depth); }; }, function(module, exports, __webpack_require__) { - var url = __webpack_require__(7), os = __webpack_require__(17), events = __webpack_require__(4), path = __webpack_require__(3), util = __webpack_require__(0), fs = __webpack_require__(2), fetch = __webpack_require__(24), connect = __webpack_require__(439), rangeParser = __webpack_require__(124), bodyParser = __webpack_require__(192), Router = __webpack_require__(83), mime = __webpack_require__(464), pump = __webpack_require__(127), PeerSearch = __webpack_require__(466), parseTorrentFile = __webpack_require__(217), EngineFS = new events.EventEmitter, Counter = __webpack_require__(520), GuessFileIdx = __webpack_require__(521), spoofedPeerId = __webpack_require__(522), safeStatelessRegex = __webpack_require__(523), IH_REGEX = new RegExp("([0-9A-Fa-f]){40}", "g"); + var assert = __webpack_require__(15), sshpk = __webpack_require__(230), util = __webpack_require__(0), HASH_ALGOS = { + sha1: !0, + sha256: !0, + sha512: !0 + }, PK_ALGOS = { + rsa: !0, + dsa: !0, + ecdsa: !0 + }; + function HttpSignatureError(message, caller) { + Error.captureStackTrace && Error.captureStackTrace(this, caller || HttpSignatureError), + this.message = message, this.name = caller.name; + } + function InvalidAlgorithmError(message) { + HttpSignatureError.call(this, message, InvalidAlgorithmError); + } + util.inherits(HttpSignatureError, Error), util.inherits(InvalidAlgorithmError, HttpSignatureError), + module.exports = { + HASH_ALGOS: HASH_ALGOS, + PK_ALGOS: PK_ALGOS, + HttpSignatureError: HttpSignatureError, + InvalidAlgorithmError: InvalidAlgorithmError, + validateAlgorithm: function(algorithm) { + var alg = algorithm.toLowerCase().split("-"); + if (2 !== alg.length) throw new InvalidAlgorithmError(alg[0].toUpperCase() + " is not a valid algorithm"); + if ("hmac" !== alg[0] && !PK_ALGOS[alg[0]]) throw new InvalidAlgorithmError(alg[0].toUpperCase() + " type keys are not supported"); + if (!HASH_ALGOS[alg[1]]) throw new InvalidAlgorithmError(alg[1].toUpperCase() + " is not a supported hash algorithm"); + return alg; + }, + sshKeyToPEM: function(key) { + return assert.string(key, "ssh_key"), sshpk.parseKey(key, "ssh").toString("pem"); + }, + fingerprint: function(key) { + return assert.string(key, "ssh_key"), sshpk.parseKey(key, "ssh").fingerprint("md5").toString("hex"); + }, + pemToRsaSSHKey: function(pem, comment) { + assert.equal("string", typeof pem, "typeof pem"); + var k = sshpk.parseKey(pem, "pem"); + return k.comment = comment, k.toString("ssh"); + } + }; +}, function(module, exports, __webpack_require__) { + var BigInteger = __webpack_require__(98).BigInteger, Barrett = BigInteger.prototype.Barrett; + function ECFieldElementFp(q, x) { + this.x = x, this.q = q; + } + function ECPointFp(curve, x, y, z) { + this.curve = curve, this.x = x, this.y = y, this.z = null == z ? BigInteger.ONE : z, + this.zinv = null; + } + function ECCurveFp(q, a, b) { + this.q = q, this.a = this.fromBigInteger(a), this.b = this.fromBigInteger(b), this.infinity = new ECPointFp(this, null, null), + this.reducer = new Barrett(this.q); + } + ECFieldElementFp.prototype.equals = function(other) { + return other == this || this.q.equals(other.q) && this.x.equals(other.x); + }, ECFieldElementFp.prototype.toBigInteger = function() { + return this.x; + }, ECFieldElementFp.prototype.negate = function() { + return new ECFieldElementFp(this.q, this.x.negate().mod(this.q)); + }, ECFieldElementFp.prototype.add = function(b) { + return new ECFieldElementFp(this.q, this.x.add(b.toBigInteger()).mod(this.q)); + }, ECFieldElementFp.prototype.subtract = function(b) { + return new ECFieldElementFp(this.q, this.x.subtract(b.toBigInteger()).mod(this.q)); + }, ECFieldElementFp.prototype.multiply = function(b) { + return new ECFieldElementFp(this.q, this.x.multiply(b.toBigInteger()).mod(this.q)); + }, ECFieldElementFp.prototype.square = function() { + return new ECFieldElementFp(this.q, this.x.square().mod(this.q)); + }, ECFieldElementFp.prototype.divide = function(b) { + return new ECFieldElementFp(this.q, this.x.multiply(b.toBigInteger().modInverse(this.q)).mod(this.q)); + }, ECPointFp.prototype.getX = function() { + null == this.zinv && (this.zinv = this.z.modInverse(this.curve.q)); + var r = this.x.toBigInteger().multiply(this.zinv); + return this.curve.reduce(r), this.curve.fromBigInteger(r); + }, ECPointFp.prototype.getY = function() { + null == this.zinv && (this.zinv = this.z.modInverse(this.curve.q)); + var r = this.y.toBigInteger().multiply(this.zinv); + return this.curve.reduce(r), this.curve.fromBigInteger(r); + }, ECPointFp.prototype.equals = function(other) { + return other == this || (this.isInfinity() ? other.isInfinity() : other.isInfinity() ? this.isInfinity() : !!other.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(other.z)).mod(this.curve.q).equals(BigInteger.ZERO) && other.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(other.z)).mod(this.curve.q).equals(BigInteger.ZERO)); + }, ECPointFp.prototype.isInfinity = function() { + return null == this.x && null == this.y || this.z.equals(BigInteger.ZERO) && !this.y.toBigInteger().equals(BigInteger.ZERO); + }, ECPointFp.prototype.negate = function() { + return new ECPointFp(this.curve, this.x, this.y.negate(), this.z); + }, ECPointFp.prototype.add = function(b) { + if (this.isInfinity()) return b; + if (b.isInfinity()) return this; + var u = b.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(b.z)).mod(this.curve.q), v = b.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(b.z)).mod(this.curve.q); + if (BigInteger.ZERO.equals(v)) return BigInteger.ZERO.equals(u) ? this.twice() : this.curve.getInfinity(); + var THREE = new BigInteger("3"), x1 = this.x.toBigInteger(), y1 = this.y.toBigInteger(), v2 = (b.x.toBigInteger(), + b.y.toBigInteger(), v.square()), v3 = v2.multiply(v), x1v2 = x1.multiply(v2), zu2 = u.square().multiply(this.z), x3 = zu2.subtract(x1v2.shiftLeft(1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.q), y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.q), z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.q); + return new ECPointFp(this.curve, this.curve.fromBigInteger(x3), this.curve.fromBigInteger(y3), z3); + }, ECPointFp.prototype.twice = function() { + if (this.isInfinity()) return this; + if (0 == this.y.toBigInteger().signum()) return this.curve.getInfinity(); + var THREE = new BigInteger("3"), x1 = this.x.toBigInteger(), y1 = this.y.toBigInteger(), y1z1 = y1.multiply(this.z), y1sqz1 = y1z1.multiply(y1).mod(this.curve.q), a = this.curve.a.toBigInteger(), w = x1.square().multiply(THREE); + BigInteger.ZERO.equals(a) || (w = w.add(this.z.square().multiply(a))); + var x3 = (w = w.mod(this.curve.q)).square().subtract(x1.shiftLeft(3).multiply(y1sqz1)).shiftLeft(1).multiply(y1z1).mod(this.curve.q), y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(1)).shiftLeft(2).multiply(y1sqz1).subtract(w.square().multiply(w)).mod(this.curve.q), z3 = y1z1.square().multiply(y1z1).shiftLeft(3).mod(this.curve.q); + return new ECPointFp(this.curve, this.curve.fromBigInteger(x3), this.curve.fromBigInteger(y3), z3); + }, ECPointFp.prototype.multiply = function(k) { + if (this.isInfinity()) return this; + if (0 == k.signum()) return this.curve.getInfinity(); + var i, e = k, h = e.multiply(new BigInteger("3")), neg = this.negate(), R = this; + for (i = h.bitLength() - 2; i > 0; --i) { + R = R.twice(); + var hBit = h.testBit(i); + hBit != e.testBit(i) && (R = R.add(hBit ? this : neg)); + } + return R; + }, ECPointFp.prototype.multiplyTwo = function(j, x, k) { + var i; + i = j.bitLength() > k.bitLength() ? j.bitLength() - 1 : k.bitLength() - 1; + for (var R = this.curve.getInfinity(), both = this.add(x); i >= 0; ) R = R.twice(), + j.testBit(i) ? R = k.testBit(i) ? R.add(both) : R.add(this) : k.testBit(i) && (R = R.add(x)), + --i; + return R; + }, ECCurveFp.prototype.getQ = function() { + return this.q; + }, ECCurveFp.prototype.getA = function() { + return this.a; + }, ECCurveFp.prototype.getB = function() { + return this.b; + }, ECCurveFp.prototype.equals = function(other) { + return other == this || this.q.equals(other.q) && this.a.equals(other.a) && this.b.equals(other.b); + }, ECCurveFp.prototype.getInfinity = function() { + return this.infinity; + }, ECCurveFp.prototype.fromBigInteger = function(x) { + return new ECFieldElementFp(this.q, x); + }, ECCurveFp.prototype.reduce = function(x) { + this.reducer.reduce(x); + }, ECCurveFp.prototype.encodePointHex = function(p) { + if (p.isInfinity()) return "00"; + var xHex = p.getX().toBigInteger().toString(16), yHex = p.getY().toBigInteger().toString(16), oLen = this.getQ().toString(16).length; + for (oLen % 2 != 0 && oLen++; xHex.length < oLen; ) xHex = "0" + xHex; + for (;yHex.length < oLen; ) yHex = "0" + yHex; + return "04" + xHex + yHex; + }, ECCurveFp.prototype.decodePointHex = function(s) { + var yIsEven; + switch (parseInt(s.substr(0, 2), 16)) { + case 0: + return this.infinity; + + case 2: + yIsEven = !1; + + case 3: + null == yIsEven && (yIsEven = !0); + var len = s.length - 2, xHex = s.substr(2, len), x = this.fromBigInteger(new BigInteger(xHex, 16)), beta = x.multiply(x.square().add(this.getA())).add(this.getB()).sqrt(); + if (null == beta) throw "Invalid point compression"; + var betaValue = beta.toBigInteger(); + return betaValue.testBit(0) != yIsEven && (beta = this.fromBigInteger(this.getQ().subtract(betaValue))), + new ECPointFp(this, x, beta); + + case 4: + case 6: + case 7: + len = (s.length - 2) / 2, xHex = s.substr(2, len); + var yHex = s.substr(len + 2, len); + return new ECPointFp(this, this.fromBigInteger(new BigInteger(xHex, 16)), this.fromBigInteger(new BigInteger(yHex, 16))); + + default: + return null; + } + }, ECCurveFp.prototype.encodeCompressedPointHex = function(p) { + if (p.isInfinity()) return "00"; + var xHex = p.getX().toBigInteger().toString(16), oLen = this.getQ().toString(16).length; + for (oLen % 2 != 0 && oLen++; xHex.length < oLen; ) xHex = "0" + xHex; + return (p.getY().toBigInteger().isEven() ? "02" : "03") + xHex; + }, ECFieldElementFp.prototype.getR = function() { + if (null != this.r) return this.r; + this.r = null; + var bitLength = this.q.bitLength(); + return bitLength > 128 && -1 == this.q.shiftRight(bitLength - 64).intValue() && (this.r = BigInteger.ONE.shiftLeft(bitLength).subtract(this.q)), + this.r; + }, ECFieldElementFp.prototype.modMult = function(x1, x2) { + return this.modReduce(x1.multiply(x2)); + }, ECFieldElementFp.prototype.modReduce = function(x) { + if (null != this.getR()) { + for (var qLen = q.bitLength(); x.bitLength() > qLen + 1; ) { + var u = x.shiftRight(qLen), v = x.subtract(u.shiftLeft(qLen)); + this.getR().equals(BigInteger.ONE) || (u = u.multiply(this.getR())), x = u.add(v); + } + for (;x.compareTo(q) >= 0; ) x = x.subtract(q); + } else x = x.mod(q); + return x; + }, ECFieldElementFp.prototype.sqrt = function() { + if (!this.q.testBit(0)) throw "unsupported"; + if (this.q.testBit(1)) { + var z = new ECFieldElementFp(this.q, this.x.modPow(this.q.shiftRight(2).add(BigInteger.ONE), this.q)); + return z.square().equals(this) ? z : null; + } + var qMinusOne = this.q.subtract(BigInteger.ONE), legendreExponent = qMinusOne.shiftRight(1); + if (!this.x.modPow(legendreExponent, this.q).equals(BigInteger.ONE)) return null; + var U, V, k = qMinusOne.shiftRight(2).shiftLeft(1).add(BigInteger.ONE), Q = this.x, fourQ = modDouble(modDouble(Q)); + do { + var P; + do { + P = new BigInteger(this.q.bitLength(), new SecureRandom); + } while (P.compareTo(this.q) >= 0 || !P.multiply(P).subtract(fourQ).modPow(legendreExponent, this.q).equals(qMinusOne)); + var result = this.lucasSequence(P, Q, k); + if (U = result[0], V = result[1], this.modMult(V, V).equals(fourQ)) return V.testBit(0) && (V = V.add(q)), + V = V.shiftRight(1), new ECFieldElementFp(q, V); + } while (U.equals(BigInteger.ONE) || U.equals(qMinusOne)); + return null; + }, ECFieldElementFp.prototype.lucasSequence = function(P, Q, k) { + for (var n = k.bitLength(), s = k.getLowestSetBit(), Uh = BigInteger.ONE, Vl = BigInteger.TWO, Vh = P, Ql = BigInteger.ONE, Qh = BigInteger.ONE, j = n - 1; j >= s + 1; --j) Ql = this.modMult(Ql, Qh), + k.testBit(j) ? (Qh = this.modMult(Ql, Q), Uh = this.modMult(Uh, Vh), Vl = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql))), + Vh = this.modReduce(Vh.multiply(Vh).subtract(Qh.shiftLeft(1)))) : (Qh = Ql, Uh = this.modReduce(Uh.multiply(Vl).subtract(Ql)), + Vh = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql))), Vl = this.modReduce(Vl.multiply(Vl).subtract(Ql.shiftLeft(1)))); + for (Ql = this.modMult(Ql, Qh), Qh = this.modMult(Ql, Q), Uh = this.modReduce(Uh.multiply(Vl).subtract(Ql)), + Vl = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql))), Ql = this.modMult(Ql, Qh), + j = 1; j <= s; ++j) Uh = this.modMult(Uh, Vl), Vl = this.modReduce(Vl.multiply(Vl).subtract(Ql.shiftLeft(1))), + Ql = this.modMult(Ql, Ql); + return [ Uh, Vl ]; + }, exports = { + ECCurveFp: ECCurveFp, + ECPointFp: ECPointFp, + ECFieldElementFp: ECFieldElementFp + }, module.exports = exports; +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + return pem.read(buf, options); + }, + readSSHPrivate: function(type, buf, options) { + var magic = (buf = new SSHBuffer({ + buffer: buf + })).readCString(); + assert.strictEqual(magic, "openssh-key-v1", "bad magic string"); + var cipher = buf.readString(), kdf = buf.readString(), kdfOpts = buf.readBuffer(); + if (1 !== buf.readInt()) throw new Error("OpenSSH-format key file contains multiple keys: this is unsupported."); + var pubKey = buf.readBuffer(); + if ("public" === type) return assert.ok(buf.atEnd(), "excess bytes left after key"), + rfc4253.read(pubKey); + var privKeyBlob = buf.readBuffer(); + assert.ok(buf.atEnd(), "excess bytes left after key"); + var kdfOptsBuf = new SSHBuffer({ + buffer: kdfOpts + }); + switch (kdf) { + case "none": + if ("none" !== cipher) throw new Error('OpenSSH-format key uses KDF "none" but specifies a cipher other than "none"'); + break; + + case "bcrypt": + var salt = kdfOptsBuf.readBuffer(), rounds = kdfOptsBuf.readInt(), cinf = utils.opensshCipherInfo(cipher); + if (void 0 === bcrypt && (bcrypt = __webpack_require__(481)), "string" == typeof options.passphrase && (options.passphrase = Buffer.from(options.passphrase, "utf-8")), + !Buffer.isBuffer(options.passphrase)) throw new errors.KeyEncryptedError(options.filename, "OpenSSH"); + var pass = new Uint8Array(options.passphrase), salti = new Uint8Array(salt), out = new Uint8Array(cinf.keySize + cinf.blockSize); + if (0 !== bcrypt.pbkdf(pass, pass.length, salti, salti.length, out, out.length, rounds)) throw new Error("bcrypt_pbkdf function returned failure, parameters invalid"); + var ckey = (out = Buffer.from(out)).slice(0, cinf.keySize), iv = out.slice(cinf.keySize, cinf.keySize + cinf.blockSize), cipherStream = crypto.createDecipheriv(cinf.opensslName, ckey, iv); + cipherStream.setAutoPadding(!1); + var chunk, chunks = []; + for (cipherStream.once("error", (function(e) { + if (-1 !== e.toString().indexOf("bad decrypt")) throw new Error("Incorrect passphrase supplied, could not decrypt key"); + throw e; + })), cipherStream.write(privKeyBlob), cipherStream.end(); null !== (chunk = cipherStream.read()); ) chunks.push(chunk); + privKeyBlob = Buffer.concat(chunks); + break; + + default: + throw new Error('OpenSSH-format key uses unknown KDF "' + kdf + '"'); + } + if ((buf = new SSHBuffer({ + buffer: privKeyBlob + })).readInt() !== buf.readInt()) throw new Error("Incorrect passphrase supplied, could not decrypt key"); + var ret = {}, key = rfc4253.readInternal(ret, "private", buf.remainder()); + buf.skip(ret.consumed); + var comment = buf.readString(); + return key.comment = comment, key; + }, + write: function(key, options) { + var pubKey; + pubKey = PrivateKey.isPrivateKey(key) ? key.toPublic() : key; + var passphrase, privBuf, cipher = "none", kdf = "none", kdfopts = Buffer.alloc(0), cinf = { + blockSize: 8 + }; + if (void 0 !== options && ("string" == typeof (passphrase = options.passphrase) && (passphrase = Buffer.from(passphrase, "utf-8")), + void 0 !== passphrase && (assert.buffer(passphrase, "options.passphrase"), assert.optionalString(options.cipher, "options.cipher"), + void 0 === (cipher = options.cipher) && (cipher = "aes128-ctr"), cinf = utils.opensshCipherInfo(cipher), + kdf = "bcrypt")), PrivateKey.isPrivateKey(key)) { + privBuf = new SSHBuffer({}); + var checkInt = crypto.randomBytes(4).readUInt32BE(0); + privBuf.writeInt(checkInt), privBuf.writeInt(checkInt), privBuf.write(key.toBuffer("rfc4253")), + privBuf.writeString(key.comment || ""); + for (var n = 1; privBuf._offset % cinf.blockSize != 0; ) privBuf.writeChar(n++); + privBuf = privBuf.toBuffer(); + } + switch (kdf) { + case "none": + break; + + case "bcrypt": + var salt = crypto.randomBytes(16), kdfssh = new SSHBuffer({}); + kdfssh.writeBuffer(salt), kdfssh.writeInt(16), kdfopts = kdfssh.toBuffer(), void 0 === bcrypt && (bcrypt = __webpack_require__(481)); + var pass = new Uint8Array(passphrase), salti = new Uint8Array(salt), out = new Uint8Array(cinf.keySize + cinf.blockSize); + if (0 !== bcrypt.pbkdf(pass, pass.length, salti, salti.length, out, out.length, 16)) throw new Error("bcrypt_pbkdf function returned failure, parameters invalid"); + var ckey = (out = Buffer.from(out)).slice(0, cinf.keySize), iv = out.slice(cinf.keySize, cinf.keySize + cinf.blockSize), cipherStream = crypto.createCipheriv(cinf.opensslName, ckey, iv); + cipherStream.setAutoPadding(!1); + var chunk, chunks = []; + for (cipherStream.once("error", (function(e) { + throw e; + })), cipherStream.write(privBuf), cipherStream.end(); null !== (chunk = cipherStream.read()); ) chunks.push(chunk); + privBuf = Buffer.concat(chunks); + break; + + default: + throw new Error("Unsupported kdf " + kdf); + } + var header, buf = new SSHBuffer({}); + buf.writeCString("openssh-key-v1"), buf.writeString(cipher), buf.writeString(kdf), + buf.writeBuffer(kdfopts), buf.writeInt(1), buf.writeBuffer(pubKey.toBuffer("rfc4253")), + privBuf && buf.writeBuffer(privBuf), buf = buf.toBuffer(), header = PrivateKey.isPrivateKey(key) ? "OPENSSH PRIVATE KEY" : "OPENSSH PUBLIC KEY"; + var tmp = buf.toString("base64"), len = tmp.length + tmp.length / 70 + 18 + 16 + 2 * header.length + 10, o = 0; + o += (buf = Buffer.alloc(len)).write("-----BEGIN " + header + "-----\n", o); + for (var i = 0; i < tmp.length; ) { + var limit = i + 70; + limit > tmp.length && (limit = tmp.length), o += buf.write(tmp.slice(i, limit), o), + buf[o++] = 10, i = limit; + } + return o += buf.write("-----END " + header + "-----\n", o), buf.slice(0, o); + } + }; + var bcrypt, assert = __webpack_require__(15), Buffer = (__webpack_require__(49), + __webpack_require__(14).Buffer), utils = (__webpack_require__(30), __webpack_require__(27)), crypto = __webpack_require__(9), PrivateKey = (__webpack_require__(26), + __webpack_require__(28)), pem = __webpack_require__(56), rfc4253 = __webpack_require__(57), SSHBuffer = __webpack_require__(100), errors = __webpack_require__(44); +}, function(module, exports, __webpack_require__) { + var Buffer = __webpack_require__(10).Buffer; + void 0 === Buffer.from && (Buffer.from = function(a, b, c) { + return new Buffer(a, b, c); + }, Buffer.alloc = Buffer.from), module.exports = Buffer; +}, function(module, exports) { + module.exports = function(st) { + var type, types = [ "Directory", "File", "SymbolicLink", "Link", "BlockDevice", "CharacterDevice", "FIFO", "Socket" ]; + if (st.type && -1 !== types.indexOf(st.type)) return st[st.type] = !0, st.type; + for (var i = 0, l = types.length; i < l; i++) { + var is = st[type = types[i]] || st["is" + type]; + if ("function" == typeof is && (is = is.call(st)), is) return st[type] = !0, st.type = type, + type; + } + return null; + }; +}, function(module, exports, __webpack_require__) { + var url = __webpack_require__(6), os = __webpack_require__(23), events = __webpack_require__(5), path = __webpack_require__(4), util = __webpack_require__(0), fs = __webpack_require__(2), fetch = __webpack_require__(33), connect = __webpack_require__(540), rangeParser = __webpack_require__(159), bodyParser = __webpack_require__(106), Router = __webpack_require__(111), mime = __webpack_require__(565), pump = __webpack_require__(162), PeerSearch = __webpack_require__(567), parseTorrentFile = __webpack_require__(269), EngineFS = new events.EventEmitter, Counter = __webpack_require__(621), GuessFileIdx = __webpack_require__(622), spoofedPeerId = __webpack_require__(623), safeStatelessRegex = __webpack_require__(169), IH_REGEX = new RegExp("([0-9A-Fa-f]){40}", "g"); EngineFS.STREAM_TIMEOUT = 3e4, EngineFS.ENGINE_TIMEOUT = 6e4; var engines = {}; function createEngine(infoHash, options, cb) { @@ -11826,7 +16386,7 @@ }), (function() { return EngineFS.STREAM_TIMEOUT; })), EngineFS.http = function(port) { - var server = __webpack_require__(12).createServer(createApp()); + var server = __webpack_require__(11).createServer(createApp()); return port && server.listen(port), server; }, EngineFS.app = createApp, EngineFS.sendCORSHeaders = sendCORSHeaders, EngineFS.sendDLNAHeaders = sendDLNAHeaders, EngineFS.create = createEngine, EngineFS.exists = existsEngine, EngineFS.getFilename = function(infoHash, fileIdx) { @@ -11919,56 +16479,52 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var extensions, types, preference, db = __webpack_require__(455), extname = __webpack_require__(3).extname, EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/, TEXT_TYPE_REGEXP = /^text\//i; - function charset(type) { - if (!type || "string" != typeof type) return !1; - var match = EXTRACT_TYPE_REGEXP.exec(type), mime = match && db[match[1].toLowerCase()]; - return mime && mime.charset ? mime.charset : !(!match || !TEXT_TYPE_REGEXP.test(match[1])) && "UTF-8"; - } - exports.charset = charset, exports.charsets = { - lookup: charset - }, exports.contentType = function(str) { - if (!str || "string" != typeof str) return !1; - var mime = -1 === str.indexOf("/") ? exports.lookup(str) : str; - if (!mime) return !1; - if (-1 === mime.indexOf("charset")) { - var charset = exports.charset(mime); - charset && (mime += "; charset=" + charset.toLowerCase()); - } - return mime; - }, exports.extension = function(type) { - if (!type || "string" != typeof type) return !1; - var match = EXTRACT_TYPE_REGEXP.exec(type), exts = match && exports.extensions[match[1].toLowerCase()]; - return !(!exts || !exts.length) && exts[0]; - }, exports.extensions = Object.create(null), exports.lookup = function(path) { - if (!path || "string" != typeof path) return !1; - var extension = extname("x." + path).toLowerCase().substr(1); - return extension && exports.types[extension] || !1; - }, exports.types = Object.create(null), extensions = exports.extensions, types = exports.types, - preference = [ "nginx", "apache", void 0, "iana" ], Object.keys(db).forEach((function(type) { - var mime = db[type], exts = mime.extensions; - if (exts && exts.length) { - extensions[type] = exts; - for (var i = 0; i < exts.length; i++) { - var extension = exts[i]; - if (types[extension]) { - var from = preference.indexOf(db[types[extension]].source), to = preference.indexOf(mime.source); - if ("application/octet-stream" !== types[extension] && (from > to || from === to && "application/" === types[extension].substr(0, 12))) continue; - } - types[extension] = type; - } - } - })); -}, function(module, exports, __webpack_require__) { - "use strict"; - var stringify = __webpack_require__(460), parse = __webpack_require__(461), formats = __webpack_require__(195); + var stringify = __webpack_require__(561), parse = __webpack_require__(562), formats = __webpack_require__(249); module.exports = { formats: formats, parse: parse, stringify: stringify }; +}, function(module, exports) { + module.exports = function pathtoRegexp(path, keys, options) { + keys = keys || []; + var m, strict = (options = options || {}).strict, end = !1 !== options.end, flags = options.sensitive ? "" : "i", extraOffset = 0, keysOffset = keys.length, i = 0, name = 0; + if (path instanceof RegExp) { + for (;m = MATCHING_GROUP_REGEXP.exec(path.source); ) keys.push({ + name: name++, + optional: !1, + offset: m.index + }); + return path; + } + if (Array.isArray(path)) return path = path.map((function(value) { + return pathtoRegexp(value, keys, options).source; + })), new RegExp("(?:" + path.join("|") + ")", flags); + for (path = ("^" + path + (strict ? "" : "/" === path[path.length - 1] ? "?" : "/?")).replace(/\/\(/g, "/(?:").replace(/([\/\.])/g, "\\$1").replace(/(\\\/)?(\\\.)?:(\w+)(\(.*?\))?(\*)?(\?)?/g, (function(match, slash, format, key, capture, star, optional, offset) { + slash = slash || "", format = format || "", capture = capture || "([^\\/" + format + "]+?)", + optional = optional || "", keys.push({ + name: key, + optional: !!optional, + offset: offset + extraOffset + }); + var result = (optional ? "" : slash) + "(?:" + format + (optional ? slash : "") + capture + (star ? "((?:[\\/" + format + "].+?)?)" : "") + ")" + optional; + return extraOffset += result.length - match.length, result; + })).replace(/\*/g, (function(star, index) { + for (var len = keys.length; len-- > keysOffset && keys[len].offset > index; ) keys[len].offset += 3; + return "(.*)"; + })); m = MATCHING_GROUP_REGEXP.exec(path); ) { + for (var escapeCount = 0, index = m.index; "\\" === path.charAt(--index); ) escapeCount++; + escapeCount % 2 != 1 && ((keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) && keys.splice(keysOffset + i, 0, { + name: name++, + optional: !1, + offset: m.index + }), i++); + } + return path += end ? "$" : "/" === path[path.length - 1] ? "" : "(?=\\/|$)", new RegExp(path, flags); + }; + var MATCHING_GROUP_REGEXP = /\((?!\?)/g; }, function(module, exports, __webpack_require__) { - var once = __webpack_require__(25), eos = __webpack_require__(128), fs = __webpack_require__(2), noop = function() {}, isFn = function(fn) { + var once = __webpack_require__(34), eos = __webpack_require__(163), fs = __webpack_require__(2), noop = function() {}, isFn = function(fn) { return "function" == typeof fn; }, destroyer = function(stream, reading, writing, callback) { callback = once(callback); @@ -12008,7 +16564,7 @@ return streams.reduce(pipe); }; }, function(module, exports, __webpack_require__) { - var once = __webpack_require__(25), noop = function() {}, eos = function(stream, opts, callback) { + var once = __webpack_require__(34), noop = function() {}, eos = function(stream, opts, callback) { if ("function" == typeof opts) return eos(stream, null, opts); opts || (opts = {}), callback = once(callback || noop); var ws = stream._writableState, rs = stream._readableState, readable = opts.readable || !1 !== opts.readable && stream.readable, writable = opts.writable || !1 !== opts.writable && stream.writable, cancelled = !1, onlegacyfinish = function() { @@ -12045,12 +16601,12 @@ module.exports = eos; }, function(module, exports, __webpack_require__) { var bencode = module.exports; - bencode.encode = __webpack_require__(469), bencode.decode = __webpack_require__(470), + bencode.encode = __webpack_require__(570), bencode.decode = __webpack_require__(571), bencode.byteLength = bencode.encodingLength = function(value) { return bencode.encode(value).length; }; }, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(21); + var crypto = __webpack_require__(9); function sha1sync(buf) { return crypto.createHash("sha1").update(buf).digest("hex"); } @@ -12377,15 +16933,15 @@ return "ipv6" === (addr = this.parse(string)).kind() && addr.isIPv4MappedAddress() ? addr.toIPv4Address() : addr; }; }).call(this); - }).call(this, __webpack_require__(54)(module)); + }).call(this, __webpack_require__(62)(module)); }, function(module, exports, __webpack_require__) { module.exports = Tracker; - var EventEmitter = __webpack_require__(4).EventEmitter; + var EventEmitter = __webpack_require__(5).EventEmitter; function Tracker(client, announceUrl) { EventEmitter.call(this), this.client = client, this.announceUrl = announceUrl, this.interval = null, this.destroyed = !1; } - __webpack_require__(11)(Tracker, EventEmitter), Tracker.prototype.setInterval = function(intervalMs) { + __webpack_require__(7)(Tracker, EventEmitter), Tracker.prototype.setInterval = function(intervalMs) { if (null == intervalMs && (intervalMs = this.DEFAULT_ANNOUNCE_INTERVAL), clearInterval(this.interval), intervalMs) { var update = this.announce.bind(this, this.client._defaultAnnounceOpts()); @@ -12393,10 +16949,86 @@ } }; }, function(module, exports) { - module.exports = require("tls"); + module.exports = isTypedArray, isTypedArray.strict = isStrictTypedArray, isTypedArray.loose = isLooseTypedArray; + var toString = Object.prototype.toString, names = { + "[object Int8Array]": !0, + "[object Int16Array]": !0, + "[object Int32Array]": !0, + "[object Uint8Array]": !0, + "[object Uint8ClampedArray]": !0, + "[object Uint16Array]": !0, + "[object Uint32Array]": !0, + "[object Float32Array]": !0, + "[object Float64Array]": !0 + }; + function isTypedArray(arr) { + return isStrictTypedArray(arr) || isLooseTypedArray(arr); + } + function isStrictTypedArray(arr) { + return arr instanceof Int8Array || arr instanceof Int16Array || arr instanceof Int32Array || arr instanceof Uint8Array || arr instanceof Uint8ClampedArray || arr instanceof Uint16Array || arr instanceof Uint32Array || arr instanceof Float32Array || arr instanceof Float64Array; + } + function isLooseTypedArray(arr) { + return names[toString.call(arr)]; + } +}, function(module, exports, __webpack_require__) { + const vm = __webpack_require__(624); + module.exports = function(str, regex, timeout) { + let sandbox = { + str: str, + re: regex, + result: null + }; + try { + vm.runInContext("result = !!str.match(re);", vm.createContext(sandbox), { + timeout: timeout + }); + } catch (e) { + console.log("Warning: regex " + regex + ' was detected as evil when tested against "' + str + '", ignoring this regex pattern'); + } + return sandbox.result; + }; +}, function(module, exports, __webpack_require__) { + var path = __webpack_require__(4), fs = __webpack_require__(2), _0777 = parseInt("0777", 8); + function mkdirP(p, opts, f, made) { + "function" == typeof opts ? (f = opts, opts = {}) : opts && "object" == typeof opts || (opts = { + mode: opts + }); + var mode = opts.mode, xfs = opts.fs || fs; + void 0 === mode && (mode = _0777 & ~process.umask()), made || (made = null); + var cb = f || function() {}; + p = path.resolve(p), xfs.mkdir(p, mode, (function(er) { + if (!er) return cb(null, made = made || p); + "ENOENT" === er.code ? mkdirP(path.dirname(p), opts, (function(er, made) { + er ? cb(er, made) : mkdirP(p, opts, cb, made); + })) : xfs.stat(p, (function(er2, stat) { + er2 || !stat.isDirectory() ? cb(er, made) : cb(null, made); + })); + })); + } + module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP, mkdirP.sync = function sync(p, opts, made) { + opts && "object" == typeof opts || (opts = { + mode: opts + }); + var mode = opts.mode, xfs = opts.fs || fs; + void 0 === mode && (mode = _0777 & ~process.umask()), made || (made = null), p = path.resolve(p); + try { + xfs.mkdirSync(p, mode), made = made || p; + } catch (err0) { + if ("ENOENT" === err0.code) made = sync(path.dirname(p), opts, made), sync(p, opts, made); else { + var stat; + try { + stat = xfs.statSync(p); + } catch (err1) { + throw err0; + } + if (!stat.isDirectory()) throw err0; + } + } + return made; + }; }, function(module, exports, __webpack_require__) { "use strict"; - var assert = __webpack_require__(34), util = (__webpack_require__(2), __webpack_require__(0)), debug = __webpack_require__(32)("matroska:abstractSource"), Source = __webpack_require__(224), tools = __webpack_require__(57); + var assert = __webpack_require__(22), util = (__webpack_require__(2), __webpack_require__(0)), debug = __webpack_require__(40)("matroska:abstractSource"), Source = __webpack_require__(276), tools = __webpack_require__(72); function AbstractSource() { this._vints = [], this._vintsSize = 0; } @@ -12476,8 +17108,8 @@ (function() { "use strict"; var builder, defaults, parser, processors, hasProp = {}.hasOwnProperty; - defaults = __webpack_require__(136), builder = __webpack_require__(584), parser = __webpack_require__(589), - processors = __webpack_require__(231), exports.defaults = defaults.defaults, exports.processors = processors, + defaults = __webpack_require__(173), builder = __webpack_require__(683), parser = __webpack_require__(688), + processors = __webpack_require__(283), exports.defaults = defaults.defaults, exports.processors = processors, exports.ValidationError = (function(superClass) { function ValidationError(message) { this.message = message; @@ -12565,12 +17197,12 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, XMLWriterBase, hasProp = {}.hasOwnProperty; - XMLDeclaration = __webpack_require__(93), XMLDocType = __webpack_require__(94), - XMLCData = __webpack_require__(91), XMLComment = __webpack_require__(92), XMLElement = __webpack_require__(90), - XMLRaw = __webpack_require__(99), XMLText = __webpack_require__(100), XMLProcessingInstruction = __webpack_require__(101), - XMLDTDAttList = __webpack_require__(95), XMLDTDElement = __webpack_require__(97), - XMLDTDEntity = __webpack_require__(96), XMLDTDNotation = __webpack_require__(98), - XMLWriterBase = __webpack_require__(230), module.exports = (function(superClass) { + XMLDeclaration = __webpack_require__(121), XMLDocType = __webpack_require__(122), + XMLCData = __webpack_require__(119), XMLComment = __webpack_require__(120), XMLElement = __webpack_require__(118), + XMLRaw = __webpack_require__(127), XMLText = __webpack_require__(128), XMLProcessingInstruction = __webpack_require__(129), + XMLDTDAttList = __webpack_require__(123), XMLDTDElement = __webpack_require__(125), + XMLDTDEntity = __webpack_require__(124), XMLDTDNotation = __webpack_require__(126), + XMLWriterBase = __webpack_require__(282), module.exports = (function(superClass) { function XMLStringWriter(options) { XMLStringWriter.__super__.constructor.call(this, options); } @@ -13036,7 +17668,7 @@ } }; try { - Stream = __webpack_require__(5).Stream; + Stream = __webpack_require__(3).Stream; } catch (ex) { Stream = function() {}; } @@ -13073,7 +17705,7 @@ }), SAXStream.prototype.write = function(data) { if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(data)) { if (!this._decoder) { - var SD = __webpack_require__(121).StringDecoder; + var SD = __webpack_require__(156).StringDecoder; this._decoder = new SD("utf8"); } data = this._decoder.write(data); @@ -13584,10 +18216,10 @@ function mix(from, into) { for (var key in from) into[key] = from[key]; } - module.exports = proto, proto.from = __webpack_require__(631), proto.to = __webpack_require__(632), - proto.is = __webpack_require__(633), proto.subarray = __webpack_require__(634), - proto.join = __webpack_require__(635), proto.copy = __webpack_require__(636), proto.create = __webpack_require__(637), - mix(__webpack_require__(638), proto), mix(__webpack_require__(639), proto); + module.exports = proto, proto.from = __webpack_require__(730), proto.to = __webpack_require__(731), + proto.is = __webpack_require__(732), proto.subarray = __webpack_require__(733), + proto.join = __webpack_require__(734), proto.copy = __webpack_require__(735), proto.create = __webpack_require__(736), + mix(__webpack_require__(737), proto), mix(__webpack_require__(738), proto); }, function(module, exports) { module.exports = { mediacodec: { @@ -13852,7 +18484,7 @@ var decoder = new Bdecode; return decoder.decode(buffer, encoding), decoder.result()[0]; }, exports.Stream = Stream; - var inherits = __webpack_require__(0).inherits, Transform = __webpack_require__(5).Transform, I = "i".charCodeAt(0), L = "l".charCodeAt(0), E = "e".charCodeAt(0), D = "d".charCodeAt(0), COLON = ":".charCodeAt(0), DASH = "-".charCodeAt(0); + var inherits = __webpack_require__(0).inherits, Transform = __webpack_require__(3).Transform, I = "i".charCodeAt(0), L = "l".charCodeAt(0), E = "e".charCodeAt(0), D = "d".charCodeAt(0), COLON = ":".charCodeAt(0), DASH = "-".charCodeAt(0); function BdecodeSMachine(cb, cb_list, cb_dict, cb_end) { var depth = 0, state = 0; this.consistent = function() { @@ -13977,17 +18609,294 @@ }, Stream.prototype._flush = function(callback) { this.push(this._decoder.result()[0]), callback(null); }; +}, function(module, exports, __webpack_require__) { + module.exports = glob; + var rp = __webpack_require__(389), minimatch = __webpack_require__(181), inherits = (minimatch.Minimatch, + __webpack_require__(7)), EE = __webpack_require__(5).EventEmitter, path = __webpack_require__(4), assert = __webpack_require__(22), isAbsolute = __webpack_require__(182), globSync = __webpack_require__(784), common = __webpack_require__(390), setopts = common.setopts, ownProp = common.ownProp, inflight = __webpack_require__(785), childrenIgnored = (__webpack_require__(0), + common.childrenIgnored), isIgnored = common.isIgnored, once = __webpack_require__(34); + function glob(pattern, options, cb) { + if ("function" == typeof options && (cb = options, options = {}), options || (options = {}), + options.sync) { + if (cb) throw new TypeError("callback provided to sync glob"); + return globSync(pattern, options); + } + return new Glob(pattern, options, cb); + } + glob.sync = globSync; + var GlobSync = glob.GlobSync = globSync.GlobSync; + function Glob(pattern, options, cb) { + if ("function" == typeof options && (cb = options, options = null), options && options.sync) { + if (cb) throw new TypeError("callback provided to sync glob"); + return new GlobSync(pattern, options); + } + if (!(this instanceof Glob)) return new Glob(pattern, options, cb); + setopts(this, pattern, options), this._didRealPath = !1; + var n = this.minimatch.set.length; + this.matches = new Array(n), "function" == typeof cb && (cb = once(cb), this.on("error", cb), + this.on("end", (function(matches) { + cb(null, matches); + }))); + var self = this; + if (this._processing = 0, this._emitQueue = [], this._processQueue = [], this.paused = !1, + this.noprocess) return this; + if (0 === n) return done(); + for (var i = 0; i < n; i++) this._process(this.minimatch.set[i], i, !1, done); + function done() { + --self._processing, self._processing <= 0 && self._finish(); + } + } + glob.glob = glob, glob.hasMagic = function(pattern, options_) { + var options = (function(origin, add) { + if (null === add || "object" != typeof add) return origin; + for (var keys = Object.keys(add), i = keys.length; i--; ) origin[keys[i]] = add[keys[i]]; + return origin; + })({}, options_); + options.noprocess = !0; + var set = new Glob(pattern, options).minimatch.set; + if (!pattern) return !1; + if (set.length > 1) return !0; + for (var j = 0; j < set[0].length; j++) if ("string" != typeof set[0][j]) return !0; + return !1; + }, glob.Glob = Glob, inherits(Glob, EE), Glob.prototype._finish = function() { + if (assert(this instanceof Glob), !this.aborted) { + if (this.realpath && !this._didRealpath) return this._realpath(); + common.finish(this), this.emit("end", this.found); + } + }, Glob.prototype._realpath = function() { + if (!this._didRealpath) { + this._didRealpath = !0; + var n = this.matches.length; + if (0 === n) return this._finish(); + for (var self = this, i = 0; i < this.matches.length; i++) this._realpathSet(i, next); + } + function next() { + 0 == --n && self._finish(); + } + }, Glob.prototype._realpathSet = function(index, cb) { + var matchset = this.matches[index]; + if (!matchset) return cb(); + var found = Object.keys(matchset), self = this, n = found.length; + if (0 === n) return cb(); + var set = this.matches[index] = Object.create(null); + found.forEach((function(p, i) { + p = self._makeAbs(p), rp.realpath(p, self.realpathCache, (function(er, real) { + er ? "stat" === er.syscall ? set[p] = !0 : self.emit("error", er) : set[real] = !0, + 0 == --n && (self.matches[index] = set, cb()); + })); + })); + }, Glob.prototype._mark = function(p) { + return common.mark(this, p); + }, Glob.prototype._makeAbs = function(f) { + return common.makeAbs(this, f); + }, Glob.prototype.abort = function() { + this.aborted = !0, this.emit("abort"); + }, Glob.prototype.pause = function() { + this.paused || (this.paused = !0, this.emit("pause")); + }, Glob.prototype.resume = function() { + if (this.paused) { + if (this.emit("resume"), this.paused = !1, this._emitQueue.length) { + var eq = this._emitQueue.slice(0); + this._emitQueue.length = 0; + for (var i = 0; i < eq.length; i++) { + var e = eq[i]; + this._emitMatch(e[0], e[1]); + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0); + for (this._processQueue.length = 0, i = 0; i < pq.length; i++) { + var p = pq[i]; + this._processing--, this._process(p[0], p[1], p[2], p[3]); + } + } + } + }, Glob.prototype._process = function(pattern, index, inGlobStar, cb) { + if (assert(this instanceof Glob), assert("function" == typeof cb), !this.aborted) if (this._processing++, + this.paused) this._processQueue.push([ pattern, index, inGlobStar, cb ]); else { + for (var prefix, n = 0; "string" == typeof pattern[n]; ) n++; + switch (n) { + case pattern.length: + return void this._processSimple(pattern.join("/"), index, cb); + + case 0: + prefix = null; + break; + + default: + prefix = pattern.slice(0, n).join("/"); + } + var read, remain = pattern.slice(n); + null === prefix ? read = "." : isAbsolute(prefix) || isAbsolute(pattern.join("/")) ? (prefix && isAbsolute(prefix) || (prefix = "/" + prefix), + read = prefix) : read = prefix; + var abs = this._makeAbs(read); + if (childrenIgnored(this, read)) return cb(); + remain[0] === minimatch.GLOBSTAR ? this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) : this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb); + } + }, Glob.prototype._processReaddir = function(prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this; + this._readdir(abs, inGlobStar, (function(er, entries) { + return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb); + })); + }, Glob.prototype._processReaddir2 = function(prefix, read, abs, remain, index, inGlobStar, entries, cb) { + if (!entries) return cb(); + for (var pn = remain[0], negate = !!this.minimatch.negate, rawGlob = pn._glob, dotOk = this.dot || "." === rawGlob.charAt(0), matchedEntries = [], i = 0; i < entries.length; i++) ("." !== (e = entries[i]).charAt(0) || dotOk) && (negate && !prefix ? !e.match(pn) : e.match(pn)) && matchedEntries.push(e); + var len = matchedEntries.length; + if (0 === len) return cb(); + if (1 === remain.length && !this.mark && !this.stat) { + for (this.matches[index] || (this.matches[index] = Object.create(null)), i = 0; i < len; i++) { + var e = matchedEntries[i]; + prefix && (e = "/" !== prefix ? prefix + "/" + e : prefix + e), "/" !== e.charAt(0) || this.nomount || (e = path.join(this.root, e)), + this._emitMatch(index, e); + } + return cb(); + } + for (remain.shift(), i = 0; i < len; i++) e = matchedEntries[i], prefix && (e = "/" !== prefix ? prefix + "/" + e : prefix + e), + this._process([ e ].concat(remain), index, inGlobStar, cb); + cb(); + }, Glob.prototype._emitMatch = function(index, e) { + if (!this.aborted && !isIgnored(this, e)) if (this.paused) this._emitQueue.push([ index, e ]); else { + var abs = isAbsolute(e) ? e : this._makeAbs(e); + if (this.mark && (e = this._mark(e)), this.absolute && (e = abs), !this.matches[index][e]) { + if (this.nodir) { + var c = this.cache[abs]; + if ("DIR" === c || Array.isArray(c)) return; + } + this.matches[index][e] = !0; + var st = this.statCache[abs]; + st && this.emit("stat", e, st), this.emit("match", e); + } + } + }, Glob.prototype._readdirInGlobStar = function(abs, cb) { + if (!this.aborted) { + if (this.follow) return this._readdir(abs, !1, cb); + var self = this, lstatcb = inflight("lstat\0" + abs, (function(er, lstat) { + if (er && "ENOENT" === er.code) return cb(); + var isSym = lstat && lstat.isSymbolicLink(); + self.symlinks[abs] = isSym, isSym || !lstat || lstat.isDirectory() ? self._readdir(abs, !1, cb) : (self.cache[abs] = "FILE", + cb()); + })); + lstatcb && self.fs.lstat(abs, lstatcb); + } + }, Glob.prototype._readdir = function(abs, inGlobStar, cb) { + if (!this.aborted && (cb = inflight("readdir\0" + abs + "\0" + inGlobStar, cb))) { + if (inGlobStar && !ownProp(this.symlinks, abs)) return this._readdirInGlobStar(abs, cb); + if (ownProp(this.cache, abs)) { + var c = this.cache[abs]; + if (!c || "FILE" === c) return cb(); + if (Array.isArray(c)) return cb(null, c); + } + this.fs.readdir(abs, (function(self, abs, cb) { + return function(er, entries) { + er ? self._readdirError(abs, er, cb) : self._readdirEntries(abs, entries, cb); + }; + })(this, abs, cb)); + } + }, Glob.prototype._readdirEntries = function(abs, entries, cb) { + if (!this.aborted) { + if (!this.mark && !this.stat) for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + e = "/" === abs ? abs + e : abs + "/" + e, this.cache[e] = !0; + } + return this.cache[abs] = entries, cb(null, entries); + } + }, Glob.prototype._readdirError = function(f, er, cb) { + if (!this.aborted) { + switch (er.code) { + case "ENOTSUP": + case "ENOTDIR": + var abs = this._makeAbs(f); + if (this.cache[abs] = "FILE", abs === this.cwdAbs) { + var error = new Error(er.code + " invalid cwd " + this.cwd); + error.path = this.cwd, error.code = er.code, this.emit("error", error), this.abort(); + } + break; + + case "ENOENT": + case "ELOOP": + case "ENAMETOOLONG": + case "UNKNOWN": + this.cache[this._makeAbs(f)] = !1; + break; + + default: + this.cache[this._makeAbs(f)] = !1, this.strict && (this.emit("error", er), this.abort()), + this.silent || console.error("glob error", er); + } + return cb(); + } + }, Glob.prototype._processGlobStar = function(prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this; + this._readdir(abs, inGlobStar, (function(er, entries) { + self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb); + })); + }, Glob.prototype._processGlobStar2 = function(prefix, read, abs, remain, index, inGlobStar, entries, cb) { + if (!entries) return cb(); + var remainWithoutGlobStar = remain.slice(1), gspref = prefix ? [ prefix ] : [], noGlobStar = gspref.concat(remainWithoutGlobStar); + this._process(noGlobStar, index, !1, cb); + var isSym = this.symlinks[abs], len = entries.length; + if (isSym && inGlobStar) return cb(); + for (var i = 0; i < len; i++) if ("." !== entries[i].charAt(0) || this.dot) { + var instead = gspref.concat(entries[i], remainWithoutGlobStar); + this._process(instead, index, !0, cb); + var below = gspref.concat(entries[i], remain); + this._process(below, index, !0, cb); + } + cb(); + }, Glob.prototype._processSimple = function(prefix, index, cb) { + var self = this; + this._stat(prefix, (function(er, exists) { + self._processSimple2(prefix, index, er, exists, cb); + })); + }, Glob.prototype._processSimple2 = function(prefix, index, er, exists, cb) { + if (this.matches[index] || (this.matches[index] = Object.create(null)), !exists) return cb(); + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix); + "/" === prefix.charAt(0) ? prefix = path.join(this.root, prefix) : (prefix = path.resolve(this.root, prefix), + trail && (prefix += "/")); + } + "win32" === process.platform && (prefix = prefix.replace(/\\/g, "/")), this._emitMatch(index, prefix), + cb(); + }, Glob.prototype._stat = function(f, cb) { + var abs = this._makeAbs(f), needDir = "/" === f.slice(-1); + if (f.length > this.maxLength) return cb(); + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs]; + if (Array.isArray(c) && (c = "DIR"), !needDir || "DIR" === c) return cb(null, c); + if (needDir && "FILE" === c) return cb(); + } + var stat = this.statCache[abs]; + if (void 0 !== stat) { + if (!1 === stat) return cb(null, stat); + var type = stat.isDirectory() ? "DIR" : "FILE"; + return needDir && "FILE" === type ? cb() : cb(null, type, stat); + } + var self = this, statcb = inflight("stat\0" + abs, (function(er, lstat) { + if (lstat && lstat.isSymbolicLink()) return self.fs.stat(abs, (function(er, stat) { + er ? self._stat2(f, abs, null, lstat, cb) : self._stat2(f, abs, er, stat, cb); + })); + self._stat2(f, abs, er, lstat, cb); + })); + statcb && self.fs.lstat(abs, statcb); + }, Glob.prototype._stat2 = function(f, abs, er, stat, cb) { + if (er && ("ENOENT" === er.code || "ENOTDIR" === er.code)) return this.statCache[abs] = !1, + cb(); + var needDir = "/" === f.slice(-1); + if (this.statCache[abs] = stat, "/" === abs.slice(-1) && stat && !stat.isDirectory()) return cb(null, !1, stat); + var c = !0; + return stat && (c = stat.isDirectory() ? "DIR" : "FILE"), this.cache[abs] = this.cache[abs] || c, + needDir && "FILE" === c ? cb() : cb(null, c, stat); + }; }, function(module, exports, __webpack_require__) { module.exports = minimatch, minimatch.Minimatch = Minimatch; var path = (function() { try { - return __webpack_require__(3); + return __webpack_require__(4); } catch (e) {} })() || { sep: "/" }; minimatch.sep = path.sep; - var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}, expand = __webpack_require__(682), plTypes = { + var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}, expand = __webpack_require__(781), plTypes = { "!": { open: "(?:(?!(?:", close: "))[^/]*?)" @@ -15287,18 +20196,18 @@ return _._ = _, _; }, module.exports = factory(); }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(688); + module.exports = __webpack_require__(787); }, function(module, exports, __webpack_require__) { module.exports = __webpack_require__(0).deprecate; }, function(module, exports, __webpack_require__) { - const ffmpeg = __webpack_require__(703), ffprobe = __webpack_require__(709); + const ffmpeg = __webpack_require__(801), ffprobe = __webpack_require__(807); module.exports = { ffmpeg: ffmpeg, ffprobe: ffprobe }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(35), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); function AttachedFile(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.AttachedFile, start, length); } @@ -15309,7 +20218,7 @@ _proto.addAttribute(AttachedFile.prototype, "FileUID"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Attachments(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Attachments, start, length); } @@ -15318,7 +20227,7 @@ }, _proto.addChild(Attachments.prototype, "AttachedFile"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(35), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Audio(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Audio, start, length); } @@ -15328,7 +20237,7 @@ _proto.addAttribute(Audio.prototype, "Channels"), _proto.addAttribute(Audio.prototype, "BitDepth"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(35), schema = __webpack_require__(10), EMPTY_BUFFER = (__webpack_require__(15), + var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), EMPTY_BUFFER = (__webpack_require__(19), new Buffer([])); function CRC_32(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.CRC_32, start, length), this.data = EMPTY_BUFFER, @@ -15339,7 +20248,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function CuePoint(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.CuePoint, start, length); } @@ -15348,7 +20257,7 @@ }, _proto.addAttribute(CuePoint.prototype, "CueTime"), _proto.addChild(CuePoint.prototype, "CueTrackPositions"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(35), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); function CueReference(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.CueReference, start, length); } @@ -15357,7 +20266,7 @@ }, _proto.addAttribute(CueReference.prototype, "CueRefTime"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Cues(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Cues, start, length); } @@ -15366,7 +20275,7 @@ }, _proto.addChild(Cues.prototype, "CuePoint"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function CueTrackPositions(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.CueTrackPositions, start, length); } @@ -15379,7 +20288,7 @@ _proto.addChild(CueTrackPositions.prototype, "CueReference"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Info(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Info, start, length); } @@ -15394,7 +20303,7 @@ _proto.addAttribute(Info.prototype, "MuxingApp"), _proto.addAttribute(Info.prototype, "WritingApp"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(35), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Seek(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Seek, start, length); } @@ -15403,7 +20312,7 @@ }, _proto.addAttribute(Seek.prototype, "SeekID"), _proto.addAttribute(Seek.prototype, "SeekPosition"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function SeekHead(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.SeekHead, start, length); } @@ -15412,16 +20321,16 @@ }, _proto.addChild(SeekHead.prototype, "Seek"); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(30), __webpack_require__(2), __webpack_require__(74), __webpack_require__(3); - var util = __webpack_require__(0), Segment2 = __webpack_require__(109); + __webpack_require__(38), __webpack_require__(2), __webpack_require__(63), __webpack_require__(4); + var util = __webpack_require__(0), Segment2 = __webpack_require__(138); function Segment3(doc, tagId, start, length) { Segment2.call(this, doc, tagId, start, length); } - __webpack_require__(10), util.inherits(Segment3, Segment2), module.exports = Segment3, + __webpack_require__(13), util.inherits(Segment3, Segment2), module.exports = Segment3, Segment3.prototype.findTagByName = function(tagName) {}; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function SimpleTag(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.SimpleTag, start, length); } @@ -15432,7 +20341,7 @@ _proto.addAttribute(SimpleTag.prototype, "TagString"), _proto.addAttribute(SimpleTag.prototype, "TagBinary"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Tag(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tag, start, length); } @@ -15441,7 +20350,7 @@ }, _proto.oneChild(Tag.prototype, "Targets", !0), _proto.addChild(Tag.prototype, "SimpleTag"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Tags(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tags, start, length); } @@ -15450,7 +20359,7 @@ }, _proto.addChild(Tags.prototype, "Tag"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Targets(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Targets, start, length); } @@ -15461,7 +20370,7 @@ _proto.addChild(Targets.prototype, "TagChapterUID"), _proto.addChild(Targets.prototype, "TagAttachmentUID"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function TrackEntry(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.TrackEntry, start, length); } @@ -15482,7 +20391,7 @@ _proto.addChild(TrackEntry.prototype, "TrackOperation"), _proto.addChild(TrackEntry.prototype, "ContentEncodings"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(18), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Tracks(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tracks, start, length); } @@ -15491,7 +20400,7 @@ }, _proto.addChild(Tracks.prototype, "TrackEntry"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(35), schema = __webpack_require__(10), _proto = __webpack_require__(15); + var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Video(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Video, start, length); } @@ -15506,7 +20415,7 @@ _proto.addAttribute(Video.prototype, "AspectRatioType"), _proto.addAttribute(Video.prototype, "ColourSpace"); }, function(module, exports, __webpack_require__) { "use strict"; - var assert = __webpack_require__(34), util = (__webpack_require__(2), __webpack_require__(0)), debug = __webpack_require__(33)("matroska:abstractSource"), Source = __webpack_require__(358), tools = __webpack_require__(60); + var assert = __webpack_require__(22), util = (__webpack_require__(2), __webpack_require__(0)), debug = __webpack_require__(41)("matroska:abstractSource"), Source = __webpack_require__(408), tools = __webpack_require__(75); function AbstractSource() { this._vints = [], this._vintsSize = 0; } @@ -15584,7 +20493,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _H264Stream, _NalByteStream, PROFILES_WITH_OPTIONAL_SPS_DATA, Stream = __webpack_require__(29), ExpGolomb = __webpack_require__(727); + var _H264Stream, _NalByteStream, PROFILES_WITH_OPTIONAL_SPS_DATA, Stream = __webpack_require__(37), ExpGolomb = __webpack_require__(825); (_NalByteStream = function() { var i, buffer, syncPoint = 0; _NalByteStream.prototype.init.call(this), this.push = function(data) { @@ -15811,7 +20720,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var toUnsigned = __webpack_require__(112).toUnsigned, parseType = __webpack_require__(171); + var toUnsigned = __webpack_require__(141).toUnsigned, parseType = __webpack_require__(209); module.exports = function findBox(data, path) { var i, size, type, end, subresults, results = []; if (!path.length) return null; @@ -15846,7 +20755,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var parseSampleFlags = __webpack_require__(730); + var parseSampleFlags = __webpack_require__(828); module.exports = function(data) { var sample, result = { version: data[0], @@ -15868,7 +20777,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var toUnsigned = __webpack_require__(112).toUnsigned; + var toUnsigned = __webpack_require__(141).toUnsigned; module.exports = function(data) { var result = { version: data[0], @@ -15880,7 +20789,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _VideoSegmentStream, _AudioSegmentStream, _Transmuxer, _CoalesceStream, Stream = __webpack_require__(29), mp4 = __webpack_require__(111), frameUtils = __webpack_require__(364), audioFrameUtils = __webpack_require__(365), trackDecodeInfo = __webpack_require__(113), m2ts = __webpack_require__(114), clock = __webpack_require__(42), AdtsStream = __webpack_require__(110), H264Stream = __webpack_require__(169).H264Stream, AacStream = __webpack_require__(369), isLikelyAacData = __webpack_require__(116).isLikelyAacData, ONE_SECOND_IN_TS = __webpack_require__(42).ONE_SECOND_IN_TS, AUDIO_PROPERTIES = __webpack_require__(370), VIDEO_PROPERTIES = __webpack_require__(371), arrayEquals = function(a, b) { + var _VideoSegmentStream, _AudioSegmentStream, _Transmuxer, _CoalesceStream, Stream = __webpack_require__(37), mp4 = __webpack_require__(140), frameUtils = __webpack_require__(414), audioFrameUtils = __webpack_require__(415), trackDecodeInfo = __webpack_require__(142), m2ts = __webpack_require__(143), clock = __webpack_require__(54), AdtsStream = __webpack_require__(139), H264Stream = __webpack_require__(207).H264Stream, AacStream = __webpack_require__(419), isLikelyAacData = __webpack_require__(145).isLikelyAacData, ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS, AUDIO_PROPERTIES = __webpack_require__(420), VIDEO_PROPERTIES = __webpack_require__(421), arrayEquals = function(a, b) { var i; if (a.length !== b.length) return !1; for (i = 0; i < a.length; i++) if (a[i] !== b[i]) return !1; @@ -16308,7 +21217,7 @@ }, module.exports = _FlvTag; }, function(module, exports, __webpack_require__) { "use strict"; - var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(47).codes.ERR_STREAM_PREMATURE_CLOSE; + var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(65).codes.ERR_STREAM_PREMATURE_CLOSE; function noop() {} module.exports = function eos(stream, opts, callback) { if ("function" == typeof opts) return eos(stream, null, opts); @@ -16351,7 +21260,7 @@ }; }; }, function(module, exports, __webpack_require__) { - const readChunk = __webpack_require__(759); + const readChunk = __webpack_require__(857); module.exports = readChunk; }, function(module, exports, __webpack_require__) { "use strict"; @@ -16360,7 +21269,7 @@ default: mod }; }; - const stream_1 = __webpack_require__(5), url_1 = __webpack_require__(7), miniget_1 = __importDefault(__webpack_require__(118)), m3u8_parser_1 = __importDefault(__webpack_require__(788)), dash_mpd_parser_1 = __importDefault(__webpack_require__(789)), queue_1 = __importDefault(__webpack_require__(790)), parse_time_1 = __webpack_require__(387), supportedParsers = { + const stream_1 = __webpack_require__(3), url_1 = __webpack_require__(6), miniget_1 = __importDefault(__webpack_require__(146)), m3u8_parser_1 = __importDefault(__webpack_require__(886)), dash_mpd_parser_1 = __importDefault(__webpack_require__(887)), queue_1 = __importDefault(__webpack_require__(888)), parse_time_1 = __webpack_require__(437), supportedParsers = { m3u8: m3u8_parser_1.default, "dash-mpd": dash_mpd_parser_1.default }; @@ -16450,7 +21359,7 @@ }; m3u8stream.parseTimestamp = parse_time_1.humanStr, module.exports = m3u8stream; }, function(module, exports, __webpack_require__) { - var child = __webpack_require__(22), fetch = __webpack_require__(24), mime = __webpack_require__(125), fs = __webpack_require__(2), path = __webpack_require__(3), URL = __webpack_require__(7).URL, castingUtils = { + var child = __webpack_require__(31), fetch = __webpack_require__(33), mime = __webpack_require__(89), fs = __webpack_require__(2), path = __webpack_require__(4), URL = __webpack_require__(6).URL, castingUtils = { getMime: function(mimeURL) { var type = mime.lookup(mimeURL); return type ? Promise.resolve(type) : fetch(mimeURL, { @@ -16542,7 +21451,7 @@ "use strict"; var old; "undefined" != typeof Promise && (old = Promise); - var bluebird = __webpack_require__(810)(); + var bluebird = __webpack_require__(908)(); bluebird.noConflict = function() { try { Promise === bluebird && (Promise = old); @@ -16563,10 +21472,10 @@ }, function(module, exports, __webpack_require__) { "use strict"; !(function() { - var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(4).EventEmitter, dgram = __webpack_require__(53), os = __webpack_require__(17), net = __webpack_require__(45), constants = __webpack_require__(182), regex = { + var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(5).EventEmitter, dgram = __webpack_require__(69), os = __webpack_require__(23), net = __webpack_require__(42), constants = __webpack_require__(220), regex = { http: /HTTP\/\d{1}\.\d{1} \d+ .*/, ssdp: /^([^:]+):\s*(.*)$/ - }, version_node = process.version.substr(1), version_module = __webpack_require__(393).version, version_name = __webpack_require__(393).name, self = function(opts) { + }, version_node = process.version.substr(1), version_module = __webpack_require__(443).version, version_name = __webpack_require__(443).name, self = function(opts) { var that = this; opts = opts || {}, this.running = !1, this.sig = opts.sig || "node.js/" + version_node + " " + version_name + "/" + version_module, this.multicastIp = 0 !== net.isIP(opts.multicastIp) ? opts.multicastIp : "239.255.255.250", @@ -16734,7 +21643,7 @@ })(); }, function(module, exports, __webpack_require__) { __webpack_require__(2); - var ProtoBuf = __webpack_require__(850), cast_channel = __webpack_require__(854), extensions = ProtoBuf.loadJson(cast_channel).build("extensions.api.cast_channel"); + var ProtoBuf = __webpack_require__(946), cast_channel = __webpack_require__(950), extensions = ProtoBuf.loadJson(cast_channel).build("extensions.api.cast_channel"); [ "CastMessage", "AuthChallenge", "AuthResponse", "AuthError", "DeviceAuthMessage" ].forEach((function(message) { module.exports[message] = { serialize: function(data) { @@ -16746,7 +21655,7 @@ }; })); }, function(module, exports, __webpack_require__) { - var sprintf = __webpack_require__(186).sprintf, utils = __webpack_require__(398), ElementPath = __webpack_require__(860), TreeBuilder = __webpack_require__(399).TreeBuilder, get_parser = __webpack_require__(862).get_parser, constants = __webpack_require__(866), element_ids = 0; + var sprintf = __webpack_require__(224).sprintf, utils = __webpack_require__(448), ElementPath = __webpack_require__(956), TreeBuilder = __webpack_require__(449).TreeBuilder, get_parser = __webpack_require__(958).get_parser, constants = __webpack_require__(962), element_ids = 0; function Element(tag, attrib) { this._id = element_ids++, this.tag = tag, this.attrib = {}, this.text = null, this.tail = null, this._children = [], attrib && (this.attrib = utils.merge(this.attrib, attrib)); @@ -16976,7 +21885,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var createError = __webpack_require__(68), debug = __webpack_require__(6)("send"), deprecate = __webpack_require__(36)("send"), destroy = __webpack_require__(884), encodeUrl = __webpack_require__(64), escapeHtml = __webpack_require__(65), etag = __webpack_require__(410), fresh = __webpack_require__(411), fs = __webpack_require__(2), mime = __webpack_require__(74), ms = __webpack_require__(885), onFinished = __webpack_require__(66), parseRange = __webpack_require__(124), path = __webpack_require__(3), statuses = __webpack_require__(81), Stream = __webpack_require__(5), util = __webpack_require__(0), extname = path.extname, join = path.join, normalize = path.normalize, resolve = path.resolve, sep = path.sep, BYTES_RANGE_REGEXP = /^ *bytes=/, UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/; + var createError = __webpack_require__(87), debug = __webpack_require__(8)("send"), deprecate = __webpack_require__(47)("send"), destroy = __webpack_require__(980), encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), etag = __webpack_require__(461), fresh = __webpack_require__(462), fs = __webpack_require__(2), mime = __webpack_require__(63), ms = __webpack_require__(981), onFinished = __webpack_require__(85), parseRange = __webpack_require__(159), path = __webpack_require__(4), statuses = __webpack_require__(109), Stream = __webpack_require__(3), util = __webpack_require__(0), extname = path.extname, join = path.join, normalize = path.normalize, resolve = path.resolve, sep = path.sep, BYTES_RANGE_REGEXP = /^ *bytes=/, UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/; function SendStream(req, path, options) { Stream.call(this); var opts = options || {}; @@ -17299,10 +22208,1287 @@ name; }, parseSearchTerm: function(searchTerm) { - return searchTerm && "string" == typeof searchTerm ? (0, __webpack_require__(918).remove)(searchTerm.replace(/[^\u0000-\u036F][ \t]*/gm, "")) : null; + return searchTerm && "string" == typeof searchTerm ? (0, __webpack_require__(1014).remove)(searchTerm.replace(/[^\u0000-\u036F][ \t]*/gm, "")) : null; } }; module.exports = helpers; +}, function(module, exports) { + const cache = {}; + function getRandom() { + return (Math.random() + 1).toString(36).substring(7); + } + module.exports = { + set: data => { + let key = getRandom(); + for (;cache[key]; ) key = getRandom(); + return cache[key] = data, key; + }, + get: key => cache[key] || null + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var extend = __webpack_require__(147), cookies = __webpack_require__(473), paramsHaveRequestBody = __webpack_require__(229).paramsHaveRequestBody; + function initParams(uri, options, callback) { + "function" == typeof options && (callback = options); + var params = {}; + return "object" == typeof options ? extend(params, options, { + uri: uri + }) : extend(params, "string" == typeof uri ? { + uri: uri + } : uri), params.callback = callback || params.callback, params; + } + function request(uri, options, callback) { + if (void 0 === uri) throw new Error("undefined is not a valid uri or options object."); + var params = initParams(uri, options, callback); + if ("HEAD" === params.method && paramsHaveRequestBody(params)) throw new Error("HTTP HEAD requests MUST NOT include a request body."); + return new request.Request(params); + } + function verbFunc(verb) { + var method = verb.toUpperCase(); + return function(uri, options, callback) { + var params = initParams(uri, options, callback); + return params.method = method, request(params, params.callback); + }; + } + function wrapRequestMethod(method, options, requester, verb) { + return function(uri, opts, callback) { + var params = initParams(uri, opts, callback), target = {}; + return extend(!0, target, options, params), target.pool = params.pool || options.pool, + verb && (target.method = verb.toUpperCase()), "function" == typeof requester && (method = requester), + method(target, target.callback); + }; + } + request.get = verbFunc("get"), request.head = verbFunc("head"), request.options = verbFunc("options"), + request.post = verbFunc("post"), request.put = verbFunc("put"), request.patch = verbFunc("patch"), + request.del = verbFunc("delete"), request.delete = verbFunc("delete"), request.jar = function(store) { + return cookies.jar(store); + }, request.cookie = function(str) { + return cookies.parse(str); + }, request.defaults = function(options, requester) { + var self = this; + "function" == typeof (options = options || {}) && (requester = options, options = {}); + var defaults = wrapRequestMethod(self, options, requester); + return [ "get", "head", "post", "put", "patch", "del", "delete" ].forEach((function(verb) { + defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb); + })), defaults.cookie = wrapRequestMethod(self.cookie, options, requester), defaults.jar = self.jar, + defaults.defaults = self.defaults, defaults; + }, request.forever = function(agentOptions, optionsArg) { + var options = {}; + return optionsArg && extend(options, optionsArg), agentOptions && (options.agentOptions = agentOptions), + options.forever = !0, request.defaults(options); + }, module.exports = request, request.Request = __webpack_require__(1048), request.initParams = initParams, + Object.defineProperty(request, "debug", { + enumerable: !0, + get: function() { + return request.Request.debug; + }, + set: function(debug) { + request.Request.debug = debug; + } + }); +}, function(module, exports, __webpack_require__) { + "use strict"; + var jsonSafeStringify = __webpack_require__(1047), crypto = __webpack_require__(9), Buffer = __webpack_require__(25).Buffer, defer = "undefined" == typeof setImmediate ? process.nextTick : setImmediate; + exports.paramsHaveRequestBody = function(params) { + return params.body || params.requestBodyStream || params.json && "boolean" != typeof params.json || params.multipart; + }, exports.safeStringify = function(obj, replacer) { + var ret; + try { + ret = JSON.stringify(obj, replacer); + } catch (e) { + ret = jsonSafeStringify(obj, replacer); + } + return ret; + }, exports.md5 = function(str) { + return crypto.createHash("md5").update(str).digest("hex"); + }, exports.isReadStream = function(rs) { + return rs.readable && rs.path && rs.mode; + }, exports.toBase64 = function(str) { + return Buffer.from(str || "", "utf8").toString("base64"); + }, exports.copy = function(obj) { + var o = {}; + return Object.keys(obj).forEach((function(i) { + o[i] = obj[i]; + })), o; + }, exports.version = function() { + var numbers = process.version.replace("v", "").split("."); + return { + major: parseInt(numbers[0], 10), + minor: parseInt(numbers[1], 10), + patch: parseInt(numbers[2], 10) + }; + }, exports.defer = defer; +}, function(module, exports, __webpack_require__) { + var Key = __webpack_require__(26), Fingerprint = __webpack_require__(97), Signature = __webpack_require__(48), PrivateKey = __webpack_require__(28), Certificate = __webpack_require__(102), Identity = __webpack_require__(103), errs = __webpack_require__(44); + module.exports = { + Key: Key, + parseKey: Key.parse, + Fingerprint: Fingerprint, + parseFingerprint: Fingerprint.parse, + Signature: Signature, + parseSignature: Signature.parse, + PrivateKey: PrivateKey, + parsePrivateKey: PrivateKey.parse, + generatePrivateKey: PrivateKey.generate, + Certificate: Certificate, + parseCertificate: Certificate.parse, + createSelfSignedCertificate: Certificate.createSelfSigned, + createCertificate: Certificate.create, + Identity: Identity, + identityFromDN: Identity.parseDN, + identityForHost: Identity.forHost, + identityForUser: Identity.forUser, + identityForEmail: Identity.forEmail, + identityFromArray: Identity.fromArray, + FingerprintFormatError: errs.FingerprintFormatError, + InvalidAlgorithmError: errs.InvalidAlgorithmError, + KeyParseError: errs.KeyParseError, + SignatureParseError: errs.SignatureParseError, + KeyEncryptedError: errs.KeyEncryptedError, + CertificateParseError: errs.CertificateParseError + }; +}, function(module, exports) { + module.exports = { + newInvalidAsn1Error: function(msg) { + var e = new Error; + return e.name = "InvalidAsn1Error", e.message = msg || "", e; + } + }; +}, function(module, exports) { + module.exports = { + EOC: 0, + Boolean: 1, + Integer: 2, + BitString: 3, + OctetString: 4, + Null: 5, + OID: 6, + ObjectDescriptor: 7, + External: 8, + Real: 9, + Enumeration: 10, + PDV: 11, + Utf8String: 12, + RelativeOID: 13, + Sequence: 16, + Set: 17, + NumericString: 18, + PrintableString: 19, + T61String: 20, + VideotexString: 21, + IA5String: 22, + UTCTime: 23, + GeneralizedTime: 24, + GraphicString: 25, + VisibleString: 26, + GeneralString: 28, + UniversalString: 29, + CharacterString: 30, + BMPString: 31, + Constructor: 32, + Context: 128 + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + DiffieHellman: DiffieHellman, + generateECDSA: function(curve) { + var parts = []; + if (CRYPTO_HAVE_ECDH) { + var osCurve = { + nistp256: "prime256v1", + nistp384: "secp384r1", + nistp521: "secp521r1" + }[curve], dh = crypto.createECDH(osCurve); + return dh.generateKeys(), parts.push({ + name: "curve", + data: Buffer.from(curve) + }), parts.push({ + name: "Q", + data: dh.getPublicKey() + }), parts.push({ + name: "d", + data: dh.getPrivateKey() + }), new PrivateKey({ + type: "ecdsa", + curve: curve, + parts: parts + }); + } + var ecParams = new X9ECParameters(curve), n = ecParams.getN(), cByteLen = Math.ceil((n.bitLength() + 64) / 8), c = new jsbn(crypto.randomBytes(cByteLen)), n1 = n.subtract(jsbn.ONE), priv = c.mod(n1).add(jsbn.ONE), pub = ecParams.getG().multiply(priv); + return priv = Buffer.from(priv.toByteArray()), pub = Buffer.from(ecParams.getCurve().encodePointHex(pub), "hex"), + parts.push({ + name: "curve", + data: Buffer.from(curve) + }), parts.push({ + name: "Q", + data: pub + }), parts.push({ + name: "d", + data: priv + }), new PrivateKey({ + type: "ecdsa", + curve: curve, + parts: parts + }); + }, + generateED25519: function() { + var pair = nacl.sign.keyPair(), priv = Buffer.from(pair.secretKey), pub = Buffer.from(pair.publicKey); + assert.strictEqual(priv.length, 64), assert.strictEqual(pub.length, 32); + var parts = []; + return parts.push({ + name: "A", + data: pub + }), parts.push({ + name: "k", + data: priv.slice(0, 32) + }), new PrivateKey({ + type: "ed25519", + parts: parts + }); + } + }; + var assert = __webpack_require__(15), crypto = __webpack_require__(9), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), utils = __webpack_require__(27), nacl = __webpack_require__(99), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), CRYPTO_HAVE_ECDH = void 0 !== crypto.createECDH, ec = (__webpack_require__(1057), + __webpack_require__(151)), jsbn = __webpack_require__(98).BigInteger; + function DiffieHellman(key) { + if (utils.assertCompatible(key, Key, [ 1, 4 ], "key"), this._isPriv = PrivateKey.isPrivateKey(key, [ 1, 3 ]), + this._algo = key.type, this._curve = key.curve, this._key = key, "dsa" === key.type) { + if (!CRYPTO_HAVE_ECDH) throw new Error("Due to bugs in the node 0.10 crypto API, node 0.12.x or later is required to use DH"); + this._dh = crypto.createDiffieHellman(key.part.p.data, void 0, key.part.g.data, void 0), + this._p = key.part.p, this._g = key.part.g, this._isPriv && this._dh.setPrivateKey(key.part.x.data), + this._dh.setPublicKey(key.part.y.data); + } else if ("ecdsa" === key.type) { + if (!CRYPTO_HAVE_ECDH) return this._ecParams = new X9ECParameters(this._curve), + void (this._isPriv && (this._priv = new ECPrivate(this._ecParams, key.part.d.data))); + var curve = { + nistp256: "prime256v1", + nistp384: "secp384r1", + nistp521: "secp521r1" + }[key.curve]; + if (this._dh = crypto.createECDH(curve), "object" != typeof this._dh || "function" != typeof this._dh.setPrivateKey) return CRYPTO_HAVE_ECDH = !1, + void DiffieHellman.call(this, key); + this._isPriv && this._dh.setPrivateKey(key.part.d.data), this._dh.setPublicKey(key.part.Q.data); + } else { + if ("curve25519" !== key.type) throw new Error("DH not supported for " + key.type + " keys"); + this._isPriv && (utils.assertCompatible(key, PrivateKey, [ 1, 5 ], "key"), this._priv = key.part.k.data); + } + } + function X9ECParameters(name) { + var params = algs.curves[name]; + assert.object(params); + var p = new jsbn(params.p), a = new jsbn(params.a), b = new jsbn(params.b), n = new jsbn(params.n), h = jsbn.ONE, curve = new ec.ECCurveFp(p, a, b), G = curve.decodePointHex(params.G.toString("hex")); + this.curve = curve, this.g = G, this.n = n, this.h = h; + } + function ECPublic(params, buffer) { + this._params = params, 0 === buffer[0] && (buffer = buffer.slice(1)), this._pub = params.getCurve().decodePointHex(buffer.toString("hex")); + } + function ECPrivate(params, buffer) { + this._params = params, this._priv = new jsbn(utils.mpNormalize(buffer)); + } + DiffieHellman.prototype.getPublicKey = function() { + return this._isPriv ? this._key.toPublic() : this._key; + }, DiffieHellman.prototype.getPrivateKey = function() { + return this._isPriv ? this._key : void 0; + }, DiffieHellman.prototype.getKey = DiffieHellman.prototype.getPrivateKey, DiffieHellman.prototype._keyCheck = function(pk, isPub) { + if (assert.object(pk, "key"), isPub || utils.assertCompatible(pk, PrivateKey, [ 1, 3 ], "key"), + utils.assertCompatible(pk, Key, [ 1, 4 ], "key"), pk.type !== this._algo) throw new Error("A " + pk.type + " key cannot be used in " + this._algo + " Diffie-Hellman"); + if (pk.curve !== this._curve) throw new Error("A key from the " + pk.curve + " curve cannot be used with a " + this._curve + " Diffie-Hellman"); + "dsa" === pk.type && (assert.deepEqual(pk.part.p, this._p, "DSA key prime does not match"), + assert.deepEqual(pk.part.g, this._g, "DSA key generator does not match")); + }, DiffieHellman.prototype.setKey = function(pk) { + if (this._keyCheck(pk), "dsa" === pk.type) this._dh.setPrivateKey(pk.part.x.data), + this._dh.setPublicKey(pk.part.y.data); else if ("ecdsa" === pk.type) CRYPTO_HAVE_ECDH ? (this._dh.setPrivateKey(pk.part.d.data), + this._dh.setPublicKey(pk.part.Q.data)) : this._priv = new ECPrivate(this._ecParams, pk.part.d.data); else if ("curve25519" === pk.type) { + var k = pk.part.k; + pk.part.k || (k = pk.part.r), this._priv = k.data, 0 === this._priv[0] && (this._priv = this._priv.slice(1)), + this._priv = this._priv.slice(0, 32); + } + this._key = pk, this._isPriv = !0; + }, DiffieHellman.prototype.setPrivateKey = DiffieHellman.prototype.setKey, DiffieHellman.prototype.computeSecret = function(otherpk) { + if (this._keyCheck(otherpk, !0), !this._isPriv) throw new Error("DH exchange has not been initialized with a private key yet"); + var pub; + if ("dsa" === this._algo) return this._dh.computeSecret(otherpk.part.y.data); + if ("ecdsa" === this._algo) return CRYPTO_HAVE_ECDH ? this._dh.computeSecret(otherpk.part.Q.data) : (pub = new ECPublic(this._ecParams, otherpk.part.Q.data), + this._priv.deriveSharedSecret(pub)); + if ("curve25519" === this._algo) { + for (pub = otherpk.part.A.data; 0 === pub[0] && pub.length > 32; ) pub = pub.slice(1); + var priv = this._priv; + assert.strictEqual(pub.length, 32), assert.strictEqual(priv.length, 32); + var secret = nacl.box.before(new Uint8Array(pub), new Uint8Array(priv)); + return Buffer.from(secret); + } + throw new Error("Invalid algorithm: " + this._algo); + }, DiffieHellman.prototype.generateKey = function() { + var priv, pub, parts = []; + if ("dsa" === this._algo) return this._dh.generateKeys(), parts.push({ + name: "p", + data: this._p.data + }), parts.push({ + name: "q", + data: this._key.part.q.data + }), parts.push({ + name: "g", + data: this._g.data + }), parts.push({ + name: "y", + data: this._dh.getPublicKey() + }), parts.push({ + name: "x", + data: this._dh.getPrivateKey() + }), this._key = new PrivateKey({ + type: "dsa", + parts: parts + }), this._isPriv = !0, this._key; + if ("ecdsa" === this._algo) { + if (CRYPTO_HAVE_ECDH) return this._dh.generateKeys(), parts.push({ + name: "curve", + data: Buffer.from(this._curve) + }), parts.push({ + name: "Q", + data: this._dh.getPublicKey() + }), parts.push({ + name: "d", + data: this._dh.getPrivateKey() + }), this._key = new PrivateKey({ + type: "ecdsa", + curve: this._curve, + parts: parts + }), this._isPriv = !0, this._key; + var n = this._ecParams.getN(), r = new jsbn(crypto.randomBytes(n.bitLength())), n1 = n.subtract(jsbn.ONE); + return priv = r.mod(n1).add(jsbn.ONE), pub = this._ecParams.getG().multiply(priv), + priv = Buffer.from(priv.toByteArray()), pub = Buffer.from(this._ecParams.getCurve().encodePointHex(pub), "hex"), + this._priv = new ECPrivate(this._ecParams, priv), parts.push({ + name: "curve", + data: Buffer.from(this._curve) + }), parts.push({ + name: "Q", + data: pub + }), parts.push({ + name: "d", + data: priv + }), this._key = new PrivateKey({ + type: "ecdsa", + curve: this._curve, + parts: parts + }), this._isPriv = !0, this._key; + } + if ("curve25519" === this._algo) { + var pair = nacl.box.keyPair(); + return priv = Buffer.from(pair.secretKey), pub = Buffer.from(pair.publicKey), priv = Buffer.concat([ priv, pub ]), + assert.strictEqual(priv.length, 64), assert.strictEqual(pub.length, 32), parts.push({ + name: "A", + data: pub + }), parts.push({ + name: "k", + data: priv + }), this._key = new PrivateKey({ + type: "curve25519", + parts: parts + }), this._isPriv = !0, this._key; + } + throw new Error("Invalid algorithm: " + this._algo); + }, DiffieHellman.prototype.generateKeys = DiffieHellman.prototype.generateKey, X9ECParameters.prototype.getCurve = function() { + return this.curve; + }, X9ECParameters.prototype.getG = function() { + return this.g; + }, X9ECParameters.prototype.getN = function() { + return this.n; + }, X9ECParameters.prototype.getH = function() { + return this.h; + }, ECPrivate.prototype.deriveSharedSecret = function(pubKey) { + assert.ok(pubKey instanceof ECPublic); + var S = pubKey._pub.multiply(this._priv); + return Buffer.from(S.getX().toBigInteger().toByteArray()); + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + return pem.read(buf, options, "pkcs1"); + }, + readPkcs1: function(alg, type, der) { + switch (alg) { + case "RSA": + if ("public" === type) return (function(der) { + var n = readMPInt(der, "modulus"), e = readMPInt(der, "exponent"); + return new Key({ + type: "rsa", + parts: [ { + name: "e", + data: e + }, { + name: "n", + data: n + } ] + }); + })(der); + if ("private" === type) return (function(der) { + var version = readMPInt(der, "version"); + assert.strictEqual(version[0], 0); + var n = readMPInt(der, "modulus"), e = readMPInt(der, "public exponent"), d = readMPInt(der, "private exponent"), p = readMPInt(der, "prime1"), q = readMPInt(der, "prime2"), dmodp = readMPInt(der, "exponent1"), dmodq = readMPInt(der, "exponent2"), iqmp = readMPInt(der, "iqmp"); + return new PrivateKey({ + type: "rsa", + parts: [ { + name: "n", + data: n + }, { + name: "e", + data: e + }, { + name: "d", + data: d + }, { + name: "iqmp", + data: iqmp + }, { + name: "p", + data: p + }, { + name: "q", + data: q + }, { + name: "dmodp", + data: dmodp + }, { + name: "dmodq", + data: dmodq + } ] + }); + })(der); + throw new Error("Unknown key type: " + type); + + case "DSA": + if ("public" === type) return (function(der) { + var y = readMPInt(der, "y"), p = readMPInt(der, "p"), q = readMPInt(der, "q"), g = readMPInt(der, "g"); + return new Key({ + type: "dsa", + parts: [ { + name: "y", + data: y + }, { + name: "p", + data: p + }, { + name: "q", + data: q + }, { + name: "g", + data: g + } ] + }); + })(der); + if ("private" === type) return (function(der) { + var version = readMPInt(der, "version"); + assert.strictEqual(version.readUInt8(0), 0); + var p = readMPInt(der, "p"), q = readMPInt(der, "q"), g = readMPInt(der, "g"), y = readMPInt(der, "y"), x = readMPInt(der, "x"); + return new PrivateKey({ + type: "dsa", + parts: [ { + name: "p", + data: p + }, { + name: "q", + data: q + }, { + name: "g", + data: g + }, { + name: "y", + data: y + }, { + name: "x", + data: x + } ] + }); + })(der); + throw new Error("Unknown key type: " + type); + + case "EC": + case "ECDSA": + if ("private" === type) return (function(der) { + var version = readMPInt(der, "version"); + assert.strictEqual(version.readUInt8(0), 1); + var d = der.readString(asn1.Ber.OctetString, !0); + der.readSequence(160); + var curve = readECDSACurve(der); + assert.string(curve, "a known elliptic curve"), der.readSequence(161); + var Q = der.readString(asn1.Ber.BitString, !0); + Q = utils.ecNormalize(Q); + var key = { + type: "ecdsa", + parts: [ { + name: "curve", + data: Buffer.from(curve) + }, { + name: "Q", + data: Q + }, { + name: "d", + data: d + } ] + }; + return new PrivateKey(key); + })(der); + if ("public" === type) return (function(der) { + der.readSequence(); + var oid = der.readOID(); + assert.strictEqual(oid, "1.2.840.10045.2.1", "must be ecPublicKey"); + for (var curve, curveOid = der.readOID(), curves = Object.keys(algs.curves), j = 0; j < curves.length; ++j) { + var c = curves[j]; + if (algs.curves[c].pkcs8oid === curveOid) { + curve = c; + break; + } + } + assert.string(curve, "a known ECDSA named curve"); + var Q = der.readString(asn1.Ber.BitString, !0); + Q = utils.ecNormalize(Q); + var key = { + type: "ecdsa", + parts: [ { + name: "curve", + data: Buffer.from(curve) + }, { + name: "Q", + data: Q + } ] + }; + return new Key(key); + })(der); + throw new Error("Unknown key type: " + type); + + case "EDDSA": + case "EdDSA": + if ("private" === type) return (function(der) { + var version = readMPInt(der, "version"); + assert.strictEqual(version.readUInt8(0), 1); + var k = der.readString(asn1.Ber.OctetString, !0); + der.readSequence(160); + var oid = der.readOID(); + assert.strictEqual(oid, "1.3.101.112", "the ed25519 curve identifier"), der.readSequence(161); + var A = utils.readBitString(der), key = { + type: "ed25519", + parts: [ { + name: "A", + data: utils.zeroPadToLength(A, 32) + }, { + name: "k", + data: k + } ] + }; + return new PrivateKey(key); + })(der); + throw new Error(type + " keys not supported with EdDSA"); + + default: + throw new Error("Unknown key algo: " + alg); + } + }, + write: function(key, options) { + return pem.write(key, options, "pkcs1"); + }, + writePkcs1: function(der, key) { + switch (der.startSequence(), key.type) { + case "rsa": + PrivateKey.isPrivateKey(key) ? (function(der, key) { + var ver = Buffer.from([ 0 ]); + der.writeBuffer(ver, asn1.Ber.Integer), der.writeBuffer(key.part.n.data, asn1.Ber.Integer), + der.writeBuffer(key.part.e.data, asn1.Ber.Integer), der.writeBuffer(key.part.d.data, asn1.Ber.Integer), + der.writeBuffer(key.part.p.data, asn1.Ber.Integer), der.writeBuffer(key.part.q.data, asn1.Ber.Integer), + key.part.dmodp && key.part.dmodq || utils.addRSAMissing(key), der.writeBuffer(key.part.dmodp.data, asn1.Ber.Integer), + der.writeBuffer(key.part.dmodq.data, asn1.Ber.Integer), der.writeBuffer(key.part.iqmp.data, asn1.Ber.Integer); + })(der, key) : (function(der, key) { + der.writeBuffer(key.part.n.data, asn1.Ber.Integer), der.writeBuffer(key.part.e.data, asn1.Ber.Integer); + })(der, key); + break; + + case "dsa": + PrivateKey.isPrivateKey(key) ? (function(der, key) { + var ver = Buffer.from([ 0 ]); + der.writeBuffer(ver, asn1.Ber.Integer), der.writeBuffer(key.part.p.data, asn1.Ber.Integer), + der.writeBuffer(key.part.q.data, asn1.Ber.Integer), der.writeBuffer(key.part.g.data, asn1.Ber.Integer), + der.writeBuffer(key.part.y.data, asn1.Ber.Integer), der.writeBuffer(key.part.x.data, asn1.Ber.Integer); + })(der, key) : (function(der, key) { + der.writeBuffer(key.part.y.data, asn1.Ber.Integer), der.writeBuffer(key.part.p.data, asn1.Ber.Integer), + der.writeBuffer(key.part.q.data, asn1.Ber.Integer), der.writeBuffer(key.part.g.data, asn1.Ber.Integer); + })(der, key); + break; + + case "ecdsa": + PrivateKey.isPrivateKey(key) ? (function(der, key) { + var ver = Buffer.from([ 1 ]); + der.writeBuffer(ver, asn1.Ber.Integer), der.writeBuffer(key.part.d.data, asn1.Ber.OctetString), + der.startSequence(160); + var curve = key.part.curve.data.toString(), curveOid = algs.curves[curve].pkcs8oid; + assert.string(curveOid, "a known ECDSA named curve"), der.writeOID(curveOid), der.endSequence(), + der.startSequence(161); + var Q = utils.ecNormalize(key.part.Q.data, !0); + der.writeBuffer(Q, asn1.Ber.BitString), der.endSequence(); + })(der, key) : (function(der, key) { + der.startSequence(), der.writeOID("1.2.840.10045.2.1"); + var curve = key.part.curve.data.toString(), curveOid = algs.curves[curve].pkcs8oid; + assert.string(curveOid, "a known ECDSA named curve"), der.writeOID(curveOid), der.endSequence(); + var Q = utils.ecNormalize(key.part.Q.data, !0); + der.writeBuffer(Q, asn1.Ber.BitString); + })(der, key); + break; + + case "ed25519": + PrivateKey.isPrivateKey(key) ? (function(der, key) { + var ver = Buffer.from([ 1 ]); + der.writeBuffer(ver, asn1.Ber.Integer), der.writeBuffer(key.part.k.data, asn1.Ber.OctetString), + der.startSequence(160), der.writeOID("1.3.101.112"), der.endSequence(), der.startSequence(161), + utils.writeBitString(der, key.part.A.data), der.endSequence(); + })(der, key) : (function(der, key) { + throw new Error("Public keys are not supported for EdDSA PKCS#1"); + })(); + break; + + default: + throw new Error("Unknown key algo: " + key.type); + } + der.endSequence(); + } + }; + var assert = __webpack_require__(15), asn1 = __webpack_require__(49), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), utils = __webpack_require__(27), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), pem = __webpack_require__(56), readECDSACurve = __webpack_require__(101).readECDSACurve; + function readMPInt(der, nm) { + return assert.strictEqual(der.peek(), asn1.Ber.Integer, nm + " is not an Integer"), + utils.mpNormalize(der.readString(asn1.Ber.Integer, !0)); + } +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + "string" != typeof buf && (assert.buffer(buf, "buf"), buf = buf.toString("ascii")); + var lines = buf.split("\n"); + if (lines[0].match(/^Private-key-format\: v1/)) { + var algElems = lines[1].split(" "), algoNum = parseInt(algElems[1], 10), algoName = algElems[2]; + if (!supportedAlgosById[algoNum]) throw new Error("Unsupported algorithm: " + algoName); + return (function(alg, elements) { + if (supportedAlgosById[alg].match(/^RSA-/)) return (function(elements) { + var rsaParams = {}; + elements.forEach((function(element) { + "Modulus:" === element.split(" ")[0] ? rsaParams.n = elementToBuf(element) : "PublicExponent:" === element.split(" ")[0] ? rsaParams.e = elementToBuf(element) : "PrivateExponent:" === element.split(" ")[0] ? rsaParams.d = elementToBuf(element) : "Prime1:" === element.split(" ")[0] ? rsaParams.p = elementToBuf(element) : "Prime2:" === element.split(" ")[0] ? rsaParams.q = elementToBuf(element) : "Exponent1:" === element.split(" ")[0] ? rsaParams.dmodp = elementToBuf(element) : "Exponent2:" === element.split(" ")[0] ? rsaParams.dmodq = elementToBuf(element) : "Coefficient:" === element.split(" ")[0] && (rsaParams.iqmp = elementToBuf(element)); + })); + var key = { + type: "rsa", + parts: [ { + name: "e", + data: utils.mpNormalize(rsaParams.e) + }, { + name: "n", + data: utils.mpNormalize(rsaParams.n) + }, { + name: "d", + data: utils.mpNormalize(rsaParams.d) + }, { + name: "p", + data: utils.mpNormalize(rsaParams.p) + }, { + name: "q", + data: utils.mpNormalize(rsaParams.q) + }, { + name: "dmodp", + data: utils.mpNormalize(rsaParams.dmodp) + }, { + name: "dmodq", + data: utils.mpNormalize(rsaParams.dmodq) + }, { + name: "iqmp", + data: utils.mpNormalize(rsaParams.iqmp) + } ] + }; + return new PrivateKey(key); + })(elements); + if ("ECDSA-P384-SHA384" === supportedAlgosById[alg] || "ECDSA-P256-SHA256" === supportedAlgosById[alg]) { + var d = Buffer.from(elements[0].split(" ")[1], "base64"), curve = "nistp384", size = 384; + "ECDSA-P256-SHA256" === supportedAlgosById[alg] && (curve = "nistp256", size = 256); + var Q = utils.publicFromPrivateECDSA(curve, d).part.Q.data, ecdsaKey = { + type: "ecdsa", + curve: curve, + size: size, + parts: [ { + name: "curve", + data: Buffer.from(curve) + }, { + name: "d", + data: d + }, { + name: "Q", + data: Q + } ] + }; + return new PrivateKey(ecdsaKey); + } + throw new Error("Unsupported algorithm: " + supportedAlgosById[alg]); + })(algoNum, lines.slice(2)); + } + for (var line = 0; lines[line].match(/^\;/); ) line++; + if ((lines[line].match(/\. IN KEY /) || lines[line].match(/\. IN DNSKEY /)) && 0 === lines[line + 1].length) return (function(keyString) { + var elems = keyString.split(" "), algorithm = parseInt(elems[5], 10); + if (!supportedAlgosById[algorithm]) throw new Error("Unsupported algorithm: " + algorithm); + var base64key = elems.slice(6, elems.length).join(), keyBuffer = Buffer.from(base64key, "base64"); + if (supportedAlgosById[algorithm].match(/^RSA-/)) { + var publicExponentLen = keyBuffer.readUInt8(0); + if (3 != publicExponentLen && 1 != publicExponentLen) throw new Error("Cannot parse dnssec key: unsupported exponent length"); + var publicExponent = keyBuffer.slice(1, publicExponentLen + 1); + publicExponent = utils.mpNormalize(publicExponent); + var modulus = keyBuffer.slice(1 + publicExponentLen); + modulus = utils.mpNormalize(modulus); + var rsaKey = { + type: "rsa", + parts: [] + }; + return rsaKey.parts.push({ + name: "e", + data: publicExponent + }), rsaKey.parts.push({ + name: "n", + data: modulus + }), new Key(rsaKey); + } + if ("ECDSA-P384-SHA384" === supportedAlgosById[algorithm] || "ECDSA-P256-SHA256" === supportedAlgosById[algorithm]) { + var curve = "nistp384", size = 384; + supportedAlgosById[algorithm].match(/^ECDSA-P256-SHA256/) && (curve = "nistp256", + size = 256); + var ecdsaKey = { + type: "ecdsa", + curve: curve, + size: size, + parts: [ { + name: "curve", + data: Buffer.from(curve) + }, { + name: "Q", + data: utils.ecNormalize(keyBuffer) + } ] + }; + return new Key(ecdsaKey); + } + throw new Error("Unsupported algorithm: " + supportedAlgosById[algorithm]); + })(lines[line]); + throw new Error("Cannot parse dnssec key"); + }, + write: function(key, options) { + if (PrivateKey.isPrivateKey(key)) { + if ("rsa" === key.type) return (function(key, options) { + key.part.dmodp && key.part.dmodq || utils.addRSAMissing(key); + var out = ""; + out += "Private-key-format: v1.3\n", out += "Algorithm: " + (function(opts) { + if (opts && opts.hashAlgo && "sha1" !== opts.hashAlgo) { + if ("sha256" === opts.hashAlgo) return "8 (RSASHA256)"; + if ("sha512" === opts.hashAlgo) return "10 (RSASHA512)"; + throw new Error("Unknown or unsupported hash: " + opts.hashAlgo); + } + return "5 (RSASHA1)"; + })(options) + "\n", out += "Modulus: " + utils.mpDenormalize(key.part.n.data).toString("base64") + "\n", + out += "PublicExponent: " + utils.mpDenormalize(key.part.e.data).toString("base64") + "\n", + out += "PrivateExponent: " + utils.mpDenormalize(key.part.d.data).toString("base64") + "\n", + out += "Prime1: " + utils.mpDenormalize(key.part.p.data).toString("base64") + "\n", + out += "Prime2: " + utils.mpDenormalize(key.part.q.data).toString("base64") + "\n", + out += "Exponent1: " + utils.mpDenormalize(key.part.dmodp.data).toString("base64") + "\n", + out += "Exponent2: " + utils.mpDenormalize(key.part.dmodq.data).toString("base64") + "\n", + out += "Coefficient: " + utils.mpDenormalize(key.part.iqmp.data).toString("base64") + "\n"; + var timestamp = new Date; + return out += "Created: " + dnssecTimestamp(timestamp) + "\n", out += "Publish: " + dnssecTimestamp(timestamp) + "\n", + out += "Activate: " + dnssecTimestamp(timestamp) + "\n", Buffer.from(out, "ascii"); + })(key, options); + if ("ecdsa" === key.type) return (function(key, options) { + var out = ""; + if (out += "Private-key-format: v1.3\n", "nistp256" === key.curve) out += "Algorithm: 13 (ECDSAP256SHA256)\n"; else { + if ("nistp384" !== key.curve) throw new Error("Unsupported curve"); + out += "Algorithm: 14 (ECDSAP384SHA384)\n"; + } + out += "PrivateKey: " + key.part.d.data.toString("base64") + "\n"; + var timestamp = new Date; + return out += "Created: " + dnssecTimestamp(timestamp) + "\n", out += "Publish: " + dnssecTimestamp(timestamp) + "\n", + out += "Activate: " + dnssecTimestamp(timestamp) + "\n", Buffer.from(out, "ascii"); + })(key); + throw new Error("Unsupported algorithm: " + key.type); + } + throw Key.isKey(key) ? new Error('Format "dnssec" only supports writing private keys') : new Error("key is not a Key or PrivateKey"); + } + }; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), utils = __webpack_require__(27), supportedAlgos = (__webpack_require__(100), + __webpack_require__(233), { + "rsa-sha1": 5, + "rsa-sha256": 8, + "rsa-sha512": 10, + "ecdsa-p256-sha256": 13, + "ecdsa-p384-sha384": 14 + }), supportedAlgosById = {}; + function elementToBuf(e) { + return Buffer.from(e.split(" ")[1], "base64"); + } + function dnssecTimestamp(date) { + var timestampStr = date.getFullYear() + "" + (date.getMonth() + 1) + date.getUTCDate(); + return (timestampStr += "" + date.getUTCHours() + date.getUTCMinutes()) + date.getUTCSeconds(); + } + Object.keys(supportedAlgos).forEach((function(k) { + supportedAlgosById[supportedAlgos[k]] = k.toUpperCase(); + })); +}, function(module, exports) { + function Caseless(dict) { + this.dict = dict || {}; + } + Caseless.prototype.set = function(name, value, clobber) { + if ("object" != typeof name) { + void 0 === clobber && (clobber = !0); + var has = this.has(name); + return !clobber && has ? this.dict[has] = this.dict[has] + "," + value : this.dict[has || name] = value, + has; + } + for (var i in name) this.set(i, name[i], value); + }, Caseless.prototype.has = function(name) { + for (var keys = Object.keys(this.dict), i = (name = name.toLowerCase(), 0); i < keys.length; i++) if (keys[i].toLowerCase() === name) return keys[i]; + return !1; + }, Caseless.prototype.get = function(name) { + var result, _key; + name = name.toLowerCase(); + var headers = this.dict; + return Object.keys(headers).forEach((function(key) { + _key = key.toLowerCase(), name === _key && (result = headers[key]); + })), result; + }, Caseless.prototype.swap = function(name) { + var has = this.has(name); + if (has !== name) { + if (!has) throw new Error('There is no header than matches "' + name + '"'); + this.dict[name] = this.dict[has], delete this.dict[has]; + } + }, Caseless.prototype.del = function(name) { + var has = this.has(name); + return delete this.dict[has || name]; + }, module.exports = function(dict) { + return new Caseless(dict); + }, module.exports.httpify = function(resp, headers) { + var c = new Caseless(headers); + return resp.setHeader = function(key, value, clobber) { + if (void 0 !== value) return c.set(key, value, clobber); + }, resp.hasHeader = function(key) { + return c.has(key); + }, resp.getHeader = function(key) { + return c.get(key); + }, resp.removeHeader = function(key) { + return c.del(key); + }, resp.headers = c.dict, c; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var URI = __webpack_require__(1085), equal = __webpack_require__(238), util = __webpack_require__(80), SchemaObject = __webpack_require__(496), traverse = __webpack_require__(1087); + function resolve(compile, root, ref) { + var refVal = this._refs[ref]; + if ("string" == typeof refVal) { + if (!this._refs[refVal]) return resolve.call(this, compile, root, refVal); + refVal = this._refs[refVal]; + } + if ((refVal = refVal || this._schemas[ref]) instanceof SchemaObject) return inlineRef(refVal.schema, this._opts.inlineRefs) ? refVal.schema : refVal.validate || this._compile(refVal); + var schema, v, baseId, res = resolveSchema.call(this, root, ref); + return res && (schema = res.schema, root = res.root, baseId = res.baseId), schema instanceof SchemaObject ? v = schema.validate || compile.call(this, schema.schema, root, void 0, baseId) : void 0 !== schema && (v = inlineRef(schema, this._opts.inlineRefs) ? schema : compile.call(this, schema, root, void 0, baseId)), + v; + } + function resolveSchema(root, ref) { + var p = URI.parse(ref), refPath = _getFullPath(p), baseId = getFullPath(this._getId(root.schema)); + if (0 === Object.keys(root.schema).length || refPath !== baseId) { + var id = normalizeId(refPath), refVal = this._refs[id]; + if ("string" == typeof refVal) return resolveRecursive.call(this, root, refVal, p); + if (refVal instanceof SchemaObject) refVal.validate || this._compile(refVal), root = refVal; else { + if (!((refVal = this._schemas[id]) instanceof SchemaObject)) return; + if (refVal.validate || this._compile(refVal), id == normalizeId(ref)) return { + schema: refVal, + root: root, + baseId: baseId + }; + root = refVal; + } + if (!root.schema) return; + baseId = getFullPath(this._getId(root.schema)); + } + return getJsonPointer.call(this, p, baseId, root.schema, root); + } + function resolveRecursive(root, ref, parsedRef) { + var res = resolveSchema.call(this, root, ref); + if (res) { + var schema = res.schema, baseId = res.baseId; + root = res.root; + var id = this._getId(schema); + return id && (baseId = resolveUrl(baseId, id)), getJsonPointer.call(this, parsedRef, baseId, schema, root); + } + } + module.exports = resolve, resolve.normalizeId = normalizeId, resolve.fullPath = getFullPath, + resolve.url = resolveUrl, resolve.ids = function(schema) { + var schemaId = normalizeId(this._getId(schema)), baseIds = { + "": schemaId + }, fullPaths = { + "": getFullPath(schemaId, !1) + }, localRefs = {}, self = this; + return traverse(schema, { + allKeys: !0 + }, (function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { + if ("" !== jsonPtr) { + var id = self._getId(sch), baseId = baseIds[parentJsonPtr], fullPath = fullPaths[parentJsonPtr] + "/" + parentKeyword; + if (void 0 !== keyIndex && (fullPath += "/" + ("number" == typeof keyIndex ? keyIndex : util.escapeFragment(keyIndex))), + "string" == typeof id) { + id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id); + var refVal = self._refs[id]; + if ("string" == typeof refVal && (refVal = self._refs[refVal]), refVal && refVal.schema) { + if (!equal(sch, refVal.schema)) throw new Error('id "' + id + '" resolves to more than one schema'); + } else if (id != normalizeId(fullPath)) if ("#" == id[0]) { + if (localRefs[id] && !equal(sch, localRefs[id])) throw new Error('id "' + id + '" resolves to more than one schema'); + localRefs[id] = sch; + } else self._refs[id] = fullPath; + } + baseIds[jsonPtr] = baseId, fullPaths[jsonPtr] = fullPath; + } + })), localRefs; + }, resolve.inlineRef = inlineRef, resolve.schema = resolveSchema; + var PREVENT_SCOPE_CHANGE = util.toHash([ "properties", "patternProperties", "enum", "dependencies", "definitions" ]); + function getJsonPointer(parsedRef, baseId, schema, root) { + if (parsedRef.fragment = parsedRef.fragment || "", "/" == parsedRef.fragment.slice(0, 1)) { + for (var parts = parsedRef.fragment.split("/"), i = 1; i < parts.length; i++) { + var part = parts[i]; + if (part) { + if (void 0 === (schema = schema[part = util.unescapeFragment(part)])) break; + var id; + if (!PREVENT_SCOPE_CHANGE[part] && ((id = this._getId(schema)) && (baseId = resolveUrl(baseId, id)), + schema.$ref)) { + var $ref = resolveUrl(baseId, schema.$ref), res = resolveSchema.call(this, root, $ref); + res && (schema = res.schema, root = res.root, baseId = res.baseId); + } + } + } + return void 0 !== schema && schema !== root.schema ? { + schema: schema, + root: root, + baseId: baseId + } : void 0; + } + } + var SIMPLE_INLINED = util.toHash([ "type", "format", "pattern", "maxLength", "minLength", "maxProperties", "minProperties", "maxItems", "minItems", "maximum", "minimum", "uniqueItems", "multipleOf", "required", "enum" ]); + function inlineRef(schema, limit) { + return !1 !== limit && (void 0 === limit || !0 === limit ? checkNoRef(schema) : limit ? countKeys(schema) <= limit : void 0); + } + function checkNoRef(schema) { + var item; + if (Array.isArray(schema)) { + for (var i = 0; i < schema.length; i++) if ("object" == typeof (item = schema[i]) && !checkNoRef(item)) return !1; + } else for (var key in schema) { + if ("$ref" == key) return !1; + if ("object" == typeof (item = schema[key]) && !checkNoRef(item)) return !1; + } + return !0; + } + function countKeys(schema) { + var item, count = 0; + if (Array.isArray(schema)) { + for (var i = 0; i < schema.length; i++) if ("object" == typeof (item = schema[i]) && (count += countKeys(item)), + count == 1 / 0) return 1 / 0; + } else for (var key in schema) { + if ("$ref" == key) return 1 / 0; + if (SIMPLE_INLINED[key]) count++; else if ("object" == typeof (item = schema[key]) && (count += countKeys(item) + 1), + count == 1 / 0) return 1 / 0; + } + return count; + } + function getFullPath(id, normalize) { + return !1 !== normalize && (id = normalizeId(id)), _getFullPath(URI.parse(id)); + } + function _getFullPath(p) { + return URI.serialize(p).split("#")[0] + "#"; + } + var TRAILING_SLASH_HASH = /#\/?$/; + function normalizeId(id) { + return id ? id.replace(TRAILING_SLASH_HASH, "") : ""; + } + function resolveUrl(baseId, id) { + return id = normalizeId(id), URI.resolve(baseId, id); + } +}, function(module, exports, __webpack_require__) { + "use strict"; + var isArray = Array.isArray, keyList = Object.keys, hasProp = Object.prototype.hasOwnProperty; + module.exports = function equal(a, b) { + if (a === b) return !0; + if (a && b && "object" == typeof a && "object" == typeof b) { + var i, length, key, arrA = isArray(a), arrB = isArray(b); + if (arrA && arrB) { + if ((length = a.length) != b.length) return !1; + for (i = length; 0 != i--; ) if (!equal(a[i], b[i])) return !1; + return !0; + } + if (arrA != arrB) return !1; + var dateA = a instanceof Date, dateB = b instanceof Date; + if (dateA != dateB) return !1; + if (dateA && dateB) return a.getTime() == b.getTime(); + var regexpA = a instanceof RegExp, regexpB = b instanceof RegExp; + if (regexpA != regexpB) return !1; + if (regexpA && regexpB) return a.toString() == b.toString(); + var keys = keyList(a); + if ((length = keys.length) !== keyList(b).length) return !1; + for (i = length; 0 != i--; ) if (!hasProp.call(b, keys[i])) return !1; + for (i = length; 0 != i--; ) if (!equal(a[key = keys[i]], b[key])) return !1; + return !0; + } + return a != a && b != b; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var resolve = __webpack_require__(237); + function MissingRefError(baseId, ref, message) { + this.message = message || MissingRefError.message(baseId, ref), this.missingRef = resolve.url(baseId, ref), + this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef)); + } + function errorSubclass(Subclass) { + return Subclass.prototype = Object.create(Error.prototype), Subclass.prototype.constructor = Subclass, + Subclass; + } + module.exports = { + Validation: errorSubclass((function(errors) { + this.message = "validation failed", this.errors = errors, this.ajv = this.validation = !0; + })), + MissingRef: errorSubclass(MissingRefError) + }, MissingRefError.message = function(baseId, ref) { + return "can't resolve reference " + ref + " from id " + baseId; + }; +}, function(module, exports) { + const cache = {}; + function getRandom() { + return (Math.random() + 1).toString(36).substring(7); + } + module.exports = { + set: data => { + let key = getRandom(); + for (;cache[key]; ) key = getRandom(); + return cache[key] = data, key; + }, + get: key => cache[key] || null + }; +}, function(module, exports, __webpack_require__) { + var Chainsaw = __webpack_require__(1154), EventEmitter = __webpack_require__(5).EventEmitter, Buffers = __webpack_require__(1156), Vars = __webpack_require__(1157), Stream = __webpack_require__(3).Stream; + function decodeLEu(bytes) { + for (var acc = 0, i = 0; i < bytes.length; i++) acc += Math.pow(256, i) * bytes[i]; + return acc; + } + function decodeBEu(bytes) { + for (var acc = 0, i = 0; i < bytes.length; i++) acc += Math.pow(256, bytes.length - i - 1) * bytes[i]; + return acc; + } + function decodeBEs(bytes) { + var val = decodeBEu(bytes); + return 128 == (128 & bytes[0]) && (val -= Math.pow(256, bytes.length)), val; + } + function decodeLEs(bytes) { + var val = decodeLEu(bytes); + return 128 == (128 & bytes[bytes.length - 1]) && (val -= Math.pow(256, bytes.length)), + val; + } + function words(decode) { + var self = {}; + return [ 1, 2, 4, 8 ].forEach((function(bytes) { + var bits = 8 * bytes; + self["word" + bits + "le"] = self["word" + bits + "lu"] = decode(bytes, decodeLEu), + self["word" + bits + "ls"] = decode(bytes, decodeLEs), self["word" + bits + "be"] = self["word" + bits + "bu"] = decode(bytes, decodeBEu), + self["word" + bits + "bs"] = decode(bytes, decodeBEs); + })), self.word8 = self.word8u = self.word8be, self.word8s = self.word8bs, self; + } + (exports = module.exports = function(bufOrEm, eventName) { + if (Buffer.isBuffer(bufOrEm)) return exports.parse(bufOrEm); + var s = exports.stream(); + return bufOrEm && bufOrEm.pipe ? bufOrEm.pipe(s) : bufOrEm && (bufOrEm.on(eventName || "data", (function(buf) { + s.write(buf); + })), bufOrEm.on("end", (function() { + s.end(); + }))), s; + }).stream = function(input) { + if (input) return exports.apply(null, arguments); + var pending = null; + function getBytes(bytes, cb, skip) { + pending = { + bytes: bytes, + skip: skip, + cb: function(buf) { + pending = null, cb(buf); + } + }, dispatch(); + } + var offset = null; + function dispatch() { + if (pending) if ("function" == typeof pending) pending(); else { + var buf, bytes = offset + pending.bytes; + buffers.length >= bytes && (null == offset ? (buf = buffers.splice(0, bytes), pending.skip || (buf = buf.slice())) : (pending.skip || (buf = buffers.slice(offset, bytes)), + offset = bytes), pending.skip ? pending.cb() : pending.cb(buf)); + } else caughtEnd && (done = !0); + } + function builder(saw) { + function next() { + done || saw.next(); + } + var self = words((function(bytes, cb) { + return function(name) { + getBytes(bytes, (function(buf) { + vars.set(name, cb(buf)), next(); + })); + }; + })); + return self.tap = function(cb) { + saw.nest(cb, vars.store); + }, self.into = function(key, cb) { + vars.get(key) || vars.set(key, {}); + var parent = vars; + vars = Vars(parent.get(key)), saw.nest((function() { + cb.apply(this, arguments), this.tap((function() { + vars = parent; + })); + }), vars.store); + }, self.flush = function() { + vars.store = {}, next(); + }, self.loop = function(cb) { + var end = !1; + saw.nest(!1, (function loop() { + this.vars = vars.store, cb.call(this, (function() { + end = !0, next(); + }), vars.store), this.tap(function() { + end ? saw.next() : loop.call(this); + }.bind(this)); + }), vars.store); + }, self.buffer = function(name, bytes) { + "string" == typeof bytes && (bytes = vars.get(bytes)), getBytes(bytes, (function(buf) { + vars.set(name, buf), next(); + })); + }, self.skip = function(bytes) { + "string" == typeof bytes && (bytes = vars.get(bytes)), getBytes(bytes, (function() { + next(); + })); + }, self.scan = function(name, search) { + if ("string" == typeof search) search = new Buffer(search); else if (!Buffer.isBuffer(search)) throw new Error("search must be a Buffer or a string"); + var taken = 0; + pending = function() { + var pos = buffers.indexOf(search, offset + taken), i = pos - offset - taken; + -1 !== pos ? (pending = null, null != offset ? (vars.set(name, buffers.slice(offset, offset + taken + i)), + offset += taken + i + search.length) : (vars.set(name, buffers.slice(0, taken + i)), + buffers.splice(0, taken + i + search.length)), next(), dispatch()) : i = Math.max(buffers.length - search.length - offset - taken, 0), + taken += i; + }, dispatch(); + }, self.peek = function(cb) { + offset = 0, saw.nest((function() { + cb.call(this, vars.store), this.tap((function() { + offset = null; + })); + })); + }, self; + } + var stream = Chainsaw.light(builder); + stream.writable = !0; + var buffers = Buffers(); + stream.write = function(buf) { + buffers.push(buf), dispatch(); + }; + var vars = Vars(), done = !1, caughtEnd = !1; + return stream.end = function() { + caughtEnd = !0; + }, stream.pipe = Stream.prototype.pipe, Object.getOwnPropertyNames(EventEmitter.prototype).forEach((function(name) { + stream[name] = EventEmitter.prototype[name]; + })), stream; + }, exports.parse = function(buffer) { + var self = words((function(bytes, cb) { + return function(name) { + if (offset + bytes <= buffer.length) { + var buf = buffer.slice(offset, offset + bytes); + offset += bytes, vars.set(name, cb(buf)); + } else vars.set(name, null); + return self; + }; + })), offset = 0, vars = Vars(); + return self.vars = vars.store, self.tap = function(cb) { + return cb.call(self, vars.store), self; + }, self.into = function(key, cb) { + vars.get(key) || vars.set(key, {}); + var parent = vars; + return vars = Vars(parent.get(key)), cb.call(self, vars.store), vars = parent, self; + }, self.loop = function(cb) { + for (var end = !1, ender = function() { + end = !0; + }; !1 === end; ) cb.call(self, ender, vars.store); + return self; + }, self.buffer = function(name, size) { + "string" == typeof size && (size = vars.get(size)); + var buf = buffer.slice(offset, Math.min(buffer.length, offset + size)); + return offset += size, vars.set(name, buf), self; + }, self.skip = function(bytes) { + return "string" == typeof bytes && (bytes = vars.get(bytes)), offset += bytes, self; + }, self.scan = function(name, search) { + if ("string" == typeof search) search = new Buffer(search); else if (!Buffer.isBuffer(search)) throw new Error("search must be a Buffer or a string"); + vars.set(name, null); + for (var i = 0; i + offset <= buffer.length - search.length + 1; i++) { + for (var j = 0; j < search.length && buffer[offset + i + j] === search[j]; j++) ; + if (j === search.length) break; + } + return vars.set(name, buffer.slice(offset, offset + i)), offset += i + search.length, + self; + }, self.peek = function(cb) { + var was = offset; + return cb.call(self, vars.store), offset = was, self; + }, self.flush = function() { + return vars.store = {}, self; + }, self.eof = function() { + return offset >= buffer.length; + }, self; + }; +}, function(module, exports, __webpack_require__) { + module.exports = Abstract; + var Stream = __webpack_require__(3).Stream; + function Abstract() { + Stream.call(this); + } + function decorate(er, code, self) { + return er instanceof Error || (er = new Error(er)), er.code = er.code || code, er.path = er.path || self.path, + er.fstream_type = er.fstream_type || self.type, er.fstream_path = er.fstream_path || self.path, + self._path !== self.path && (er.fstream_unc_path = er.fstream_unc_path || self._path), + self.linkpath && (er.fstream_linkpath = er.fstream_linkpath || self.linkpath), er.fstream_class = er.fstream_class || self.constructor.name, + er.fstream_stack = er.fstream_stack || (new Error).stack.split(/\n/).slice(3).map((function(s) { + return s.replace(/^ {4}at /, ""); + })), er; + } + __webpack_require__(7)(Abstract, Stream), Abstract.prototype.on = function(ev, fn) { + return "ready" === ev && this.ready ? process.nextTick(fn.bind(this)) : Stream.prototype.on.call(this, ev, fn), + this; + }, Abstract.prototype.abort = function() { + this._aborted = !0, this.emit("abort"); + }, Abstract.prototype.destroy = function() {}, Abstract.prototype.warn = function(msg, code) { + var er = decorate(msg, code, this); + this.listeners("warn") ? this.emit("warn", er) : console.error("%s %s\npath = %s\nsyscall = %s\nfstream_type = %s\nfstream_path = %s\nfstream_unc_path = %s\nfstream_class = %s\nfstream_stack =\n%s\n", code || "UNKNOWN", er.stack, er.path, er.syscall, er.fstream_type, er.fstream_path, er.fstream_unc_path, er.fstream_class, er.fstream_stack.join("\n")); + }, Abstract.prototype.info = function(msg, code) { + this.emit("info", msg, code); + }, Abstract.prototype.error = function(msg, code, th) { + var er = decorate(msg, code, this); + if (th) throw er; + this.emit("error", er); + }; +}, function(module, exports) { + module.exports = function collect(stream) { + if (!stream._collected) { + if (stream._paused) return stream.on("resume", collect.bind(null, stream)); + stream._collected = !0, stream.pause(), stream.on("data", save), stream.on("end", save); + var buf = []; + stream.on("entry", saveEntry); + var orig, entryBuffer = []; + stream.on("proxy", (function(p) { + p.pause(); + })), stream.pipe = (orig = stream.pipe, function(dest) { + var e = 0; + return (function unblockEntry() { + var entry = entryBuffer[e++]; + if (!entry) return stream.removeListener("entry", saveEntry), stream.removeListener("data", save), + stream.removeListener("end", save), stream.pipe = orig, dest && stream.pipe(dest), + buf.forEach((function(b) { + b ? stream.emit("data", b) : stream.emit("end"); + })), void stream.resume(); + entry.on("end", unblockEntry), dest ? dest.add(entry) : stream.emit("entry", entry); + })(), dest; + }); + } + function save(b) { + "string" == typeof b && (b = new Buffer(b)), Buffer.isBuffer(b) && !b.length || buf.push(b); + } + function saveEntry(e) { + collect(e), entryBuffer.push(e); + } + }; }, function(module) { module.exports = [ [ "a140", "", 62 ], [ "a180", "", 32 ], [ "a240", "", 62 ], [ "a280", "", 32 ], [ "a2ab", "", 5 ], [ "a2e3", "€" ], [ "a2ef", "" ], [ "a2fd", "" ], [ "a340", "", 62 ], [ "a380", "", 31, " " ], [ "a440", "", 62 ], [ "a480", "", 32 ], [ "a4f4", "", 10 ], [ "a540", "", 62 ], [ "a580", "", 32 ], [ "a5f7", "", 7 ], [ "a640", "", 62 ], [ "a680", "", 32 ], [ "a6b9", "", 7 ], [ "a6d9", "", 6 ], [ "a6ec", "" ], [ "a6f3", "" ], [ "a6f6", "", 8 ], [ "a740", "", 62 ], [ "a780", "", 32 ], [ "a7c2", "", 14 ], [ "a7f2", "", 12 ], [ "a896", "", 10 ], [ "a8bc", "" ], [ "a8bf", "ǹ" ], [ "a8c1", "" ], [ "a8ea", "", 20 ], [ "a958", "" ], [ "a95b", "" ], [ "a95d", "" ], [ "a989", "〾⿰", 11 ], [ "a997", "", 12 ], [ "a9f0", "", 14 ], [ "aaa1", "", 93 ], [ "aba1", "", 93 ], [ "aca1", "", 93 ], [ "ada1", "", 93 ], [ "aea1", "", 93 ], [ "afa1", "", 93 ], [ "d7fa", "", 4 ], [ "f8a1", "", 93 ], [ "f9a1", "", 93 ], [ "faa1", "", 93 ], [ "fba1", "", 93 ], [ "fca1", "", 93 ], [ "fda1", "", 93 ], [ "fe50", "⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌" ], [ "fe80", "䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓", 6, "䶮", 93 ] ]; }, function(module) { @@ -17350,66 +23536,11 @@ for (i = 0, len = exports.skips.length; i < len; i++) if (exports.skips[i].test(name)) return !1; for (i = 0, len = exports.names.length; i < len; i++) if (exports.names[i].test(name)) return !0; return !1; - }, exports.humanize = __webpack_require__(441), exports.names = [], exports.skips = [], + }, exports.humanize = __webpack_require__(542), exports.names = [], exports.skips = [], exports.formatters = {}; }, function(module, exports, __webpack_require__) { "use strict"; - var deprecate = __webpack_require__(36)("body-parser"), parsers = Object.create(null); - function createParserGetter(name) { - return function() { - return (function(parserName) { - var parser = parsers[parserName]; - if (void 0 !== parser) return parser; - switch (parserName) { - case "json": - parser = __webpack_require__(449); - break; - - case "raw": - parser = __webpack_require__(457); - break; - - case "text": - parser = __webpack_require__(458); - break; - - case "urlencoded": - parser = __webpack_require__(459); - } - return parsers[parserName] = parser; - })(name); - }; - } - exports = module.exports = deprecate.function((function(options) { - var opts = {}; - if (options) for (var prop in options) "type" !== prop && (opts[prop] = options[prop]); - var _urlencoded = exports.urlencoded(opts), _json = exports.json(opts); - return function(req, res, next) { - _json(req, res, (function(err) { - if (err) return next(err); - _urlencoded(req, res, next); - })); - }; - }), "bodyParser: use individual json/urlencoded middlewares"), Object.defineProperty(exports, "json", { - configurable: !0, - enumerable: !0, - get: createParserGetter("json") - }), Object.defineProperty(exports, "raw", { - configurable: !0, - enumerable: !0, - get: createParserGetter("raw") - }), Object.defineProperty(exports, "text", { - configurable: !0, - enumerable: !0, - get: createParserGetter("text") - }), Object.defineProperty(exports, "urlencoded", { - configurable: !0, - enumerable: !0, - get: createParserGetter("urlencoded") - }); -}, function(module, exports, __webpack_require__) { - "use strict"; - var EventEmitter = __webpack_require__(4).EventEmitter; + var EventEmitter = __webpack_require__(5).EventEmitter; function lazyProperty(obj, prop, getter) { Object.defineProperty(obj, prop, { configurable: !0, @@ -17433,9 +23564,9 @@ return stack; }, Error.stackTraceLimit = 2, Error.captureStackTrace(obj); var stack = obj.stack.slice(); - return Error.prepareStackTrace = prep, Error.stackTraceLimit = limit, stack[0].toString ? toString : __webpack_require__(447); + return Error.prepareStackTrace = prep, Error.stackTraceLimit = limit, stack[0].toString ? toString : __webpack_require__(548); })), lazyProperty(module.exports, "eventListenerCount", (function() { - return EventEmitter.listenerCount || __webpack_require__(448); + return EventEmitter.listenerCount || __webpack_require__(549); })); }, function(module, exports, __webpack_require__) { "use strict"; @@ -17580,7 +23711,7 @@ }, module.exports.fromDepth = flattenFromDepth; }, function(module, exports, __webpack_require__) { "use strict"; - var pathRegexp = __webpack_require__(198), debug = __webpack_require__(6)("router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; + var pathRegexp = __webpack_require__(161), debug = __webpack_require__(8)("router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; function Layer(path, options, fn) { if (!(this instanceof Layer)) return new Layer(path, options, fn); debug("new %o", path); @@ -17631,44 +23762,6 @@ } return !0; }; -}, function(module, exports) { - module.exports = function pathtoRegexp(path, keys, options) { - keys = keys || []; - var m, strict = (options = options || {}).strict, end = !1 !== options.end, flags = options.sensitive ? "" : "i", extraOffset = 0, keysOffset = keys.length, i = 0, name = 0; - if (path instanceof RegExp) { - for (;m = MATCHING_GROUP_REGEXP.exec(path.source); ) keys.push({ - name: name++, - optional: !1, - offset: m.index - }); - return path; - } - if (Array.isArray(path)) return path = path.map((function(value) { - return pathtoRegexp(value, keys, options).source; - })), new RegExp("(?:" + path.join("|") + ")", flags); - for (path = ("^" + path + (strict ? "" : "/" === path[path.length - 1] ? "?" : "/?")).replace(/\/\(/g, "/(?:").replace(/([\/\.])/g, "\\$1").replace(/(\\\/)?(\\\.)?:(\w+)(\(.*?\))?(\*)?(\?)?/g, (function(match, slash, format, key, capture, star, optional, offset) { - slash = slash || "", format = format || "", capture = capture || "([^\\/" + format + "]+?)", - optional = optional || "", keys.push({ - name: key, - optional: !!optional, - offset: offset + extraOffset - }); - var result = (optional ? "" : slash) + "(?:" + format + (optional ? slash : "") + capture + (star ? "((?:[\\/" + format + "].+?)?)" : "") + ")" + optional; - return extraOffset += result.length - match.length, result; - })).replace(/\*/g, (function(star, index) { - for (var len = keys.length; len-- > keysOffset && keys[len].offset > index; ) keys[len].offset += 3; - return "(.*)"; - })); m = MATCHING_GROUP_REGEXP.exec(path); ) { - for (var escapeCount = 0, index = m.index; "\\" === path.charAt(--index); ) escapeCount++; - escapeCount % 2 != 1 && ((keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) && keys.splice(keysOffset + i, 0, { - name: name++, - optional: !1, - offset: m.index - }), i++); - } - return path += end ? "$" : "/" === path[path.length - 1] ? "" : "(?=\\/|$)", new RegExp(path, flags); - }; - var MATCHING_GROUP_REGEXP = /\((?!\?)/g; }, function(module, exports) { module.exports = function wrappy(fn, cb) { if (fn && cb) return wrappy(fn)(cb); @@ -17686,7 +23779,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = DHT; - var bencode = __webpack_require__(129), Buffer = __webpack_require__(26).Buffer, debug = __webpack_require__(471)("bittorrent-dht"), equals = __webpack_require__(84), EventEmitter = __webpack_require__(4).EventEmitter, inherits = __webpack_require__(11), KBucket = __webpack_require__(475), krpc = __webpack_require__(476), LRU = __webpack_require__(480), randombytes = __webpack_require__(85), simpleSha1 = __webpack_require__(130); + var bencode = __webpack_require__(164), Buffer = __webpack_require__(25).Buffer, debug = __webpack_require__(572)("bittorrent-dht"), equals = __webpack_require__(112), EventEmitter = __webpack_require__(5).EventEmitter, inherits = __webpack_require__(7), KBucket = __webpack_require__(576), krpc = __webpack_require__(577), LRU = __webpack_require__(581), randombytes = __webpack_require__(113), simpleSha1 = __webpack_require__(165); function DHT(opts) { if (!(this instanceof DHT)) return new DHT(opts); opts || (opts = {}); @@ -18236,7 +24329,7 @@ for (i = 0, len = createDebug.skips.length; i < len; i++) if (createDebug.skips[i].test(name)) return !1; for (i = 0, len = createDebug.names.length; i < len; i++) if (createDebug.names[i].test(name)) return !0; return !1; - }, createDebug.humanize = __webpack_require__(202), Object.keys(env).forEach((function(key) { + }, createDebug.humanize = __webpack_require__(255), Object.keys(env).forEach((function(key) { createDebug[key] = env[key]; })), createDebug.instances = [], createDebug.names = [], createDebug.skips = [], createDebug.formatters = {}, createDebug.selectColor = selectColor, createDebug.enable(createDebug.load()), @@ -18316,7 +24409,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - const os = __webpack_require__(17), hasFlag = __webpack_require__(474), env = process.env; + const os = __webpack_require__(23), hasFlag = __webpack_require__(575), env = process.env; let forceColor; function getSupportLevel(stream) { const level = (function(stream) { @@ -18363,11 +24456,11 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - encode: __webpack_require__(489), - decode: __webpack_require__(490) + encode: __webpack_require__(590), + decode: __webpack_require__(591) }; }, function(module, exports, __webpack_require__) { - var ipaddr = __webpack_require__(131), compact2string = function(buf) { + var ipaddr = __webpack_require__(166), compact2string = function(buf) { switch (buf.length) { case 6: return buf[0] + "." + buf[1] + "." + buf[2] + "." + buf[3] + ":" + buf.readUInt16BE(4); @@ -18402,7 +24495,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - const PassThrough = __webpack_require__(5).PassThrough, zlib = __webpack_require__(44), mimicResponse = __webpack_require__(493); + const PassThrough = __webpack_require__(3).PassThrough, zlib = __webpack_require__(45), mimicResponse = __webpack_require__(594); module.exports = response => { if (-1 === [ "gzip", "deflate" ].indexOf(response.headers["content-encoding"])) return response; const unzip = zlib.createUnzip(), stream = new PassThrough; @@ -18410,32 +24503,10 @@ "Z_BUF_ERROR" !== err.code ? stream.emit("error", err) : stream.end(); })), response.pipe(unzip).pipe(stream), stream; }; -}, function(module, exports) { - module.exports = isTypedArray, isTypedArray.strict = isStrictTypedArray, isTypedArray.loose = isLooseTypedArray; - var toString = Object.prototype.toString, names = { - "[object Int8Array]": !0, - "[object Int16Array]": !0, - "[object Int32Array]": !0, - "[object Uint8Array]": !0, - "[object Uint8ClampedArray]": !0, - "[object Uint16Array]": !0, - "[object Uint32Array]": !0, - "[object Float32Array]": !0, - "[object Float64Array]": !0 - }; - function isTypedArray(arr) { - return isStrictTypedArray(arr) || isLooseTypedArray(arr); - } - function isStrictTypedArray(arr) { - return arr instanceof Int8Array || arr instanceof Int16Array || arr instanceof Int32Array || arr instanceof Uint8Array || arr instanceof Uint8ClampedArray || arr instanceof Uint16Array || arr instanceof Uint32Array || arr instanceof Float32Array || arr instanceof Float64Array; - } - function isLooseTypedArray(arr) { - return names[toString.call(arr)]; - } }, function(module, exports, __webpack_require__) { "use strict"; - var WS = module.exports = __webpack_require__(210); - WS.Server = __webpack_require__(509), WS.Sender = __webpack_require__(212), WS.Receiver = __webpack_require__(215), + var WS = module.exports = __webpack_require__(262); + WS.Server = __webpack_require__(610), WS.Sender = __webpack_require__(264), WS.Receiver = __webpack_require__(267), WS.createServer = function(options, fn) { var server = new WS.Server(options); return "function" == typeof fn && server.on("connection", fn), server; @@ -18445,7 +24516,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var url = __webpack_require__(7), util = __webpack_require__(0), http = __webpack_require__(12), https = __webpack_require__(19), crypto = __webpack_require__(21), stream = __webpack_require__(5), Ultron = __webpack_require__(500), Options = __webpack_require__(211), Sender = __webpack_require__(212), Receiver = __webpack_require__(215), SenderHixie = __webpack_require__(507), ReceiverHixie = __webpack_require__(508), Extensions = __webpack_require__(216), PerMessageDeflate = __webpack_require__(87), EventEmitter = __webpack_require__(4).EventEmitter; + var url = __webpack_require__(6), util = __webpack_require__(0), http = __webpack_require__(11), https = __webpack_require__(21), crypto = __webpack_require__(9), stream = __webpack_require__(3), Ultron = __webpack_require__(601), Options = __webpack_require__(263), Sender = __webpack_require__(264), Receiver = __webpack_require__(267), SenderHixie = __webpack_require__(608), ReceiverHixie = __webpack_require__(609), Extensions = __webpack_require__(268), PerMessageDeflate = __webpack_require__(115), EventEmitter = __webpack_require__(5).EventEmitter; function WebSocket(address, protocols, options) { if (this instanceof WebSocket == 0) return new WebSocket(address, protocols, options); EventEmitter.call(this), protocols && !Array.isArray(protocols) && "object" == typeof protocols && (options = protocols, @@ -18811,8 +24882,8 @@ }, Object.freeze(values), Object.freeze(this); }; }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(4), util = __webpack_require__(0), crypto = __webpack_require__(21), ErrorCodes = (events.EventEmitter, - __webpack_require__(213)), bufferUtil = __webpack_require__(214), PerMessageDeflate = __webpack_require__(87); + var events = __webpack_require__(5), util = __webpack_require__(0), crypto = __webpack_require__(9), ErrorCodes = (events.EventEmitter, + __webpack_require__(265)), bufferUtil = __webpack_require__(266), PerMessageDeflate = __webpack_require__(115); function Sender(socket, extensions) { if (this instanceof Sender == 0) throw new TypeError("Classes can't be function-called"); events.EventEmitter.call(this), this._socket = socket, this.extensions = extensions || {}, @@ -18941,14 +25012,14 @@ "use strict"; var bufferUtil; try { - bufferUtil = __webpack_require__(501); + bufferUtil = __webpack_require__(602); } catch (e) { - bufferUtil = __webpack_require__(502); + bufferUtil = __webpack_require__(603); } module.exports = bufferUtil.BufferUtil || bufferUtil; }, function(module, exports, __webpack_require__) { __webpack_require__(0); - var isValidUTF8 = __webpack_require__(503), ErrorCodes = __webpack_require__(213), BufferPool = __webpack_require__(506), bufferUtil = __webpack_require__(214), PerMessageDeflate = __webpack_require__(87); + var isValidUTF8 = __webpack_require__(604), ErrorCodes = __webpack_require__(265), BufferPool = __webpack_require__(607), bufferUtil = __webpack_require__(266), PerMessageDeflate = __webpack_require__(115); function Receiver(extensions, maxPayload) { if (this instanceof Receiver == 0) throw new TypeError("Classes can't be function-called"); "number" == typeof extensions && (maxPayload = extensions, extensions = {}); @@ -19385,7 +25456,7 @@ parsed.createdBy && (torrent["created by"] = parsed.createdBy), parsed.comment && (torrent.comment = parsed.comment), bencode.encode(torrent); }; - var bencode = __webpack_require__(129), path = __webpack_require__(3), sha1 = __webpack_require__(130), uniq = __webpack_require__(86); + var bencode = __webpack_require__(164), path = __webpack_require__(4), sha1 = __webpack_require__(165), uniq = __webpack_require__(114); function decodeTorrentFile(torrent) { Buffer.isBuffer(torrent) && (torrent = bencode.decode(torrent)), ensure(torrent.info, "info"), ensure(torrent.info["name.utf-8"] || torrent.info.name, "info.name"), ensure(torrent.info["piece length"], "info['piece length']"), @@ -19566,8 +25637,8 @@ }; }; }, function(module, exports, __webpack_require__) { - __webpack_require__(55); - var paths, once = __webpack_require__(25), child = __webpack_require__(22), byline = __webpack_require__(73), retrieveKeyframes = __webpack_require__(537).get, SUPPORTED_QUALITIES = [ 320, 480, 720 ], instances = {}, videoApi = module.exports; + __webpack_require__(70); + var paths, once = __webpack_require__(34), child = __webpack_require__(31), byline = __webpack_require__(93), retrieveKeyframes = __webpack_require__(636).get, SUPPORTED_QUALITIES = [ 320, 480, 720 ], instances = {}, videoApi = module.exports; videoApi.probeVideo = function(mri, cb) { if (!paths.ffmpeg) return cb(new Error("no ffmpeg found; call HLS.locateExecutables()")); var res = { @@ -19686,8 +25757,8 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var async = __webpack_require__(30), fs = __webpack_require__(2), util = __webpack_require__(0), debug = (__webpack_require__(56).crc32, - __webpack_require__(32)("matroska:document")), schema = __webpack_require__(9), Element = __webpack_require__(222), tools = __webpack_require__(57), tagClasses = {}; + var async = __webpack_require__(38), fs = __webpack_require__(2), util = __webpack_require__(0), debug = (__webpack_require__(71).crc32, + __webpack_require__(40)("matroska:document")), schema = __webpack_require__(12), Element = __webpack_require__(274), tools = __webpack_require__(72), tagClasses = {}; function Document() { this.type = "D", this._name = "Document", this.tagId = 0, this._nextTagId = 1, this.ownerDocument = this, this.masterType = !0; @@ -19697,16 +25768,16 @@ var idx = list.indexOf(tag); return !(idx < 0 || (list.splice(idx, 1), 0)); } - tagClasses[schema.byName.Segment] = __webpack_require__(551), tagClasses[schema.byName.Attachments] = __webpack_require__(556), - tagClasses[schema.byName.AttachedFile] = __webpack_require__(557), tagClasses[schema.byName.Tags] = __webpack_require__(558), - tagClasses[schema.byName.Tag] = __webpack_require__(559), tagClasses[schema.byName.Targets] = __webpack_require__(560), - tagClasses[schema.byName.SimpleTag] = __webpack_require__(561), tagClasses[schema.byName.SeekHead] = __webpack_require__(562), - tagClasses[schema.byName.Seek] = __webpack_require__(563), tagClasses[schema.byName.Info] = __webpack_require__(564), - tagClasses[schema.byName.Tracks] = __webpack_require__(565), tagClasses[schema.byName.TrackEntry] = __webpack_require__(566), - tagClasses[schema.byName.Video] = __webpack_require__(567), tagClasses[schema.byName.Audio] = __webpack_require__(568), - tagClasses[schema.byName.CRC_32] = __webpack_require__(569), tagClasses[schema.byName.Cues] = __webpack_require__(570), - tagClasses[schema.byName.CuePoint] = __webpack_require__(571), tagClasses[schema.byName.CueReference] = __webpack_require__(572), - tagClasses[schema.byName.CueTrackPositions] = __webpack_require__(573), util.inherits(Document, Element), + tagClasses[schema.byName.Segment] = __webpack_require__(650), tagClasses[schema.byName.Attachments] = __webpack_require__(655), + tagClasses[schema.byName.AttachedFile] = __webpack_require__(656), tagClasses[schema.byName.Tags] = __webpack_require__(657), + tagClasses[schema.byName.Tag] = __webpack_require__(658), tagClasses[schema.byName.Targets] = __webpack_require__(659), + tagClasses[schema.byName.SimpleTag] = __webpack_require__(660), tagClasses[schema.byName.SeekHead] = __webpack_require__(661), + tagClasses[schema.byName.Seek] = __webpack_require__(662), tagClasses[schema.byName.Info] = __webpack_require__(663), + tagClasses[schema.byName.Tracks] = __webpack_require__(664), tagClasses[schema.byName.TrackEntry] = __webpack_require__(665), + tagClasses[schema.byName.Video] = __webpack_require__(666), tagClasses[schema.byName.Audio] = __webpack_require__(667), + tagClasses[schema.byName.CRC_32] = __webpack_require__(668), tagClasses[schema.byName.Cues] = __webpack_require__(669), + tagClasses[schema.byName.CuePoint] = __webpack_require__(670), tagClasses[schema.byName.CueReference] = __webpack_require__(671), + tagClasses[schema.byName.CueTrackPositions] = __webpack_require__(672), util.inherits(Document, Element), module.exports = Document, Document.prototype.createElement = function(ebmlID, start, length) { var tagClass = tagClasses[ebmlID]; return tagClass ? new tagClass(this, this._nextTagId++, start, length) : new Element(this, this._nextTagId++, ebmlID, start, length); @@ -19828,7 +25899,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var assert = __webpack_require__(34), async = __webpack_require__(30), crc32 = __webpack_require__(56).crc32, stream = __webpack_require__(5), util = __webpack_require__(0), fs = __webpack_require__(2), debug = __webpack_require__(32)("matroska:element"), schema = __webpack_require__(9), tools = __webpack_require__(57), MillenniumTime = Date.UTC(2001, 0, 1); + var assert = __webpack_require__(22), async = __webpack_require__(38), crc32 = __webpack_require__(71).crc32, stream = __webpack_require__(3), util = __webpack_require__(0), fs = __webpack_require__(2), debug = __webpack_require__(40)("matroska:element"), schema = __webpack_require__(12), tools = __webpack_require__(72), MillenniumTime = Date.UTC(2001, 0, 1); function Element(doc, tagId, ebmlID, start, length) { if (!doc || "D" !== doc.type) throw new Error("Invalid document"); this.ownerDocument = doc, this.tagId = tagId; @@ -20333,10 +26404,10 @@ })(); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(32)("matroska:source"), module.exports = function() {}; + __webpack_require__(40)("matroska:source"), module.exports = function() {}; }, function(module, exports, __webpack_require__) { "use strict"; - var fs = __webpack_require__(2), util = __webpack_require__(0), debug = __webpack_require__(32)("matroska:fileSource"), AbstractSource = __webpack_require__(134), fileSourceKey = 0; + var fs = __webpack_require__(2), util = __webpack_require__(0), debug = __webpack_require__(40)("matroska:fileSource"), AbstractSource = __webpack_require__(171), fileSourceKey = 0; function FileSource(filename) { AbstractSource.call(this), this.filename = filename; } @@ -20378,7 +26449,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(2); - var util = __webpack_require__(0), debug = __webpack_require__(32)("matroska:httpSource"), http = __webpack_require__(574).http, Url = __webpack_require__(7), AbstractSource = __webpack_require__(134), httpSourceKey = 0; + var util = __webpack_require__(0), debug = __webpack_require__(40)("matroska:httpSource"), http = __webpack_require__(673).http, Url = __webpack_require__(6), AbstractSource = __webpack_require__(171), httpSourceKey = 0; function HttpSource(url, configuration) { AbstractSource.call(this), this.configuration = configuration || {}, this.url = url; } @@ -20417,11 +26488,11 @@ return "[HttpSource url=" + this.url + "]"; }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), http = __webpack_require__(12), https = __webpack_require__(19), url = __webpack_require__(7), stream = __webpack_require__(5), debug = __webpack_require__(6)("needle"), stringify = __webpack_require__(579).build, multipart = __webpack_require__(580), auth = __webpack_require__(581), cookies = __webpack_require__(582), parsers = __webpack_require__(583), decoder = __webpack_require__(591), version = __webpack_require__(592).version, user_agent = "Needle/" + version; + var fs = __webpack_require__(2), http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), stream = __webpack_require__(3), debug = __webpack_require__(8)("needle"), stringify = __webpack_require__(678).build, multipart = __webpack_require__(679), auth = __webpack_require__(680), cookies = __webpack_require__(681), parsers = __webpack_require__(682), decoder = __webpack_require__(690), version = __webpack_require__(691).version, user_agent = "Needle/" + version; user_agent += " (Node.js " + process.version + "; " + process.platform + " " + process.arch + ")"; var close_by_default = !http.Agent || http.Agent.defaultMaxSockets != 1 / 0, decompressors = {}; try { - var zlib = __webpack_require__(44); + var zlib = __webpack_require__(45); decompressors["x-deflate"] = zlib.Inflate, decompressors.deflate = zlib.Inflate, decompressors["x-gzip"] = zlib.Gunzip, decompressors.gzip = zlib.Gunzip; } catch (e) {} @@ -26616,7 +32687,7 @@ return isPositiveInteger(x) && x <= MAX_SAFE_INTEGER; }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(14); + var CharsetMatch = __webpack_require__(18); module.exports = function(getChar, name) { return function(input) { var limit = input.length / 4 * 4, numValid = 0, numInvalid = 0, hasBOM = !1, confidence = 0; @@ -26639,8 +32710,8 @@ it.charValue = it.charValue << 8 | thirdByte, thirdByte < 161 && (it.error = !0)) : secondByte < 161 && (it.error = !0)), 0 == it.done; } - __webpack_require__(14); - var base = __webpack_require__(103); + __webpack_require__(18); + var base = __webpack_require__(131); module.exports = function(commonChars) { return base(commonChars, nextChar); }; @@ -27307,7 +33378,7 @@ }.apply(exports, [])) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }).call(this); }, function(module, exports, __webpack_require__) { - var xmlBuilder = __webpack_require__(646), dateFormatter = __webpack_require__(323); + var xmlBuilder = __webpack_require__(745), dateFormatter = __webpack_require__(375); function serializeValue(value, xml) { for (var stack = [ { value: value, @@ -27406,7 +33477,7 @@ return zeroPad(date.getFullYear(), 4) + zeroPad(date.getMonth() + 1, 2) + zeroPad(date.getDate(), 2) + "T" + zeroPad(date.getHours(), 2) + ":" + zeroPad(date.getMinutes(), 2) + ":" + zeroPad(date.getSeconds(), 2); }; }, function(module, exports, __webpack_require__) { - var sax = __webpack_require__(649), dateFormatter = __webpack_require__(323), Deserializer = function(encoding) { + var sax = __webpack_require__(748), dateFormatter = __webpack_require__(375), Deserializer = function(encoding) { this.type = null, this.responseType = null, this.stack = [], this.marks = [], this.data = [], this.methodname = null, this.encoding = encoding || "utf8", this.value = !1, this.callback = null, this.error = null, this.parser = sax.createStream(), this.parser.on("opentag", this.onOpentag.bind(this)), @@ -27570,7 +33641,7 @@ this.type = "methodcall"; }, module.exports = Deserializer; }, function(module, exports, __webpack_require__) { - const profiles = __webpack_require__(141), profiler = __webpack_require__(654), applyProfile = __webpack_require__(658); + const profiles = __webpack_require__(178), profiler = __webpack_require__(753), applyProfile = __webpack_require__(757); module.exports = { profiles: profiles, profiler: profiler, @@ -27579,7 +33650,7 @@ }, function(module) { module.exports = { name: "stremio-server", - version: "4.20.9", + version: "4.20.11", stremioRuntimeVersion: "4.0", description: "Stremio HTTP server", main: "init.js", @@ -27589,6 +33660,8 @@ "build-tizen": "node prepare.js && webpack -p --define process.env.TIZEN_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.tizen.js", "build-webos": "node prepare.js && webpack -p --define process.env.WEBOS_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.webos.js", "build-unity": "node prepare.js && webpack -p --define process.env.UNITY_ENV='1' --config webpack.config.unity.js", + "build-updater-tizen": "node prepare.js && webpack -p --define process.env.TIZEN_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.updater-tizen.js", + "build-updater-webos": "node prepare.js && webpack -p --define process.env.WEBOS_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.updater-webos.js", test: "jest" }, keywords: [ "server" ], @@ -27633,7 +33706,9 @@ walk: "2.x.x", xml2js: "0.4.x", xmlbuilder: "4.2.0", - "ytdl-core": "4.9.0" + "ytdl-core": "4.9.0", + "rar-http": "https://github.com/Stremio/rar-http#08b8cd6bb5719ad21ea8c07e4713236e7381775b", + "zip-http": "https://github.com/Stremio/zip-http#df81c33056e3a5d89d3e8a920d18b968a026104d" }, author: "Smart Code LTD", license: "MIT", @@ -27655,14 +33730,14 @@ } }; }, function(module, exports, __webpack_require__) { - var pkg = __webpack_require__(326), path = __webpack_require__(3), os = __webpack_require__(17); + var pkg = __webpack_require__(378), path = __webpack_require__(4), os = __webpack_require__(23); if (!(appPath = process.env.APP_PATH)) { var appPath = path.join(os.tmpdir(), pkg.name); "linux" === process.platform ? appPath = path.join(process.env.HOME, "." + pkg.name) : "darwin" === process.platform ? appPath = path.join(process.env.HOME, "Library", "Application Support", pkg.name) : "win32" === process.platform ? appPath = path.join(process.env.APPDATA, "stremio", pkg.name) : console.error("Unable to determine application path - export 'APP_PATH' instead"); } module.exports = appPath; }, function(module, exports, __webpack_require__) { - var doClean, enginefs = __webpack_require__(120), walk = __webpack_require__(655), child = __webpack_require__(22), fs = __webpack_require__(2), path = __webpack_require__(3), once = __webpack_require__(25), os = __webpack_require__(17); + var doClean, enginefs = __webpack_require__(155), walk = __webpack_require__(754), child = __webpack_require__(31), fs = __webpack_require__(2), path = __webpack_require__(4), once = __webpack_require__(34), os = __webpack_require__(23); function getDiskSpace(cachePath, cb) { if (cb = once(cb), process.env.TIZEN_ENV || process.env.WEBOS_ENV) cb(null); else if (process.platform.match(/^win/)) try { var cacheDrive = cachePath.split(":").shift().toUpperCase(); @@ -27876,7 +33951,7 @@ "use strict"; (function(__dirname) { function getPath(name) { - const os = __webpack_require__(17), path = __webpack_require__(3), binaries = Object.assign(Object.create(null), { + const os = __webpack_require__(23), path = __webpack_require__(4), binaries = Object.assign(Object.create(null), { darwin: [ "x64" ], linux: [ "x64", "ia32", "arm64", "arm" ], win32: [ "x64", "ia32" ] @@ -27902,28 +33977,28 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Readable; - var isArray = __webpack_require__(673), Buffer = __webpack_require__(8).Buffer; + var isArray = __webpack_require__(772), Buffer = __webpack_require__(10).Buffer; Readable.ReadableState = ReadableState; - var EE = __webpack_require__(4).EventEmitter; + var EE = __webpack_require__(5).EventEmitter; EE.listenerCount || (EE.listenerCount = function(emitter, type) { return emitter.listeners(type).length; }); - var StringDecoder, Stream = __webpack_require__(5), util = __webpack_require__(23); - util.inherits = __webpack_require__(11); + var StringDecoder, Stream = __webpack_require__(3), util = __webpack_require__(32); + util.inherits = __webpack_require__(7); var debug = __webpack_require__(0); function ReadableState(options, stream) { - var Duplex = __webpack_require__(58), hwm = (options = options || {}).highWaterMark, defaultHwm = options.objectMode ? 16 : 16384; + var Duplex = __webpack_require__(73), hwm = (options = options || {}).highWaterMark, defaultHwm = options.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : defaultHwm, this.highWaterMark = ~~this.highWaterMark, this.buffer = [], this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.objectMode = !!options.objectMode, stream instanceof Duplex && (this.objectMode = this.objectMode || !!options.readableObjectMode), this.defaultEncoding = options.defaultEncoding || "utf8", this.ranOut = !1, this.awaitDrain = 0, - this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(333).StringDecoder), + this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(385).StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding); } function Readable(options) { - if (__webpack_require__(58), !(this instanceof Readable)) return new Readable(options); + if (__webpack_require__(73), !(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this), this.readable = !0, Stream.call(this); } function readableAddChunk(stream, state, chunk, encoding, addToFront) { @@ -28017,7 +34092,7 @@ }, Readable.prototype.unshift = function(chunk) { return readableAddChunk(this, this._readableState, chunk, "", !0); }, Readable.prototype.setEncoding = function(enc) { - return StringDecoder || (StringDecoder = __webpack_require__(333).StringDecoder), + return StringDecoder || (StringDecoder = __webpack_require__(385).StringDecoder), this._readableState.decoder = new StringDecoder(enc), this._readableState.encoding = enc, this; }, Readable.prototype.read = function(n) { @@ -28162,16 +34237,16 @@ }, Readable._fromList = fromList; }, function(module, exports, __webpack_require__) { module.exports = Writable; - var Buffer = __webpack_require__(8).Buffer; + var Buffer = __webpack_require__(10).Buffer; Writable.WritableState = WritableState; - var util = __webpack_require__(23); - util.inherits = __webpack_require__(11); - var Stream = __webpack_require__(5); + var util = __webpack_require__(32); + util.inherits = __webpack_require__(7); + var Stream = __webpack_require__(3); function WriteReq(chunk, encoding, cb) { this.chunk = chunk, this.encoding = encoding, this.callback = cb; } function WritableState(options, stream) { - var Duplex = __webpack_require__(58), hwm = (options = options || {}).highWaterMark, defaultHwm = options.objectMode ? 16 : 16384; + var Duplex = __webpack_require__(73), hwm = (options = options || {}).highWaterMark, defaultHwm = options.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : defaultHwm, this.objectMode = !!options.objectMode, stream instanceof Duplex && (this.objectMode = this.objectMode || !!options.writableObjectMode), this.highWaterMark = ~~this.highWaterMark, this.needDrain = !1, this.ending = !1, @@ -28200,7 +34275,7 @@ this.prefinished = !1, this.errorEmitted = !1; } function Writable(options) { - var Duplex = __webpack_require__(58); + var Duplex = __webpack_require__(73); if (!(this instanceof Writable || this instanceof Duplex)) return new Writable(options); this._writableState = new WritableState(options, this), this.writable = !0, Stream.call(this); } @@ -28289,7 +34364,7 @@ })(this, state, cb); }; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(8).Buffer, isBufferEncoding = Buffer.isEncoding || function(encoding) { + var Buffer = __webpack_require__(10).Buffer, isBufferEncoding = Buffer.isEncoding || function(encoding) { switch (encoding && encoding.toLowerCase()) { case "hex": case "utf8": @@ -28387,7 +34462,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Transform; - var Duplex = __webpack_require__(58), util = __webpack_require__(23); + var Duplex = __webpack_require__(73), util = __webpack_require__(32); function TransformState(options, stream) { this.afterTransform = function(er, data) { return (function(stream, er, data) { @@ -28419,7 +34494,7 @@ if (ts.transforming) throw new Error("calling transform done when still transforming"); return stream.push(null); } - util.inherits = __webpack_require__(11), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { + util.inherits = __webpack_require__(7), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding); }, Transform.prototype._transform = function(chunk, encoding, cb) { throw new Error("not implemented"); @@ -28451,7 +34526,7 @@ var input; }; }, function(module, exports, __webpack_require__) { - var bufferFill = __webpack_require__(677), allocUnsafe = __webpack_require__(678); + var bufferFill = __webpack_require__(776), allocUnsafe = __webpack_require__(777); module.exports = function(size, fill, encoding) { if ("number" != typeof size) throw new TypeError('"size" argument must be a number'); if (size < 0) throw new RangeError('"size" argument must not be negative'); @@ -28460,283 +34535,6 @@ return 0 === size ? buffer : void 0 === fill ? bufferFill(buffer, 0) : ("string" != typeof encoding && (encoding = void 0), bufferFill(buffer, fill, encoding)); }; -}, function(module, exports, __webpack_require__) { - module.exports = glob; - var rp = __webpack_require__(338), minimatch = __webpack_require__(143), inherits = (minimatch.Minimatch, - __webpack_require__(11)), EE = __webpack_require__(4).EventEmitter, path = __webpack_require__(3), assert = __webpack_require__(34), isAbsolute = __webpack_require__(144), globSync = __webpack_require__(685), common = __webpack_require__(339), setopts = common.setopts, ownProp = common.ownProp, inflight = __webpack_require__(686), childrenIgnored = (__webpack_require__(0), - common.childrenIgnored), isIgnored = common.isIgnored, once = __webpack_require__(25); - function glob(pattern, options, cb) { - if ("function" == typeof options && (cb = options, options = {}), options || (options = {}), - options.sync) { - if (cb) throw new TypeError("callback provided to sync glob"); - return globSync(pattern, options); - } - return new Glob(pattern, options, cb); - } - glob.sync = globSync; - var GlobSync = glob.GlobSync = globSync.GlobSync; - function Glob(pattern, options, cb) { - if ("function" == typeof options && (cb = options, options = null), options && options.sync) { - if (cb) throw new TypeError("callback provided to sync glob"); - return new GlobSync(pattern, options); - } - if (!(this instanceof Glob)) return new Glob(pattern, options, cb); - setopts(this, pattern, options), this._didRealPath = !1; - var n = this.minimatch.set.length; - this.matches = new Array(n), "function" == typeof cb && (cb = once(cb), this.on("error", cb), - this.on("end", (function(matches) { - cb(null, matches); - }))); - var self = this; - if (this._processing = 0, this._emitQueue = [], this._processQueue = [], this.paused = !1, - this.noprocess) return this; - if (0 === n) return done(); - for (var i = 0; i < n; i++) this._process(this.minimatch.set[i], i, !1, done); - function done() { - --self._processing, self._processing <= 0 && self._finish(); - } - } - glob.glob = glob, glob.hasMagic = function(pattern, options_) { - var options = (function(origin, add) { - if (null === add || "object" != typeof add) return origin; - for (var keys = Object.keys(add), i = keys.length; i--; ) origin[keys[i]] = add[keys[i]]; - return origin; - })({}, options_); - options.noprocess = !0; - var set = new Glob(pattern, options).minimatch.set; - if (!pattern) return !1; - if (set.length > 1) return !0; - for (var j = 0; j < set[0].length; j++) if ("string" != typeof set[0][j]) return !0; - return !1; - }, glob.Glob = Glob, inherits(Glob, EE), Glob.prototype._finish = function() { - if (assert(this instanceof Glob), !this.aborted) { - if (this.realpath && !this._didRealpath) return this._realpath(); - common.finish(this), this.emit("end", this.found); - } - }, Glob.prototype._realpath = function() { - if (!this._didRealpath) { - this._didRealpath = !0; - var n = this.matches.length; - if (0 === n) return this._finish(); - for (var self = this, i = 0; i < this.matches.length; i++) this._realpathSet(i, next); - } - function next() { - 0 == --n && self._finish(); - } - }, Glob.prototype._realpathSet = function(index, cb) { - var matchset = this.matches[index]; - if (!matchset) return cb(); - var found = Object.keys(matchset), self = this, n = found.length; - if (0 === n) return cb(); - var set = this.matches[index] = Object.create(null); - found.forEach((function(p, i) { - p = self._makeAbs(p), rp.realpath(p, self.realpathCache, (function(er, real) { - er ? "stat" === er.syscall ? set[p] = !0 : self.emit("error", er) : set[real] = !0, - 0 == --n && (self.matches[index] = set, cb()); - })); - })); - }, Glob.prototype._mark = function(p) { - return common.mark(this, p); - }, Glob.prototype._makeAbs = function(f) { - return common.makeAbs(this, f); - }, Glob.prototype.abort = function() { - this.aborted = !0, this.emit("abort"); - }, Glob.prototype.pause = function() { - this.paused || (this.paused = !0, this.emit("pause")); - }, Glob.prototype.resume = function() { - if (this.paused) { - if (this.emit("resume"), this.paused = !1, this._emitQueue.length) { - var eq = this._emitQueue.slice(0); - this._emitQueue.length = 0; - for (var i = 0; i < eq.length; i++) { - var e = eq[i]; - this._emitMatch(e[0], e[1]); - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0); - for (this._processQueue.length = 0, i = 0; i < pq.length; i++) { - var p = pq[i]; - this._processing--, this._process(p[0], p[1], p[2], p[3]); - } - } - } - }, Glob.prototype._process = function(pattern, index, inGlobStar, cb) { - if (assert(this instanceof Glob), assert("function" == typeof cb), !this.aborted) if (this._processing++, - this.paused) this._processQueue.push([ pattern, index, inGlobStar, cb ]); else { - for (var prefix, n = 0; "string" == typeof pattern[n]; ) n++; - switch (n) { - case pattern.length: - return void this._processSimple(pattern.join("/"), index, cb); - - case 0: - prefix = null; - break; - - default: - prefix = pattern.slice(0, n).join("/"); - } - var read, remain = pattern.slice(n); - null === prefix ? read = "." : isAbsolute(prefix) || isAbsolute(pattern.join("/")) ? (prefix && isAbsolute(prefix) || (prefix = "/" + prefix), - read = prefix) : read = prefix; - var abs = this._makeAbs(read); - if (childrenIgnored(this, read)) return cb(); - remain[0] === minimatch.GLOBSTAR ? this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) : this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb); - } - }, Glob.prototype._processReaddir = function(prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this; - this._readdir(abs, inGlobStar, (function(er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb); - })); - }, Glob.prototype._processReaddir2 = function(prefix, read, abs, remain, index, inGlobStar, entries, cb) { - if (!entries) return cb(); - for (var pn = remain[0], negate = !!this.minimatch.negate, rawGlob = pn._glob, dotOk = this.dot || "." === rawGlob.charAt(0), matchedEntries = [], i = 0; i < entries.length; i++) ("." !== (e = entries[i]).charAt(0) || dotOk) && (negate && !prefix ? !e.match(pn) : e.match(pn)) && matchedEntries.push(e); - var len = matchedEntries.length; - if (0 === len) return cb(); - if (1 === remain.length && !this.mark && !this.stat) { - for (this.matches[index] || (this.matches[index] = Object.create(null)), i = 0; i < len; i++) { - var e = matchedEntries[i]; - prefix && (e = "/" !== prefix ? prefix + "/" + e : prefix + e), "/" !== e.charAt(0) || this.nomount || (e = path.join(this.root, e)), - this._emitMatch(index, e); - } - return cb(); - } - for (remain.shift(), i = 0; i < len; i++) e = matchedEntries[i], prefix && (e = "/" !== prefix ? prefix + "/" + e : prefix + e), - this._process([ e ].concat(remain), index, inGlobStar, cb); - cb(); - }, Glob.prototype._emitMatch = function(index, e) { - if (!this.aborted && !isIgnored(this, e)) if (this.paused) this._emitQueue.push([ index, e ]); else { - var abs = isAbsolute(e) ? e : this._makeAbs(e); - if (this.mark && (e = this._mark(e)), this.absolute && (e = abs), !this.matches[index][e]) { - if (this.nodir) { - var c = this.cache[abs]; - if ("DIR" === c || Array.isArray(c)) return; - } - this.matches[index][e] = !0; - var st = this.statCache[abs]; - st && this.emit("stat", e, st), this.emit("match", e); - } - } - }, Glob.prototype._readdirInGlobStar = function(abs, cb) { - if (!this.aborted) { - if (this.follow) return this._readdir(abs, !1, cb); - var self = this, lstatcb = inflight("lstat\0" + abs, (function(er, lstat) { - if (er && "ENOENT" === er.code) return cb(); - var isSym = lstat && lstat.isSymbolicLink(); - self.symlinks[abs] = isSym, isSym || !lstat || lstat.isDirectory() ? self._readdir(abs, !1, cb) : (self.cache[abs] = "FILE", - cb()); - })); - lstatcb && self.fs.lstat(abs, lstatcb); - } - }, Glob.prototype._readdir = function(abs, inGlobStar, cb) { - if (!this.aborted && (cb = inflight("readdir\0" + abs + "\0" + inGlobStar, cb))) { - if (inGlobStar && !ownProp(this.symlinks, abs)) return this._readdirInGlobStar(abs, cb); - if (ownProp(this.cache, abs)) { - var c = this.cache[abs]; - if (!c || "FILE" === c) return cb(); - if (Array.isArray(c)) return cb(null, c); - } - this.fs.readdir(abs, (function(self, abs, cb) { - return function(er, entries) { - er ? self._readdirError(abs, er, cb) : self._readdirEntries(abs, entries, cb); - }; - })(this, abs, cb)); - } - }, Glob.prototype._readdirEntries = function(abs, entries, cb) { - if (!this.aborted) { - if (!this.mark && !this.stat) for (var i = 0; i < entries.length; i++) { - var e = entries[i]; - e = "/" === abs ? abs + e : abs + "/" + e, this.cache[e] = !0; - } - return this.cache[abs] = entries, cb(null, entries); - } - }, Glob.prototype._readdirError = function(f, er, cb) { - if (!this.aborted) { - switch (er.code) { - case "ENOTSUP": - case "ENOTDIR": - var abs = this._makeAbs(f); - if (this.cache[abs] = "FILE", abs === this.cwdAbs) { - var error = new Error(er.code + " invalid cwd " + this.cwd); - error.path = this.cwd, error.code = er.code, this.emit("error", error), this.abort(); - } - break; - - case "ENOENT": - case "ELOOP": - case "ENAMETOOLONG": - case "UNKNOWN": - this.cache[this._makeAbs(f)] = !1; - break; - - default: - this.cache[this._makeAbs(f)] = !1, this.strict && (this.emit("error", er), this.abort()), - this.silent || console.error("glob error", er); - } - return cb(); - } - }, Glob.prototype._processGlobStar = function(prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this; - this._readdir(abs, inGlobStar, (function(er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb); - })); - }, Glob.prototype._processGlobStar2 = function(prefix, read, abs, remain, index, inGlobStar, entries, cb) { - if (!entries) return cb(); - var remainWithoutGlobStar = remain.slice(1), gspref = prefix ? [ prefix ] : [], noGlobStar = gspref.concat(remainWithoutGlobStar); - this._process(noGlobStar, index, !1, cb); - var isSym = this.symlinks[abs], len = entries.length; - if (isSym && inGlobStar) return cb(); - for (var i = 0; i < len; i++) if ("." !== entries[i].charAt(0) || this.dot) { - var instead = gspref.concat(entries[i], remainWithoutGlobStar); - this._process(instead, index, !0, cb); - var below = gspref.concat(entries[i], remain); - this._process(below, index, !0, cb); - } - cb(); - }, Glob.prototype._processSimple = function(prefix, index, cb) { - var self = this; - this._stat(prefix, (function(er, exists) { - self._processSimple2(prefix, index, er, exists, cb); - })); - }, Glob.prototype._processSimple2 = function(prefix, index, er, exists, cb) { - if (this.matches[index] || (this.matches[index] = Object.create(null)), !exists) return cb(); - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix); - "/" === prefix.charAt(0) ? prefix = path.join(this.root, prefix) : (prefix = path.resolve(this.root, prefix), - trail && (prefix += "/")); - } - "win32" === process.platform && (prefix = prefix.replace(/\\/g, "/")), this._emitMatch(index, prefix), - cb(); - }, Glob.prototype._stat = function(f, cb) { - var abs = this._makeAbs(f), needDir = "/" === f.slice(-1); - if (f.length > this.maxLength) return cb(); - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs]; - if (Array.isArray(c) && (c = "DIR"), !needDir || "DIR" === c) return cb(null, c); - if (needDir && "FILE" === c) return cb(); - } - var stat = this.statCache[abs]; - if (void 0 !== stat) { - if (!1 === stat) return cb(null, stat); - var type = stat.isDirectory() ? "DIR" : "FILE"; - return needDir && "FILE" === type ? cb() : cb(null, type, stat); - } - var self = this, statcb = inflight("stat\0" + abs, (function(er, lstat) { - if (lstat && lstat.isSymbolicLink()) return self.fs.stat(abs, (function(er, stat) { - er ? self._stat2(f, abs, null, lstat, cb) : self._stat2(f, abs, er, stat, cb); - })); - self._stat2(f, abs, er, lstat, cb); - })); - statcb && self.fs.lstat(abs, statcb); - }, Glob.prototype._stat2 = function(f, abs, er, stat, cb) { - if (er && ("ENOENT" === er.code || "ENOTDIR" === er.code)) return this.statCache[abs] = !1, - cb(); - var needDir = "/" === f.slice(-1); - if (this.statCache[abs] = stat, "/" === abs.slice(-1) && stat && !stat.isDirectory()) return cb(null, !1, stat); - var c = !0; - return stat && (c = stat.isDirectory() ? "DIR" : "FILE"), this.cache[abs] = this.cache[abs] || c, - needDir && "FILE" === c ? cb() : cb(null, c, stat); - }; }, function(module, exports, __webpack_require__) { module.exports = realpath, realpath.realpath = realpath, realpath.sync = realpathSync, realpath.realpathSync = realpathSync, realpath.monkeypatch = function() { @@ -28744,7 +34542,7 @@ }, realpath.unmonkeypatch = function() { fs.realpath = origRealpath, fs.realpathSync = origRealpathSync; }; - var fs = __webpack_require__(2), origRealpath = fs.realpath, origRealpathSync = fs.realpathSync, version = process.version, ok = /^v[0-5]\./.test(version), old = __webpack_require__(681); + var fs = __webpack_require__(2), origRealpath = fs.realpath, origRealpathSync = fs.realpathSync, version = process.version, ok = /^v[0-5]\./.test(version), old = __webpack_require__(780); function newError(er) { return er && "realpath" === er.syscall && ("ELOOP" === er.code || "ENOMEM" === er.code || "ENAMETOOLONG" === er.code); } @@ -28830,7 +34628,7 @@ return !(!item.gmatcher || !item.gmatcher.match(path)); })); }; - var fs = __webpack_require__(2), path = __webpack_require__(3), minimatch = __webpack_require__(143), isAbsolute = __webpack_require__(144), Minimatch = minimatch.Minimatch; + var fs = __webpack_require__(2), path = __webpack_require__(4), minimatch = __webpack_require__(181), isAbsolute = __webpack_require__(182), Minimatch = minimatch.Minimatch; function alphasort(a, b) { return a.localeCompare(b, "en"); } @@ -28861,22 +34659,22 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(41); + var pna = __webpack_require__(53); module.exports = Readable; - var Duplex, isArray = __webpack_require__(341); - Readable.ReadableState = ReadableState, __webpack_require__(4).EventEmitter; + var Duplex, isArray = __webpack_require__(392); + Readable.ReadableState = ReadableState, __webpack_require__(5).EventEmitter; var EElistenerCount = function(emitter, type) { return emitter.listeners(type).length; - }, Stream = __webpack_require__(342), Buffer = __webpack_require__(26).Buffer, OurUint8Array = global.Uint8Array || function() {}, util = Object.create(__webpack_require__(23)); - util.inherits = __webpack_require__(76); + }, Stream = __webpack_require__(393), Buffer = __webpack_require__(25).Buffer, OurUint8Array = global.Uint8Array || function() {}, util = Object.create(__webpack_require__(32)); + util.inherits = __webpack_require__(7); var debugUtil = __webpack_require__(0), debug = void 0; debug = debugUtil && debugUtil.debuglog ? debugUtil.debuglog("stream") : function() {}; - var StringDecoder, BufferList = __webpack_require__(698), destroyImpl = __webpack_require__(343); + var StringDecoder, BufferList = __webpack_require__(796), destroyImpl = __webpack_require__(394); util.inherits(Readable, Stream); var kProxyEvents = [ "error", "close", "destroy", "pause", "resume" ]; function ReadableState(options, stream) { options = options || {}; - var isDuplex = stream instanceof (Duplex = Duplex || __webpack_require__(59)); + var isDuplex = stream instanceof (Duplex = Duplex || __webpack_require__(74)); this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.readableObjectMode); var hwm = options.highWaterMark, readableHwm = options.readableHighWaterMark, defaultHwm = this.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : isDuplex && (readableHwm || 0 === readableHwm) ? readableHwm : defaultHwm, @@ -28885,11 +34683,11 @@ this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.destroyed = !1, this.defaultEncoding = options.defaultEncoding || "utf8", this.awaitDrain = 0, - this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(345).StringDecoder), + this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(133).StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding); } function Readable(options) { - if (Duplex = Duplex || __webpack_require__(59), !(this instanceof Readable)) return new Readable(options); + if (Duplex = Duplex || __webpack_require__(74), !(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this), this.readable = !0, options && ("function" == typeof options.read && (this._read = options.read), "function" == typeof options.destroy && (this._destroy = options.destroy)), Stream.call(this); } @@ -29018,7 +34816,7 @@ }, Readable.prototype.isPaused = function() { return !1 === this._readableState.flowing; }, Readable.prototype.setEncoding = function(enc) { - return StringDecoder || (StringDecoder = __webpack_require__(345).StringDecoder), + return StringDecoder || (StringDecoder = __webpack_require__(133).StringDecoder), this._readableState.decoder = new StringDecoder(enc), this._readableState.encoding = enc, this; }, Readable.prototype.read = function(n) { @@ -29159,10 +34957,10 @@ return "[object Array]" == toString.call(arr); }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(5); + module.exports = __webpack_require__(3); }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(41); + var pna = __webpack_require__(53); function emitErrorNT(self, err) { self.emit("error", err); } @@ -29184,7 +34982,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(41); + var pna = __webpack_require__(53); function CorkedRequest(state) { var _this = this; this.next = null, this.entry = null, this.finish = function() { @@ -29201,14 +34999,14 @@ module.exports = Writable; var Duplex, asyncWrite = !process.browser && [ "v0.10", "v0.9." ].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; Writable.WritableState = WritableState; - var util = Object.create(__webpack_require__(23)); - util.inherits = __webpack_require__(76); + var util = Object.create(__webpack_require__(32)); + util.inherits = __webpack_require__(7); var realHasInstance, internalUtil = { - deprecate: __webpack_require__(147) - }, Stream = __webpack_require__(342), Buffer = __webpack_require__(26).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(343); + deprecate: __webpack_require__(185) + }, Stream = __webpack_require__(393), Buffer = __webpack_require__(25).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(394); function nop() {} function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(59), options = options || {}; + Duplex = Duplex || __webpack_require__(74), options = options || {}; var isDuplex = stream instanceof Duplex; this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.writableObjectMode); var hwm = options.highWaterMark, writableHwm = options.writableHighWaterMark, defaultHwm = this.objectMode ? 16 : 16384; @@ -29238,7 +35036,7 @@ this.corkedRequestsFree = new CorkedRequest(this); } function Writable(options) { - if (Duplex = Duplex || __webpack_require__(59), !(realHasInstance.call(Writable, this) || this instanceof Duplex)) return new Writable(options); + if (Duplex = Duplex || __webpack_require__(74), !(realHasInstance.call(Writable, this) || this instanceof Duplex)) return new Writable(options); this._writableState = new WritableState(options, this), this.writable = !0, options && ("function" == typeof options.write && (this._write = options.write), "function" == typeof options.writev && (this._writev = options.writev), "function" == typeof options.destroy && (this._destroy = options.destroy), "function" == typeof options.final && (this._final = options.final)), Stream.call(this); @@ -29383,163 +35181,10 @@ Writable.prototype._destroy = function(err, cb) { this.end(), cb(err); }; -}, function(module, exports, __webpack_require__) { - "use strict"; - var Buffer = __webpack_require__(26).Buffer, isEncoding = Buffer.isEncoding || function(encoding) { - switch ((encoding = "" + encoding) && encoding.toLowerCase()) { - case "hex": - case "utf8": - case "utf-8": - case "ascii": - case "binary": - case "base64": - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - case "raw": - return !0; - - default: - return !1; - } - }; - function StringDecoder(encoding) { - var nb; - switch (this.encoding = (function(enc) { - var nenc = (function(enc) { - if (!enc) return "utf8"; - for (var retried; ;) switch (enc) { - case "utf8": - case "utf-8": - return "utf8"; - - case "ucs2": - case "ucs-2": - case "utf16le": - case "utf-16le": - return "utf16le"; - - case "latin1": - case "binary": - return "latin1"; - - case "base64": - case "ascii": - case "hex": - return enc; - - default: - if (retried) return; - enc = ("" + enc).toLowerCase(), retried = !0; - } - })(enc); - if ("string" != typeof nenc && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error("Unknown encoding: " + enc); - return nenc || enc; - })(encoding), this.encoding) { - case "utf16le": - this.text = utf16Text, this.end = utf16End, nb = 4; - break; - - case "utf8": - this.fillLast = utf8FillLast, nb = 4; - break; - - case "base64": - this.text = base64Text, this.end = base64End, nb = 3; - break; - - default: - return this.write = simpleWrite, void (this.end = simpleEnd); - } - this.lastNeed = 0, this.lastTotal = 0, this.lastChar = Buffer.allocUnsafe(nb); - } - function utf8CheckByte(byte) { - return byte <= 127 ? 0 : byte >> 5 == 6 ? 2 : byte >> 4 == 14 ? 3 : byte >> 3 == 30 ? 4 : byte >> 6 == 2 ? -1 : -2; - } - function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed, r = (function(self, buf, p) { - if (128 != (192 & buf[0])) return self.lastNeed = 0, "�"; - if (self.lastNeed > 1 && buf.length > 1) { - if (128 != (192 & buf[1])) return self.lastNeed = 1, "�"; - if (self.lastNeed > 2 && buf.length > 2 && 128 != (192 & buf[2])) return self.lastNeed = 2, - "�"; - } - })(this, buf); - return void 0 !== r ? r : this.lastNeed <= buf.length ? (buf.copy(this.lastChar, p, 0, this.lastNeed), - this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (buf.copy(this.lastChar, p, 0, buf.length), - void (this.lastNeed -= buf.length)); - } - function utf16Text(buf, i) { - if ((buf.length - i) % 2 == 0) { - var r = buf.toString("utf16le", i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 55296 && c <= 56319) return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = buf[buf.length - 2], - this.lastChar[1] = buf[buf.length - 1], r.slice(0, -1); - } - return r; - } - return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = buf[buf.length - 1], - buf.toString("utf16le", i, buf.length - 1); - } - function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ""; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString("utf16le", 0, end); - } - return r; - } - function base64Text(buf, i) { - var n = (buf.length - i) % 3; - return 0 === n ? buf.toString("base64", i) : (this.lastNeed = 3 - n, this.lastTotal = 3, - 1 === n ? this.lastChar[0] = buf[buf.length - 1] : (this.lastChar[0] = buf[buf.length - 2], - this.lastChar[1] = buf[buf.length - 1]), buf.toString("base64", i, buf.length - n)); - } - function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ""; - return this.lastNeed ? r + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : r; - } - function simpleWrite(buf) { - return buf.toString(this.encoding); - } - function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ""; - } - exports.StringDecoder = StringDecoder, StringDecoder.prototype.write = function(buf) { - if (0 === buf.length) return ""; - var r, i; - if (this.lastNeed) { - if (void 0 === (r = this.fillLast(buf))) return ""; - i = this.lastNeed, this.lastNeed = 0; - } else i = 0; - return i < buf.length ? r ? r + this.text(buf, i) : this.text(buf, i) : r || ""; - }, StringDecoder.prototype.end = function(buf) { - var r = buf && buf.length ? this.write(buf) : ""; - return this.lastNeed ? r + "�" : r; - }, StringDecoder.prototype.text = function(buf, i) { - var total = (function(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - return nb >= 0 ? (nb > 0 && (self.lastNeed = nb - 1), nb) : --j < i || -2 === nb ? 0 : (nb = utf8CheckByte(buf[j])) >= 0 ? (nb > 0 && (self.lastNeed = nb - 2), - nb) : --j < i || -2 === nb ? 0 : (nb = utf8CheckByte(buf[j])) >= 0 ? (nb > 0 && (2 === nb ? nb = 0 : self.lastNeed = nb - 3), - nb) : 0; - })(this, buf, i); - if (!this.lastNeed) return buf.toString("utf8", i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - return buf.copy(this.lastChar, 0, end), buf.toString("utf8", i, end); - }, StringDecoder.prototype.fillLast = function(buf) { - if (this.lastNeed <= buf.length) return buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), - this.lastChar.toString(this.encoding, 0, this.lastTotal); - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length), this.lastNeed -= buf.length; - }; }, function(module, exports, __webpack_require__) { "use strict"; module.exports = Transform; - var Duplex = __webpack_require__(59), util = Object.create(__webpack_require__(23)); + var Duplex = __webpack_require__(74), util = Object.create(__webpack_require__(32)); function afterTransform(er, data) { var ts = this._transformState; ts.transforming = !1; @@ -29573,7 +35218,7 @@ if (stream._transformState.transforming) throw new Error("Calling transform done when still transforming"); return stream.push(null); } - util.inherits = __webpack_require__(76), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { + util.inherits = __webpack_require__(7), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding); }, Transform.prototype._transform = function(chunk, encoding, cb) { throw new Error("_transform() is not implemented"); @@ -29595,7 +35240,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var childProcess = __webpack_require__(22), spawn = childProcess.spawn, exec = childProcess.exec; + var childProcess = __webpack_require__(31), spawn = childProcess.spawn, exec = childProcess.exec; function killAll(tree, signal, callback) { var killed = {}; try { @@ -29718,14 +35363,14 @@ for (i = 0, len = createDebug.skips.length; i < len; i++) if (createDebug.skips[i].test(name)) return !1; for (i = 0, len = createDebug.names.length; i < len; i++) if (createDebug.names[i].test(name)) return !0; return !1; - }, createDebug.humanize = __webpack_require__(202), Object.keys(env).forEach((function(key) { + }, createDebug.humanize = __webpack_require__(255), Object.keys(env).forEach((function(key) { createDebug[key] = env[key]; })), createDebug.instances = [], createDebug.names = [], createDebug.skips = [], createDebug.formatters = {}, createDebug.selectColor = selectColor, createDebug.enable(createDebug.load()), createDebug; }; }, function(module, exports, __webpack_require__) { - const EventEmitter = __webpack_require__(4), bridge = "android" !== process.platform || process.env.UNITY_ENV ? null : process._linkedBinding("android_bridge"), events = {}, eventEmitter = new EventEmitter; + const EventEmitter = __webpack_require__(5), bridge = "android" !== process.platform || process.env.UNITY_ENV ? null : process._linkedBinding("android_bridge"), events = {}, eventEmitter = new EventEmitter; module.exports = { dispatch: (event, data) => { null !== bridge && bridge.dispatch(event, JSON.stringify(data)); @@ -29742,7 +35387,7 @@ }, function(module, exports) { module.exports = process.env.HLSV2_REMOTE ? "remote" : "local"; }, function(module, exports, __webpack_require__) { - const {ffprobe: ffprobe} = __webpack_require__(148), JSONStream = __webpack_require__(711), probeCache = []; + const {ffprobe: ffprobe} = __webpack_require__(186), JSONStream = __webpack_require__(809), probeCache = []; module.exports = function(options = {}) { const cached = probeCache.find((el => el.mediaURL === options.mediaURL)); if (cached) return process.env.HLS_DEBUG && console.log("HLSV2:probe:info used cached result"), @@ -29819,40 +35464,40 @@ Object.defineProperty(exports, "__esModule", { value: !0 }), exports.tryAcquire = exports.withTimeout = exports.Semaphore = exports.Mutex = void 0; - var tslib_1 = __webpack_require__(105), Mutex_1 = __webpack_require__(715); + var tslib_1 = __webpack_require__(134), Mutex_1 = __webpack_require__(813); Object.defineProperty(exports, "Mutex", { enumerable: !0, get: function() { return Mutex_1.default; } }); - var Semaphore_1 = __webpack_require__(353); + var Semaphore_1 = __webpack_require__(403); Object.defineProperty(exports, "Semaphore", { enumerable: !0, get: function() { return Semaphore_1.default; } }); - var withTimeout_1 = __webpack_require__(354); + var withTimeout_1 = __webpack_require__(404); Object.defineProperty(exports, "withTimeout", { enumerable: !0, get: function() { return withTimeout_1.withTimeout; } }); - var tryAcquire_1 = __webpack_require__(716); + var tryAcquire_1 = __webpack_require__(814); Object.defineProperty(exports, "tryAcquire", { enumerable: !0, get: function() { return tryAcquire_1.tryAcquire; } - }), (0, tslib_1.__exportStar)(__webpack_require__(106), exports); + }), (0, tslib_1.__exportStar)(__webpack_require__(135), exports); }, function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }); - var tslib_1 = __webpack_require__(105), errors_1 = __webpack_require__(106), Semaphore = (function() { + var tslib_1 = __webpack_require__(134), errors_1 = __webpack_require__(135), Semaphore = (function() { function Semaphore(_maxConcurrency, _cancelError) { if (void 0 === _cancelError && (_cancelError = errors_1.E_CANCELED), this._maxConcurrency = _maxConcurrency, this._cancelError = _cancelError, this._queue = [], this._waiters = [], _maxConcurrency <= 0) throw new Error("semaphore must be initialized to a positive value"); @@ -29935,7 +35580,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }), exports.withTimeout = void 0; - var tslib_1 = __webpack_require__(105), errors_1 = __webpack_require__(106); + var tslib_1 = __webpack_require__(134), errors_1 = __webpack_require__(135); exports.withTimeout = function(sync, timeout, timeoutError) { var _this = this; return void 0 === timeoutError && (timeoutError = errors_1.E_TIMEOUT), { @@ -30017,21 +35662,21 @@ }; }; }, function(module, exports, __webpack_require__) { - const retrieveMatroskaSamples = __webpack_require__(717), retrieveMP4Samples = __webpack_require__(726); + const retrieveMatroskaSamples = __webpack_require__(815), retrieveMP4Samples = __webpack_require__(824); module.exports = { matroska: retrieveMatroskaSamples, mp4: retrieveMP4Samples }; }, function(module, exports, __webpack_require__) { "use strict"; - var async = __webpack_require__(30), fs = __webpack_require__(2), util = __webpack_require__(0), debug = (__webpack_require__(56).crc32, - __webpack_require__(33)("matroska:document")), schema = __webpack_require__(10), Element = __webpack_require__(357), tools = __webpack_require__(60); - __webpack_require__(149), __webpack_require__(150), __webpack_require__(151), __webpack_require__(152), - __webpack_require__(153), __webpack_require__(154), __webpack_require__(155), __webpack_require__(156), - __webpack_require__(35), __webpack_require__(157), __webpack_require__(18), __webpack_require__(158), - __webpack_require__(159), __webpack_require__(107), __webpack_require__(108), __webpack_require__(109), - __webpack_require__(160), __webpack_require__(161), __webpack_require__(162), __webpack_require__(163), - __webpack_require__(164), __webpack_require__(165), __webpack_require__(166), __webpack_require__(167); + var async = __webpack_require__(38), fs = __webpack_require__(2), util = __webpack_require__(0), debug = (__webpack_require__(71).crc32, + __webpack_require__(41)("matroska:document")), schema = __webpack_require__(13), Element = __webpack_require__(407), tools = __webpack_require__(75); + __webpack_require__(187), __webpack_require__(188), __webpack_require__(189), __webpack_require__(190), + __webpack_require__(191), __webpack_require__(192), __webpack_require__(193), __webpack_require__(194), + __webpack_require__(43), __webpack_require__(195), __webpack_require__(29), __webpack_require__(196), + __webpack_require__(197), __webpack_require__(136), __webpack_require__(137), __webpack_require__(138), + __webpack_require__(198), __webpack_require__(199), __webpack_require__(200), __webpack_require__(201), + __webpack_require__(202), __webpack_require__(203), __webpack_require__(204), __webpack_require__(205); var tagClasses = {}; function Document() { this.type = "D", this._name = "Document", this.tagId = 0, this._nextTagId = 1, this.ownerDocument = this, @@ -30054,7 +35699,7 @@ tagClasses[schema.byName.CueTrackPositions] = "cueTrackPositions", util.inherits(Document, Element), module.exports = Document, Document.prototype.createElement = function(ebmlID, start, length) { var element, tagClass = tagClasses[ebmlID]; - return tagClass ? ("string" == typeof tagClass && (tagClass = __webpack_require__(723)("./" + tagClass), + return tagClass ? ("string" == typeof tagClass && (tagClass = __webpack_require__(821)("./" + tagClass), tagClasses[ebmlID] = tagClass), element = new tagClass(this, this._nextTagId++, start, length)) : element = new Element(this, this._nextTagId++, ebmlID, start, length), element; }, Document.prototype._registerPosition = function(tag) { @@ -30172,7 +35817,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var assert = __webpack_require__(34), async = __webpack_require__(30), crc32 = __webpack_require__(56).crc32, stream = __webpack_require__(5), util = __webpack_require__(0), fs = __webpack_require__(2), debug = __webpack_require__(33)("matroska:element"), schema = __webpack_require__(10), tools = __webpack_require__(60), MillenniumTime = Date.UTC(2001, 0, 1); + var assert = __webpack_require__(22), async = __webpack_require__(38), crc32 = __webpack_require__(71).crc32, stream = __webpack_require__(3), util = __webpack_require__(0), fs = __webpack_require__(2), debug = __webpack_require__(41)("matroska:element"), schema = __webpack_require__(13), tools = __webpack_require__(75), MillenniumTime = Date.UTC(2001, 0, 1); function Element(doc, tagId, ebmlID, start, length) { if (!doc || "D" !== doc.type) throw new Error("Invalid document"); this.ownerDocument = doc, this.tagId = tagId; @@ -30586,10 +36231,10 @@ }); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(33)("matroska:source"), module.exports = function() {}; + __webpack_require__(41)("matroska:source"), module.exports = function() {}; }, function(module, exports, __webpack_require__) { "use strict"; - var fs = __webpack_require__(2), util = __webpack_require__(0), debug = __webpack_require__(33)("matroska:fileSource"), AbstractSource = __webpack_require__(168), fileSourceKey = 0; + var fs = __webpack_require__(2), util = __webpack_require__(0), debug = __webpack_require__(41)("matroska:fileSource"), AbstractSource = __webpack_require__(206), fileSourceKey = 0; function FileSource(filename) { AbstractSource.call(this), this.filename = filename; } @@ -30631,7 +36276,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(2); - var util = __webpack_require__(0), debug = __webpack_require__(33)("matroska:httpSource"), http = __webpack_require__(361).http, https = __webpack_require__(361).https, Url = __webpack_require__(7), AbstractSource = __webpack_require__(168), httpSourceKey = 0; + var util = __webpack_require__(0), debug = __webpack_require__(41)("matroska:httpSource"), http = __webpack_require__(411).http, https = __webpack_require__(411).https, Url = __webpack_require__(6), AbstractSource = __webpack_require__(206), httpSourceKey = 0; function HttpSource(url, configuration) { AbstractSource.call(this), this.configuration = configuration || {}, this.url = url; } @@ -30670,7 +36315,7 @@ return "[HttpSource url=" + this.url + "]"; }; }, function(module, exports, __webpack_require__) { - var url = __webpack_require__(7), URL = url.URL, http = __webpack_require__(12), https = __webpack_require__(19), Writable = __webpack_require__(5).Writable, assert = __webpack_require__(34), debug = __webpack_require__(724), useNativeURL = !1; + var url = __webpack_require__(6), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(22), debug = __webpack_require__(822), useNativeURL = !1; try { assert(new URL); } catch (error) { @@ -30920,19 +36565,19 @@ }, function(module, exports, __webpack_require__) { "use strict"; var muxjs = { - codecs: __webpack_require__(363), - mp4: __webpack_require__(728), - flv: __webpack_require__(734), - mp2t: __webpack_require__(739), - partial: __webpack_require__(740) + codecs: __webpack_require__(413), + mp4: __webpack_require__(826), + flv: __webpack_require__(832), + mp2t: __webpack_require__(837), + partial: __webpack_require__(838) }; - muxjs.mp4.tools = __webpack_require__(744), muxjs.flv.tools = __webpack_require__(746), - muxjs.mp2t.tools = __webpack_require__(747), module.exports = muxjs; + muxjs.mp4.tools = __webpack_require__(842), muxjs.flv.tools = __webpack_require__(844), + muxjs.mp2t.tools = __webpack_require__(845), module.exports = muxjs; }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Adts: __webpack_require__(110), - h264: __webpack_require__(169) + Adts: __webpack_require__(139), + h264: __webpack_require__(207) }; }, function(module, exports, __webpack_require__) { "use strict"; @@ -31016,7 +36661,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var coneOfSilence = __webpack_require__(731), clock = __webpack_require__(42); + var coneOfSilence = __webpack_require__(829), clock = __webpack_require__(54); module.exports = { prefixWithSilence: function(track, frames, audioAppendStartTs, videoBaseMediaDecodeTime) { var baseMediaDecodeTimeTs, frameDuration, silentFrame, i, firstFrame, audioGapDuration = 0, audioFillFrameCount = 0, audioFillDuration = 0; @@ -31062,7 +36707,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(29), cea708Parser = __webpack_require__(367), CaptionStream = function CaptionStream(options) { + var Stream = __webpack_require__(37), cea708Parser = __webpack_require__(417), CaptionStream = function CaptionStream(options) { options = options || {}, CaptionStream.prototype.init.call(this), this.parse708captions_ = "boolean" != typeof options.parse708captions || options.parse708captions, this.captionPackets_ = [], this.ccStreams_ = [ new Cea608Stream(0, 0), new Cea608Stream(0, 1), new Cea608Stream(1, 0), new Cea608Stream(1, 1) ], this.parse708captions_ && (this.cc708Stream_ = new Cea708Stream), this.reset(), @@ -31559,7 +37204,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(29), handleRollover = function(value, reference) { + var Stream = __webpack_require__(37), handleRollover = function(value, reference) { var direction = 1; for (value > reference && (direction = -1); Math.abs(reference - value) > 4294967296; ) value += 8589934592 * direction; return value; @@ -31586,7 +37231,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _AacStream, Stream = __webpack_require__(29), aacUtils = __webpack_require__(116); + var _AacStream, Stream = __webpack_require__(37), aacUtils = __webpack_require__(145); (_AacStream = function() { var everything = new Uint8Array, timeStamp = 0; _AacStream.prototype.init.call(this), this.setTimestamp = function(timestamp) { @@ -31625,7 +37270,7 @@ "use strict"; module.exports = [ "width", "height", "profileIdc", "levelIdc", "profileCompatibility", "sarRatio" ]; }, function(module, exports, __webpack_require__) { - var stream = __webpack_require__(750), nextEvent = __webpack_require__(756), Box = __webpack_require__(379), EMPTY = Buffer.alloc(0); + var stream = __webpack_require__(848), nextEvent = __webpack_require__(854), Box = __webpack_require__(429), EMPTY = Buffer.alloc(0); class Decoder extends stream.Writable { constructor(opts) { super(opts), this.destroyed = !1, this._pending = 0, this._missing = 0, this._ignoreEmpty = !1, @@ -31713,16 +37358,16 @@ }, function(module, exports, __webpack_require__) { "use strict"; var Duplex; - module.exports = Readable, Readable.ReadableState = ReadableState, __webpack_require__(4).EventEmitter; + module.exports = Readable, Readable.ReadableState = ReadableState, __webpack_require__(5).EventEmitter; var debug, EElistenerCount = function(emitter, type) { return emitter.listeners(type).length; - }, Stream = __webpack_require__(374), Buffer = __webpack_require__(8).Buffer, OurUint8Array = global.Uint8Array || function() {}, debugUtil = __webpack_require__(0); + }, Stream = __webpack_require__(424), Buffer = __webpack_require__(10).Buffer, OurUint8Array = global.Uint8Array || function() {}, debugUtil = __webpack_require__(0); debug = debugUtil && debugUtil.debuglog ? debugUtil.debuglog("stream") : function() {}; - var StringDecoder, createReadableStreamAsyncIterator, from, BufferList = __webpack_require__(751), destroyImpl = __webpack_require__(375), getHighWaterMark = __webpack_require__(376).getHighWaterMark, _require$codes = __webpack_require__(47).codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; - __webpack_require__(11)(Readable, Stream); + var StringDecoder, createReadableStreamAsyncIterator, from, BufferList = __webpack_require__(849), destroyImpl = __webpack_require__(425), getHighWaterMark = __webpack_require__(426).getHighWaterMark, _require$codes = __webpack_require__(65).codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + __webpack_require__(7)(Readable, Stream); var errorOrDestroy = destroyImpl.errorOrDestroy, kProxyEvents = [ "error", "close", "destroy", "pause", "resume" ]; function ReadableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(61), options = options || {}, "boolean" != typeof isDuplex && (isDuplex = stream instanceof Duplex), + Duplex = Duplex || __webpack_require__(76), options = options || {}, "boolean" != typeof isDuplex && (isDuplex = stream instanceof Duplex), this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.readableObjectMode), this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex), this.buffer = new BufferList, this.length = 0, this.pipes = null, this.pipesCount = 0, @@ -31731,11 +37376,11 @@ this.resumeScheduled = !1, this.paused = !0, this.emitClose = !1 !== options.emitClose, this.autoDestroy = !!options.autoDestroy, this.destroyed = !1, this.defaultEncoding = options.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, - options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(117).StringDecoder), + options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(133).StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding); } function Readable(options) { - if (Duplex = Duplex || __webpack_require__(61), !(this instanceof Readable)) return new Readable(options); + if (Duplex = Duplex || __webpack_require__(76), !(this instanceof Readable)) return new Readable(options); var isDuplex = this instanceof Duplex; this._readableState = new ReadableState(options, this, isDuplex), this.readable = !0, options && ("function" == typeof options.read && (this._read = options.read), "function" == typeof options.destroy && (this._destroy = options.destroy)), @@ -31855,7 +37500,7 @@ }, Readable.prototype.isPaused = function() { return !1 === this._readableState.flowing; }, Readable.prototype.setEncoding = function(enc) { - StringDecoder || (StringDecoder = __webpack_require__(117).StringDecoder); + StringDecoder || (StringDecoder = __webpack_require__(133).StringDecoder); var decoder = new StringDecoder(enc); this._readableState.decoder = decoder, this._readableState.encoding = this._readableState.decoder.encoding; for (var p = this._readableState.buffer.head, content = ""; null !== p; ) content += decoder.write(p.data), @@ -32002,7 +37647,7 @@ debug("wrapped _read", n), paused && (paused = !1, stream.resume()); }, this; }, "function" == typeof Symbol && (Readable.prototype[Symbol.asyncIterator] = function() { - return void 0 === createReadableStreamAsyncIterator && (createReadableStreamAsyncIterator = __webpack_require__(752)), + return void 0 === createReadableStreamAsyncIterator && (createReadableStreamAsyncIterator = __webpack_require__(850)), createReadableStreamAsyncIterator(this); }), Object.defineProperty(Readable.prototype, "readableHighWaterMark", { enumerable: !1, @@ -32028,10 +37673,10 @@ return this._readableState.length; } }), "function" == typeof Symbol && (Readable.from = function(iterable, opts) { - return void 0 === from && (from = __webpack_require__(753)), from(Readable, iterable, opts); + return void 0 === from && (from = __webpack_require__(851)), from(Readable, iterable, opts); }); }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(5); + module.exports = __webpack_require__(3); }, function(module, exports, __webpack_require__) { "use strict"; function emitErrorAndCloseNT(self, err) { @@ -32068,7 +37713,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var ERR_INVALID_OPT_VALUE = __webpack_require__(47).codes.ERR_INVALID_OPT_VALUE; + var ERR_INVALID_OPT_VALUE = __webpack_require__(65).codes.ERR_INVALID_OPT_VALUE; module.exports = { getHighWaterMark: function(state, options, duplexKey, isDuplex) { var hwm = (function(options, isDuplex, duplexKey) { @@ -32099,11 +37744,11 @@ var Duplex; module.exports = Writable, Writable.WritableState = WritableState; var realHasInstance, internalUtil = { - deprecate: __webpack_require__(147) - }, Stream = __webpack_require__(374), Buffer = __webpack_require__(8).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(375), getHighWaterMark = __webpack_require__(376).getHighWaterMark, _require$codes = __webpack_require__(47).codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING, errorOrDestroy = destroyImpl.errorOrDestroy; + deprecate: __webpack_require__(185) + }, Stream = __webpack_require__(424), Buffer = __webpack_require__(10).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(425), getHighWaterMark = __webpack_require__(426).getHighWaterMark, _require$codes = __webpack_require__(65).codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING, errorOrDestroy = destroyImpl.errorOrDestroy; function nop() {} function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(61), options = options || {}, "boolean" != typeof isDuplex && (isDuplex = stream instanceof Duplex), + Duplex = Duplex || __webpack_require__(76), options = options || {}, "boolean" != typeof isDuplex && (isDuplex = stream instanceof Duplex), this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.writableObjectMode), this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex), this.finalCalled = !1, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1, @@ -32132,7 +37777,7 @@ this.autoDestroy = !!options.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new CorkedRequest(this); } function Writable(options) { - var isDuplex = this instanceof (Duplex = Duplex || __webpack_require__(61)); + var isDuplex = this instanceof (Duplex = Duplex || __webpack_require__(76)); if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); this._writableState = new WritableState(options, this, isDuplex), this.writable = !0, options && ("function" == typeof options.write && (this._write = options.write), @@ -32190,7 +37835,7 @@ } return need; } - __webpack_require__(11)(Writable, Stream), WritableState.prototype.getBuffer = function() { + __webpack_require__(7)(Writable, Stream), WritableState.prototype.getBuffer = function() { for (var current = this.bufferedRequest, out = []; current; ) out.push(current), current = current.next; return out; @@ -32296,7 +37941,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = Transform; - var _require$codes = __webpack_require__(47).codes, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0, Duplex = __webpack_require__(61); + var _require$codes = __webpack_require__(65).codes, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0, Duplex = __webpack_require__(76); function afterTransform(er, data) { var ts = this._transformState; ts.transforming = !1; @@ -32330,7 +37975,7 @@ if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING; return stream.push(null); } - __webpack_require__(11)(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { + __webpack_require__(7)(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding); }, Transform.prototype._transform = function(chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()")); @@ -32350,7 +37995,7 @@ })); }; }, function(module, exports, __webpack_require__) { - var uint64be = __webpack_require__(380), boxes = __webpack_require__(757), Box = exports, containers = exports.containers = { + var uint64be = __webpack_require__(430), boxes = __webpack_require__(855), Box = exports, containers = exports.containers = { moov: [ "mvhd", "meta", "traks", "mvex" ], trak: [ "tkhd", "tref", "trgr", "edts", "meta", "mdia", "udta" ], edts: [ "elst" ], @@ -32444,7 +38089,7 @@ return len > 4294967295 && (len += 8), obj.length = len, len; }; }, function(module, exports, __webpack_require__) { - var bufferAlloc = __webpack_require__(336), UINT_32_MAX = Math.pow(2, 32); + var bufferAlloc = __webpack_require__(388), UINT_32_MAX = Math.pow(2, 32); exports.encodingLength = function() { return 8; }, exports.encode = function(num, buf, offset) { @@ -32457,7 +38102,7 @@ return top * UINT_32_MAX + rem; }, exports.encode.bytes = 8, exports.decode.bytes = 8; }, function(module, exports, __webpack_require__) { - const master = __webpack_require__(763), media = __webpack_require__(764); + const master = __webpack_require__(861), media = __webpack_require__(862); module.exports = { master: master, media: media @@ -32475,7 +38120,7 @@ })), new Map); }; }, function(module, exports, __webpack_require__) { - const {finished: finished} = __webpack_require__(5), DecodeStream = __webpack_require__(372), readChunk = __webpack_require__(178); + const {finished: finished} = __webpack_require__(3), DecodeStream = __webpack_require__(422), readChunk = __webpack_require__(216); module.exports = async function(stream, type) { return new Promise(((resolve, reject) => { const chunks = [], decodeStream = new DecodeStream, cleanupDecodeStream = finished(decodeStream, (() => { @@ -32543,7 +38188,7 @@ license: "MIT" }; }, function(module, exports, __webpack_require__) { - const utils = __webpack_require__(77), FORMATS = __webpack_require__(786), audioEncodingRanks = [ "mp4a", "mp3", "vorbis", "aac", "opus", "flac" ], videoEncodingRanks = [ "mp4v", "avc1", "Sorenson H.283", "MPEG-4 Visual", "VP8", "VP9", "H.264" ], getVideoBitrate = format => format.bitrate || 0, getVideoEncodingRank = format => videoEncodingRanks.findIndex((enc => format.codecs && format.codecs.includes(enc))), getAudioBitrate = format => format.audioBitrate || 0, getAudioEncodingRank = format => audioEncodingRanks.findIndex((enc => format.codecs && format.codecs.includes(enc))), sortFormatsBy = (a, b, sortBy) => { + const utils = __webpack_require__(95), FORMATS = __webpack_require__(884), audioEncodingRanks = [ "mp4a", "mp3", "vorbis", "aac", "opus", "flac" ], videoEncodingRanks = [ "mp4v", "avc1", "Sorenson H.283", "MPEG-4 Visual", "VP8", "VP9", "H.264" ], getVideoBitrate = format => format.bitrate || 0, getVideoEncodingRank = format => videoEncodingRanks.findIndex((enc => format.codecs && format.codecs.includes(enc))), getAudioBitrate = format => format.audioBitrate || 0, getAudioEncodingRank = format => audioEncodingRanks.findIndex((enc => format.codecs && format.codecs.includes(enc))), sortFormatsBy = (a, b, sortBy) => { let res = 0; for (let fn of sortBy) if (res = fn(b) - fn(a), 0 !== res) break; return res; @@ -32694,7 +38339,7 @@ return total; }; }, function(module, exports, __webpack_require__) { - const querystring = __webpack_require__(20), Cache = __webpack_require__(389), utils = __webpack_require__(77); + const querystring = __webpack_require__(24), Cache = __webpack_require__(439), utils = __webpack_require__(95); exports.cache = new Cache, exports.getTokens = (html5playerfile, options) => exports.cache.getOrSet(html5playerfile, (async () => { const body = await utils.exposedMiniget(html5playerfile, options).text(), tokens = exports.extractActions(body); if (!tokens || !tokens.length) throw Error("Could not extract signature deciphering actions"); @@ -32778,7 +38423,7 @@ })), decipheredFormats; }; }, function(module, exports, __webpack_require__) { - const {setTimeout: setTimeout} = __webpack_require__(89); + const {setTimeout: setTimeout} = __webpack_require__(117); module.exports = class extends Map { constructor(timeout = 1e3) { super(), this.timeout = timeout; @@ -32816,7 +38461,7 @@ } }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), path = __webpack_require__(3), crypto = __webpack_require__(21), tmpDir = __webpack_require__(792), _c = process.binding("constants"), _TMP = tmpDir(), RANDOM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", TEMPLATE_PATTERN = /XXXXXX/, CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR), EBADF = _c.EBADF || _c.os.errno.EBADF, ENOENT = _c.ENOENT || _c.os.errno.ENOENT, _removeObjects = [], _gracefulCleanup = !1, _uncaughtException = !1; + var fs = __webpack_require__(2), path = __webpack_require__(4), crypto = __webpack_require__(9), tmpDir = __webpack_require__(890), _c = process.binding("constants"), _TMP = tmpDir(), RANDOM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", TEMPLATE_PATTERN = /XXXXXX/, CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR), EBADF = _c.EBADF || _c.os.errno.EBADF, ENOENT = _c.ENOENT || _c.os.errno.ENOENT, _removeObjects = [], _gracefulCleanup = !1, _uncaughtException = !1; function _randomChars(howMany) { var value = [], rnd = null; try { @@ -32961,7 +38606,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(NEXT_FILTER) { - var util = __webpack_require__(13), getKeys = __webpack_require__(48).keys, tryCatch = util.tryCatch, errorObj = util.errorObj; + var util = __webpack_require__(16), getKeys = __webpack_require__(66).keys, tryCatch = util.tryCatch, errorObj = util.errorObj; return function(instances, cb, promise) { return function(e) { var boundTo = promise._boundValue(); @@ -32987,7 +38632,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(13), maybeWrapAsError = util.maybeWrapAsError, OperationalError = __webpack_require__(43).OperationalError, es5 = __webpack_require__(48), rErrorKey = /^(?:name|message|stack|cause)$/; + var util = __webpack_require__(16), maybeWrapAsError = util.maybeWrapAsError, OperationalError = __webpack_require__(55).OperationalError, es5 = __webpack_require__(66), rErrorKey = /^(?:name|message|stack|cause)$/; function wrapAsOperationalError(obj) { var ret; if ((function(obj) { @@ -33045,7 +38690,7 @@ } }; }, function(module, exports, __webpack_require__) { - var os = __webpack_require__(17); + var os = __webpack_require__(23); function externalIpv4Address(addr) { return "IPv4" === addr.family && !addr.internal; } @@ -33080,9 +38725,9 @@ }, function(module, exports, __webpack_require__) { module.exports = (function() { "use strict"; - var Buffer = __webpack_require__(8).Buffer, Long = __webpack_require__(852), memcpy = null; + var Buffer = __webpack_require__(10).Buffer, Long = __webpack_require__(948), memcpy = null; try { - memcpy = __webpack_require__(853); + memcpy = __webpack_require__(949); } catch (e) {} var ByteBuffer = function(capacity, littleEndian, noAssert) { if (void 0 === capacity && (capacity = ByteBuffer.DEFAULT_CAPACITY), void 0 === littleEndian && (littleEndian = ByteBuffer.DEFAULT_ENDIAN), @@ -34137,7 +39782,7 @@ }, ByteBuffer.memcpy = memcpy, ByteBuffer; })(); }, function(module, exports, __webpack_require__) { - var EventEmitter = __webpack_require__(4).EventEmitter; + var EventEmitter = __webpack_require__(5).EventEmitter; function PacketStreamWrapper(stream) { EventEmitter.call(this), this.stream = stream; var state = 0, packetLength = 0, self = this; @@ -34162,7 +39807,7 @@ }, module.exports = PacketStreamWrapper; }, function(module, exports, __webpack_require__) { "use strict"; - var myIp = __webpack_require__(394), url = __webpack_require__(7), querystring = __webpack_require__(20); + var myIp = __webpack_require__(444), url = __webpack_require__(6), querystring = __webpack_require__(24); function Player() { this.mediaStatus = { audio: [], @@ -34247,7 +39892,7 @@ }; }, function(module, exports, __webpack_require__) { function TreeBuilder(element_factory) { - this._data = [], this._elem = [], this._last = null, this._tail = null, element_factory || (element_factory = __webpack_require__(185).Element), + this._data = [], this._elem = [], this._last = null, this._tail = null, element_factory || (element_factory = __webpack_require__(223).Element), this._factory = element_factory; } TreeBuilder.prototype.close = function() { @@ -34273,22 +39918,22 @@ }, exports.TreeBuilder = TreeBuilder; }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(41); + var pna = __webpack_require__(53); module.exports = Readable; - var Duplex, isArray = __webpack_require__(341); - Readable.ReadableState = ReadableState, __webpack_require__(4).EventEmitter; + var Duplex, isArray = __webpack_require__(392); + Readable.ReadableState = ReadableState, __webpack_require__(5).EventEmitter; var EElistenerCount = function(emitter, type) { return emitter.listeners(type).length; - }, Stream = __webpack_require__(401), Buffer = __webpack_require__(26).Buffer, OurUint8Array = global.Uint8Array || function() {}, util = __webpack_require__(23); - util.inherits = __webpack_require__(11); + }, Stream = __webpack_require__(451), Buffer = __webpack_require__(25).Buffer, OurUint8Array = global.Uint8Array || function() {}, util = __webpack_require__(32); + util.inherits = __webpack_require__(96); var debugUtil = __webpack_require__(0), debug = void 0; debug = debugUtil && debugUtil.debuglog ? debugUtil.debuglog("stream") : function() {}; - var StringDecoder, BufferList = __webpack_require__(869), destroyImpl = __webpack_require__(402); + var StringDecoder, BufferList = __webpack_require__(965), destroyImpl = __webpack_require__(452); util.inherits(Readable, Stream); var kProxyEvents = [ "error", "close", "destroy", "pause", "resume" ]; function ReadableState(options, stream) { options = options || {}; - var isDuplex = stream instanceof (Duplex = Duplex || __webpack_require__(62)); + var isDuplex = stream instanceof (Duplex = Duplex || __webpack_require__(78)); this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.readableObjectMode); var hwm = options.highWaterMark, readableHwm = options.readableHighWaterMark, defaultHwm = this.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : isDuplex && (readableHwm || 0 === readableHwm) ? readableHwm : defaultHwm, @@ -34297,11 +39942,11 @@ this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.destroyed = !1, this.defaultEncoding = options.defaultEncoding || "utf8", this.awaitDrain = 0, - this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(117).StringDecoder), + this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(454).StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding); } function Readable(options) { - if (Duplex = Duplex || __webpack_require__(62), !(this instanceof Readable)) return new Readable(options); + if (Duplex = Duplex || __webpack_require__(78), !(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this), this.readable = !0, options && ("function" == typeof options.read && (this._read = options.read), "function" == typeof options.destroy && (this._destroy = options.destroy)), Stream.call(this); } @@ -34430,7 +40075,7 @@ }, Readable.prototype.isPaused = function() { return !1 === this._readableState.flowing; }, Readable.prototype.setEncoding = function(enc) { - return StringDecoder || (StringDecoder = __webpack_require__(117).StringDecoder), + return StringDecoder || (StringDecoder = __webpack_require__(454).StringDecoder), this._readableState.decoder = new StringDecoder(enc), this._readableState.encoding = enc, this; }, Readable.prototype.read = function(n) { @@ -34566,10 +40211,10 @@ } }), Readable._fromList = fromList; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(5); + module.exports = __webpack_require__(3); }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(41); + var pna = __webpack_require__(53); function emitErrorNT(self, err) { self.emit("error", err); } @@ -34591,7 +40236,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(41); + var pna = __webpack_require__(53); function CorkedRequest(state) { var _this = this; this.next = null, this.entry = null, this.finish = function() { @@ -34608,14 +40253,14 @@ module.exports = Writable; var Duplex, asyncWrite = !process.browser && [ "v0.10", "v0.9." ].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; Writable.WritableState = WritableState; - var util = __webpack_require__(23); - util.inherits = __webpack_require__(11); + var util = __webpack_require__(32); + util.inherits = __webpack_require__(96); var realHasInstance, internalUtil = { - deprecate: __webpack_require__(147) - }, Stream = __webpack_require__(401), Buffer = __webpack_require__(26).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(402); + deprecate: __webpack_require__(185) + }, Stream = __webpack_require__(451), Buffer = __webpack_require__(25).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(452); function nop() {} function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(62), options = options || {}; + Duplex = Duplex || __webpack_require__(78), options = options || {}; var isDuplex = stream instanceof Duplex; this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.writableObjectMode); var hwm = options.highWaterMark, writableHwm = options.writableHighWaterMark, defaultHwm = this.objectMode ? 16 : 16384; @@ -34645,7 +40290,7 @@ this.corkedRequestsFree = new CorkedRequest(this); } function Writable(options) { - if (Duplex = Duplex || __webpack_require__(62), !(realHasInstance.call(Writable, this) || this instanceof Duplex)) return new Writable(options); + if (Duplex = Duplex || __webpack_require__(78), !(realHasInstance.call(Writable, this) || this instanceof Duplex)) return new Writable(options); this._writableState = new WritableState(options, this), this.writable = !0, options && ("function" == typeof options.write && (this._write = options.write), "function" == typeof options.writev && (this._writev = options.writev), "function" == typeof options.destroy && (this._destroy = options.destroy), "function" == typeof options.final && (this._final = options.final)), Stream.call(this); @@ -34790,10 +40435,163 @@ Writable.prototype._destroy = function(err, cb) { this.end(), cb(err); }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var Buffer = __webpack_require__(25).Buffer, isEncoding = Buffer.isEncoding || function(encoding) { + switch ((encoding = "" + encoding) && encoding.toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + case "raw": + return !0; + + default: + return !1; + } + }; + function StringDecoder(encoding) { + var nb; + switch (this.encoding = (function(enc) { + var nenc = (function(enc) { + if (!enc) return "utf8"; + for (var retried; ;) switch (enc) { + case "utf8": + case "utf-8": + return "utf8"; + + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return "utf16le"; + + case "latin1": + case "binary": + return "latin1"; + + case "base64": + case "ascii": + case "hex": + return enc; + + default: + if (retried) return; + enc = ("" + enc).toLowerCase(), retried = !0; + } + })(enc); + if ("string" != typeof nenc && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error("Unknown encoding: " + enc); + return nenc || enc; + })(encoding), this.encoding) { + case "utf16le": + this.text = utf16Text, this.end = utf16End, nb = 4; + break; + + case "utf8": + this.fillLast = utf8FillLast, nb = 4; + break; + + case "base64": + this.text = base64Text, this.end = base64End, nb = 3; + break; + + default: + return this.write = simpleWrite, void (this.end = simpleEnd); + } + this.lastNeed = 0, this.lastTotal = 0, this.lastChar = Buffer.allocUnsafe(nb); + } + function utf8CheckByte(byte) { + return byte <= 127 ? 0 : byte >> 5 == 6 ? 2 : byte >> 4 == 14 ? 3 : byte >> 3 == 30 ? 4 : byte >> 6 == 2 ? -1 : -2; + } + function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed, r = (function(self, buf, p) { + if (128 != (192 & buf[0])) return self.lastNeed = 0, "�"; + if (self.lastNeed > 1 && buf.length > 1) { + if (128 != (192 & buf[1])) return self.lastNeed = 1, "�"; + if (self.lastNeed > 2 && buf.length > 2 && 128 != (192 & buf[2])) return self.lastNeed = 2, + "�"; + } + })(this, buf); + return void 0 !== r ? r : this.lastNeed <= buf.length ? (buf.copy(this.lastChar, p, 0, this.lastNeed), + this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (buf.copy(this.lastChar, p, 0, buf.length), + void (this.lastNeed -= buf.length)); + } + function utf16Text(buf, i) { + if ((buf.length - i) % 2 == 0) { + var r = buf.toString("utf16le", i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 55296 && c <= 56319) return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = buf[buf.length - 2], + this.lastChar[1] = buf[buf.length - 1], r.slice(0, -1); + } + return r; + } + return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = buf[buf.length - 1], + buf.toString("utf16le", i, buf.length - 1); + } + function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString("utf16le", 0, end); + } + return r; + } + function base64Text(buf, i) { + var n = (buf.length - i) % 3; + return 0 === n ? buf.toString("base64", i) : (this.lastNeed = 3 - n, this.lastTotal = 3, + 1 === n ? this.lastChar[0] = buf[buf.length - 1] : (this.lastChar[0] = buf[buf.length - 2], + this.lastChar[1] = buf[buf.length - 1]), buf.toString("base64", i, buf.length - n)); + } + function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + return this.lastNeed ? r + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : r; + } + function simpleWrite(buf) { + return buf.toString(this.encoding); + } + function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ""; + } + exports.StringDecoder = StringDecoder, StringDecoder.prototype.write = function(buf) { + if (0 === buf.length) return ""; + var r, i; + if (this.lastNeed) { + if (void 0 === (r = this.fillLast(buf))) return ""; + i = this.lastNeed, this.lastNeed = 0; + } else i = 0; + return i < buf.length ? r ? r + this.text(buf, i) : this.text(buf, i) : r || ""; + }, StringDecoder.prototype.end = function(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + return this.lastNeed ? r + "�" : r; + }, StringDecoder.prototype.text = function(buf, i) { + var total = (function(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + return nb >= 0 ? (nb > 0 && (self.lastNeed = nb - 1), nb) : --j < i || -2 === nb ? 0 : (nb = utf8CheckByte(buf[j])) >= 0 ? (nb > 0 && (self.lastNeed = nb - 2), + nb) : --j < i || -2 === nb ? 0 : (nb = utf8CheckByte(buf[j])) >= 0 ? (nb > 0 && (2 === nb ? nb = 0 : self.lastNeed = nb - 3), + nb) : 0; + })(this, buf, i); + if (!this.lastNeed) return buf.toString("utf8", i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + return buf.copy(this.lastChar, 0, end), buf.toString("utf8", i, end); + }, StringDecoder.prototype.fillLast = function(buf) { + if (this.lastNeed <= buf.length) return buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), + this.lastChar.toString(this.encoding, 0, this.lastTotal); + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length), this.lastNeed -= buf.length; + }; }, function(module, exports, __webpack_require__) { "use strict"; module.exports = Transform; - var Duplex = __webpack_require__(62), util = __webpack_require__(23); + var Duplex = __webpack_require__(78), util = __webpack_require__(32); function afterTransform(er, data) { var ts = this._transformState; ts.transforming = !1; @@ -34827,7 +40625,7 @@ if (stream._transformState.transforming) throw new Error("Calling transform done when still transforming"); return stream.push(null); } - util.inherits = __webpack_require__(11), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { + util.inherits = __webpack_require__(96), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding); }, Transform.prototype._transform = function(chunk, encoding, cb) { throw new Error("_transform() is not implemented"); @@ -34849,7 +40647,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Route = __webpack_require__(406), Layer = __webpack_require__(407), methods = __webpack_require__(70), mixin = __webpack_require__(52), debug = __webpack_require__(6)("express:router"), deprecate = __webpack_require__(36)("express"), flatten = __webpack_require__(119), parseUrl = __webpack_require__(37), setPrototypeOf = __webpack_require__(80), objectRegExp = /^\[object (\S+)\]$/, slice = Array.prototype.slice, toString = Object.prototype.toString, proto = module.exports = function(options) { + var Route = __webpack_require__(457), Layer = __webpack_require__(458), methods = __webpack_require__(61), mixin = __webpack_require__(60), debug = __webpack_require__(8)("express:router"), deprecate = __webpack_require__(47)("express"), flatten = __webpack_require__(149), parseUrl = __webpack_require__(46), setPrototypeOf = __webpack_require__(108), objectRegExp = /^\[object (\S+)\]$/, slice = Array.prototype.slice, toString = Object.prototype.toString, proto = module.exports = function(options) { var opts = options || {}; function router(req, res, next) { router.handle(req, res, next); @@ -35021,7 +40819,7 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(6)("express:router:route"), flatten = __webpack_require__(119), Layer = __webpack_require__(407), methods = __webpack_require__(70), slice = Array.prototype.slice, toString = Object.prototype.toString; + var debug = __webpack_require__(8)("express:router:route"), flatten = __webpack_require__(149), Layer = __webpack_require__(458), methods = __webpack_require__(61), slice = Array.prototype.slice, toString = Object.prototype.toString; function Route(path) { this.path = path, this.stack = [], debug("new %o", path), this.methods = {}; } @@ -35072,7 +40870,7 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - var pathRegexp = __webpack_require__(198), debug = __webpack_require__(6)("express:router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; + var pathRegexp = __webpack_require__(161), debug = __webpack_require__(8)("express:router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; function Layer(path, options, fn) { if (!(this instanceof Layer)) return new Layer(path, options, fn); debug("new %o", path); @@ -35125,7 +40923,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var merge = __webpack_require__(52), parseUrl = __webpack_require__(37), qs = __webpack_require__(126); + var merge = __webpack_require__(60), parseUrl = __webpack_require__(46), qs = __webpack_require__(160); module.exports = function(options) { var opts = merge({}, options), queryparse = qs.parse; return "function" == typeof options && (queryparse = options, opts = void 0), void 0 !== opts && void 0 === opts.allowPrototypes && (opts.allowPrototypes = !0), @@ -35176,7 +40974,7 @@ if (-1 !== index && index !== string.length) throw new TypeError("invalid parameter format"); return new ContentDisposition(type, params); }; - var basename = __webpack_require__(3).basename, Buffer = __webpack_require__(26).Buffer, ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g, HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/, HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g, NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g, QESC_REGEXP = /\\([\u0000-\u007f])/g, QUOTE_REGEXP = /([\\"])/g, PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g, TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/, TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/, EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/, DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/; + var basename = __webpack_require__(4).basename, Buffer = __webpack_require__(25).Buffer, ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g, HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/, HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g, NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g, QESC_REGEXP = /\\([\u0000-\u007f])/g, QUOTE_REGEXP = /([\\"])/g, PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g, TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/, TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/, EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/, DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/; function decodefield(str) { var match = EXT_VALUE_REGEXP.exec(str); if (!match) throw new TypeError("invalid extended field value"); @@ -35228,7 +41026,7 @@ })(entity); return weak ? "W/" + tag : tag; }; - var crypto = __webpack_require__(21), Stats = __webpack_require__(2).Stats, toString = Object.prototype.toString; + var crypto = __webpack_require__(9), Stats = __webpack_require__(2).Stats, toString = Object.prototype.toString; }, function(module, exports, __webpack_require__) { "use strict"; var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/; @@ -35281,7 +41079,7 @@ var addrs = alladdrs(req, trust); return addrs[addrs.length - 1]; }, module.exports.all = alladdrs, module.exports.compile = compile; - var forwarded = __webpack_require__(886), ipaddr = __webpack_require__(131), DIGIT_REGEXP = /^[0-9]+$/, isip = ipaddr.isValid, parseip = ipaddr.parse, IP_RANGES = { + var forwarded = __webpack_require__(982), ipaddr = __webpack_require__(166), DIGIT_REGEXP = /^[0-9]+$/, isip = ipaddr.isValid, parseip = ipaddr.parse, IP_RANGES = { linklocal: [ "169.254.0.0/16", "fe80::/10" ], loopback: [ "127.0.0.1/8", "::1/128" ], uniquelocal: [ "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7" ] @@ -35381,7 +41179,7 @@ return list.push(header.substring(start, end)), list; } }, function(module, exports, __webpack_require__) { - const consts = __webpack_require__(63), pkg = __webpack_require__(415); + const consts = __webpack_require__(79), pkg = __webpack_require__(466); module.exports = { id: "org.stremio.local", version: pkg.version, @@ -35438,7 +41236,7 @@ homepage: "https://github.com/Stremio/stremio-local-addon#readme" }; }, function(module, exports, __webpack_require__) { - const parseTorrent = __webpack_require__(908), fs = __webpack_require__(2), path = __webpack_require__(3), nameToImdb = __webpack_require__(917), videoNameParser = __webpack_require__(218), promisify = __webpack_require__(0).promisify, consts = __webpack_require__(63); + const parseTorrent = __webpack_require__(1004), fs = __webpack_require__(2), path = __webpack_require__(4), nameToImdb = __webpack_require__(1013), videoNameParser = __webpack_require__(270), promisify = __webpack_require__(0).promisify, consts = __webpack_require__(79); function indexParsedTorrent(torrent, cb) { const ih = ((torrent = torrent || {}).infoHash || "").toLowerCase(), name = torrent.name, files = (torrent.files || []).map((function(f, i) { return f.idx = i, f; @@ -35515,7 +41313,7 @@ indexParsedTorrent: indexParsedTorrent }; }, function(module, exports, __webpack_require__) { - const fetch = __webpack_require__(24), consts = __webpack_require__(63); + const fetch = __webpack_require__(33), consts = __webpack_require__(79); module.exports = function(entry) { const imdbIdFile = entry.files.find((function(f) { return f.imdb_id; @@ -35542,19 +41340,2353 @@ return console.log("local-addon", imdbIdFile, err), genericMeta; }))) : Promise.resolve(genericMeta); }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var debug = __webpack_require__(8)("router"), flatten = __webpack_require__(470).flatten, Layer = __webpack_require__(471), methods = __webpack_require__(61), mixin = __webpack_require__(60), parseUrl = __webpack_require__(46), Route = __webpack_require__(1038), setPrototypeOf = __webpack_require__(1039), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + process.nextTick(fn.bind.apply(fn, arguments)); + }; + function Router(options) { + if (!(this instanceof Router)) return new Router(options); + var opts = options || {}; + function router(req, res, next) { + router.handle(req, res, next); + } + return setPrototypeOf(router, this), router.caseSensitive = opts.caseSensitive, + router.mergeParams = opts.mergeParams, router.params = {}, router.strict = opts.strict, + router.stack = [], router; + } + function matchLayer(layer, path) { + try { + return layer.match(path); + } catch (err) { + return err; + } + } + module.exports = Router, module.exports.Route = Route, Router.prototype = function() {}, + Router.prototype.param = function(name, fn) { + if (!name) throw new TypeError("argument name is required"); + if ("string" != typeof name) throw new TypeError("argument name must be a string"); + if (!fn) throw new TypeError("argument fn is required"); + if ("function" != typeof fn) throw new TypeError("argument fn must be a function"); + var params = this.params[name]; + return params || (params = this.params[name] = []), params.push(fn), this; + }, Router.prototype.handle = function(req, res, callback) { + if (!callback) throw new TypeError("argument callback is required"); + debug("dispatching %s %s", req.method, req.url); + var methods, old, fn, idx = 0, protohost = (function(url) { + if ("string" == typeof url && 0 !== url.length && "/" !== url[0]) { + var searchIndex = url.indexOf("?"), pathLength = -1 !== searchIndex ? searchIndex : url.length, fqdnIndex = url.substring(0, pathLength).indexOf("://"); + return -1 !== fqdnIndex ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0; + } + })(req.url) || "", removed = "", self = this, slashAdded = !1, sync = 0, paramcalled = {}, stack = this.stack, parentParams = req.params, parentUrl = req.baseUrl || "", done = (function(fn, obj) { + for (var props = new Array(arguments.length - 2), vals = new Array(arguments.length - 2), i = 0; i < props.length; i++) props[i] = arguments[i + 2], + vals[i] = obj[props[i]]; + return function() { + for (var i = 0; i < props.length; i++) obj[props[i]] = vals[i]; + return fn.apply(this, arguments); + }; + })(callback, req, "baseUrl", "next", "params"); + function next(err) { + var layerError = "route" === err ? null : err; + if (slashAdded && (req.url = req.url.slice(1), slashAdded = !1), 0 !== removed.length && (req.baseUrl = parentUrl, + req.url = protohost + removed + req.url.slice(protohost.length), removed = ""), + "router" !== layerError) if (idx >= stack.length) defer(done, layerError); else { + if (++sync > 100) return defer(next, err); + var layer, match, route, path = (function(req) { + try { + return parseUrl(req).pathname; + } catch (err) { + return; + } + })(req); + if (null == path) return done(layerError); + for (;!0 !== match && idx < stack.length; ) if (match = matchLayer(layer = stack[idx++], path), + route = layer.route, "boolean" != typeof match && (layerError = layerError || match), + !0 === match && route) if (layerError) match = !1; else { + var method = req.method, has_method = route._handles_method(method); + !has_method && "OPTIONS" === method && methods && methods.push.apply(methods, route._methods()), + has_method || "HEAD" === method || (match = !1); + } + if (!0 !== match) return done(layerError); + route && (req.route = route), req.params = self.mergeParams ? (function(params, parent) { + if ("object" != typeof parent || !parent) return params; + var obj = mixin({}, parent); + if (!(0 in params) || !(0 in parent)) return mixin(obj, params); + for (var i = 0, o = 0; i in params; ) i++; + for (;o in parent; ) o++; + for (i--; i >= 0; i--) params[i + o] = params[i], i < o && delete params[i]; + return mixin(obj, params); + })(layer.params, parentParams) : layer.params; + var layerPath = layer.path; + self.process_params(layer, paramcalled, req, res, (function(err) { + err ? next(layerError || err) : route ? layer.handle_request(req, res, next) : (function(layer, layerError, layerPath, path) { + if (0 !== layerPath.length) { + if (layerPath !== path.substring(0, layerPath.length)) return void next(layerError); + var c = path[layerPath.length]; + if (c && "/" !== c) return void next(layerError); + debug("trim prefix (%s) from url %s", layerPath, req.url), removed = layerPath, + req.url = protohost + req.url.slice(protohost.length + removed.length), protohost || "/" === req.url[0] || (req.url = "/" + req.url, + slashAdded = !0), req.baseUrl = parentUrl + ("/" === removed[removed.length - 1] ? removed.substring(0, removed.length - 1) : removed); + } + debug("%s %s : %s", layer.name, layerPath, req.originalUrl), layerError ? layer.handle_error(layerError, req, res, next) : layer.handle_request(req, res, next); + })(layer, layerError, layerPath, path), sync = 0; + })); + } else defer(done, null); + } + req.next = next, "OPTIONS" === req.method && (old = done, fn = (function(res, methods) { + return function(fn, err) { + if (err || 0 === methods.length) return fn(err); + !(function(res, methods, next) { + try { + !(function(res, methods) { + for (var options = Object.create(null), i = 0; i < methods.length; i++) options[methods[i]] = !0; + var allow = Object.keys(options).sort().join(", "); + res.setHeader("Allow", allow), res.setHeader("Content-Length", Buffer.byteLength(allow)), + res.setHeader("Content-Type", "text/plain"), res.setHeader("X-Content-Type-Options", "nosniff"), + res.end(allow); + })(res, methods); + } catch (err) { + next(err); + } + })(res, methods, fn); + }; + })(res, methods = []), done = function() { + var args = new Array(arguments.length + 1); + args[0] = old; + for (var i = 0, len = arguments.length; i < len; i++) args[i + 1] = arguments[i]; + fn.apply(this, args); + }), req.baseUrl = parentUrl, req.originalUrl = req.originalUrl || req.url, next(); + }, Router.prototype.process_params = function(layer, called, req, res, done) { + var params = this.params, keys = layer.keys; + if (!keys || 0 === keys.length) return done(); + var name, key, paramVal, paramCallbacks, paramCalled, i = 0, paramIndex = 0; + function param(err) { + return err ? done(err) : i >= keys.length ? done() : (paramIndex = 0, key = keys[i++], + name = key.name, paramVal = req.params[name], paramCallbacks = params[name], paramCalled = called[name], + void 0 !== paramVal && paramCallbacks ? paramCalled && (paramCalled.match === paramVal || paramCalled.error && "route" !== paramCalled.error) ? (req.params[name] = paramCalled.value, + param(paramCalled.error)) : (called[name] = paramCalled = { + error: null, + match: paramVal, + value: paramVal + }, void paramCallback()) : param()); + } + function paramCallback(err) { + var fn = paramCallbacks[paramIndex++]; + if (paramCalled.value = req.params[key.name], err) return paramCalled.error = err, + void param(err); + if (!fn) return param(); + try { + fn(req, res, paramCallback, paramVal, key.name); + } catch (e) { + paramCallback(e); + } + } + param(); + }, Router.prototype.use = function(handler) { + var offset = 0, path = "/"; + if ("function" != typeof handler) { + for (var arg = handler; Array.isArray(arg) && 0 !== arg.length; ) arg = arg[0]; + "function" != typeof arg && (offset = 1, path = handler); + } + var callbacks = flatten(slice.call(arguments, offset)); + if (0 === callbacks.length) throw new TypeError("argument handler is required"); + for (var i = 0; i < callbacks.length; i++) { + var fn = callbacks[i]; + if ("function" != typeof fn) throw new TypeError("argument handler must be a function"); + debug("use %o %s", path, fn.name || ""); + var layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: !1, + end: !1 + }, fn); + layer.route = void 0, this.stack.push(layer); + } + return this; + }, Router.prototype.route = function(path) { + var route = new Route(path), layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: this.strict, + end: !0 + }, (function(req, res, next) { + route.dispatch(req, res, next); + })); + return layer.route = route, this.stack.push(layer), route; + }, methods.concat("all").forEach((function(method) { + Router.prototype[method] = function(path) { + var route = this.route(path); + return route[method].apply(route, slice.call(arguments, 1)), this; + }; + })); +}, function(module, exports, __webpack_require__) { + "use strict"; + function $flatten(array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i]; + Array.isArray(value) ? $flatten(value, result) : result.push(value); + } + } + Object.defineProperty(exports, "__esModule", { + value: !0 + }), exports.flatten = function(array) { + var result = []; + return $flatten(array, result), result; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var pathRegexp = __webpack_require__(161), debug = __webpack_require__(8)("router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; + function Layer(path, options, fn) { + if (!(this instanceof Layer)) return new Layer(path, options, fn); + debug("new %o", path); + var opts = options || {}; + this.handle = fn, this.name = fn.name || "", this.params = void 0, this.path = void 0, + this.regexp = pathRegexp(path, this.keys = [], opts), this.regexp.fast_star = "*" === path, + this.regexp.fast_slash = "/" === path && !1 === opts.end; + } + function decode_param(val) { + if ("string" != typeof val || 0 === val.length) return val; + try { + return decodeURIComponent(val); + } catch (err) { + throw err instanceof URIError && (err.message = "Failed to decode param '" + val + "'", + err.status = 400), err; + } + } + module.exports = Layer, Layer.prototype.handle_error = function(error, req, res, next) { + var fn = this.handle; + if (4 !== fn.length) return next(error); + try { + fn(error, req, res, next); + } catch (err) { + next(err); + } + }, Layer.prototype.handle_request = function(req, res, next) { + var fn = this.handle; + if (fn.length > 3) return next(); + try { + fn(req, res, next); + } catch (err) { + next(err); + } + }, Layer.prototype.match = function(path) { + var match; + if (null != path) { + if (this.regexp.fast_slash) return this.params = {}, this.path = "", !0; + if (this.regexp.fast_star) return this.params = { + 0: decode_param(path) + }, this.path = path, !0; + match = this.regexp.exec(path); + } + if (!match) return this.params = void 0, this.path = void 0, !1; + this.params = {}, this.path = match[0]; + for (var keys = this.keys, params = this.params, i = 1; i < match.length; i++) { + var prop = keys[i - 1].name, val = decode_param(match[i]); + void 0 === val && hasOwnProperty.call(params, prop) || (params[prop] = val); + } + return !0; + }; +}, function(module, exports, __webpack_require__) { + const {RarFilesPackage: RarFilesPackage} = __webpack_require__(1040), urlToFileMedia = __webpack_require__(1041), store = __webpack_require__(227), safeStatelessRegex = __webpack_require__(169), rarStreams = {}, isRegex = /^\/(.*)\/(.*)$/; + module.exports = async function(req) { + const {opts: opts, query: query} = (function(req) { + let opts = {}; + try { + opts = JSON.parse(req.query.o); + } catch (e) {} + return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { + if ((el || "").match(isRegex)) { + const parts = isRegex.exec(el); + try { + return new RegExp(parts[1], parts[2]); + } catch (e) {} + } + return el; + }))), { + opts: opts, + query: req.query + }; + })(req), rarUrls = (function(query) { + let rarUrls = [], key = query.key; + return key && store.get(key) ? rarUrls = store.get(key) : (rarUrls = query.r || [], + "string" == typeof rarUrls && (rarUrls = [ rarUrls ])), rarUrls; + })(query); + return rarStreams[req.url] = rarStreams[req.url] || await (async (urls, opts = {}) => { + const rarFiles = []; + for (let url of urls) rarFiles.push(urlToFileMedia(url)); + const rarStreamPackage = new RarFilesPackage(await Promise.all(rarFiles)); + (opts.fileMustInclude || []).length || opts.hasOwnProperty("fileIdx") || (opts = { + fileMustInclude: [ /.mkv$|.mp4$|.avi$/i ] + }); + const rarStreamOpts = { + filter: function(name, idx) { + return (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, + safeStatelessRegex(name || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === idx; + }, + maxFiles: 1 + }, innerFiles = await rarStreamPackage.parse(rarStreamOpts); + if (!innerFiles[0]) throw Error("no file matching " + JSON.stringify(opts)); + return innerFiles[0]; + })(rarUrls, opts), rarStreams[req.url]; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var tough = __webpack_require__(1042), Cookie = tough.Cookie, CookieJar = tough.CookieJar; + function RequestJar(store) { + this._jar = new CookieJar(store, { + looseMode: !0 + }); + } + exports.parse = function(str) { + if (str && str.uri && (str = str.uri), "string" != typeof str) throw new Error("The cookie function only accepts STRING as param"); + return Cookie.parse(str, { + loose: !0 + }); + }, RequestJar.prototype.setCookie = function(cookieOrStr, uri, options) { + return this._jar.setCookieSync(cookieOrStr, uri, options || {}); + }, RequestJar.prototype.getCookieString = function(uri) { + return this._jar.getCookieStringSync(uri); + }, RequestJar.prototype.getCookies = function(uri) { + return this._jar.getCookiesSync(uri); + }, exports.jar = function(store) { + return new RequestJar(store); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var psl = __webpack_require__(1043); + exports.getPublicSuffix = function(domain) { + return psl.get(domain); + }; +}, function(module, exports) { + module.exports = require("punycode"); +}, function(module, exports, __webpack_require__) { + "use strict"; + function Store() {} + exports.Store = Store, Store.prototype.synchronous = !1, Store.prototype.findCookie = function(domain, path, key, cb) { + throw new Error("findCookie is not implemented"); + }, Store.prototype.findCookies = function(domain, path, cb) { + throw new Error("findCookies is not implemented"); + }, Store.prototype.putCookie = function(cookie, cb) { + throw new Error("putCookie is not implemented"); + }, Store.prototype.updateCookie = function(oldCookie, newCookie, cb) { + throw new Error("updateCookie is not implemented"); + }, Store.prototype.removeCookie = function(domain, path, key, cb) { + throw new Error("removeCookie is not implemented"); + }, Store.prototype.removeCookies = function(domain, path, cb) { + throw new Error("removeCookies is not implemented"); + }, Store.prototype.getAllCookies = function(cb) { + throw new Error("getAllCookies is not implemented (therefore jar cannot be serialized)"); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var pubsuffix = __webpack_require__(474); + exports.permuteDomain = function(domain) { + var pubSuf = pubsuffix.getPublicSuffix(domain); + if (!pubSuf) return null; + if (pubSuf == domain) return [ domain ]; + for (var parts = domain.slice(0, -(pubSuf.length + 1)).split(".").reverse(), cur = pubSuf, permutations = [ cur ]; parts.length; ) cur = parts.shift() + "." + cur, + permutations.push(cur); + return permutations; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + exports.pathMatch = function(reqPath, cookiePath) { + if (cookiePath === reqPath) return !0; + if (0 === reqPath.indexOf(cookiePath)) { + if ("/" === cookiePath.substr(-1)) return !0; + if ("/" === reqPath.substr(cookiePath.length, 1)) return !0; + } + return !1; + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + Verifier: Verifier, + Signer: Signer + }; + var nacl = __webpack_require__(99), stream = __webpack_require__(3), util = __webpack_require__(0), assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, Signature = __webpack_require__(48); + function Verifier(key, hashAlgo) { + if ("sha512" !== hashAlgo.toLowerCase()) throw new Error("ED25519 only supports the use of SHA-512 hashes"); + this.key = key, this.chunks = [], stream.Writable.call(this, {}); + } + function Signer(key, hashAlgo) { + if ("sha512" !== hashAlgo.toLowerCase()) throw new Error("ED25519 only supports the use of SHA-512 hashes"); + this.key = key, this.chunks = [], stream.Writable.call(this, {}); + } + util.inherits(Verifier, stream.Writable), Verifier.prototype._write = function(chunk, enc, cb) { + this.chunks.push(chunk), cb(); + }, Verifier.prototype.update = function(chunk) { + "string" == typeof chunk && (chunk = Buffer.from(chunk, "binary")), this.chunks.push(chunk); + }, Verifier.prototype.verify = function(signature, fmt) { + var sig; + if (Signature.isSignature(signature, [ 2, 0 ])) { + if ("ed25519" !== signature.type) return !1; + sig = signature.toBuffer("raw"); + } else if ("string" == typeof signature) sig = Buffer.from(signature, "base64"); else if (Signature.isSignature(signature, [ 1, 0 ])) throw new Error("signature was created by too old a version of sshpk and cannot be verified"); + return assert.buffer(sig), nacl.sign.detached.verify(new Uint8Array(Buffer.concat(this.chunks)), new Uint8Array(sig), new Uint8Array(this.key.part.A.data)); + }, util.inherits(Signer, stream.Writable), Signer.prototype._write = function(chunk, enc, cb) { + this.chunks.push(chunk), cb(); + }, Signer.prototype.update = function(chunk) { + "string" == typeof chunk && (chunk = Buffer.from(chunk, "binary")), this.chunks.push(chunk); + }, Signer.prototype.sign = function() { + var sig = nacl.sign.detached(new Uint8Array(Buffer.concat(this.chunks)), new Uint8Array(Buffer.concat([ this.key.part.k.data, this.key.part.A.data ]))), sigBuf = Buffer.from(sig), sigObj = Signature.parse(sigBuf, "ed25519", "raw"); + return sigObj.hashAlgorithm = "sha512", sigObj; + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + if ("string" == typeof buf) { + if (buf.trim().match(/^[-]+[ ]*BEGIN/)) return pem.read(buf, options); + if (buf.match(/^\s*ssh-[a-z]/)) return ssh.read(buf, options); + if (buf.match(/^\s*ecdsa-/)) return ssh.read(buf, options); + if (buf.match(/^putty-user-key-file-2:/i)) return putty.read(buf, options); + if (findDNSSECHeader(buf)) return dnssec.read(buf, options); + buf = Buffer.from(buf, "binary"); + } else { + if (assert.buffer(buf), (function(buf) { + for (var offset = 0; offset < buf.length && (32 === buf[offset] || 10 === buf[offset]); ) ++offset; + if (45 !== buf[offset]) return !1; + for (;offset < buf.length && 45 === buf[offset]; ) ++offset; + for (;offset < buf.length && 32 === buf[offset]; ) ++offset; + return !(offset + 5 > buf.length || "BEGIN" !== buf.slice(offset, offset + 5).toString("ascii")); + })(buf)) return pem.read(buf, options); + if ((function(buf) { + for (var offset = 0; offset < buf.length && (32 === buf[offset] || 10 === buf[offset] || 9 === buf[offset]); ) ++offset; + return offset + 4 <= buf.length && "ssh-" === buf.slice(offset, offset + 4).toString("ascii") || offset + 6 <= buf.length && "ecdsa-" === buf.slice(offset, offset + 6).toString("ascii"); + })(buf)) return ssh.read(buf, options); + if ((function(buf) { + for (var offset = 0; offset < buf.length && (32 === buf[offset] || 10 === buf[offset] || 9 === buf[offset]); ) ++offset; + return offset + 22 <= buf.length && "putty-user-key-file-2:" === buf.slice(offset, offset + 22).toString("ascii").toLowerCase(); + })(buf)) return putty.read(buf, options); + if (findDNSSECHeader(buf)) return dnssec.read(buf, options); + } + if (buf.readUInt32BE(0) < buf.length) return rfc4253.read(buf, options); + throw new Error("Failed to auto-detect format of key"); + }, + write: function(key, options) { + throw new Error('"auto" format cannot be used for writing'); + } + }; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, pem = (__webpack_require__(27), + __webpack_require__(26), __webpack_require__(28), __webpack_require__(56)), ssh = __webpack_require__(482), rfc4253 = __webpack_require__(57), dnssec = __webpack_require__(235), putty = __webpack_require__(483); + function findDNSSECHeader(buf) { + if (buf.length <= "Private-key-format: v1".length) return !1; + if ("Private-key-format: v1" === buf.slice(0, "Private-key-format: v1".length).toString("ascii")) return !0; + "string" != typeof buf && (buf = buf.toString("ascii")); + for (var lines = buf.split("\n"), line = 0; lines[line].match(/^\;/); ) line++; + return !!lines[line].toString("ascii").match(/\. IN KEY /) || !!lines[line].toString("ascii").match(/\. IN DNSKEY /); + } +}, function(module, exports, __webpack_require__) { + "use strict"; + var crypto_hash_sha512 = __webpack_require__(99).lowlevel.crypto_hash, BLF_J = 0, Blowfish = function() { + this.S = [ new Uint32Array([ 3509652390, 2564797868, 805139163, 3491422135, 3101798381, 1780907670, 3128725573, 4046225305, 614570311, 3012652279, 134345442, 2240740374, 1667834072, 1901547113, 2757295779, 4103290238, 227898511, 1921955416, 1904987480, 2182433518, 2069144605, 3260701109, 2620446009, 720527379, 3318853667, 677414384, 3393288472, 3101374703, 2390351024, 1614419982, 1822297739, 2954791486, 3608508353, 3174124327, 2024746970, 1432378464, 3864339955, 2857741204, 1464375394, 1676153920, 1439316330, 715854006, 3033291828, 289532110, 2706671279, 2087905683, 3018724369, 1668267050, 732546397, 1947742710, 3462151702, 2609353502, 2950085171, 1814351708, 2050118529, 680887927, 999245976, 1800124847, 3300911131, 1713906067, 1641548236, 4213287313, 1216130144, 1575780402, 4018429277, 3917837745, 3693486850, 3949271944, 596196993, 3549867205, 258830323, 2213823033, 772490370, 2760122372, 1774776394, 2652871518, 566650946, 4142492826, 1728879713, 2882767088, 1783734482, 3629395816, 2517608232, 2874225571, 1861159788, 326777828, 3124490320, 2130389656, 2716951837, 967770486, 1724537150, 2185432712, 2364442137, 1164943284, 2105845187, 998989502, 3765401048, 2244026483, 1075463327, 1455516326, 1322494562, 910128902, 469688178, 1117454909, 936433444, 3490320968, 3675253459, 1240580251, 122909385, 2157517691, 634681816, 4142456567, 3825094682, 3061402683, 2540495037, 79693498, 3249098678, 1084186820, 1583128258, 426386531, 1761308591, 1047286709, 322548459, 995290223, 1845252383, 2603652396, 3431023940, 2942221577, 3202600964, 3727903485, 1712269319, 422464435, 3234572375, 1170764815, 3523960633, 3117677531, 1434042557, 442511882, 3600875718, 1076654713, 1738483198, 4213154764, 2393238008, 3677496056, 1014306527, 4251020053, 793779912, 2902807211, 842905082, 4246964064, 1395751752, 1040244610, 2656851899, 3396308128, 445077038, 3742853595, 3577915638, 679411651, 2892444358, 2354009459, 1767581616, 3150600392, 3791627101, 3102740896, 284835224, 4246832056, 1258075500, 768725851, 2589189241, 3069724005, 3532540348, 1274779536, 3789419226, 2764799539, 1660621633, 3471099624, 4011903706, 913787905, 3497959166, 737222580, 2514213453, 2928710040, 3937242737, 1804850592, 3499020752, 2949064160, 2386320175, 2390070455, 2415321851, 4061277028, 2290661394, 2416832540, 1336762016, 1754252060, 3520065937, 3014181293, 791618072, 3188594551, 3933548030, 2332172193, 3852520463, 3043980520, 413987798, 3465142937, 3030929376, 4245938359, 2093235073, 3534596313, 375366246, 2157278981, 2479649556, 555357303, 3870105701, 2008414854, 3344188149, 4221384143, 3956125452, 2067696032, 3594591187, 2921233993, 2428461, 544322398, 577241275, 1471733935, 610547355, 4027169054, 1432588573, 1507829418, 2025931657, 3646575487, 545086370, 48609733, 2200306550, 1653985193, 298326376, 1316178497, 3007786442, 2064951626, 458293330, 2589141269, 3591329599, 3164325604, 727753846, 2179363840, 146436021, 1461446943, 4069977195, 705550613, 3059967265, 3887724982, 4281599278, 3313849956, 1404054877, 2845806497, 146425753, 1854211946 ]), new Uint32Array([ 1266315497, 3048417604, 3681880366, 3289982499, 290971e4, 1235738493, 2632868024, 2414719590, 3970600049, 1771706367, 1449415276, 3266420449, 422970021, 1963543593, 2690192192, 3826793022, 1062508698, 1531092325, 1804592342, 2583117782, 2714934279, 4024971509, 1294809318, 4028980673, 1289560198, 2221992742, 1669523910, 35572830, 157838143, 1052438473, 1016535060, 1802137761, 1753167236, 1386275462, 3080475397, 2857371447, 1040679964, 2145300060, 2390574316, 1461121720, 2956646967, 4031777805, 4028374788, 33600511, 2920084762, 1018524850, 629373528, 3691585981, 3515945977, 2091462646, 2486323059, 586499841, 988145025, 935516892, 3367335476, 2599673255, 2839830854, 265290510, 3972581182, 2759138881, 3795373465, 1005194799, 847297441, 406762289, 1314163512, 1332590856, 1866599683, 4127851711, 750260880, 613907577, 1450815602, 3165620655, 3734664991, 3650291728, 3012275730, 3704569646, 1427272223, 778793252, 1343938022, 2676280711, 2052605720, 1946737175, 3164576444, 3914038668, 3967478842, 3682934266, 1661551462, 3294938066, 4011595847, 840292616, 3712170807, 616741398, 312560963, 711312465, 1351876610, 322626781, 1910503582, 271666773, 2175563734, 1594956187, 70604529, 3617834859, 1007753275, 1495573769, 4069517037, 2549218298, 2663038764, 504708206, 2263041392, 3941167025, 2249088522, 1514023603, 1998579484, 1312622330, 694541497, 2582060303, 2151582166, 1382467621, 776784248, 2618340202, 3323268794, 2497899128, 2784771155, 503983604, 4076293799, 907881277, 423175695, 432175456, 1378068232, 4145222326, 3954048622, 3938656102, 3820766613, 2793130115, 2977904593, 26017576, 3274890735, 3194772133, 1700274565, 1756076034, 4006520079, 3677328699, 720338349, 1533947780, 354530856, 688349552, 3973924725, 1637815568, 332179504, 3949051286, 53804574, 2852348879, 3044236432, 1282449977, 3583942155, 3416972820, 4006381244, 1617046695, 2628476075, 3002303598, 1686838959, 431878346, 2686675385, 1700445008, 1080580658, 1009431731, 832498133, 3223435511, 2605976345, 2271191193, 2516031870, 1648197032, 4164389018, 2548247927, 300782431, 375919233, 238389289, 3353747414, 2531188641, 2019080857, 1475708069, 455242339, 2609103871, 448939670, 3451063019, 1395535956, 2413381860, 1841049896, 1491858159, 885456874, 4264095073, 4001119347, 1565136089, 3898914787, 1108368660, 540939232, 1173283510, 2745871338, 3681308437, 4207628240, 3343053890, 4016749493, 1699691293, 1103962373, 3625875870, 2256883143, 3830138730, 1031889488, 3479347698, 1535977030, 4236805024, 3251091107, 2132092099, 1774941330, 1199868427, 1452454533, 157007616, 2904115357, 342012276, 595725824, 1480756522, 206960106, 497939518, 591360097, 863170706, 2375253569, 3596610801, 1814182875, 2094937945, 3421402208, 1082520231, 3463918190, 2785509508, 435703966, 3908032597, 1641649973, 2842273706, 3305899714, 1510255612, 2148256476, 2655287854, 3276092548, 4258621189, 236887753, 3681803219, 274041037, 1734335097, 3815195456, 3317970021, 1899903192, 1026095262, 4050517792, 356393447, 2410691914, 3873677099, 3682840055 ]), new Uint32Array([ 3913112168, 2491498743, 4132185628, 2489919796, 1091903735, 1979897079, 3170134830, 3567386728, 3557303409, 857797738, 1136121015, 1342202287, 507115054, 2535736646, 337727348, 3213592640, 1301675037, 2528481711, 1895095763, 1721773893, 3216771564, 62756741, 2142006736, 835421444, 2531993523, 1442658625, 3659876326, 2882144922, 676362277, 1392781812, 170690266, 3921047035, 1759253602, 3611846912, 1745797284, 664899054, 1329594018, 3901205900, 3045908486, 2062866102, 2865634940, 3543621612, 3464012697, 1080764994, 553557557, 3656615353, 3996768171, 991055499, 499776247, 1265440854, 648242737, 3940784050, 980351604, 3713745714, 1749149687, 3396870395, 4211799374, 3640570775, 1161844396, 3125318951, 1431517754, 545492359, 4268468663, 3499529547, 1437099964, 2702547544, 3433638243, 2581715763, 2787789398, 1060185593, 1593081372, 2418618748, 4260947970, 69676912, 2159744348, 86519011, 2512459080, 3838209314, 1220612927, 3339683548, 133810670, 1090789135, 1078426020, 1569222167, 845107691, 3583754449, 4072456591, 1091646820, 628848692, 1613405280, 3757631651, 526609435, 236106946, 48312990, 2942717905, 3402727701, 1797494240, 859738849, 992217954, 4005476642, 2243076622, 3870952857, 3732016268, 765654824, 3490871365, 2511836413, 1685915746, 3888969200, 1414112111, 2273134842, 3281911079, 4080962846, 172450625, 2569994100, 980381355, 4109958455, 2819808352, 2716589560, 2568741196, 3681446669, 3329971472, 1835478071, 660984891, 3704678404, 4045999559, 3422617507, 3040415634, 1762651403, 1719377915, 3470491036, 2693910283, 3642056355, 3138596744, 1364962596, 2073328063, 1983633131, 926494387, 3423689081, 2150032023, 4096667949, 1749200295, 3328846651, 309677260, 2016342300, 1779581495, 3079819751, 111262694, 1274766160, 443224088, 298511866, 1025883608, 3806446537, 1145181785, 168956806, 3641502830, 3584813610, 1689216846, 3666258015, 3200248200, 1692713982, 2646376535, 4042768518, 1618508792, 1610833997, 3523052358, 4130873264, 2001055236, 3610705100, 2202168115, 4028541809, 2961195399, 1006657119, 2006996926, 3186142756, 1430667929, 3210227297, 1314452623, 4074634658, 4101304120, 2273951170, 1399257539, 3367210612, 3027628629, 1190975929, 2062231137, 2333990788, 2221543033, 2438960610, 1181637006, 548689776, 2362791313, 3372408396, 3104550113, 3145860560, 296247880, 1970579870, 3078560182, 3769228297, 1714227617, 3291629107, 3898220290, 166772364, 1251581989, 493813264, 448347421, 195405023, 2709975567, 677966185, 3703036547, 1463355134, 2715995803, 1338867538, 1343315457, 2802222074, 2684532164, 233230375, 2599980071, 2000651841, 3277868038, 1638401717, 4028070440, 3237316320, 6314154, 819756386, 300326615, 590932579, 1405279636, 3267499572, 3150704214, 2428286686, 3959192993, 3461946742, 1862657033, 1266418056, 963775037, 2089974820, 2263052895, 1917689273, 448879540, 3550394620, 3981727096, 150775221, 3627908307, 1303187396, 508620638, 2975983352, 2726630617, 1817252668, 1876281319, 1457606340, 908771278, 3720792119, 3617206836, 2455994898, 1729034894, 1080033504 ]), new Uint32Array([ 976866871, 3556439503, 2881648439, 1522871579, 1555064734, 1336096578, 3548522304, 2579274686, 3574697629, 3205460757, 3593280638, 3338716283, 3079412587, 564236357, 2993598910, 1781952180, 1464380207, 3163844217, 3332601554, 1699332808, 1393555694, 1183702653, 3581086237, 1288719814, 691649499, 2847557200, 2895455976, 3193889540, 2717570544, 1781354906, 1676643554, 2592534050, 3230253752, 1126444790, 2770207658, 2633158820, 2210423226, 2615765581, 2414155088, 3127139286, 673620729, 2805611233, 1269405062, 4015350505, 3341807571, 4149409754, 1057255273, 2012875353, 2162469141, 2276492801, 2601117357, 993977747, 3918593370, 2654263191, 753973209, 36408145, 2530585658, 25011837, 3520020182, 2088578344, 530523599, 2918365339, 1524020338, 1518925132, 3760827505, 3759777254, 1202760957, 3985898139, 3906192525, 674977740, 4174734889, 2031300136, 2019492241, 3983892565, 4153806404, 3822280332, 352677332, 2297720250, 60907813, 90501309, 3286998549, 1016092578, 2535922412, 2839152426, 457141659, 509813237, 4120667899, 652014361, 1966332200, 2975202805, 55981186, 2327461051, 676427537, 3255491064, 2882294119, 3433927263, 1307055953, 942726286, 933058658, 2468411793, 3933900994, 4215176142, 1361170020, 2001714738, 2830558078, 3274259782, 1222529897, 1679025792, 2729314320, 3714953764, 1770335741, 151462246, 3013232138, 1682292957, 1483529935, 471910574, 1539241949, 458788160, 3436315007, 1807016891, 3718408830, 978976581, 1043663428, 3165965781, 1927990952, 4200891579, 2372276910, 3208408903, 3533431907, 1412390302, 2931980059, 4132332400, 1947078029, 3881505623, 4168226417, 2941484381, 1077988104, 1320477388, 886195818, 18198404, 3786409e3, 2509781533, 112762804, 3463356488, 1866414978, 891333506, 18488651, 661792760, 1628790961, 3885187036, 3141171499, 876946877, 2693282273, 1372485963, 791857591, 2686433993, 3759982718, 3167212022, 3472953795, 2716379847, 445679433, 3561995674, 3504004811, 3574258232, 54117162, 3331405415, 2381918588, 3769707343, 4154350007, 1140177722, 4074052095, 668550556, 3214352940, 367459370, 261225585, 2610173221, 4209349473, 3468074219, 3265815641, 314222801, 3066103646, 3808782860, 282218597, 3406013506, 3773591054, 379116347, 1285071038, 846784868, 2669647154, 3771962079, 3550491691, 2305946142, 453669953, 1268987020, 3317592352, 3279303384, 3744833421, 2610507566, 3859509063, 266596637, 3847019092, 517658769, 3462560207, 3443424879, 370717030, 4247526661, 2224018117, 4143653529, 4112773975, 2788324899, 2477274417, 1456262402, 2901442914, 1517677493, 1846949527, 2295493580, 3734397586, 2176403920, 1280348187, 1908823572, 3871786941, 846861322, 1172426758, 3287448474, 3383383037, 1655181056, 3139813346, 901632758, 1897031941, 2986607138, 3066810236, 3447102507, 1393639104, 373351379, 950779232, 625454576, 3124240540, 4148612726, 2007998917, 544563296, 2244738638, 2330496472, 2058025392, 1291430526, 424198748, 50039436, 29584100, 3605783033, 2429876329, 2791104160, 1057563949, 3255363231, 3075367218, 3463963227, 1469046755, 985887462 ]) ], + this.P = new Uint32Array([ 608135816, 2242054355, 320440878, 57701188, 2752067618, 698298832, 137296536, 3964562569, 1160258022, 953160567, 3193202383, 887688300, 3232508343, 3380367581, 1065670069, 3041331479, 2450970073, 2306472731 ]); + }; + function F(S, x8, i) { + return (S[0][x8[i + 3]] + S[1][x8[i + 2]] ^ S[2][x8[i + 1]]) + S[3][x8[i]]; + } + function stream2word(data, databytes) { + var i, temp = 0; + for (i = 0; i < 4; i++, BLF_J++) BLF_J >= databytes && (BLF_J = 0), temp = temp << 8 | data[BLF_J]; + return temp; + } + function bcrypt_hash(sha2pass, sha2salt, out) { + var i, state = new Blowfish, cdata = new Uint32Array(8), ciphertext = new Uint8Array([ 79, 120, 121, 99, 104, 114, 111, 109, 97, 116, 105, 99, 66, 108, 111, 119, 102, 105, 115, 104, 83, 119, 97, 116, 68, 121, 110, 97, 109, 105, 116, 101 ]); + for (state.expandstate(sha2salt, 64, sha2pass, 64), i = 0; i < 64; i++) state.expand0state(sha2salt, 64), + state.expand0state(sha2pass, 64); + for (i = 0; i < 8; i++) cdata[i] = stream2word(ciphertext, ciphertext.byteLength); + for (i = 0; i < 64; i++) state.enc(cdata, cdata.byteLength / 8); + for (i = 0; i < 8; i++) out[4 * i + 3] = cdata[i] >>> 24, out[4 * i + 2] = cdata[i] >>> 16, + out[4 * i + 1] = cdata[i] >>> 8, out[4 * i + 0] = cdata[i]; + } + Blowfish.prototype.encipher = function(x, x8) { + void 0 === x8 && (x8 = new Uint8Array(x.buffer), 0 !== x.byteOffset && (x8 = x8.subarray(x.byteOffset))), + x[0] ^= this.P[0]; + for (var i = 1; i < 16; i += 2) x[1] ^= F(this.S, x8, 0) ^ this.P[i], x[0] ^= F(this.S, x8, 4) ^ this.P[i + 1]; + var t = x[0]; + x[0] = x[1] ^ this.P[17], x[1] = t; + }, Blowfish.prototype.decipher = function(x) { + var x8 = new Uint8Array(x.buffer); + 0 !== x.byteOffset && (x8 = x8.subarray(x.byteOffset)), x[0] ^= this.P[17]; + for (var i = 16; i > 0; i -= 2) x[1] ^= F(this.S, x8, 0) ^ this.P[i], x[0] ^= F(this.S, x8, 4) ^ this.P[i - 1]; + var t = x[0]; + x[0] = x[1] ^ this.P[0], x[1] = t; + }, Blowfish.prototype.expand0state = function(key, keybytes) { + var i, k, d = new Uint32Array(2), d8 = new Uint8Array(d.buffer); + for (i = 0, BLF_J = 0; i < 18; i++) this.P[i] ^= stream2word(key, keybytes); + for (BLF_J = 0, i = 0; i < 18; i += 2) this.encipher(d, d8), this.P[i] = d[0], this.P[i + 1] = d[1]; + for (i = 0; i < 4; i++) for (k = 0; k < 256; k += 2) this.encipher(d, d8), this.S[i][k] = d[0], + this.S[i][k + 1] = d[1]; + }, Blowfish.prototype.expandstate = function(data, databytes, key, keybytes) { + var i, k, d = new Uint32Array(2); + for (i = 0, BLF_J = 0; i < 18; i++) this.P[i] ^= stream2word(key, keybytes); + for (i = 0, BLF_J = 0; i < 18; i += 2) d[0] ^= stream2word(data, databytes), d[1] ^= stream2word(data, databytes), + this.encipher(d), this.P[i] = d[0], this.P[i + 1] = d[1]; + for (i = 0; i < 4; i++) for (k = 0; k < 256; k += 2) d[0] ^= stream2word(data, databytes), + d[1] ^= stream2word(data, databytes), this.encipher(d), this.S[i][k] = d[0], this.S[i][k + 1] = d[1]; + BLF_J = 0; + }, Blowfish.prototype.enc = function(data, blocks) { + for (var i = 0; i < blocks; i++) this.encipher(data.subarray(2 * i)); + }, Blowfish.prototype.dec = function(data, blocks) { + for (var i = 0; i < blocks; i++) this.decipher(data.subarray(2 * i)); + }, module.exports = { + BLOCKS: 8, + HASHSIZE: 32, + hash: bcrypt_hash, + pbkdf: function(pass, passlen, salt, saltlen, key, keylen, rounds) { + var i, j, amt, stride, dest, count, sha2pass = new Uint8Array(64), sha2salt = new Uint8Array(64), out = new Uint8Array(32), tmpout = new Uint8Array(32), countsalt = new Uint8Array(saltlen + 4), origkeylen = keylen; + if (rounds < 1) return -1; + if (0 === passlen || 0 === saltlen || 0 === keylen || keylen > out.byteLength * out.byteLength || saltlen > 1 << 20) return -1; + for (stride = Math.floor((keylen + out.byteLength - 1) / out.byteLength), amt = Math.floor((keylen + stride - 1) / stride), + i = 0; i < saltlen; i++) countsalt[i] = salt[i]; + for (crypto_hash_sha512(sha2pass, pass, passlen), count = 1; keylen > 0; count++) { + for (countsalt[saltlen + 0] = count >>> 24, countsalt[saltlen + 1] = count >>> 16, + countsalt[saltlen + 2] = count >>> 8, countsalt[saltlen + 3] = count, crypto_hash_sha512(sha2salt, countsalt, saltlen + 4), + bcrypt_hash(sha2pass, sha2salt, tmpout), i = out.byteLength; i--; ) out[i] = tmpout[i]; + for (i = 1; i < rounds; i++) for (crypto_hash_sha512(sha2salt, tmpout, tmpout.byteLength), + bcrypt_hash(sha2pass, sha2salt, tmpout), j = 0; j < out.byteLength; j++) out[j] ^= tmpout[j]; + for (amt = Math.min(amt, keylen), i = 0; i < amt && !((dest = i * stride + (count - 1)) >= origkeylen); i++) key[dest] = out[i]; + keylen -= i; + } + return 0; + } + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + "string" != typeof buf && (assert.buffer(buf, "buf"), buf = buf.toString("ascii")); + var trimmed = buf.trim().replace(/[\\\r]/g, ""), m = trimmed.match(SSHKEY_RE); + m || (m = trimmed.match(SSHKEY_RE2)), assert.ok(m, "key must match regex"); + var key, type = rfc4253.algToKeyType(m[1]), kbuf = Buffer.from(m[2], "base64"), ret = {}; + if (m[4]) try { + key = rfc4253.read(kbuf); + } catch (e) { + m = trimmed.match(SSHKEY_RE2), assert.ok(m, "key must match regex"), kbuf = Buffer.from(m[2], "base64"), + key = rfc4253.readInternal(ret, "public", kbuf); + } else key = rfc4253.readInternal(ret, "public", kbuf); + if (assert.strictEqual(type, key.type), m[4] && m[4].length > 0) key.comment = m[4]; else if (ret.consumed) { + var data = m[2] + (m[3] ? m[3] : ""), realOffset = 4 * Math.ceil(ret.consumed / 3); + for (data = data.slice(0, realOffset - 2).replace(/[^a-zA-Z0-9+\/=]/g, "") + data.slice(realOffset - 2), + ret.consumed % 3 > 0 && "=" !== data.slice(realOffset - 1, realOffset) && realOffset--; "=" === data.slice(realOffset, realOffset + 1); ) realOffset++; + var trailer = data.slice(realOffset); + (trailer = trailer.replace(/[\r\n]/g, " ").replace(/^\s+/, "")).match(/^[a-zA-Z0-9]/) && (key.comment = trailer); + } + return key; + }, + write: function(key, options) { + if (assert.object(key), !Key.isKey(key)) throw new Error("Must be a public key"); + var parts = [], alg = rfc4253.keyTypeToAlg(key); + parts.push(alg); + var buf = rfc4253.write(key); + return parts.push(buf.toString("base64")), key.comment && parts.push(key.comment), + Buffer.from(parts.join(" ")); + } + }; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, rfc4253 = __webpack_require__(57), Key = (__webpack_require__(27), + __webpack_require__(26)), SSHKEY_RE = (__webpack_require__(28), __webpack_require__(152), + /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/]+[=]*)([ \t]+([^ \t][^\n]*[\n]*)?)?$/), SSHKEY_RE2 = /^([a-z0-9-]+)[ \t\n]+([a-zA-Z0-9+\/][a-zA-Z0-9+\/ \t\n=]*)([^a-zA-Z0-9+\/ \t\n=].*)?$/; +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + for (var parts, lines = buf.toString("ascii").split(/[\r\n]+/), found = !1, si = 0; si < lines.length; ) if ((parts = splitHeader(lines[si++])) && "putty-user-key-file-2" === parts[0].toLowerCase()) { + found = !0; + break; + } + if (!found) throw new Error("No PuTTY format first line found"); + var alg = parts[1]; + parts = splitHeader(lines[si++]), assert.equal(parts[0].toLowerCase(), "encryption"), + parts = splitHeader(lines[si++]), assert.equal(parts[0].toLowerCase(), "comment"); + var comment = parts[1]; + parts = splitHeader(lines[si++]), assert.equal(parts[0].toLowerCase(), "public-lines"); + var publicLines = parseInt(parts[1], 10); + if (!isFinite(publicLines) || publicLines < 0 || publicLines > lines.length) throw new Error("Invalid public-lines count"); + var publicBuf = Buffer.from(lines.slice(si, si + publicLines).join(""), "base64"), keyType = rfc4253.algToKeyType(alg), key = rfc4253.read(publicBuf); + if (key.type !== keyType) throw new Error("Outer key algorithm mismatch"); + return key.comment = comment, key; + }, + write: function(key, options) { + if (assert.object(key), !Key.isKey(key)) throw new Error("Must be a public key"); + var alg = rfc4253.keyTypeToAlg(key), buf = rfc4253.write(key), comment = key.comment || "", lines = (function(txt, len) { + for (var lines = [], pos = 0; pos < txt.length; ) lines.push(txt.slice(pos, pos + 64)), + pos += 64; + return lines; + })(buf.toString("base64")); + return lines.unshift("Public-Lines: " + lines.length), lines.unshift("Comment: " + comment), + lines.unshift("Encryption: none"), lines.unshift("PuTTY-User-Key-File-2: " + alg), + Buffer.from(lines.join("\n") + "\n"); + } + }; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, rfc4253 = __webpack_require__(57), Key = __webpack_require__(26); + function splitHeader(line) { + var idx = line.indexOf(":"); + if (-1 === idx) return null; + var header = line.slice(0, idx); + for (++idx; " " === line[idx]; ) ++idx; + return [ header, line.slice(idx) ]; + } + __webpack_require__(44); +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + "string" == typeof buf && (buf = Buffer.from(buf, "binary")), assert.buffer(buf, "buf"); + var der = new asn1.BerReader(buf); + if (der.readSequence(), Math.abs(der.length - der.remain) > 1) throw new Error("DER sequence does not contain whole byte stream"); + var tbsStart = der.offset; + der.readSequence(); + var sigOffset = der.offset + der.length, tbsEnd = sigOffset; + if (der.peek() === Local(0)) { + der.readSequence(Local(0)); + var version = der.readInt(); + assert.ok(version <= 3, "only x.509 versions up to v3 supported"); + } + var cert = { + signatures: {} + }, sig = cert.signatures.x509 = {}; + sig.extras = {}, cert.serial = (function(der, nm) { + return assert.strictEqual(der.peek(), asn1.Ber.Integer, "serial is not an Integer"), + utils.mpNormalize(der.readString(asn1.Ber.Integer, !0)); + })(der), der.readSequence(); + var after = der.offset + der.length, certAlgOid = der.readOID(); + if (void 0 === SIGN_ALGS[certAlgOid]) throw new Error("unknown signature algorithm " + certAlgOid); + if (der._offset = after, cert.issuer = Identity.parseAsn1(der), der.readSequence(), + cert.validFrom = readDate(der), cert.validUntil = readDate(der), cert.subjects = [ Identity.parseAsn1(der) ], + der.readSequence(), after = der.offset + der.length, cert.subjectKey = pkcs8.readPkcs8(void 0, "public", der), + der._offset = after, der.peek() === Local(1) && (der.readSequence(Local(1)), sig.extras.issuerUniqueID = buf.slice(der.offset, der.offset + der.length), + der._offset += der.length), der.peek() === Local(2) && (der.readSequence(Local(2)), + sig.extras.subjectUniqueID = buf.slice(der.offset, der.offset + der.length), der._offset += der.length), + der.peek() === Local(3)) { + der.readSequence(Local(3)); + var extEnd = der.offset + der.length; + for (der.readSequence(); der.offset < extEnd; ) readExtension(cert, buf, der); + assert.strictEqual(der.offset, extEnd); + } + assert.strictEqual(der.offset, sigOffset), der.readSequence(), after = der.offset + der.length; + var sigAlgOid = der.readOID(), sigAlg = SIGN_ALGS[sigAlgOid]; + if (void 0 === sigAlg) throw new Error("unknown signature algorithm " + sigAlgOid); + der._offset = after; + var sigData = der.readString(asn1.Ber.BitString, !0); + 0 === sigData[0] && (sigData = sigData.slice(1)); + var algParts = sigAlg.split("-"); + return sig.signature = Signature.parse(sigData, algParts[0], "asn1"), sig.signature.hashAlgorithm = algParts[1], + sig.algo = sigAlg, sig.cache = buf.slice(tbsStart, tbsEnd), new Certificate(cert); + }, + verify: function(cert, key) { + var sig = cert.signatures.x509; + assert.object(sig, "x509 signature"); + var algParts = sig.algo.split("-"); + if (algParts[0] !== key.type) return !1; + var blob = sig.cache; + if (void 0 === blob) { + var der = new asn1.BerWriter; + writeTBSCert(cert, der), blob = der.buffer; + } + var verifier = key.createVerify(algParts[1]); + return verifier.write(blob), verifier.verify(sig.signature); + }, + sign: function(cert, key) { + void 0 === cert.signatures.x509 && (cert.signatures.x509 = {}); + var sig = cert.signatures.x509; + if (sig.algo = key.type + "-" + key.defaultHashAlgorithm(), void 0 === SIGN_ALGS[sig.algo]) return !1; + var der = new asn1.BerWriter; + writeTBSCert(cert, der); + var blob = der.buffer; + sig.cache = blob; + var signer = key.createSign(); + return signer.write(blob), cert.signatures.x509.signature = signer.sign(), !0; + }, + signAsync: function(cert, signer, done) { + void 0 === cert.signatures.x509 && (cert.signatures.x509 = {}); + var sig = cert.signatures.x509, der = new asn1.BerWriter; + writeTBSCert(cert, der); + var blob = der.buffer; + sig.cache = blob, signer(blob, (function(err, signature) { + err ? done(err) : (sig.algo = signature.type + "-" + signature.hashAlgorithm, void 0 !== SIGN_ALGS[sig.algo] ? (sig.signature = signature, + done()) : done(new Error('Invalid signing algorithm "' + sig.algo + '"'))); + })); + }, + write: function(cert, options) { + var sig = cert.signatures.x509; + assert.object(sig, "x509 signature"); + var der = new asn1.BerWriter; + der.startSequence(), sig.cache ? (der._ensure(sig.cache.length), sig.cache.copy(der._buf, der._offset), + der._offset += sig.cache.length) : writeTBSCert(cert, der), der.startSequence(), + der.writeOID(SIGN_ALGS[sig.algo]), sig.algo.match(/^rsa-/) && der.writeNull(), der.endSequence(); + var sigData = sig.signature.toBuffer("asn1"), data = Buffer.alloc(sigData.length + 1); + return data[0] = 0, sigData.copy(data, 1), der.writeBuffer(data, asn1.Ber.BitString), + der.endSequence(), der.buffer; + } + }; + var assert = __webpack_require__(15), asn1 = __webpack_require__(49), Buffer = __webpack_require__(14).Buffer, utils = (__webpack_require__(30), + __webpack_require__(27)), Identity = (__webpack_require__(26), __webpack_require__(28), + __webpack_require__(56), __webpack_require__(103)), Signature = __webpack_require__(48), Certificate = __webpack_require__(102), pkcs8 = __webpack_require__(101); + function Local(i) { + return asn1.Ber.Context | asn1.Ber.Constructor | i; + } + function Context(i) { + return asn1.Ber.Context | i; + } + var SIGN_ALGS = { + "rsa-md5": "1.2.840.113549.1.1.4", + "rsa-sha1": "1.2.840.113549.1.1.5", + "rsa-sha256": "1.2.840.113549.1.1.11", + "rsa-sha384": "1.2.840.113549.1.1.12", + "rsa-sha512": "1.2.840.113549.1.1.13", + "dsa-sha1": "1.2.840.10040.4.3", + "dsa-sha256": "2.16.840.1.101.3.4.3.2", + "ecdsa-sha1": "1.2.840.10045.4.1", + "ecdsa-sha256": "1.2.840.10045.4.3.2", + "ecdsa-sha384": "1.2.840.10045.4.3.3", + "ecdsa-sha512": "1.2.840.10045.4.3.4", + "ed25519-sha512": "1.3.101.112" + }; + Object.keys(SIGN_ALGS).forEach((function(k) { + SIGN_ALGS[SIGN_ALGS[k]] = k; + })), SIGN_ALGS["1.3.14.3.2.3"] = "rsa-md5", SIGN_ALGS["1.3.14.3.2.29"] = "rsa-sha1"; + function readDate(der) { + if (der.peek() === asn1.Ber.UTCTime) return (function(t) { + var m = t.match(UTCTIME_RE); + assert.ok(m, "timestamps must be in UTC"); + var d = new Date, thisYear = d.getUTCFullYear(), century = 100 * Math.floor(thisYear / 100), year = parseInt(m[1], 10); + return year += thisYear % 100 < 50 && year >= 60 ? century - 1 : century, d.setUTCFullYear(year, parseInt(m[2], 10) - 1, parseInt(m[3], 10)), + d.setUTCHours(parseInt(m[4], 10), parseInt(m[5], 10)), m[6] && m[6].length > 0 && d.setUTCSeconds(parseInt(m[6], 10)), + d; + })(der.readString(asn1.Ber.UTCTime)); + if (der.peek() === asn1.Ber.GeneralizedTime) return (function(t) { + var m = t.match(GTIME_RE); + assert.ok(m); + var d = new Date; + return d.setUTCFullYear(parseInt(m[1], 10), parseInt(m[2], 10) - 1, parseInt(m[3], 10)), + d.setUTCHours(parseInt(m[4], 10), parseInt(m[5], 10)), m[6] && m[6].length > 0 && d.setUTCSeconds(parseInt(m[6], 10)), + d; + })(der.readString(asn1.Ber.GeneralizedTime)); + throw new Error("Unsupported date format"); + } + function writeDate(der, date) { + var d, s; + date.getUTCFullYear() >= 2050 || date.getUTCFullYear() < 1950 ? der.writeString((s = "", + s += zeroPad((d = date).getUTCFullYear(), 4), s += zeroPad(d.getUTCMonth() + 1), + s += zeroPad(d.getUTCDate()), s += zeroPad(d.getUTCHours()), s += zeroPad(d.getUTCMinutes()), + s += zeroPad(d.getUTCSeconds()), s += "Z"), asn1.Ber.GeneralizedTime) : der.writeString((function(d) { + var s = ""; + return s += zeroPad(d.getUTCFullYear() % 100), s += zeroPad(d.getUTCMonth() + 1), + s += zeroPad(d.getUTCDate()), s += zeroPad(d.getUTCHours()), s += zeroPad(d.getUTCMinutes()), + s += zeroPad(d.getUTCSeconds()), s += "Z"; + })(date), asn1.Ber.UTCTime); + } + var ALTNAME = { + OtherName: Local(0), + RFC822Name: Context(1), + DNSName: Context(2), + X400Address: Local(3), + DirectoryName: Local(4), + EDIPartyName: Local(5), + URI: Context(6), + IPAddress: Context(7), + OID: Context(8) + }, EXTPURPOSE = { + serverAuth: "1.3.6.1.5.5.7.3.1", + clientAuth: "1.3.6.1.5.5.7.3.2", + codeSigning: "1.3.6.1.5.5.7.3.3", + joyentDocker: "1.3.6.1.4.1.38678.1.4.1", + joyentCmon: "1.3.6.1.4.1.38678.1.4.2" + }, EXTPURPOSE_REV = {}; + Object.keys(EXTPURPOSE).forEach((function(k) { + EXTPURPOSE_REV[EXTPURPOSE[k]] = k; + })); + var KEYUSEBITS = [ "signature", "identity", "keyEncryption", "encryption", "keyAgreement", "ca", "crl" ]; + function readExtension(cert, buf, der) { + der.readSequence(); + var id, critical, after = der.offset + der.length, extId = der.readOID(), sig = cert.signatures.x509; + switch (sig.extras.exts || (sig.extras.exts = []), der.peek() === asn1.Ber.Boolean && (critical = der.readBoolean()), + extId) { + case "2.5.29.19": + der.readSequence(asn1.Ber.OctetString), der.readSequence(); + var bcEnd = der.offset + der.length, ca = !1; + der.peek() === asn1.Ber.Boolean && (ca = der.readBoolean()), void 0 === cert.purposes && (cert.purposes = []), + !0 === ca && cert.purposes.push("ca"); + var bc = { + oid: extId, + critical: critical + }; + der.offset < bcEnd && der.peek() === asn1.Ber.Integer && (bc.pathLen = der.readInt()), + sig.extras.exts.push(bc); + break; + + case "2.5.29.37": + der.readSequence(asn1.Ber.OctetString), der.readSequence(), void 0 === cert.purposes && (cert.purposes = []); + for (var ekEnd = der.offset + der.length; der.offset < ekEnd; ) { + var oid = der.readOID(); + cert.purposes.push(EXTPURPOSE_REV[oid] || oid); + } + -1 !== cert.purposes.indexOf("serverAuth") && -1 === cert.purposes.indexOf("clientAuth") ? cert.subjects.forEach((function(ide) { + "host" !== ide.type && (ide.type = "host", ide.hostname = ide.uid || ide.email || ide.components[0].value); + })) : -1 !== cert.purposes.indexOf("clientAuth") && -1 === cert.purposes.indexOf("serverAuth") && cert.subjects.forEach((function(ide) { + "user" !== ide.type && (ide.type = "user", ide.uid = ide.hostname || ide.email || ide.components[0].value); + })), sig.extras.exts.push({ + oid: extId, + critical: critical + }); + break; + + case "2.5.29.15": + der.readSequence(asn1.Ber.OctetString); + var bits = der.readString(asn1.Ber.BitString, !0), setBits = (function(bits, bitIndex) { + for (var bitLen = 8 * (bits.length - 1) - bits[0], setBits = {}, i = 0; i < bitLen; ++i) { + var mask = 1 << 7 - i % 8, bitVal = 0 != (bits[1 + Math.floor(i / 8)] & mask), name = bitIndex[i]; + bitVal && "string" == typeof name && (setBits[name] = !0); + } + return Object.keys(setBits); + })(bits, KEYUSEBITS); + setBits.forEach((function(bit) { + void 0 === cert.purposes && (cert.purposes = []), -1 === cert.purposes.indexOf(bit) && cert.purposes.push(bit); + })), sig.extras.exts.push({ + oid: extId, + critical: critical, + bits: bits + }); + break; + + case "2.5.29.17": + der.readSequence(asn1.Ber.OctetString), der.readSequence(); + for (var aeEnd = der.offset + der.length; der.offset < aeEnd; ) switch (der.peek()) { + case ALTNAME.OtherName: + case ALTNAME.EDIPartyName: + der.readSequence(), der._offset += der.length; + break; + + case ALTNAME.OID: + der.readOID(ALTNAME.OID); + break; + + case ALTNAME.RFC822Name: + var email = der.readString(ALTNAME.RFC822Name); + id = Identity.forEmail(email), cert.subjects[0].equals(id) || cert.subjects.push(id); + break; + + case ALTNAME.DirectoryName: + der.readSequence(ALTNAME.DirectoryName), id = Identity.parseAsn1(der), cert.subjects[0].equals(id) || cert.subjects.push(id); + break; + + case ALTNAME.DNSName: + var host = der.readString(ALTNAME.DNSName); + id = Identity.forHost(host), cert.subjects[0].equals(id) || cert.subjects.push(id); + break; + + default: + der.readString(der.peek()); + } + sig.extras.exts.push({ + oid: extId, + critical: critical + }); + break; + + default: + sig.extras.exts.push({ + oid: extId, + critical: critical, + data: der.readString(asn1.Ber.OctetString, !0) + }); + } + der._offset = after; + } + var UTCTIME_RE = /^([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?Z$/, GTIME_RE = /^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?Z$/; + function zeroPad(n, m) { + void 0 === m && (m = 2); + for (var s = "" + n; s.length < m; ) s = "0" + s; + return s; + } + function writeTBSCert(cert, der) { + var sig = cert.signatures.x509; + assert.object(sig, "x509 signature"), der.startSequence(), der.startSequence(Local(0)), + der.writeInt(2), der.endSequence(), der.writeBuffer(utils.mpNormalize(cert.serial), asn1.Ber.Integer), + der.startSequence(), der.writeOID(SIGN_ALGS[sig.algo]), sig.algo.match(/^rsa-/) && der.writeNull(), + der.endSequence(), cert.issuer.toAsn1(der), der.startSequence(), writeDate(der, cert.validFrom), + writeDate(der, cert.validUntil), der.endSequence(); + var subject = cert.subjects[0], altNames = cert.subjects.slice(1); + if (subject.toAsn1(der), pkcs8.writePkcs8(der, cert.subjectKey), sig.extras && sig.extras.issuerUniqueID && der.writeBuffer(sig.extras.issuerUniqueID, Local(1)), + sig.extras && sig.extras.subjectUniqueID && der.writeBuffer(sig.extras.subjectUniqueID, Local(2)), + altNames.length > 0 || "host" === subject.type || void 0 !== cert.purposes && cert.purposes.length > 0 || sig.extras && sig.extras.exts) { + der.startSequence(Local(3)), der.startSequence(); + var exts = []; + void 0 !== cert.purposes && cert.purposes.length > 0 && (exts.push({ + oid: "2.5.29.19", + critical: !0 + }), exts.push({ + oid: "2.5.29.15", + critical: !0 + }), exts.push({ + oid: "2.5.29.37", + critical: !0 + })), exts.push({ + oid: "2.5.29.17" + }), sig.extras && sig.extras.exts && (exts = sig.extras.exts); + for (var i = 0; i < exts.length; ++i) { + if (der.startSequence(), der.writeOID(exts[i].oid), void 0 !== exts[i].critical && der.writeBoolean(exts[i].critical), + "2.5.29.17" === exts[i].oid) { + der.startSequence(asn1.Ber.OctetString), der.startSequence(), "host" === subject.type && der.writeString(subject.hostname, Context(2)); + for (var j = 0; j < altNames.length; ++j) "host" === altNames[j].type ? der.writeString(altNames[j].hostname, ALTNAME.DNSName) : "email" === altNames[j].type ? der.writeString(altNames[j].email, ALTNAME.RFC822Name) : (der.startSequence(ALTNAME.DirectoryName), + altNames[j].toAsn1(der), der.endSequence()); + der.endSequence(), der.endSequence(); + } else if ("2.5.29.19" === exts[i].oid) { + der.startSequence(asn1.Ber.OctetString), der.startSequence(); + var ca = -1 !== cert.purposes.indexOf("ca"), pathLen = exts[i].pathLen; + der.writeBoolean(ca), void 0 !== pathLen && der.writeInt(pathLen), der.endSequence(), + der.endSequence(); + } else if ("2.5.29.37" === exts[i].oid) der.startSequence(asn1.Ber.OctetString), + der.startSequence(), cert.purposes.forEach((function(purpose) { + if ("ca" !== purpose && -1 === KEYUSEBITS.indexOf(purpose)) { + var oid = purpose; + void 0 !== EXTPURPOSE[purpose] && (oid = EXTPURPOSE[purpose]), der.writeOID(oid); + } + })), der.endSequence(), der.endSequence(); else if ("2.5.29.15" === exts[i].oid) { + if (der.startSequence(asn1.Ber.OctetString), void 0 !== exts[i].bits) der.writeBuffer(exts[i].bits, asn1.Ber.BitString); else { + var bits = writeBitField(cert.purposes, KEYUSEBITS); + der.writeBuffer(bits, asn1.Ber.BitString); + } + der.endSequence(); + } else der.writeBuffer(exts[i].data, asn1.Ber.OctetString); + der.endSequence(); + } + der.endSequence(), der.endSequence(); + } + der.endSequence(); + } + function writeBitField(setBits, bitIndex) { + var bitLen = bitIndex.length, blen = Math.ceil(bitLen / 8), unused = 8 * blen - bitLen, bits = Buffer.alloc(1 + blen); + bits[0] = unused; + for (var i = 0; i < bitLen; ++i) { + var byteN = 1 + Math.floor(i / 8), mask = 1 << 7 - i % 8, name = bitIndex[i]; + void 0 !== name && -1 !== setBits.indexOf(name) && (bits[byteN] |= mask); + } + return bits; + } +}, function(module, exports, __webpack_require__) { + var util = __webpack_require__(0), Stream = __webpack_require__(3).Stream, DelayedStream = __webpack_require__(1071); + function CombinedStream() { + this.writable = !1, this.readable = !0, this.dataSize = 0, this.maxDataSize = 2097152, + this.pauseStreams = !0, this._released = !1, this._streams = [], this._currentStream = null, + this._insideLoop = !1, this._pendingNext = !1; + } + module.exports = CombinedStream, util.inherits(CombinedStream, Stream), CombinedStream.create = function(options) { + var combinedStream = new this; + for (var option in options = options || {}) combinedStream[option] = options[option]; + return combinedStream; + }, CombinedStream.isStreamLike = function(stream) { + return "function" != typeof stream && "string" != typeof stream && "boolean" != typeof stream && "number" != typeof stream && !Buffer.isBuffer(stream); + }, CombinedStream.prototype.append = function(stream) { + if (CombinedStream.isStreamLike(stream)) { + if (!(stream instanceof DelayedStream)) { + var newStream = DelayedStream.create(stream, { + maxDataSize: 1 / 0, + pauseStream: this.pauseStreams + }); + stream.on("data", this._checkDataSize.bind(this)), stream = newStream; + } + this._handleErrors(stream), this.pauseStreams && stream.pause(); + } + return this._streams.push(stream), this; + }, CombinedStream.prototype.pipe = function(dest, options) { + return Stream.prototype.pipe.call(this, dest, options), this.resume(), dest; + }, CombinedStream.prototype._getNext = function() { + if (this._currentStream = null, this._insideLoop) this._pendingNext = !0; else { + this._insideLoop = !0; + try { + do { + this._pendingNext = !1, this._realGetNext(); + } while (this._pendingNext); + } finally { + this._insideLoop = !1; + } + } + }, CombinedStream.prototype._realGetNext = function() { + var stream = this._streams.shift(); + void 0 !== stream ? "function" == typeof stream ? stream(function(stream) { + CombinedStream.isStreamLike(stream) && (stream.on("data", this._checkDataSize.bind(this)), + this._handleErrors(stream)), this._pipeNext(stream); + }.bind(this)) : this._pipeNext(stream) : this.end(); + }, CombinedStream.prototype._pipeNext = function(stream) { + if (this._currentStream = stream, CombinedStream.isStreamLike(stream)) return stream.on("end", this._getNext.bind(this)), + void stream.pipe(this, { + end: !1 + }); + var value = stream; + this.write(value), this._getNext(); + }, CombinedStream.prototype._handleErrors = function(stream) { + var self = this; + stream.on("error", (function(err) { + self._emitError(err); + })); + }, CombinedStream.prototype.write = function(data) { + this.emit("data", data); + }, CombinedStream.prototype.pause = function() { + this.pauseStreams && (this.pauseStreams && this._currentStream && "function" == typeof this._currentStream.pause && this._currentStream.pause(), + this.emit("pause")); + }, CombinedStream.prototype.resume = function() { + this._released || (this._released = !0, this.writable = !0, this._getNext()), this.pauseStreams && this._currentStream && "function" == typeof this._currentStream.resume && this._currentStream.resume(), + this.emit("resume"); + }, CombinedStream.prototype.end = function() { + this._reset(), this.emit("end"); + }, CombinedStream.prototype.destroy = function() { + this._reset(), this.emit("close"); + }, CombinedStream.prototype._reset = function() { + this.writable = !1, this._streams = [], this._currentStream = null; + }, CombinedStream.prototype._checkDataSize = function() { + if (this._updateDataSize(), !(this.dataSize <= this.maxDataSize)) { + var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded."; + this._emitError(new Error(message)); + } + }, CombinedStream.prototype._updateDataSize = function() { + this.dataSize = 0; + var self = this; + this._streams.forEach((function(stream) { + stream.dataSize && (self.dataSize += stream.dataSize); + })), this._currentStream && this._currentStream.dataSize && (this.dataSize += this._currentStream.dataSize); + }, CombinedStream.prototype._emitError = function(err) { + this._reset(), this.emit("error", err); + }; +}, function(module, exports, __webpack_require__) { + var async = __webpack_require__(487), abort = __webpack_require__(488); + module.exports = function(list, iterator, state, callback) { + var key = state.keyedList ? state.keyedList[state.index] : state.index; + state.jobs[key] = (function(iterator, key, item, callback) { + return 2 == iterator.length ? iterator(item, async(callback)) : iterator(item, key, async(callback)); + })(iterator, key, list[key], (function(error, output) { + key in state.jobs && (delete state.jobs[key], error ? abort(state) : state.results[key] = output, + callback(error, state.results)); + })); + }; +}, function(module, exports, __webpack_require__) { + var defer = __webpack_require__(1074); + module.exports = function(callback) { + var isAsync = !1; + return defer((function() { + isAsync = !0; + })), function(err, result) { + isAsync ? callback(err, result) : defer((function() { + callback(err, result); + })); + }; + }; +}, function(module, exports) { + function clean(key) { + "function" == typeof this.jobs[key] && this.jobs[key](); + } + module.exports = function(state) { + Object.keys(state.jobs).forEach(clean.bind(state)), state.jobs = {}; + }; +}, function(module, exports) { + module.exports = function(list, sortMethod) { + var isNamedList = !Array.isArray(list), initState = { + index: 0, + keyedList: isNamedList || sortMethod ? Object.keys(list) : null, + jobs: {}, + results: isNamedList ? {} : [], + size: isNamedList ? Object.keys(list).length : list.length + }; + return sortMethod && initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) { + return sortMethod(list[a], list[b]); + }), initState; + }; +}, function(module, exports, __webpack_require__) { + var abort = __webpack_require__(488), async = __webpack_require__(487); + module.exports = function(callback) { + Object.keys(this.jobs).length && (this.index = this.size, abort(this), async(callback)(null, this.results)); + }; +}, function(module, exports, __webpack_require__) { + var iterate = __webpack_require__(486), initState = __webpack_require__(489), terminator = __webpack_require__(490); + function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : 0; + } + module.exports = function(list, iterator, sortMethod, callback) { + var state = initState(list, sortMethod); + return iterate(list, iterator, state, (function iteratorHandler(error, result) { + error ? callback(error, result) : (state.index++, state.index < (state.keyedList || list).length ? iterate(list, iterator, state, iteratorHandler) : callback(null, state.results)); + })), terminator.bind(state, callback); + }, module.exports.ascending = ascending, module.exports.descending = function(a, b) { + return -1 * ascending(a, b); + }; +}, function(module, exports, __webpack_require__) { + var stream = __webpack_require__(3); + function isStream(obj) { + return obj instanceof stream.Stream; + } + function isReadable(obj) { + return isStream(obj) && "function" == typeof obj._read && "object" == typeof obj._readableState; + } + function isWritable(obj) { + return isStream(obj) && "function" == typeof obj._write && "object" == typeof obj._writableState; + } + module.exports = isStream, module.exports.isReadable = isReadable, module.exports.isWritable = isWritable, + module.exports.isDuplex = function(obj) { + return isReadable(obj) && isWritable(obj); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var stringify = __webpack_require__(1079), parse = __webpack_require__(1080), formats = __webpack_require__(495); + module.exports = { + formats: formats, + parse: parse, + stringify: stringify + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var has = Object.prototype.hasOwnProperty, hexTable = (function() { + for (var array = [], i = 0; i < 256; ++i) array.push("%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase()); + return array; + })(), arrayToObject = function(source, options) { + for (var obj = options && options.plainObjects ? Object.create(null) : {}, i = 0; i < source.length; ++i) void 0 !== source[i] && (obj[i] = source[i]); + return obj; + }; + module.exports = { + arrayToObject: arrayToObject, + assign: function(target, source) { + return Object.keys(source).reduce((function(acc, key) { + return acc[key] = source[key], acc; + }), target); + }, + compact: function(value) { + for (var queue = [ { + obj: { + o: value + }, + prop: "o" + } ], refs = [], i = 0; i < queue.length; ++i) for (var item = queue[i], obj = item.obj[item.prop], keys = Object.keys(obj), j = 0; j < keys.length; ++j) { + var key = keys[j], val = obj[key]; + "object" == typeof val && null !== val && -1 === refs.indexOf(val) && (queue.push({ + obj: obj, + prop: key + }), refs.push(val)); + } + return (function(queue) { + for (var obj; queue.length; ) { + var item = queue.pop(); + if (obj = item.obj[item.prop], Array.isArray(obj)) { + for (var compacted = [], j = 0; j < obj.length; ++j) void 0 !== obj[j] && compacted.push(obj[j]); + item.obj[item.prop] = compacted; + } + } + return obj; + })(queue); + }, + decode: function(str) { + try { + return decodeURIComponent(str.replace(/\+/g, " ")); + } catch (e) { + return str; + } + }, + encode: function(str) { + if (0 === str.length) return str; + for (var string = "string" == typeof str ? str : String(str), out = "", i = 0; i < string.length; ++i) { + var c = string.charCodeAt(i); + 45 === c || 46 === c || 95 === c || 126 === c || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 ? out += string.charAt(i) : c < 128 ? out += hexTable[c] : c < 2048 ? out += hexTable[192 | c >> 6] + hexTable[128 | 63 & c] : c < 55296 || c >= 57344 ? out += hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | 63 & c] : (i += 1, + c = 65536 + ((1023 & c) << 10 | 1023 & string.charCodeAt(i)), out += hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | 63 & c]); + } + return out; + }, + isBuffer: function(obj) { + return null != obj && !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); + }, + isRegExp: function(obj) { + return "[object RegExp]" === Object.prototype.toString.call(obj); + }, + merge: function merge(target, source, options) { + if (!source) return target; + if ("object" != typeof source) { + if (Array.isArray(target)) target.push(source); else { + if ("object" != typeof target) return [ target, source ]; + (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) && (target[source] = !0); + } + return target; + } + if ("object" != typeof target) return [ target ].concat(source); + var mergeTarget = target; + return Array.isArray(target) && !Array.isArray(source) && (mergeTarget = arrayToObject(target, options)), + Array.isArray(target) && Array.isArray(source) ? (source.forEach((function(item, i) { + has.call(target, i) ? target[i] && "object" == typeof target[i] ? target[i] = merge(target[i], item, options) : target.push(item) : target[i] = item; + })), target) : Object.keys(source).reduce((function(acc, key) { + var value = source[key]; + return has.call(acc, key) ? acc[key] = merge(acc[key], value, options) : acc[key] = value, + acc; + }), mergeTarget); + } + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var replace = String.prototype.replace, percentTwenties = /%20/g; + module.exports = { + default: "RFC3986", + formatters: { + RFC1738: function(value) { + return replace.call(value, percentTwenties, "+"); + }, + RFC3986: function(value) { + return value; + } + }, + RFC1738: "RFC1738", + RFC3986: "RFC3986" + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var util = __webpack_require__(80); + module.exports = function(obj) { + util.copy(obj, this); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(data, opts) { + opts || (opts = {}), "function" == typeof opts && (opts = { + cmp: opts + }); + var f, cycles = "boolean" == typeof opts.cycles && opts.cycles, cmp = opts.cmp && (f = opts.cmp, + function(node) { + return function(a, b) { + var aobj = { + key: a, + value: node[a] + }, bobj = { + key: b, + value: node[b] + }; + return f(aobj, bobj); + }; + }), seen = []; + return (function stringify(node) { + if (node && node.toJSON && "function" == typeof node.toJSON && (node = node.toJSON()), + void 0 !== node) { + if ("number" == typeof node) return isFinite(node) ? "" + node : "null"; + if ("object" != typeof node) return JSON.stringify(node); + var i, out; + if (Array.isArray(node)) { + for (out = "[", i = 0; i < node.length; i++) i && (out += ","), out += stringify(node[i]) || "null"; + return out + "]"; + } + if (null === node) return "null"; + if (-1 !== seen.indexOf(node)) { + if (cycles) return JSON.stringify("__cycle__"); + throw new TypeError("Converting circular structure to JSON"); + } + var seenIndex = seen.push(node) - 1, keys = Object.keys(node).sort(cmp && cmp(node)); + for (out = "", i = 0; i < keys.length; i++) { + var key = keys[i], value = stringify(node[key]); + value && (out && (out += ","), out += JSON.stringify(key) + ":" + value); + } + return seen.splice(seenIndex, 1), "{" + out + "}"; + } + })(data); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = "", $async = !0 === it.schema.$async, $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, "$ref"), $id = it.self._getId(it.schema); + if (it.opts.strictKeywords) { + var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords); + if ($unknownKwd) { + var $keywordsMsg = "unknown keyword: " + $unknownKwd; + if ("log" !== it.opts.strictKeywords) throw new Error($keywordsMsg); + it.logger.warn($keywordsMsg); + } + } + if (it.isTop && (out += " var validate = ", $async && (it.async = !0, out += "async "), + out += "function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ", + $id && (it.opts.sourceCode || it.opts.processCode) && (out += " /*# sourceURL=" + $id + " */ ")), + "boolean" == typeof it.schema || !$refKeywords && !it.schema.$ref) { + var $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema["false schema"], $schemaPath = it.schemaPath + it.util.getProperty("false schema"), $errSchemaPath = it.errSchemaPath + "/false schema", $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl; + if (!1 === it.schema) { + it.isTop ? $breakOnError = !0 : out += " var " + $valid + " = false; ", ($$outStack = $$outStack || []).push(out), + out = "", !1 !== it.createErrors ? (out += " { keyword: 'false schema' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ", + !1 !== it.opts.messages && (out += " , message: 'boolean schema is false' "), it.opts.verbose && (out += " , schema: false , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "; + } else it.isTop ? out += $async ? " return data; " : " validate.errors = null; return true; " : out += " var " + $valid + " = true; "; + return it.isTop && (out += " }; return validate; "), out; + } + if (it.isTop) { + var $top = it.isTop; + if ($lvl = it.level = 0, $dataLvl = it.dataLevel = 0, $data = "data", it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema)), + it.baseId = it.baseId || it.rootId, delete it.isTop, it.dataPathArr = [ void 0 ], + void 0 !== it.schema.default && it.opts.useDefaults && it.opts.strictDefaults) { + var $defaultMsg = "default is ignored in the schema root"; + if ("log" !== it.opts.strictDefaults) throw new Error($defaultMsg); + it.logger.warn($defaultMsg); + } + out += " var vErrors = null; ", out += " var errors = 0; ", out += " if (rootData === undefined) rootData = data; "; + } else { + if ($lvl = it.level, $data = "data" + (($dataLvl = it.dataLevel) || ""), $id && (it.baseId = it.resolve.url(it.baseId, $id)), + $async && !it.async) throw new Error("async schema in sync schema"); + out += " var errs_" + $lvl + " = errors;"; + } + $valid = "valid" + $lvl, $breakOnError = !it.opts.allErrors; + var $closingBraces1 = "", $closingBraces2 = "", $typeSchema = it.schema.type, $typeIsArray = Array.isArray($typeSchema); + if ($typeSchema && it.opts.nullable && !0 === it.schema.nullable && ($typeIsArray ? -1 == $typeSchema.indexOf("null") && ($typeSchema = $typeSchema.concat("null")) : "null" != $typeSchema && ($typeSchema = [ $typeSchema, "null" ], + $typeIsArray = !0)), $typeIsArray && 1 == $typeSchema.length && ($typeSchema = $typeSchema[0], + $typeIsArray = !1), it.schema.$ref && $refKeywords) { + if ("fail" == it.opts.extendRefs) throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); + !0 !== it.opts.extendRefs && ($refKeywords = !1, it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"')); + } + if (it.schema.$comment && it.opts.$comment && (out += " " + it.RULES.all.$comment.code(it, "$comment")), + $typeSchema) { + if (it.opts.coerceTypes) var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); + var $rulesGroup = it.RULES.types[$typeSchema]; + if ($coerceToTypes || $typeIsArray || !0 === $rulesGroup || $rulesGroup && !$shouldUseGroup($rulesGroup)) { + $schemaPath = it.schemaPath + ".type", $errSchemaPath = it.errSchemaPath + "/type", + $schemaPath = it.schemaPath + ".type", $errSchemaPath = it.errSchemaPath + "/type"; + var $method = $typeIsArray ? "checkDataTypes" : "checkDataType"; + if (out += " if (" + it.util[$method]($typeSchema, $data, !0) + ") { ", $coerceToTypes) { + var $dataType = "dataType" + $lvl, $coerced = "coerced" + $lvl; + out += " var " + $dataType + " = typeof " + $data + "; ", "array" == it.opts.coerceTypes && (out += " if (" + $dataType + " == 'object' && Array.isArray(" + $data + ")) " + $dataType + " = 'array'; "), + out += " var " + $coerced + " = undefined; "; + var $bracesCoercion = "", arr1 = $coerceToTypes; + if (arr1) for (var $type, $i = -1, l1 = arr1.length - 1; $i < l1; ) $type = arr1[$i += 1], + $i && (out += " if (" + $coerced + " === undefined) { ", $bracesCoercion += "}"), + "array" == it.opts.coerceTypes && "array" != $type && (out += " if (" + $dataType + " == 'array' && " + $data + ".length == 1) { " + $coerced + " = " + $data + " = " + $data + "[0]; " + $dataType + " = typeof " + $data + "; } "), + "string" == $type ? out += " if (" + $dataType + " == 'number' || " + $dataType + " == 'boolean') " + $coerced + " = '' + " + $data + "; else if (" + $data + " === null) " + $coerced + " = ''; " : "number" == $type || "integer" == $type ? (out += " if (" + $dataType + " == 'boolean' || " + $data + " === null || (" + $dataType + " == 'string' && " + $data + " && " + $data + " == +" + $data + " ", + "integer" == $type && (out += " && !(" + $data + " % 1)"), out += ")) " + $coerced + " = +" + $data + "; ") : "boolean" == $type ? out += " if (" + $data + " === 'false' || " + $data + " === 0 || " + $data + " === null) " + $coerced + " = false; else if (" + $data + " === 'true' || " + $data + " === 1) " + $coerced + " = true; " : "null" == $type ? out += " if (" + $data + " === '' || " + $data + " === 0 || " + $data + " === false) " + $coerced + " = null; " : "array" == it.opts.coerceTypes && "array" == $type && (out += " if (" + $dataType + " == 'string' || " + $dataType + " == 'number' || " + $dataType + " == 'boolean' || " + $data + " == null) " + $coerced + " = [" + $data + "]; "); + out += " " + $bracesCoercion + " if (" + $coerced + " === undefined) { ", ($$outStack = $$outStack || []).push(out), + out = "", !1 !== it.createErrors ? (out += " { keyword: 'type' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { type: '", + out += $typeIsArray ? "" + $typeSchema.join(",") : "" + $typeSchema, out += "' } ", + !1 !== it.opts.messages && (out += " , message: 'should be ", out += $typeIsArray ? "" + $typeSchema.join(",") : "" + $typeSchema, + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", __err = out, out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } else { "; + var $parentData = $dataLvl ? "data" + ($dataLvl - 1 || "") : "parentData"; + out += " " + $data + " = " + $coerced + "; ", $dataLvl || (out += "if (" + $parentData + " !== undefined)"), + out += " " + $parentData + "[" + ($dataLvl ? it.dataPathArr[$dataLvl] : "parentDataProperty") + "] = " + $coerced + "; } "; + } else ($$outStack = $$outStack || []).push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'type' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { type: '", + out += $typeIsArray ? "" + $typeSchema.join(",") : "" + $typeSchema, out += "' } ", + !1 !== it.opts.messages && (out += " , message: 'should be ", out += $typeIsArray ? "" + $typeSchema.join(",") : "" + $typeSchema, + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", __err = out, out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "; + out += " } "; + } + } + if (it.schema.$ref && !$refKeywords) out += " " + it.RULES.all.$ref.code(it, "$ref") + " ", + $breakOnError && (out += " } if (errors === ", out += $top ? "0" : "errs_" + $lvl, + out += ") { ", $closingBraces2 += "}"); else { + var arr2 = it.RULES; + if (arr2) for (var i2 = -1, l2 = arr2.length - 1; i2 < l2; ) if ($shouldUseGroup($rulesGroup = arr2[i2 += 1])) { + if ($rulesGroup.type && (out += " if (" + it.util.checkDataType($rulesGroup.type, $data) + ") { "), + it.opts.useDefaults) if ("object" == $rulesGroup.type && it.schema.properties) { + $schema = it.schema.properties; + var arr3 = Object.keys($schema); + if (arr3) for (var $propertyKey, i3 = -1, l3 = arr3.length - 1; i3 < l3; ) if (void 0 !== ($sch = $schema[$propertyKey = arr3[i3 += 1]]).default) { + var $passData = $data + it.util.getProperty($propertyKey); + if (it.compositeRule) { + if (it.opts.strictDefaults) { + if ($defaultMsg = "default is ignored for: " + $passData, "log" !== it.opts.strictDefaults) throw new Error($defaultMsg); + it.logger.warn($defaultMsg); + } + } else out += " if (" + $passData + " === undefined ", "empty" == it.opts.useDefaults && (out += " || " + $passData + " === null || " + $passData + " === '' "), + out += " ) " + $passData + " = ", "shared" == it.opts.useDefaults ? out += " " + it.useDefault($sch.default) + " " : out += " " + JSON.stringify($sch.default) + " ", + out += "; "; + } + } else if ("array" == $rulesGroup.type && Array.isArray(it.schema.items)) { + var arr4 = it.schema.items; + if (arr4) { + $i = -1; + for (var $sch, l4 = arr4.length - 1; $i < l4; ) if (void 0 !== ($sch = arr4[$i += 1]).default) if ($passData = $data + "[" + $i + "]", + it.compositeRule) { + if (it.opts.strictDefaults) { + if ($defaultMsg = "default is ignored for: " + $passData, "log" !== it.opts.strictDefaults) throw new Error($defaultMsg); + it.logger.warn($defaultMsg); + } + } else out += " if (" + $passData + " === undefined ", "empty" == it.opts.useDefaults && (out += " || " + $passData + " === null || " + $passData + " === '' "), + out += " ) " + $passData + " = ", "shared" == it.opts.useDefaults ? out += " " + it.useDefault($sch.default) + " " : out += " " + JSON.stringify($sch.default) + " ", + out += "; "; + } + } + var $$outStack, arr5 = $rulesGroup.rules; + if (arr5) for (var $rule, i5 = -1, l5 = arr5.length - 1; i5 < l5; ) if ($shouldUseRule($rule = arr5[i5 += 1])) { + var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); + $code && (out += " " + $code + " ", $breakOnError && ($closingBraces1 += "}")); + } + if ($breakOnError && (out += " " + $closingBraces1 + " ", $closingBraces1 = ""), + $rulesGroup.type && (out += " } ", $typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes)) out += " else { ", + $schemaPath = it.schemaPath + ".type", $errSchemaPath = it.errSchemaPath + "/type", + ($$outStack = $$outStack || []).push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'type' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { type: '", + out += $typeIsArray ? "" + $typeSchema.join(",") : "" + $typeSchema, out += "' } ", + !1 !== it.opts.messages && (out += " , message: 'should be ", out += $typeIsArray ? "" + $typeSchema.join(",") : "" + $typeSchema, + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", __err = out, out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } "; + $breakOnError && (out += " if (errors === ", out += $top ? "0" : "errs_" + $lvl, + out += ") { ", $closingBraces2 += "}"); + } + } + function $shouldUseGroup($rulesGroup) { + for (var rules = $rulesGroup.rules, i = 0; i < rules.length; i++) if ($shouldUseRule(rules[i])) return !0; + } + function $shouldUseRule($rule) { + return void 0 !== it.schema[$rule.keyword] || $rule.implements && (function($rule) { + for (var impl = $rule.implements, i = 0; i < impl.length; i++) if (void 0 !== it.schema[impl[i]]) return !0; + })($rule); + } + return $breakOnError && (out += " " + $closingBraces2 + " "), $top ? ($async ? (out += " if (errors === 0) return data; ", + out += " else throw new ValidationError(vErrors); ") : (out += " validate.errors = vErrors; ", + out += " return errors === 0; "), out += " }; return validate;") : out += " var " + $valid + " = errors === errs_" + $lvl + ";", + out = it.util.cleanUpCode(out), $top && (out = it.util.finalCleanUpCode(out, $async)), + out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $schemaValue, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $isData = it.opts.$data && $schema && $schema.$data; + $isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema; + var $isMax = "maximum" == $keyword, $exclusiveKeyword = $isMax ? "exclusiveMaximum" : "exclusiveMinimum", $schemaExcl = it.schema[$exclusiveKeyword], $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data, $op = $isMax ? "<" : ">", $notOp = $isMax ? ">" : "<", $errorKeyword = void 0; + if ($isDataExcl) { + var $$outStack, $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), $exclusive = "exclusive" + $lvl, $exclType = "exclType" + $lvl, $exclIsNumber = "exclIsNumber" + $lvl, $opStr = "' + " + ($opExpr = "op" + $lvl) + " + '"; + out += " var schemaExcl" + $lvl + " = " + $schemaValueExcl + "; ", out += " var " + $exclusive + "; var " + $exclType + " = typeof " + ($schemaValueExcl = "schemaExcl" + $lvl) + "; if (" + $exclType + " != 'boolean' && " + $exclType + " != 'undefined' && " + $exclType + " != 'number') { ", + $errorKeyword = $exclusiveKeyword, ($$outStack = $$outStack || []).push(out), out = "", + !1 !== it.createErrors ? (out += " { keyword: '" + ($errorKeyword || "_exclusiveLimit") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ", + !1 !== it.opts.messages && (out += " , message: '" + $exclusiveKeyword + " should be boolean' "), + it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } else if ( ", $isData && (out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || "), + out += " " + $exclType + " == 'number' ? ( (" + $exclusive + " = " + $schemaValue + " === undefined || " + $schemaValueExcl + " " + $op + "= " + $schemaValue + ") ? " + $data + " " + $notOp + "= " + $schemaValueExcl + " : " + $data + " " + $notOp + " " + $schemaValue + " ) : ( (" + $exclusive + " = " + $schemaValueExcl + " === true) ? " + $data + " " + $notOp + "= " + $schemaValue + " : " + $data + " " + $notOp + " " + $schemaValue + " ) || " + $data + " !== " + $data + ") { var op" + $lvl + " = " + $exclusive + " ? '" + $op + "' : '" + $op + "='; ", + void 0 === $schema && ($errorKeyword = $exclusiveKeyword, $errSchemaPath = it.errSchemaPath + "/" + $exclusiveKeyword, + $schemaValue = $schemaValueExcl, $isData = $isDataExcl); + } else if ($opStr = $op, ($exclIsNumber = "number" == typeof $schemaExcl) && $isData) { + var $opExpr = "'" + $opStr + "'"; + out += " if ( ", $isData && (out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || "), + out += " ( " + $schemaValue + " === undefined || " + $schemaExcl + " " + $op + "= " + $schemaValue + " ? " + $data + " " + $notOp + "= " + $schemaExcl + " : " + $data + " " + $notOp + " " + $schemaValue + " ) || " + $data + " !== " + $data + ") { "; + } else $exclIsNumber && void 0 === $schema ? ($exclusive = !0, $errorKeyword = $exclusiveKeyword, + $errSchemaPath = it.errSchemaPath + "/" + $exclusiveKeyword, $schemaValue = $schemaExcl, + $notOp += "=") : ($exclIsNumber && ($schemaValue = Math[$isMax ? "min" : "max"]($schemaExcl, $schema)), + $schemaExcl === (!$exclIsNumber || $schemaValue) ? ($exclusive = !0, $errorKeyword = $exclusiveKeyword, + $errSchemaPath = it.errSchemaPath + "/" + $exclusiveKeyword, $notOp += "=") : ($exclusive = !1, + $opStr += "=")), $opExpr = "'" + $opStr + "'", out += " if ( ", $isData && (out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || "), + out += " " + $data + " " + $notOp + " " + $schemaValue + " || " + $data + " !== " + $data + ") { "; + return $errorKeyword = $errorKeyword || $keyword, ($$outStack = $$outStack || []).push(out), + out = "", !1 !== it.createErrors ? (out += " { keyword: '" + ($errorKeyword || "_limit") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { comparison: " + $opExpr + ", limit: " + $schemaValue + ", exclusive: " + $exclusive + " } ", + !1 !== it.opts.messages && (out += " , message: 'should be " + $opStr + " ", out += $isData ? "' + " + $schemaValue : $schemaValue + "'"), + it.opts.verbose && (out += " , schema: ", out += $isData ? "validate.schema" + $schemaPath : "" + $schema, + out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", __err = out, out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } ", $breakOnError && (out += " else { "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $schemaValue, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $isData = it.opts.$data && $schema && $schema.$data; + $isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema, out += "if ( ", $isData && (out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || "), + out += " " + $data + ".length " + ("maxItems" == $keyword ? ">" : "<") + " " + $schemaValue + ") { "; + var $errorKeyword = $keyword, $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: '" + ($errorKeyword || "_limitItems") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { limit: " + $schemaValue + " } ", + !1 !== it.opts.messages && (out += " , message: 'should NOT have ", out += "maxItems" == $keyword ? "more" : "fewer", + out += " than ", out += $isData ? "' + " + $schemaValue + " + '" : "" + $schema, + out += " items' "), it.opts.verbose && (out += " , schema: ", out += $isData ? "validate.schema" + $schemaPath : "" + $schema, + out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += "} ", $breakOnError && (out += " else { "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $schemaValue, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $isData = it.opts.$data && $schema && $schema.$data; + $isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema; + var $op = "maxLength" == $keyword ? ">" : "<"; + out += "if ( ", $isData && (out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || "), + !1 === it.opts.unicode ? out += " " + $data + ".length " : out += " ucs2length(" + $data + ") ", + out += " " + $op + " " + $schemaValue + ") { "; + var $errorKeyword = $keyword, $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: '" + ($errorKeyword || "_limitLength") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { limit: " + $schemaValue + " } ", + !1 !== it.opts.messages && (out += " , message: 'should NOT be ", out += "maxLength" == $keyword ? "longer" : "shorter", + out += " than ", out += $isData ? "' + " + $schemaValue + " + '" : "" + $schema, + out += " characters' "), it.opts.verbose && (out += " , schema: ", out += $isData ? "validate.schema" + $schemaPath : "" + $schema, + out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += "} ", $breakOnError && (out += " else { "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $schemaValue, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $isData = it.opts.$data && $schema && $schema.$data; + $isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema, out += "if ( ", $isData && (out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || "), + out += " Object.keys(" + $data + ").length " + ("maxProperties" == $keyword ? ">" : "<") + " " + $schemaValue + ") { "; + var $errorKeyword = $keyword, $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: '" + ($errorKeyword || "_limitProperties") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { limit: " + $schemaValue + " } ", + !1 !== it.opts.messages && (out += " , message: 'should NOT have ", out += "maxProperties" == $keyword ? "more" : "fewer", + out += " than ", out += $isData ? "' + " + $schemaValue + " + '" : "" + $schema, + out += " properties' "), it.opts.verbose && (out += " , schema: ", out += $isData ? "validate.schema" + $schemaPath : "" + $schema, + out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += "} ", $breakOnError && (out += " else { "), out; + }; +}, function(module) { + module.exports = { + $schema: "http://json-schema.org/draft-07/schema#", + $id: "http://json-schema.org/draft-07/schema#", + title: "Core schema meta-schema", + definitions: { + schemaArray: { + type: "array", + minItems: 1, + items: { + $ref: "#" + } + }, + nonNegativeInteger: { + type: "integer", + minimum: 0 + }, + nonNegativeIntegerDefault0: { + allOf: [ { + $ref: "#/definitions/nonNegativeInteger" + }, { + default: 0 + } ] + }, + simpleTypes: { + enum: [ "array", "boolean", "integer", "null", "number", "object", "string" ] + }, + stringArray: { + type: "array", + items: { + type: "string" + }, + uniqueItems: !0, + default: [] + } + }, + type: [ "object", "boolean" ], + properties: { + $id: { + type: "string", + format: "uri-reference" + }, + $schema: { + type: "string", + format: "uri" + }, + $ref: { + type: "string", + format: "uri-reference" + }, + $comment: { + type: "string" + }, + title: { + type: "string" + }, + description: { + type: "string" + }, + default: !0, + readOnly: { + type: "boolean", + default: !1 + }, + examples: { + type: "array", + items: !0 + }, + multipleOf: { + type: "number", + exclusiveMinimum: 0 + }, + maximum: { + type: "number" + }, + exclusiveMaximum: { + type: "number" + }, + minimum: { + type: "number" + }, + exclusiveMinimum: { + type: "number" + }, + maxLength: { + $ref: "#/definitions/nonNegativeInteger" + }, + minLength: { + $ref: "#/definitions/nonNegativeIntegerDefault0" + }, + pattern: { + type: "string", + format: "regex" + }, + additionalItems: { + $ref: "#" + }, + items: { + anyOf: [ { + $ref: "#" + }, { + $ref: "#/definitions/schemaArray" + } ], + default: !0 + }, + maxItems: { + $ref: "#/definitions/nonNegativeInteger" + }, + minItems: { + $ref: "#/definitions/nonNegativeIntegerDefault0" + }, + uniqueItems: { + type: "boolean", + default: !1 + }, + contains: { + $ref: "#" + }, + maxProperties: { + $ref: "#/definitions/nonNegativeInteger" + }, + minProperties: { + $ref: "#/definitions/nonNegativeIntegerDefault0" + }, + required: { + $ref: "#/definitions/stringArray" + }, + additionalProperties: { + $ref: "#" + }, + definitions: { + type: "object", + additionalProperties: { + $ref: "#" + }, + default: {} + }, + properties: { + type: "object", + additionalProperties: { + $ref: "#" + }, + default: {} + }, + patternProperties: { + type: "object", + additionalProperties: { + $ref: "#" + }, + propertyNames: { + format: "regex" + }, + default: {} + }, + dependencies: { + type: "object", + additionalProperties: { + anyOf: [ { + $ref: "#" + }, { + $ref: "#/definitions/stringArray" + } ] + } + }, + propertyNames: { + $ref: "#" + }, + const: !0, + enum: { + type: "array", + items: !0, + minItems: 1, + uniqueItems: !0 + }, + type: { + anyOf: [ { + $ref: "#/definitions/simpleTypes" + }, { + type: "array", + items: { + $ref: "#/definitions/simpleTypes" + }, + minItems: 1, + uniqueItems: !0 + } ] + }, + format: { + type: "string" + }, + contentMediaType: { + type: "string" + }, + contentEncoding: { + type: "string" + }, + if: { + $ref: "#" + }, + then: { + $ref: "#" + }, + else: { + $ref: "#" + }, + allOf: { + $ref: "#/definitions/schemaArray" + }, + anyOf: { + $ref: "#/definitions/schemaArray" + }, + oneOf: { + $ref: "#/definitions/schemaArray" + }, + not: { + $ref: "#" + } + }, + default: !0 + }; +}, function(module, exports, __webpack_require__) { + const unzipper = __webpack_require__(1151), request = __webpack_require__(228), store = __webpack_require__(240), safeStatelessRegex = __webpack_require__(169), isRegex = /^\/(.*)\/(.*)$/; + module.exports = async function(req) { + let {opts: opts, query: query} = (function(req) { + let opts = {}; + try { + opts = JSON.parse(req.query.o); + } catch (e) {} + return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { + if ((el || "").match(isRegex)) { + const parts = isRegex.exec(el); + try { + return new RegExp(parts[1], parts[2]); + } catch (e) {} + } + return el; + }))), { + opts: opts, + query: req.query + }; + })(req); + const zipUrls = (function(query) { + let zipUrls = [], key = query.key; + return key && store.get(key) ? zipUrls = store.get(key) : (zipUrls = query.r || [], + "string" == typeof zipUrls && (zipUrls = [ zipUrls ])), zipUrls; + })(query); + (opts.fileMustInclude || []).length || opts.hasOwnProperty("fileIdx") || (opts = { + fileMustInclude: [ /.mkv$|.mp4$|.avi$/i ] + }); + const directory = await unzipper.Open.url(request, zipUrls[0]); + let countFiles = -1; + return directory.files.find((d => (countFiles++, (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, + safeStatelessRegex(d.path || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === countFiles))); + }; +}, function(module, exports, __webpack_require__) { + var Stream = __webpack_require__(3), util = __webpack_require__(0), Buffer = __webpack_require__(153); + function PullStream() { + if (!(this instanceof PullStream)) return new PullStream; + Stream.Duplex.call(this, { + decodeStrings: !1, + objectMode: !0 + }), this.buffer = Buffer.from(""); + var self = this; + self.on("finish", (function() { + self.finished = !0, self.emit("chunk", !1); + })); + } + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + util.inherits(PullStream, Stream.Duplex), PullStream.prototype._write = function(chunk, e, cb) { + this.buffer = Buffer.concat([ this.buffer, chunk ]), this.cb = cb, this.emit("chunk"); + }, PullStream.prototype.stream = function(eof, includeEof) { + var done, p = Stream.PassThrough(), self = this; + function cb() { + if ("function" == typeof self.cb) { + var callback = self.cb; + return self.cb = void 0, callback(); + } + } + function pull() { + var packet; + if (self.buffer && self.buffer.length) { + if ("number" == typeof eof) packet = self.buffer.slice(0, eof), self.buffer = self.buffer.slice(eof), + eof -= packet.length, done = !eof; else { + var match = self.buffer.indexOf(eof); + if (-1 !== match) self.match = match, includeEof && (match += eof.length), packet = self.buffer.slice(0, match), + self.buffer = self.buffer.slice(match), done = !0; else { + var len = self.buffer.length - eof.length; + len <= 0 ? cb() : (packet = self.buffer.slice(0, len), self.buffer = self.buffer.slice(len)); + } + } + packet && p.write(packet, (function() { + (0 === self.buffer.length || eof.length && self.buffer.length <= eof.length) && cb(); + })); + } + if (done) self.removeListener("chunk", pull), p.end(); else if (self.finished) return self.removeListener("chunk", pull), + void self.emit("error", new Error("FILE_ENDED")); + } + return self.on("chunk", pull), pull(), p; + }, PullStream.prototype.pull = function(eof, includeEof) { + if (0 === eof) return Promise.resolve(""); + if (!isNaN(eof) && this.buffer.length > eof) { + var data = this.buffer.slice(0, eof); + return this.buffer = this.buffer.slice(eof), Promise.resolve(data); + } + var rejectHandler, pullStreamRejectHandler, buffer = Buffer.from(""), self = this, concatStream = Stream.Transform(); + return concatStream._transform = function(d, e, cb) { + buffer = Buffer.concat([ buffer, d ]), cb(); + }, new Promise((function(resolve, reject) { + if (rejectHandler = reject, pullStreamRejectHandler = function(e) { + self.__emittedError = e, reject(e); + }, self.finished) return reject(new Error("FILE_ENDED")); + self.once("error", pullStreamRejectHandler), self.stream(eof, includeEof).on("error", reject).pipe(concatStream).on("finish", (function() { + resolve(buffer); + })).on("error", reject); + })).finally((function() { + self.removeListener("error", rejectHandler), self.removeListener("error", pullStreamRejectHandler); + })); + }, PullStream.prototype._read = function() {}, module.exports = PullStream; +}, function(module, exports, __webpack_require__) { + var binary = __webpack_require__(241); + module.exports = function(extraField, vars) { + for (var extra; !extra && extraField && extraField.length; ) { + var candidateExtra = binary.parse(extraField).word16lu("signature").word16lu("partsize").word64lu("uncompressedSize").word64lu("compressedSize").word64lu("offset").word64lu("disknum").vars; + 1 === candidateExtra.signature ? extra = candidateExtra : extraField = extraField.slice(candidateExtra.partsize + 4); + } + return extra = extra || {}, 4294967295 === vars.compressedSize && (vars.compressedSize = extra.compressedSize), + 4294967295 === vars.uncompressedSize && (vars.uncompressedSize = extra.uncompressedSize), + 4294967295 === vars.offsetToLocalFileHeader && (vars.offsetToLocalFileHeader = extra.offset), + extra; + }; +}, function(module, exports) { + module.exports = function(date, time) { + const day = 31 & date, month = date >> 5 & 15, year = 1980 + (date >> 9 & 127), seconds = time ? 2 * (31 & time) : 0, minutes = time ? time >> 5 & 63 : 0, hours = time ? time >> 11 : 0; + return new Date(Date.UTC(year, month - 1, day, hours, minutes, seconds)); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var util = __webpack_require__(17), maybeWrapAsError = util.maybeWrapAsError, OperationalError = __webpack_require__(58).OperationalError, es5 = __webpack_require__(81), rErrorKey = /^(?:name|message|stack|cause)$/; + function wrapAsOperationalError(obj) { + var ret; + if ((function(obj) { + return obj instanceof Error && es5.getPrototypeOf(obj) === Error.prototype; + })(obj)) { + (ret = new OperationalError(obj)).name = obj.name, ret.message = obj.message, ret.stack = obj.stack; + for (var keys = es5.keys(obj), i = 0; i < keys.length; ++i) { + var key = keys[i]; + rErrorKey.test(key) || (ret[key] = obj[key]); + } + return ret; + } + return util.markAsOriginatingFromRejection(obj), obj; + } + module.exports = function(promise, multiArgs) { + return function(err, value) { + if (null !== promise) { + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped), promise._reject(wrapped); + } else if (multiArgs) { + for (var $_len = arguments.length, args = new Array(Math.max($_len - 1, 0)), $_i = 1; $_i < $_len; ++$_i) args[$_i - 1] = arguments[$_i]; + promise._fulfill(args); + } else promise._fulfill(value); + promise = null; + } + }; + }; +}, function(module, exports, __webpack_require__) { + module.exports = LinkReader; + var fs = __webpack_require__(59), inherits = __webpack_require__(7), Reader = __webpack_require__(82); + function LinkReader(props) { + if (!(this instanceof LinkReader)) throw new Error("LinkReader must be called as constructor."); + if (!("Link" === props.type && props.Link || "SymbolicLink" === props.type && props.SymbolicLink)) throw new Error("Non-link type " + props.type); + Reader.call(this, props); + } + inherits(LinkReader, Reader), LinkReader.prototype._stat = function(currentStat) { + var self = this; + fs.readlink(self._path, (function(er, linkpath) { + if (er) return self.error(er); + self.linkpath = self.props.linkpath = linkpath, self.emit("linkpath", linkpath), + Reader.prototype._stat.call(self, currentStat); + })); + }, LinkReader.prototype._read = function() { + this._paused || this._ended || (this.emit("end"), this.emit("close"), this._ended = !0); + }; +}, function(module, exports, __webpack_require__) { + module.exports = DirReader; + var fs = __webpack_require__(59), inherits = __webpack_require__(7), path = __webpack_require__(4), Reader = __webpack_require__(82), assert = __webpack_require__(22).ok; + function DirReader(props) { + if (!(this instanceof DirReader)) throw new Error("DirReader must be called as constructor."); + if ("Directory" !== props.type || !props.Directory) throw new Error("Non-directory type " + props.type); + this.entries = null, this._index = -1, this._paused = !1, this._length = -1, props.sort && (this.sort = props.sort), + Reader.call(this, props); + } + inherits(DirReader, Reader), DirReader.prototype._getEntries = function() { + var self = this; + self._gotEntries || (self._gotEntries = !0, fs.readdir(self._path, (function(er, entries) { + if (er) return self.error(er); + function processEntries() { + self._length = self.entries.length, "function" == typeof self.sort && (self.entries = self.entries.sort(self.sort.bind(self))), + self._read(); + } + self.entries = entries, self.emit("entries", entries), self._paused ? self.once("resume", processEntries) : processEntries(); + }))); + }, DirReader.prototype._read = function() { + var self = this; + if (!self.entries) return self._getEntries(); + if (!(self._paused || self._currentEntry || self._aborted)) if (self._index++, self._index >= self.entries.length) self._ended || (self._ended = !0, + self.emit("end"), self.emit("close")); else { + var p = path.resolve(self._path, self.entries[self._index]); + assert(p !== self._path), assert(self.entries[self._index]), self._currentEntry = p, + fs[self.props.follow ? "stat" : "lstat"](p, (function(er, stat) { + if (er) return self.error(er); + var who = self._proxy || self; + stat.path = p, stat.basename = path.basename(p), stat.dirname = path.dirname(p); + var childProps = self.getChildProps.call(who, stat); + childProps.path = p, childProps.basename = path.basename(p), childProps.dirname = path.dirname(p); + var entry = Reader(childProps, stat); + self._currentEntry = entry, entry.on("pause", (function(who) { + self._paused || entry._disowned || self.pause(who); + })), entry.on("resume", (function(who) { + self._paused && !entry._disowned && self.resume(who); + })), entry.on("stat", (function(props) { + self.emit("_entryStat", entry, props), entry._aborted || (entry._paused ? entry.once("resume", (function() { + self.emit("entryStat", entry, props); + })) : self.emit("entryStat", entry, props)); + })), entry.on("ready", (function EMITCHILD() { + if (self._paused) return entry.pause(self), self.once("resume", EMITCHILD); + "Socket" === entry.type ? self.emit("socket", entry) : self.emitEntry(entry); + })); + var ended = !1; + function onend() { + ended || (ended = !0, self.emit("childEnd", entry), self.emit("entryEnd", entry), + self._currentEntry = null, self._paused || self._read()); + } + entry.on("close", onend), entry.on("disown", onend), entry.on("error", (function(er) { + entry._swallowErrors ? (self.warn(er), entry.emit("end"), entry.emit("close")) : self.emit("error", er); + })), [ "child", "childEnd", "warn" ].forEach((function(ev) { + entry.on(ev, self.emit.bind(self, ev)); + })); + })); + } + }, DirReader.prototype.disown = function(entry) { + entry.emit("beforeDisown"), entry._disowned = !0, entry.parent = entry.root = null, + entry === this._currentEntry && (this._currentEntry = null), entry.emit("disown"); + }, DirReader.prototype.getChildProps = function() { + return { + depth: this.depth + 1, + root: this.root || this, + parent: this, + follow: this.follow, + filter: this.filter, + sort: this.props.sort, + hardlinks: this.props.hardlinks + }; + }, DirReader.prototype.pause = function(who) { + this._paused || (who = who || this, this._paused = !0, this._currentEntry && this._currentEntry.pause && this._currentEntry.pause(who), + this.emit("pause", who)); + }, DirReader.prototype.resume = function(who) { + this._paused && (who = who || this, this._paused = !1, this.emit("resume", who), + this._paused || (this._currentEntry ? this._currentEntry.resume && this._currentEntry.resume(who) : this._read())); + }, DirReader.prototype.emitEntry = function(entry) { + this.emit("entry", entry), this.emit("child", entry); + }; +}, function(module, exports, __webpack_require__) { + module.exports = FileReader; + var fs = __webpack_require__(59), inherits = __webpack_require__(7), Reader = __webpack_require__(82), EOF = { + EOF: !0 + }, CLOSE = { + CLOSE: !0 + }; + function FileReader(props) { + if (!(this instanceof FileReader)) throw new Error("FileReader must be called as constructor."); + if (!("Link" === props.type && props.Link || "File" === props.type && props.File)) throw new Error("Non-file type " + props.type); + this._buffer = [], this._bytesEmitted = 0, Reader.call(this, props); + } + inherits(FileReader, Reader), FileReader.prototype._getStream = function() { + var self = this, stream = self._stream = fs.createReadStream(self._path, self.props); + self.props.blksize && (stream.bufferSize = self.props.blksize), stream.on("open", self.emit.bind(self, "open")), + stream.on("data", (function(c) { + self._bytesEmitted += c.length, c.length && (self._paused || self._buffer.length ? (self._buffer.push(c), + self._read()) : self.emit("data", c)); + })), stream.on("end", (function() { + self._paused || self._buffer.length ? (self._buffer.push(EOF), self._read()) : self.emit("end"), + self._bytesEmitted !== self.props.size && self.error("Didn't get expected byte count\nexpect: " + self.props.size + "\nactual: " + self._bytesEmitted); + })), stream.on("close", (function() { + self._paused || self._buffer.length ? (self._buffer.push(CLOSE), self._read()) : self.emit("close"); + })), stream.on("error", (function(e) { + self.emit("error", e); + })), self._read(); + }, FileReader.prototype._read = function() { + if (!this._paused) { + if (!this._stream) return this._getStream(); + if (this._buffer.length) { + for (var buf = this._buffer, i = 0, l = buf.length; i < l; i++) { + var c = buf[i]; + if (c === EOF ? this.emit("end") : c === CLOSE ? this.emit("close") : this.emit("data", c), + this._paused) return void (this._buffer = buf.slice(i)); + } + this._buffer.length = 0; + } + } + }, FileReader.prototype.pause = function(who) { + this._paused || (who = who || this, this._paused = !0, this._stream && this._stream.pause(), + this.emit("pause", who)); + }, FileReader.prototype.resume = function(who) { + this._paused && (who = who || this, this.emit("resume", who), this._paused = !1, + this._stream && this._stream.resume(), this._read()); + }; +}, function(module, exports, __webpack_require__) { + module.exports = ProxyReader; + var Reader = __webpack_require__(82), getType = __webpack_require__(154), inherits = __webpack_require__(7), fs = __webpack_require__(59); + function ProxyReader(props) { + if (!(this instanceof ProxyReader)) throw new Error("ProxyReader must be called as constructor."); + this.props = props, this._buffer = [], this.ready = !1, Reader.call(this, props); + } + inherits(ProxyReader, Reader), ProxyReader.prototype._stat = function() { + var self = this, props = self.props, stat = props.follow ? "stat" : "lstat"; + fs[stat](props.path, (function(er, current) { + var type; + type = er || !current ? "File" : getType(current), props[type] = !0, props.type = self.type = type, + self._old = current, self._addProxy(Reader(props, current)); + })); + }, ProxyReader.prototype._addProxy = function(proxy) { + var self = this; + if (self._proxyTarget) return self.error("proxy already set"); + self._proxyTarget = proxy, proxy._proxy = self, [ "error", "data", "end", "close", "linkpath", "entry", "entryEnd", "child", "childEnd", "warn", "stat" ].forEach((function(ev) { + proxy.on(ev, self.emit.bind(self, ev)); + })), self.emit("proxy", proxy), proxy.on("ready", (function() { + self.ready = !0, self.emit("ready"); + })); + var calls = self._buffer; + self._buffer.length = 0, calls.forEach((function(c) { + proxy[c[0]].apply(proxy, c[1]); + })); + }, ProxyReader.prototype.pause = function() { + return !!this._proxyTarget && this._proxyTarget.pause(); + }, ProxyReader.prototype.resume = function() { + return !!this._proxyTarget && this._proxyTarget.resume(); + }; +}, function(module, exports, __webpack_require__) { + module.exports = rimraf, rimraf.sync = rimrafSync; + var assert = __webpack_require__(22), path = __webpack_require__(4), fs = __webpack_require__(2), glob = __webpack_require__(180), _0666 = parseInt("666", 8), defaultGlobOpts = { + nosort: !0, + silent: !0 + }, timeout = 0, isWindows = "win32" === process.platform; + function defaults(options) { + [ "unlink", "chmod", "stat", "lstat", "rmdir", "readdir" ].forEach((function(m) { + options[m] = options[m] || fs[m], options[m += "Sync"] = options[m] || fs[m]; + })), options.maxBusyTries = options.maxBusyTries || 3, options.emfileWait = options.emfileWait || 1e3, + !1 === options.glob && (options.disableGlob = !0), options.disableGlob = options.disableGlob || !1, + options.glob = options.glob || defaultGlobOpts; + } + function rimraf(p, options, cb) { + "function" == typeof options && (cb = options, options = {}), assert(p, "rimraf: missing path"), + assert.equal(typeof p, "string", "rimraf: path should be a string"), assert.equal(typeof cb, "function", "rimraf: callback function required"), + assert(options, "rimraf: invalid options argument provided"), assert.equal(typeof options, "object", "rimraf: options should be object"), + defaults(options); + var busyTries = 0, errState = null, n = 0; + if (options.disableGlob || !glob.hasMagic(p)) return afterGlob(null, [ p ]); + function afterGlob(er, results) { + return er ? cb(er) : 0 === (n = results.length) ? cb() : void results.forEach((function(p) { + rimraf_(p, options, (function CB(er) { + if (er) { + if (("EBUSY" === er.code || "ENOTEMPTY" === er.code || "EPERM" === er.code) && busyTries < options.maxBusyTries) return busyTries++, + setTimeout((function() { + rimraf_(p, options, CB); + }), 100 * busyTries); + if ("EMFILE" === er.code && timeout < options.emfileWait) return setTimeout((function() { + rimraf_(p, options, CB); + }), timeout++); + "ENOENT" === er.code && (er = null); + } + timeout = 0, (function(er) { + errState = errState || er, 0 == --n && cb(errState); + })(er); + })); + })); + } + options.lstat(p, (function(er, stat) { + if (!er) return afterGlob(null, [ p ]); + glob(p, options.glob, afterGlob); + })); + } + function rimraf_(p, options, cb) { + assert(p), assert(options), assert("function" == typeof cb), options.lstat(p, (function(er, st) { + return er && "ENOENT" === er.code ? cb(null) : (er && "EPERM" === er.code && isWindows && fixWinEPERM(p, options, er, cb), + st && st.isDirectory() ? rmdir(p, options, er, cb) : void options.unlink(p, (function(er) { + if (er) { + if ("ENOENT" === er.code) return cb(null); + if ("EPERM" === er.code) return isWindows ? fixWinEPERM(p, options, er, cb) : rmdir(p, options, er, cb); + if ("EISDIR" === er.code) return rmdir(p, options, er, cb); + } + return cb(er); + }))); + })); + } + function fixWinEPERM(p, options, er, cb) { + assert(p), assert(options), assert("function" == typeof cb), er && assert(er instanceof Error), + options.chmod(p, _0666, (function(er2) { + er2 ? cb("ENOENT" === er2.code ? null : er) : options.stat(p, (function(er3, stats) { + er3 ? cb("ENOENT" === er3.code ? null : er) : stats.isDirectory() ? rmdir(p, options, er, cb) : options.unlink(p, cb); + })); + })); + } + function fixWinEPERMSync(p, options, er) { + assert(p), assert(options), er && assert(er instanceof Error); + try { + options.chmodSync(p, _0666); + } catch (er2) { + if ("ENOENT" === er2.code) return; + throw er; + } + try { + var stats = options.statSync(p); + } catch (er3) { + if ("ENOENT" === er3.code) return; + throw er; + } + stats.isDirectory() ? rmdirSync(p, options, er) : options.unlinkSync(p); + } + function rmdir(p, options, originalEr, cb) { + assert(p), assert(options), originalEr && assert(originalEr instanceof Error), assert("function" == typeof cb), + options.rmdir(p, (function(er) { + !er || "ENOTEMPTY" !== er.code && "EEXIST" !== er.code && "EPERM" !== er.code ? er && "ENOTDIR" === er.code ? cb(originalEr) : cb(er) : (function(p, options, cb) { + assert(p), assert(options), assert("function" == typeof cb), options.readdir(p, (function(er, files) { + if (er) return cb(er); + var errState, n = files.length; + if (0 === n) return options.rmdir(p, cb); + files.forEach((function(f) { + rimraf(path.join(p, f), options, (function(er) { + if (!errState) return er ? cb(errState = er) : void (0 == --n && options.rmdir(p, cb)); + })); + })); + })); + })(p, options, cb); + })); + } + function rimrafSync(p, options) { + var results; + if (defaults(options = options || {}), assert(p, "rimraf: missing path"), assert.equal(typeof p, "string", "rimraf: path should be a string"), + assert(options, "rimraf: missing options"), assert.equal(typeof options, "object", "rimraf: options should be object"), + options.disableGlob || !glob.hasMagic(p)) results = [ p ]; else try { + options.lstatSync(p), results = [ p ]; + } catch (er) { + results = glob.sync(p, options.glob); + } + if (results.length) for (var i = 0; i < results.length; i++) { + p = results[i]; + try { + var st = options.lstatSync(p); + } catch (er) { + if ("ENOENT" === er.code) return; + "EPERM" === er.code && isWindows && fixWinEPERMSync(p, options, er); + } + try { + st && st.isDirectory() ? rmdirSync(p, options, null) : options.unlinkSync(p); + } catch (er) { + if ("ENOENT" === er.code) return; + if ("EPERM" === er.code) return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er); + if ("EISDIR" !== er.code) throw er; + rmdirSync(p, options, er); + } + } + } + function rmdirSync(p, options, originalEr) { + assert(p), assert(options), originalEr && assert(originalEr instanceof Error); + try { + options.rmdirSync(p); + } catch (er) { + if ("ENOENT" === er.code) return; + if ("ENOTDIR" === er.code) throw originalEr; + "ENOTEMPTY" !== er.code && "EEXIST" !== er.code && "EPERM" !== er.code || (function(p, options) { + assert(p), assert(options), options.readdirSync(p).forEach((function(f) { + rimrafSync(path.join(p, f), options); + })); + for (var retries = isWindows ? 100 : 1, i = 0; ;) { + var threw = !0; + try { + var ret = options.rmdirSync(p, options); + return threw = !1, ret; + } finally { + if (++i < retries && threw) continue; + } + } + })(p, options); + } + } +}, function(module, exports, __webpack_require__) { + module.exports = DirWriter; + var Writer = __webpack_require__(104), inherits = __webpack_require__(7), mkdir = __webpack_require__(170), path = __webpack_require__(4), collect = __webpack_require__(243); + function DirWriter(props) { + this instanceof DirWriter || this.error("DirWriter must be called as constructor.", null, !0), + "Directory" === props.type && props.Directory || this.error("Non-directory type " + props.type + " " + JSON.stringify(props), null, !0), + Writer.call(this, props); + } + inherits(DirWriter, Writer), DirWriter.prototype._create = function() { + var self = this; + mkdir(self._path, Writer.dirmode, (function(er) { + if (er) return self.error(er); + self.ready = !0, self.emit("ready"), self._process(); + })); + }, DirWriter.prototype.write = function() { + return !0; + }, DirWriter.prototype.end = function() { + this._ended = !0, this._process(); + }, DirWriter.prototype.add = function(entry) { + return collect(entry), !this.ready || this._currentEntry ? (this._buffer.push(entry), + !1) : this._ended ? this.error("add after end") : (this._buffer.push(entry), this._process(), + 0 === this._buffer.length); + }, DirWriter.prototype._process = function() { + var self = this; + if (!self._processing) { + var entry = self._buffer.shift(); + if (!entry) return self.emit("drain"), void (self._ended && self._finish()); + self._processing = !0, self.emit("entry", entry); + var pp, p = entry; + do { + if ((pp = p._path || p.path) === self.root._path || pp === self._path || pp && 0 === pp.indexOf(self._path)) return self._processing = !1, + entry._collected && entry.pipe(), self._process(); + p = p.parent; + } while (p); + var props = { + parent: self, + root: self.root || self, + type: entry.type, + depth: self.depth + 1 + }; + pp = entry._path || entry.path || entry.props.path, entry.parent && (pp = pp.substr(entry.parent._path.length + 1)), + props.path = path.join(self.path, path.join("/", pp)), props.filter = self.filter, + Object.keys(entry.props).forEach((function(k) { + props.hasOwnProperty(k) || (props[k] = entry.props[k]); + })); + var child = self._currentChild = new Writer(props); + child.on("ready", (function() { + entry.pipe(child), entry.resume(); + })), child.on("error", (function(er) { + child._swallowErrors ? (self.warn(er), child.emit("end"), child.emit("close")) : self.emit("error", er); + })), child.on("close", (function() { + ended || (ended = !0, self._currentChild = null, self._processing = !1, self._process()); + })); + var ended = !1; + } + }; +}, function(module, exports, __webpack_require__) { + module.exports = LinkWriter; + var fs = __webpack_require__(59), Writer = __webpack_require__(104), inherits = __webpack_require__(7), path = __webpack_require__(4), rimraf = __webpack_require__(513); + function LinkWriter(props) { + if (!(this instanceof LinkWriter)) throw new Error("LinkWriter must be called as constructor."); + if (!("Link" === props.type && props.Link || "SymbolicLink" === props.type && props.SymbolicLink)) throw new Error("Non-link type " + props.type); + "" === props.linkpath && (props.linkpath = "."), props.linkpath || this.error("Need linkpath property to create " + props.type), + Writer.call(this, props); + } + function clobber(self, lp, link) { + rimraf(self._path, (function(er) { + if (er) return self.error(er); + !(function(self, lp, link) { + fs[link](lp, self._path, (function(er) { + if (er) { + if ("ENOENT" !== er.code && "EACCES" !== er.code && "EPERM" !== er.code || "win32" !== process.platform) return self.error(er); + self.ready = !0, self.emit("ready"), self.emit("end"), self.emit("close"), self.end = self._finish = function() {}; + } + finish(self); + })); + })(self, lp, link); + })); + } + function finish(self) { + self.ready = !0, self.emit("ready"), self._ended && !self._finished && self._finish(); + } + inherits(LinkWriter, Writer), LinkWriter.prototype._create = function() { + var self = this, hard = "Link" === self.type || "win32" === process.platform, link = hard ? "link" : "symlink", lp = hard ? path.resolve(self.dirname, self.linkpath) : self.linkpath; + if (hard) return clobber(self, lp, link); + fs.readlink(self._path, (function(er, p) { + if (p && p === lp) return finish(self); + clobber(self, lp, link); + })); + }, LinkWriter.prototype.end = function() { + this._ended = !0, this.ready && (this._finished = !0, this._finish()); + }; +}, function(module, exports, __webpack_require__) { + module.exports = FileWriter; + var fs = __webpack_require__(59), Writer = __webpack_require__(104), inherits = __webpack_require__(7), EOF = {}; + function FileWriter(props) { + if (!(this instanceof FileWriter)) throw new Error("FileWriter must be called as constructor."); + if ("File" !== props.type || !props.File) throw new Error("Non-file type " + props.type); + this._buffer = [], this._bytesWritten = 0, Writer.call(this, props); + } + inherits(FileWriter, Writer), FileWriter.prototype._create = function() { + var self = this; + if (!self._stream) { + var so = {}; + self.props.flags && (so.flags = self.props.flags), so.mode = Writer.filemode, self._old && self._old.blksize && (so.bufferSize = self._old.blksize), + self._stream = fs.createWriteStream(self._path, so), self._stream.on("open", (function() { + self.ready = !0, self._buffer.forEach((function(c) { + c === EOF ? self._stream.end() : self._stream.write(c); + })), self.emit("ready"), self.emit("drain"); + })), self._stream.on("error", (function(er) { + self.emit("error", er); + })), self._stream.on("drain", (function() { + self.emit("drain"); + })), self._stream.on("close", (function() { + self._finish(); + })); + } + }, FileWriter.prototype.write = function(c) { + if (this._bytesWritten += c.length, !this.ready) { + if (!Buffer.isBuffer(c) && "string" != typeof c) throw new Error("invalid write data"); + return this._buffer.push(c), !1; + } + var ret = this._stream.write(c); + return !1 === ret && this._stream._queue ? this._stream._queue.length <= 2 : ret; + }, FileWriter.prototype.end = function(c) { + return c && this.write(c), this.ready ? this._stream.end() : (this._buffer.push(EOF), + !1); + }, FileWriter.prototype._finish = function() { + "number" == typeof this.size && this._bytesWritten !== this.size && this.error("Did not get expected byte count.\nexpect: " + this.size + "\nactual: " + this._bytesWritten), + Writer.prototype._finish.call(this); + }; +}, function(module, exports, __webpack_require__) { + module.exports = ProxyWriter; + var Writer = __webpack_require__(104), getType = __webpack_require__(154), inherits = __webpack_require__(7), collect = __webpack_require__(243), fs = __webpack_require__(2); + function ProxyWriter(props) { + if (!(this instanceof ProxyWriter)) throw new Error("ProxyWriter must be called as constructor."); + this.props = props, this._needDrain = !1, Writer.call(this, props); + } + inherits(ProxyWriter, Writer), ProxyWriter.prototype._stat = function() { + var self = this, props = self.props, stat = props.follow ? "stat" : "lstat"; + fs[stat](props.path, (function(er, current) { + var type; + type = er || !current ? "File" : getType(current), props[type] = !0, props.type = self.type = type, + self._old = current, self._addProxy(Writer(props, current)); + })); + }, ProxyWriter.prototype._addProxy = function(proxy) { + var self = this; + if (self._proxy) return self.error("proxy already set"); + self._proxy = proxy, [ "ready", "error", "close", "pipe", "drain", "warn" ].forEach((function(ev) { + proxy.on(ev, self.emit.bind(self, ev)); + })), self.emit("proxy", proxy), self._buffer.forEach((function(c) { + proxy[c[0]].apply(proxy, c[1]); + })), self._buffer.length = 0, self._needsDrain && self.emit("drain"); + }, ProxyWriter.prototype.add = function(entry) { + return collect(entry), this._proxy ? this._proxy.add(entry) : (this._buffer.push([ "add", [ entry ] ]), + this._needDrain = !0, !1); + }, ProxyWriter.prototype.write = function(c) { + return this._proxy ? this._proxy.write(c) : (this._buffer.push([ "write", [ c ] ]), + this._needDrain = !0, !1); + }, ProxyWriter.prototype.end = function(c) { + return this._proxy ? this._proxy.end(c) : (this._buffer.push([ "end", [ c ] ]), + !1); + }; }, function(module, exports, __webpack_require__) { (function(__dirname) { process.env.TV_ENV && (process.env.CASTING_DISABLED = 1, process.env.DISABLE_CACHING = 1, process.env.NO_CORS = 1), process.env.UNITY_ENV && (process.env.NO_NETWORK_INTERFACES = 1, - process.env.CASTING_DISABLED = 1, process.env.DISABLE_CACHING = 1, process.env.NO_CORS = 1); - var enginefs = __webpack_require__(120), path = __webpack_require__(3), os = __webpack_require__(17), http = __webpack_require__(12), url = __webpack_require__(7), ip = __webpack_require__(88), mkdirp = __webpack_require__(525), HLS = __webpack_require__(526), moment = __webpack_require__(1), isPositiveInteger = __webpack_require__(317), subtitlesTracks = __webpack_require__(595), subtitlesHash = __webpack_require__(641), https = __webpack_require__(651), proxy = __webpack_require__(652), defaultTrackers = __webpack_require__(653).map((el => `tracker:${el}`)), hwAccelProfiler = __webpack_require__(325).profiler, getTracksData = __webpack_require__(659).default, argv = __webpack_require__(662)(process.argv.slice(2)), apiCertifficateEndpoint = argv["https-cert-endpoint"] || process.env.HTTPS_CERT_ENDPOINT || "https://api.strem.io/api/certificateGet", webUILocation = argv["webui-location"] || process.env.WEBUI_LOCATION || "https://app.strem.io/shell-v4.4/", cache = __webpack_require__(328), searchPaths = { - ffmpeg: [ argv.ffmpeg, process.env.FFMPEG_BIN, path.dirname(process.execPath) + "/ffmpeg", path.dirname(process.execPath) + "\\ffmpeg.exe", path.dirname(process.execPath) + "\\bin\\ffmpeg.exe", "/usr/lib/jellyfin-ffmpeg/ffmpeg", "/usr/bin/ffmpeg", "/usr/local/bin/ffmpeg", "android" !== process.platform ? __webpack_require__(329).ffmpegPath : null ], - ffprobe: [ argv.ffprobe, process.env.FFPROBE_BIN, path.dirname(process.execPath) + "/ffprobe", path.dirname(process.execPath) + "\\ffprobe.exe", path.dirname(process.execPath) + "\\bin\\ffprobe.exe", "/usr/lib/jellyfin-ffmpeg/ffprobe", "/usr/bin/ffprobe", "/usr/local/bin/ffprobe", "android" !== process.platform ? __webpack_require__(329).ffprobePath : null ], + process.env.CASTING_DISABLED = 1, process.env.DISABLE_CACHING = 1, process.env.NO_CORS = 1), + __webpack_require__(519); + var enginefs = __webpack_require__(155), path = __webpack_require__(4), os = __webpack_require__(23), http = __webpack_require__(11), url = __webpack_require__(6), ip = __webpack_require__(116), mkdirp = __webpack_require__(170), HLS = __webpack_require__(625), moment = __webpack_require__(1), isPositiveInteger = __webpack_require__(369), subtitlesTracks = __webpack_require__(694), subtitlesHash = __webpack_require__(740), https = __webpack_require__(750), proxy = __webpack_require__(751), defaultTrackers = __webpack_require__(752).map((el => `tracker:${el}`)), hwAccelProfiler = __webpack_require__(377).profiler, getTracksData = __webpack_require__(758).default, argv = __webpack_require__(761)(process.argv.slice(2)), apiCertifficateEndpoint = argv["https-cert-endpoint"] || process.env.HTTPS_CERT_ENDPOINT || "https://api.strem.io/api/certificateGet", webUILocation = argv["webui-location"] || process.env.WEBUI_LOCATION || "https://app.strem.io/shell-v4.4/", cache = __webpack_require__(380), searchPaths = { + ffmpeg: [ argv.ffmpeg, process.env.FFMPEG_BIN, path.dirname(process.execPath) + "/ffmpeg", path.dirname(process.execPath) + "\\ffmpeg.exe", path.dirname(process.execPath) + "\\bin\\ffmpeg.exe", "/usr/lib/jellyfin-ffmpeg/ffmpeg", "/usr/bin/ffmpeg", "/usr/local/bin/ffmpeg", "android" !== process.platform ? __webpack_require__(381).ffmpegPath : null ], + ffprobe: [ argv.ffprobe, process.env.FFPROBE_BIN, path.dirname(process.execPath) + "/ffprobe", path.dirname(process.execPath) + "\\ffprobe.exe", path.dirname(process.execPath) + "\\bin\\ffprobe.exe", "/usr/lib/jellyfin-ffmpeg/ffprobe", "/usr/bin/ffprobe", "/usr/local/bin/ffprobe", "android" !== process.platform ? __webpack_require__(381).ffprobePath : null ], ffsplit: [ path.join(__dirname, "./node_modules/stremio-ffsplit-prebuilt/bin/ffsplit.bin"), process.env.HOME + "/hls-segment-splitter/ffsplit.bin", path.dirname(process.execPath) + "\\bin\\ffsplit.exe" ] }, executables = HLS.locateAllExecutables(searchPaths); - console.log("hls executables located -> ", executables), enginefs.engine = __webpack_require__(663), + console.log("hls executables located -> ", executables), enginefs.engine = __webpack_require__(762), enginefs.loggingEnabled = !0; - var appPath = __webpack_require__(327); + var appPath = __webpack_require__(379); try { mkdirp.sync(appPath, { recursive: !0, @@ -35564,9 +43696,9 @@ console.log("Using app path -> " + appPath), enginefs.router.use((function(req, res, next) { process.env.NO_CORS || !req.headers.origin || req.headers.origin.match(".strem.io(:80)?$") || req.headers.origin.match(".stremio.net(:80)?$") || req.headers.origin.match(".stremio.com(:80)?$") || req.headers.origin.match("stremio-development.netlify.app(:80)?$") || req.headers.origin.match("stremio.github.io(:80)?$") || req.headers.origin.match("gstatic.com") || "https://stremio.github.io" === req.headers.origin || req.headers.origin.match("(127.0.0.1|localhost):11470$") || req.headers.origin.match("peario.xyz") ? enginefs.sendCORSHeaders(req, res, next) : next(); })); - var settings = __webpack_require__(75); + var settings = __webpack_require__(94); if (!process.env.HLS_V2_DISABLED) { - const hlsV2Router = new (__webpack_require__(701))(executables); + const hlsV2Router = new (__webpack_require__(799))(executables); enginefs.router.use("/hlsv2", hlsV2Router); const regexParam = (param, expression) => { enginefs.router.param(param, ((req, res, next, val) => { @@ -35587,7 +43719,7 @@ }, hlsV2Router.handle(req, res, next); })); } - var avSamples = __webpack_require__(783); + var avSamples = __webpack_require__(881); Object.keys(avSamples).forEach((key => { enginefs.router.get(`/samples/${key}.${avSamples[key].container}`, ((req, res, next) => { res.writeHead(200, { @@ -35632,7 +43764,7 @@ }), res.end(JSON.stringify([])); })); })); - var ytdl = __webpack_require__(784); + var ytdl = __webpack_require__(882); function getYt(id, cb) { ytdl.getInfo("http://www.youtube.com/watch?v=" + id, { downloadURL: !0 @@ -35665,7 +43797,7 @@ })); })), !process.env.CASTING_DISABLED && "android" !== process.platform) { console.log("Enabling casting..."); - var casting = new (__webpack_require__(791))(executables); + var casting = new (__webpack_require__(889))(executables); enginefs.router.use("/casting/", casting.middleware); } enginefs.router.get("/subtitlesTracks", (function(req, res) { @@ -35770,7 +43902,7 @@ "content-type": "text/plain" }), res.end("ok"); })); - var localAddon = __webpack_require__(874); + var localAddon = __webpack_require__(970); enginefs.router.use("/local-addon", localAddon.addon({ disableCatalogSupport: !settings.localAddonEnabled }).getRouter()), "android" !== process.platform && settings.localAddonEnabled && localAddon.startIndexing(path.join(appPath, "./localFiles")), @@ -35811,7 +43943,7 @@ location: location }), res.end(); })), enginefs.router.use("/proxy", proxy.getRouter()); - var app = enginefs.app(), server = (http = __webpack_require__(12), enginefs._server = http.createServer(app)), port = 11470; + var app = enginefs.app(), server = (http = __webpack_require__(11), enginefs._server = http.createServer(app)), port = 11470; server.listen(port), server.on("error", (function(err) { port++ < 11474 ? (console.warn(err), server.listen(port)) : console.error(err); })), http.globalAgent.maxSockets = 40, server.on("listening", (function() { @@ -35828,7 +43960,7 @@ })), sserver.on("error", (function(err) { console.warn(err); })), argv.open || process.env.OPEN) { - var open = __webpack_require__(939); + var open = __webpack_require__(1035); server.on("listening", (function() { open(enginefs.baseUrlLocal); })); @@ -35885,11 +44017,35 @@ minPeers: MIN_PEERS_FOR_STABLE, maxBuffer: .75 }), defaults; - }, module.exports = enginefs; + }; + const rarHttp = __webpack_require__(1036); + enginefs.router.use("/rar", rarHttp.router()); + const zipHttp = __webpack_require__(1148); + enginefs.router.use("/zip", zipHttp.router()), module.exports = enginefs; }).call(this, "/"); +}, function(module, exports) { + const reduce = Function.bind.call(Function.call, Array.prototype.reduce), isEnumerable = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable), concat = Function.bind.call(Function.call, Array.prototype.concat), keys = Reflect.ownKeys; + Object.values || (Object.values = function(O) { + return reduce(keys(O), ((v, k) => concat(v, "string" == typeof k && isEnumerable(O, k) ? [ O[k] ] : [])), []); + }), Object.entries || (Object.entries = function(O) { + return reduce(keys(O), ((e, k) => concat(e, "string" == typeof k && isEnumerable(O, k) ? [ [ k, O[k] ] ] : [])), []); + }), Object.fromEntries || (Object.fromEntries = function(iter) { + const obj = {}; + for (const pair of iter) { + if (Object(pair) !== pair) throw new TypeError("iterable for fromEntries should yield objects"); + const {0: key, 1: val} = pair; + Object.defineProperty(obj, key, { + configurable: !0, + enumerable: !0, + writable: !0, + value: val + }); + } + return obj; + }); }, function(module, exports, __webpack_require__) { "use strict"; - var iconvLite = __webpack_require__(50), Iconv = __webpack_require__(437); + var iconvLite = __webpack_require__(68), Iconv = __webpack_require__(538); function convertIconvLite(str, to, from) { return "UTF-8" === to ? iconvLite.decode(str, from) : "UTF-8" === from ? iconvLite.encode(str, to) : iconvLite.encode(iconvLite.decode(str, from), to); } @@ -35940,10 +44096,10 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - for (var modules = [ __webpack_require__(422), __webpack_require__(423), __webpack_require__(424), __webpack_require__(425), __webpack_require__(426), __webpack_require__(427), __webpack_require__(428), __webpack_require__(429) ], i = 0; i < modules.length; i++) for (var enc in module = modules[i]) Object.prototype.hasOwnProperty.call(module, enc) && (exports[enc] = module[enc]); + for (var modules = [ __webpack_require__(523), __webpack_require__(524), __webpack_require__(525), __webpack_require__(526), __webpack_require__(527), __webpack_require__(528), __webpack_require__(529), __webpack_require__(530) ], i = 0; i < modules.length; i++) for (var enc in module = modules[i]) Object.prototype.hasOwnProperty.call(module, enc) && (exports[enc] = module[enc]); }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(51).Buffer; + var Buffer = __webpack_require__(14).Buffer; function InternalCodec(codecOptions, iconv) { this.enc = codecOptions.encodingName, this.bomAware = codecOptions.bomAware, "base64" === this.enc ? this.encoder = InternalEncoderBase64 : "cesu8" === this.enc && (this.enc = "utf8", this.encoder = InternalEncoderCesu8, "💩" !== Buffer.from("eda0bdedb2a9", "hex").toString() && (this.decoder = InternalDecoderCesu8, @@ -35975,7 +44131,7 @@ }, _internal: InternalCodec }, InternalCodec.prototype.encoder = InternalEncoder, InternalCodec.prototype.decoder = InternalDecoder; - var StringDecoder = __webpack_require__(121).StringDecoder; + var StringDecoder = __webpack_require__(156).StringDecoder; function InternalDecoder(options, codec) { StringDecoder.call(this, codec.enc); } @@ -36022,7 +44178,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(51).Buffer; + var Buffer = __webpack_require__(14).Buffer; function Utf16BECodec() {} function Utf16BEEncoder() {} function Utf16BEDecoder() { @@ -36084,7 +44240,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(51).Buffer; + var Buffer = __webpack_require__(14).Buffer; function Utf7Codec(codecOptions, iconv) { this.iconv = iconv; } @@ -36178,7 +44334,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(51).Buffer; + var Buffer = __webpack_require__(14).Buffer; function SBCSCodec(codecOptions, iconv) { if (!codecOptions) throw new Error("SBCS codec is called without the data."); if (!codecOptions.chars || 128 !== codecOptions.chars.length && 256 !== codecOptions.chars.length) throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)"); @@ -36800,7 +44956,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(51).Buffer; + var Buffer = __webpack_require__(14).Buffer; exports._dbcs = DBCSCodec; for (var UNASSIGNED_NODE = new Array(256), i = 0; i < 256; i++) UNASSIGNED_NODE[i] = -1; function DBCSCodec(codecOptions, iconv) { @@ -37001,7 +45157,7 @@ shiftjis: { type: "_dbcs", table: function() { - return __webpack_require__(430); + return __webpack_require__(531); }, encodeAdd: { "¥": 92, @@ -37025,7 +45181,7 @@ eucjp: { type: "_dbcs", table: function() { - return __webpack_require__(431); + return __webpack_require__(532); }, encodeAdd: { "¥": 92, @@ -37044,13 +45200,13 @@ cp936: { type: "_dbcs", table: function() { - return __webpack_require__(122); + return __webpack_require__(157); } }, gbk: { type: "_dbcs", table: function() { - return __webpack_require__(122).concat(__webpack_require__(189)); + return __webpack_require__(157).concat(__webpack_require__(244)); } }, xgbk: "gbk", @@ -37058,10 +45214,10 @@ gb18030: { type: "_dbcs", table: function() { - return __webpack_require__(122).concat(__webpack_require__(189)); + return __webpack_require__(157).concat(__webpack_require__(244)); }, gb18030: function() { - return __webpack_require__(432); + return __webpack_require__(533); }, encodeSkipVals: [ 128 ], encodeAdd: { @@ -37075,7 +45231,7 @@ cp949: { type: "_dbcs", table: function() { - return __webpack_require__(433); + return __webpack_require__(534); } }, cseuckr: "cp949", @@ -37092,14 +45248,14 @@ cp950: { type: "_dbcs", table: function() { - return __webpack_require__(190); + return __webpack_require__(245); } }, big5: "big5hkscs", big5hkscs: { type: "_dbcs", table: function() { - return __webpack_require__(190).concat(__webpack_require__(434)); + return __webpack_require__(245).concat(__webpack_require__(535)); }, encodeSkipVals: [ 41676 ] }, @@ -37122,7 +45278,7 @@ module.exports = [ [ "8740", "䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻" ], [ "8767", "綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬" ], [ "87a1", "𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋" ], [ "8840", "㇀", 4, "𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ" ], [ "88a1", "ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛" ], [ "8940", "𪎩𡅅" ], [ "8943", "攊" ], [ "8946", "丽滝鵎釟" ], [ "894c", "𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮" ], [ "89a1", "琑糼緍楆竉刧" ], [ "89ab", "醌碸酞肼" ], [ "89b0", "贋胶𠧧" ], [ "89b5", "肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁" ], [ "89c1", "溚舾甙" ], [ "89c5", "䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅" ], [ "8a40", "𧶄唥" ], [ "8a43", "𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓" ], [ "8a64", "𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕" ], [ "8a76", "䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯" ], [ "8aa1", "𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱" ], [ "8aac", "䠋𠆩㿺塳𢶍" ], [ "8ab2", "𤗈𠓼𦂗𠽌𠶖啹䂻䎺" ], [ "8abb", "䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃" ], [ "8ac9", "𪘁𠸉𢫏𢳉" ], [ "8ace", "𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻" ], [ "8adf", "𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌" ], [ "8af6", "𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭" ], [ "8b40", "𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹" ], [ "8b55", "𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑" ], [ "8ba1", "𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁" ], [ "8bde", "𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢" ], [ "8c40", "倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋" ], [ "8ca1", "𣏹椙橃𣱣泿" ], [ "8ca7", "爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚" ], [ "8cc9", "顨杫䉶圽" ], [ "8cce", "藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶" ], [ "8ce6", "峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻" ], [ "8d40", "𠮟" ], [ "8d42", "𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱" ], [ "8da1", "㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘" ], [ "8e40", "𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎" ], [ "8ea1", "繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛" ], [ "8f40", "蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖" ], [ "8fa1", "𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起" ], [ "9040", "趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛" ], [ "90a1", "𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜" ], [ "9140", "𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈" ], [ "91a1", "鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨" ], [ "9240", "𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘" ], [ "92a1", "働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃" ], [ "9340", "媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍" ], [ "93a1", "摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋" ], [ "9440", "銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻" ], [ "94a1", "㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡" ], [ "9540", "𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂" ], [ "95a1", "衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰" ], [ "9640", "桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸" ], [ "96a1", "𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉" ], [ "9740", "愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫" ], [ "97a1", "𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎" ], [ "9840", "𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦" ], [ "98a1", "咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃" ], [ "9940", "䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚" ], [ "99a1", "䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿" ], [ "9a40", "鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺" ], [ "9aa1", "黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪" ], [ "9b40", "𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌" ], [ "9b62", "𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎" ], [ "9ba1", "椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊" ], [ "9c40", "嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶" ], [ "9ca1", "㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏" ], [ "9d40", "𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁" ], [ "9da1", "辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢" ], [ "9e40", "𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺" ], [ "9ea1", "鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭" ], [ "9ead", "𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹" ], [ "9ec5", "㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲" ], [ "9ef5", "噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼" ], [ "9f40", "籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱" ], [ "9f4f", "凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰" ], [ "9fa1", "椬叚鰊鴂䰻陁榀傦畆𡝭駚剳" ], [ "9fae", "酙隁酜" ], [ "9fb2", "酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽" ], [ "9fc1", "𤤙盖鮝个𠳔莾衂" ], [ "9fc9", "届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳" ], [ "9fdb", "歒酼龥鮗頮颴骺麨麄煺笔" ], [ "9fe7", "毺蠘罸" ], [ "9feb", "嘠𪙊蹷齓" ], [ "9ff0", "跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇" ], [ "a040", "𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷" ], [ "a055", "𡠻𦸅" ], [ "a058", "詾𢔛" ], [ "a05b", "惽癧髗鵄鍮鮏蟵" ], [ "a063", "蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽" ], [ "a073", "坟慯抦戹拎㩜懢厪𣏵捤栂㗒" ], [ "a0a1", "嵗𨯂迚𨸹" ], [ "a0a6", "僙𡵆礆匲阸𠼻䁥" ], [ "a0ae", "矾" ], [ "a0b0", "糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦" ], [ "a0d4", "覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷" ], [ "a0e2", "罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫" ], [ "a3c0", "␀", 31, "␡" ], [ "c6a1", "①", 9, "⑴", 9, "ⅰ", 9, "丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁ", 23 ], [ "c740", "す", 58, "ァアィイ" ], [ "c7a1", "ゥ", 81, "А", 5, "ЁЖ", 4 ], [ "c840", "Л", 26, "ёж", 25, "⇧↸↹㇏𠃌乚𠂊刂䒑" ], [ "c8a1", "龰冈龱𧘇" ], [ "c8cd", "¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣" ], [ "c8f5", "ʃɐɛɔɵœøŋʊɪ" ], [ "f9fe", "■" ], [ "fa40", "𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸" ], [ "faa1", "鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍" ], [ "fb40", "𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙" ], [ "fba1", "𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂" ], [ "fc40", "廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷" ], [ "fca1", "𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝" ], [ "fd40", "𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀" ], [ "fda1", "𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎" ], [ "fe40", "鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌" ], [ "fea1", "𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔" ] ]; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(8).Buffer, Transform = __webpack_require__(5).Transform; + var Buffer = __webpack_require__(10).Buffer, Transform = __webpack_require__(3).Transform; function IconvLiteEncoderStream(conv, options) { this.conv = conv, (options = options || {}).decodeStrings = !1, Transform.call(this, options); } @@ -37191,7 +45347,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(8).Buffer; + var Buffer = __webpack_require__(10).Buffer; module.exports = function(iconv) { var original = void 0; iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array), @@ -37214,7 +45370,7 @@ Buffer.isNativeEncoding = function(enc) { return enc && nodeNativeEncodings[enc.toLowerCase()]; }; - var SlowBuffer = __webpack_require__(8).SlowBuffer; + var SlowBuffer = __webpack_require__(10).SlowBuffer; if (original.SlowBufferToString = SlowBuffer.prototype.toString, SlowBuffer.prototype.toString = function(encoding, start, end) { return encoding = String(encoding || "utf8").toLowerCase(), Buffer.isNativeEncoding(encoding) ? original.SlowBufferToString.call(this, encoding, start, end) : (void 0 === start && (start = 0), void 0 === end && (end = this.length), iconv.decode(this.slice(start, end), encoding)); @@ -37253,7 +45409,7 @@ return buf.length < length && (length = buf.length), buf.copy(this, offset, 0, length), length; }, iconv.supportsStreams) { - var Readable = __webpack_require__(5).Readable; + var Readable = __webpack_require__(3).Readable; original.ReadableSetEncoding = Readable.prototype.setEncoding, Readable.prototype.setEncoding = function(enc, options) { this._readableState.decoder = iconv.getDecoder(enc, options), this._readableState.encoding = enc; }, Readable.prototype.collect = iconv._collect; @@ -37263,12 +45419,12 @@ if (iconv.supportsNodeEncodingsExtension) { if (!original) throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called."); delete Buffer.isNativeEncoding; - var SlowBuffer = __webpack_require__(8).SlowBuffer; + var SlowBuffer = __webpack_require__(10).SlowBuffer; if (SlowBuffer.prototype.toString = original.SlowBufferToString, SlowBuffer.prototype.write = original.SlowBufferWrite, Buffer.isEncoding = original.BufferIsEncoding, Buffer.byteLength = original.BufferByteLength, Buffer.prototype.toString = original.BufferToString, Buffer.prototype.write = original.BufferWrite, iconv.supportsStreams) { - var Readable = __webpack_require__(5).Readable; + var Readable = __webpack_require__(3).Readable; Readable.prototype.setEncoding = original.ReadableSetEncoding, delete Readable.prototype.collect; } original = void 0; @@ -37279,7 +45435,7 @@ "use strict"; var Iconv; try { - Iconv = __webpack_require__(438)("iconv").Iconv; + Iconv = __webpack_require__(539)("iconv").Iconv; } catch (E) {} module.exports = Iconv; }, function(module, exports) { @@ -37290,10 +45446,10 @@ webpackEmptyContext.keys = function() { return []; }, webpackEmptyContext.resolve = webpackEmptyContext, module.exports = webpackEmptyContext, - webpackEmptyContext.id = 438; + webpackEmptyContext.id = 539; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(6)("connect:dispatcher"), EventEmitter = __webpack_require__(4).EventEmitter, finalhandler = __webpack_require__(443), http = __webpack_require__(12), merge = __webpack_require__(52), parseUrl = __webpack_require__(37); + var debug = __webpack_require__(8)("connect:dispatcher"), EventEmitter = __webpack_require__(5).EventEmitter, finalhandler = __webpack_require__(544), http = __webpack_require__(11), merge = __webpack_require__(60), parseUrl = __webpack_require__(46); module.exports = function() { function app(req, res, next) { app.handle(req, res, next); @@ -37368,7 +45524,7 @@ return !r && "undefined" != typeof process && "env" in process && (r = process.env.DEBUG), r; } - (exports = module.exports = __webpack_require__(191)).log = function() { + (exports = module.exports = __webpack_require__(246)).log = function() { return "object" == typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments); }, exports.formatArgs = function(args) { var useColors = this.useColors; @@ -37465,8 +45621,8 @@ throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); }; }, function(module, exports, __webpack_require__) { - var tty = __webpack_require__(78), util = __webpack_require__(0); - (exports = module.exports = __webpack_require__(191)).init = function(debug) { + var tty = __webpack_require__(105), util = __webpack_require__(0); + (exports = module.exports = __webpack_require__(246)).init = function(debug) { debug.inspectOpts = {}; for (var keys = Object.keys(exports.inspectOpts), i = 0; i < keys.length; i++) debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; }, exports.log = function() { @@ -37507,7 +45663,7 @@ case "PIPE": case "TCP": - (stream = new (__webpack_require__(45).Socket)({ + (stream = new (__webpack_require__(42).Socket)({ fd: fd, readable: !1, writable: !0 @@ -37531,7 +45687,7 @@ }, exports.enable(load()); }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(6)("finalhandler"), encodeUrl = __webpack_require__(64), escapeHtml = __webpack_require__(65), onFinished = __webpack_require__(66), parseUrl = __webpack_require__(37), statuses = __webpack_require__(445), unpipe = __webpack_require__(123), DOUBLE_SPACE_REGEXP = /\x20{2}/g, NEWLINE_REGEXP = /\n/g, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var debug = __webpack_require__(8)("finalhandler"), encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), onFinished = __webpack_require__(85), parseUrl = __webpack_require__(46), statuses = __webpack_require__(546), unpipe = __webpack_require__(158), DOUBLE_SPACE_REGEXP = /\x20{2}/g, NEWLINE_REGEXP = /\n/g, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }, isFinished = onFinished.isFinished; function headersSent(res) { @@ -37617,7 +45773,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var codes = __webpack_require__(446); + var codes = __webpack_require__(547); function status(code) { if ("number" == typeof code) { if (!status[code]) throw new Error("invalid status code: " + code); @@ -37754,7 +45910,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(67), contentType = __webpack_require__(79), createError = __webpack_require__(68), debug = __webpack_require__(6)("body-parser:json"), read = __webpack_require__(82), typeis = __webpack_require__(69); + var bytes = __webpack_require__(86), contentType = __webpack_require__(107), createError = __webpack_require__(87), debug = __webpack_require__(8)("body-parser:json"), read = __webpack_require__(110), typeis = __webpack_require__(88); module.exports = function(options) { var opts = options || {}, limit = "number" != typeof opts.limit ? bytes.parse(opts.limit || "100kb") : opts.limit, inflate = !1 !== opts.inflate, reviver = opts.reviver, strict = !1 !== opts.strict, type = opts.type || "application/json", verify = opts.verify || !1; if (!1 !== verify && "function" != typeof verify) throw new TypeError("option verify must be function"); @@ -37913,7 +46069,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(67), createError = __webpack_require__(68), iconv = __webpack_require__(50), unpipe = __webpack_require__(123); + var bytes = __webpack_require__(86), createError = __webpack_require__(87), iconv = __webpack_require__(68), unpipe = __webpack_require__(158); module.exports = function(stream, options, callback) { var done = callback, opts = options || {}; if (!0 !== options && "string" != typeof options || (opts = { @@ -38051,7 +46207,7 @@ return obj.parameters = params, obj; }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(456); + module.exports = __webpack_require__(557); }, function(module) { module.exports = { "application/1d-interleaved-parityfec": { @@ -45887,7 +54043,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(67), debug = __webpack_require__(6)("body-parser:raw"), read = __webpack_require__(82), typeis = __webpack_require__(69); + var bytes = __webpack_require__(86), debug = __webpack_require__(8)("body-parser:raw"), read = __webpack_require__(110), typeis = __webpack_require__(88); module.exports = function(options) { var opts = options || {}, inflate = !1 !== opts.inflate, limit = "number" != typeof opts.limit ? bytes.parse(opts.limit || "100kb") : opts.limit, type = opts.type || "application/octet-stream", verify = opts.verify || !1; if (!1 !== verify && "function" != typeof verify) throw new TypeError("option verify must be function"); @@ -45911,7 +54067,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(67), contentType = __webpack_require__(79), debug = __webpack_require__(6)("body-parser:text"), read = __webpack_require__(82), typeis = __webpack_require__(69); + var bytes = __webpack_require__(86), contentType = __webpack_require__(107), debug = __webpack_require__(8)("body-parser:text"), read = __webpack_require__(110), typeis = __webpack_require__(88); module.exports = function(options) { var opts = options || {}, defaultCharset = opts.defaultCharset || "utf-8", inflate = !1 !== opts.inflate, limit = "number" != typeof opts.limit ? bytes.parse(opts.limit || "100kb") : opts.limit, type = opts.type || "text/plain", verify = opts.verify || !1; if (!1 !== verify && "function" != typeof verify) throw new TypeError("option verify must be function"); @@ -45946,7 +54102,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(67), contentType = __webpack_require__(79), createError = __webpack_require__(68), debug = __webpack_require__(6)("body-parser:urlencoded"), deprecate = __webpack_require__(36)("body-parser"), read = __webpack_require__(82), typeis = __webpack_require__(69); + var bytes = __webpack_require__(86), contentType = __webpack_require__(107), createError = __webpack_require__(87), debug = __webpack_require__(8)("body-parser:urlencoded"), deprecate = __webpack_require__(47)("body-parser"), read = __webpack_require__(110), typeis = __webpack_require__(88); module.exports = function(options) { var opts = options || {}; void 0 === opts.extended && deprecate("undefined extended: provide extended option"); @@ -46025,17 +54181,17 @@ if (void 0 !== mod) return mod.parse; switch (name) { case "qs": - mod = __webpack_require__(126); + mod = __webpack_require__(160); break; case "querystring": - mod = __webpack_require__(20); + mod = __webpack_require__(24); } return parsers[name] = mod, mod.parse; } }, function(module, exports, __webpack_require__) { "use strict"; - var utils = __webpack_require__(194), formats = __webpack_require__(195), has = Object.prototype.hasOwnProperty, arrayPrefixGenerators = { + var utils = __webpack_require__(248), formats = __webpack_require__(249), has = Object.prototype.hasOwnProperty, arrayPrefixGenerators = { brackets: function(prefix) { return prefix + "[]"; }, @@ -46130,7 +54286,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var utils = __webpack_require__(194), has = Object.prototype.hasOwnProperty, defaults = { + var utils = __webpack_require__(248), has = Object.prototype.hasOwnProperty, defaults = { allowDots: !1, allowPrototypes: !1, arrayLimit: 20, @@ -46221,7 +54377,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(6)("router:route"), flatten = __webpack_require__(196), Layer = __webpack_require__(197), methods = __webpack_require__(70), slice = Array.prototype.slice; + var debug = __webpack_require__(8)("router:route"), flatten = __webpack_require__(250), Layer = __webpack_require__(251), methods = __webpack_require__(61), slice = Array.prototype.slice; function Route(path) { debug("new %o", path), this.path = path, this.stack = [], this.methods = {}; } @@ -46280,7 +54436,7 @@ return obj; }); }, function(module, exports, __webpack_require__) { - __webpack_require__(3); + __webpack_require__(4); var fs = __webpack_require__(2); function Mime() { this.types = Object.create(null), this.extensions = Object.create(null); @@ -46306,7 +54462,7 @@ return this.extensions[type]; }; var mime = new Mime; - mime.define(__webpack_require__(465)), mime.default_type = mime.lookup("bin"), mime.Mime = Mime, + mime.define(__webpack_require__(566)), mime.default_type = mime.lookup("bin"), mime.Mime = Mime, mime.charsets = { lookup: function(mimeType, fallback) { return /^text\/|^application\/(javascript|json)/.test(mimeType) ? "UTF-8" : fallback; @@ -47160,8 +55316,8 @@ "x-conference/x-cooltalk": [ "ice" ] }; }, function(module, exports, __webpack_require__) { - var DHT = __webpack_require__(467), Tracker = __webpack_require__(482); - __webpack_require__(4), module.exports = function(sources, swarm, options) { + var DHT = __webpack_require__(568), Tracker = __webpack_require__(583); + __webpack_require__(5), module.exports = function(sources, swarm, options) { var self = this, uniq = {}; self.options = options, (sources = sources.map((function(src) { if ("string" == typeof src) return src.match("^dht:") ? new DHT(src.split(":")[1], options) : src.match("^tracker:") ? new Tracker(src.slice("tracker:".length), {}, swarm.infoHash) : void 0; @@ -47214,7 +55370,7 @@ })), swarm.peerSearch = self; }; }, function(module, exports, __webpack_require__) { - var bittorrentDHT = __webpack_require__(468), EventEmitter = __webpack_require__(4).EventEmitter; + var bittorrentDHT = __webpack_require__(569), EventEmitter = __webpack_require__(5).EventEmitter; function DHT(infoHash) { var self = this; EventEmitter.call(this); @@ -47233,10 +55389,10 @@ } DHT.prototype.__proto__ = EventEmitter.prototype, module.exports = DHT; }, function(module, exports, __webpack_require__) { - var Client = __webpack_require__(200), Server = __webpack_require__(481); + var Client = __webpack_require__(253), Server = __webpack_require__(582); module.exports = Client, module.exports.Client = Client, module.exports.Server = Server; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(71).Buffer; + var Buffer = __webpack_require__(90).Buffer; function encode(data, buffer, offset) { var buffers = [], result = null; return encode._encode(buffers, data), result = Buffer.concat(buffers), encode.bytes = result.length, @@ -47338,7 +55494,7 @@ }, module.exports = decode; }, function(module, exports, __webpack_require__) { "use strict"; - "undefined" == typeof process || "renderer" === process.type || !0 === process.browser || process.__nwjs ? module.exports = __webpack_require__(472) : module.exports = __webpack_require__(473); + "undefined" == typeof process || "renderer" === process.type || !0 === process.browser || process.__nwjs ? module.exports = __webpack_require__(573) : module.exports = __webpack_require__(574); }, function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { @@ -47379,7 +55535,7 @@ return localStorage; } catch (error) {} })(), exports.colors = [ "#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33" ], - module.exports = __webpack_require__(201)(exports), module.exports.formatters.j = function(v) { + module.exports = __webpack_require__(254)(exports), module.exports.formatters.j = function(v) { try { return JSON.stringify(v); } catch (error) { @@ -47388,7 +55544,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var tty = __webpack_require__(78), util = __webpack_require__(0); + var tty = __webpack_require__(105), util = __webpack_require__(0); exports.init = function(debug) { debug.inspectOpts = {}; for (var keys = Object.keys(exports.inspectOpts), i = 0; i < keys.length; i++) debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; @@ -47408,7 +55564,7 @@ return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); }, exports.colors = [ 6, 2, 3, 4, 5, 1 ]; try { - var supportsColor = __webpack_require__(203); + var supportsColor = __webpack_require__(256); supportsColor && (supportsColor.stderr || supportsColor).level >= 2 && (exports.colors = [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221 ]); } catch (error) {} exports.inspectOpts = Object.keys(process.env).filter((function(key) { @@ -47419,7 +55575,7 @@ })), val = process.env[key]; return val = !!/^(yes|on|true|enabled)$/i.test(val) || !/^(no|off|false|disabled)$/i.test(val) && ("null" === val ? null : Number(val)), obj[prop] = val, obj; - }), {}), module.exports = __webpack_require__(201)(exports); + }), {}), module.exports = __webpack_require__(254)(exports); var formatters = module.exports.formatters; formatters.o = function(v) { return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts).replace(/\s*\n\s*/g, " "); @@ -47435,7 +55591,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bufferEquals = __webpack_require__(84), randomBytes = __webpack_require__(85), EventEmitter = __webpack_require__(4).EventEmitter, inherits = __webpack_require__(11); + var bufferEquals = __webpack_require__(112), randomBytes = __webpack_require__(113), EventEmitter = __webpack_require__(5).EventEmitter, inherits = __webpack_require__(7); function KBucket(options) { if (EventEmitter.call(this), options = options || {}, this.localNodeId = options.localNodeId || randomBytes(20), !Buffer.isBuffer(this.localNodeId)) throw new TypeError("localNodeId is not a Buffer"); @@ -47533,7 +55689,7 @@ node.contacts.push(selection), this.emit("updated", incumbent, selection)); }; }, function(module, exports, __webpack_require__) { - var socket = __webpack_require__(477), KBucket = __webpack_require__(479), equals = __webpack_require__(84), events = __webpack_require__(4), randombytes = __webpack_require__(85), util = __webpack_require__(0), Buffer = __webpack_require__(71).Buffer, BOOTSTRAP_NODES = [ { + var socket = __webpack_require__(578), KBucket = __webpack_require__(580), equals = __webpack_require__(112), events = __webpack_require__(5), randombytes = __webpack_require__(113), util = __webpack_require__(0), Buffer = __webpack_require__(90).Buffer, BOOTSTRAP_NODES = [ { host: "router.bittorrent.com", port: 6881 }, { @@ -47710,7 +55866,7 @@ this.socket.on(evt, kick), kick(); }; }, function(module, exports, __webpack_require__) { - var dgram = __webpack_require__(53), bencode = __webpack_require__(129), isIP = __webpack_require__(45).isIP, dns = __webpack_require__(478), util = __webpack_require__(0), events = __webpack_require__(4), Buffer = __webpack_require__(71).Buffer, equals = __webpack_require__(84), ETIMEDOUT = new Error("Query timed out"); + var dgram = __webpack_require__(69), bencode = __webpack_require__(164), isIP = __webpack_require__(42).isIP, dns = __webpack_require__(579), util = __webpack_require__(0), events = __webpack_require__(5), Buffer = __webpack_require__(90).Buffer, equals = __webpack_require__(112), ETIMEDOUT = new Error("Query timed out"); ETIMEDOUT.code = "ETIMEDOUT"; var EUNEXPECTEDNODE = new Error("Unexpected node id"); function RPC(opts) { @@ -47825,7 +55981,7 @@ module.exports = require("dns"); }, function(module, exports, __webpack_require__) { "use strict"; - var randomBytes = __webpack_require__(85), EventEmitter = __webpack_require__(4).EventEmitter, inherits = __webpack_require__(11); + var randomBytes = __webpack_require__(113), EventEmitter = __webpack_require__(5).EventEmitter, inherits = __webpack_require__(7); function arrayEquals(array1, array2) { if (array1 === array2) return !0; if (array1.length !== array2.length) return !1; @@ -47933,7 +56089,7 @@ node.contacts.push(selection), this.emit("updated", incumbent, selection)); }; }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(4), inherits = __webpack_require__(11); + var events = __webpack_require__(5), inherits = __webpack_require__(7); function LRU(opts) { if (!(this instanceof LRU)) return new LRU(opts); "number" == typeof opts && (opts = { @@ -47999,9 +56155,9 @@ } }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(200); + module.exports = __webpack_require__(253); }, function(module, exports, __webpack_require__) { - var trackerCli = __webpack_require__(483), EventEmitter = __webpack_require__(4).EventEmitter; + var trackerCli = __webpack_require__(584), EventEmitter = __webpack_require__(5).EventEmitter; function Tracker(url, opts, infoHash) { var self = this; EventEmitter.call(this); @@ -48019,11 +56175,11 @@ } Tracker.prototype.__proto__ = EventEmitter.prototype, module.exports = Tracker; }, function(module, exports, __webpack_require__) { - var Client = __webpack_require__(484), Server = __webpack_require__(510); + var Client = __webpack_require__(585), Server = __webpack_require__(611); module.exports = Client, module.exports.Client = Client, module.exports.Server = Server; }, function(module, exports, __webpack_require__) { module.exports = Client; - var EventEmitter = __webpack_require__(4).EventEmitter, debug = __webpack_require__(6)("bittorrent-tracker"), inherits = __webpack_require__(11), once = __webpack_require__(25), parallel = __webpack_require__(485), uniq = __webpack_require__(86), url = __webpack_require__(7), common = __webpack_require__(38), HTTPTracker = __webpack_require__(488), UDPTracker = __webpack_require__(494), WebSocketTracker = __webpack_require__(496); + var EventEmitter = __webpack_require__(5).EventEmitter, debug = __webpack_require__(8)("bittorrent-tracker"), inherits = __webpack_require__(7), once = __webpack_require__(34), parallel = __webpack_require__(586), uniq = __webpack_require__(114), url = __webpack_require__(6), common = __webpack_require__(50), HTTPTracker = __webpack_require__(589), UDPTracker = __webpack_require__(595), WebSocketTracker = __webpack_require__(597); function Client(peerId, port, torrent, opts) { var self = this; if (!(self instanceof Client)) return new Client(peerId, port, torrent, opts); @@ -48139,7 +56295,7 @@ }; var hasOwnProperty = Object.prototype.hasOwnProperty; }, function(module, exports, __webpack_require__) { - var querystring = __webpack_require__(20); + var querystring = __webpack_require__(24); function toUInt32(n) { var buf = new Buffer(4); return buf.writeUInt32BE(n, 0), buf; @@ -48180,7 +56336,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = HTTPTracker; - var bencode = __webpack_require__(204), compact2string = __webpack_require__(205), debug = __webpack_require__(6)("bittorrent-tracker:http-tracker"), get = __webpack_require__(492), inherits = __webpack_require__(11), common = __webpack_require__(38), Tracker = __webpack_require__(132), HTTP_SCRAPE_SUPPORT = /\/(announce)[^\/]*$/; + var bencode = __webpack_require__(257), compact2string = __webpack_require__(258), debug = __webpack_require__(8)("bittorrent-tracker:http-tracker"), get = __webpack_require__(593), inherits = __webpack_require__(7), common = __webpack_require__(50), Tracker = __webpack_require__(167), HTTP_SCRAPE_SUPPORT = /\/(announce)[^\/]*$/; function HTTPTracker(client, announceUrl, opts) { var m; Tracker.call(this, client, announceUrl), debug("new http tracker %s", announceUrl), @@ -48319,7 +56475,7 @@ buffers.push(buff_e); }, module.exports = encode; }, function(module, exports, __webpack_require__) { - var Dict = __webpack_require__(491); + var Dict = __webpack_require__(592); function decode(data, encoding) { return decode.position = 0, decode.encoding = encoding || null, decode.data = Buffer.isBuffer(data) ? data : new Buffer(data), decode.next(); @@ -48373,7 +56529,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = simpleGet; - var concat = __webpack_require__(206), http = __webpack_require__(12), https = __webpack_require__(19), once = __webpack_require__(25), querystring = __webpack_require__(20), decompressResponse = __webpack_require__(207), url = __webpack_require__(7); + var concat = __webpack_require__(259), http = __webpack_require__(11), https = __webpack_require__(21), once = __webpack_require__(34), querystring = __webpack_require__(24), decompressResponse = __webpack_require__(260), url = __webpack_require__(6); function simpleGet(opts, cb) { if (opts = "string" == typeof opts ? { url: opts @@ -48438,7 +56594,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = UDPTracker; - var BN = __webpack_require__(495), compact2string = __webpack_require__(205), debug = __webpack_require__(6)("bittorrent-tracker:udp-tracker"), dgram = __webpack_require__(53), hat = __webpack_require__(72), inherits = __webpack_require__(11), url = __webpack_require__(7), common = __webpack_require__(38), Tracker = __webpack_require__(132); + var BN = __webpack_require__(596), compact2string = __webpack_require__(258), debug = __webpack_require__(8)("bittorrent-tracker:udp-tracker"), dgram = __webpack_require__(69), hat = __webpack_require__(91), inherits = __webpack_require__(7), url = __webpack_require__(6), common = __webpack_require__(50), Tracker = __webpack_require__(167); function UDPTracker(client, announceUrl, opts) { Tracker.call(this, client, announceUrl), debug("new udp tracker %s", announceUrl), this.cleanupFns = []; @@ -48568,7 +56724,7 @@ var Buffer; "object" == typeof module ? module.exports = BN : exports.BN = BN, BN.BN = BN, BN.wordSize = 26; try { - Buffer = __webpack_require__(8).Buffer; + Buffer = __webpack_require__(10).Buffer; } catch (e) {} function parseHex(str, start, end) { for (var r = 0, len = Math.min(str.length, end), i = start; i < len; i++) { @@ -49607,10 +57763,10 @@ return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this); }; })(module, this); - }).call(this, __webpack_require__(54)(module)); + }).call(this, __webpack_require__(62)(module)); }, function(module, exports, __webpack_require__) { module.exports = WebSocketTracker; - var debug = __webpack_require__(6)("bittorrent-tracker:websocket-tracker"), hat = __webpack_require__(72), inherits = __webpack_require__(11), Peer = __webpack_require__(497), Socket = __webpack_require__(499), common = __webpack_require__(38), Tracker = __webpack_require__(132), socketPool = {}; + var debug = __webpack_require__(8)("bittorrent-tracker:websocket-tracker"), hat = __webpack_require__(91), inherits = __webpack_require__(7), Peer = __webpack_require__(598), Socket = __webpack_require__(600), common = __webpack_require__(50), Tracker = __webpack_require__(167), socketPool = {}; function WebSocketTracker(client, announceUrl, opts) { Tracker.call(this, client, announceUrl), debug("new websocket tracker %s", announceUrl), this.peers = {}, this.socket = null, this.reconnecting = !1, this._openSocket(); @@ -49742,7 +57898,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Peer; - var debug = __webpack_require__(6)("simple-peer"), getBrowserRTC = __webpack_require__(498), hat = __webpack_require__(72), inherits = __webpack_require__(11), isTypedArray = __webpack_require__(208), once = __webpack_require__(25), stream = __webpack_require__(5); + var debug = __webpack_require__(8)("simple-peer"), getBrowserRTC = __webpack_require__(599), hat = __webpack_require__(91), inherits = __webpack_require__(7), isTypedArray = __webpack_require__(168), once = __webpack_require__(34), stream = __webpack_require__(3); function Peer(opts) { var self = this; if (!(self instanceof Peer)) return new Peer(opts); @@ -49996,7 +58152,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Socket; - var debug = __webpack_require__(6)("simple-websocket"), inherits = __webpack_require__(11), isTypedArray = __webpack_require__(208), stream = __webpack_require__(5), ws = __webpack_require__(209), WebSocket = "undefined" != typeof window ? window.WebSocket : ws; + var debug = __webpack_require__(8)("simple-websocket"), inherits = __webpack_require__(7), isTypedArray = __webpack_require__(168), stream = __webpack_require__(3), ws = __webpack_require__(261), WebSocket = "undefined" != typeof window ? window.WebSocket : ws; function Socket(url, opts) { var self = this; if (!(self instanceof Socket)) return new Socket(url, opts); @@ -50168,9 +58324,9 @@ "use strict"; var isValidUTF8; try { - isValidUTF8 = __webpack_require__(504); + isValidUTF8 = __webpack_require__(605); } catch (e) { - isValidUTF8 = __webpack_require__(505); + isValidUTF8 = __webpack_require__(606); } module.exports = "object" == typeof isValidUTF8 ? isValidUTF8.Validation.isValidUTF8 : isValidUTF8; }, function(module, exports) { @@ -50210,7 +58366,7 @@ this._buffer = len ? new Buffer(len) : null), this._offset = 0, this._used = 0; }, module.exports = BufferPool; }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(4), util = __webpack_require__(0); + var events = __webpack_require__(5), util = __webpack_require__(0); function Sender(socket) { if (this instanceof Sender == 0) throw new TypeError("Classes can't be function-called"); events.EventEmitter.call(this), this.socket = socket, this.continuationFrame = !1, @@ -50297,8 +58453,8 @@ this.dead || (this.state = 0, this.buffers = [], this.messageEnd = -1, this.spanLength = 0); }; }, function(module, exports, __webpack_require__) { - var util = __webpack_require__(0), events = __webpack_require__(4), http = __webpack_require__(12), crypto = __webpack_require__(21), Options = __webpack_require__(211), WebSocket = __webpack_require__(210), Extensions = __webpack_require__(216), PerMessageDeflate = __webpack_require__(87), url = (__webpack_require__(133), - __webpack_require__(7)); + var util = __webpack_require__(0), events = __webpack_require__(5), http = __webpack_require__(11), crypto = __webpack_require__(9), Options = __webpack_require__(263), WebSocket = __webpack_require__(262), Extensions = __webpack_require__(268), PerMessageDeflate = __webpack_require__(115), url = (__webpack_require__(92), + __webpack_require__(6)); function WebSocketServer(options, callback) { if (this instanceof WebSocketServer == 0) return new WebSocketServer(options, callback); if (events.EventEmitter.call(this), !(options = new Options({ @@ -50537,7 +58693,7 @@ }, module.exports = WebSocketServer; }, function(module, exports, __webpack_require__) { module.exports = Server; - var bencode = __webpack_require__(204), debug = __webpack_require__(6)("bittorrent-tracker"), dgram = __webpack_require__(53), EventEmitter = __webpack_require__(4).EventEmitter, http = __webpack_require__(12), inherits = __webpack_require__(11), series = __webpack_require__(511), string2compact = __webpack_require__(512), WebSocketServer = __webpack_require__(209).Server, common = __webpack_require__(38), Swarm = __webpack_require__(514), parseHttpRequest = __webpack_require__(516), parseUdpRequest = __webpack_require__(517), parseWebSocketRequest = __webpack_require__(519); + var bencode = __webpack_require__(257), debug = __webpack_require__(8)("bittorrent-tracker"), dgram = __webpack_require__(69), EventEmitter = __webpack_require__(5).EventEmitter, http = __webpack_require__(11), inherits = __webpack_require__(7), series = __webpack_require__(612), string2compact = __webpack_require__(613), WebSocketServer = __webpack_require__(261).Server, common = __webpack_require__(50), Swarm = __webpack_require__(615), parseHttpRequest = __webpack_require__(617), parseUdpRequest = __webpack_require__(618), parseWebSocketRequest = __webpack_require__(620); function Server(opts) { var self = this; if (!(self instanceof Server)) return new Server(opts); @@ -50854,7 +59010,7 @@ })) : done(null), isSync = !1; }; }, function(module, exports, __webpack_require__) { - const addrToIPPort = __webpack_require__(513), ipaddr = __webpack_require__(131); + const addrToIPPort = __webpack_require__(614), ipaddr = __webpack_require__(166); module.exports = addrs => ("string" == typeof addrs && (addrs = [ addrs ]), Buffer.concat(addrs.map((addr => { const s = addrToIPPort(addr); if (2 !== s.length) throw new Error("invalid address format, expecting: 10.10.10.5:128"); @@ -50876,7 +59032,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Swarm; - var debug = __webpack_require__(6)("bittorrent-tracker"), randomIterate = __webpack_require__(515); + var debug = __webpack_require__(8)("bittorrent-tracker"), randomIterate = __webpack_require__(616); function Swarm(infoHash, server) { this.peers = {}, this.complete = 0, this.incomplete = 0; } @@ -50957,7 +59113,7 @@ } return params; }; - var common = __webpack_require__(38), REMOVE_IPV4_MAPPED_IPV6_RE = /^::ffff:/; + var common = __webpack_require__(50), REMOVE_IPV4_MAPPED_IPV6_RE = /^::ffff:/; }, function(module, exports, __webpack_require__) { module.exports = function(msg, rinfo) { if (msg.length < 16) throw new Error("received packet is too short"); @@ -50988,13 +59144,13 @@ } return params; }; - var bufferEqual = __webpack_require__(518), ipLib = __webpack_require__(88), common = __webpack_require__(38); + var bufferEqual = __webpack_require__(619), ipLib = __webpack_require__(116), common = __webpack_require__(50); function fromUInt64(buf) { var high = 0 | buf.readUInt32BE(0), low = 0 | buf.readUInt32BE(4); return 131072 * high + (low >= 0 ? low : 131072 + low); } }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(8).Buffer; + var Buffer = __webpack_require__(10).Buffer; module.exports = function(a, b) { if (Buffer.isBuffer(a) && Buffer.isBuffer(b)) { if ("function" == typeof a.equals) return a.equals(b); @@ -51015,7 +59171,7 @@ return params.left = Number(params.left) || 1 / 0, params.numwant = Math.min(Number(params.offers && params.offers.length) || 0, common.MAX_ANNOUNCE_PEERS), params.compact = -1, params; }; - var common = __webpack_require__(38); + var common = __webpack_require__(50); }, function(module, exports) { module.exports = function(evs, incEv, decEv, idFn, onPositive, onZero, timeout) { var counter = {}, timeouts = {}; @@ -51032,7 +59188,7 @@ })); }; }, function(module, exports, __webpack_require__) { - var parseVideoName = __webpack_require__(218), MEDIA_FILE_EXTENTIONS = /.mkv$|.avi$|.mp4$|.wmv$|.vp8$|.mov$|.mpg$|.ts$|.m3u8$|.webm$|.flac$|.mp3$|.wav$|.wma$|.aac$|.ogg$/i; + var parseVideoName = __webpack_require__(270), MEDIA_FILE_EXTENTIONS = /.mkv$|.avi$|.mp4$|.wmv$|.vp8$|.mov$|.mpg$|.ts$|.m3u8$|.webm$|.flac$|.mp3$|.wav$|.wma$|.aac$|.ogg$/i; module.exports = function(files, seriesInfo) { if (!files || !Array.isArray(files) || !seriesInfo) return -1; var mediaFiles = files.filter((function(file) { @@ -51053,7 +59209,7 @@ return files.indexOf(selectedFile); }; }, function(module, exports, __webpack_require__) { - var hat = __webpack_require__(72), peerIds = [ "qB4600", "DE2110", "AZ5770", "TR4040" ]; + var hat = __webpack_require__(91), peerIds = [ "qB4600", "DE2110", "AZ5770", "TR4040" ]; module.exports = function() { for (var peerId = peerIds[Math.floor(Math.random() * peerIds.length)], newPeerId = "", i = 0; i < peerId.length; i++) if (isNaN(peerId[i])) newPeerId += peerId[i]; else { var nr = parseInt(peerId[i]); @@ -51064,66 +59220,10 @@ } return `-${newPeerId}-${hat(48)}`; }; -}, function(module, exports, __webpack_require__) { - const vm = __webpack_require__(524); - module.exports = function(str, regex, timeout) { - let sandbox = { - str: str, - re: regex, - result: null - }; - try { - vm.runInContext("result = !!str.match(re);", vm.createContext(sandbox), { - timeout: timeout - }); - } catch (e) { - console.log("Warning: regex " + regex + ' was detected as evil when tested against "' + str + '", ignoring this regex pattern'); - } - return sandbox.result; - }; }, function(module, exports) { module.exports = require("vm"); }, function(module, exports, __webpack_require__) { - var path = __webpack_require__(3), fs = __webpack_require__(2), _0777 = parseInt("0777", 8); - function mkdirP(p, opts, f, made) { - "function" == typeof opts ? (f = opts, opts = {}) : opts && "object" == typeof opts || (opts = { - mode: opts - }); - var mode = opts.mode, xfs = opts.fs || fs; - void 0 === mode && (mode = _0777 & ~process.umask()), made || (made = null); - var cb = f || function() {}; - p = path.resolve(p), xfs.mkdir(p, mode, (function(er) { - if (!er) return cb(null, made = made || p); - "ENOENT" === er.code ? mkdirP(path.dirname(p), opts, (function(er, made) { - er ? cb(er, made) : mkdirP(p, opts, cb, made); - })) : xfs.stat(p, (function(er2, stat) { - er2 || !stat.isDirectory() ? cb(er, made) : cb(null, made); - })); - })); - } - module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP, mkdirP.sync = function sync(p, opts, made) { - opts && "object" == typeof opts || (opts = { - mode: opts - }); - var mode = opts.mode, xfs = opts.fs || fs; - void 0 === mode && (mode = _0777 & ~process.umask()), made || (made = null), p = path.resolve(p); - try { - xfs.mkdirSync(p, mode), made = made || p; - } catch (err0) { - if ("ENOENT" === err0.code) made = sync(path.dirname(p), opts, made), sync(p, opts, made); else { - var stat; - try { - stat = xfs.statSync(p); - } catch (err1) { - throw err0; - } - if (!stat.isDirectory()) throw err0; - } - } - return made; - }; -}, function(module, exports, __webpack_require__) { - var events = __webpack_require__(4), namedQueue = __webpack_require__(219), async = __webpack_require__(30), locatorapi = __webpack_require__(527), masterplaylistsapi = __webpack_require__(528), streamplaylistsapi = __webpack_require__(533), subtitlesapi = __webpack_require__(534), segmentsapi = __webpack_require__(535), videoapi = __webpack_require__(220), thumbapi = __webpack_require__(593), HLS = module.exports, allSubs = {}, evs = new events.EventEmitter, prepareQueue = new namedQueue((function(task, cb) { + var events = __webpack_require__(5), namedQueue = __webpack_require__(271), async = __webpack_require__(38), locatorapi = __webpack_require__(626), masterplaylistsapi = __webpack_require__(627), streamplaylistsapi = __webpack_require__(632), subtitlesapi = __webpack_require__(633), segmentsapi = __webpack_require__(634), videoapi = __webpack_require__(272), thumbapi = __webpack_require__(692), HLS = module.exports, allSubs = {}, evs = new events.EventEmitter, prepareQueue = new namedQueue((function(task, cb) { (HLS.prepare || videoapi.prepare)(task, cb); }), 1 / 0), convertQueue = async.queue((function(task, cb) { task(cb); @@ -51148,7 +59248,7 @@ HLS.subsPlaylistMiddleware = subtitlesapi.subsPlaylistMiddleware, HLS.subsReceiveMiddleware = subtitlesapi.subsReceiveMiddleware, HLS.thumbMiddleware = thumbapi.thumbMiddleware; }, function(module, exports, __webpack_require__) { - var paths, path = __webpack_require__(3), fs = __webpack_require__(2), locatorapi = module.exports; + var paths, path = __webpack_require__(4), fs = __webpack_require__(2), locatorapi = module.exports; locatorapi.locateExecutable = function(name, searchIn) { var sysPaths = process.env.PATH.split(path.delimiter).map((function(dir) { return path.join(dir, name); @@ -51168,7 +59268,7 @@ paths = pathsParam; }; }, function(module, exports, __webpack_require__) { - var prepareQueue, allSubs, common = __webpack_require__(55), languageNames = __webpack_require__(529).languageNames, url = __webpack_require__(7), masterPlaylistApi = module.exports; + var prepareQueue, allSubs, common = __webpack_require__(70), languageNames = __webpack_require__(628).languageNames, url = __webpack_require__(6), masterPlaylistApi = module.exports; masterPlaylistApi.masterPlaylistMiddleware = function(req, res, next) { var query = url.parse(req.url).query; query = query ? "?" + query : "", prepareQueue.push({ @@ -51211,9 +59311,9 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - languageNames: __webpack_require__(530), - languageMap: __webpack_require__(531), - languageForCountry: __webpack_require__(532) + languageNames: __webpack_require__(629), + languageMap: __webpack_require__(630), + languageForCountry: __webpack_require__(631) }; }, function(module) { module.exports = { @@ -51846,7 +59946,7 @@ AN: [ "nld", "eng", "spa" ] }; }, function(module, exports, __webpack_require__) { - var prepareQueue, common = __webpack_require__(55), streamPlaylistApi = module.exports; + var prepareQueue, common = __webpack_require__(70), streamPlaylistApi = module.exports; streamPlaylistApi.streamPlaylistMiddleware = function(req, res, next) { var prefix = req.params.hasOwnProperty("stream") || req.params.hasOwnProperty("quality") ? req.url.split("/").pop().split(".")[0] + "/" : ""; prepareQueue.push({ @@ -51876,7 +59976,7 @@ prepareQueue = prepareQueueParam; }; }, function(module, exports, __webpack_require__) { - var prepareQueue, allSubs, evs, common = __webpack_require__(55), subtitlesApi = module.exports; + var prepareQueue, allSubs, evs, common = __webpack_require__(70), subtitlesApi = module.exports; subtitlesApi.subsPlaylistMiddleware = function(req, res, next) { prepareQueue.push({ id: req.params.from, @@ -51902,7 +60002,7 @@ prepareQueue = prepareQueueParam, allSubs = allSubsParam, evs = evsParams; }; }, function(module, exports, __webpack_require__) { - var prepareQueue, paths, convertQueue, common = __webpack_require__(55), once = __webpack_require__(25), child = __webpack_require__(22), ffmpegArgs = __webpack_require__(536), segmentApi = module.exports, headerMap = { + var prepareQueue, paths, convertQueue, common = __webpack_require__(70), once = __webpack_require__(34), child = __webpack_require__(31), ffmpegArgs = __webpack_require__(635), segmentApi = module.exports, headerMap = { audio: 'audio/mp2t; codecs="mp4a.40.5"', video: 'video/mp2t; codecs="avc1.42E01F"', other: "video/mp2t" @@ -52025,7 +60125,7 @@ } }; }, function(module, exports, __webpack_require__) { - var getForMkv = __webpack_require__(538), getForMp4 = __webpack_require__(577); + var getForMkv = __webpack_require__(637), getForMp4 = __webpack_require__(676); module.exports = { get: function(url, container, cb) { void 0 === container && (container = url.match(/\.mkv/) ? "mkv" : "mp4"), "matroska" === container && (container = "mkv"), @@ -52035,7 +60135,7 @@ getForMp4: getForMp4 }; }, function(module, exports, __webpack_require__) { - var mkv = __webpack_require__(539); + var mkv = __webpack_require__(638); function atPath() { var arg, args = Array.prototype.slice.call(arguments), data = args.shift(); if (data) { @@ -52093,17 +60193,17 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Decoder: __webpack_require__(540), - Document: __webpack_require__(221), - Schema: __webpack_require__(9), - FileSource: __webpack_require__(225), - HttpSource: __webpack_require__(226), - StreamFactorySource: __webpack_require__(576) + Decoder: __webpack_require__(639), + Document: __webpack_require__(273), + Schema: __webpack_require__(12), + FileSource: __webpack_require__(277), + HttpSource: __webpack_require__(278), + StreamFactorySource: __webpack_require__(675) }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(32)("matroska:decoder"), debugTag = __webpack_require__(32)("matroska:decoder:tag"), util = (__webpack_require__(2), - __webpack_require__(8).SlowBuffer, __webpack_require__(0)), Writable = __webpack_require__(5).Writable, Document2 = __webpack_require__(541), Source = __webpack_require__(224), FileSource = __webpack_require__(225), HttpSource = __webpack_require__(226), tools = __webpack_require__(57), schema = __webpack_require__(9); + var debug = __webpack_require__(40)("matroska:decoder"), debugTag = __webpack_require__(40)("matroska:decoder:tag"), util = (__webpack_require__(2), + __webpack_require__(10).SlowBuffer, __webpack_require__(0)), Writable = __webpack_require__(3).Writable, Document2 = __webpack_require__(640), Source = __webpack_require__(276), FileSource = __webpack_require__(277), HttpSource = __webpack_require__(278), tools = __webpack_require__(72), schema = __webpack_require__(12); function Decoder(options) { Writable.call(this, options), options = options || {}, this.options = options, this.skipTags = options.skipTags, void 0 === this.skipTags && (this.skipTags = { @@ -52340,11 +60440,11 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var async = __webpack_require__(30), util = __webpack_require__(0), Document1 = __webpack_require__(542); + var async = __webpack_require__(38), util = __webpack_require__(0), Document1 = __webpack_require__(641); function Document2() { Document1.call(this); } - __webpack_require__(9), util.inherits(Document2, Document1), module.exports = Document2, + __webpack_require__(12), util.inherits(Document2, Document1), module.exports = Document2, Document2.prototype.optimizeData = function(options, callback) { if (1 === arguments.length && "function" == typeof options && (callback = options, options = null), !this.children) return callback(); @@ -52382,8 +60482,8 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(30); - var util = __webpack_require__(0), Document = __webpack_require__(221), schema = __webpack_require__(9); + __webpack_require__(38); + var util = __webpack_require__(0), Document = __webpack_require__(273), schema = __webpack_require__(12); function Document1() { Document.call(this); } @@ -52409,7 +60509,7 @@ }); }, function(module, exports, __webpack_require__) { var Buffer, create; - Buffer = __webpack_require__(8).Buffer, create = __webpack_require__(39), module.exports = create("crc1", (function(buf, previous) { + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), module.exports = create("crc1", (function(buf, previous) { var accum, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = ~~previous, accum = 0, _i = 0, _len = buf.length; _i < _len; _i++) accum += buf[_i]; @@ -52417,7 +60517,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(8).Buffer, create = __webpack_require__(39), TABLE = [ 0, 7, 14, 9, 28, 27, 18, 21, 56, 63, 54, 49, 36, 35, 42, 45, 112, 119, 126, 121, 108, 107, 98, 101, 72, 79, 70, 65, 84, 83, 90, 93, 224, 231, 238, 233, 252, 251, 242, 245, 216, 223, 214, 209, 196, 195, 202, 205, 144, 151, 158, 153, 140, 139, 130, 133, 168, 175, 166, 161, 180, 179, 186, 189, 199, 192, 201, 206, 219, 220, 213, 210, 255, 248, 241, 246, 227, 228, 237, 234, 183, 176, 185, 190, 171, 172, 165, 162, 143, 136, 129, 134, 147, 148, 157, 154, 39, 32, 41, 46, 59, 60, 53, 50, 31, 24, 17, 22, 3, 4, 13, 10, 87, 80, 89, 94, 75, 76, 69, 66, 111, 104, 97, 102, 115, 116, 125, 122, 137, 142, 135, 128, 149, 146, 155, 156, 177, 182, 191, 184, 173, 170, 163, 164, 249, 254, 247, 240, 229, 226, 235, 236, 193, 198, 207, 200, 221, 218, 211, 212, 105, 110, 103, 96, 117, 114, 123, 124, 81, 86, 95, 88, 77, 74, 67, 68, 25, 30, 23, 16, 5, 2, 11, 12, 33, 38, 47, 40, 61, 58, 51, 52, 78, 73, 64, 71, 82, 85, 92, 91, 118, 113, 120, 127, 106, 109, 100, 99, 62, 57, 48, 55, 34, 37, 44, 43, 6, 1, 8, 15, 26, 29, 20, 19, 174, 169, 160, 167, 178, 181, 188, 187, 150, 145, 152, 159, 138, 141, 132, 131, 222, 217, 208, 215, 194, 197, 204, 203, 230, 225, 232, 239, 250, 253, 244, 243 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 7, 14, 9, 28, 27, 18, 21, 56, 63, 54, 49, 36, 35, 42, 45, 112, 119, 126, 121, 108, 107, 98, 101, 72, 79, 70, 65, 84, 83, 90, 93, 224, 231, 238, 233, 252, 251, 242, 245, 216, 223, 214, 209, 196, 195, 202, 205, 144, 151, 158, 153, 140, 139, 130, 133, 168, 175, 166, 161, 180, 179, 186, 189, 199, 192, 201, 206, 219, 220, 213, 210, 255, 248, 241, 246, 227, 228, 237, 234, 183, 176, 185, 190, 171, 172, 165, 162, 143, 136, 129, 134, 147, 148, 157, 154, 39, 32, 41, 46, 59, 60, 53, 50, 31, 24, 17, 22, 3, 4, 13, 10, 87, 80, 89, 94, 75, 76, 69, 66, 111, 104, 97, 102, 115, 116, 125, 122, 137, 142, 135, 128, 149, 146, 155, 156, 177, 182, 191, 184, 173, 170, 163, 164, 249, 254, 247, 240, 229, 226, 235, 236, 193, 198, 207, 200, 221, 218, 211, 212, 105, 110, 103, 96, 117, 114, 123, 124, 81, 86, 95, 88, 77, 74, 67, 68, 25, 30, 23, 16, 5, 2, 11, 12, 33, 38, 47, 40, 61, 58, 51, 52, 78, 73, 64, 71, 82, 85, 92, 91, 118, 113, 120, 127, 106, 109, 100, 99, 62, 57, 48, 55, 34, 37, 44, 43, 6, 1, 8, 15, 26, 29, 20, 19, 174, 169, 160, 167, 178, 181, 188, 187, 150, 145, 152, 159, 138, 141, 132, 131, 222, 217, 208, 215, 194, 197, 204, 203, 230, 225, 232, 239, 250, 253, 244, 243 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-8", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = ~~previous, _i = 0, _len = buf.length; _i < _len; _i++) byte = buf[_i], @@ -52426,7 +60526,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(8).Buffer, create = __webpack_require__(39), TABLE = [ 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("dallas-1-wire", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = ~~previous, _i = 0, _len = buf.length; _i < _len; _i++) byte = buf[_i], @@ -52435,7 +60535,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(8).Buffer, create = __webpack_require__(39), TABLE = [ 0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-16", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = ~~previous, _i = 0, _len = buf.length; _i < _len; _i++) byte = buf[_i], @@ -52444,7 +60544,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(8).Buffer, create = __webpack_require__(39), TABLE = [ 0, 4129, 8258, 12387, 16516, 20645, 24774, 28903, 33032, 37161, 41290, 45419, 49548, 53677, 57806, 61935, 4657, 528, 12915, 8786, 21173, 17044, 29431, 25302, 37689, 33560, 45947, 41818, 54205, 50076, 62463, 58334, 9314, 13379, 1056, 5121, 25830, 29895, 17572, 21637, 42346, 46411, 34088, 38153, 58862, 62927, 50604, 54669, 13907, 9842, 5649, 1584, 30423, 26358, 22165, 18100, 46939, 42874, 38681, 34616, 63455, 59390, 55197, 51132, 18628, 22757, 26758, 30887, 2112, 6241, 10242, 14371, 51660, 55789, 59790, 63919, 35144, 39273, 43274, 47403, 23285, 19156, 31415, 27286, 6769, 2640, 14899, 10770, 56317, 52188, 64447, 60318, 39801, 35672, 47931, 43802, 27814, 31879, 19684, 23749, 11298, 15363, 3168, 7233, 60846, 64911, 52716, 56781, 44330, 48395, 36200, 40265, 32407, 28342, 24277, 20212, 15891, 11826, 7761, 3696, 65439, 61374, 57309, 53244, 48923, 44858, 40793, 36728, 37256, 33193, 45514, 41451, 53516, 49453, 61774, 57711, 4224, 161, 12482, 8419, 20484, 16421, 28742, 24679, 33721, 37784, 41979, 46042, 49981, 54044, 58239, 62302, 689, 4752, 8947, 13010, 16949, 21012, 25207, 29270, 46570, 42443, 38312, 34185, 62830, 58703, 54572, 50445, 13538, 9411, 5280, 1153, 29798, 25671, 21540, 17413, 42971, 47098, 34713, 38840, 59231, 63358, 50973, 55100, 9939, 14066, 1681, 5808, 26199, 30326, 17941, 22068, 55628, 51565, 63758, 59695, 39368, 35305, 47498, 43435, 22596, 18533, 30726, 26663, 6336, 2273, 14466, 10403, 52093, 56156, 60223, 64286, 35833, 39896, 43963, 48026, 19061, 23124, 27191, 31254, 2801, 6864, 10931, 14994, 64814, 60687, 56684, 52557, 48554, 44427, 40424, 36297, 31782, 27655, 23652, 19525, 15522, 11395, 7392, 3265, 61215, 65342, 53085, 57212, 44955, 49082, 36825, 40952, 28183, 32310, 20053, 24180, 11923, 16050, 3793, 7920 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 4129, 8258, 12387, 16516, 20645, 24774, 28903, 33032, 37161, 41290, 45419, 49548, 53677, 57806, 61935, 4657, 528, 12915, 8786, 21173, 17044, 29431, 25302, 37689, 33560, 45947, 41818, 54205, 50076, 62463, 58334, 9314, 13379, 1056, 5121, 25830, 29895, 17572, 21637, 42346, 46411, 34088, 38153, 58862, 62927, 50604, 54669, 13907, 9842, 5649, 1584, 30423, 26358, 22165, 18100, 46939, 42874, 38681, 34616, 63455, 59390, 55197, 51132, 18628, 22757, 26758, 30887, 2112, 6241, 10242, 14371, 51660, 55789, 59790, 63919, 35144, 39273, 43274, 47403, 23285, 19156, 31415, 27286, 6769, 2640, 14899, 10770, 56317, 52188, 64447, 60318, 39801, 35672, 47931, 43802, 27814, 31879, 19684, 23749, 11298, 15363, 3168, 7233, 60846, 64911, 52716, 56781, 44330, 48395, 36200, 40265, 32407, 28342, 24277, 20212, 15891, 11826, 7761, 3696, 65439, 61374, 57309, 53244, 48923, 44858, 40793, 36728, 37256, 33193, 45514, 41451, 53516, 49453, 61774, 57711, 4224, 161, 12482, 8419, 20484, 16421, 28742, 24679, 33721, 37784, 41979, 46042, 49981, 54044, 58239, 62302, 689, 4752, 8947, 13010, 16949, 21012, 25207, 29270, 46570, 42443, 38312, 34185, 62830, 58703, 54572, 50445, 13538, 9411, 5280, 1153, 29798, 25671, 21540, 17413, 42971, 47098, 34713, 38840, 59231, 63358, 50973, 55100, 9939, 14066, 1681, 5808, 26199, 30326, 17941, 22068, 55628, 51565, 63758, 59695, 39368, 35305, 47498, 43435, 22596, 18533, 30726, 26663, 6336, 2273, 14466, 10403, 52093, 56156, 60223, 64286, 35833, 39896, 43963, 48026, 19061, 23124, 27191, 31254, 2801, 6864, 10931, 14994, 64814, 60687, 56684, 52557, 48554, 44427, 40424, 36297, 31782, 27655, 23652, 19525, 15522, 11395, 7392, 3265, 61215, 65342, 53085, 57212, 44955, 49082, 36825, 40952, 28183, 32310, 20053, 24180, 11923, 16050, 3793, 7920 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("ccitt", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = null != previous ? ~~previous : 65535, @@ -52453,7 +60553,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(8).Buffer, create = __webpack_require__(39), TABLE = [ 0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-16-modbus", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = null != previous ? ~~previous : 65535, @@ -52462,7 +60562,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(8).Buffer, create = __webpack_require__(39), TABLE = [ 0, 8801531, 9098509, 825846, 9692897, 1419802, 1651692, 10452759, 10584377, 2608578, 2839604, 11344079, 3303384, 11807523, 12104405, 4128302, 12930697, 4391538, 5217156, 13227903, 5679208, 13690003, 14450021, 5910942, 6606768, 14844747, 15604413, 6837830, 16197969, 7431594, 8256604, 16494759, 840169, 9084178, 8783076, 18463, 10434312, 1670131, 1434117, 9678590, 11358416, 2825259, 2590173, 10602790, 4109873, 12122826, 11821884, 3289031, 13213536, 5231515, 4409965, 12912278, 5929345, 14431610, 13675660, 5693559, 6823513, 15618722, 14863188, 6588335, 16513208, 8238147, 7417269, 16212302, 1680338, 10481449, 9664223, 1391140, 9061683, 788936, 36926, 8838341, 12067563, 4091408, 3340262, 11844381, 2868234, 11372785, 10555655, 2579964, 14478683, 5939616, 5650518, 13661357, 5180346, 13190977, 12967607, 4428364, 8219746, 16457881, 16234863, 7468436, 15633027, 6866552, 6578062, 14816117, 1405499, 9649856, 10463030, 1698765, 8819930, 55329, 803287, 9047340, 11858690, 3325945, 4072975, 12086004, 2561507, 10574104, 11387118, 2853909, 13647026, 5664841, 5958079, 14460228, 4446803, 12949160, 13176670, 5194661, 7454091, 16249200, 16476294, 8201341, 14834538, 6559633, 6852199, 15647388, 3360676, 11864927, 12161705, 4185682, 10527045, 2551230, 2782280, 11286707, 9619101, 1346150, 1577872, 10379115, 73852, 8875143, 9172337, 899466, 16124205, 7357910, 8182816, 16421083, 6680524, 14918455, 15678145, 6911546, 5736468, 13747439, 14507289, 5968354, 12873461, 4334094, 5159928, 13170435, 4167245, 12180150, 11879232, 3346363, 11301036, 2767959, 2532769, 10545498, 10360692, 1596303, 1360505, 9604738, 913813, 9157998, 8856728, 92259, 16439492, 8164415, 7343561, 16138546, 6897189, 15692510, 14936872, 6662099, 5986813, 14488838, 13733104, 5750795, 13156124, 5174247, 4352529, 12855018, 2810998, 11315341, 10498427, 2522496, 12124823, 4148844, 3397530, 11901793, 9135439, 862644, 110658, 8912057, 1606574, 10407765, 9590435, 1317464, 15706879, 6940164, 6651890, 14889737, 8145950, 16384229, 16161043, 7394792, 5123014, 13133629, 12910283, 4370992, 14535975, 5997020, 5707818, 13718737, 2504095, 10516836, 11329682, 2796649, 11916158, 3383173, 4130419, 12143240, 8893606, 129117, 876971, 9121104, 1331783, 9576124, 10389322, 1625009, 14908182, 6633453, 6925851, 15721184, 7380471, 16175372, 16402682, 8127489, 4389423, 12891860, 13119266, 5137369, 13704398, 5722165, 6015427, 14517560 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 8801531, 9098509, 825846, 9692897, 1419802, 1651692, 10452759, 10584377, 2608578, 2839604, 11344079, 3303384, 11807523, 12104405, 4128302, 12930697, 4391538, 5217156, 13227903, 5679208, 13690003, 14450021, 5910942, 6606768, 14844747, 15604413, 6837830, 16197969, 7431594, 8256604, 16494759, 840169, 9084178, 8783076, 18463, 10434312, 1670131, 1434117, 9678590, 11358416, 2825259, 2590173, 10602790, 4109873, 12122826, 11821884, 3289031, 13213536, 5231515, 4409965, 12912278, 5929345, 14431610, 13675660, 5693559, 6823513, 15618722, 14863188, 6588335, 16513208, 8238147, 7417269, 16212302, 1680338, 10481449, 9664223, 1391140, 9061683, 788936, 36926, 8838341, 12067563, 4091408, 3340262, 11844381, 2868234, 11372785, 10555655, 2579964, 14478683, 5939616, 5650518, 13661357, 5180346, 13190977, 12967607, 4428364, 8219746, 16457881, 16234863, 7468436, 15633027, 6866552, 6578062, 14816117, 1405499, 9649856, 10463030, 1698765, 8819930, 55329, 803287, 9047340, 11858690, 3325945, 4072975, 12086004, 2561507, 10574104, 11387118, 2853909, 13647026, 5664841, 5958079, 14460228, 4446803, 12949160, 13176670, 5194661, 7454091, 16249200, 16476294, 8201341, 14834538, 6559633, 6852199, 15647388, 3360676, 11864927, 12161705, 4185682, 10527045, 2551230, 2782280, 11286707, 9619101, 1346150, 1577872, 10379115, 73852, 8875143, 9172337, 899466, 16124205, 7357910, 8182816, 16421083, 6680524, 14918455, 15678145, 6911546, 5736468, 13747439, 14507289, 5968354, 12873461, 4334094, 5159928, 13170435, 4167245, 12180150, 11879232, 3346363, 11301036, 2767959, 2532769, 10545498, 10360692, 1596303, 1360505, 9604738, 913813, 9157998, 8856728, 92259, 16439492, 8164415, 7343561, 16138546, 6897189, 15692510, 14936872, 6662099, 5986813, 14488838, 13733104, 5750795, 13156124, 5174247, 4352529, 12855018, 2810998, 11315341, 10498427, 2522496, 12124823, 4148844, 3397530, 11901793, 9135439, 862644, 110658, 8912057, 1606574, 10407765, 9590435, 1317464, 15706879, 6940164, 6651890, 14889737, 8145950, 16384229, 16161043, 7394792, 5123014, 13133629, 12910283, 4370992, 14535975, 5997020, 5707818, 13718737, 2504095, 10516836, 11329682, 2796649, 11916158, 3383173, 4130419, 12143240, 8893606, 129117, 876971, 9121104, 1331783, 9576124, 10389322, 1625009, 14908182, 6633453, 6925851, 15721184, 7380471, 16175372, 16402682, 8127489, 4389423, 12891860, 13119266, 5137369, 13704398, 5722165, 6015427, 14517560 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-24", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = null != previous ? ~~previous : 11994318, @@ -52471,7 +60571,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(8).Buffer, create = __webpack_require__(39), TABLE = [ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-32", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = 0 === previous ? 0 : -1 ^ ~~previous, @@ -52480,12 +60580,12 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(30), __webpack_require__(2), __webpack_require__(74), __webpack_require__(3); - var util = __webpack_require__(0), Segment2 = __webpack_require__(553); + __webpack_require__(38), __webpack_require__(2), __webpack_require__(63), __webpack_require__(4); + var util = __webpack_require__(0), Segment2 = __webpack_require__(652); function Segment3(doc, tagId, start, length) { Segment2.call(this, doc, tagId, start, length); } - __webpack_require__(9), util.inherits(Segment3, Segment2), module.exports = Segment3, + __webpack_require__(12), util.inherits(Segment3, Segment2), module.exports = Segment3, Segment3.prototype.findTagByName = function(tagName) {}; }, function(module) { module.exports = { @@ -53313,7 +61413,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var crc32 = __webpack_require__(56).crc32, fs = __webpack_require__(2), Mime = __webpack_require__(74), Path = __webpack_require__(3), util = __webpack_require__(0), Segment1 = __webpack_require__(554), schema = __webpack_require__(9), tools = __webpack_require__(57); + var crc32 = __webpack_require__(71).crc32, fs = __webpack_require__(2), Mime = __webpack_require__(63), Path = __webpack_require__(4), util = __webpack_require__(0), Segment1 = __webpack_require__(653), schema = __webpack_require__(12), tools = __webpack_require__(72); function Segment2(doc, tagId, start, length) { Segment1.call(this, doc, tagId, start, length); } @@ -53429,7 +61529,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Segment = __webpack_require__(555), schema = __webpack_require__(9); + var util = __webpack_require__(0), Segment = __webpack_require__(654), schema = __webpack_require__(12); function Segment1(doc, elementId, start, length) { Segment.call(this, doc, elementId, start, length); } @@ -53476,7 +61576,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Segment(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Segment, start, length); } @@ -53487,7 +61587,7 @@ _proto.oneChild(Segment.prototype, "Tags"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Attachments(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Attachments, start, length); } @@ -53496,7 +61596,7 @@ }, _proto.addChild(Attachments.prototype, "AttachedFile"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(46), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); function AttachedFile(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.AttachedFile, start, length); } @@ -53507,7 +61607,7 @@ _proto.addAttribute(AttachedFile.prototype, "FileUID"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Tags(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tags, start, length); } @@ -53516,7 +61616,7 @@ }, _proto.addChild(Tags.prototype, "Tag"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Tag(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tag, start, length); } @@ -53525,7 +61625,7 @@ }, _proto.oneChild(Tag.prototype, "Targets", !0), _proto.addChild(Tag.prototype, "SimpleTag"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Targets(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Targets, start, length); } @@ -53536,7 +61636,7 @@ _proto.addChild(Targets.prototype, "TagChapterUID"), _proto.addChild(Targets.prototype, "TagAttachmentUID"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function SimpleTag(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.SimpleTag, start, length); } @@ -53547,7 +61647,7 @@ _proto.addAttribute(SimpleTag.prototype, "TagString"), _proto.addAttribute(SimpleTag.prototype, "TagBinary"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function SeekHead(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.SeekHead, start, length); } @@ -53556,7 +61656,7 @@ }, _proto.addChild(SeekHead.prototype, "Seek"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(46), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Seek(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Seek, start, length); } @@ -53565,7 +61665,7 @@ }, _proto.addAttribute(Seek.prototype, "SeekID"), _proto.addAttribute(Seek.prototype, "SeekPosition"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Info(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Info, start, length); } @@ -53580,7 +61680,7 @@ _proto.addAttribute(Info.prototype, "MuxingApp"), _proto.addAttribute(Info.prototype, "WritingApp"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Tracks(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tracks, start, length); } @@ -53589,7 +61689,7 @@ }, _proto.addChild(Tracks.prototype, "TrackEntry"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function TrackEntry(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.TrackEntry, start, length); } @@ -53610,7 +61710,7 @@ _proto.addChild(TrackEntry.prototype, "TrackOperation"), _proto.addChild(TrackEntry.prototype, "ContentEncodings"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(46), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Video(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Video, start, length); } @@ -53625,7 +61725,7 @@ _proto.addAttribute(Video.prototype, "AspectRatioType"), _proto.addAttribute(Video.prototype, "ColourSpace"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(46), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Audio(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Audio, start, length); } @@ -53635,7 +61735,7 @@ _proto.addAttribute(Audio.prototype, "Channels"), _proto.addAttribute(Audio.prototype, "BitDepth"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(46), schema = __webpack_require__(9), EMPTY_BUFFER = (__webpack_require__(16), + var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), EMPTY_BUFFER = (__webpack_require__(20), new Buffer([])); function CRC_32(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.CRC_32, start, length), this.data = EMPTY_BUFFER, @@ -53646,7 +61746,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Cues(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Cues, start, length); } @@ -53655,7 +61755,7 @@ }, _proto.addChild(Cues.prototype, "CuePoint"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function CuePoint(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.CuePoint, start, length); } @@ -53664,7 +61764,7 @@ }, _proto.addAttribute(CuePoint.prototype, "CueTime"), _proto.addChild(CuePoint.prototype, "CueTrackPositions"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(46), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); function CueReference(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.CueReference, start, length); } @@ -53673,7 +61773,7 @@ }, _proto.addAttribute(CueReference.prototype, "CueRefTime"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(27), schema = __webpack_require__(9), _proto = __webpack_require__(16); + var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); function CueTrackPositions(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.CueTrackPositions, start, length); } @@ -53685,7 +61785,7 @@ _proto.addAttribute(CueTrackPositions.prototype, "CueBlockNumber"), _proto.addAttribute(CueTrackPositions.prototype, "CueCodecState"), _proto.addChild(CueTrackPositions.prototype, "CueReference"); }, function(module, exports, __webpack_require__) { - var nativeHttps = __webpack_require__(19), nativeHttp = __webpack_require__(12), url = __webpack_require__(7), _ = __webpack_require__(575), protocols = (module.exports.maxRedirects = 5, + var nativeHttps = __webpack_require__(21), nativeHttp = __webpack_require__(11), url = __webpack_require__(6), _ = __webpack_require__(674), protocols = (module.exports.maxRedirects = 5, { https: nativeHttps, http: nativeHttp @@ -54416,12 +62516,12 @@ return _; }.apply(exports, [])) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); })(); - }).call(this, __webpack_require__(54)(module)); + }).call(this, __webpack_require__(62)(module)); }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(2); - var util = __webpack_require__(0), AbstractSource = (__webpack_require__(32)("matroska:streamFactorySource"), - __webpack_require__(134)); + var util = __webpack_require__(0), AbstractSource = (__webpack_require__(40)("matroska:streamFactorySource"), + __webpack_require__(171)); function StreamFactorySource(streamFactory) { if (AbstractSource.call(this), "function" != typeof streamFactory.getStream) throw new Error("Invalid streamFactory object (getStream function)"); if (streamFactory.end && "function" != typeof streamFactory.end) throw new Error("Invalid streamFactory object (end function)"); @@ -54445,7 +62545,7 @@ return "[StreamFactorySource factory=" + this.streamFactory + "]"; }; }, function(module, exports, __webpack_require__) { - var mp4box = __webpack_require__(578), needle = __webpack_require__(227), fs = __webpack_require__(2); + var mp4box = __webpack_require__(677), needle = __webpack_require__(279), fs = __webpack_require__(2); function iterateCounts(counts, values, fn) { var idx = 0; counts.forEach((function(count, i) { @@ -57382,7 +65482,7 @@ throw new TypeError("Cannot build a querystring out of: " + obj); }; }, function(module, exports, __webpack_require__) { - var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(3).basename; + var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(4).basename; function generate_part(name, part, boundary, callback) { var return_part = "--" + boundary + "\r\n"; function append(data, filename) { @@ -57430,7 +65530,7 @@ } }; }, function(module, exports, __webpack_require__) { - var createHash = __webpack_require__(21).createHash; + var createHash = __webpack_require__(9).createHash; function md5(string) { return createHash("md5").update(string).digest("hex"); } @@ -57501,7 +65601,7 @@ }), ""); }; }, function(module, exports, __webpack_require__) { - var Transform = __webpack_require__(5).Transform; + var Transform = __webpack_require__(3).Transform; function parserFactory(name, fn) { return { fn: function() { @@ -57538,7 +65638,7 @@ })); module.exports["application/json"] = json, module.exports["text/javascript"] = json; try { - var xml = parserFactory("xml", new (__webpack_require__(135).Parser)({ + var xml = parserFactory("xml", new (__webpack_require__(172).Parser)({ explicitRoot: !0, explicitArray: !1 }).parseString); @@ -57549,7 +65649,7 @@ (function() { "use strict"; var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA, hasProp = {}.hasOwnProperty; - builder = __webpack_require__(585), defaults = __webpack_require__(136).defaults, + builder = __webpack_require__(684), defaults = __webpack_require__(173).defaults, requiresCDATA = function(entry) { return "string" == typeof entry && (entry.indexOf("&") >= 0 || entry.indexOf(">") >= 0 || entry.indexOf("<") >= 0); }, wrapCDATA = function(entry) { @@ -57586,9 +65686,9 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; - ref = __webpack_require__(40), assign = ref.assign, isFunction = ref.isFunction, - XMLDocument = __webpack_require__(586), XMLDocumentCB = __webpack_require__(587), - XMLStringWriter = __webpack_require__(137), XMLStreamWriter = __webpack_require__(588), + ref = __webpack_require__(52), assign = ref.assign, isFunction = ref.isFunction, + XMLDocument = __webpack_require__(685), XMLDocumentCB = __webpack_require__(686), + XMLStringWriter = __webpack_require__(174), XMLStreamWriter = __webpack_require__(687), module.exports.create = function(name, xmldec, doctype, options) { var doc, root; if (null == name) throw new Error("Root element needs a name"); @@ -57608,8 +65708,8 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, XMLStringWriter, XMLStringifier, isPlainObject, hasProp = {}.hasOwnProperty; - isPlainObject = __webpack_require__(40).isPlainObject, XMLNode = __webpack_require__(28), - XMLStringifier = __webpack_require__(229), XMLStringWriter = __webpack_require__(137), + isPlainObject = __webpack_require__(52).isPlainObject, XMLNode = __webpack_require__(36), + XMLStringifier = __webpack_require__(281), XMLStringWriter = __webpack_require__(174), module.exports = (function(superClass) { function XMLDocument(options) { XMLDocument.__super__.constructor.call(this, null), options || (options = {}), options.writer || (options.writer = new XMLStringWriter), @@ -57633,14 +65733,15 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, isFunction, isObject, isPlainObject, ref, hasProp = {}.hasOwnProperty; - ref = __webpack_require__(40), isObject = ref.isObject, isFunction = ref.isFunction, - isPlainObject = ref.isPlainObject, XMLElement = __webpack_require__(90), XMLCData = __webpack_require__(91), - XMLComment = __webpack_require__(92), XMLRaw = __webpack_require__(99), XMLText = __webpack_require__(100), - XMLProcessingInstruction = __webpack_require__(101), XMLDeclaration = __webpack_require__(93), - XMLDocType = __webpack_require__(94), XMLDTDAttList = __webpack_require__(95), XMLDTDEntity = __webpack_require__(96), - XMLDTDElement = __webpack_require__(97), XMLDTDNotation = __webpack_require__(98), - XMLAttribute = __webpack_require__(228), XMLStringifier = __webpack_require__(229), - XMLStringWriter = __webpack_require__(137), module.exports = (function() { + ref = __webpack_require__(52), isObject = ref.isObject, isFunction = ref.isFunction, + isPlainObject = ref.isPlainObject, XMLElement = __webpack_require__(118), XMLCData = __webpack_require__(119), + XMLComment = __webpack_require__(120), XMLRaw = __webpack_require__(127), XMLText = __webpack_require__(128), + XMLProcessingInstruction = __webpack_require__(129), XMLDeclaration = __webpack_require__(121), + XMLDocType = __webpack_require__(122), XMLDTDAttList = __webpack_require__(123), + XMLDTDEntity = __webpack_require__(124), XMLDTDElement = __webpack_require__(125), + XMLDTDNotation = __webpack_require__(126), XMLAttribute = __webpack_require__(280), + XMLStringifier = __webpack_require__(281), XMLStringWriter = __webpack_require__(174), + module.exports = (function() { function XMLDocumentCB(options, onData, onEnd) { var writerOptions; options || (options = {}), options.writer ? isPlainObject(options.writer) && (writerOptions = options.writer, @@ -57789,12 +65890,12 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, XMLWriterBase, hasProp = {}.hasOwnProperty; - XMLDeclaration = __webpack_require__(93), XMLDocType = __webpack_require__(94), - XMLCData = __webpack_require__(91), XMLComment = __webpack_require__(92), XMLElement = __webpack_require__(90), - XMLRaw = __webpack_require__(99), XMLText = __webpack_require__(100), XMLProcessingInstruction = __webpack_require__(101), - XMLDTDAttList = __webpack_require__(95), XMLDTDElement = __webpack_require__(97), - XMLDTDEntity = __webpack_require__(96), XMLDTDNotation = __webpack_require__(98), - XMLWriterBase = __webpack_require__(230), module.exports = (function(superClass) { + XMLDeclaration = __webpack_require__(121), XMLDocType = __webpack_require__(122), + XMLCData = __webpack_require__(119), XMLComment = __webpack_require__(120), XMLElement = __webpack_require__(118), + XMLRaw = __webpack_require__(127), XMLText = __webpack_require__(128), XMLProcessingInstruction = __webpack_require__(129), + XMLDTDAttList = __webpack_require__(123), XMLDTDElement = __webpack_require__(125), + XMLDTDEntity = __webpack_require__(124), XMLDTDNotation = __webpack_require__(126), + XMLWriterBase = __webpack_require__(282), module.exports = (function(superClass) { function XMLStreamWriter(stream, options) { XMLStreamWriter.__super__.constructor.call(this, options), this.stream = stream; } @@ -57955,9 +66056,9 @@ return fn.apply(me, arguments); }; }, hasProp = {}.hasOwnProperty; - sax = __webpack_require__(138), events = __webpack_require__(4), bom = __webpack_require__(590), - processors = __webpack_require__(231), setImmediate = __webpack_require__(89).setImmediate, - defaults = __webpack_require__(136).defaults, isEmpty = function(thing) { + sax = __webpack_require__(175), events = __webpack_require__(5), bom = __webpack_require__(689), + processors = __webpack_require__(283), setImmediate = __webpack_require__(117).setImmediate, + defaults = __webpack_require__(173).defaults, isEmpty = function(thing) { return "object" == typeof thing && null != thing && 0 === Object.keys(thing).length; }, processItem = function(processors, item, key) { var i, len; @@ -58100,7 +66201,7 @@ }; }).call(this); }, function(module, exports, __webpack_require__) { - var iconv, inherits = __webpack_require__(0).inherits, stream = __webpack_require__(5), regex = /(?:charset|encoding)\s*=\s*['"]? *([\w\-]+)/i; + var iconv, inherits = __webpack_require__(0).inherits, stream = __webpack_require__(3), regex = /(?:charset|encoding)\s*=\s*['"]? *([\w\-]+)/i; function StreamDecoder(charset) { if (!(this instanceof StreamDecoder)) return new StreamDecoder(charset); stream.Transform.call(this, charset), this.charset = charset, this.parsed_chunk = !1; @@ -58120,7 +66221,7 @@ this.push(res), done(); }, module.exports = function(charset) { try { - iconv || (iconv = __webpack_require__(50)); + iconv || (iconv = __webpack_require__(68)); } catch (e) {} return iconv ? new StreamDecoder(charset) : new stream.PassThrough; }; @@ -58165,7 +66266,7 @@ } }; }, function(module, exports, __webpack_require__) { - var paths, convertQueue, common = __webpack_require__(55), videoapi = __webpack_require__(220), thumbApi = module.exports; + var paths, convertQueue, common = __webpack_require__(70), videoapi = __webpack_require__(272), thumbApi = module.exports; thumbApi.thumbMiddleware = function(req, res) { videoapi.probeVideo(req.params.from, (function(err, instance) { if (err) return common.handleErr(err, res); @@ -58177,176 +66278,176 @@ }; }, function(module, exports, __webpack_require__) { var map = { - "./af": 232, - "./af.js": 232, - "./ar": 233, - "./ar-ma": 234, - "./ar-ma.js": 234, - "./ar-sa": 235, - "./ar-sa.js": 235, - "./ar-tn": 236, - "./ar-tn.js": 236, - "./ar.js": 233, - "./az": 237, - "./az.js": 237, - "./be": 238, - "./be.js": 238, - "./bg": 239, - "./bg.js": 239, - "./bn": 240, - "./bn.js": 240, - "./bo": 241, - "./bo.js": 241, - "./br": 242, - "./br.js": 242, - "./bs": 243, - "./bs.js": 243, - "./ca": 244, - "./ca.js": 244, - "./cs": 245, - "./cs.js": 245, - "./cv": 246, - "./cv.js": 246, - "./cy": 247, - "./cy.js": 247, - "./da": 248, - "./da.js": 248, - "./de": 249, - "./de-at": 250, - "./de-at.js": 250, - "./de.js": 249, - "./el": 251, - "./el.js": 251, - "./en-au": 252, - "./en-au.js": 252, - "./en-ca": 253, - "./en-ca.js": 253, - "./en-gb": 254, - "./en-gb.js": 254, - "./eo": 255, - "./eo.js": 255, - "./es": 256, - "./es.js": 256, - "./et": 257, - "./et.js": 257, - "./eu": 258, - "./eu.js": 258, - "./fa": 259, - "./fa.js": 259, - "./fi": 260, - "./fi.js": 260, - "./fo": 261, - "./fo.js": 261, - "./fr": 262, - "./fr-ca": 263, - "./fr-ca.js": 263, - "./fr.js": 262, - "./fy": 264, - "./fy.js": 264, - "./gl": 265, - "./gl.js": 265, - "./he": 266, - "./he.js": 266, - "./hi": 267, - "./hi.js": 267, - "./hr": 268, - "./hr.js": 268, - "./hu": 269, - "./hu.js": 269, - "./hy-am": 270, - "./hy-am.js": 270, - "./id": 271, - "./id.js": 271, - "./is": 272, - "./is.js": 272, - "./it": 273, - "./it.js": 273, - "./ja": 274, - "./ja.js": 274, - "./jv": 275, - "./jv.js": 275, - "./ka": 276, - "./ka.js": 276, - "./km": 277, - "./km.js": 277, - "./ko": 278, - "./ko.js": 278, - "./lb": 279, - "./lb.js": 279, - "./lt": 280, - "./lt.js": 280, - "./lv": 281, - "./lv.js": 281, - "./me": 282, - "./me.js": 282, - "./mk": 283, - "./mk.js": 283, - "./ml": 284, - "./ml.js": 284, - "./mr": 285, - "./mr.js": 285, - "./ms": 286, - "./ms-my": 287, - "./ms-my.js": 287, - "./ms.js": 286, - "./my": 288, - "./my.js": 288, - "./nb": 289, - "./nb.js": 289, - "./ne": 290, - "./ne.js": 290, - "./nl": 291, - "./nl.js": 291, - "./nn": 292, - "./nn.js": 292, - "./pl": 293, - "./pl.js": 293, - "./pt": 294, - "./pt-br": 295, - "./pt-br.js": 295, - "./pt.js": 294, - "./ro": 296, - "./ro.js": 296, - "./ru": 297, - "./ru.js": 297, - "./si": 298, - "./si.js": 298, - "./sk": 299, - "./sk.js": 299, - "./sl": 300, - "./sl.js": 300, - "./sq": 301, - "./sq.js": 301, - "./sr": 302, - "./sr-cyrl": 303, - "./sr-cyrl.js": 303, - "./sr.js": 302, - "./sv": 304, - "./sv.js": 304, - "./ta": 305, - "./ta.js": 305, - "./th": 306, - "./th.js": 306, - "./tl-ph": 307, - "./tl-ph.js": 307, - "./tr": 308, - "./tr.js": 308, - "./tzl": 309, - "./tzl.js": 309, - "./tzm": 310, - "./tzm-latn": 311, - "./tzm-latn.js": 311, - "./tzm.js": 310, - "./uk": 312, - "./uk.js": 312, - "./uz": 313, - "./uz.js": 313, - "./vi": 314, - "./vi.js": 314, - "./zh-cn": 315, - "./zh-cn.js": 315, - "./zh-tw": 316, - "./zh-tw.js": 316 + "./af": 284, + "./af.js": 284, + "./ar": 285, + "./ar-ma": 286, + "./ar-ma.js": 286, + "./ar-sa": 287, + "./ar-sa.js": 287, + "./ar-tn": 288, + "./ar-tn.js": 288, + "./ar.js": 285, + "./az": 289, + "./az.js": 289, + "./be": 290, + "./be.js": 290, + "./bg": 291, + "./bg.js": 291, + "./bn": 292, + "./bn.js": 292, + "./bo": 293, + "./bo.js": 293, + "./br": 294, + "./br.js": 294, + "./bs": 295, + "./bs.js": 295, + "./ca": 296, + "./ca.js": 296, + "./cs": 297, + "./cs.js": 297, + "./cv": 298, + "./cv.js": 298, + "./cy": 299, + "./cy.js": 299, + "./da": 300, + "./da.js": 300, + "./de": 301, + "./de-at": 302, + "./de-at.js": 302, + "./de.js": 301, + "./el": 303, + "./el.js": 303, + "./en-au": 304, + "./en-au.js": 304, + "./en-ca": 305, + "./en-ca.js": 305, + "./en-gb": 306, + "./en-gb.js": 306, + "./eo": 307, + "./eo.js": 307, + "./es": 308, + "./es.js": 308, + "./et": 309, + "./et.js": 309, + "./eu": 310, + "./eu.js": 310, + "./fa": 311, + "./fa.js": 311, + "./fi": 312, + "./fi.js": 312, + "./fo": 313, + "./fo.js": 313, + "./fr": 314, + "./fr-ca": 315, + "./fr-ca.js": 315, + "./fr.js": 314, + "./fy": 316, + "./fy.js": 316, + "./gl": 317, + "./gl.js": 317, + "./he": 318, + "./he.js": 318, + "./hi": 319, + "./hi.js": 319, + "./hr": 320, + "./hr.js": 320, + "./hu": 321, + "./hu.js": 321, + "./hy-am": 322, + "./hy-am.js": 322, + "./id": 323, + "./id.js": 323, + "./is": 324, + "./is.js": 324, + "./it": 325, + "./it.js": 325, + "./ja": 326, + "./ja.js": 326, + "./jv": 327, + "./jv.js": 327, + "./ka": 328, + "./ka.js": 328, + "./km": 329, + "./km.js": 329, + "./ko": 330, + "./ko.js": 330, + "./lb": 331, + "./lb.js": 331, + "./lt": 332, + "./lt.js": 332, + "./lv": 333, + "./lv.js": 333, + "./me": 334, + "./me.js": 334, + "./mk": 335, + "./mk.js": 335, + "./ml": 336, + "./ml.js": 336, + "./mr": 337, + "./mr.js": 337, + "./ms": 338, + "./ms-my": 339, + "./ms-my.js": 339, + "./ms.js": 338, + "./my": 340, + "./my.js": 340, + "./nb": 341, + "./nb.js": 341, + "./ne": 342, + "./ne.js": 342, + "./nl": 343, + "./nl.js": 343, + "./nn": 344, + "./nn.js": 344, + "./pl": 345, + "./pl.js": 345, + "./pt": 346, + "./pt-br": 347, + "./pt-br.js": 347, + "./pt.js": 346, + "./ro": 348, + "./ro.js": 348, + "./ru": 349, + "./ru.js": 349, + "./si": 350, + "./si.js": 350, + "./sk": 351, + "./sk.js": 351, + "./sl": 352, + "./sl.js": 352, + "./sq": 353, + "./sq.js": 353, + "./sr": 354, + "./sr-cyrl": 355, + "./sr-cyrl.js": 355, + "./sr.js": 354, + "./sv": 356, + "./sv.js": 356, + "./ta": 357, + "./ta.js": 357, + "./th": 358, + "./th.js": 358, + "./tl-ph": 359, + "./tl-ph.js": 359, + "./tr": 360, + "./tr.js": 360, + "./tzl": 361, + "./tzl.js": 361, + "./tzm": 362, + "./tzm-latn": 363, + "./tzm-latn.js": 363, + "./tzm.js": 362, + "./uk": 364, + "./uk.js": 364, + "./uz": 365, + "./uz.js": 365, + "./vi": 366, + "./vi.js": 366, + "./zh-cn": 367, + "./zh-cn.js": 367, + "./zh-tw": 368, + "./zh-tw.js": 368 }; function webpackContext(req) { var id = webpackContextResolve(req); @@ -58362,9 +66463,9 @@ webpackContext.keys = function() { return Object.keys(map); }, webpackContext.resolve = webpackContextResolve, module.exports = webpackContext, - webpackContext.id = 594; + webpackContext.id = 693; }, function(module, exports, __webpack_require__) { - var subRetriever = __webpack_require__(596), subParser = __webpack_require__(640).parseString; + var subRetriever = __webpack_require__(695), subParser = __webpack_require__(739).parseString; module.exports = function(args, callback) { if (!args.url) return callback(new Error("pass .url")); subRetriever.retrieveSrt(args.url, (function(err, buf) { @@ -58383,7 +66484,7 @@ })); }; }, function(module, exports, __webpack_require__) { - var stream = __webpack_require__(5), needle = __webpack_require__(227), fs = __webpack_require__(2), iconv = __webpack_require__(50), charsetDetector = __webpack_require__(597), zlib = __webpack_require__(44), zip = __webpack_require__(628), _ = __webpack_require__(321); + var stream = __webpack_require__(3), needle = __webpack_require__(279), fs = __webpack_require__(2), iconv = __webpack_require__(68), charsetDetector = __webpack_require__(696), zlib = __webpack_require__(45), zip = __webpack_require__(727), _ = __webpack_require__(373); function streamFromPath(path, agent) { return path instanceof stream.Readable ? path : path.match("^http") ? needle.get(path, { agent: agent, @@ -58435,7 +66536,7 @@ } }; }, function(module, exports, __webpack_require__) { - var unicodeMatchers = __webpack_require__(598), multiByteCharsetMatchers = __webpack_require__(603), iso2022 = __webpack_require__(609), singleByteCharsetMatchers = __webpack_require__(613), DEFAULT_CS_RECOGNIZERS = [ __webpack_require__(627), unicodeMatchers["UTF-16BE"], unicodeMatchers["UTF-16LE"], unicodeMatchers["UTF-32BE"], unicodeMatchers["UTF-32LE"], multiByteCharsetMatchers.Shift_JIS, iso2022["ISO-2022-JP"], iso2022["ISO-2022-CN"], iso2022["ISO-2022-KR"], multiByteCharsetMatchers.GB18030, multiByteCharsetMatchers["EUC-JP"], multiByteCharsetMatchers["EUC-KR"], multiByteCharsetMatchers.Big5, singleByteCharsetMatchers["ISO-8859-1"], singleByteCharsetMatchers["ISO-8859-2"], singleByteCharsetMatchers["ISO-8859-5"], singleByteCharsetMatchers["ISO-8859-6"], singleByteCharsetMatchers["ISO-8859-7"], singleByteCharsetMatchers["ISO-8859-8-I"], singleByteCharsetMatchers["ISO-8859-8"], singleByteCharsetMatchers["windows-1251"], singleByteCharsetMatchers["windows-1256"], singleByteCharsetMatchers["KOIR8-R"], singleByteCharsetMatchers["ISO-8859-9"] ], ALL_CS_RECOGNIZERS = DEFAULT_CS_RECOGNIZERS.concat([ singleByteCharsetMatchers.IBM420_ltr, singleByteCharsetMatchers.IBM420_rtl, singleByteCharsetMatchers.IBM424_ltr, singleByteCharsetMatchers.IBM424_rtl ]); + var unicodeMatchers = __webpack_require__(697), multiByteCharsetMatchers = __webpack_require__(702), iso2022 = __webpack_require__(708), singleByteCharsetMatchers = __webpack_require__(712), DEFAULT_CS_RECOGNIZERS = [ __webpack_require__(726), unicodeMatchers["UTF-16BE"], unicodeMatchers["UTF-16LE"], unicodeMatchers["UTF-32BE"], unicodeMatchers["UTF-32LE"], multiByteCharsetMatchers.Shift_JIS, iso2022["ISO-2022-JP"], iso2022["ISO-2022-CN"], iso2022["ISO-2022-KR"], multiByteCharsetMatchers.GB18030, multiByteCharsetMatchers["EUC-JP"], multiByteCharsetMatchers["EUC-KR"], multiByteCharsetMatchers.Big5, singleByteCharsetMatchers["ISO-8859-1"], singleByteCharsetMatchers["ISO-8859-2"], singleByteCharsetMatchers["ISO-8859-5"], singleByteCharsetMatchers["ISO-8859-6"], singleByteCharsetMatchers["ISO-8859-7"], singleByteCharsetMatchers["ISO-8859-8-I"], singleByteCharsetMatchers["ISO-8859-8"], singleByteCharsetMatchers["windows-1251"], singleByteCharsetMatchers["windows-1256"], singleByteCharsetMatchers["KOIR8-R"], singleByteCharsetMatchers["ISO-8859-9"] ], ALL_CS_RECOGNIZERS = DEFAULT_CS_RECOGNIZERS.concat([ singleByteCharsetMatchers.IBM420_ltr, singleByteCharsetMatchers.IBM420_rtl, singleByteCharsetMatchers.IBM424_ltr, singleByteCharsetMatchers.IBM424_rtl ]); module.exports = function(input, matchers) { for (var matchersLength = (matchers = matchers || DEFAULT_CS_RECOGNIZERS).length, stat = (function(input) { for (var inputLength = input.length, byteStats = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], srci = 0; srci < inputLength; srci++) byteStats[255 & input[srci]]++; @@ -58456,10 +66557,10 @@ })), matches; }, module.exports.ALL_CS_RECOGNIZERS = ALL_CS_RECOGNIZERS, module.exports.DEFAULT_CS_RECOGNIZERS = DEFAULT_CS_RECOGNIZERS; }, function(module, exports, __webpack_require__) { - exports["UTF-16BE"] = __webpack_require__(599), exports["UTF-16LE"] = __webpack_require__(600), - exports["UTF-32BE"] = __webpack_require__(601), exports["UTF-32LE"] = __webpack_require__(602); + exports["UTF-16BE"] = __webpack_require__(698), exports["UTF-16LE"] = __webpack_require__(699), + exports["UTF-32BE"] = __webpack_require__(700), exports["UTF-32LE"] = __webpack_require__(701); }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(14), codeUnit16FromBytes = __webpack_require__(102).codeUnit16FromBytes, adjustConfidence = __webpack_require__(102).adjustConfidence; + var CharsetMatch = __webpack_require__(18), codeUnit16FromBytes = __webpack_require__(130).codeUnit16FromBytes, adjustConfidence = __webpack_require__(130).adjustConfidence; module.exports = function(input) { for (var confidence = 10, bytesToCheck = Math.min(input.length, 30), charIndex = 0; charIndex < bytesToCheck - 1; charIndex += 2) { var codeUnit = codeUnit16FromBytes(input[charIndex], input[charIndex + 1]); @@ -58472,7 +66573,7 @@ return bytesToCheck < 4 && confidence < 100 && (confidence = 0), confidence > 0 ? new CharsetMatch(confidence, "UTF-16BE") : null; }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(14), codeUnit16FromBytes = __webpack_require__(102).codeUnit16FromBytes, adjustConfidence = __webpack_require__(102).adjustConfidence; + var CharsetMatch = __webpack_require__(18), codeUnit16FromBytes = __webpack_require__(130).codeUnit16FromBytes, adjustConfidence = __webpack_require__(130).adjustConfidence; module.exports = function(input) { for (var confidence = 10, bytesToCheck = Math.min(input.length, 30), charIndex = 0; charIndex < bytesToCheck - 1; charIndex += 2) { var codeUnit = codeUnit16FromBytes(input[charIndex + 1], input[charIndex]); @@ -58485,19 +66586,19 @@ return bytesToCheck < 4 && confidence < 100 && (confidence = 0), confidence > 0 ? new CharsetMatch(confidence, "UTF-16LE") : null; }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(318)((function(input, index) { + module.exports = __webpack_require__(370)((function(input, index) { return (255 & input[index + 0]) << 24 | (255 & input[index + 1]) << 16 | (255 & input[index + 2]) << 8 | 255 & input[index + 3]; }), "UTF-32BE"); }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(318)((function(input, index) { + module.exports = __webpack_require__(370)((function(input, index) { return (255 & input[index + 3]) << 24 | (255 & input[index + 2]) << 16 | (255 & input[index + 1]) << 8 | 255 & input[index + 0]; }), "UTF-32LE"); }, function(module, exports, __webpack_require__) { - exports.Big5 = __webpack_require__(604), exports["EUC-JP"] = __webpack_require__(605), - exports["EUC-KR"] = __webpack_require__(606), exports.GB18030 = __webpack_require__(607), - exports.Shift_JIS = __webpack_require__(608); + exports.Big5 = __webpack_require__(703), exports["EUC-JP"] = __webpack_require__(704), + exports["EUC-KR"] = __webpack_require__(705), exports.GB18030 = __webpack_require__(706), + exports.Shift_JIS = __webpack_require__(707); }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(14), match = __webpack_require__(103)([ 41280, 41281, 41282, 41283, 41287, 41289, 41333, 41334, 42048, 42054, 42055, 42056, 42065, 42068, 42071, 42084, 42090, 42092, 42103, 42147, 42148, 42151, 42177, 42190, 42193, 42207, 42216, 42237, 42304, 42312, 42328, 42345, 42445, 42471, 42583, 42593, 42594, 42600, 42608, 42664, 42675, 42681, 42707, 42715, 42726, 42738, 42816, 42833, 42841, 42970, 43171, 43173, 43181, 43217, 43219, 43236, 43260, 43456, 43474, 43507, 43627, 43706, 43710, 43724, 43772, 44103, 44111, 44208, 44242, 44377, 44745, 45024, 45290, 45423, 45747, 45764, 45935, 46156, 46158, 46412, 46501, 46525, 46544, 46552, 46705, 47085, 47207, 47428, 47832, 47940, 48033, 48593, 49860, 50105, 50240, 50271 ], (function(it) { + var CharsetMatch = __webpack_require__(18), match = __webpack_require__(131)([ 41280, 41281, 41282, 41283, 41287, 41289, 41333, 41334, 42048, 42054, 42055, 42056, 42065, 42068, 42071, 42084, 42090, 42092, 42103, 42147, 42148, 42151, 42177, 42190, 42193, 42207, 42216, 42237, 42304, 42312, 42328, 42345, 42445, 42471, 42583, 42593, 42594, 42600, 42608, 42664, 42675, 42681, 42707, 42715, 42726, 42738, 42816, 42833, 42841, 42970, 43171, 43173, 43181, 43217, 43219, 43236, 43260, 43456, 43474, 43507, 43627, 43706, 43710, 43724, 43772, 44103, 44111, 44208, 44242, 44377, 44745, 45024, 45290, 45423, 45747, 45764, 45935, 46156, 46158, 46412, 46501, 46525, 46544, 46552, 46705, 47085, 47207, 47428, 47832, 47940, 48033, 48593, 49860, 50105, 50240, 50271 ], (function(it) { it.index = it.nextIndex, it.error = !1; var firstByte = it.charValue = it.nextByte(); if (firstByte < 0) return !1; @@ -58511,19 +66612,19 @@ return 0 == confidence ? null : new CharsetMatch(confidence, "Big5", "zh"); }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(14), match = __webpack_require__(319)([ 41377, 41378, 41379, 41382, 41404, 41418, 41419, 41430, 41431, 42146, 42148, 42150, 42152, 42154, 42155, 42156, 42157, 42159, 42161, 42163, 42165, 42167, 42169, 42171, 42173, 42175, 42176, 42177, 42179, 42180, 42182, 42183, 42184, 42185, 42186, 42187, 42190, 42191, 42192, 42206, 42207, 42209, 42210, 42212, 42216, 42217, 42218, 42219, 42220, 42223, 42226, 42227, 42402, 42403, 42404, 42406, 42407, 42410, 42413, 42415, 42416, 42419, 42421, 42423, 42424, 42425, 42431, 42435, 42438, 42439, 42440, 42441, 42443, 42448, 42453, 42454, 42455, 42462, 42464, 42465, 42469, 42473, 42474, 42475, 42476, 42477, 42483, 47273, 47572, 47854, 48072, 48880, 49079, 50410, 50940, 51133, 51896, 51955, 52188, 52689 ]); + var CharsetMatch = __webpack_require__(18), match = __webpack_require__(371)([ 41377, 41378, 41379, 41382, 41404, 41418, 41419, 41430, 41431, 42146, 42148, 42150, 42152, 42154, 42155, 42156, 42157, 42159, 42161, 42163, 42165, 42167, 42169, 42171, 42173, 42175, 42176, 42177, 42179, 42180, 42182, 42183, 42184, 42185, 42186, 42187, 42190, 42191, 42192, 42206, 42207, 42209, 42210, 42212, 42216, 42217, 42218, 42219, 42220, 42223, 42226, 42227, 42402, 42403, 42404, 42406, 42407, 42410, 42413, 42415, 42416, 42419, 42421, 42423, 42424, 42425, 42431, 42435, 42438, 42439, 42440, 42441, 42443, 42448, 42453, 42454, 42455, 42462, 42464, 42465, 42469, 42473, 42474, 42475, 42476, 42477, 42483, 47273, 47572, 47854, 48072, 48880, 49079, 50410, 50940, 51133, 51896, 51955, 52188, 52689 ]); module.exports = function(input) { var confidence = match(input); return 0 == confidence ? null : new CharsetMatch(confidence, "EUC-JP", "ja"); }; }, function(module, exports, __webpack_require__) { - var match = __webpack_require__(319)([ 45217, 45235, 45253, 45261, 45268, 45286, 45293, 45304, 45306, 45308, 45496, 45497, 45511, 45527, 45538, 45994, 46011, 46274, 46287, 46297, 46315, 46501, 46517, 46527, 46535, 46569, 46835, 47023, 47042, 47054, 47270, 47278, 47286, 47288, 47291, 47337, 47531, 47534, 47564, 47566, 47613, 47800, 47822, 47824, 47857, 48103, 48115, 48125, 48301, 48314, 48338, 48374, 48570, 48576, 48579, 48581, 48838, 48840, 48863, 48878, 48888, 48890, 49057, 49065, 49088, 49124, 49131, 49132, 49144, 49319, 49327, 49336, 49338, 49339, 49341, 49351, 49356, 49358, 49359, 49366, 49370, 49381, 49403, 49404, 49572, 49574, 49590, 49622, 49631, 49654, 49656, 50337, 50637, 50862, 51151, 51153, 51154, 51160, 51173, 51373 ]), CharsetMatch = __webpack_require__(14); + var match = __webpack_require__(371)([ 45217, 45235, 45253, 45261, 45268, 45286, 45293, 45304, 45306, 45308, 45496, 45497, 45511, 45527, 45538, 45994, 46011, 46274, 46287, 46297, 46315, 46501, 46517, 46527, 46535, 46569, 46835, 47023, 47042, 47054, 47270, 47278, 47286, 47288, 47291, 47337, 47531, 47534, 47564, 47566, 47613, 47800, 47822, 47824, 47857, 48103, 48115, 48125, 48301, 48314, 48338, 48374, 48570, 48576, 48579, 48581, 48838, 48840, 48863, 48878, 48888, 48890, 49057, 49065, 49088, 49124, 49131, 49132, 49144, 49319, 49327, 49336, 49338, 49339, 49341, 49351, 49356, 49358, 49359, 49366, 49370, 49381, 49403, 49404, 49572, 49574, 49590, 49622, 49631, 49654, 49656, 50337, 50637, 50862, 51151, 51153, 51154, 51160, 51173, 51373 ]), CharsetMatch = __webpack_require__(18); module.exports = function(input) { var confidence = match(input); return 0 == confidence ? null : new CharsetMatch(confidence, "EUC-KR", "ko"); }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(14), match = __webpack_require__(103)([ 41377, 41378, 41379, 41380, 41392, 41393, 41457, 41459, 41889, 41900, 41914, 45480, 45496, 45502, 45755, 46025, 46070, 46323, 46525, 46532, 46563, 46767, 46804, 46816, 47010, 47016, 47037, 47062, 47069, 47284, 47327, 47350, 47531, 47561, 47576, 47610, 47613, 47821, 48039, 48086, 48097, 48122, 48316, 48347, 48382, 48588, 48845, 48861, 49076, 49094, 49097, 49332, 49389, 49611, 49883, 50119, 50396, 50410, 50636, 50935, 51192, 51371, 51403, 51413, 51431, 51663, 51706, 51889, 51893, 51911, 51920, 51926, 51957, 51965, 52460, 52728, 52906, 52932, 52946, 52965, 53173, 53186, 53206, 53442, 53445, 53456, 53460, 53671, 53930, 53938, 53941, 53947, 53972, 54211, 54224, 54269, 54466, 54490, 54754, 54992 ], (function(it) { + var CharsetMatch = __webpack_require__(18), match = __webpack_require__(131)([ 41377, 41378, 41379, 41380, 41392, 41393, 41457, 41459, 41889, 41900, 41914, 45480, 45496, 45502, 45755, 46025, 46070, 46323, 46525, 46532, 46563, 46767, 46804, 46816, 47010, 47016, 47037, 47062, 47069, 47284, 47327, 47350, 47531, 47561, 47576, 47610, 47613, 47821, 48039, 48086, 48097, 48122, 48316, 48347, 48382, 48588, 48845, 48861, 49076, 49094, 49097, 49332, 49389, 49611, 49883, 50119, 50396, 50410, 50636, 50935, 51192, 51371, 51403, 51413, 51431, 51663, 51706, 51889, 51893, 51911, 51920, 51926, 51957, 51965, 52460, 52728, 52906, 52932, 52946, 52965, 53173, 53186, 53206, 53442, 53445, 53456, 53460, 53671, 53930, 53938, 53941, 53947, 53972, 54211, 54224, 54269, 54466, 54490, 54754, 54992 ], (function(it) { it.index = it.nextIndex, it.error = !1; var firstByte = 0, secondByte = 0, thirdByte = 0, fourthByte = 0; buildChar: if ((firstByte = it.charValue = it.nextByte()) < 0) it.done = !0; else if (!(firstByte <= 128) && (secondByte = it.nextByte(), @@ -58542,7 +66643,7 @@ return 0 == confidence ? null : new CharsetMatch(confidence, "GB18030", "zh"); }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(14), match = __webpack_require__(103)([ 33088, 33089, 33090, 33093, 33115, 33129, 33130, 33141, 33142, 33440, 33442, 33444, 33449, 33450, 33451, 33453, 33455, 33457, 33459, 33461, 33463, 33469, 33470, 33473, 33476, 33477, 33478, 33480, 33481, 33484, 33485, 33500, 33504, 33511, 33512, 33513, 33514, 33520, 33521, 33601, 33603, 33614, 33615, 33624, 33630, 33634, 33639, 33653, 33654, 33673, 33674, 33675, 33677, 33683, 36502, 37882, 38314 ], (function(it) { + var CharsetMatch = __webpack_require__(18), match = __webpack_require__(131)([ 33088, 33089, 33090, 33093, 33115, 33129, 33130, 33141, 33142, 33440, 33442, 33444, 33449, 33450, 33451, 33453, 33455, 33457, 33459, 33461, 33463, 33469, 33470, 33473, 33476, 33477, 33478, 33480, 33481, 33484, 33485, 33500, 33504, 33511, 33512, 33513, 33514, 33520, 33521, 33601, 33603, 33614, 33615, 33624, 33630, 33634, 33639, 33653, 33654, 33673, 33674, 33675, 33677, 33683, 36502, 37882, 38314 ], (function(it) { it.index = it.nextIndex, it.error = !1; var firstByte = it.charValue = it.nextByte(); if (firstByte < 0) return !1; @@ -58556,41 +66657,41 @@ return 0 == confidence ? null : new CharsetMatch(confidence, "Shift_JIS", "ja"); }; }, function(module, exports, __webpack_require__) { - exports["ISO-2022-JP"] = __webpack_require__(610), exports["ISO-2022-KR"] = __webpack_require__(611), - exports["ISO-2022-CN"] = __webpack_require__(612); + exports["ISO-2022-JP"] = __webpack_require__(709), exports["ISO-2022-KR"] = __webpack_require__(710), + exports["ISO-2022-CN"] = __webpack_require__(711); }, function(module, exports, __webpack_require__) { - var escapeSequences = [ [ 27, 36, 40, 67 ], [ 27, 36, 40, 68 ], [ 27, 36, 64 ], [ 27, 36, 65 ], [ 27, 36, 66 ], [ 27, 38, 64 ], [ 27, 40, 66 ], [ 27, 40, 72 ], [ 27, 40, 73 ], [ 27, 40, 74 ], [ 27, 46, 65 ], [ 27, 46, 70 ] ], baseMatch = __webpack_require__(139), CharsetMatch = __webpack_require__(14); + var escapeSequences = [ [ 27, 36, 40, 67 ], [ 27, 36, 40, 68 ], [ 27, 36, 64 ], [ 27, 36, 65 ], [ 27, 36, 66 ], [ 27, 38, 64 ], [ 27, 40, 66 ], [ 27, 40, 72 ], [ 27, 40, 73 ], [ 27, 40, 74 ], [ 27, 46, 65 ], [ 27, 46, 70 ] ], baseMatch = __webpack_require__(176), CharsetMatch = __webpack_require__(18); module.exports = function(input) { var confidence = baseMatch(input, input.length, escapeSequences); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-2022-JP"); }; }, function(module, exports, __webpack_require__) { - var escapeSequences = [ [ 27, 36, 41, 67 ] ], baseMatch = __webpack_require__(139), CharsetMatch = __webpack_require__(14); + var escapeSequences = [ [ 27, 36, 41, 67 ] ], baseMatch = __webpack_require__(176), CharsetMatch = __webpack_require__(18); module.exports = function(input) { var confidence = baseMatch(input, input.length, escapeSequences); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-2022-KR"); }; }, function(module, exports, __webpack_require__) { - var escapeSequences = [ [ 27, 36, 41, 65 ], [ 27, 36, 41, 71 ], [ 27, 36, 42, 72 ], [ 27, 36, 41, 69 ], [ 27, 36, 43, 73 ], [ 27, 36, 43, 74 ], [ 27, 36, 43, 75 ], [ 27, 36, 43, 76 ], [ 27, 36, 43, 77 ], [ 27, 78 ], [ 27, 79 ] ], baseMatch = __webpack_require__(139), CharsetMatch = __webpack_require__(14); + var escapeSequences = [ [ 27, 36, 41, 65 ], [ 27, 36, 41, 71 ], [ 27, 36, 42, 72 ], [ 27, 36, 41, 69 ], [ 27, 36, 43, 73 ], [ 27, 36, 43, 74 ], [ 27, 36, 43, 75 ], [ 27, 36, 43, 76 ], [ 27, 36, 43, 77 ], [ 27, 78 ], [ 27, 79 ] ], baseMatch = __webpack_require__(176), CharsetMatch = __webpack_require__(18); module.exports = function(input) { var confidence = baseMatch(input, input.length, escapeSequences); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-2022-CN"); }; }, function(module, exports, __webpack_require__) { - exports["ISO-8859-1"] = __webpack_require__(614), exports["ISO-8859-2"] = __webpack_require__(616), - exports["ISO-8859-5"] = __webpack_require__(617)["8859_5_ru"], exports["ISO-8859-6"] = __webpack_require__(618)["8859_6_ar"], - exports["ISO-8859-7"] = __webpack_require__(619)["8859_7_el"]; - var iso_8859_8 = __webpack_require__(620); + exports["ISO-8859-1"] = __webpack_require__(713), exports["ISO-8859-2"] = __webpack_require__(715), + exports["ISO-8859-5"] = __webpack_require__(716)["8859_5_ru"], exports["ISO-8859-6"] = __webpack_require__(717)["8859_6_ar"], + exports["ISO-8859-7"] = __webpack_require__(718)["8859_7_el"]; + var iso_8859_8 = __webpack_require__(719); exports["ISO-8859-8"] = iso_8859_8["8859_8_he"], exports["ISO-8859-8-I"] = iso_8859_8["8859_8_I_he"], - exports["ISO-8859-9"] = __webpack_require__(621)["8859_9_tr"]; - var ibm420 = __webpack_require__(622); + exports["ISO-8859-9"] = __webpack_require__(720)["8859_9_tr"]; + var ibm420 = __webpack_require__(721); exports.IBM420_rtl = ibm420.IBM420_rtl, exports.IBM420_ltr = ibm420.IBM420_ltr; - var ibm424 = __webpack_require__(623); + var ibm424 = __webpack_require__(722); exports.IBM424_rtl = ibm424.IBM424_rtl, exports.IBM424_ltr = ibm424.IBM424_ltr, - exports["windows-1251"] = __webpack_require__(624), exports["windows-1256"] = __webpack_require__(625), - exports["KOIR8-R"] = __webpack_require__(626); + exports["windows-1251"] = __webpack_require__(723), exports["windows-1256"] = __webpack_require__(724), + exports["KOIR8-R"] = __webpack_require__(725); }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 186, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 255 ], base = __webpack_require__(31), NGramsPlusLang = base.NGramsPlusLang, ngrams_8859_1 = [ new NGramsPlusLang("da", [ 2122086, 2122100, 2122853, 2123118, 2123122, 2123375, 2123873, 2124064, 2125157, 2125671, 2126053, 2126697, 2126708, 2126953, 2127465, 6383136, 6385184, 6385252, 6386208, 6386720, 6579488, 6579566, 6579570, 6579572, 6627443, 6644768, 6644837, 6647328, 6647396, 6648352, 6648421, 6648608, 6648864, 6713202, 6776096, 6776174, 6776178, 6907749, 6908960, 6909543, 7038240, 7039845, 7103858, 7104871, 7105637, 7169380, 7234661, 7234848, 7235360, 7235429, 7300896, 7302432, 7303712, 7398688, 7479396, 7479397, 7479411, 7496992, 7566437, 7610483, 7628064, 7628146, 7629164, 7759218 ]), new NGramsPlusLang("de", [ 2122094, 2122101, 2122341, 2122849, 2122853, 2122857, 2123113, 2123621, 2123873, 2124142, 2125161, 2126691, 2126693, 2127214, 2127461, 2127471, 2127717, 2128501, 6448498, 6514720, 6514789, 6514804, 6578547, 6579566, 6579570, 6580581, 6627428, 6627443, 6646126, 6646132, 6647328, 6648352, 6648608, 6776174, 6841710, 6845472, 6906728, 6907168, 6909472, 6909541, 6911008, 7104867, 7105637, 7217249, 7217252, 7217267, 7234592, 7234661, 7234848, 7235360, 7235429, 7238757, 7479396, 7496805, 7497065, 7562088, 7566437, 7610468, 7628064, 7628142, 7628146, 7695972, 7695975, 7759218 ]), new NGramsPlusLang("en", [ 2122016, 2122094, 2122341, 2122607, 2123375, 2123873, 2123877, 2124142, 2125153, 2125670, 2125938, 2126437, 2126689, 2126708, 2126952, 2126959, 2127720, 6383972, 6384672, 6385184, 6385252, 6386464, 6386720, 6386789, 6386793, 6561889, 6561908, 6627425, 6627443, 6627444, 6644768, 6647412, 6648352, 6648608, 6713202, 6840692, 6841632, 6841714, 6906912, 6909472, 6909543, 6909806, 6910752, 7217249, 7217268, 7234592, 7235360, 7238688, 7300640, 7302688, 7303712, 7496992, 7500576, 7544929, 7544948, 7561577, 7566368, 7610484, 7628146, 7628897, 7628901, 7629167, 7630624, 7631648 ]), new NGramsPlusLang("es", [ 2122016, 2122593, 2122607, 2122853, 2123116, 2123118, 2123123, 2124142, 2124897, 2124911, 2125921, 2125935, 2125938, 2126197, 2126437, 2126693, 2127214, 2128160, 6365283, 6365284, 6365285, 6365292, 6365296, 6382441, 6382703, 6384672, 6386208, 6386464, 6515187, 6516590, 6579488, 6579564, 6582048, 6627428, 6627429, 6627436, 6646816, 6647328, 6647412, 6648608, 6648692, 6907246, 6943598, 7102752, 7106419, 7217253, 7238757, 7282788, 7282789, 7302688, 7303712, 7303968, 7364978, 7435621, 7495968, 7497075, 7544932, 7544933, 7544944, 7562528, 7628064, 7630624, 7693600, 15953440 ]), new NGramsPlusLang("fr", [ 2122101, 2122607, 2122849, 2122853, 2122869, 2123118, 2123124, 2124897, 2124901, 2125921, 2125935, 2125938, 2126197, 2126693, 2126703, 2127214, 2154528, 6385268, 6386793, 6513952, 6516590, 6579488, 6579571, 6583584, 6627425, 6627427, 6627428, 6627429, 6627436, 6627440, 6627443, 6647328, 6647412, 6648352, 6648608, 6648864, 6649202, 6909806, 6910752, 6911008, 7102752, 7103776, 7103859, 7169390, 7217252, 7234848, 7238432, 7238688, 7302688, 7302772, 7304562, 7435621, 7479404, 7496992, 7544929, 7544932, 7544933, 7544940, 7544944, 7610468, 7628064, 7629167, 7693600, 7696928 ]), new NGramsPlusLang("it", [ 2122092, 2122600, 2122607, 2122853, 2122857, 2123040, 2124140, 2124142, 2124897, 2125925, 2125938, 2127214, 6365283, 6365284, 6365296, 6365299, 6386799, 6514789, 6516590, 6579564, 6580512, 6627425, 6627427, 6627428, 6627433, 6627436, 6627440, 6627443, 6646816, 6646892, 6647412, 6648352, 6841632, 6889569, 6889571, 6889572, 6889587, 6906144, 6908960, 6909472, 6909806, 7102752, 7103776, 7104800, 7105633, 7234848, 7235872, 7237408, 7238757, 7282785, 7282788, 7282793, 7282803, 7302688, 7302757, 7366002, 7495968, 7496992, 7563552, 7627040, 7628064, 7629088, 7630624, 8022383 ]), new NGramsPlusLang("nl", [ 2122092, 2122341, 2122849, 2122853, 2122857, 2123109, 2123118, 2123621, 2123877, 2124142, 2125153, 2125157, 2125680, 2126949, 2127457, 2127461, 2127471, 2127717, 2128489, 6381934, 6381938, 6385184, 6385252, 6386208, 6386720, 6514804, 6579488, 6579566, 6579570, 6627426, 6627446, 6645102, 6645106, 6647328, 6648352, 6648435, 6648864, 6776174, 6841716, 6907168, 6909472, 6909543, 6910752, 7217250, 7217252, 7217253, 7217256, 7217263, 7217270, 7234661, 7235360, 7302756, 7303026, 7303200, 7303712, 7562088, 7566437, 7610468, 7628064, 7628142, 7628146, 7758190, 7759218, 7761775 ]), new NGramsPlusLang("no", [ 2122100, 2122102, 2122853, 2123118, 2123122, 2123375, 2123873, 2124064, 2125157, 2125671, 2126053, 2126693, 2126699, 2126703, 2126708, 2126953, 2127465, 2155808, 6385252, 6386208, 6386720, 6579488, 6579566, 6579572, 6627443, 6644768, 6647328, 6647397, 6648352, 6648421, 6648864, 6648948, 6713202, 6776174, 6908779, 6908960, 6909543, 7038240, 7039845, 7103776, 7105637, 7169380, 7169390, 7217267, 7234848, 7235360, 7235429, 7237221, 7300896, 7302432, 7303712, 7398688, 7479411, 7496992, 7565165, 7566437, 7610483, 7628064, 7628142, 7628146, 7629164, 7631904, 7631973, 7759218 ]), new NGramsPlusLang("pt", [ 2122016, 2122607, 2122849, 2122853, 2122863, 2123040, 2123123, 2125153, 2125423, 2125600, 2125921, 2125935, 2125938, 2126197, 2126437, 2126693, 2127213, 6365281, 6365283, 6365284, 6365296, 6382693, 6382703, 6384672, 6386208, 6386273, 6386464, 6516589, 6516590, 6578464, 6579488, 6582048, 6582131, 6627425, 6627428, 6647072, 6647412, 6648608, 6648692, 6906144, 6906721, 7169390, 7238757, 7238767, 7282785, 7282787, 7282788, 7282789, 7282800, 7303968, 7364978, 7435621, 7495968, 7497075, 7544929, 7544932, 7544933, 7544944, 7566433, 7628064, 7630624, 7693600, 14905120, 15197039 ]), new NGramsPlusLang("sv", [ 2122100, 2122102, 2122853, 2123118, 2123510, 2123873, 2124064, 2124142, 2124655, 2125157, 2125667, 2126053, 2126699, 2126703, 2126708, 2126953, 2127457, 2127465, 2155634, 6382693, 6385184, 6385252, 6386208, 6386804, 6514720, 6579488, 6579566, 6579570, 6579572, 6644768, 6647328, 6648352, 6648864, 6747762, 6776174, 6909036, 6909543, 7037216, 7105568, 7169380, 7217267, 7233824, 7234661, 7235360, 7235429, 7235950, 7299944, 7302432, 7302688, 7398688, 7479393, 7479411, 7495968, 7564129, 7565165, 7610483, 7627040, 7628064, 7628146, 7629164, 7631904, 7758194, 14971424, 16151072 ]) ], ngrams_8859_1_length = ngrams_8859_1.length, CharsetMatch = __webpack_require__(14); + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 186, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 255 ], base = __webpack_require__(39), NGramsPlusLang = base.NGramsPlusLang, ngrams_8859_1 = [ new NGramsPlusLang("da", [ 2122086, 2122100, 2122853, 2123118, 2123122, 2123375, 2123873, 2124064, 2125157, 2125671, 2126053, 2126697, 2126708, 2126953, 2127465, 6383136, 6385184, 6385252, 6386208, 6386720, 6579488, 6579566, 6579570, 6579572, 6627443, 6644768, 6644837, 6647328, 6647396, 6648352, 6648421, 6648608, 6648864, 6713202, 6776096, 6776174, 6776178, 6907749, 6908960, 6909543, 7038240, 7039845, 7103858, 7104871, 7105637, 7169380, 7234661, 7234848, 7235360, 7235429, 7300896, 7302432, 7303712, 7398688, 7479396, 7479397, 7479411, 7496992, 7566437, 7610483, 7628064, 7628146, 7629164, 7759218 ]), new NGramsPlusLang("de", [ 2122094, 2122101, 2122341, 2122849, 2122853, 2122857, 2123113, 2123621, 2123873, 2124142, 2125161, 2126691, 2126693, 2127214, 2127461, 2127471, 2127717, 2128501, 6448498, 6514720, 6514789, 6514804, 6578547, 6579566, 6579570, 6580581, 6627428, 6627443, 6646126, 6646132, 6647328, 6648352, 6648608, 6776174, 6841710, 6845472, 6906728, 6907168, 6909472, 6909541, 6911008, 7104867, 7105637, 7217249, 7217252, 7217267, 7234592, 7234661, 7234848, 7235360, 7235429, 7238757, 7479396, 7496805, 7497065, 7562088, 7566437, 7610468, 7628064, 7628142, 7628146, 7695972, 7695975, 7759218 ]), new NGramsPlusLang("en", [ 2122016, 2122094, 2122341, 2122607, 2123375, 2123873, 2123877, 2124142, 2125153, 2125670, 2125938, 2126437, 2126689, 2126708, 2126952, 2126959, 2127720, 6383972, 6384672, 6385184, 6385252, 6386464, 6386720, 6386789, 6386793, 6561889, 6561908, 6627425, 6627443, 6627444, 6644768, 6647412, 6648352, 6648608, 6713202, 6840692, 6841632, 6841714, 6906912, 6909472, 6909543, 6909806, 6910752, 7217249, 7217268, 7234592, 7235360, 7238688, 7300640, 7302688, 7303712, 7496992, 7500576, 7544929, 7544948, 7561577, 7566368, 7610484, 7628146, 7628897, 7628901, 7629167, 7630624, 7631648 ]), new NGramsPlusLang("es", [ 2122016, 2122593, 2122607, 2122853, 2123116, 2123118, 2123123, 2124142, 2124897, 2124911, 2125921, 2125935, 2125938, 2126197, 2126437, 2126693, 2127214, 2128160, 6365283, 6365284, 6365285, 6365292, 6365296, 6382441, 6382703, 6384672, 6386208, 6386464, 6515187, 6516590, 6579488, 6579564, 6582048, 6627428, 6627429, 6627436, 6646816, 6647328, 6647412, 6648608, 6648692, 6907246, 6943598, 7102752, 7106419, 7217253, 7238757, 7282788, 7282789, 7302688, 7303712, 7303968, 7364978, 7435621, 7495968, 7497075, 7544932, 7544933, 7544944, 7562528, 7628064, 7630624, 7693600, 15953440 ]), new NGramsPlusLang("fr", [ 2122101, 2122607, 2122849, 2122853, 2122869, 2123118, 2123124, 2124897, 2124901, 2125921, 2125935, 2125938, 2126197, 2126693, 2126703, 2127214, 2154528, 6385268, 6386793, 6513952, 6516590, 6579488, 6579571, 6583584, 6627425, 6627427, 6627428, 6627429, 6627436, 6627440, 6627443, 6647328, 6647412, 6648352, 6648608, 6648864, 6649202, 6909806, 6910752, 6911008, 7102752, 7103776, 7103859, 7169390, 7217252, 7234848, 7238432, 7238688, 7302688, 7302772, 7304562, 7435621, 7479404, 7496992, 7544929, 7544932, 7544933, 7544940, 7544944, 7610468, 7628064, 7629167, 7693600, 7696928 ]), new NGramsPlusLang("it", [ 2122092, 2122600, 2122607, 2122853, 2122857, 2123040, 2124140, 2124142, 2124897, 2125925, 2125938, 2127214, 6365283, 6365284, 6365296, 6365299, 6386799, 6514789, 6516590, 6579564, 6580512, 6627425, 6627427, 6627428, 6627433, 6627436, 6627440, 6627443, 6646816, 6646892, 6647412, 6648352, 6841632, 6889569, 6889571, 6889572, 6889587, 6906144, 6908960, 6909472, 6909806, 7102752, 7103776, 7104800, 7105633, 7234848, 7235872, 7237408, 7238757, 7282785, 7282788, 7282793, 7282803, 7302688, 7302757, 7366002, 7495968, 7496992, 7563552, 7627040, 7628064, 7629088, 7630624, 8022383 ]), new NGramsPlusLang("nl", [ 2122092, 2122341, 2122849, 2122853, 2122857, 2123109, 2123118, 2123621, 2123877, 2124142, 2125153, 2125157, 2125680, 2126949, 2127457, 2127461, 2127471, 2127717, 2128489, 6381934, 6381938, 6385184, 6385252, 6386208, 6386720, 6514804, 6579488, 6579566, 6579570, 6627426, 6627446, 6645102, 6645106, 6647328, 6648352, 6648435, 6648864, 6776174, 6841716, 6907168, 6909472, 6909543, 6910752, 7217250, 7217252, 7217253, 7217256, 7217263, 7217270, 7234661, 7235360, 7302756, 7303026, 7303200, 7303712, 7562088, 7566437, 7610468, 7628064, 7628142, 7628146, 7758190, 7759218, 7761775 ]), new NGramsPlusLang("no", [ 2122100, 2122102, 2122853, 2123118, 2123122, 2123375, 2123873, 2124064, 2125157, 2125671, 2126053, 2126693, 2126699, 2126703, 2126708, 2126953, 2127465, 2155808, 6385252, 6386208, 6386720, 6579488, 6579566, 6579572, 6627443, 6644768, 6647328, 6647397, 6648352, 6648421, 6648864, 6648948, 6713202, 6776174, 6908779, 6908960, 6909543, 7038240, 7039845, 7103776, 7105637, 7169380, 7169390, 7217267, 7234848, 7235360, 7235429, 7237221, 7300896, 7302432, 7303712, 7398688, 7479411, 7496992, 7565165, 7566437, 7610483, 7628064, 7628142, 7628146, 7629164, 7631904, 7631973, 7759218 ]), new NGramsPlusLang("pt", [ 2122016, 2122607, 2122849, 2122853, 2122863, 2123040, 2123123, 2125153, 2125423, 2125600, 2125921, 2125935, 2125938, 2126197, 2126437, 2126693, 2127213, 6365281, 6365283, 6365284, 6365296, 6382693, 6382703, 6384672, 6386208, 6386273, 6386464, 6516589, 6516590, 6578464, 6579488, 6582048, 6582131, 6627425, 6627428, 6647072, 6647412, 6648608, 6648692, 6906144, 6906721, 7169390, 7238757, 7238767, 7282785, 7282787, 7282788, 7282789, 7282800, 7303968, 7364978, 7435621, 7495968, 7497075, 7544929, 7544932, 7544933, 7544944, 7566433, 7628064, 7630624, 7693600, 14905120, 15197039 ]), new NGramsPlusLang("sv", [ 2122100, 2122102, 2122853, 2123118, 2123510, 2123873, 2124064, 2124142, 2124655, 2125157, 2125667, 2126053, 2126699, 2126703, 2126708, 2126953, 2127457, 2127465, 2155634, 6382693, 6385184, 6385252, 6386208, 6386804, 6514720, 6579488, 6579566, 6579570, 6579572, 6644768, 6647328, 6648352, 6648864, 6747762, 6776174, 6909036, 6909543, 7037216, 7105568, 7169380, 7217267, 7233824, 7234661, 7235360, 7235429, 7235950, 7299944, 7302432, 7302688, 7398688, 7479393, 7479411, 7495968, 7564129, 7565165, 7610483, 7627040, 7628064, 7628146, 7629164, 7631904, 7758194, 14971424, 16151072 ]) ], ngrams_8859_1_length = ngrams_8859_1.length, CharsetMatch = __webpack_require__(18); module.exports = function(input, stats) { for (var name = stats.c1Bytes ? "windows-1252" : "ISO-8859-1", bestConfidenceSoFar = -1, lang = null, i = 0, l = ngrams_8859_1_length; i < l; i++) { var ngl = ngrams_8859_1[i], confidence = base.match(input, ngl.ngrams, byteMap); @@ -58599,7 +66700,7 @@ return bestConfidenceSoFar <= 0 ? null : new CharsetMatch(bestConfidenceSoFar, name, lang); }; }, function(module, exports, __webpack_require__) { - var NGramParser = __webpack_require__(320), unshapeMap = [ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 66, 66, 68, 69, 70, 71, 71, 73, 74, 75, 76, 77, 78, 79, 80, 73, 82, 83, 84, 85, 86, 86, 88, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 99, 101, 101, 103, 103, 105, 106, 107, 108, 109, 110, 111, 105, 113, 113, 115, 116, 117, 118, 119, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 128, 139, 139, 141, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 154, 154, 154, 158, 158, 158, 161, 162, 163, 164, 165, 166, 167, 168, 169, 158, 171, 171, 173, 173, 175, 175, 177, 178, 179, 180, 181, 182, 183, 184, 185, 177, 187, 187, 189, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 191, 204, 191, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 218, 220, 220, 220, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ]; + var NGramParser = __webpack_require__(372), unshapeMap = [ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 66, 66, 68, 69, 70, 71, 71, 73, 74, 75, 76, 77, 78, 79, 80, 73, 82, 83, 84, 85, 86, 86, 88, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 99, 101, 101, 103, 103, 105, 106, 107, 108, 109, 110, 111, 105, 113, 113, 115, 116, 117, 118, 119, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 128, 139, 139, 141, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 154, 154, 154, 158, 158, 158, 161, 162, 163, 164, 165, 166, 167, 168, 169, 158, 171, 171, 173, 173, 175, 175, 177, 178, 179, 180, 181, 182, 183, 184, 185, 177, 187, 187, 189, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 191, 204, 191, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 218, 220, 220, 220, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ]; function NGramParser_IBM420(theNgramList, theByteMap) { this.alef = 0, NGramParser.call(this, theNgramList, theByteMap); } @@ -58617,7 +66718,7 @@ } }, module.exports = NGramParser_IBM420; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 177, 32, 179, 32, 181, 182, 32, 32, 185, 186, 187, 188, 32, 190, 191, 32, 177, 32, 179, 32, 181, 182, 183, 32, 185, 186, 187, 188, 32, 190, 191, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 32 ], base = __webpack_require__(31), NGramsPlusLang = base.NGramsPlusLang, ngrams_8859_2 = [ new NGramsPlusLang("cs", [ 2122016, 2122361, 2122863, 2124389, 2125409, 2125413, 2125600, 2125668, 2125935, 2125938, 2126072, 2126447, 2126693, 2126703, 2126708, 2126959, 2127392, 2127481, 2128481, 6365296, 6513952, 6514720, 6627440, 6627443, 6627446, 6647072, 6647533, 6844192, 6844260, 6910836, 6972704, 7042149, 7103776, 7104800, 7233824, 7268640, 7269408, 7269664, 7282800, 7300206, 7301737, 7304052, 7304480, 7304801, 7368548, 7368554, 7369327, 7403621, 7562528, 7565173, 7566433, 7566441, 7566446, 7628146, 7630573, 7630624, 7676016, 12477728, 14773997, 15296623, 15540336, 15540339, 15559968, 16278884 ]), new NGramsPlusLang("hu", [ 2122016, 2122106, 2122341, 2123111, 2123116, 2123365, 2123873, 2123887, 2124147, 2124645, 2124649, 2124790, 2124901, 2125153, 2125157, 2125161, 2125413, 2126714, 2126949, 2156915, 6365281, 6365291, 6365293, 6365299, 6384416, 6385184, 6388256, 6447470, 6448494, 6645625, 6646560, 6646816, 6646885, 6647072, 6647328, 6648421, 6648864, 6648933, 6648948, 6781216, 6844263, 6909556, 6910752, 7020641, 7075450, 7169383, 7170414, 7217249, 7233899, 7234923, 7234925, 7238688, 7300985, 7544929, 7567973, 7567988, 7568097, 7596391, 7610465, 7631904, 7659891, 8021362, 14773792, 15299360 ]), new NGramsPlusLang("pl", [ 2122618, 2122863, 2124064, 2124389, 2124655, 2125153, 2125161, 2125409, 2125417, 2125668, 2125935, 2125938, 2126697, 2127648, 2127721, 2127737, 2128416, 2128481, 6365296, 6365303, 6385257, 6514720, 6519397, 6519417, 6582048, 6584937, 6627440, 6627443, 6627447, 6627450, 6645615, 6646304, 6647072, 6647401, 6778656, 6906144, 6907168, 6907242, 7037216, 7039264, 7039333, 7170405, 7233824, 7235937, 7235941, 7282800, 7305057, 7305065, 7368556, 7369313, 7369327, 7369338, 7502437, 7502457, 7563754, 7564137, 7566433, 7825765, 7955304, 7957792, 8021280, 8022373, 8026400, 15955744 ]), new NGramsPlusLang("ro", [ 2122016, 2122083, 2122593, 2122597, 2122607, 2122613, 2122853, 2122857, 2124897, 2125153, 2125925, 2125938, 2126693, 2126819, 2127214, 2144873, 2158190, 6365283, 6365284, 6386277, 6386720, 6386789, 6386976, 6513010, 6516590, 6518048, 6546208, 6579488, 6627425, 6627427, 6627428, 6627440, 6627443, 6644e3, 6646048, 6646885, 6647412, 6648692, 6889569, 6889571, 6889572, 6889584, 6907168, 6908192, 6909472, 7102752, 7103776, 7106418, 7107945, 7234848, 7238770, 7303712, 7365998, 7496992, 7497057, 7501088, 7594784, 7628064, 7631477, 7660320, 7694624, 7695392, 12216608, 15625760 ]) ], ngrams_8859_2_length = ngrams_8859_2.length, CharsetMatch = __webpack_require__(14); + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 177, 32, 179, 32, 181, 182, 32, 32, 185, 186, 187, 188, 32, 190, 191, 32, 177, 32, 179, 32, 181, 182, 183, 32, 185, 186, 187, 188, 32, 190, 191, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 32 ], base = __webpack_require__(39), NGramsPlusLang = base.NGramsPlusLang, ngrams_8859_2 = [ new NGramsPlusLang("cs", [ 2122016, 2122361, 2122863, 2124389, 2125409, 2125413, 2125600, 2125668, 2125935, 2125938, 2126072, 2126447, 2126693, 2126703, 2126708, 2126959, 2127392, 2127481, 2128481, 6365296, 6513952, 6514720, 6627440, 6627443, 6627446, 6647072, 6647533, 6844192, 6844260, 6910836, 6972704, 7042149, 7103776, 7104800, 7233824, 7268640, 7269408, 7269664, 7282800, 7300206, 7301737, 7304052, 7304480, 7304801, 7368548, 7368554, 7369327, 7403621, 7562528, 7565173, 7566433, 7566441, 7566446, 7628146, 7630573, 7630624, 7676016, 12477728, 14773997, 15296623, 15540336, 15540339, 15559968, 16278884 ]), new NGramsPlusLang("hu", [ 2122016, 2122106, 2122341, 2123111, 2123116, 2123365, 2123873, 2123887, 2124147, 2124645, 2124649, 2124790, 2124901, 2125153, 2125157, 2125161, 2125413, 2126714, 2126949, 2156915, 6365281, 6365291, 6365293, 6365299, 6384416, 6385184, 6388256, 6447470, 6448494, 6645625, 6646560, 6646816, 6646885, 6647072, 6647328, 6648421, 6648864, 6648933, 6648948, 6781216, 6844263, 6909556, 6910752, 7020641, 7075450, 7169383, 7170414, 7217249, 7233899, 7234923, 7234925, 7238688, 7300985, 7544929, 7567973, 7567988, 7568097, 7596391, 7610465, 7631904, 7659891, 8021362, 14773792, 15299360 ]), new NGramsPlusLang("pl", [ 2122618, 2122863, 2124064, 2124389, 2124655, 2125153, 2125161, 2125409, 2125417, 2125668, 2125935, 2125938, 2126697, 2127648, 2127721, 2127737, 2128416, 2128481, 6365296, 6365303, 6385257, 6514720, 6519397, 6519417, 6582048, 6584937, 6627440, 6627443, 6627447, 6627450, 6645615, 6646304, 6647072, 6647401, 6778656, 6906144, 6907168, 6907242, 7037216, 7039264, 7039333, 7170405, 7233824, 7235937, 7235941, 7282800, 7305057, 7305065, 7368556, 7369313, 7369327, 7369338, 7502437, 7502457, 7563754, 7564137, 7566433, 7825765, 7955304, 7957792, 8021280, 8022373, 8026400, 15955744 ]), new NGramsPlusLang("ro", [ 2122016, 2122083, 2122593, 2122597, 2122607, 2122613, 2122853, 2122857, 2124897, 2125153, 2125925, 2125938, 2126693, 2126819, 2127214, 2144873, 2158190, 6365283, 6365284, 6386277, 6386720, 6386789, 6386976, 6513010, 6516590, 6518048, 6546208, 6579488, 6627425, 6627427, 6627428, 6627440, 6627443, 6644e3, 6646048, 6646885, 6647412, 6648692, 6889569, 6889571, 6889572, 6889584, 6907168, 6908192, 6909472, 7102752, 7103776, 7106418, 7107945, 7234848, 7238770, 7303712, 7365998, 7496992, 7497057, 7501088, 7594784, 7628064, 7631477, 7660320, 7694624, 7695392, 12216608, 15625760 ]) ], ngrams_8859_2_length = ngrams_8859_2.length, CharsetMatch = __webpack_require__(18); module.exports = function(input, stats) { for (var name = stats.c1Bytes ? "windows-1250" : "ISO-8859-2", bestConfidenceSoFar = -1, lang = null, i = 0, l = ngrams_8859_2_length; i < l; i++) { var ngl = ngrams_8859_2[i], confidence = base.match(input, ngl.ngrams, byteMap); @@ -58626,25 +66727,25 @@ return bestConfidenceSoFar <= 0 ? null : new CharsetMatch(bestConfidenceSoFar, name, lang); }; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 32, 254, 255, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 32, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 32, 254, 255 ], CharsetMatch = __webpack_require__(14), base = __webpack_require__(31), ngrams_ru = [ 2150944, 2151134, 2151646, 2152400, 2152480, 2153168, 2153182, 2153936, 2153941, 2154193, 2154462, 2154464, 2154704, 2154974, 2154978, 2155230, 2156514, 2158050, 13688280, 13689580, 13884960, 14015468, 14015960, 14016994, 14017056, 14164191, 14210336, 14211104, 14216992, 14407133, 14407712, 14413021, 14536736, 14538016, 14538965, 14538991, 14540320, 14540498, 14557394, 14557407, 14557409, 14602784, 14602960, 14603230, 14604576, 14605292, 14605344, 14606818, 14671579, 14672085, 14672088, 14672094, 14733522, 14734804, 14803664, 14803666, 14803672, 14806816, 14865883, 14868e3, 14868192, 14871584, 15196894, 15459616 ]; + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 32, 254, 255, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 32, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 32, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams_ru = [ 2150944, 2151134, 2151646, 2152400, 2152480, 2153168, 2153182, 2153936, 2153941, 2154193, 2154462, 2154464, 2154704, 2154974, 2154978, 2155230, 2156514, 2158050, 13688280, 13689580, 13884960, 14015468, 14015960, 14016994, 14017056, 14164191, 14210336, 14211104, 14216992, 14407133, 14407712, 14413021, 14536736, 14538016, 14538965, 14538991, 14540320, 14540498, 14557394, 14557407, 14557409, 14602784, 14602960, 14603230, 14604576, 14605292, 14605344, 14606818, 14671579, 14672085, 14672088, 14672094, 14733522, 14734804, 14803664, 14803666, 14803672, 14806816, 14865883, 14868e3, 14868192, 14871584, 15196894, 15459616 ]; exports["8859_5_ru"] = function(input) { var confidence = base.match(input, ngrams_ru, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-8859-5", "ru"); }; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 ], CharsetMatch = __webpack_require__(14), base = __webpack_require__(31), ngrams = [ 2148324, 2148326, 2148551, 2152932, 2154986, 2155748, 2156006, 2156743, 13050055, 13091104, 13093408, 13095200, 13100064, 13100227, 13100231, 13100232, 13100234, 13100236, 13100237, 13100239, 13100243, 13100249, 13100258, 13100261, 13100264, 13100266, 13100320, 13100576, 13100746, 13115591, 13181127, 13181153, 13181156, 13181157, 13181160, 13246663, 13574343, 13617440, 13705415, 13748512, 13836487, 14229703, 14279913, 14805536, 14950599, 14993696, 15001888, 15002144, 15016135, 15058720, 15059232, 15066656, 15081671, 15147207, 15189792, 15255524, 15263264, 15278279, 15343815, 15343845, 15343848, 15386912, 15388960, 15394336 ]; + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams = [ 2148324, 2148326, 2148551, 2152932, 2154986, 2155748, 2156006, 2156743, 13050055, 13091104, 13093408, 13095200, 13100064, 13100227, 13100231, 13100232, 13100234, 13100236, 13100237, 13100239, 13100243, 13100249, 13100258, 13100261, 13100264, 13100266, 13100320, 13100576, 13100746, 13115591, 13181127, 13181153, 13181156, 13181157, 13181160, 13246663, 13574343, 13617440, 13705415, 13748512, 13836487, 14229703, 14279913, 14805536, 14950599, 14993696, 15001888, 15002144, 15016135, 15058720, 15059232, 15066656, 15081671, 15147207, 15189792, 15255524, 15263264, 15278279, 15343815, 15343845, 15343848, 15386912, 15388960, 15394336 ]; module.exports["8859_6_ar"] = function(input) { var confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-8859-6", "ar"); }; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 161, 162, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 220, 32, 221, 222, 223, 32, 252, 32, 253, 254, 192, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 32, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 32 ], CharsetMatch = __webpack_require__(14), base = __webpack_require__(31), ngrams = [ 2154989, 2154992, 2155497, 2155753, 2156016, 2156320, 2157281, 2157797, 2158049, 2158368, 2158817, 2158831, 2158833, 2159604, 2159605, 2159847, 2159855, 14672160, 14754017, 14754036, 14805280, 14806304, 14807292, 14807584, 14936545, 15067424, 15069728, 15147252, 15199520, 15200800, 15278324, 15327520, 15330014, 15331872, 15393257, 15393268, 15525152, 15540449, 15540453, 15540464, 15589664, 15725088, 15725856, 15790069, 15790575, 15793184, 15868129, 15868133, 15868138, 15868144, 15868148, 15983904, 15984416, 15987951, 16048416, 16048617, 16050157, 16050162, 16050666, 16052e3, 16052213, 16054765, 16379168, 16706848 ]; + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 161, 162, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 220, 32, 221, 222, 223, 32, 252, 32, 253, 254, 192, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 32, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams = [ 2154989, 2154992, 2155497, 2155753, 2156016, 2156320, 2157281, 2157797, 2158049, 2158368, 2158817, 2158831, 2158833, 2159604, 2159605, 2159847, 2159855, 14672160, 14754017, 14754036, 14805280, 14806304, 14807292, 14807584, 14936545, 15067424, 15069728, 15147252, 15199520, 15200800, 15278324, 15327520, 15330014, 15331872, 15393257, 15393268, 15525152, 15540449, 15540453, 15540464, 15589664, 15725088, 15725856, 15790069, 15790575, 15793184, 15868129, 15868133, 15868138, 15868144, 15868148, 15983904, 15984416, 15987951, 16048416, 16048617, 16050157, 16050162, 16050666, 16052e3, 16052213, 16054765, 16379168, 16706848 ]; module.exports["8859_7_el"] = function(input, stats) { var name = stats.c1Bytes ? "windows-1253" : "ISO-8859-7", confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, name, "el"); }; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 32, 32, 32, 32, 32 ], CharsetMatch = __webpack_require__(14), base = __webpack_require__(31), ngrams = { + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 32, 32, 32, 32, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams = { "ISO-8859-8-I": [ 2154725, 2154727, 2154729, 2154746, 2154985, 2154990, 2155744, 2155749, 2155753, 2155758, 2155762, 2155769, 2155770, 2157792, 2157796, 2158304, 2159340, 2161132, 14744096, 14950624, 14950625, 14950628, 14950636, 14950638, 14950649, 15001056, 15065120, 15068448, 15068960, 15071264, 15071776, 15278308, 15328288, 15328762, 15329773, 15330592, 15331104, 15333408, 15333920, 15474912, 15474916, 15523872, 15524896, 15540448, 15540449, 15540452, 15540460, 15540462, 15540473, 15655968, 15671524, 15787040, 15788320, 15788525, 15920160, 16261348, 16312813, 16378912, 16392416, 16392417, 16392420, 16392428, 16392430, 16392441 ], "ISO-8859-8": [ 2154725, 2154732, 2155753, 2155756, 2155758, 2155760, 2157040, 2157810, 2157817, 2158053, 2158057, 2158565, 2158569, 2160869, 2160873, 2161376, 2161381, 2161385, 14688484, 14688492, 14688493, 14688506, 14738464, 14738916, 14740512, 14741024, 14754020, 14754029, 14754042, 14950628, 14950633, 14950636, 14950637, 14950639, 14950648, 14950650, 15002656, 15065120, 15066144, 15196192, 15327264, 15327520, 15328288, 15474916, 15474925, 15474938, 15528480, 15530272, 15591913, 15591920, 15591928, 15605988, 15605997, 15606010, 15655200, 15655968, 15918112, 16326884, 16326893, 16326906, 16376864, 16441376, 16442400, 16442857 ] }; @@ -58656,7 +66757,7 @@ } exports["8859_8_I_he"] = genMatcher("ISO-8859-8-I"), exports["8859_8_he"] = genMatcher("ISO-8859-8"); }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 186, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 105, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 255 ], CharsetMatch = __webpack_require__(14), base = __webpack_require__(31), ngrams = [ 2122337, 2122345, 2122357, 2122849, 2122853, 2123621, 2123873, 2124140, 2124641, 2124655, 2125153, 2125676, 2126689, 2126945, 2127461, 2128225, 6365282, 6384416, 6384737, 6384993, 6385184, 6385405, 6386208, 6386273, 6386429, 6386685, 6388065, 6449522, 6578464, 6579488, 6580512, 6627426, 6627435, 6644841, 6647328, 6648352, 6648425, 6648681, 6909029, 6909472, 6909545, 6910496, 7102830, 7102834, 7103776, 7103858, 7217249, 7217250, 7217259, 7234657, 7234661, 7234848, 7235872, 7235950, 7273760, 7498094, 7535982, 7759136, 7954720, 7958386, 16608800, 16608868, 16609021, 16642301 ]; + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 186, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 105, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams = [ 2122337, 2122345, 2122357, 2122849, 2122853, 2123621, 2123873, 2124140, 2124641, 2124655, 2125153, 2125676, 2126689, 2126945, 2127461, 2128225, 6365282, 6384416, 6384737, 6384993, 6385184, 6385405, 6386208, 6386273, 6386429, 6386685, 6388065, 6449522, 6578464, 6579488, 6580512, 6627426, 6627435, 6644841, 6647328, 6648352, 6648425, 6648681, 6909029, 6909472, 6909545, 6910496, 7102830, 7102834, 7103776, 7103858, 7217249, 7217250, 7217259, 7234657, 7234661, 7234848, 7235872, 7235950, 7273760, 7498094, 7535982, 7759136, 7954720, 7958386, 16608800, 16608868, 16609021, 16642301 ]; exports["8859_9_tr"] = function(input, stats) { var name = stats.c1Bytes ? "windows-1254" : "ISO-8859-9", confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, name, "tr"); @@ -58665,7 +66766,7 @@ var byteMap = [ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 66, 67, 68, 69, 70, 71, 72, 73, 64, 64, 64, 64, 64, 64, 64, 81, 82, 64, 64, 85, 86, 87, 88, 89, 64, 64, 64, 64, 64, 64, 64, 64, 98, 99, 100, 101, 102, 103, 104, 105, 64, 64, 64, 64, 64, 64, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 64, 64, 64, 64, 64, 64, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 64, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 64, 64, 184, 185, 186, 187, 188, 189, 190, 191, 64, 129, 130, 131, 132, 133, 134, 135, 136, 137, 64, 203, 64, 205, 64, 207, 64, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223, 64, 64, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 64, 237, 238, 239, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 251, 252, 253, 254, 64 ], ngrams = { IBM420_rtl: [ 4216497, 4216509, 4216918, 4233905, 4238300, 4239793, 4242365, 4247382, 5652566, 5654080, 5661504, 5666112, 5681472, 5681481, 5681494, 5681496, 5681507, 5681511, 5681513, 5681523, 5681528, 5681562, 5681581, 5681595, 5681615, 5681628, 5684032, 5684544, 5684579, 5783638, 6438998, 6439083, 6439089, 6439099, 6439119, 6504534, 7553110, 7561792, 7684182, 7692864, 7880790, 10109014, 10138074, 11263040, 11616342, 11625024, 11655744, 11656256, 12271702, 12277312, 12280384, 12303680, 12402774, 12533846, 12539456, 13588145, 13614400, 14303318, 14434390, 14434491, 14434511, 14443072, 14447936, 14466368 ], IBM420_ltr: [ 4212310, 4216507, 4216511, 4219507, 4219509, 4219569, 4219579, 4219612, 4219734, 4224342, 4224476, 4239702, 4242262, 4242774, 4242875, 4242895, 4242908, 4250289, 4250795, 4250801, 4829526, 5652566, 5652568, 5652578, 5652579, 5652595, 5652597, 5652600, 5652634, 5652657, 5652667, 5652669, 5652671, 5652698, 5652700, 5658688, 5681494, 5689152, 5812566, 6533462, 6536534, 6795606, 6926678, 7582038, 7909718, 10137942, 11223138, 11383126, 11616354, 11621952, 11622095, 11639360, 11645248, 12271714, 12271836, 12300630, 12408384, 12434240, 13582434, 13582556, 13611350, 14332314, 14461760, 14463318 ] - }, CharsetMatch = __webpack_require__(14), base = __webpack_require__(31); + }, CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); function genMatcher(name) { var ng = ngrams[name]; return function(input) { @@ -58678,7 +66779,7 @@ var byteMap = [ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 64, 64, 64, 64, 64, 64, 64, 81, 82, 83, 84, 85, 86, 87, 88, 89, 64, 64, 64, 64, 64, 64, 64, 64, 98, 99, 100, 101, 102, 103, 104, 105, 64, 64, 64, 64, 64, 64, 64, 113, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 129, 130, 131, 132, 133, 134, 135, 136, 137, 64, 64, 64, 64, 64, 64, 64, 145, 146, 147, 148, 149, 150, 151, 152, 153, 64, 64, 64, 64, 64, 64, 160, 64, 162, 163, 164, 165, 166, 167, 168, 169, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 129, 130, 131, 132, 133, 134, 135, 136, 137, 64, 64, 64, 64, 64, 64, 64, 145, 146, 147, 148, 149, 150, 151, 152, 153, 64, 64, 64, 64, 64, 64, 64, 64, 162, 163, 164, 165, 166, 167, 168, 169, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64 ], ngrams = { IBM424_rtl: [ 4211014, 4211016, 4211025, 4211057, 4211281, 4211286, 4212033, 4212038, 4212049, 4212054, 4212066, 4212073, 4212081, 4215873, 4215877, 4216385, 4219476, 4221268, 4288832, 4538433, 4538434, 4538437, 4538452, 4538454, 4538473, 4539969, 4604224, 4609344, 4609856, 4614208, 4616512, 5324869, 5326144, 5326449, 5329237, 5330240, 5330752, 5335104, 5337408, 5521473, 5521477, 5521728, 5522752, 5587009, 5587010, 5587013, 5587028, 5587030, 5587049, 5653824, 5718085, 5784896, 5787968, 5787989, 6444096, 6832197, 6836565, 6902848, 7422017, 7422018, 7422021, 7422036, 7422038, 7422057 ], IBM424_ltr: [ 4211014, 4211028, 4212049, 4212052, 4212054, 4212056, 4215128, 4215906, 4215913, 4216134, 4216145, 4216646, 4216657, 4220998, 4221009, 4223297, 4223302, 4223313, 4276293, 4276308, 4276309, 4276337, 4277568, 4277829, 4281408, 4281920, 4341829, 4341845, 4341873, 4538437, 4538449, 4538452, 4538453, 4538455, 4538472, 4538481, 4543552, 4604224, 4605248, 4735296, 5325120, 5325376, 5326144, 5521477, 5521493, 5521521, 5530176, 5531968, 5591377, 5591384, 5591400, 5652549, 5652565, 5652593, 5653056, 5653824, 6440256, 6897733, 6897749, 6897777, 6899008, 7422272, 7423296, 7423569 ] - }, CharsetMatch = __webpack_require__(14), base = __webpack_require__(31); + }, CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); function genMatcher(name) { var ng = ngrams[name]; return function(input) { @@ -58688,25 +66789,25 @@ } exports.IBM424_rtl = genMatcher("IBM424_rtl"), exports.IBM424_ltr = genMatcher("IBM424_ltr"); }, function(module, exports, __webpack_require__) { - var ngrams = [ 2155040, 2155246, 2155758, 2156512, 2156576, 2157280, 2157294, 2158048, 2158053, 2158305, 2158574, 2158576, 2158816, 2159086, 2159090, 2159342, 2160626, 2162162, 14740968, 14742268, 14937632, 15068156, 15068648, 15069682, 15069728, 15212783, 15263008, 15263776, 15269664, 15459821, 15460384, 15465709, 15589408, 15590688, 15591653, 15591679, 15592992, 15593186, 15605986, 15605999, 15606001, 15655456, 15655648, 15655918, 15657248, 15657980, 15658016, 15659506, 15724267, 15724773, 15724776, 15724782, 15786210, 15787492, 15856352, 15856354, 15856360, 15859488, 15918571, 15920672, 15920880, 15924256, 16249582, 16512288 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 144, 131, 32, 131, 32, 32, 32, 32, 32, 32, 154, 32, 156, 157, 158, 159, 144, 32, 32, 32, 32, 32, 32, 32, 32, 32, 154, 32, 156, 157, 158, 159, 32, 162, 162, 188, 32, 180, 32, 32, 184, 32, 186, 32, 32, 32, 32, 191, 32, 32, 179, 179, 180, 181, 32, 32, 184, 32, 186, 32, 188, 190, 190, 191, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ], CharsetMatch = __webpack_require__(14), base = __webpack_require__(31); + var ngrams = [ 2155040, 2155246, 2155758, 2156512, 2156576, 2157280, 2157294, 2158048, 2158053, 2158305, 2158574, 2158576, 2158816, 2159086, 2159090, 2159342, 2160626, 2162162, 14740968, 14742268, 14937632, 15068156, 15068648, 15069682, 15069728, 15212783, 15263008, 15263776, 15269664, 15459821, 15460384, 15465709, 15589408, 15590688, 15591653, 15591679, 15592992, 15593186, 15605986, 15605999, 15606001, 15655456, 15655648, 15655918, 15657248, 15657980, 15658016, 15659506, 15724267, 15724773, 15724776, 15724782, 15786210, 15787492, 15856352, 15856354, 15856360, 15859488, 15918571, 15920672, 15920880, 15924256, 16249582, 16512288 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 144, 131, 32, 131, 32, 32, 32, 32, 32, 32, 154, 32, 156, 157, 158, 159, 144, 32, 32, 32, 32, 32, 32, 32, 32, 32, 154, 32, 156, 157, 158, 159, 32, 162, 162, 188, 32, 180, 32, 32, 184, 32, 186, 32, 32, 32, 32, 191, 32, 32, 179, 179, 180, 181, 32, 32, 184, 32, 186, 32, 188, 190, 190, 191, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); module.exports = function(input) { var confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "windows-1251", "ru"); }; }, function(module, exports, __webpack_require__) { - var ngrams = [ 2148321, 2148324, 2148551, 2153185, 2153965, 2154977, 2155492, 2156231, 13050055, 13091104, 13093408, 13095200, 13099296, 13099459, 13099463, 13099464, 13099466, 13099468, 13099469, 13099471, 13099475, 13099482, 13099486, 13099491, 13099494, 13099501, 13099808, 13100064, 13100234, 13115591, 13181127, 13181149, 13181153, 13181155, 13181158, 13246663, 13574343, 13617440, 13705415, 13748512, 13836487, 14295239, 14344684, 14544160, 14753991, 14797088, 14806048, 14806304, 14885063, 14927648, 14928160, 14935072, 14950599, 15016135, 15058720, 15124449, 15131680, 15474887, 15540423, 15540451, 15540454, 15583520, 15585568, 15590432 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 129, 32, 131, 32, 32, 32, 32, 136, 32, 138, 32, 156, 141, 142, 143, 144, 32, 32, 32, 32, 32, 32, 32, 152, 32, 154, 32, 156, 32, 32, 159, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 32, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 32, 32, 32, 32, 244, 32, 32, 32, 32, 249, 32, 251, 252, 32, 32, 255 ], CharsetMatch = __webpack_require__(14), base = __webpack_require__(31); + var ngrams = [ 2148321, 2148324, 2148551, 2153185, 2153965, 2154977, 2155492, 2156231, 13050055, 13091104, 13093408, 13095200, 13099296, 13099459, 13099463, 13099464, 13099466, 13099468, 13099469, 13099471, 13099475, 13099482, 13099486, 13099491, 13099494, 13099501, 13099808, 13100064, 13100234, 13115591, 13181127, 13181149, 13181153, 13181155, 13181158, 13246663, 13574343, 13617440, 13705415, 13748512, 13836487, 14295239, 14344684, 14544160, 14753991, 14797088, 14806048, 14806304, 14885063, 14927648, 14928160, 14935072, 14950599, 15016135, 15058720, 15124449, 15131680, 15474887, 15540423, 15540451, 15540454, 15583520, 15585568, 15590432 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 129, 32, 131, 32, 32, 32, 32, 136, 32, 138, 32, 156, 141, 142, 143, 144, 32, 32, 32, 32, 32, 32, 32, 152, 32, 154, 32, 156, 32, 32, 159, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 32, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 32, 32, 32, 32, 244, 32, 32, 32, 32, 249, 32, 251, 252, 32, 32, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); module.exports = function(input) { var confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "windows-1256", "ar"); }; }, function(module, exports, __webpack_require__) { - var ngrams = [ 2147535, 2148640, 2149313, 2149327, 2150081, 2150085, 2150338, 2150607, 2150610, 2151105, 2151375, 2151380, 2151631, 2152224, 2152399, 2153153, 2153684, 2154196, 12701385, 12702936, 12963032, 12963529, 12964820, 12964896, 13094688, 13181136, 13223200, 13224224, 13226272, 13419982, 13420832, 13424846, 13549856, 13550880, 13552069, 13552081, 13553440, 13553623, 13574352, 13574355, 13574359, 13617103, 13617696, 13618392, 13618464, 13620180, 13621024, 13621185, 13684684, 13685445, 13685449, 13685455, 13812183, 13813188, 13881632, 13882561, 13882569, 13882583, 13944268, 13946656, 13946834, 13948960, 14272544, 14603471 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223 ], CharsetMatch = __webpack_require__(14), base = __webpack_require__(31); + var ngrams = [ 2147535, 2148640, 2149313, 2149327, 2150081, 2150085, 2150338, 2150607, 2150610, 2151105, 2151375, 2151380, 2151631, 2152224, 2152399, 2153153, 2153684, 2154196, 12701385, 12702936, 12963032, 12963529, 12964820, 12964896, 13094688, 13181136, 13223200, 13224224, 13226272, 13419982, 13420832, 13424846, 13549856, 13550880, 13552069, 13552081, 13553440, 13553623, 13574352, 13574355, 13574359, 13617103, 13617696, 13618392, 13618464, 13620180, 13621024, 13621185, 13684684, 13685445, 13685449, 13685455, 13812183, 13813188, 13881632, 13882561, 13882569, 13882583, 13944268, 13946656, 13946834, 13948960, 14272544, 14603471 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); module.exports = function(input) { var confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "KOI8-R", "ru"); }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(14); + var CharsetMatch = __webpack_require__(18); module.exports = function(input) { var i, confidence, hasBOM = !1, numValid = 0, numInvalid = 0, trailBytes = 0, inputLength = input.length; for (inputLength >= 3 && 239 == (255 & input[0]) && 187 == (255 & input[1]) && 191 == (255 & input[2]) && (hasBOM = !0), @@ -58736,7 +66837,7 @@ 0 == confidence ? null : new CharsetMatch(confidence, "UTF-8"); }; }, function(module, exports, __webpack_require__) { - var INFLATE = __webpack_require__(629), bops = __webpack_require__(140), Reader = exports.Reader = function(data) { + var INFLATE = __webpack_require__(728), bops = __webpack_require__(177), Reader = exports.Reader = function(data) { if (!(this instanceof Reader)) return new Reader(data); this._source = new BufferSource(data), this._offset = 0; }; @@ -58904,7 +67005,7 @@ return new Date(1980 + (date >>> 9), (date >>> 5 & 15) - 1, 31 & date, time >>> 11 & 31, time >>> 5 & 63, 2 * (63 & time)); }; }, function(module, exports, __webpack_require__) { - var BufferIO = __webpack_require__(630).BufferIO, bops = __webpack_require__(140); + var BufferIO = __webpack_require__(729).BufferIO, bops = __webpack_require__(177); exports.inflate = function(input) { var slide, wp, fixed_td, fixed_bl, bit_buf, bit_len, method, eof, copy_leng, copy_dist, tl, td, bl, bd, inflate_data, inflate_pos, fixed_tl = null, MASK_BITS = [ 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535 ], cplens = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ], cplext = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 ], cpdist = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ], cpdext = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ], border = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; function HuftList() { @@ -59086,7 +67187,7 @@ })(input); }; }, function(module, exports, __webpack_require__) { - var bops = __webpack_require__(140); + var bops = __webpack_require__(177); function consolidate(buffers) { var at, i, buffer, result, length = 0, ii = buffers.length; for (i = 0; i < ii; i++) length += (buffer = buffers[i]).length; @@ -59107,7 +67208,7 @@ }, self; }, exports.consolidate = consolidate; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(8).Buffer; + var Buffer = __webpack_require__(10).Buffer; module.exports = function(source, encoding) { return new Buffer(source, encoding); }; @@ -59116,7 +67217,7 @@ return source.toString(encoding); }; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(8).Buffer; + var Buffer = __webpack_require__(10).Buffer; module.exports = function(buffer) { return Buffer.isBuffer(buffer); }; @@ -59125,7 +67226,7 @@ return 2 === arguments.length ? source.slice(from) : source.slice(from, to); }; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(8).Buffer; + var Buffer = __webpack_require__(10).Buffer; module.exports = function(targets, hint) { return void 0 !== hint ? Buffer.concat(targets, hint) : Buffer.concat(targets); }; @@ -59137,7 +67238,7 @@ module.exports = function(size) { return new Buffer(size); }; - var Buffer = __webpack_require__(8).Buffer; + var Buffer = __webpack_require__(10).Buffer; }, function(module, exports) { var buildFn, proto = {}, rex = /read.+/; for (var key in buildFn = function(key) { @@ -59145,7 +67246,7 @@ return new Function([ "buf", "a", "b", "c" ], code); }, module.exports = proto, Buffer.prototype) rex.test(key) && (proto[key] = buildFn(key)); }, function(module, exports, __webpack_require__) { - var buildFn, Buffer = __webpack_require__(8).Buffer, proto = {}, rex = /write.+/; + var buildFn, Buffer = __webpack_require__(10).Buffer, proto = {}, rex = /write.+/; for (var key in buildFn = function(key) { var code = "return buf." + key + "(" + [ "a", "b", "c" ].join(",") + ")"; return new Function([ "buf", "a", "b", "c" ], code); @@ -59187,7 +67288,7 @@ } }; }, function(module, exports, __webpack_require__) { - var _ = __webpack_require__(321), fs = __webpack_require__(2), path = __webpack_require__(3), opensub = new (__webpack_require__(642)), fetch = __webpack_require__(24), URL = __webpack_require__(7).URL; + var _ = __webpack_require__(373), fs = __webpack_require__(2), path = __webpack_require__(4), opensub = new (__webpack_require__(741)), fetch = __webpack_require__(33), URL = __webpack_require__(6).URL; module.exports = function(args, cb) { if ("string" != typeof args.url) return cb(new Error("url required")); cb = _.once(cb); @@ -59261,7 +67362,7 @@ } }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), ee = __webpack_require__(4).EventEmitter, Api = __webpack_require__(643), os = module.exports = function(user, password, lang, ua) { + var fs = __webpack_require__(2), ee = __webpack_require__(5).EventEmitter, Api = __webpack_require__(742), os = module.exports = function(user, password, lang, ua) { this.api = new Api, this.user = user, this.password = password, this.lang = lang || "en", this.ua = ua || "NodeOpensubtitles v0.0.1"; }; @@ -59318,7 +67419,7 @@ return str; }; }, function(module, exports, __webpack_require__) { - var xmlrpc = __webpack_require__(644), ep = module.exports = function() { + var xmlrpc = __webpack_require__(743), ep = module.exports = function() { this.clientOptions = "http://api.opensubtitles.org/xml-rpc", this.client = xmlrpc.createClient(this.clientOptions); }; ep.prototype.call = function(method, args) { @@ -59379,7 +67480,7 @@ this.call("NoOperation", arguments); }; }, function(module, exports, __webpack_require__) { - var Client = __webpack_require__(645), Server = __webpack_require__(650), xmlrpc = exports; + var Client = __webpack_require__(744), Server = __webpack_require__(749), xmlrpc = exports; xmlrpc.createClient = function(options) { return new Client(options, !1); }, xmlrpc.createSecureClient = function(options) { @@ -59390,7 +67491,7 @@ return new Server(options, !0); }; }, function(module, exports, __webpack_require__) { - var http = __webpack_require__(12), https = __webpack_require__(19), url = __webpack_require__(7), Serializer = __webpack_require__(322), Deserializer = __webpack_require__(324); + var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), Serializer = __webpack_require__(374), Deserializer = __webpack_require__(376); function Client(options, isSecure) { if (0 == this instanceof Client) return new Client(options, isSecure); "string" == typeof options && ((options = url.parse(options)).host = options.hostname, @@ -59420,14 +67521,14 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLBuilder; - XMLBuilder = __webpack_require__(647), module.exports.create = function() { + XMLBuilder = __webpack_require__(746), module.exports.create = function() { return new XMLBuilder; }; }).call(this); }, function(module, exports, __webpack_require__) { (function() { var XMLBuilder, XMLFragment, __hasProp = Object.prototype.hasOwnProperty; - XMLFragment = __webpack_require__(648), XMLBuilder = (function() { + XMLFragment = __webpack_require__(747), XMLBuilder = (function() { function XMLBuilder() { XMLBuilder.__super__.constructor.call(this, null, "", {}, ""), this.isDoc = !0; } @@ -59896,7 +67997,7 @@ } }; try { - var Stream = __webpack_require__(5).Stream; + var Stream = __webpack_require__(3).Stream; } catch (ex) { Stream = function() {}; } @@ -60127,7 +68228,7 @@ S = sax.STATE; })(exports); }, function(module, exports, __webpack_require__) { - var http = __webpack_require__(12), https = __webpack_require__(19), url = __webpack_require__(7), EventEmitter = __webpack_require__(4).EventEmitter, Serializer = __webpack_require__(322), Deserializer = __webpack_require__(324); + var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), EventEmitter = __webpack_require__(5).EventEmitter, Serializer = __webpack_require__(374), Deserializer = __webpack_require__(376); function Server(options, isSecure) { if (0 == this instanceof Server) return new Server(options, isSecure); var that = this; @@ -60147,7 +68248,7 @@ } Server.prototype.__proto__ = EventEmitter.prototype, module.exports = Server; }, function(module, exports, __webpack_require__) { - var https = __webpack_require__(19), fetch = __webpack_require__(24), net = __webpack_require__(45), fs = __webpack_require__(2), path = __webpack_require__(3), options = defaultOptions = { + var https = __webpack_require__(21), fetch = __webpack_require__(33), net = __webpack_require__(42), fs = __webpack_require__(2), path = __webpack_require__(4), options = defaultOptions = { apiEndpoint: "http://api.strem.io/api/certificateGet", appPath: ".", authKey: null @@ -60236,7 +68337,7 @@ } }; }, function(module, exports, __webpack_require__) { - var path = __webpack_require__(3), url = __webpack_require__(7), querystring = __webpack_require__(20), Router = __webpack_require__(83), stream = __webpack_require__(5), https = __webpack_require__(19), fetch = __webpack_require__(24), Headers = fetch.Headers, cfgOpts = { + var path = __webpack_require__(4), url = __webpack_require__(6), querystring = __webpack_require__(24), Router = __webpack_require__(111), stream = __webpack_require__(3), https = __webpack_require__(21), fetch = __webpack_require__(33), Headers = fetch.Headers, cfgOpts = { Destination: "d", DestinationHeader: "h", ResponseHeader: "r" @@ -60355,9 +68456,9 @@ } }; }, function(module, exports) { - module.exports = [ "udp://tracker.opentrackr.org:1337/announce", "udp://open.tracker.cl:1337/announce", "udp://open.demonii.com:1337/announce", "udp://open.stealth.si:80/announce", "udp://tracker.torrent.eu.org:451/announce", "udp://exodus.desync.com:6969/announce", "udp://tracker.bittor.pw:1337/announce", "udp://tracker-udp.gbitt.info:80/announce", "udp://tamas3.ynh.fr:6969/announce", "udp://opentracker.io:6969/announce", "udp://open.u-p.pw:6969/announce", "udp://explodie.org:6969/announce", "udp://epider.me:6969/announce", "udp://bt1.archive.org:6969/announce", "udp://bt.ktrackers.com:6666/announce", "https://tracker.tamersunion.org:443/announce", "http://tracker1.bt.moack.co.kr:80/announce", "udp://tracker2.dler.org:80/announce", "udp://tracker.theoks.net:6969/announce", "udp://tracker.dump.cl:6969/announce" ]; + module.exports = [ "udp://tracker.opentrackr.org:1337/announce", "udp://open.demonii.com:1337/announce", "udp://open.stealth.si:80/announce", "udp://tracker.torrent.eu.org:451/announce", "udp://explodie.org:6969/announce", "https://tracker.tamersunion.org:443/announce", "udp://tracker1.bt.moack.co.kr:80/announce", "udp://tracker-udp.gbitt.info:80/announce", "udp://retracker01-msk-virt.corbina.net:80/announce", "udp://opentracker.io:6969/announce", "udp://new-line.net:6969/announce", "udp://moonburrow.club:6969/announce", "udp://exodus.desync.com:6969/announce", "udp://tracker.dump.cl:6969/announce", "udp://tracker.dler.org:6969/announce", "udp://tracker.bittor.pw:1337/announce", "udp://tracker.0x7c0.com:6969/announce", "udp://p4p.arenabg.com:1337/announce", "udp://open.free-tracker.ga:6969/announce", "udp://open.dstud.io:6969/announce" ]; }, function(module, exports, __webpack_require__) { - const profiles = __webpack_require__(141), userSettings = __webpack_require__(75), cache = __webpack_require__(328), fetch = __webpack_require__(24), saveSettings = settings => { + const profiles = __webpack_require__(178), userSettings = __webpack_require__(94), cache = __webpack_require__(380), fetch = __webpack_require__(33), saveSettings = settings => { userSettings.extend(settings), cache.setOptionValues(userSettings), userSettings.save((function() {})); }, perPlatforms = { android: [], @@ -60406,7 +68507,7 @@ !(function() { "use strict"; function noop() {} - var fs = __webpack_require__(2), forEachAsync = __webpack_require__(656).forEachAsync, EventEmitter = __webpack_require__(4).EventEmitter, TypeEmitter = __webpack_require__(657), util = __webpack_require__(0), path = __webpack_require__(3); + var fs = __webpack_require__(2), forEachAsync = __webpack_require__(755).forEachAsync, EventEmitter = __webpack_require__(5).EventEmitter, TypeEmitter = __webpack_require__(756), util = __webpack_require__(0), path = __webpack_require__(4); function appendToDirs(stat) { stat.flag && stat.flag === NO_DESCEND || this.push(stat.name); } @@ -60563,7 +68664,7 @@ }; })(); }, function(module, exports, __webpack_require__) { - const profiles = __webpack_require__(141); + const profiles = __webpack_require__(178); module.exports = (profileName, accelConfig, options) => { const profile = profiles[profileName]; return profile && (options.video && (accelConfig.inputArgs = accelConfig.inputArgs.concat(profile.video.inputArgs || []), @@ -60841,7 +68942,7 @@ value: !0 }), e); })(E); - var I = z(__webpack_require__(2), 1), C = __webpack_require__(5), L = z(__webpack_require__(660), 1), A = L.default.http, U = L.default.https, q = /bytes (\d+)-(\d+)\/(\d+)/, D = function(e) { + var I = z(__webpack_require__(2), 1), C = __webpack_require__(3), L = z(__webpack_require__(759), 1), A = L.default.http, U = L.default.https, q = /bytes (\d+)-(\d+)\/(\d+)/, D = function(e) { return e.startsWith("http://") || e.startsWith("https://"); }, M = (function(e) { c(r, e); @@ -61341,7 +69442,7 @@ }; })(), ex = eR; }, function(module, exports, __webpack_require__) { - var url = __webpack_require__(7), URL = url.URL, http = __webpack_require__(12), https = __webpack_require__(19), Writable = __webpack_require__(5).Writable, assert = __webpack_require__(34), debug = __webpack_require__(661), useNativeURL = !1; + var url = __webpack_require__(6), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(22), debug = __webpack_require__(760), useNativeURL = !1; try { assert(new URL); } catch (error) { @@ -61593,7 +69694,7 @@ module.exports = function() { if (!debug) { try { - debug = __webpack_require__(6)("follow-redirects"); + debug = __webpack_require__(8)("follow-redirects"); } catch (error) {} "function" != typeof debug && (debug = function() {}); } @@ -61704,8 +69805,8 @@ })), argv; }; }, function(module, exports, __webpack_require__) { - var magnet = __webpack_require__(664), hat = __webpack_require__(72), pws = __webpack_require__(667), bncode = __webpack_require__(142), bitfield = __webpack_require__(679), parseTorrent = __webpack_require__(217), mkdirp = __webpack_require__(104), rimraf = __webpack_require__(680), events = __webpack_require__(4), path = __webpack_require__(3), fs = __webpack_require__(2), os = __webpack_require__(17), eos = __webpack_require__(128), _ = (__webpack_require__(687), - __webpack_require__(145)), bagpipe = __webpack_require__(146), blocklist = __webpack_require__(690), encode = __webpack_require__(691), exchangeMetadata = __webpack_require__(692), storage = __webpack_require__(693), storageCircular = __webpack_require__(694), fileStream = __webpack_require__(695), piece = __webpack_require__(700), SPEED_THRESHOLD = 3 * piece.BLOCK_SIZE, TMP = fs.existsSync("/tmp") ? "/tmp" : os.tmpdir(), noop = function() {}, thruthy = function() { + var magnet = __webpack_require__(763), hat = __webpack_require__(91), pws = __webpack_require__(766), bncode = __webpack_require__(179), bitfield = __webpack_require__(778), parseTorrent = __webpack_require__(269), mkdirp = __webpack_require__(132), rimraf = __webpack_require__(779), events = __webpack_require__(5), path = __webpack_require__(4), fs = __webpack_require__(2), os = __webpack_require__(23), eos = __webpack_require__(163), _ = (__webpack_require__(786), + __webpack_require__(183)), bagpipe = __webpack_require__(184), blocklist = __webpack_require__(789), encode = __webpack_require__(790), exchangeMetadata = __webpack_require__(791), storage = __webpack_require__(792), storageCircular = __webpack_require__(793), fileStream = __webpack_require__(794), piece = __webpack_require__(798), SPEED_THRESHOLD = 3 * piece.BLOCK_SIZE, TMP = fs.existsSync("/tmp") ? "/tmp" : os.tmpdir(), noop = function() {}, thruthy = function() { return !0; }, falsy = function() { return !1; @@ -62029,7 +70130,7 @@ }, engine; }; }, function(module, exports, __webpack_require__) { - var base32 = __webpack_require__(665); + var base32 = __webpack_require__(764); module.exports = function(uri) { var m, result = {}, data = uri.split("magnet:?")[1]; if (!data || 0 === data.length) return result; @@ -62049,7 +70150,7 @@ return result; }; }, function(module, exports, __webpack_require__) { - var base32 = __webpack_require__(666); + var base32 = __webpack_require__(765); exports.encode = base32.encode, exports.decode = base32.decode; }, function(module, exports) { var byteTable = [ 255, 255, 26, 27, 28, 29, 30, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255 ]; @@ -62077,7 +70178,7 @@ return decoded.slice(0, plainPos); }; }, function(module, exports, __webpack_require__) { - var utp = __webpack_require__(668), net = __webpack_require__(45), fifo = __webpack_require__(670), once = __webpack_require__(25), speedometer = __webpack_require__(330), peerWireProtocol = __webpack_require__(671), EventEmitter = __webpack_require__(4).EventEmitter, util = __webpack_require__(0), RECONNECT_WAIT = [ 4e3, 8e3, 12e3 ], toBuffer = function(str, encoding) { + var utp = __webpack_require__(767), net = __webpack_require__(42), fifo = __webpack_require__(769), once = __webpack_require__(34), speedometer = __webpack_require__(382), peerWireProtocol = __webpack_require__(770), EventEmitter = __webpack_require__(5).EventEmitter, util = __webpack_require__(0), RECONNECT_WAIT = [ 4e3, 8e3, 12e3 ], toBuffer = function(str, encoding) { return Buffer.isBuffer(str) ? str : new Buffer(str, encoding); }, toAddress = function(wire) { return "string" == typeof wire ? wire : wire.peerAddress; @@ -62240,7 +70341,7 @@ this.wires.push(wire), this.emit("wire", wire, connection); }, module.exports = Swarm; }, function(module, exports, __webpack_require__) { - var offset, then, dgram = __webpack_require__(53), cyclist = __webpack_require__(669), util = __webpack_require__(0), EventEmitter = __webpack_require__(4).EventEmitter, Duplex = __webpack_require__(5).Duplex, uint32 = function(n) { + var offset, then, dgram = __webpack_require__(69), cyclist = __webpack_require__(768), util = __webpack_require__(0), EventEmitter = __webpack_require__(5).EventEmitter, Duplex = __webpack_require__(3).Duplex, uint32 = function(n) { return n >>> 0; }, uint16 = function(n) { return 65535 & n; @@ -62453,8 +70554,8 @@ return this.node && this.remove(this.node.prev); }, module.exports = FIFO; }, function(module, exports, __webpack_require__) { - var Duplex = __webpack_require__(5).Duplex || __webpack_require__(672).Duplex, bitfield = (__webpack_require__(4).EventEmitter, - __webpack_require__(675)), util = __webpack_require__(0), bncode = __webpack_require__(676), speedometer = __webpack_require__(330), bufferFrom = __webpack_require__(335), bufferAlloc = __webpack_require__(336), MESSAGE_PROTOCOL = bufferFrom([ 19, 66, 105, 116, 84, 111, 114, 114, 101, 110, 116, 32, 112, 114, 111, 116, 111, 99, 111, 108 ]), MESSAGE_KEEP_ALIVE = bufferFrom([ 0, 0, 0, 0 ]), MESSAGE_CHOKE = bufferFrom([ 0, 0, 0, 1, 0 ]), MESSAGE_UNCHOKE = bufferFrom([ 0, 0, 0, 1, 1 ]), MESSAGE_INTERESTED = bufferFrom([ 0, 0, 0, 1, 2 ]), MESSAGE_UNINTERESTED = bufferFrom([ 0, 0, 0, 1, 3 ]), MESSAGE_RESERVED = [ 0, 0, 0, 0, 0, 0, 0, 0 ], MESSAGE_PORT = [ 0, 0, 0, 3, 9, 0, 0 ], noop = function() {}, pull = function(requests, piece, offset, length) { + var Duplex = __webpack_require__(3).Duplex || __webpack_require__(771).Duplex, bitfield = (__webpack_require__(5).EventEmitter, + __webpack_require__(774)), util = __webpack_require__(0), bncode = __webpack_require__(775), speedometer = __webpack_require__(382), bufferFrom = __webpack_require__(387), bufferAlloc = __webpack_require__(388), MESSAGE_PROTOCOL = bufferFrom([ 19, 66, 105, 116, 84, 111, 114, 114, 101, 110, 116, 32, 112, 114, 111, 116, 111, 99, 111, 108 ]), MESSAGE_KEEP_ALIVE = bufferFrom([ 0, 0, 0, 0 ]), MESSAGE_CHOKE = bufferFrom([ 0, 0, 0, 1, 0 ]), MESSAGE_UNCHOKE = bufferFrom([ 0, 0, 0, 1, 1 ]), MESSAGE_INTERESTED = bufferFrom([ 0, 0, 0, 1, 2 ]), MESSAGE_UNINTERESTED = bufferFrom([ 0, 0, 0, 1, 3 ]), MESSAGE_RESERVED = [ 0, 0, 0, 0, 0, 0, 0, 0 ], MESSAGE_PORT = [ 0, 0, 0, 3, 9, 0, 0 ], noop = function() {}, pull = function(requests, piece, offset, length) { for (var i = 0; i < requests.length; i++) { var req = requests[i]; if (req.piece === piece && req.offset === offset && req.length === length) return 0 === i ? requests.shift() : requests.splice(i, 1), @@ -62626,23 +70727,22 @@ callback(); }, Wire.prototype._read = noop, module.exports = Wire; }, function(module, exports, __webpack_require__) { - (exports = module.exports = __webpack_require__(331)).Stream = __webpack_require__(5), - exports.Readable = exports, exports.Writable = __webpack_require__(332), exports.Duplex = __webpack_require__(58), - exports.Transform = __webpack_require__(334), exports.PassThrough = __webpack_require__(674), - process.browser || "disable" !== process.env.READABLE_STREAM || (module.exports = __webpack_require__(5)); + (exports = module.exports = __webpack_require__(383)).Stream = __webpack_require__(3), + exports.Readable = exports, exports.Writable = __webpack_require__(384), exports.Duplex = __webpack_require__(73), + exports.Transform = __webpack_require__(386), exports.PassThrough = __webpack_require__(773), + process.browser || "disable" !== process.env.READABLE_STREAM || (module.exports = __webpack_require__(3)); }, function(module, exports) { module.exports = Array.isArray || function(arr) { return "[object Array]" == Object.prototype.toString.call(arr); }; }, function(module, exports, __webpack_require__) { module.exports = PassThrough; - var Transform = __webpack_require__(334), util = __webpack_require__(23); + var Transform = __webpack_require__(386), util = __webpack_require__(32); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - util.inherits = __webpack_require__(11), util.inherits(PassThrough, Transform), - PassThrough.prototype._transform = function(chunk, encoding, cb) { + util.inherits = __webpack_require__(7), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; }, function(module, exports, __webpack_require__) { @@ -62897,9 +70997,9 @@ }, module.exports = BitField; }, function(module, exports, __webpack_require__) { module.exports = rimraf, rimraf.sync = rimrafSync; - var assert = __webpack_require__(34), path = __webpack_require__(3), fs = __webpack_require__(2), glob = void 0; + var assert = __webpack_require__(22), path = __webpack_require__(4), fs = __webpack_require__(2), glob = void 0; try { - glob = __webpack_require__(337); + glob = __webpack_require__(180); } catch (_err) {} var _0666 = parseInt("666", 8), defaultGlobOpts = { nosort: !0, @@ -63048,7 +71148,7 @@ } } }, function(module, exports, __webpack_require__) { - var pathModule = __webpack_require__(3), isWindows = "win32" === process.platform, fs = __webpack_require__(2), DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); + var pathModule = __webpack_require__(4), isWindows = "win32" === process.platform, fs = __webpack_require__(2), DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); if (pathModule.normalize, isWindows) var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; else nextPartRe = /(.*?)(?:[\/]+|$)/g; if (isWindows) var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; else splitRootRe = /^[\/]*/; exports.realpathSync = function(p, cache) { @@ -63147,7 +71247,7 @@ start(); }; }, function(module, exports, __webpack_require__) { - var concatMap = __webpack_require__(683), balanced = __webpack_require__(684); + var concatMap = __webpack_require__(782), balanced = __webpack_require__(783); module.exports = function(str) { return str ? ("{}" === str.substr(0, 2) && (str = "\\{\\}" + str.substr(2)), expand((function(str) { return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); @@ -63259,8 +71359,8 @@ module.exports = balanced, balanced.range = range; }, function(module, exports, __webpack_require__) { module.exports = globSync, globSync.GlobSync = GlobSync; - var rp = __webpack_require__(338), minimatch = __webpack_require__(143), path = (minimatch.Minimatch, - __webpack_require__(337).Glob, __webpack_require__(0), __webpack_require__(3)), assert = __webpack_require__(34), isAbsolute = __webpack_require__(144), common = __webpack_require__(339), setopts = common.setopts, ownProp = common.ownProp, childrenIgnored = common.childrenIgnored, isIgnored = common.isIgnored; + var rp = __webpack_require__(389), minimatch = __webpack_require__(181), path = (minimatch.Minimatch, + __webpack_require__(180).Glob, __webpack_require__(0), __webpack_require__(4)), assert = __webpack_require__(22), isAbsolute = __webpack_require__(182), common = __webpack_require__(390), setopts = common.setopts, ownProp = common.ownProp, childrenIgnored = common.childrenIgnored, isIgnored = common.isIgnored; function globSync(pattern, options) { if ("function" == typeof options || 3 === arguments.length) throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167"); return new GlobSync(pattern, options).found; @@ -63442,7 +71542,7 @@ return common.makeAbs(this, f); }; }, function(module, exports, __webpack_require__) { - var wrappy = __webpack_require__(199), reqs = Object.create(null), once = __webpack_require__(25); + var wrappy = __webpack_require__(252), reqs = Object.create(null), once = __webpack_require__(34); function slice(args) { for (var length = args.length, array = [], i = 0; i < length; i++) array[i] = args[i]; return array; @@ -63462,7 +71562,7 @@ })(key)); })); }, function(module, exports, __webpack_require__) { - var ip = exports, Buffer = __webpack_require__(8).Buffer, os = __webpack_require__(17); + var ip = exports, Buffer = __webpack_require__(10).Buffer, os = __webpack_require__(23); function _normalizeFamily(family) { return family ? family.toLowerCase() : "ipv4"; } @@ -63586,7 +71686,7 @@ return (ipl >>> 24) + "." + (ipl >> 16 & 255) + "." + (ipl >> 8 & 255) + "." + (255 & ipl); }; }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(4), Bagpipe = function(limit, options) { + var events = __webpack_require__(5), Bagpipe = function(limit, options) { for (var key in events.EventEmitter.call(this), this.limit = limit, this.active = 0, this.paused = !1, this.queue = [], this.options = { disabled: !1, @@ -63598,7 +71698,7 @@ }), options = options || {}, this.options) options.hasOwnProperty(key) && (this.options[key] = options[key]); this.queueLength = Math.round(this.limit * (this.options.ratio || 1)); }; - __webpack_require__(689)(Bagpipe, events.EventEmitter); + __webpack_require__(788)(Bagpipe, events.EventEmitter); var addToQueue = function(unshift) { return function(method) { var args = [].slice.call(arguments, 1), callback = args[args.length - 1]; @@ -63664,7 +71764,7 @@ TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor; }; }, function(module, exports, __webpack_require__) { - var ip = __webpack_require__(88); + var ip = __webpack_require__(116); function IPSet(start, end) { this.start = start, this.end = end, this.max = end, this.depth = 1, this.left = null, this.right = null; @@ -63721,7 +71821,7 @@ })), self; }; }, function(module, exports, __webpack_require__) { - var bncode = __webpack_require__(142), crypto = __webpack_require__(21), sha1 = function(buf) { + var bncode = __webpack_require__(179), crypto = __webpack_require__(9), sha1 = function(buf) { return crypto.createHash("sha1").update(buf).digest("hex"); }; module.exports = function(torrent) { @@ -63739,7 +71839,7 @@ info.length = torrent.files[0].length, encoded = bncode.encode(info), sha1(encoded) === torrent.infoHash ? encoded : null) : null; }; }, function(module, exports, __webpack_require__) { - var bncode = __webpack_require__(142), crypto = __webpack_require__(21), EXTENSIONS_m_ut_metadata = 1; + var bncode = __webpack_require__(179), crypto = __webpack_require__(9), EXTENSIONS_m_ut_metadata = 1; module.exports = function(engine, callback) { var metadataPieces = []; return function(wire) { @@ -63795,8 +71895,8 @@ }; }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), path = __webpack_require__(3), async = __webpack_require__(30), bagpipe = (path = __webpack_require__(3), - __webpack_require__(146)), crypto = __webpack_require__(21), _ = __webpack_require__(145), debug = __webpack_require__(6)("p2p-stream-storage"), noop = function() {}; + var fs = __webpack_require__(2), path = __webpack_require__(4), async = __webpack_require__(38), bagpipe = (path = __webpack_require__(4), + __webpack_require__(184)), crypto = __webpack_require__(9), _ = __webpack_require__(183), debug = __webpack_require__(8)("p2p-stream-storage"), noop = function() {}; module.exports = function(dir, torrent, opts, engine) { var that = {}; opts = _.extend({ @@ -63911,7 +72011,7 @@ return that; }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), path = __webpack_require__(3), mkdirp = __webpack_require__(104), crypto = __webpack_require__(21), _ = __webpack_require__(145), debug = __webpack_require__(6)("p2p-stream-storage-circular"), noop = function() {}, SANTINEL_BUFFER_FS = new Buffer("fs"); + var fs = __webpack_require__(2), path = __webpack_require__(4), mkdirp = __webpack_require__(132), crypto = __webpack_require__(9), _ = __webpack_require__(183), debug = __webpack_require__(8)("p2p-stream-storage-circular"), noop = function() {}, SANTINEL_BUFFER_FS = new Buffer("fs"); module.exports = function(dir, torrent, opts, engine) { var that = {}, piecesFolder = path.join(dir, "pieces"); function piecePath(idx) { @@ -63996,7 +72096,7 @@ return debug("%s pieces created", pieces.length), that; }; }, function(module, exports, __webpack_require__) { - var stream = __webpack_require__(696), util = __webpack_require__(0), bagpipe = __webpack_require__(146), debug = __webpack_require__(6)("p2p-file-stream"), FileStream = function(engine, file, opts) { + var stream = __webpack_require__(795), util = __webpack_require__(0), bagpipe = __webpack_require__(184), debug = __webpack_require__(8)("p2p-file-stream"), FileStream = function(engine, file, opts) { if (!(this instanceof FileStream)) return new FileStream(engine, file, opts); stream.Readable.call(this), opts || (opts = {}), opts.start || (opts.start = 0), opts.end || "number" == typeof opts.end || (opts.end = file.length - 1); @@ -64038,33 +72138,16 @@ this._destroyed || (this._destroyed = !0, this.emit("close")); }, module.exports = FileStream; }, function(module, exports, __webpack_require__) { - var Stream = __webpack_require__(5); + var Stream = __webpack_require__(3); "disable" === process.env.READABLE_STREAM && Stream ? (module.exports = Stream, (exports = module.exports = Stream.Readable).Readable = Stream.Readable, exports.Writable = Stream.Writable, exports.Duplex = Stream.Duplex, exports.Transform = Stream.Transform, exports.PassThrough = Stream.PassThrough, - exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(340)).Stream = Stream || exports, - exports.Readable = exports, exports.Writable = __webpack_require__(344), exports.Duplex = __webpack_require__(59), - exports.Transform = __webpack_require__(346), exports.PassThrough = __webpack_require__(699)); -}, function(module, exports) { - "function" == typeof Object.create ? module.exports = function(ctor, superCtor) { - superCtor && (ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: !1, - writable: !0, - configurable: !0 - } - })); - } : module.exports = function(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - var TempCtor = function() {}; - TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor; - } - }; + exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(391)).Stream = Stream || exports, + exports.Readable = exports, exports.Writable = __webpack_require__(395), exports.Duplex = __webpack_require__(74), + exports.Transform = __webpack_require__(396), exports.PassThrough = __webpack_require__(797)); }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(26).Buffer, util = __webpack_require__(0); + var Buffer = __webpack_require__(25).Buffer, util = __webpack_require__(0); module.exports = (function() { function BufferList() { !(function(instance, Constructor) { @@ -64112,13 +72195,12 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = PassThrough; - var Transform = __webpack_require__(346), util = Object.create(__webpack_require__(23)); + var Transform = __webpack_require__(396), util = Object.create(__webpack_require__(32)); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - util.inherits = __webpack_require__(76), util.inherits(PassThrough, Transform), - PassThrough.prototype._transform = function(chunk, encoding, cb) { + util.inherits = __webpack_require__(7), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; }, function(module, exports) { @@ -64150,10 +72232,10 @@ !0); }, module.exports = PieceBuffer; }, function(module, exports, __webpack_require__) { - const HLSRouter = __webpack_require__(702); + const HLSRouter = __webpack_require__(800); module.exports = HLSRouter; }, function(module, exports, __webpack_require__) { - const Router = __webpack_require__(83), userSettings = __webpack_require__(75), {ffmpeg: ffmpeg} = __webpack_require__(148), {probeMedia: probeMedia, Converter: Converter} = __webpack_require__(710), retrieveMediaSamples = __webpack_require__(355), ERROR_CODE = { + const Router = __webpack_require__(111), userSettings = __webpack_require__(94), {ffmpeg: ffmpeg} = __webpack_require__(186), {probeMedia: probeMedia, Converter: Converter} = __webpack_require__(808), retrieveMediaSamples = __webpack_require__(405), ERROR_CODE = { CREATE_CONVERTER_FAILED: 1, READ_PLAYLIST_FAILED: 10, READ_INIT_SEGMENT_FAILED: 20, @@ -64314,7 +72396,7 @@ })), router; }; }, function(module, exports, __webpack_require__) { - const {spawn: spawn} = __webpack_require__(22), fs = __webpack_require__(2), path = __webpack_require__(3), kill = __webpack_require__(347), http = __webpack_require__(12), EventEmitter = __webpack_require__(4), portfinder = __webpack_require__(704), bridge = __webpack_require__(349), mode = __webpack_require__(350); + const {spawn: spawn} = __webpack_require__(31), fs = __webpack_require__(2), path = __webpack_require__(4), kill = __webpack_require__(397), http = __webpack_require__(11), EventEmitter = __webpack_require__(5), portfinder = __webpack_require__(802), bridge = __webpack_require__(399), mode = __webpack_require__(400); let port = 11910; module.exports = class { constructor(options, forcedMode) { @@ -64361,7 +72443,7 @@ })); } if ("local" === this.mode) { - const stderr = process.env.HLS_DEBUG && "android" !== process.platform ? fs.openSync(path.join(path.dirname(__webpack_require__.c[__webpack_require__.s].filename), `ffmpeg_${options.track}_${encodeURIComponent(new URL(options.mediaURL).pathname)}.log`), "a") : "ignore"; + const debugDir = process.env.HLS_DEBUG_DIR || path.resolve("./"), stderr = process.env.HLS_DEBUG && "android" !== process.platform ? fs.openSync(path.join(debugDir, `ffmpeg_${options.track}_${encodeURIComponent(new URL(options.mediaURL).pathname)}.log`), "a") : "ignore"; return args.push("pipe:1"), this.convertProcess = spawn(ffmpeg, args, { detached: !0, stdio: [ "ignore", "pipe", stderr ] @@ -64383,7 +72465,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var fs = __webpack_require__(2), os = __webpack_require__(17), net = __webpack_require__(45), path = __webpack_require__(3), _async = __webpack_require__(705), debug = __webpack_require__(706), mkdirp = __webpack_require__(104).mkdirp, debugTestPort = debug("portfinder:testPort"), debugGetPort = debug("portfinder:getPort"), debugDefaultHosts = debug("portfinder:defaultHosts"), internals = { + var fs = __webpack_require__(2), os = __webpack_require__(23), net = __webpack_require__(42), path = __webpack_require__(4), _async = __webpack_require__(803), debug = __webpack_require__(804), mkdirp = __webpack_require__(132).mkdirp, debugTestPort = debug("portfinder:testPort"), debugGetPort = debug("portfinder:getPort"), debugDefaultHosts = debug("portfinder:defaultHosts"), internals = { testPort: function(options, callback) { function onListen() { debugTestPort("done w/ testPort(): OK", options.host, "port", options.port), options.server.removeListener("error", onError), @@ -65655,10 +73737,10 @@ value: !0 }); }, factory(exports); - }).call(this, __webpack_require__(54)(module)); + }).call(this, __webpack_require__(62)(module)); }, function(module, exports, __webpack_require__) { "use strict"; - "undefined" == typeof process || "renderer" === process.type || !0 === process.browser || process.__nwjs ? module.exports = __webpack_require__(707) : module.exports = __webpack_require__(708); + "undefined" == typeof process || "renderer" === process.type || !0 === process.browser || process.__nwjs ? module.exports = __webpack_require__(805) : module.exports = __webpack_require__(806); }, function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { @@ -65699,7 +73781,7 @@ return localStorage; } catch (error) {} })(), exports.colors = [ "#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33" ], - module.exports = __webpack_require__(348)(exports), module.exports.formatters.j = function(v) { + module.exports = __webpack_require__(398)(exports), module.exports.formatters.j = function(v) { try { return JSON.stringify(v); } catch (error) { @@ -65708,7 +73790,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var tty = __webpack_require__(78), util = __webpack_require__(0); + var tty = __webpack_require__(105), util = __webpack_require__(0); exports.init = function(debug) { debug.inspectOpts = {}; for (var keys = Object.keys(exports.inspectOpts), i = 0; i < keys.length; i++) debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; @@ -65728,7 +73810,7 @@ return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); }, exports.colors = [ 6, 2, 3, 4, 5, 1 ]; try { - var supportsColor = __webpack_require__(203); + var supportsColor = __webpack_require__(256); supportsColor && (supportsColor.stderr || supportsColor).level >= 2 && (exports.colors = [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221 ]); } catch (error) {} exports.inspectOpts = Object.keys(process.env).filter((function(key) { @@ -65739,7 +73821,7 @@ })), val = process.env[key]; return val = !!/^(yes|on|true|enabled)$/i.test(val) || !/^(no|off|false|disabled)$/i.test(val) && ("null" === val ? null : Number(val)), obj[prop] = val, obj; - }), {}), module.exports = __webpack_require__(348)(exports); + }), {}), module.exports = __webpack_require__(398)(exports); var formatters = module.exports.formatters; formatters.o = function(v) { return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts).split("\n").map((function(str) { @@ -65749,8 +73831,8 @@ return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts); }; }, function(module, exports, __webpack_require__) { - const {spawn: spawn} = __webpack_require__(22), fs = __webpack_require__(2), path = __webpack_require__(3), kill = __webpack_require__(347), EventEmitter = __webpack_require__(4), {Readable: Readable} = __webpack_require__(5), bridge = __webpack_require__(349), mode = (__webpack_require__(12), - __webpack_require__(350)); + const {spawn: spawn} = __webpack_require__(31), fs = __webpack_require__(2), path = __webpack_require__(4), kill = __webpack_require__(397), EventEmitter = __webpack_require__(5), {Readable: Readable} = __webpack_require__(3), bridge = __webpack_require__(399), mode = (__webpack_require__(11), + __webpack_require__(400)); module.exports = class { constructor(options, forcedMode) { this.events = new EventEmitter, this.probeProcess = null, this.stream = null, this.mode = forcedMode || mode; @@ -65771,7 +73853,7 @@ }); })); if ("local" === this.mode) { - const stderr = process.env.HLS_DEBUG && "android" !== process.platform ? fs.openSync(path.join(path.dirname(__webpack_require__.c[__webpack_require__.s].filename), `ffprobe_${encodeURIComponent(new URL(options.mediaURL).pathname)}.log`), "a") : "ignore"; + const debugDir = process.env.HLS_DEBUG_DIR || path.resolve("./"), stderr = process.env.HLS_DEBUG && "android" !== process.platform ? fs.openSync(path.join(debugDir, `ffprobe_${encodeURIComponent(new URL(options.mediaURL).pathname)}.log`), "a") : "ignore"; return this.probeProcess = spawn(ffprobe, args, { detached: !0, stdio: [ "ignore", "pipe", stderr ] @@ -65785,14 +73867,14 @@ } }; }, function(module, exports, __webpack_require__) { - const probeMedia = __webpack_require__(351), Converter = __webpack_require__(714); + const probeMedia = __webpack_require__(401), Converter = __webpack_require__(812); module.exports = { probeMedia: probeMedia, Converter: Converter }; }, function(module, exports, __webpack_require__) { "use strict"; - var Parser = __webpack_require__(712), through = __webpack_require__(713), bufferFrom = Buffer.from && Buffer.from !== Uint8Array.from; + var Parser = __webpack_require__(810), through = __webpack_require__(811), bufferFrom = Buffer.from && Buffer.from !== Uint8Array.from; function check(x, y) { return "string" == typeof x ? y == x : x && "function" == typeof x.exec ? x.exec(y) : "boolean" == typeof x || "object" == typeof x ? x : "function" == typeof x && x(y); } @@ -66049,7 +74131,7 @@ } }, Parser.C = C, module.exports = Parser; }, function(module, exports, __webpack_require__) { - var Stream = __webpack_require__(5); + var Stream = __webpack_require__(3); function through(write, end, opts) { write = write || function(data) { this.queue(data); @@ -66090,7 +74172,7 @@ } module.exports = through, through.through = through; }, function(module, exports, __webpack_require__) { - const querystring = __webpack_require__(20), {Mutex: Mutex} = __webpack_require__(352), userSettings = __webpack_require__(75), retrieveMediaSamples = __webpack_require__(355), probeMedia = __webpack_require__(351), m3u8 = __webpack_require__(381), MediaConverter = __webpack_require__(765), IGNORED_STREAM_CODECS = [ "dvb_subtitle", "dvd_subtitle", "hdmv_pgs_subtitle", "xsub" ]; + const querystring = __webpack_require__(24), {Mutex: Mutex} = __webpack_require__(402), userSettings = __webpack_require__(94), retrieveMediaSamples = __webpack_require__(405), probeMedia = __webpack_require__(401), m3u8 = __webpack_require__(431), MediaConverter = __webpack_require__(863), IGNORED_STREAM_CODECS = [ "dvb_subtitle", "dvd_subtitle", "hdmv_pgs_subtitle", "xsub" ]; class ConverterDestroyedError extends Error { constructor() { super("MasterConverter is destroyed"), this.name = "ConverterDestroyedError"; @@ -66252,7 +74334,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }); - var tslib_1 = __webpack_require__(105), Semaphore_1 = __webpack_require__(353), Mutex = (function() { + var tslib_1 = __webpack_require__(134), Semaphore_1 = __webpack_require__(403), Mutex = (function() { function Mutex(cancelError) { this._semaphore = new Semaphore_1.default(1, cancelError); } @@ -66288,13 +74370,13 @@ Object.defineProperty(exports, "__esModule", { value: !0 }), exports.tryAcquire = void 0; - var errors_1 = __webpack_require__(106), withTimeout_1 = __webpack_require__(354); + var errors_1 = __webpack_require__(135), withTimeout_1 = __webpack_require__(404); exports.tryAcquire = function(sync, alreadyAcquiredError) { return void 0 === alreadyAcquiredError && (alreadyAcquiredError = errors_1.E_ALREADY_LOCKED), (0, withTimeout_1.withTimeout)(sync, 0, alreadyAcquiredError); }; }, function(module, exports, __webpack_require__) { - const {Decoder: Decoder, Schema: Schema} = __webpack_require__(718), TRACK_TYPE_NAMES = { + const {Decoder: Decoder, Schema: Schema} = __webpack_require__(816), TRACK_TYPE_NAMES = { 1: "video", 2: "audio" }; @@ -66347,17 +74429,17 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Decoder: __webpack_require__(719), - Document: __webpack_require__(356), - Schema: __webpack_require__(10), - FileSource: __webpack_require__(359), - HttpSource: __webpack_require__(360), - StreamFactorySource: __webpack_require__(725) + Decoder: __webpack_require__(817), + Document: __webpack_require__(406), + Schema: __webpack_require__(13), + FileSource: __webpack_require__(409), + HttpSource: __webpack_require__(410), + StreamFactorySource: __webpack_require__(823) }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(33)("matroska:decoder"), debugTag = __webpack_require__(33)("matroska:decoder:tag"), url = (__webpack_require__(2), - __webpack_require__(7)), util = (__webpack_require__(8).SlowBuffer, __webpack_require__(0)), Writable = __webpack_require__(5).Writable, Document2 = __webpack_require__(721), Source = __webpack_require__(358), FileSource = __webpack_require__(359), HttpSource = __webpack_require__(360), tools = __webpack_require__(60), schema = __webpack_require__(10); + var debug = __webpack_require__(41)("matroska:decoder"), debugTag = __webpack_require__(41)("matroska:decoder:tag"), url = (__webpack_require__(2), + __webpack_require__(6)), util = (__webpack_require__(10).SlowBuffer, __webpack_require__(0)), Writable = __webpack_require__(3).Writable, Document2 = __webpack_require__(819), Source = __webpack_require__(408), FileSource = __webpack_require__(409), HttpSource = __webpack_require__(410), tools = __webpack_require__(75), schema = __webpack_require__(13); function Decoder(options) { Writable.call(this, options), options = options || {}, this.options = options, this.skipTags = options.skipTags, void 0 === this.skipTags && (this.skipTags = { @@ -66622,11 +74704,11 @@ } catch (e) {} }, function(module, exports, __webpack_require__) { "use strict"; - var async = __webpack_require__(30), util = __webpack_require__(0), Document1 = __webpack_require__(722); + var async = __webpack_require__(38), util = __webpack_require__(0), Document1 = __webpack_require__(820); function Document2() { Document1.call(this); } - __webpack_require__(10), util.inherits(Document2, Document1), module.exports = Document2, + __webpack_require__(13), util.inherits(Document2, Document1), module.exports = Document2, Document2.prototype.optimizeData = function(options, callback) { return 1 === arguments.length && "function" == typeof options && (callback = options, options = null), this.children ? (options = options || {}, this.deepWalk((function(child) { @@ -66658,8 +74740,8 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(30); - var util = __webpack_require__(0), Document = __webpack_require__(356), schema = __webpack_require__(10); + __webpack_require__(38); + var util = __webpack_require__(0), Document = __webpack_require__(406), schema = __webpack_require__(13); function Document1() { Document.call(this); } @@ -66685,56 +74767,56 @@ }); }, function(module, exports, __webpack_require__) { var map = { - "./_proto": 15, - "./_proto.js": 15, - "./attachedFile": 149, - "./attachedFile.js": 149, - "./attachments": 150, - "./attachments.js": 150, - "./audio": 151, - "./audio.js": 151, - "./crc-32": 152, - "./crc-32.js": 152, - "./cuePoint": 153, - "./cuePoint.js": 153, - "./cueReference": 154, - "./cueReference.js": 154, - "./cueTrackPositions": 156, - "./cueTrackPositions.js": 156, - "./cues": 155, - "./cues.js": 155, - "./element1": 35, - "./element1.js": 35, - "./info": 157, - "./info.js": 157, - "./masterElement": 18, - "./masterElement.js": 18, - "./seek": 158, - "./seek.js": 158, - "./seekHead": 159, - "./seekHead.js": 159, - "./segment": 107, - "./segment.js": 107, - "./segment1": 108, - "./segment1.js": 108, - "./segment2": 109, - "./segment2.js": 109, - "./segment3": 160, - "./segment3.js": 160, - "./simpleTag": 161, - "./simpleTag.js": 161, - "./tag": 162, - "./tag.js": 162, - "./tags": 163, - "./tags.js": 163, - "./targets": 164, - "./targets.js": 164, - "./trackEntry": 165, - "./trackEntry.js": 165, - "./tracks": 166, - "./tracks.js": 166, - "./video": 167, - "./video.js": 167 + "./_proto": 19, + "./_proto.js": 19, + "./attachedFile": 187, + "./attachedFile.js": 187, + "./attachments": 188, + "./attachments.js": 188, + "./audio": 189, + "./audio.js": 189, + "./crc-32": 190, + "./crc-32.js": 190, + "./cuePoint": 191, + "./cuePoint.js": 191, + "./cueReference": 192, + "./cueReference.js": 192, + "./cueTrackPositions": 194, + "./cueTrackPositions.js": 194, + "./cues": 193, + "./cues.js": 193, + "./element1": 43, + "./element1.js": 43, + "./info": 195, + "./info.js": 195, + "./masterElement": 29, + "./masterElement.js": 29, + "./seek": 196, + "./seek.js": 196, + "./seekHead": 197, + "./seekHead.js": 197, + "./segment": 136, + "./segment.js": 136, + "./segment1": 137, + "./segment1.js": 137, + "./segment2": 138, + "./segment2.js": 138, + "./segment3": 198, + "./segment3.js": 198, + "./simpleTag": 199, + "./simpleTag.js": 199, + "./tag": 200, + "./tag.js": 200, + "./tags": 201, + "./tags.js": 201, + "./targets": 202, + "./targets.js": 202, + "./trackEntry": 203, + "./trackEntry.js": 203, + "./tracks": 204, + "./tracks.js": 204, + "./video": 205, + "./video.js": 205 }; function webpackContext(req) { var id = webpackContextResolve(req); @@ -66750,13 +74832,13 @@ webpackContext.keys = function() { return Object.keys(map); }, webpackContext.resolve = webpackContextResolve, module.exports = webpackContext, - webpackContext.id = 723; + webpackContext.id = 821; }, function(module, exports, __webpack_require__) { var debug; module.exports = function() { if (!debug) { try { - debug = __webpack_require__(33)("follow-redirects"); + debug = __webpack_require__(41)("follow-redirects"); } catch (error) {} "function" != typeof debug && (debug = function() {}); } @@ -66765,8 +74847,8 @@ }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(2); - var util = __webpack_require__(0), AbstractSource = (__webpack_require__(33)("matroska:streamFactorySource"), - __webpack_require__(168)); + var util = __webpack_require__(0), AbstractSource = (__webpack_require__(41)("matroska:streamFactorySource"), + __webpack_require__(206)); function StreamFactorySource(streamFactory) { if (AbstractSource.call(this), "function" != typeof streamFactory.getStream) throw new Error("Invalid streamFactory object (getStream function)"); if (streamFactory.end && "function" != typeof streamFactory.end) throw new Error("Invalid streamFactory object (end function)"); @@ -66790,7 +74872,7 @@ return "[StreamFactorySource factory=" + this.streamFactory + "]"; }; }, function(module, exports, __webpack_require__) { - const muxjs = __webpack_require__(362), getMoovBox = __webpack_require__(749), TRACK_TYPE_NAMES = { + const muxjs = __webpack_require__(412), getMoovBox = __webpack_require__(847), TRACK_TYPE_NAMES = { vide: "video", soun: "audio" }; @@ -66882,16 +74964,16 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - generator: __webpack_require__(111), - probe: __webpack_require__(729), - Transmuxer: __webpack_require__(175).Transmuxer, - AudioSegmentStream: __webpack_require__(175).AudioSegmentStream, - VideoSegmentStream: __webpack_require__(175).VideoSegmentStream, - CaptionParser: __webpack_require__(733) + generator: __webpack_require__(140), + probe: __webpack_require__(827), + Transmuxer: __webpack_require__(213).Transmuxer, + AudioSegmentStream: __webpack_require__(213).AudioSegmentStream, + VideoSegmentStream: __webpack_require__(213).VideoSegmentStream, + CaptionParser: __webpack_require__(831) }; }, function(module, exports, __webpack_require__) { "use strict"; - var timescale, startTime, compositionStartTime, getVideoTrackIds, getTracks, getTimescaleFromMediaHeader, toUnsigned = __webpack_require__(112).toUnsigned, toHexString = __webpack_require__(112).toHexString, findBox = __webpack_require__(170), parseType = __webpack_require__(171), parseTfhd = __webpack_require__(172), parseTrun = __webpack_require__(173), parseTfdt = __webpack_require__(174); + var timescale, startTime, compositionStartTime, getVideoTrackIds, getTracks, getTimescaleFromMediaHeader, toUnsigned = __webpack_require__(141).toUnsigned, toHexString = __webpack_require__(141).toHexString, findBox = __webpack_require__(208), parseType = __webpack_require__(209), parseTfhd = __webpack_require__(210), parseTrun = __webpack_require__(211), parseTfdt = __webpack_require__(212); timescale = function(init) { return findBox(init, [ "moov", "trak" ]).reduce((function(result, trak) { var tkhd, version, index, id, mdhd; @@ -67019,7 +75101,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _MetadataStream, Stream = __webpack_require__(29), StreamTypes = __webpack_require__(115), percentEncode = function(bytes, start, end) { + var _MetadataStream, Stream = __webpack_require__(37), StreamTypes = __webpack_require__(144), percentEncode = function(bytes, start, end) { var i, result = ""; for (i = start; i < end; i++) result += "%" + ("00" + bytes[i].toString(16)).slice(-2); return result; @@ -67098,7 +75180,7 @@ }).prototype = new Stream, module.exports = _MetadataStream; }, function(module, exports, __webpack_require__) { "use strict"; - var discardEmulationPreventionBytes = __webpack_require__(367).discardEmulationPreventionBytes, CaptionStream = __webpack_require__(366).CaptionStream, findBox = __webpack_require__(170), parseTfdt = __webpack_require__(174), parseTrun = __webpack_require__(173), parseTfhd = __webpack_require__(172), mapToSample = function(offset, samples) { + var discardEmulationPreventionBytes = __webpack_require__(417).discardEmulationPreventionBytes, CaptionStream = __webpack_require__(416).CaptionStream, findBox = __webpack_require__(208), parseTfdt = __webpack_require__(212), parseTrun = __webpack_require__(211), parseTfhd = __webpack_require__(210), mapToSample = function(offset, samples) { for (var approximateOffset = offset, i = 0; i < samples.length; i++) { var sample = samples[i]; if (approximateOffset < sample.size) return sample; @@ -67226,13 +75308,13 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - tag: __webpack_require__(176), - Transmuxer: __webpack_require__(735), - getFlvHeader: __webpack_require__(738) + tag: __webpack_require__(214), + Transmuxer: __webpack_require__(833), + getFlvHeader: __webpack_require__(836) }; }, function(module, exports, __webpack_require__) { "use strict"; - var _Transmuxer, _VideoSegmentStream, _AudioSegmentStream, collectTimelineInfo, metaDataTag, extraDataTag, Stream = __webpack_require__(29), FlvTag = __webpack_require__(176), m2ts = __webpack_require__(114), AdtsStream = __webpack_require__(110), H264Stream = __webpack_require__(169).H264Stream, CoalesceStream = __webpack_require__(736), TagList = __webpack_require__(737); + var _Transmuxer, _VideoSegmentStream, _AudioSegmentStream, collectTimelineInfo, metaDataTag, extraDataTag, Stream = __webpack_require__(37), FlvTag = __webpack_require__(214), m2ts = __webpack_require__(143), AdtsStream = __webpack_require__(139), H264Stream = __webpack_require__(207).H264Stream, CoalesceStream = __webpack_require__(834), TagList = __webpack_require__(835); collectTimelineInfo = function(track, data) { "number" == typeof data.pts && (void 0 === track.timelineStartInfo.pts ? track.timelineStartInfo.pts = data.pts : track.timelineStartInfo.pts = Math.min(track.timelineStartInfo.pts, data.pts)), "number" == typeof data.dts && (void 0 === track.timelineStartInfo.dts ? track.timelineStartInfo.dts = data.dts : track.timelineStartInfo.dts = Math.min(track.timelineStartInfo.dts, data.dts)); @@ -67344,7 +75426,7 @@ }).prototype = new Stream, module.exports = _Transmuxer; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(29), CoalesceStream = function CoalesceStream(options) { + var Stream = __webpack_require__(37), CoalesceStream = function CoalesceStream(options) { this.numberOfTracks = 0, this.metadataStream = options.metadataStream, this.videoTags = [], this.audioTags = [], this.videoTrack = null, this.audioTrack = null, this.pendingCaptions = [], this.pendingMetadata = [], this.pendingTracks = 0, this.processedTracks = 0, CoalesceStream.prototype.init.call(this), @@ -67398,7 +75480,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var FlvTag = __webpack_require__(176); + var FlvTag = __webpack_require__(214); module.exports = function(duration, audio, video) { var metadata, result, metadataLength, headBytes = new Uint8Array(9), head = new DataView(headBytes.buffer); return duration = duration || 0, audio = void 0 === audio || audio, video = void 0 === video || video, @@ -67412,15 +75494,15 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - module.exports = __webpack_require__(114); + module.exports = __webpack_require__(143); }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Transmuxer: __webpack_require__(741) + Transmuxer: __webpack_require__(839) }; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(29), m2ts = __webpack_require__(114), codecs = __webpack_require__(363), AudioSegmentStream = __webpack_require__(742), VideoSegmentStream = __webpack_require__(743), trackInfo = __webpack_require__(113), isLikelyAacData = __webpack_require__(116).isLikelyAacData, AdtsStream = __webpack_require__(110), AacStream = __webpack_require__(369), clock = __webpack_require__(42), createPipeline = function(object) { + var Stream = __webpack_require__(37), m2ts = __webpack_require__(143), codecs = __webpack_require__(413), AudioSegmentStream = __webpack_require__(840), VideoSegmentStream = __webpack_require__(841), trackInfo = __webpack_require__(142), isLikelyAacData = __webpack_require__(145).isLikelyAacData, AdtsStream = __webpack_require__(139), AacStream = __webpack_require__(419), clock = __webpack_require__(54), createPipeline = function(object) { return object.prototype = new Stream, object.prototype.init.call(object), object; }, setupPipelineListeners = function(pipeline, transmuxer) { pipeline.on("data", transmuxer.trigger.bind(transmuxer, "data")), pipeline.on("done", transmuxer.trigger.bind(transmuxer, "done")), @@ -67564,7 +75646,7 @@ Transmuxer.prototype = new Stream, module.exports = Transmuxer; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(29), mp4 = __webpack_require__(111), audioFrameUtils = __webpack_require__(365), trackInfo = __webpack_require__(113), ONE_SECOND_IN_TS = __webpack_require__(42).ONE_SECOND_IN_TS, AUDIO_PROPERTIES = __webpack_require__(370), AudioSegmentStream = function AudioSegmentStream(track, options) { + var Stream = __webpack_require__(37), mp4 = __webpack_require__(140), audioFrameUtils = __webpack_require__(415), trackInfo = __webpack_require__(142), ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS, AUDIO_PROPERTIES = __webpack_require__(420), AudioSegmentStream = function AudioSegmentStream(track, options) { var adtsFrames = [], sequenceNumber = 0, earliestAllowedDts = 0, audioAppendStartTs = 0, videoBaseMediaDecodeTime = 1 / 0, segmentStartPts = null, segmentEndPts = null; options = options || {}, AudioSegmentStream.prototype.init.call(this), this.push = function(data) { trackInfo.collectDtsInfo(track, data), track && AUDIO_PROPERTIES.forEach((function(prop) { @@ -67608,7 +75690,7 @@ AudioSegmentStream.prototype = new Stream, module.exports = AudioSegmentStream; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(29), mp4 = __webpack_require__(111), trackInfo = __webpack_require__(113), frameUtils = __webpack_require__(364), VIDEO_PROPERTIES = __webpack_require__(371), VideoSegmentStream = function VideoSegmentStream(track, options) { + var Stream = __webpack_require__(37), mp4 = __webpack_require__(140), trackInfo = __webpack_require__(142), frameUtils = __webpack_require__(414), VIDEO_PROPERTIES = __webpack_require__(421), VideoSegmentStream = function VideoSegmentStream(track, options) { var config, pps, gops, sequenceNumber = 0, nalUnits = [], frameCache = [], segmentStartPts = null, segmentEndPts = null, ensureNextFrameIsKeyFrame = !0; options = options || {}, VideoSegmentStream.prototype.init.call(this), this.push = function(nalUnit) { trackInfo.collectDtsInfo(track, nalUnit), void 0 === track.timelineStartInfo.dts && (track.timelineStartInfo.dts = nalUnit.dts), @@ -67674,7 +75756,7 @@ "use strict"; var inspectMp4, _textifyMp, MAX_UINT32 = Math.pow(2, 32), parseMp4Date = function(seconds) { return new Date(1e3 * seconds - 20828448e5); - }, parseType = __webpack_require__(171), findBox = __webpack_require__(170), nalParse = function(avcStream) { + }, parseType = __webpack_require__(209), findBox = __webpack_require__(208), nalParse = function(avcStream) { var i, length, avcView = new DataView(avcStream.buffer, avcStream.byteOffset, avcStream.byteLength), result = []; for (i = 0; i + 4 < avcStream.length; i += length) if (length = avcView.getUint32(i), i += 4, length <= 0) result.push("MALFORMED DATA"); else switch (31 & avcStream[i]) { @@ -67925,7 +76007,7 @@ }); return result; }, - sidx: __webpack_require__(745), + sidx: __webpack_require__(843), smhd: function(data) { return { version: data[0], @@ -68013,8 +76095,8 @@ styp: function(data) { return parse.ftyp(data); }, - tfdt: __webpack_require__(174), - tfhd: __webpack_require__(172), + tfdt: __webpack_require__(212), + tfhd: __webpack_require__(210), tkhd: function(data) { var view = new DataView(data.buffer, data.byteOffset, data.byteLength), i = 4, result = { version: view.getUint8(0), @@ -68057,7 +76139,7 @@ sampleDegradationPriority: view.getUint16(22) }; }, - trun: __webpack_require__(173), + trun: __webpack_require__(211), "url ": function(data) { return { version: data[0], @@ -68204,9 +76286,9 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var StreamTypes = __webpack_require__(115), handleRollover = __webpack_require__(368).handleRollover, probe = {}; - probe.ts = __webpack_require__(748), probe.aac = __webpack_require__(116); - var ONE_SECOND_IN_TS = __webpack_require__(42).ONE_SECOND_IN_TS, parseAudioPes_ = function(bytes, pmt, result) { + var StreamTypes = __webpack_require__(144), handleRollover = __webpack_require__(418).handleRollover, probe = {}; + probe.ts = __webpack_require__(846), probe.aac = __webpack_require__(145); + var ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS, parseAudioPes_ = function(bytes, pmt, result) { for (var packet, pesType, pusi, parsed, startIndex = 0, endIndex = 188, endLoop = !1; endIndex <= bytes.byteLength; ) if (71 !== bytes[startIndex] || 71 !== bytes[endIndex] && endIndex !== bytes.byteLength) startIndex++, endIndex++; else { if (packet = bytes.subarray(startIndex, endIndex), "pes" === probe.ts.parseType(packet, pmt.pid) && (pesType = probe.ts.parsePesType(packet, pmt.table), @@ -68359,7 +76441,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var StreamTypes = __webpack_require__(115), parsePid = function(packet) { + var StreamTypes = __webpack_require__(144), parsePid = function(packet) { var pid = 31 & packet[1]; return (pid <<= 8) | packet[2]; }, parsePayloadUnitStartIndicator = function(packet) { @@ -68474,7 +76556,7 @@ } }; }, function(module, exports, __webpack_require__) { - const {finished: finished} = __webpack_require__(5), DecodeStream = __webpack_require__(372), readChunk = __webpack_require__(178), {open: openInputStream, close: closeInputStream} = __webpack_require__(760); + const {finished: finished} = __webpack_require__(3), DecodeStream = __webpack_require__(422), readChunk = __webpack_require__(216), {open: openInputStream, close: closeInputStream} = __webpack_require__(858); async function parseBoxHeaders(buffer) { return new Promise(((resolve, reject) => { const boxes = [], decodeStream = new DecodeStream, cleanupDecodeStream = finished(decodeStream, (error => { @@ -68506,12 +76588,12 @@ throw new Error("max seeks exceeded"); }; }, function(module, exports, __webpack_require__) { - var Stream = __webpack_require__(5); + var Stream = __webpack_require__(3); "disable" === process.env.READABLE_STREAM && Stream ? (module.exports = Stream.Readable, - Object.assign(module.exports, Stream), module.exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(373)).Stream = Stream || exports, - exports.Readable = exports, exports.Writable = __webpack_require__(377), exports.Duplex = __webpack_require__(61), - exports.Transform = __webpack_require__(378), exports.PassThrough = __webpack_require__(754), - exports.finished = __webpack_require__(177), exports.pipeline = __webpack_require__(755)); + Object.assign(module.exports, Stream), module.exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(423)).Stream = Stream || exports, + exports.Readable = exports, exports.Writable = __webpack_require__(427), exports.Duplex = __webpack_require__(76), + exports.Transform = __webpack_require__(428), exports.PassThrough = __webpack_require__(852), + exports.finished = __webpack_require__(215), exports.pipeline = __webpack_require__(853)); }, function(module, exports, __webpack_require__) { "use strict"; function ownKeys(object, enumerableOnly) { @@ -68539,7 +76621,7 @@ "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); } } - var Buffer = __webpack_require__(8).Buffer, inspect = __webpack_require__(0).inspect, custom = inspect && inspect.custom || "inspect"; + var Buffer = __webpack_require__(10).Buffer, inspect = __webpack_require__(0).inspect, custom = inspect && inspect.custom || "inspect"; module.exports = (function() { function BufferList() { !(function(instance, Constructor) { @@ -68669,7 +76751,7 @@ writable: !0 }) : obj[key] = value, obj; } - var finished = __webpack_require__(177), kLastResolve = Symbol("lastResolve"), kLastReject = Symbol("lastReject"), kError = Symbol("error"), kEnded = Symbol("ended"), kLastPromise = Symbol("lastPromise"), kHandlePromise = Symbol("handlePromise"), kStream = Symbol("stream"); + var finished = __webpack_require__(215), kLastResolve = Symbol("lastResolve"), kLastReject = Symbol("lastReject"), kError = Symbol("error"), kEnded = Symbol("ended"), kLastPromise = Symbol("lastPromise"), kHandlePromise = Symbol("handlePromise"), kStream = Symbol("stream"); function createIterResult(value, done) { return { value: value, @@ -68802,7 +76884,7 @@ writable: !0 }) : obj[key] = value, obj; } - var ERR_INVALID_ARG_TYPE = __webpack_require__(47).codes.ERR_INVALID_ARG_TYPE; + var ERR_INVALID_ARG_TYPE = __webpack_require__(65).codes.ERR_INVALID_ARG_TYPE; module.exports = function(Readable, iterable, opts) { var iterator; if (iterable && "function" == typeof iterable.next) iterator = iterable; else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator](); else { @@ -68842,17 +76924,17 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = PassThrough; - var Transform = __webpack_require__(378); + var Transform = __webpack_require__(428); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - __webpack_require__(11)(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { + __webpack_require__(7)(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; }, function(module, exports, __webpack_require__) { "use strict"; - var eos, _require$codes = __webpack_require__(47).codes, ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; + var eos, _require$codes = __webpack_require__(65).codes, ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; function noop(err) { if (err) throw err; } @@ -68866,7 +76948,7 @@ var closed = !1; stream.on("close", (function() { closed = !0; - })), void 0 === eos && (eos = __webpack_require__(177)), eos(stream, { + })), void 0 === eos && (eos = __webpack_require__(215)), eos(stream, { readable: reading, writable: writing }, (function(err) { @@ -68915,7 +76997,7 @@ }; }; }, function(module, exports, __webpack_require__) { - var Box = __webpack_require__(379), Descriptor = __webpack_require__(758), uint64be = __webpack_require__(380); + var Box = __webpack_require__(429), Descriptor = __webpack_require__(856), uint64be = __webpack_require__(430); function writeReserved(buf, offset, end) { for (var i = offset; i < end; i++) buf[i] = 0; } @@ -69438,7 +77520,7 @@ return obj.oti = oti, obj; }; }, function(module, exports, __webpack_require__) { - const {finished: finished} = __webpack_require__(5); + const {finished: finished} = __webpack_require__(3); module.exports = async function(stream, size) { return new Promise(((resolve, reject) => { if (!stream.readable) return void reject(new Error("stream not readable")); @@ -69457,7 +77539,7 @@ })); }; }, function(module, exports, __webpack_require__) { - const fs = __webpack_require__(2), {http: http, https: https} = __webpack_require__(761), {URL: URL, fileURLToPath: fileURLToPath} = __webpack_require__(7); + const fs = __webpack_require__(2), {http: http, https: https} = __webpack_require__(859), {URL: URL, fileURLToPath: fileURLToPath} = __webpack_require__(6); module.exports = { open: async function(url, offset) { const {protocol: protocol, href: href} = new URL(url); @@ -69495,7 +77577,7 @@ } }; }, function(module, exports, __webpack_require__) { - var url = __webpack_require__(7), URL = url.URL, http = __webpack_require__(12), https = __webpack_require__(19), Writable = __webpack_require__(5).Writable, assert = __webpack_require__(34), debug = __webpack_require__(762), eventHandlers = Object.create(null); + var url = __webpack_require__(6), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(22), debug = __webpack_require__(860), eventHandlers = Object.create(null); [ "abort", "aborted", "connect", "error", "socket", "timeout" ].forEach((function(event) { eventHandlers[event] = function(arg1, arg2, arg3) { this._redirectable.emit(event, arg1, arg2, arg3); @@ -69699,7 +77781,7 @@ var debug; module.exports = function() { if (!debug) try { - debug = __webpack_require__(6)("follow-redirects"); + debug = __webpack_require__(8)("follow-redirects"); } catch (error) { debug = function() {}; } @@ -69722,7 +77804,7 @@ })).reduce(((result, segment) => result.concat(segment)), []), "#EXT-X-ENDLIST" ].join("\n"); }; }, function(module, exports, __webpack_require__) { - const fs = __webpack_require__(2), path = __webpack_require__(3), muxjs = __webpack_require__(362), {Mutex: Mutex} = __webpack_require__(352), readChunk = __webpack_require__(178), segmenter = __webpack_require__(766), mp4 = __webpack_require__(768), vtt = __webpack_require__(772), m3u8 = __webpack_require__(381), spawnConvertProcess = __webpack_require__(781), TRANSMUXED_VIDEO_CODECS = [ "h264" ], TRANSMUXED_AUDIO_CODECS = [ "aac", "mp3" ], TRANSCODING_AAC_SAMPLE_RATES = [ 7350, 8e3, 11025, 12e3, 16e3, 22050, 24e3, 32e3, 44100, 48e3, 64e3, 88200, 96e3 ]; + const fs = __webpack_require__(2), path = __webpack_require__(4), muxjs = __webpack_require__(412), {Mutex: Mutex} = __webpack_require__(402), readChunk = __webpack_require__(216), segmenter = __webpack_require__(864), mp4 = __webpack_require__(866), vtt = __webpack_require__(870), m3u8 = __webpack_require__(431), spawnConvertProcess = __webpack_require__(879), TRANSMUXED_VIDEO_CODECS = [ "h264" ], TRANSMUXED_AUDIO_CODECS = [ "aac", "mp3" ], TRANSCODING_AAC_SAMPLE_RATES = [ 7350, 8e3, 11025, 12e3, 16e3, 22050, 24e3, 32e3, 44100, 48e3, 64e3, 88200, 96e3 ]; class ConverterDestroyedError extends Error { constructor() { super("MediaConverter is destroyed"), this.name = "ConverterDestroyedError"; @@ -69739,7 +77821,7 @@ let initError = null, initSegmentBuffer = null, mediaSegments = null, timescale = null; const convertMutex = new Mutex(new SegmentCanceledError); let convertOptions = null, convertProcess = null, sequenceNumber = null; - const debugOutput = process.env.HLS_DEBUG && "android" !== process.platform ? fs.createWriteStream(path.join(path.dirname(__webpack_require__.c[__webpack_require__.s].filename), `media_${stream.track}${stream.id}_${encodeURIComponent(new URL(mediaURL).pathname)}.log`)) : null; + const debugDir = process.env.HLS_DEBUG_DIR || path.resolve("./"), debugOutput = process.env.HLS_DEBUG && "android" !== process.platform ? fs.createWriteStream(path.join(debugDir, `media_${stream.track}${stream.id}_${encodeURIComponent(new URL(mediaURL).pathname)}.log`)) : null; function debug(message) { process.env.HLS_DEBUG && ("android" === process.platform ? console.log(`HLSV2:convert:${stream.track}${stream.id}:debug`, message) : debugOutput.write(`${(new Date).toLocaleTimeString()} ${message}\n`)); } @@ -70010,13 +78092,13 @@ }; }; }, function(module, exports, __webpack_require__) { - const predict = __webpack_require__(382), retrieve = __webpack_require__(767); + const predict = __webpack_require__(432), retrieve = __webpack_require__(865); module.exports = { predict: predict, retrieve: retrieve }; }, function(module, exports, __webpack_require__) { - const predict = __webpack_require__(382); + const predict = __webpack_require__(432); module.exports = function({stream: stream, format: format, samples: samples, sampleDuration: sampleDuration, timescale: timescale, segmentDuration: segmentDuration}) { const timescaleCoef = timescale / stream.timescale, segmentDurationTs = Math.ceil(segmentDuration * timescale), sampleDurationTs = sampleDuration * timescaleCoef; if (samples.some((({key: key}) => key))) return samples.filter((({key: key}) => key)).map((({pts: pts}, index, keySamples) => ({ @@ -70044,19 +78126,19 @@ }); }; }, function(module, exports, __webpack_require__) { - const init = __webpack_require__(769), media = __webpack_require__(770), updateBaseMediaDecodeTime = __webpack_require__(771); + const init = __webpack_require__(867), media = __webpack_require__(868), updateBaseMediaDecodeTime = __webpack_require__(869); module.exports = { init: init, media: media, updateBaseMediaDecodeTime: updateBaseMediaDecodeTime }; }, function(module, exports, __webpack_require__) { - const readUntilBox = __webpack_require__(383); + const readUntilBox = __webpack_require__(433); module.exports = async function(stream) { return readUntilBox(stream, "moov"); }; }, function(module, exports, __webpack_require__) { - const readUntilBox = __webpack_require__(383); + const readUntilBox = __webpack_require__(433); module.exports = async function(stream) { return readUntilBox(stream, "mdat"); }; @@ -70072,7 +78154,7 @@ buffer.writeUInt8(1, tfdtDataOffset), buffer.writeBigUInt64BE(BigInt(Math.max(baseMediaDecodeTime, 0)), tfdtDataOffset + 4); }; }, function(module, exports, __webpack_require__) { - const format = __webpack_require__(773), parse = __webpack_require__(774); + const format = __webpack_require__(871), parse = __webpack_require__(872); module.exports = { format: format, parse: parse @@ -70085,7 +78167,7 @@ return "WEBVTT\n\n" + cues.map((cue => `${formatTime(cue.startTime)} --\x3e ${formatTime(cue.endTime)}\n${cue.text}\n`)).join("\n"); }; }, function(module, exports, __webpack_require__) { - const {WebVTT: WebVTT, VTTCue: VTTCue} = __webpack_require__(775); + const {WebVTT: WebVTT, VTTCue: VTTCue} = __webpack_require__(873); global.navigator = { userAgent: "" }, module.exports = function(text) { @@ -70102,9 +78184,9 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - WebVTT: __webpack_require__(776).WebVTT, - VTTCue: __webpack_require__(777).VTTCue, - VTTRegion: __webpack_require__(779).VTTRegion + WebVTT: __webpack_require__(874).WebVTT, + VTTCue: __webpack_require__(875).VTTCue, + VTTRegion: __webpack_require__(877).VTTRegion }; }, function(module, exports) { !(function(global) { @@ -70713,7 +78795,7 @@ })(this); }, function(module, exports, __webpack_require__) { var root; - module.exports && (this.VTTCue = this.VTTCue || __webpack_require__(778).VTTCue), + module.exports && (this.VTTCue = this.VTTCue || __webpack_require__(876).VTTCue), (root = this).VTTCue.prototype.toJSON = function() { var cue = {}, self = this; return Object.keys(this).forEach((function(key) { @@ -70875,7 +78957,7 @@ })(this); }, function(module, exports, __webpack_require__) { var root; - module.exports && (this.VTTRegion = __webpack_require__(780).VTTRegion), (root = this).VTTRegion.create = function(options) { + module.exports && (this.VTTRegion = __webpack_require__(878).VTTRegion), (root = this).VTTRegion.create = function(options) { var region = new root.VTTRegion; for (var key in options) region.hasOwnProperty(key) && (region[key] = options[key]); return region; @@ -70971,7 +79053,7 @@ }; })(this); }, function(module, exports, __webpack_require__) { - const {ffmpeg: ffmpeg} = __webpack_require__(148), bitrate = __webpack_require__(782), os = __webpack_require__(17), userSettings = __webpack_require__(75), applyProfile = __webpack_require__(325).applyProfile; + const {ffmpeg: ffmpeg} = __webpack_require__(186), bitrate = __webpack_require__(880), os = __webpack_require__(23), userSettings = __webpack_require__(94), applyProfile = __webpack_require__(377).applyProfile; module.exports = function(options = {}) { !options.profile && userSettings.transcodeHardwareAccel && userSettings.transcodeProfile && (options.profile = userSettings.transcodeProfile); const cpuCores = (os.cpus() || []).length, audioChannels = options.audio ? options.audio.override && "number" == typeof options.audio.override.channels ? options.audio.override.channels : options.audio.channels || 2 : 2, videoBitRate = !!(options.video || {}).transcode && bitrate.video(options.video, options.video.codec, "libx264", userSettings.transcodeMaxBitRate), audioBitRate = !!(options.audio || {}).transcode && bitrate.audio(options.audio, "aac", audioChannels), encodeThreads = cpuCores ? cpuCores * userSettings.transcodeHorsepower : 0; @@ -71072,7 +79154,7 @@ } }; }, function(module, exports, __webpack_require__) { - const PassThrough = __webpack_require__(5).PassThrough, getInfo = __webpack_require__(785), utils = __webpack_require__(77), formatUtils = __webpack_require__(385), urlUtils = __webpack_require__(386), sig = __webpack_require__(388), miniget = __webpack_require__(118), m3u8stream = __webpack_require__(179), {parseTimestamp: parseTimestamp} = __webpack_require__(179), ytdl = (link, options) => { + const PassThrough = __webpack_require__(3).PassThrough, getInfo = __webpack_require__(883), utils = __webpack_require__(95), formatUtils = __webpack_require__(435), urlUtils = __webpack_require__(436), sig = __webpack_require__(438), miniget = __webpack_require__(146), m3u8stream = __webpack_require__(217), {parseTimestamp: parseTimestamp} = __webpack_require__(217), ytdl = (link, options) => { const stream = createStream(options); return ytdl.getInfo(link, options).then((info => { downloadFromInfoCallback(stream, info, options); @@ -71087,7 +79169,7 @@ info: getInfo.cache, watch: getInfo.watchPageCache, cookie: getInfo.cookieCache - }, ytdl.version = __webpack_require__(384).version; + }, ytdl.version = __webpack_require__(434).version; const createStream = options => { const stream = new PassThrough({ highWaterMark: options && options.highWaterMark || 524288 @@ -71168,7 +79250,7 @@ })), stream; }; }, function(module, exports, __webpack_require__) { - const querystring = __webpack_require__(20), sax = __webpack_require__(138), miniget = __webpack_require__(118), utils = __webpack_require__(77), {setTimeout: setTimeout} = __webpack_require__(89), formatUtils = __webpack_require__(385), urlUtils = __webpack_require__(386), extras = __webpack_require__(787), sig = __webpack_require__(388), Cache = __webpack_require__(389), BASE_URL = "https://www.youtube.com/watch?v="; + const querystring = __webpack_require__(24), sax = __webpack_require__(175), miniget = __webpack_require__(146), utils = __webpack_require__(95), {setTimeout: setTimeout} = __webpack_require__(117), formatUtils = __webpack_require__(435), urlUtils = __webpack_require__(436), extras = __webpack_require__(885), sig = __webpack_require__(438), Cache = __webpack_require__(439), BASE_URL = "https://www.youtube.com/watch?v="; exports.cache = new Cache, exports.cookieCache = new Cache(864e5), exports.watchPageCache = new Cache; let cver = "2.20210622.10.00"; class UnrecoverableError extends Error {} @@ -71827,7 +79909,7 @@ } }; }, function(module, exports, __webpack_require__) { - const utils = __webpack_require__(77), qs = __webpack_require__(20), {parseTimestamp: parseTimestamp} = __webpack_require__(179), BASE_URL = "https://www.youtube.com/watch?v=", TITLE_TO_CATEGORY = { + const utils = __webpack_require__(95), qs = __webpack_require__(24), {parseTimestamp: parseTimestamp} = __webpack_require__(217), BASE_URL = "https://www.youtube.com/watch?v=", TITLE_TO_CATEGORY = { song: { name: "Music", url: "https://music.youtube.com/" @@ -72005,7 +80087,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }); - const stream_1 = __webpack_require__(5); + const stream_1 = __webpack_require__(3); class m3u8Parser extends stream_1.Writable { constructor() { super(), this._lastLine = "", this._seq = 0, this._nextItemDuration = null, this._nextItemRange = null, @@ -72089,7 +80171,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }); - const stream_1 = __webpack_require__(5), sax_1 = __importDefault(__webpack_require__(138)), parse_time_1 = __webpack_require__(387); + const stream_1 = __webpack_require__(3), sax_1 = __importDefault(__webpack_require__(175)), parse_time_1 = __webpack_require__(437); class DashMPDParser extends stream_1.Writable { constructor(targetID) { let lastTag; @@ -72232,8 +80314,8 @@ } }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), path = __webpack_require__(3), tmp = __webpack_require__(390), child = __webpack_require__(22), fetch = __webpack_require__(24), pump = __webpack_require__(127), URL = (__webpack_require__(793), - __webpack_require__(7).URL), castingUtils = __webpack_require__(180), Discovery = __webpack_require__(794), ExternalDiscovery = __webpack_require__(795), MDNSDiscovery = __webpack_require__(800), SSDPDiscovery = __webpack_require__(809), ChromecastClient = __webpack_require__(847), DLNAClient = __webpack_require__(857), Router = __webpack_require__(83), discovery = new Discovery([ SSDPDiscovery, MDNSDiscovery, ExternalDiscovery ]), noop = Function.prototype; + var fs = __webpack_require__(2), path = __webpack_require__(4), tmp = __webpack_require__(440), child = __webpack_require__(31), fetch = __webpack_require__(33), pump = __webpack_require__(162), URL = (__webpack_require__(891), + __webpack_require__(6).URL), castingUtils = __webpack_require__(218), Discovery = __webpack_require__(892), ExternalDiscovery = __webpack_require__(893), MDNSDiscovery = __webpack_require__(898), SSDPDiscovery = __webpack_require__(907), ChromecastClient = __webpack_require__(943), DLNAClient = __webpack_require__(953), Router = __webpack_require__(111), discovery = new Discovery([ SSDPDiscovery, MDNSDiscovery, ExternalDiscovery ]), noop = Function.prototype; function Casting(executables) { var self = this; this.ffmpegErrors = "ignore", this.players = {}, this.executables = executables, @@ -72382,7 +80464,7 @@ }, module.exports = Discovery; }, function(module, exports, __webpack_require__) { "use strict"; - var EventEmitter = __webpack_require__(4), util = __webpack_require__(0), externalPlayers = __webpack_require__(796); + var EventEmitter = __webpack_require__(5), util = __webpack_require__(0), externalPlayers = __webpack_require__(894); function ExternalDiscovery() { EventEmitter.call(this); var self = this; @@ -72397,7 +80479,7 @@ externalPlayers(this.devices); }, module.exports = ExternalDiscovery; }, function(module, exports, __webpack_require__) { - var child = __webpack_require__(22), fs = __webpack_require__(2), stremioCast = __webpack_require__(797), enginefs = __webpack_require__(120), http = __webpack_require__(12), os = __webpack_require__(17), path = __webpack_require__(3); + var child = __webpack_require__(31), fs = __webpack_require__(2), stremioCast = __webpack_require__(895), enginefs = __webpack_require__(155), http = __webpack_require__(11), os = __webpack_require__(23), path = __webpack_require__(4); module.exports = function(devices) { var players = { vlc: { @@ -72561,11 +80643,11 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - Client: __webpack_require__(798), - Server: __webpack_require__(799) + Client: __webpack_require__(896), + Server: __webpack_require__(897) }; }, function(module, exports, __webpack_require__) { - var fetch = "undefined" != typeof window ? window.fetch : __webpack_require__(24), events = __webpack_require__(4), PROPS = [ "audio", "audioTrack", "volume", "time", "paused", "state", "length", "mediaSessionId", "subtitlesSrc", "subtitlesDelay", "subtitlesSize" ]; + var fetch = "undefined" != typeof window ? window.fetch : __webpack_require__(33), events = __webpack_require__(5), PROPS = [ "audio", "audioTrack", "volume", "time", "paused", "state", "length", "mediaSessionId", "subtitlesSrc", "subtitlesDelay", "subtitlesSize" ]; module.exports = function(url) { var self = new events.EventEmitter; self.initialized = !1; @@ -72628,7 +80710,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var EventEmitter = __webpack_require__(4), txt = __webpack_require__(801)(), MDNS = __webpack_require__(803); + var EventEmitter = __webpack_require__(5), txt = __webpack_require__(899)(), MDNS = __webpack_require__(901); function MDNSDiscovery() { EventEmitter.call(this), this.MDNSServices = { "_googlecast._tcp.local": "chromecast" @@ -72665,7 +80747,7 @@ }, module.exports = MDNSDiscovery; }, function(module, exports, __webpack_require__) { "use strict"; - var bindexOf = __webpack_require__(802), equalSign = new Buffer("="); + var bindexOf = __webpack_require__(900), equalSign = new Buffer("="); function decodeBlock(buf, offset) { var len = buf[offset], to = offset + 1 + len, b = buf.slice(offset + 1, to > buf.length ? buf.length : to); return decodeBlock.bytes = len + 1, b; @@ -72725,7 +80807,7 @@ return s > -1 && buff.length - s < search.length ? -1 : s; }; }, function(module, exports, __webpack_require__) { - var packet = __webpack_require__(804), dgram = __webpack_require__(53), thunky = __webpack_require__(808), events = __webpack_require__(4), os = __webpack_require__(17), noop = function() {}; + var packet = __webpack_require__(902), dgram = __webpack_require__(69), thunky = __webpack_require__(906), events = __webpack_require__(5), os = __webpack_require__(23), noop = function() {}; module.exports = function(opts) { opts || (opts = {}); var that = new events.EventEmitter, port = "number" == typeof opts.port ? opts.port : 5353, type = opts.type || "udp4", ip = opts.ip || opts.host || ("udp4" === type ? "224.0.0.251" : null), me = { @@ -72820,7 +80902,7 @@ }, that; }; }, function(module, exports, __webpack_require__) { - var types = __webpack_require__(805), rcodes = __webpack_require__(806), opcodes = __webpack_require__(807), ip = __webpack_require__(88), Buffer = __webpack_require__(26).Buffer, name = exports.txt = exports.name = {}; + var types = __webpack_require__(903), rcodes = __webpack_require__(904), opcodes = __webpack_require__(905), ip = __webpack_require__(116), Buffer = __webpack_require__(25).Buffer, name = exports.txt = exports.name = {}; name.encode = function(str, buf, offset) { buf || (buf = Buffer.allocUnsafe(name.encodingLength(str))), offset || (offset = 0); var oldOffset = offset, n = str.replace(/^\.|\.$/gm, ""); @@ -73671,7 +81753,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var url = __webpack_require__(7), EventEmitter = __webpack_require__(4), parseXML = __webpack_require__(181).promisify(__webpack_require__(135).parseString), fetch = __webpack_require__(24), SSDP = __webpack_require__(840).Client; + var url = __webpack_require__(6), EventEmitter = __webpack_require__(5), parseXML = __webpack_require__(219).promisify(__webpack_require__(172).parseString), fetch = __webpack_require__(33), SSDP = __webpack_require__(938).Client; function SSDPDiscovery() { EventEmitter.call(this), this.SSDPServices = { "urn:dial-multiscreen-org:device:dial:1": "chromecast", @@ -73721,24 +81803,24 @@ return Promise.reject(new TypeError(msg)); }; function Proxyable() {} - var getDomain, UNDEFINED_BINDING = {}, util = __webpack_require__(13); + var getDomain, UNDEFINED_BINDING = {}, util = __webpack_require__(16); getDomain = util.isNode ? function() { var ret = process.domain; return void 0 === ret && (ret = null), ret; } : function() { return null; }, util.notEnumerableProp(Promise, "_getDomain", getDomain); - var es5 = __webpack_require__(48), Async = __webpack_require__(811), async = new Async; + var es5 = __webpack_require__(66), Async = __webpack_require__(909), async = new Async; es5.defineProperty(Promise, "_async", { value: async }); - var errors = __webpack_require__(43), TypeError = Promise.TypeError = errors.TypeError; + var errors = __webpack_require__(55), TypeError = Promise.TypeError = errors.TypeError; Promise.RangeError = errors.RangeError; var CancellationError = Promise.CancellationError = errors.CancellationError; Promise.TimeoutError = errors.TimeoutError, Promise.OperationalError = errors.OperationalError, Promise.RejectionError = errors.OperationalError, Promise.AggregateError = errors.AggregateError; - var INTERNAL = function() {}, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = __webpack_require__(814)(Promise, INTERNAL), PromiseArray = __webpack_require__(815)(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = __webpack_require__(816)(Promise), createContext = Context.create, debug = __webpack_require__(817)(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, - __webpack_require__(818)(Promise, tryConvertToPromise, NEXT_FILTER)), catchFilter = __webpack_require__(391)(NEXT_FILTER), nodebackForPromise = __webpack_require__(392), errorObj = util.errorObj, tryCatch = util.tryCatch; + var INTERNAL = function() {}, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = __webpack_require__(912)(Promise, INTERNAL), PromiseArray = __webpack_require__(913)(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = __webpack_require__(914)(Promise), createContext = Context.create, debug = __webpack_require__(915)(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, + __webpack_require__(916)(Promise, tryConvertToPromise, NEXT_FILTER)), catchFilter = __webpack_require__(441)(NEXT_FILTER), nodebackForPromise = __webpack_require__(442), errorObj = util.errorObj, tryCatch = util.tryCatch; function Promise(executor) { executor !== INTERNAL && (function(self, executor) { if (null == self || self.constructor !== Promise) throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n"); @@ -74016,20 +82098,20 @@ reject: deferReject }; }, util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError), - __webpack_require__(819)(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), - __webpack_require__(820)(Promise, INTERNAL, tryConvertToPromise, debug), __webpack_require__(821)(Promise, PromiseArray, apiRejection, debug), - __webpack_require__(822)(Promise), __webpack_require__(823)(Promise), __webpack_require__(824)(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), - Promise.Promise = Promise, Promise.version = "3.5.5", __webpack_require__(825)(Promise), - __webpack_require__(826)(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), - __webpack_require__(827)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), - __webpack_require__(828)(Promise), __webpack_require__(829)(Promise, INTERNAL), - __webpack_require__(830)(Promise, PromiseArray, tryConvertToPromise, apiRejection), - __webpack_require__(831)(Promise, INTERNAL, tryConvertToPromise, apiRejection), - __webpack_require__(832)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), - __webpack_require__(833)(Promise, PromiseArray, debug), __webpack_require__(834)(Promise, PromiseArray, apiRejection), - __webpack_require__(835)(Promise, INTERNAL, debug), __webpack_require__(836)(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), - __webpack_require__(837)(Promise), __webpack_require__(838)(Promise, INTERNAL), - __webpack_require__(839)(Promise, INTERNAL), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), + __webpack_require__(917)(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), + __webpack_require__(918)(Promise, INTERNAL, tryConvertToPromise, debug), __webpack_require__(919)(Promise, PromiseArray, apiRejection, debug), + __webpack_require__(920)(Promise), __webpack_require__(921)(Promise), __webpack_require__(922)(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), + Promise.Promise = Promise, Promise.version = "3.5.5", __webpack_require__(923)(Promise), + __webpack_require__(924)(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), + __webpack_require__(925)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), + __webpack_require__(926)(Promise), __webpack_require__(927)(Promise, INTERNAL), + __webpack_require__(928)(Promise, PromiseArray, tryConvertToPromise, apiRejection), + __webpack_require__(929)(Promise, INTERNAL, tryConvertToPromise, apiRejection), + __webpack_require__(930)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), + __webpack_require__(931)(Promise, PromiseArray, debug), __webpack_require__(932)(Promise, PromiseArray, apiRejection), + __webpack_require__(933)(Promise, INTERNAL, debug), __webpack_require__(934)(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), + __webpack_require__(935)(Promise), __webpack_require__(936)(Promise, INTERNAL), + __webpack_require__(937)(Promise, INTERNAL), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), fillTypes({ a: 1 }), fillTypes({ @@ -74048,7 +82130,7 @@ } catch (e) { firstLineError = e; } - var schedule = __webpack_require__(812), Queue = __webpack_require__(813), util = __webpack_require__(13); + var schedule = __webpack_require__(910), Queue = __webpack_require__(911), util = __webpack_require__(16); function Async() { this._customScheduler = !1, this._isTickUsed = !1, this._lateQueue = new Queue(16), this._normalQueue = new Queue(16), this._haveDrainedQueues = !1, this._trampolineEnabled = !0; @@ -74126,7 +82208,7 @@ }, module.exports = Async, module.exports.firstLineError = firstLineError; }, function(module, exports, __webpack_require__) { "use strict"; - var schedule, div, opts, toggleScheduled, div2, util = __webpack_require__(13), NativePromise = util.getNativePromise(); + var schedule, div, opts, toggleScheduled, div2, util = __webpack_require__(16), NativePromise = util.getNativePromise(); if (util.isNode && "undefined" == typeof MutationObserver) { var GlobalSetImmediate = global.setImmediate, ProcessNextTick = process.nextTick; schedule = util.isRecentNode ? function(fn) { @@ -74193,7 +82275,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, INTERNAL) { - var util = __webpack_require__(13), errorObj = util.errorObj, isObject = util.isObject, hasProp = {}.hasOwnProperty; + var util = __webpack_require__(16), errorObj = util.errorObj, isObject = util.isObject, hasProp = {}.hasOwnProperty; return function(obj, context) { if (isObject(obj)) { if (obj instanceof Promise) return obj; @@ -74236,7 +82318,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable) { - var util = __webpack_require__(13); + var util = __webpack_require__(16); function PromiseArray(values) { var promise = this._promise = new Promise(INTERNAL); values instanceof Promise && promise._propagateFrom(values, 3), promise._setOnCancel(this), @@ -74347,7 +82429,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, Context) { - var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = __webpack_require__(43).Warning, util = __webpack_require__(13), es5 = __webpack_require__(48), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = __webpack_require__(55).Warning, util = __webpack_require__(16), es5 = __webpack_require__(66), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); Promise.prototype.suppressUnhandledRejections = function() { var target = this._target(); target._bitField = -1048577 & target._bitField | 524288; @@ -74846,7 +82928,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { - var util = __webpack_require__(13), CancellationError = Promise.CancellationError, errorObj = util.errorObj, catchFilter = __webpack_require__(391)(NEXT_FILTER); + var util = __webpack_require__(16), CancellationError = Promise.CancellationError, errorObj = util.errorObj, catchFilter = __webpack_require__(441)(NEXT_FILTER); function PassThroughHandlerContext(promise, type, handler) { this.promise = promise, this.type = type, this.handler = handler, this.called = !1, this.cancelPromise = null; @@ -74915,7 +82997,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { - var util = __webpack_require__(13), tryCatch = util.tryCatch; + var util = __webpack_require__(16), tryCatch = util.tryCatch; Promise.method = function(fn) { if ("function" != typeof fn) throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); return function() { @@ -74980,7 +83062,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, apiRejection, debug) { - var util = __webpack_require__(13), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; + var util = __webpack_require__(16), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; Promise.prototype.break = Promise.prototype.cancel = function() { if (!debug.cancellation()) return this._warn("cancellation is disabled"); for (var promise = this, child = promise; promise._isCancellable(); ) { @@ -75126,7 +83208,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain) { - var reject, util = __webpack_require__(13), canEvaluate = util.canEvaluate, tryCatch = util.tryCatch, errorObj = util.errorObj; + var reject, util = __webpack_require__(16), canEvaluate = util.canEvaluate, tryCatch = util.tryCatch, errorObj = util.errorObj; if (canEvaluate) { for (var thenCallback = function(i) { return new Function("value", "holder", " \n 'use strict'; \n holder.pIndex = value; \n holder.checkFulfillment(this); \n ".replace(/Index/g, i)); @@ -75180,7 +83262,7 @@ callerCache[" size"] = getterCache[" size"] = 0; } module.exports = function(Promise) { - var getMethodCaller, getGetter, util = __webpack_require__(13), canEvaluate = util.canEvaluate, isIdentifier = util.isIdentifier, makeMethodCaller = function(methodName) { + var getMethodCaller, getGetter, util = __webpack_require__(16), canEvaluate = util.canEvaluate, isIdentifier = util.isIdentifier, makeMethodCaller = function(methodName) { return new Function("ensureMethod", " \n return function(obj) { \n 'use strict' \n var len = this.length; \n ensureMethod(obj, 'methodName'); \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: \n return obj.methodName.apply(obj, this); \n } \n }; \n ".replace(/methodName/g, methodName))(ensureMethod); }, makeGetter = function(propertyName) { return new Function("obj", " \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName", propertyName)); @@ -75236,7 +83318,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { - var TypeError = __webpack_require__(43).TypeError, util = __webpack_require__(13), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; + var TypeError = __webpack_require__(55).TypeError, util = __webpack_require__(16), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { if (debug.cancellation()) { var internal = new Promise(INTERNAL), _finallyPromise = this._finallyPromise = new Promise(INTERNAL); @@ -75325,7 +83407,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { - var getDomain = Promise._getDomain, util = __webpack_require__(13), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; + var getDomain = Promise._getDomain, util = __webpack_require__(16), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; function MappingPromiseArray(promises, fn, limit, _filter) { this.constructor$(promises), this._promise._captureStackTrace(); var domain = getDomain(); @@ -75391,7 +83473,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise) { - var util = __webpack_require__(13), async = Promise._async, tryCatch = util.tryCatch, errorObj = util.errorObj; + var util = __webpack_require__(16), async = Promise._async, tryCatch = util.tryCatch, errorObj = util.errorObj; function spreadAdapter(val, nodeback) { if (!util.isArray(val)) return successAdapter.call(this, val, nodeback); var ret = tryCatch(nodeback).apply(this._boundValue(), [ null ].concat(val)); @@ -75420,7 +83502,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, INTERNAL) { - var THIS = {}, util = __webpack_require__(13), nodebackForPromise = __webpack_require__(392), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = __webpack_require__(43).TypeError, defaultPromisified = { + var THIS = {}, util = __webpack_require__(16), nodebackForPromise = __webpack_require__(442), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = __webpack_require__(55).TypeError, defaultPromisified = { __isPromisified__: !0 }, noCopyPropsPattern = new RegExp("^(?:" + [ "arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__" ].join("|") + ")$"), defaultFilter = function(name) { return util.isIdentifier(name) && "_" !== name.charAt(0) && "constructor" !== name; @@ -75525,7 +83607,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, tryConvertToPromise, apiRejection) { - var Es6Map, util = __webpack_require__(13), isObject = util.isObject, es5 = __webpack_require__(48); + var Es6Map, util = __webpack_require__(16), isObject = util.isObject, es5 = __webpack_require__(66); "function" == typeof Map && (Es6Map = Map); var mapToEntries = (function() { var index = 0, size = 0; @@ -75585,7 +83667,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, INTERNAL, tryConvertToPromise, apiRejection) { - var util = __webpack_require__(13); + var util = __webpack_require__(16); function race(promises, parent) { var promise, maybePromise = tryConvertToPromise(promises); if (maybePromise instanceof Promise) return (promise = maybePromise).then((function(array) { @@ -75609,7 +83691,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { - var getDomain = Promise._getDomain, util = __webpack_require__(13), tryCatch = util.tryCatch; + var getDomain = Promise._getDomain, util = __webpack_require__(16), tryCatch = util.tryCatch; function ReductionPromiseArray(promises, fn, initialValue, _each) { this.constructor$(promises); var domain = getDomain(); @@ -75679,7 +83761,7 @@ function SettledPromiseArray(values) { this.constructor$(values); } - __webpack_require__(13).inherits(SettledPromiseArray, PromiseArray), SettledPromiseArray.prototype._promiseResolved = function(index, inspection) { + __webpack_require__(16).inherits(SettledPromiseArray, PromiseArray), SettledPromiseArray.prototype._promiseResolved = function(index, inspection) { return this._values[index] = inspection, ++this._totalResolved >= this._length && (this._resolve(this._values), !0); }, SettledPromiseArray.prototype._promiseFulfilled = function(value, index) { @@ -75697,7 +83779,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, apiRejection) { - var util = __webpack_require__(13), RangeError = __webpack_require__(43).RangeError, AggregateError = __webpack_require__(43).AggregateError, isArray = util.isArray, CANCELLATION = {}; + var util = __webpack_require__(16), RangeError = __webpack_require__(55).RangeError, AggregateError = __webpack_require__(55).AggregateError, isArray = util.isArray, CANCELLATION = {}; function SomePromiseArray(values) { this.constructor$(values), this._howMany = 0, this._unwrap = !1, this._initialized = !1; } @@ -75759,7 +83841,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, INTERNAL, debug) { - var util = __webpack_require__(13), TimeoutError = Promise.TimeoutError; + var util = __webpack_require__(16), TimeoutError = Promise.TimeoutError; function HandleWrapper(handle) { this.handle = handle; } @@ -75803,7 +83885,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { - var util = __webpack_require__(13), TypeError = __webpack_require__(43).TypeError, inherits = __webpack_require__(13).inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; + var util = __webpack_require__(16), TypeError = __webpack_require__(55).TypeError, inherits = __webpack_require__(16).inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; function thrower(e) { setTimeout((function() { throw e; @@ -75960,14 +84042,14 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Server: __webpack_require__(841), - Client: __webpack_require__(846), - Core: __webpack_require__(183) + Server: __webpack_require__(939), + Client: __webpack_require__(942), + Core: __webpack_require__(221) }; }, function(module, exports, __webpack_require__) { "use strict"; !(function() { - var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(4).EventEmitter, constants = __webpack_require__(182), extend = __webpack_require__(842), SSDP = __webpack_require__(183), uuidV4 = __webpack_require__(843), self = function(opts) { + var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(5).EventEmitter, constants = __webpack_require__(220), extend = __webpack_require__(147), SSDP = __webpack_require__(221), uuidV4 = __webpack_require__(148), self = function(opts) { opts = opts || {}, this.advertisementInterval = opts.advertisementInterval || 1e4, this.description = opts.description || "upnp/desc.php", this.packetTtl = opts.packetTtl || 1800, this.suppressRootDeviceAdvertisement = opts.suppressRootDeviceAdvertisement || !1, @@ -76051,56 +84133,7 @@ }, module.exports = self; })(); }, function(module, exports, __webpack_require__) { - "use strict"; - var hasOwn = Object.prototype.hasOwnProperty, toStr = Object.prototype.toString, defineProperty = Object.defineProperty, gOPD = Object.getOwnPropertyDescriptor, isArray = function(arr) { - return "function" == typeof Array.isArray ? Array.isArray(arr) : "[object Array]" === toStr.call(arr); - }, isPlainObject = function(obj) { - if (!obj || "[object Object]" !== toStr.call(obj)) return !1; - var key, hasOwnConstructor = hasOwn.call(obj, "constructor"), hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, "isPrototypeOf"); - if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) return !1; - for (key in obj) ; - return void 0 === key || hasOwn.call(obj, key); - }, setProperty = function(target, options) { - defineProperty && "__proto__" === options.name ? defineProperty(target, options.name, { - enumerable: !0, - configurable: !0, - value: options.newValue, - writable: !0 - }) : target[options.name] = options.newValue; - }, getProperty = function(obj, name) { - if ("__proto__" === name) { - if (!hasOwn.call(obj, name)) return; - if (gOPD) return gOPD(obj, name).value; - } - return obj[name]; - }; - module.exports = function extend() { - var options, name, src, copy, copyIsArray, clone, target = arguments[0], i = 1, length = arguments.length, deep = !1; - for ("boolean" == typeof target && (deep = target, target = arguments[1] || {}, - i = 2), (null == target || "object" != typeof target && "function" != typeof target) && (target = {}); i < length; ++i) if (null != (options = arguments[i])) for (name in options) src = getProperty(target, name), - target !== (copy = getProperty(options, name)) && (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy))) ? (copyIsArray ? (copyIsArray = !1, - clone = src && isArray(src) ? src : []) : clone = src && isPlainObject(src) ? src : {}, - setProperty(target, { - name: name, - newValue: extend(deep, clone, copy) - })) : void 0 !== copy && setProperty(target, { - name: name, - newValue: copy - })); - return target; - }; -}, function(module, exports, __webpack_require__) { - var rng = __webpack_require__(844), bytesToUuid = __webpack_require__(845); - module.exports = function(options, buf, offset) { - var i = buf && offset || 0; - "string" == typeof options && (buf = "binary" === options ? new Array(16) : null, - options = null); - var rnds = (options = options || {}).random || (options.rng || rng)(); - if (rnds[6] = 15 & rnds[6] | 64, rnds[8] = 63 & rnds[8] | 128, buf) for (var ii = 0; ii < 16; ++ii) buf[i + ii] = rnds[ii]; - return buf || bytesToUuid(rnds); - }; -}, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(21); + var crypto = __webpack_require__(9); module.exports = function() { return crypto.randomBytes(16); }; @@ -76113,7 +84146,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; !(function() { - var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(4).EventEmitter, constants = __webpack_require__(182), SSDP = __webpack_require__(183), self = function(opts) { + var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(5).EventEmitter, constants = __webpack_require__(220), SSDP = __webpack_require__(221), self = function(opts) { opts = opts || {}, this.searchInterval = opts.searchInterval || 1e4, this.ssdp = new SSDP(opts), this.timer = !1; }; @@ -76163,8 +84196,8 @@ })(); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(394); - var castingUtils = __webpack_require__(180), querystring = __webpack_require__(20), Promise = __webpack_require__(181), Client = __webpack_require__(848).Client, util = __webpack_require__(0), Player = __webpack_require__(397); + __webpack_require__(444); + var castingUtils = __webpack_require__(218), querystring = __webpack_require__(24), Promise = __webpack_require__(219), Client = __webpack_require__(944).Client, util = __webpack_require__(0), Player = __webpack_require__(447); function ChromecastClient(device, executables) { Player.call(this, device), this.audio = { tracks: [], @@ -76385,10 +84418,10 @@ })); }, module.exports = ChromecastClient; }, function(module, exports, __webpack_require__) { - var Client = __webpack_require__(849), Server = __webpack_require__(856), DeviceAuthMessage = __webpack_require__(184).DeviceAuthMessage; + var Client = __webpack_require__(945), Server = __webpack_require__(952), DeviceAuthMessage = __webpack_require__(222).DeviceAuthMessage; module.exports.Client = Client, module.exports.Server = Server, module.exports.DeviceAuthMessage = DeviceAuthMessage; }, function(module, exports, __webpack_require__) { - var EventEmitter = __webpack_require__(4).EventEmitter, util = __webpack_require__(0), tls = __webpack_require__(133), debug = __webpack_require__(6)("castv2"), protocol = __webpack_require__(184), PacketStreamWrapper = __webpack_require__(396), Channel = __webpack_require__(855), CastMessage = protocol.CastMessage; + var EventEmitter = __webpack_require__(5).EventEmitter, util = __webpack_require__(0), tls = __webpack_require__(92), debug = __webpack_require__(8)("castv2"), protocol = __webpack_require__(222), PacketStreamWrapper = __webpack_require__(446), Channel = __webpack_require__(951), CastMessage = protocol.CastMessage; function Client() { EventEmitter.call(this), this.socket = null, this.ps = null; } @@ -76431,7 +84464,7 @@ return new Channel(this, sourceId, destinationId, namespace, encoding); }, module.exports = Client; }, function(module, exports, __webpack_require__) { - var ProtoBuf = __webpack_require__(851); + var ProtoBuf = __webpack_require__(947); module.exports = ProtoBuf; }, function(module, exports, __webpack_require__) { (function(module) { @@ -76531,7 +84564,7 @@ IS_NODE: !1 }; try { - Util.IS_NODE = "function" == typeof __webpack_require__(2).readFileSync && "function" == typeof __webpack_require__(3).resolve; + Util.IS_NODE = "function" == typeof __webpack_require__(2).readFileSync && "function" == typeof __webpack_require__(4).resolve; } catch (e) {} return Util.XHR = function() { for (var XMLHttpFactories = [ function() { @@ -77751,7 +85784,7 @@ return this.resolved = !1, this.result = null, this; }, BuilderPrototype.import = function(json, filename) { if ("string" == typeof filename) { - if (ProtoBuf.Util.IS_NODE && (filename = __webpack_require__(3).resolve(filename)), + if (ProtoBuf.Util.IS_NODE && (filename = __webpack_require__(4).resolve(filename)), !0 === this.files[filename]) return this.reset(), this; this.files[filename] = !0; } @@ -77868,10 +85901,10 @@ return null === contents ? null : ProtoBuf.loadJson(JSON.parse(contents), builder, filename); }, ProtoBuf; } - module && "object" == typeof exports && exports ? module.exports = init(__webpack_require__(395)) : (__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(395) ], + module && "object" == typeof exports && exports ? module.exports = init(__webpack_require__(445)) : (__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(445) ], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = init) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); })(); - }).call(this, __webpack_require__(54)(module)); + }).call(this, __webpack_require__(62)(module)); }, function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = function() { @@ -78207,7 +86240,7 @@ services: [] }; }, function(module, exports, __webpack_require__) { - var EventEmitter = __webpack_require__(4).EventEmitter, util = __webpack_require__(0); + var EventEmitter = __webpack_require__(5).EventEmitter, util = __webpack_require__(0); function Channel(bus, sourceId, destinationId, namespace, encoding) { EventEmitter.call(this), this.bus = bus, this.sourceId = sourceId, this.destinationId = destinationId, this.namespace = namespace, this.encoding = encoding; @@ -78223,7 +86256,7 @@ self.bus.removeListener("message", onmessage); })); } - __webpack_require__(6)("castv2"), util.inherits(Channel, EventEmitter), Channel.prototype.send = function(data) { + __webpack_require__(8)("castv2"), util.inherits(Channel, EventEmitter), Channel.prototype.send = function(data) { this.bus.send(this.sourceId, this.destinationId, this.namespace, (function(data, encoding) { if (!encoding) return data; if ("JSON" === encoding) return JSON.stringify(data); @@ -78233,7 +86266,7 @@ this.emit("close"); }, module.exports = Channel; }, function(module, exports, __webpack_require__) { - var EventEmitter = __webpack_require__(4).EventEmitter, util = __webpack_require__(0), tls = __webpack_require__(133), debug = __webpack_require__(6)("castv2"), protocol = __webpack_require__(184), PacketStreamWrapper = __webpack_require__(396), CastMessage = protocol.CastMessage; + var EventEmitter = __webpack_require__(5).EventEmitter, util = __webpack_require__(0), tls = __webpack_require__(92), debug = __webpack_require__(8)("castv2"), protocol = __webpack_require__(222), PacketStreamWrapper = __webpack_require__(446), CastMessage = protocol.CastMessage; function Server(options) { EventEmitter.call(this), this.server = new tls.Server(options), this.clients = {}; } @@ -78290,10 +86323,10 @@ }, module.exports = Server; }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(7); - var querystring = __webpack_require__(20), Promise = __webpack_require__(181), MediaRendererClient = (__webpack_require__(24), - Promise.promisifyAll(__webpack_require__(390)), __webpack_require__(22), __webpack_require__(127), - __webpack_require__(858)), util = __webpack_require__(0), castingUtils = __webpack_require__(180), Player = __webpack_require__(397); + __webpack_require__(6); + var querystring = __webpack_require__(24), Promise = __webpack_require__(219), MediaRendererClient = (__webpack_require__(33), + Promise.promisifyAll(__webpack_require__(440)), __webpack_require__(31), __webpack_require__(162), + __webpack_require__(954)), util = __webpack_require__(0), castingUtils = __webpack_require__(218), Player = __webpack_require__(447); function DLNAClient(device, executables) { Player.call(this, device), this.device = device, this.seekTime = 0, this.stateFlags = 1, this.executables = executables, this.videoDuration = {}, this._handleError = this._handleError.bind(this), @@ -78417,8 +86450,8 @@ return this.stateFlags = 1, this.stop(); }, module.exports = DLNAClient; }, function(module, exports, __webpack_require__) { - var DeviceClient = __webpack_require__(859), util = __webpack_require__(0), et = (__webpack_require__(6)("upnp-mediarenderer-client"), - __webpack_require__(185)), MEDIA_EVENTS = [ "status", "loading", "playing", "paused", "stopped", "speedChanged" ]; + var DeviceClient = __webpack_require__(955), util = __webpack_require__(0), et = (__webpack_require__(8)("upnp-mediarenderer-client"), + __webpack_require__(223)), MEDIA_EVENTS = [ "status", "loading", "playing", "paused", "stopped", "speedChanged" ]; function MediaRendererClient(url) { DeviceClient.call(this, url), this.instanceId = 0; var receivedState, self = this, refs = 0; @@ -78581,7 +86614,7 @@ this.callAction("RenderingControl", "SetVolume", params, callback || noop); }, module.exports = MediaRendererClient; }, function(module, exports, __webpack_require__) { - var http = __webpack_require__(12), util = __webpack_require__(0), EventEmitter = __webpack_require__(4).EventEmitter, et = __webpack_require__(185), parseUrl = __webpack_require__(7).parse, os = __webpack_require__(17), concat = __webpack_require__(867), address = __webpack_require__(872), debug = __webpack_require__(6)("upnp-device-client"), pkg = __webpack_require__(873), OS_VERSION = [ os.platform(), os.release() ].join("/"), PACKAGE_VERSION = [ pkg.name, pkg.version ].join("/"); + var http = __webpack_require__(11), util = __webpack_require__(0), EventEmitter = __webpack_require__(5).EventEmitter, et = __webpack_require__(223), parseUrl = __webpack_require__(6).parse, os = __webpack_require__(23), concat = __webpack_require__(963), address = __webpack_require__(968), debug = __webpack_require__(8)("upnp-device-client"), pkg = __webpack_require__(969), OS_VERSION = [ os.platform(), os.release() ].join("/"), PACKAGE_VERSION = [ pkg.name, pkg.version ].join("/"); function DeviceClient(url) { EventEmitter.call(this), this.url = url, this.deviceDescription = null, this.serviceDescriptions = {}, this.server = null, this.listening = !1, this.subscriptions = {}; @@ -78843,7 +86876,7 @@ this.server.close(), this.server = null, this.listening = !1); }, module.exports = DeviceClient; }, function(module, exports, __webpack_require__) { - var sprintf = __webpack_require__(186).sprintf, utils = __webpack_require__(398), SyntaxError = __webpack_require__(861).SyntaxError, _cache = {}, RE = new RegExp("('[^']*'|\"[^\"]*\"|::|//?|\\.\\.|\\(\\)|[/.*:\\[\\]\\(\\)@=])|((?:\\{[^}]+\\})?[^/\\[\\]\\(\\)@=\\s]+)|\\s+", "g"), xpath_tokenizer = utils.findall.bind(null, RE), ops = { + var sprintf = __webpack_require__(224).sprintf, utils = __webpack_require__(448), SyntaxError = __webpack_require__(957).SyntaxError, _cache = {}, RE = new RegExp("('[^']*'|\"[^\"]*\"|::|//?|\\.\\.|\\(\\)|[/.*:\\[\\]\\(\\)@=])|((?:\\{[^}]+\\})?[^/\\[\\]\\(\\)@=\\s]+)|\\s+", "g"), xpath_tokenizer = utils.findall.bind(null, RE), ops = { "": function(next, token) { var tag = token[0]; return function(context, result) { @@ -78954,7 +86987,7 @@ return resultElements && resultElements.length > 0 ? resultElements[0].text : defvalue; }; }, function(module, exports, __webpack_require__) { - var util = __webpack_require__(0), sprintf = __webpack_require__(186).sprintf; + var util = __webpack_require__(0), sprintf = __webpack_require__(224).sprintf; function SyntaxError(token, msg) { msg = msg || sprintf("Syntax Error at token %s", token.toString()), this.token = token, this.message = msg, Error.call(this, msg); @@ -78962,16 +86995,16 @@ util.inherits(SyntaxError, Error), exports.SyntaxError = SyntaxError; }, function(module, exports, __webpack_require__) { __webpack_require__(0); - var parsers = __webpack_require__(863); + var parsers = __webpack_require__(959); exports.get_parser = function(name) { if ("sax" === name) return parsers.sax; throw new Error("Invalid parser: " + name); }; }, function(module, exports, __webpack_require__) { - exports.sax = __webpack_require__(864); + exports.sax = __webpack_require__(960); }, function(module, exports, __webpack_require__) { __webpack_require__(0); - var sax = __webpack_require__(865), TreeBuilder = __webpack_require__(399).TreeBuilder; + var sax = __webpack_require__(961), TreeBuilder = __webpack_require__(449).TreeBuilder; function XMLParser(target) { this.parser = sax.parser(!0), this.target = target || new TreeBuilder, this.parser.onopentag = this._handleOpenTag.bind(this), this.parser.ontext = this._handleText.bind(this), this.parser.oncdata = this._handleCdata.bind(this), @@ -79292,7 +87325,7 @@ } }; try { - Stream = __webpack_require__(5).Stream; + Stream = __webpack_require__(3).Stream; } catch (ex) { Stream = function() {}; } @@ -79329,7 +87362,7 @@ }), SAXStream.prototype.write = function(data) { if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(data)) { if (!this._decoder) { - var SD = __webpack_require__(121).StringDecoder; + var SD = __webpack_require__(156).StringDecoder; this._decoder = new SD("utf8"); } data = this._decoder.write(data); @@ -79814,8 +87847,8 @@ }, function(module, exports) { exports.DEFAULT_PARSER = "sax"; }, function(module, exports, __webpack_require__) { - var Writable = __webpack_require__(868).Writable, inherits = __webpack_require__(11), bufferFrom = __webpack_require__(335); - if ("undefined" == typeof Uint8Array) var U8 = __webpack_require__(871).Uint8Array; else U8 = Uint8Array; + var Writable = __webpack_require__(77).Writable, inherits = __webpack_require__(7), bufferFrom = __webpack_require__(387); + if ("undefined" == typeof Uint8Array) var U8 = __webpack_require__(967).Uint8Array; else U8 = Uint8Array; function ConcatStream(opts, cb) { if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb); "function" == typeof opts && (cb = opts, opts = {}), opts || (opts = {}); @@ -79860,17 +87893,26 @@ return u8; })(this.body) : this.body) : []; }, Array.isArray; -}, function(module, exports, __webpack_require__) { - var Stream = __webpack_require__(5); - "disable" === process.env.READABLE_STREAM && Stream ? (module.exports = Stream, - (exports = module.exports = Stream.Readable).Readable = Stream.Readable, exports.Writable = Stream.Writable, - exports.Duplex = Stream.Duplex, exports.Transform = Stream.Transform, exports.PassThrough = Stream.PassThrough, - exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(400)).Stream = Stream || exports, - exports.Readable = exports, exports.Writable = __webpack_require__(403), exports.Duplex = __webpack_require__(62), - exports.Transform = __webpack_require__(404), exports.PassThrough = __webpack_require__(870)); +}, function(module, exports) { + "function" == typeof Object.create ? module.exports = function(ctor, superCtor) { + superCtor && (ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: !1, + writable: !0, + configurable: !0 + } + })); + } : module.exports = function(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() {}; + TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor; + } + }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(26).Buffer, util = __webpack_require__(0); + var Buffer = __webpack_require__(25).Buffer, util = __webpack_require__(0); module.exports = (function() { function BufferList() { !(function(instance, Constructor) { @@ -79918,12 +87960,12 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = PassThrough; - var Transform = __webpack_require__(404), util = __webpack_require__(23); + var Transform = __webpack_require__(455), util = __webpack_require__(32); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - util.inherits = __webpack_require__(11), util.inherits(PassThrough, Transform), + util.inherits = __webpack_require__(96), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; @@ -80203,7 +88245,7 @@ exports.DataView = exports.DataView || DataView; })(); }, function(module, exports, __webpack_require__) { - var os = __webpack_require__(17); + var os = __webpack_require__(23); function pickInterface(interfaces, family) { for (var i in interfaces) for (var j = interfaces[i].length - 1; j >= 0; j--) { var face = interfaces[i][j], reachable = "IPv4" === family || 0 === face.scopeid; @@ -80248,9 +88290,9 @@ keywords: [ "upnp", "dlna" ] }; }, function(module, exports, __webpack_require__) { - const addonSDK = __webpack_require__(875), fs = __webpack_require__(2); + const addonSDK = __webpack_require__(971), fs = __webpack_require__(2); let engineUrl = "http://127.0.0.1:11470"; - const manifest = __webpack_require__(414), manifestNoCatalogs = __webpack_require__(905), catalogHandler = __webpack_require__(906), metaHandler = __webpack_require__(907), streamHandler = __webpack_require__(929), Storage = __webpack_require__(930), findFiles = __webpack_require__(931), indexer = __webpack_require__(416), mapEntryToMeta = __webpack_require__(417), storage = new Storage({ + const manifest = __webpack_require__(465), manifestNoCatalogs = __webpack_require__(1001), catalogHandler = __webpack_require__(1002), metaHandler = __webpack_require__(1003), streamHandler = __webpack_require__(1025), Storage = __webpack_require__(1026), findFiles = __webpack_require__(1027), indexer = __webpack_require__(467), mapEntryToMeta = __webpack_require__(468), storage = new Storage({ validateRecord: function(index, entry) { fs.accessSync(index, fs.constants.R_OK); }, @@ -80292,7 +88334,7 @@ } }; }, function(module, exports, __webpack_require__) { - const express = __webpack_require__(876), cors = __webpack_require__(898), http = __webpack_require__(12), linter = __webpack_require__(900), qs = __webpack_require__(20), publishToDir = __webpack_require__(903), publishToCentral = __webpack_require__(904); + const express = __webpack_require__(972), cors = __webpack_require__(994), http = __webpack_require__(11), linter = __webpack_require__(996), qs = __webpack_require__(24), publishToDir = __webpack_require__(999), publishToCentral = __webpack_require__(1e3); module.exports = function(manifest) { const addonHTTP = express.Router(); addonHTTP.use(cors()); @@ -80349,10 +88391,10 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - module.exports = __webpack_require__(877); + module.exports = __webpack_require__(973); }, function(module, exports, __webpack_require__) { "use strict"; - var bodyParser = __webpack_require__(192), EventEmitter = __webpack_require__(4).EventEmitter, mixin = __webpack_require__(878), proto = __webpack_require__(879), Route = __webpack_require__(406), Router = __webpack_require__(405), req = __webpack_require__(887), res = __webpack_require__(894); + var bodyParser = __webpack_require__(106), EventEmitter = __webpack_require__(5).EventEmitter, mixin = __webpack_require__(974), proto = __webpack_require__(975), Route = __webpack_require__(457), Router = __webpack_require__(456), req = __webpack_require__(983), res = __webpack_require__(990); (exports = module.exports = function() { var app = function(req, res, next) { app.handle(req, res, next); @@ -80373,8 +88415,8 @@ } }), app.init(), app; }).application = proto, exports.request = req, exports.response = res, exports.Route = Route, - exports.Router = Router, exports.json = bodyParser.json, exports.query = __webpack_require__(408), - exports.raw = bodyParser.raw, exports.static = __webpack_require__(897), exports.text = bodyParser.text, + exports.Router = Router, exports.json = bodyParser.json, exports.query = __webpack_require__(459), + exports.raw = bodyParser.raw, exports.static = __webpack_require__(993), exports.text = bodyParser.text, exports.urlencoded = bodyParser.urlencoded, [ "bodyParser", "compress", "cookieSession", "session", "logger", "cookieParser", "favicon", "responseTime", "errorHandler", "timeout", "methodOverride", "vhost", "csrf", "directory", "limit", "multipart", "staticCache" ].forEach((function(name) { Object.defineProperty(exports, name, { get: function() { @@ -80398,7 +88440,7 @@ var hasOwnProperty = Object.prototype.hasOwnProperty; }, function(module, exports, __webpack_require__) { "use strict"; - var finalhandler = __webpack_require__(880), Router = __webpack_require__(405), methods = __webpack_require__(70), middleware = __webpack_require__(881), query = __webpack_require__(408), debug = __webpack_require__(6)("express:application"), View = __webpack_require__(882), http = __webpack_require__(12), compileETag = __webpack_require__(49).compileETag, compileQueryParser = __webpack_require__(49).compileQueryParser, compileTrust = __webpack_require__(49).compileTrust, deprecate = __webpack_require__(36)("express"), flatten = __webpack_require__(119), merge = __webpack_require__(52), resolve = __webpack_require__(3).resolve, setPrototypeOf = __webpack_require__(80), slice = Array.prototype.slice, app = module.exports = {}; + var finalhandler = __webpack_require__(976), Router = __webpack_require__(456), methods = __webpack_require__(61), middleware = __webpack_require__(977), query = __webpack_require__(459), debug = __webpack_require__(8)("express:application"), View = __webpack_require__(978), http = __webpack_require__(11), compileETag = __webpack_require__(67).compileETag, compileQueryParser = __webpack_require__(67).compileQueryParser, compileTrust = __webpack_require__(67).compileTrust, deprecate = __webpack_require__(47)("express"), flatten = __webpack_require__(149), merge = __webpack_require__(60), resolve = __webpack_require__(4).resolve, setPrototypeOf = __webpack_require__(108), slice = Array.prototype.slice, app = module.exports = {}; function logerror(err) { "test" !== this.get("env") && console.error(err.stack || err.toString()); } @@ -80534,7 +88576,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(6)("finalhandler"), encodeUrl = __webpack_require__(64), escapeHtml = __webpack_require__(65), onFinished = __webpack_require__(66), parseUrl = __webpack_require__(37), statuses = __webpack_require__(81), unpipe = __webpack_require__(123), DOUBLE_SPACE_REGEXP = /\x20{2}/g, NEWLINE_REGEXP = /\n/g, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var debug = __webpack_require__(8)("finalhandler"), encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), onFinished = __webpack_require__(85), parseUrl = __webpack_require__(46), statuses = __webpack_require__(109), unpipe = __webpack_require__(158), DOUBLE_SPACE_REGEXP = /\x20{2}/g, NEWLINE_REGEXP = /\n/g, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }, isFinished = onFinished.isFinished; function headersSent(res) { @@ -80592,7 +88634,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var setPrototypeOf = __webpack_require__(80); + var setPrototypeOf = __webpack_require__(108); exports.init = function(app) { return function(req, res, next) { app.enabled("x-powered-by") && res.setHeader("X-Powered-By", "Express"), req.res = res, @@ -80602,7 +88644,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(6)("express:view"), path = __webpack_require__(3), fs = __webpack_require__(2), dirname = path.dirname, basename = path.basename, extname = path.extname, join = path.join, resolve = path.resolve; + var debug = __webpack_require__(8)("express:view"), path = __webpack_require__(4), fs = __webpack_require__(2), dirname = path.dirname, basename = path.basename, extname = path.extname, join = path.join, resolve = path.resolve; function View(name, options) { var opts = options || {}; if (this.defaultEngine = opts.defaultEngine, this.ext = extname(name), this.name = name, @@ -80612,7 +88654,7 @@ fileName += this.ext), !opts.engines[this.ext]) { var mod = this.ext.substr(1); debug('require "%s"', mod); - var fn = __webpack_require__(883)(mod).__express; + var fn = __webpack_require__(979)(mod).__express; if ("function" != typeof fn) throw new Error('Module "' + mod + '" does not provide a view engine.'); opts.engines[this.ext] = fn; } @@ -80648,10 +88690,10 @@ webpackEmptyContext.keys = function() { return []; }, webpackEmptyContext.resolve = webpackEmptyContext, module.exports = webpackEmptyContext, - webpackEmptyContext.id = 883; + webpackEmptyContext.id = 979; }, function(module, exports, __webpack_require__) { "use strict"; - var ReadStream = __webpack_require__(2).ReadStream, Stream = __webpack_require__(5); + var ReadStream = __webpack_require__(2).ReadStream, Stream = __webpack_require__(3); function onOpenClose() { "number" == typeof this.fd && this.close(); } @@ -80757,7 +88799,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var accepts = __webpack_require__(888), deprecate = __webpack_require__(36)("express"), isIP = __webpack_require__(45).isIP, typeis = __webpack_require__(69), http = __webpack_require__(12), fresh = __webpack_require__(411), parseRange = __webpack_require__(124), parse = __webpack_require__(37), proxyaddr = __webpack_require__(412), req = Object.create(http.IncomingMessage.prototype); + var accepts = __webpack_require__(984), deprecate = __webpack_require__(47)("express"), isIP = __webpack_require__(42).isIP, typeis = __webpack_require__(88), http = __webpack_require__(11), fresh = __webpack_require__(462), parseRange = __webpack_require__(159), parse = __webpack_require__(46), proxyaddr = __webpack_require__(463), req = Object.create(http.IncomingMessage.prototype); function defineGetter(obj, name, getter) { Object.defineProperty(obj, name, { configurable: !0, @@ -80848,7 +88890,7 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - var Negotiator = __webpack_require__(889), mime = __webpack_require__(125); + var Negotiator = __webpack_require__(985), mime = __webpack_require__(89); function Accepts(req) { if (!(this instanceof Accepts)) return new Accepts(req); this.headers = req.headers, this.negotiator = new Negotiator(req); @@ -80903,19 +88945,19 @@ if (void 0 !== module) return module; switch (moduleName) { case "charset": - module = __webpack_require__(890); + module = __webpack_require__(986); break; case "encoding": - module = __webpack_require__(891); + module = __webpack_require__(987); break; case "language": - module = __webpack_require__(892); + module = __webpack_require__(988); break; case "mediaType": - module = __webpack_require__(893); + module = __webpack_require__(989); break; default: @@ -81250,7 +89292,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(26).Buffer, contentDisposition = __webpack_require__(409), deprecate = __webpack_require__(36)("express"), encodeUrl = __webpack_require__(64), escapeHtml = __webpack_require__(65), http = __webpack_require__(12), isAbsolute = __webpack_require__(49).isAbsolute, onFinished = __webpack_require__(66), path = __webpack_require__(3), statuses = __webpack_require__(81), merge = __webpack_require__(52), sign = __webpack_require__(895).sign, normalizeType = __webpack_require__(49).normalizeType, normalizeTypes = __webpack_require__(49).normalizeTypes, setCharset = __webpack_require__(49).setCharset, cookie = __webpack_require__(896), send = __webpack_require__(187), extname = path.extname, mime = send.mime, resolve = path.resolve, vary = __webpack_require__(413), res = Object.create(http.ServerResponse.prototype); + var Buffer = __webpack_require__(25).Buffer, contentDisposition = __webpack_require__(460), deprecate = __webpack_require__(47)("express"), encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), http = __webpack_require__(11), isAbsolute = __webpack_require__(67).isAbsolute, onFinished = __webpack_require__(85), path = __webpack_require__(4), statuses = __webpack_require__(109), merge = __webpack_require__(60), sign = __webpack_require__(991).sign, normalizeType = __webpack_require__(67).normalizeType, normalizeTypes = __webpack_require__(67).normalizeTypes, setCharset = __webpack_require__(67).setCharset, cookie = __webpack_require__(992), send = __webpack_require__(225), extname = path.extname, mime = send.mime, resolve = path.resolve, vary = __webpack_require__(464), res = Object.create(http.ServerResponse.prototype); module.exports = res; var charsetRegExp = /;\s*charset\s*=/; function sendfile(res, file, options, callback) { @@ -81472,7 +89514,7 @@ }, app.render(view, opts, done); }; }, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(21); + var crypto = __webpack_require__(9); function sha1(str) { return crypto.createHash("sha1").update(str).digest("hex"); } @@ -81554,7 +89596,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var encodeUrl = __webpack_require__(64), escapeHtml = __webpack_require__(65), parseUrl = __webpack_require__(37), resolve = __webpack_require__(3).resolve, send = __webpack_require__(187), url = __webpack_require__(7); + var encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), parseUrl = __webpack_require__(46), resolve = __webpack_require__(4).resolve, send = __webpack_require__(225), url = __webpack_require__(6); module.exports = function(root, options) { if (!root) throw new TypeError("root path required"); if ("string" != typeof root) throw new TypeError("root path must be a string"); @@ -81594,7 +89636,7 @@ }, function(module, exports, __webpack_require__) { !(function() { "use strict"; - var assign = __webpack_require__(899), vary = __webpack_require__(413), defaults = { + var assign = __webpack_require__(995), vary = __webpack_require__(464), defaults = { origin: "*", methods: "GET,HEAD,PUT,PATCH,POST,DELETE", preflightContinue: !1, @@ -81730,9 +89772,9 @@ return to; }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(901); + module.exports = __webpack_require__(997); }, function(module, exports, __webpack_require__) { - const semver = __webpack_require__(902); + const semver = __webpack_require__(998); function lintManifest(manifest) { var errors = [], warnings = []; if (!manifest || "object" != typeof manifest) return { @@ -82327,7 +90369,7 @@ return null == match ? null : parse(match[1] + "." + (match[2] || "0") + "." + (match[3] || "0")); }; }, function(module, exports, __webpack_require__) { - const mkdirp = __webpack_require__(104), path = __webpack_require__(3), fs = __webpack_require__(2); + const mkdirp = __webpack_require__(132), path = __webpack_require__(4), fs = __webpack_require__(2); function commitRes(endPath, res) { mkdirp(path.dirname(endPath), (function(err) { if (err) return console.error(err); @@ -82363,7 +90405,7 @@ })); }; }, function(module, exports, __webpack_require__) { - const fetch = __webpack_require__(24); + const fetch = __webpack_require__(33); module.exports = function(addonURL, apiURL) { return fetch((apiURL = apiURL || "https://api.strem.io") + "/api/addonPublish", { method: "POST", @@ -82382,12 +90424,12 @@ })); }; }, function(module, exports, __webpack_require__) { - const manifest = __webpack_require__(414), manifestNoCatalogs = Object.assign({}, manifest); + const manifest = __webpack_require__(465), manifestNoCatalogs = Object.assign({}, manifest); manifestNoCatalogs.name += " (without catalog support)", manifestNoCatalogs.catalogs = [], manifestNoCatalogs.resources = manifest.resources.filter((resource => "catalog" != resource.name && "catalog" != resource)), module.exports = manifestNoCatalogs; }, function(module, exports, __webpack_require__) { - const consts = __webpack_require__(63); + const consts = __webpack_require__(79); module.exports = function(storage, metaStorage, args, cb) { const metas = []; storage.indexes.itemId.forEach((function(items, itemId) { @@ -82405,7 +90447,7 @@ }); }; }, function(module, exports, __webpack_require__) { - const fetch = __webpack_require__(24), indexer = __webpack_require__(416), mapEntryToMeta = __webpack_require__(417), consts = __webpack_require__(63); + const fetch = __webpack_require__(33), indexer = __webpack_require__(467), mapEntryToMeta = __webpack_require__(468), consts = __webpack_require__(79); function mapFile(entry, uxTime, file, index) { const stream = entry.ih ? { infoHash: entry.ih, @@ -82462,7 +90504,7 @@ })); }; }, function(module, exports, __webpack_require__) { - const bencode = __webpack_require__(909), blobToBuffer = __webpack_require__(912), fs = __webpack_require__(2), get = __webpack_require__(913), magnet = __webpack_require__(914), path = __webpack_require__(3), sha1 = __webpack_require__(130), uniq = __webpack_require__(86); + const bencode = __webpack_require__(1005), blobToBuffer = __webpack_require__(1008), fs = __webpack_require__(2), get = __webpack_require__(1009), magnet = __webpack_require__(1010), path = __webpack_require__(4), sha1 = __webpack_require__(165), uniq = __webpack_require__(114); function parseTorrent(torrentId) { if ("string" == typeof torrentId && /^(stream-)?magnet:/.test(torrentId)) return magnet(torrentId); if ("string" == typeof torrentId && (/^[a-f0-9]{40}$/i.test(torrentId) || /^[a-z2-7]{32}$/i.test(torrentId))) return magnet(`magnet:?xt=urn:btih:${torrentId}`); @@ -82565,12 +90607,12 @@ }, Buffer.alloc(0); }, function(module, exports, __webpack_require__) { var bencode = module.exports; - bencode.encode = __webpack_require__(910), bencode.decode = __webpack_require__(911), + bencode.encode = __webpack_require__(1006), bencode.decode = __webpack_require__(1007), bencode.byteLength = bencode.encodingLength = function(value) { return bencode.encode(value).length; }; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(71).Buffer; + var Buffer = __webpack_require__(90).Buffer; function encode(data, buffer, offset) { var buffers = [], result = null; return encode._encode(buffers, data), result = Buffer.concat(buffers), encode.bytes = result.length, @@ -82630,7 +90672,7 @@ buffers.push(buffE); }, module.exports = encode; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(71).Buffer; + var Buffer = __webpack_require__(90).Buffer; function getIntFromBuffer(buffer, start, end) { for (var sum = 0, sign = 1, i = start; i < end; i++) { var num = buffer[i]; @@ -82697,7 +90739,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = simpleGet; - const concat = __webpack_require__(206), decompressResponse = __webpack_require__(207), http = __webpack_require__(12), https = __webpack_require__(19), once = __webpack_require__(25), querystring = __webpack_require__(20), url = __webpack_require__(7), isStream = o => null !== o && "object" == typeof o && "function" == typeof o.pipe; + const concat = __webpack_require__(259), decompressResponse = __webpack_require__(260), http = __webpack_require__(11), https = __webpack_require__(21), once = __webpack_require__(34), querystring = __webpack_require__(24), url = __webpack_require__(6), isStream = o => null !== o && "object" == typeof o && "function" == typeof o.pipe; function simpleGet(opts, cb) { if (opts = Object.assign({ maxRedirects: 10 @@ -82768,7 +90810,7 @@ })); })), result; }; - const base32 = __webpack_require__(915), uniq = __webpack_require__(86); + const base32 = __webpack_require__(1011), uniq = __webpack_require__(114); function magnetURIDecode(uri) { const result = {}, data = uri.split("magnet:?")[1]; let m; @@ -82796,7 +90838,7 @@ uniq(result.announce), uniq(result.urlList), result; } }, function(module, exports, __webpack_require__) { - var base32 = __webpack_require__(916); + var base32 = __webpack_require__(1012); exports.encode = base32.encode, exports.decode = base32.decode; }, function(module, exports, __webpack_require__) { "use strict"; @@ -82825,10 +90867,10 @@ return decoded.slice(0, plainPos); }; }, function(module, exports, __webpack_require__) { - const namedQueue = __webpack_require__(219), helpers = __webpack_require__(188); + const namedQueue = __webpack_require__(271), helpers = __webpack_require__(226); var providers = { - metadata: __webpack_require__(919), - imdbFind: __webpack_require__(920) + metadata: __webpack_require__(1015), + imdbFind: __webpack_require__(1016) }, defaultProviders = [ "metadata", "imdbFind" ], cache = {}, cacheLastSet = {}, queue = new namedQueue((function(task, cb) { var prov = [].concat(task.providers); !(function nextProv() { @@ -83175,7 +91217,7 @@ } ], diacriticsMap = {}, i = 0; i < replacementList.length; i += 1) for (var chars = replacementList[i].chars, j = 0; j < chars.length; j += 1) diacriticsMap[chars[j]] = replacementList[i].base; exports.replacementList = replacementList, exports.diacriticsMap = diacriticsMap; }, function(module, exports, __webpack_require__) { - var fetch = __webpack_require__(24), helpers = __webpack_require__(188), cinemetaUrls = { + var fetch = __webpack_require__(33), helpers = __webpack_require__(226), cinemetaUrls = { movie: "https://cinemeta.strem.io/stremioget/stremio/v1/q.json?b=eyJwYXJhbXMiOltudWxsLHt9XSwibWV0aG9kIjoibmFtZXMubW92aWUiLCJpZCI6MSwianNvbnJwYyI6IjIuMCJ9", series: "https://cinemeta.strem.io/stremioget/stremio/v1/q.json?b=eyJwYXJhbXMiOltudWxsLHt9XSwibWV0aG9kIjoibmFtZXMuc2VyaWVzIiwiaWQiOjEsImpzb25ycGMiOiIyLjAifQ==" }; @@ -83219,7 +91261,7 @@ })) : process.nextTick(match); }; }, function(module, exports, __webpack_require__) { - var needle = __webpack_require__(921), helpers = __webpack_require__(188); + var needle = __webpack_require__(1017), helpers = __webpack_require__(226); module.exports = function imdbFind(task, cb, loose) { var shouldRetry = !loose && task.year, retry = function() { return shouldRetry ? imdbFind(task, cb, !0) : void cb(null, null); @@ -83268,11 +91310,11 @@ }; }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), http = __webpack_require__(12), https = __webpack_require__(19), url = __webpack_require__(7), stream = __webpack_require__(5), debug = __webpack_require__(6)("needle"), stringify = __webpack_require__(922).build, multipart = __webpack_require__(923), auth = __webpack_require__(924), cookies = __webpack_require__(925), parsers = __webpack_require__(926), decoder = __webpack_require__(927), version = __webpack_require__(928).version, user_agent = "Needle/" + version; + var fs = __webpack_require__(2), http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), stream = __webpack_require__(3), debug = __webpack_require__(8)("needle"), stringify = __webpack_require__(1018).build, multipart = __webpack_require__(1019), auth = __webpack_require__(1020), cookies = __webpack_require__(1021), parsers = __webpack_require__(1022), decoder = __webpack_require__(1023), version = __webpack_require__(1024).version, user_agent = "Needle/" + version; user_agent += " (Node.js " + process.version + "; " + process.platform + " " + process.arch + ")"; var close_by_default = !http.Agent || http.Agent.defaultMaxSockets != 1 / 0, extend = Object.assign ? Object.assign : __webpack_require__(0)._extend, redirect_codes = [ 301, 302, 303, 307 ], decompressors = {}; try { - var zlib = __webpack_require__(44); + var zlib = __webpack_require__(45); decompressors["x-deflate"] = zlib.Inflate, decompressors.deflate = zlib.Inflate, decompressors["x-gzip"] = zlib.Gunzip, decompressors.gzip = zlib.Gunzip; var zlib_options = { @@ -83546,7 +91588,7 @@ throw new TypeError("Cannot build a querystring out of: " + obj); }; }, function(module, exports, __webpack_require__) { - var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(3).basename; + var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(4).basename; function generate_part(name, part, boundary, callback) { var return_part = "--" + boundary + "\r\n"; function append(data, filename) { @@ -83594,7 +91636,7 @@ } }; }, function(module, exports, __webpack_require__) { - var createHash = __webpack_require__(21).createHash; + var createHash = __webpack_require__(9).createHash; function md5(string) { return createHash("md5").update(string).digest("hex"); } @@ -83638,7 +91680,7 @@ digest: digest.generate }; }, function(module, exports, __webpack_require__) { - var unescape = __webpack_require__(20).unescape; + var unescape = __webpack_require__(24).unescape; const COOKIE_PAIR = /^([^=\s]+)\s*=\s*("?)\s*(.*)\s*\2\s*$/, EXCLUDED_CHARS = /[\x00-\x1F\x7F\x3B\x3B\s\"\,\\"%]/g; function encodeCookieComponent(str) { return str.toString().replace(EXCLUDED_CHARS, encodeURIComponent); @@ -83666,7 +91708,7 @@ }), ""); }; }, function(module, exports, __webpack_require__) { - var Transform = __webpack_require__(5).Transform; + var Transform = __webpack_require__(3).Transform; function parserFactory(name, fn) { return { fn: function() { @@ -83703,7 +91745,7 @@ })); module.exports["application/json"] = json, module.exports["text/javascript"] = json; try { - var xml = parserFactory("xml", new (__webpack_require__(135).Parser)({ + var xml = parserFactory("xml", new (__webpack_require__(172).Parser)({ explicitRoot: !0, explicitArray: !1 }).parseString); @@ -83711,7 +91753,7 @@ module.exports["application/rss+xml"] = xml, module.exports["application/atom+xml"] = xml; } catch (e) {} }, function(module, exports, __webpack_require__) { - var iconv, inherits = __webpack_require__(0).inherits, stream = __webpack_require__(5), regex = /(?:charset|encoding)\s*=\s*['"]? *([\w\-]+)/i; + var iconv, inherits = __webpack_require__(0).inherits, stream = __webpack_require__(3), regex = /(?:charset|encoding)\s*=\s*['"]? *([\w\-]+)/i; function StreamDecoder(charset) { if (!(this instanceof StreamDecoder)) return new StreamDecoder(charset); stream.Transform.call(this, charset), this.charset = charset, this.parsed_chunk = !1; @@ -83731,7 +91773,7 @@ this.push(res), done(); }, module.exports = function(charset) { try { - iconv || (iconv = __webpack_require__(50)); + iconv || (iconv = __webpack_require__(68)); } catch (e) {} return iconv ? new StreamDecoder(charset) : new stream.PassThrough; }; @@ -83776,7 +91818,7 @@ } }; }, function(module, exports, __webpack_require__) { - const path = __webpack_require__(3), consts = __webpack_require__(63), SUPPORTED_TYPES = [ "movie", "series" ]; + const path = __webpack_require__(4), consts = __webpack_require__(79), SUPPORTED_TYPES = [ "movie", "series" ]; function getFileVideoId(f) { return (f.season && f.episode ? [ f.imdb_id, f.season, f.episode ] : [ f.imdb_id ]).join(":"); } @@ -83814,8 +91856,8 @@ }); }; }, function(module, exports, __webpack_require__) { - const pkg = __webpack_require__(415); - var fs = __webpack_require__(2), byline = __webpack_require__(73), promisify = __webpack_require__(0).promisify; + const pkg = __webpack_require__(466); + var fs = __webpack_require__(2), byline = __webpack_require__(93), promisify = __webpack_require__(0).promisify; module.exports = function(opts) { var writeStream, self = this; function commitEntry(key, entry) { @@ -83889,12 +91931,12 @@ }; }; }, function(module, exports, __webpack_require__) { - const os = __webpack_require__(17), findFilesWin = __webpack_require__(932), findFilesDarwin = __webpack_require__(933); - let findFiles = __webpack_require__(934); + const os = __webpack_require__(23), findFilesWin = __webpack_require__(1028), findFilesDarwin = __webpack_require__(1029); + let findFiles = __webpack_require__(1030); "win32" === os.platform() && (findFiles = findFilesWin), "darwin" === os.platform() && (findFiles = findFilesDarwin), module.exports = findFiles; }, function(module, exports, __webpack_require__) { - const child = __webpack_require__(22), byline = __webpack_require__(73), events = __webpack_require__(4); + const child = __webpack_require__(31), byline = __webpack_require__(93), events = __webpack_require__(5); module.exports = function() { const ev = new events.EventEmitter; var propsProc = child.spawn("powershell", [ "-command", "\n[console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding\n$sql = \"SELECT System.ItemUrl FROM SystemIndex WHERE scope='file:' AND (System.Kind IS Null OR System.Kind = 'Video') AND System.FileAttributes <> ALL BITWISE 0x2 AND NOT System.ItemUrl LIKE '%/Program Files%' AND NOT System.ItemUrl LIKE '%/SteamLibrary/%' AND NOT System.ItemUrl LIKE '%/node_modules/%' AND (System.fileExtension = '.torrent' OR System.FileExtension = '.mp4' OR System.FileExtension = '.mkv' OR System.FileExtension = '.avi')\"\n$connector = New-Object -ComObject ADODB.Connection\n$rs = New-Object -ComObject ADODB.Recordset\n$connector.Open(\"Provider=Search.CollatorDSO;Extended Properties='Application=Windows';DateTimeFormat=Ticks;\")\n$rs.Open($sql, $connector)\nWhile (-Not $rs.EOF) {\n $pos = $rs.Fields.Item(\"System.ItemUrl\").Value.IndexOf(\":\")\n $rs.Fields.Item(\"System.ItemUrl\").Value.Substring($pos + 1)\n $rs.MoveNext()\n}\n" ]); @@ -83909,7 +91951,7 @@ })), ev; }; }, function(module, exports, __webpack_require__) { - const child = __webpack_require__(22), byline = __webpack_require__(73), events = __webpack_require__(4); + const child = __webpack_require__(31), byline = __webpack_require__(93), events = __webpack_require__(5); module.exports = function() { const ev = new events.EventEmitter; var p = child.exec("mdfind '(kMDItemFSName=*.avi || kMDItemFSName=*.mp4 || kMDItemFSName=*.mkv || kMDItemFSName=*.torrent)'"); @@ -83920,7 +91962,7 @@ })), ev; }; }, function(module, exports, __webpack_require__) { - const child = __webpack_require__(22), events = __webpack_require__(4), byline = __webpack_require__(73), which = __webpack_require__(935), cmdLine = [ "-L", process.env.HOME, "-maxdepth", "7", "-not", "-path", "*/\\.*", "-not", "-path", "*/node_modules/*", "-not", "-path", "*/bin/*", "-not", "-path", "*/src/*", "-not", "-path", "*/build/*", "-not", "-path", "*/dist/*", "-type", "f", "(", "-iname", "*.torrent", "-o", "-iname", "*.mp4", "-o", "-iname", "*.mkv", "-o", "-iname", "*.avi", ")" ]; + const child = __webpack_require__(31), events = __webpack_require__(5), byline = __webpack_require__(93), which = __webpack_require__(1031), cmdLine = [ "-L", process.env.HOME, "-maxdepth", "7", "-not", "-path", "*/\\.*", "-not", "-path", "*/node_modules/*", "-not", "-path", "*/bin/*", "-not", "-path", "*/src/*", "-not", "-path", "*/build/*", "-not", "-path", "*/dist/*", "-type", "f", "(", "-iname", "*.torrent", "-o", "-iname", "*.mp4", "-o", "-iname", "*.mkv", "-o", "-iname", "*.avi", ")" ]; function startIndexing() { var ev = this; const findPath = which.sync("find"); @@ -83962,7 +92004,7 @@ if (opt.nothrow) return null; throw getNotFoundError(cmd); }; - var isWindows = "win32" === process.platform || "cygwin" === process.env.OSTYPE || "msys" === process.env.OSTYPE, path = __webpack_require__(3), COLON = isWindows ? ";" : ":", isexe = __webpack_require__(936); + var isWindows = "win32" === process.platform || "cygwin" === process.env.OSTYPE || "msys" === process.env.OSTYPE, path = __webpack_require__(4), COLON = isWindows ? ";" : ":", isexe = __webpack_require__(1032); function getNotFoundError(cmd) { var er = new Error("not found: " + cmd); return er.code = "ENOENT", er; @@ -84018,7 +92060,7 @@ cb(er, is); })); } - __webpack_require__(2), core = "win32" === process.platform || global.TESTING_WINDOWS ? __webpack_require__(937) : __webpack_require__(938), + __webpack_require__(2), core = "win32" === process.platform || global.TESTING_WINDOWS ? __webpack_require__(1033) : __webpack_require__(1034), module.exports = isexe, isexe.sync = function(path, options) { try { return core.sync(path, options || {}); @@ -84067,7 +92109,7 @@ } }, function(module, exports, __webpack_require__) { (function(__dirname) { - var exec = __webpack_require__(22).exec, path = __webpack_require__(3); + var exec = __webpack_require__(31).exec, path = __webpack_require__(4); function escape(s) { return s.replace(/"/g, '\\"'); } @@ -84089,4 +92131,10771 @@ exec(opener + ' "' + escape(target) + '"', callback); }; }).call(this, "/"); +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(227), getRouter = __webpack_require__(1037), getRarStream = __webpack_require__(472); + module.exports = { + router: getRouter, + create: rarUrls => { + if (!rarUrls || !Array.isArray(rarUrls)) throw Error('"rarUrls" is undefined or not an array'); + return store.set(rarUrls); + }, + file: async (key, opts) => { + if (!key) throw Error('Missing "key"'); + return await getRarStream({ + url: key, + query: { + o: JSON.stringify(opts || {}), + key: key + } + }); + } + }; +}, function(module, exports, __webpack_require__) { + const Router = __webpack_require__(469), bodyParser = __webpack_require__(106), getRarStream = __webpack_require__(472), getContentType = __webpack_require__(1147), store = __webpack_require__(227); + module.exports = function() { + const router = Router(); + return router.use(bodyParser.json()), router.post("/create", ((req, res) => { + Array.isArray(req.body) || res.status(500).send("Cannot parse JSON data"); + const key = store.set(req.body); + res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + })); + })), router.get("/stream", (async (req, res) => { + let rarInnerFile; + try { + rarInnerFile = await getRarStream(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + if ("HEAD" === req.method) return res.statusCode = 204, res.setHeader("Accept-Ranges", "bytes"), + res.setHeader("Content-Length", rarInnerFile.length + ""), res.setHeader("Content-Type", getContentType(rarInnerFile)), + void res.end(); + const fileSize = rarInnerFile.length, range = req.headers.range; + let start = 0, end = fileSize - 1; + if (res.setHeader("Accept-Ranges", "bytes"), res.setHeader("Content-Type", getContentType(rarInnerFile)), + Object.values(range || {}).length) { + const parts = range.replace(/bytes=/, "").split("-"); + start = parseInt(parts[0], 10) || 0, end = parts[1] ? parseInt(parts[1], 10) : fileSize - 1, + res.statusCode = 206, res.setHeader("Content-Range", `bytes ${start}-${end}/${fileSize}`); + const chunksize = end - start + 1; + res.setHeader("Content-Length", chunksize + ""); + } else res.statusCode = 200, res.setHeader("Content-Length", fileSize + ""); + rarInnerFile.createReadStream({ + start: start, + end: end + }).pipe(res); + })), router; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var debug = __webpack_require__(8)("router:route"), flatten = __webpack_require__(470).flatten, Layer = __webpack_require__(471), methods = __webpack_require__(61), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + process.nextTick(fn.bind.apply(fn, arguments)); + }; + function Route(path) { + debug("new %o", path), this.path = path, this.stack = [], this.methods = Object.create(null); + } + module.exports = Route, Route.prototype._handles_method = function(method) { + if (this.methods._all) return !0; + var name = "string" == typeof method ? method.toLowerCase() : method; + return "head" !== name || this.methods.head || (name = "get"), Boolean(this.methods[name]); + }, Route.prototype._methods = function() { + var methods = Object.keys(this.methods); + this.methods.get && !this.methods.head && methods.push("head"); + for (var i = 0; i < methods.length; i++) methods[i] = methods[i].toUpperCase(); + return methods; + }, Route.prototype.dispatch = function(req, res, done) { + var idx = 0, stack = this.stack, sync = 0; + if (0 === stack.length) return done(); + var method = "string" == typeof req.method ? req.method.toLowerCase() : req.method; + "head" !== method || this.methods.head || (method = "get"), req.route = this, (function next(err) { + if (err && "route" === err) return done(); + if (err && "router" === err) return done(err); + if (idx >= stack.length) return done(err); + if (++sync > 100) return defer(next, err); + for (var layer, match; !0 !== match && idx < stack.length; ) match = !(layer = stack[idx++]).method || layer.method === method; + if (!0 !== match) return done(err); + err ? layer.handle_error(err, req, res, next) : layer.handle_request(req, res, next), + sync = 0; + })(); + }, Route.prototype.all = function(handler) { + var callbacks = flatten(slice.call(arguments)); + if (0 === callbacks.length) throw new TypeError("argument handler is required"); + for (var i = 0; i < callbacks.length; i++) { + var fn = callbacks[i]; + if ("function" != typeof fn) throw new TypeError("argument handler must be a function"); + var layer = Layer("/", {}, fn); + layer.method = void 0, this.methods._all = !0, this.stack.push(layer); + } + return this; + }, methods.forEach((function(method) { + Route.prototype[method] = function(handler) { + var callbacks = flatten(slice.call(arguments)); + if (0 === callbacks.length) throw new TypeError("argument handler is required"); + for (var i = 0; i < callbacks.length; i++) { + var fn = callbacks[i]; + if ("function" != typeof fn) throw new TypeError("argument handler must be a function"); + debug("%s %s", method, this.path); + var layer = Layer("/", {}, fn); + layer.method = method, this.methods[method] = !0, this.stack.push(layer); + } + return this; + }; + })); +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = Object.setPrototypeOf || ({ + __proto__: [] + } instanceof Array ? function(obj, proto) { + return obj.__proto__ = proto, obj; + } : function(obj, proto) { + for (var prop in proto) Object.prototype.hasOwnProperty.call(obj, prop) || (obj[prop] = proto[prop]); + return obj; + }); +}, function(module, exports, __webpack_require__) { + "use strict"; + function _optionalChain(ops) { + let lastAccessLHS, value = ops[0], i = 1; + for (;i < ops.length; ) { + const op = ops[i], fn = ops[i + 1]; + if (i += 2, ("optionalAccess" === op || "optionalCall" === op) && null == value) return; + "access" === op || "optionalAccess" === op ? (lastAccessLHS = value, value = fn(value)) : "call" !== op && "optionalCall" !== op || (value = fn(((...args) => value.call(lastAccessLHS, ...args))), + lastAccessLHS = void 0); + } + return value; + } + var _class, _class2, _class3, _class4; + Object.defineProperty(exports, "__esModule", { + value: !0 + }); + var _events = __webpack_require__(5), RXX_EXTENSION = /\.R(\d\d)$|.RAR$/i, RAR_EXTENSION = /.RAR$/i, PARTXX_RAR_EXTENSION = /.PART(\d\d).RAR/i, makeRarFileBundle = (fileMedias = []) => ((fileMedias = []) => fileMedias.filter((file => file.name && file.name.match(PARTXX_RAR_EXTENSION))).length > 0)(fileMedias) ? new class { + constructor(fileMedias = []) { + this.fileMedias = fileMedias, this.fileMedias.length > 0 && (this.filter(), this.sort()); + } + filter() { + this.fileMedias = this.fileMedias.filter((file => file.name.match(PARTXX_RAR_EXTENSION))); + } + sort() { + this.fileMedias.sort(((first, second) => { + const firstMatch = first.name.match(PARTXX_RAR_EXTENSION), secondMatch = second.name.match(PARTXX_RAR_EXTENSION); + return +(firstMatch && firstMatch[1] || 0) - +(secondMatch && secondMatch[1] || 0); + })); + } + get length() { + return this.fileMedias.length; + } + get fileNames() { + return this.fileMedias.map((file => file.name)); + } + get files() { + return this.fileMedias; + } + }(fileMedias) : new class { + constructor(fileMedias = []) { + this.fileMedias = fileMedias, this.fileMedias.length > 0 && (this.filter(), this.sort()); + } + filter() { + this.fileMedias = this.fileMedias.filter((file => file.name && file.name.match(RXX_EXTENSION))); + } + sort() { + this.fileMedias.sort(((first, second) => { + if (first.name.match(RAR_EXTENSION)) return -1; + if (second.name.match(RAR_EXTENSION)) return 1; + { + const firstMatch = first.name.match(RXX_EXTENSION), secondMatch = second.name.match(RXX_EXTENSION); + return +(firstMatch && firstMatch[1] || 0) - +(secondMatch && secondMatch[1] || 0); + } + })); + } + get length() { + return this.fileMedias.length; + } + get fileNames() { + return this.fileMedias.map((file => file.name)); + } + get files() { + return this.fileMedias; + } + }(fileMedias), RarFileChunk = class _RarFileChunk { + constructor(fileMedia, startOffset, endOffset) { + this.fileMedia = fileMedia, this.startOffset = startOffset, this.endOffset = endOffset; + } + padEnd(endPadding) { + return new _RarFileChunk(this.fileMedia, this.startOffset, this.endOffset - endPadding); + } + padStart(startPadding) { + return new _RarFileChunk(this.fileMedia, this.startOffset + startPadding, this.endOffset); + } + get length() { + return Math.max(0, this.endOffset - this.startOffset); + } + getStream() { + return this.fileMedia.createReadStream({ + start: this.startOffset, + end: this.endOffset + }); + } + }, _stream = __webpack_require__(3), InnerFileStream = class extends _stream.Readable { + constructor(rarFileChunks, options) { + super(options), this.rarFileChunks = rarFileChunks; + } + pushData(data) { + this.push(data) || _optionalChain([ this, "access", _ => _.stream, "optionalAccess", _2 => _2.pause, "call", _3 => _3() ]); + } + get isStarted() { + return !!this.stream; + } + next() { + const chunk = this.rarFileChunks.shift(); + chunk ? (this.stream = chunk.getStream(), _optionalChain([ this, "access", _4 => _4.stream, "optionalAccess", _5 => _5.on, "call", _6 => _6("data", (data => this.pushData(data))) ]), + _optionalChain([ this, "access", _7 => _7.stream, "optionalAccess", _8 => _8.on, "call", _9 => _9("end", (() => this.next())) ])) : this.push(null); + } + _read() { + this.isStarted ? _optionalChain([ this, "access", _10 => _10.stream, "optionalAccess", _11 => _11.resume, "call", _12 => _12() ]) : this.next(); + } + }, streamToBuffer = async stream => new Promise(((resolve, reject) => { + const buffers = []; + stream.on("error", reject), stream.on("data", (data => buffers.push(data))), stream.on("end", (() => resolve(Buffer.concat(buffers)))); + })), MarkerHeaderParser = ((_class = class { + constructor(headerBuffer) { + this.headerBuffer = headerBuffer; + } + static __initStatic() { + this.HEADER_SIZE = 11; + } + parse() { + const crc = this.headerBuffer.readUInt16LE(0), type = this.headerBuffer.readUInt8(2), flags = this.headerBuffer.readUInt16LE(3); + let size = this.headerBuffer.readUInt16LE(5); + return 0 != (32768 & flags) && (size += this.headerBuffer.readUint32LE(7) || 0), + { + crc: crc, + type: type, + flags: flags, + size: size + }; + } + }).__initStatic(), _class), ArchiveHeaderParser = ((_class2 = class { + constructor(buffer) { + this.buffer = buffer; + } + static __initStatic2() { + this.HEADER_SIZE = 13; + } + parse() { + let vars = { + crc: this.buffer.readUInt16LE(0), + type: this.buffer.readUInt8(2), + flags: this.buffer.readUInt16LE(3), + size: this.buffer.readUInt16LE(5), + reserved1: this.buffer.readUInt16LE(7), + reserved2: this.buffer.readUInt32LE(9) + }; + return Object.assign({ + hasVolumeAttributes: 0 != (1 & (parsedVars = vars).flags), + hasComment: 0 != (2 & parsedVars.flags), + isLocked: 0 != (4 & parsedVars.flags), + hasSolidAttributes: 0 != (8 & parsedVars.flags), + isNewNameScheme: 0 != (16 & parsedVars.flags), + hasAuthInfo: 0 != (32 & parsedVars.flags), + hasRecovery: 0 != (64 & parsedVars.flags), + isBlockEncoded: 0 != (128 & parsedVars.flags), + isFirstVolume: 0 != (256 & parsedVars.flags) + }, vars); + var parsedVars; + } + }).__initStatic2(), _class2), FileHeaderParser = ((_class3 = class { + constructor(buffer) { + _class3.prototype.__init.call(this), this.buffer = buffer; + } + static __initStatic3() { + this.HEADER_SIZE = 280; + } + __init() { + this.offset = 0; + } + handleHighFileSize(parsedVars) { + if (parsedVars.hasHighSize) { + const highPackSize = this.buffer.readInt32LE(this.offset); + this.offset += 4; + const highUnpackSize = this.buffer.readInt32LE(this.offset); + this.offset += 4, parsedVars.size = 4294967296 * highPackSize + parsedVars.size, + parsedVars.unpackedSize = 4294967296 * highUnpackSize + parsedVars.unpackedSize; + } + } + parseFileName(parsedVars) { + let nameBuffer = this.buffer.subarray(this.offset, this.offset + parsedVars.nameSize); + nameBuffer = Buffer.isBuffer(nameBuffer) ? nameBuffer : Buffer.from(nameBuffer), + parsedVars.name = nameBuffer.toString("utf8"); + } + parseFlags(parsedVars) { + return { + continuesFromPrevious: 0 != (1 & parsedVars.flags), + continuesInNext: 0 != (2 & parsedVars.flags), + isEncrypted: 0 != (4 & parsedVars.flags), + hasComment: 0 != (8 & parsedVars.flags), + hasInfoFromPrevious: 0 != (16 & parsedVars.flags), + hasHighSize: 0 != (256 & parsedVars.flags), + hasSpecialName: 0 != (512 & parsedVars.flags), + hasSalt: 0 != (1024 & parsedVars.flags), + isOldVersion: 0 != (2048 & parsedVars.flags), + hasExtendedTime: 0 != (4096 & parsedVars.flags) + }; + } + parse() { + const crc = this.buffer.readUInt16LE(this.offset); + this.offset += 2; + const type = this.buffer.readUInt8(this.offset); + this.offset += 1; + const flags = this.buffer.readUInt16LE(this.offset); + this.offset += 2; + const headSize = this.buffer.readUInt16LE(this.offset); + this.offset += 2; + const size = this.buffer.readUInt32LE(this.offset); + this.offset += 4; + const unpackedSize = this.buffer.readUInt32LE(this.offset); + this.offset += 4; + const host = this.buffer.readUInt8(this.offset); + this.offset += 1; + const fileCrc = this.buffer.readUInt32LE(this.offset); + this.offset += 4; + const timestamp = this.buffer.readUInt32LE(this.offset); + this.offset += 4; + const version = this.buffer.readUInt8(this.offset); + this.offset += 1; + const method = this.buffer.readUInt8(this.offset); + this.offset += 1; + const nameSize = this.buffer.readUInt16LE(this.offset); + this.offset += 2; + const attributes = this.buffer.readUInt32LE(this.offset); + this.offset += 4; + let vars = { + crc: crc, + type: type, + flags: flags, + headSize: headSize, + size: size, + unpackedSize: unpackedSize, + host: host, + fileCrc: fileCrc, + timestamp: timestamp, + version: version, + method: method, + nameSize: nameSize, + attributes: attributes, + name: "" + }; + const boolFlags = this.parseFlags(vars), header = Object.assign(vars, boolFlags); + return this.handleHighFileSize(header), this.parseFileName(header), this.offset = 0, + header; + } + }).__initStatic3(), _class3), TerminatorHeaderParser = ((_class4 = class { + constructor(headerBuffer) { + this.headerBuffer = headerBuffer; + } + static __initStatic4() { + this.HEADER_SIZE = 27; + } + parse() { + return { + crc: this.headerBuffer.readUInt16LE(0), + type: this.headerBuffer.readUInt8(2), + flags: this.headerBuffer.readUInt16LE(3), + size: this.headerBuffer.readUInt16LE(5) + }; + } + }).__initStatic4(), _class4); + function flatten(ary) { + let ret = []; + for (let i = 0; i < ary.length; i++) Array.isArray(ary[i]) ? ret = ret.concat(flatten(ary[i])) : ret.push(ary[i]); + return ret; + } + var parseHeader = async (Parser, fileMedia, offset = 0) => { + const stream = fileMedia.createReadStream({ + start: offset, + end: offset + Parser.HEADER_SIZE + }); + return new Parser(await streamToBuffer(stream)).parse(); + }, RarFilesPackage = class extends _events.EventEmitter { + constructor(fileMedias) { + super(), this.rarFileBundle = makeRarFileBundle(fileMedias); + } + async parseFile(rarFile, opts) { + const fileChunks = []; + let fileOffset = 0; + const markerHead = await parseHeader(MarkerHeaderParser, rarFile); + fileOffset += markerHead.size; + const archiveHeader = await parseHeader(ArchiveHeaderParser, rarFile, fileOffset); + fileOffset += archiveHeader.size; + let countFiles = 0, retrievedFiles = 0; + for (;fileOffset < rarFile.length - TerminatorHeaderParser.HEADER_SIZE; ) { + let getFileChunk2 = function() { + if (48 !== fileHead.method) throw new Error("Decompression is not implemented"); + return { + name: fileHead.name, + fileHead: fileHead, + chunk: new RarFileChunk(rarFile, fileOffset, fileOffset + fileHead.size - 1) + }; + }; + const fileHead = await parseHeader(FileHeaderParser, rarFile, fileOffset); + if (116 !== fileHead.type) break; + if (fileOffset += fileHead.headSize, opts.filter) { + if (opts.filter(fileHead.name, countFiles) && (fileChunks.push(getFileChunk2()), + retrievedFiles++, opts.hasOwnProperty("maxFiles") && retrievedFiles === opts.maxFiles)) break; + } else fileChunks.push(getFileChunk2()); + fileOffset += fileHead.size, countFiles++; + } + return this.emit("file-parsed", rarFile), fileChunks; + } + async parse(opts) { + opts = opts || {}, this.emit("parsing-start", this.rarFileBundle); + const parsedFileChunks = [], {files: files} = this.rarFileBundle; + for (let i = 0; i < files.length; ++i) { + const file = files[i], chunks = await this.parseFile(file, opts); + if (!chunks.length) return this.emit("parsing-complete", []), []; + const {fileHead: fileHead, chunk: chunk} = chunks[chunks.length - 1], chunkSize = Math.abs(chunk.endOffset - chunk.startOffset); + let innerFileSize = fileHead.unpackedSize; + if (parsedFileChunks.push(chunks), fileHead.continuesInNext) for (;Math.abs(innerFileSize - chunkSize) >= chunkSize; ) { + const nextFile = files[++i]; + parsedFileChunks.push([ { + name: fileHead.name, + chunk: new RarFileChunk(nextFile, chunk.startOffset, chunk.endOffset) + } ]), this.emit("file-parsed", nextFile), innerFileSize -= chunkSize; + } + } + const fileChunks = flatten(parsedFileChunks), grouped = (fn = f => f.name, object = fileChunks.reduce(((prev, curr) => { + const groupKey = fn(curr), group = prev[groupKey] || []; + return group.push(curr), Object.assign(prev, { + [groupKey]: group + }); + }), {}), mapper = value => value.map((v => v.chunk)), Object.fromEntries(Object.entries(object).map((([key, value]) => [ key, mapper(value) ])))); + var object, mapper, fn; + const innerFiles = Object.entries(grouped).map((([name, chunks]) => new class { + constructor(name, rarFileChunks) { + this.name = name, this.rarFileChunks = rarFileChunks, this.length = rarFileChunks.map((c => c.length)).reduce(((s, n) => s + n)), + this.chunkMap = this.calculateChunkMap(rarFileChunks), this.name = name; + } + readToEnd() { + return streamToBuffer(this.createReadStream({ + start: 0, + end: this.length - 1 + })); + } + getChunksToStream(fileStart, fileEnd) { + const {index: startIndex, start: startOffset} = this.findMappedChunk(fileStart); + let {index: endIndex, end: endOffset} = this.findMappedChunk(fileEnd); + const chunksToStream = this.rarFileChunks.slice(startIndex, endIndex + 1), last = chunksToStream.length - 1; + chunksToStream[0] = chunksToStream[0].padStart(Math.abs(startOffset - fileStart)); + let diff = Math.abs(endOffset - fileEnd); + return diff === this.rarFileChunks.length && (diff = 0), 0 !== diff && (chunksToStream[last] = chunksToStream[last].padEnd(diff)), + chunksToStream; + } + createReadStream(interval) { + interval || (interval = { + start: 0, + end: this.length - 1 + }); + let {start: start, end: end} = interval; + if (start < 0 || end >= this.length) throw Error("Illegal start/end offset"); + return new InnerFileStream(this.getChunksToStream(start, end)); + } + calculateChunkMap(rarFileChunks) { + const chunkMap = []; + let index = 0, fileOffset = 0; + for (const chunk of rarFileChunks) { + const start = fileOffset, end = fileOffset + chunk.length; + fileOffset = end + 1, chunkMap.push({ + index: index, + start: start, + end: end, + chunk: chunk + }), index++; + } + return chunkMap; + } + findMappedChunk(offset) { + let selectedMap = this.chunkMap[0]; + for (const chunkMapping of this.chunkMap) if (offset >= chunkMapping.start && offset <= chunkMapping.end) { + selectedMap = chunkMapping; + break; + } + return selectedMap; + } + }(name, chunks))); + return this.emit("parsing-complete", innerFiles), innerFiles; + } + }, _path = __webpack_require__(4), _fs = __webpack_require__(2); + exports.LocalFileMedia = class { + constructor(path) { + this.path = path, this.name = _path.basename.call(void 0, path), this.length = _fs.statSync.call(void 0, path).size; + } + createReadStream(interval) { + return _fs.createReadStream.call(void 0, this.path, interval); + } + }, exports.RarFilesPackage = RarFilesPackage; +}, function(module, exports, __webpack_require__) { + const request = __webpack_require__(228), getContentLength = __webpack_require__(1146); + module.exports = async function(url) { + return new Promise((async (resolve, reject) => { + let contentLength = !1; + try { + contentLength = await getContentLength(url); + } catch (e) { + return console.error(e), void reject(e); + } + let fileName = url.split("/").pop(); + (fileName || "").includes(".") ? (fileName = decodeURIComponent(fileName), fileName.includes("?") && (fileName = fileName.split("?")[0])) : fileName = "archive.rar", + resolve({ + length: parseInt(contentLength), + name: fileName, + createReadStream: range => { + const opts = { + url: url, + followRedirect: !0, + maxRedirects: 5, + strictSSL: !1 + }; + return Object.values(range).length && (range.start = range.start || 0, range.end = range.end || 0, + (range.end > contentLength - 1 || 0 === range.end) && (range.end = ""), opts.headers = { + range: `bytes=${range.start}-${range.end}` + }), request(opts); + } + }); + })); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var punycode, net = __webpack_require__(42), urlParse = __webpack_require__(6).parse, util = __webpack_require__(0), pubsuffix = __webpack_require__(474), Store = __webpack_require__(476).Store, MemoryCookieStore = __webpack_require__(1045).MemoryCookieStore, pathMatch = __webpack_require__(478).pathMatch, VERSION = __webpack_require__(1046).version; + try { + punycode = __webpack_require__(475); + } catch (e) { + console.warn("tough-cookie: can't load punycode; won't use punycode for domain normalization"); + } + var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/, CONTROL_CHARS = /[\x00-\x1F]/, TERMINATORS = [ "\n", "\r", "\0" ], PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/, DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/, MONTH_TO_NUM = { + jan: 0, + feb: 1, + mar: 2, + apr: 3, + may: 4, + jun: 5, + jul: 6, + aug: 7, + sep: 8, + oct: 9, + nov: 10, + dec: 11 + }, NUM_TO_MONTH = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], NUM_TO_DAY = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ]; + function parseDigits(token, minDigits, maxDigits, trailingOK) { + for (var count = 0; count < token.length; ) { + var c = token.charCodeAt(count); + if (c <= 47 || c >= 58) break; + count++; + } + return count < minDigits || count > maxDigits ? null : trailingOK || count == token.length ? parseInt(token.substr(0, count), 10) : null; + } + function parseTime(token) { + var parts = token.split(":"), result = [ 0, 0, 0 ]; + if (3 !== parts.length) return null; + for (var i = 0; i < 3; i++) { + var trailingOK = 2 == i, num = parseDigits(parts[i], 1, 2, trailingOK); + if (null === num) return null; + result[i] = num; + } + return result; + } + function parseMonth(token) { + token = String(token).substr(0, 3).toLowerCase(); + var num = MONTH_TO_NUM[token]; + return num >= 0 ? num : null; + } + function parseDate(str) { + if (str) { + var tokens = str.split(DATE_DELIM); + if (tokens) { + for (var hour = null, minute = null, second = null, dayOfMonth = null, month = null, year = null, i = 0; i < tokens.length; i++) { + var result, token = tokens[i].trim(); + token.length && (null === second && (result = parseTime(token)) ? (hour = result[0], + minute = result[1], second = result[2]) : null !== dayOfMonth || null === (result = parseDigits(token, 1, 2, !0)) ? null !== month || null === (result = parseMonth(token)) ? null === year && null !== (result = parseDigits(token, 2, 4, !0)) && ((year = result) >= 70 && year <= 99 ? year += 1900 : year >= 0 && year <= 69 && (year += 2e3)) : month = result : dayOfMonth = result); + } + if (!(null === dayOfMonth || null === month || null === year || null === second || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59)) return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second)); + } + } + } + function formatDate(date) { + var d = date.getUTCDate(); + d = d >= 10 ? d : "0" + d; + var h = date.getUTCHours(); + h = h >= 10 ? h : "0" + h; + var m = date.getUTCMinutes(); + m = m >= 10 ? m : "0" + m; + var s = date.getUTCSeconds(); + return s = s >= 10 ? s : "0" + s, NUM_TO_DAY[date.getUTCDay()] + ", " + d + " " + NUM_TO_MONTH[date.getUTCMonth()] + " " + date.getUTCFullYear() + " " + h + ":" + m + ":" + s + " GMT"; + } + function canonicalDomain(str) { + return null == str ? null : (str = str.trim().replace(/^\./, ""), punycode && /[^\u0001-\u007f]/.test(str) && (str = punycode.toASCII(str)), + str.toLowerCase()); + } + function domainMatch(str, domStr, canonicalize) { + if (null == str || null == domStr) return null; + if (!1 !== canonicalize && (str = canonicalDomain(str), domStr = canonicalDomain(domStr)), + str == domStr) return !0; + if (net.isIP(str)) return !1; + var idx = str.indexOf(domStr); + return !(idx <= 0) && str.length === domStr.length + idx && "." === str.substr(idx - 1, 1); + } + function defaultPath(path) { + if (!path || "/" !== path.substr(0, 1)) return "/"; + if ("/" === path) return path; + var rightSlash = path.lastIndexOf("/"); + return 0 === rightSlash ? "/" : path.slice(0, rightSlash); + } + function parse(str, options) { + options && "object" == typeof options || (options = {}); + var firstSemi = (str = str.trim()).indexOf(";"), c = (function(cookiePair, looseMode) { + var cookieName, cookieValue, firstEq = (cookiePair = (function(str) { + for (var t = 0; t < TERMINATORS.length; t++) { + var terminatorIdx = str.indexOf(TERMINATORS[t]); + -1 !== terminatorIdx && (str = str.substr(0, terminatorIdx)); + } + return str; + })(cookiePair)).indexOf("="); + if (looseMode) 0 === firstEq && (firstEq = (cookiePair = cookiePair.substr(1)).indexOf("=")); else if (firstEq <= 0) return; + if (firstEq <= 0 ? (cookieName = "", cookieValue = cookiePair.trim()) : (cookieName = cookiePair.substr(0, firstEq).trim(), + cookieValue = cookiePair.substr(firstEq + 1).trim()), !CONTROL_CHARS.test(cookieName) && !CONTROL_CHARS.test(cookieValue)) { + var c = new Cookie; + return c.key = cookieName, c.value = cookieValue, c; + } + })(-1 === firstSemi ? str : str.substr(0, firstSemi), !!options.loose); + if (c) { + if (-1 === firstSemi) return c; + var unparsed = str.slice(firstSemi + 1).trim(); + if (0 === unparsed.length) return c; + for (var cookie_avs = unparsed.split(";"); cookie_avs.length; ) { + var av = cookie_avs.shift().trim(); + if (0 !== av.length) { + var av_key, av_value, av_sep = av.indexOf("="); + switch (-1 === av_sep ? (av_key = av, av_value = null) : (av_key = av.substr(0, av_sep), + av_value = av.substr(av_sep + 1)), av_key = av_key.trim().toLowerCase(), av_value && (av_value = av_value.trim()), + av_key) { + case "expires": + if (av_value) { + var exp = parseDate(av_value); + exp && (c.expires = exp); + } + break; + + case "max-age": + if (av_value && /^-?[0-9]+$/.test(av_value)) { + var delta = parseInt(av_value, 10); + c.setMaxAge(delta); + } + break; + + case "domain": + if (av_value) { + var domain = av_value.trim().replace(/^\./, ""); + domain && (c.domain = domain.toLowerCase()); + } + break; + + case "path": + c.path = av_value && "/" === av_value[0] ? av_value : null; + break; + + case "secure": + c.secure = !0; + break; + + case "httponly": + c.httpOnly = !0; + break; + + default: + c.extensions = c.extensions || [], c.extensions.push(av); + } + } + } + return c; + } + } + function jsonParse(str) { + var obj; + try { + obj = JSON.parse(str); + } catch (e) { + return e; + } + return obj; + } + function fromJSON(str) { + if (!str) return null; + var obj; + if ("string" == typeof str) { + if ((obj = jsonParse(str)) instanceof Error) return null; + } else obj = str; + for (var c = new Cookie, i = 0; i < Cookie.serializableProperties.length; i++) { + var prop = Cookie.serializableProperties[i]; + void 0 !== obj[prop] && obj[prop] !== Cookie.prototype[prop] && ("expires" === prop || "creation" === prop || "lastAccessed" === prop ? null === obj[prop] ? c[prop] = null : c[prop] = "Infinity" == obj[prop] ? "Infinity" : new Date(obj[prop]) : c[prop] = obj[prop]); + } + return c; + } + function cookieCompare(a, b) { + var cmp = 0, aPathLen = a.path ? a.path.length : 0; + return 0 != (cmp = (b.path ? b.path.length : 0) - aPathLen) || 0 != (cmp = (a.creation ? a.creation.getTime() : 2147483647e3) - (b.creation ? b.creation.getTime() : 2147483647e3)) ? cmp : cmp = a.creationIndex - b.creationIndex; + } + function getCookieContext(url) { + if (url instanceof Object) return url; + try { + url = decodeURI(url); + } catch (err) {} + return urlParse(url); + } + function Cookie(options) { + options = options || {}, Object.keys(options).forEach((function(prop) { + Cookie.prototype.hasOwnProperty(prop) && Cookie.prototype[prop] !== options[prop] && "_" !== prop.substr(0, 1) && (this[prop] = options[prop]); + }), this), this.creation = this.creation || new Date, Object.defineProperty(this, "creationIndex", { + configurable: !1, + enumerable: !1, + writable: !0, + value: ++Cookie.cookiesCreated + }); + } + function CookieJar(store, options) { + "boolean" == typeof options ? options = { + rejectPublicSuffixes: options + } : null == options && (options = {}), null != options.rejectPublicSuffixes && (this.rejectPublicSuffixes = options.rejectPublicSuffixes), + null != options.looseMode && (this.enableLooseMode = options.looseMode), store || (store = new MemoryCookieStore), + this.store = store; + } + Cookie.cookiesCreated = 0, Cookie.parse = parse, Cookie.fromJSON = fromJSON, Cookie.prototype.key = "", + Cookie.prototype.value = "", Cookie.prototype.expires = "Infinity", Cookie.prototype.maxAge = null, + Cookie.prototype.domain = null, Cookie.prototype.path = null, Cookie.prototype.secure = !1, + Cookie.prototype.httpOnly = !1, Cookie.prototype.extensions = null, Cookie.prototype.hostOnly = null, + Cookie.prototype.pathIsDefault = null, Cookie.prototype.creation = null, Cookie.prototype.lastAccessed = null, + Object.defineProperty(Cookie.prototype, "creationIndex", { + configurable: !0, + enumerable: !1, + writable: !0, + value: 0 + }), Cookie.serializableProperties = Object.keys(Cookie.prototype).filter((function(prop) { + return !(Cookie.prototype[prop] instanceof Function || "creationIndex" === prop || "_" === prop.substr(0, 1)); + })), Cookie.prototype.inspect = function() { + var now = Date.now(); + return 'Cookie="' + this.toString() + "; hostOnly=" + (null != this.hostOnly ? this.hostOnly : "?") + "; aAge=" + (this.lastAccessed ? now - this.lastAccessed.getTime() + "ms" : "?") + "; cAge=" + (this.creation ? now - this.creation.getTime() + "ms" : "?") + '"'; + }, util.inspect.custom && (Cookie.prototype[util.inspect.custom] = Cookie.prototype.inspect), + Cookie.prototype.toJSON = function() { + for (var obj = {}, props = Cookie.serializableProperties, i = 0; i < props.length; i++) { + var prop = props[i]; + this[prop] !== Cookie.prototype[prop] && ("expires" === prop || "creation" === prop || "lastAccessed" === prop ? null === this[prop] ? obj[prop] = null : obj[prop] = "Infinity" == this[prop] ? "Infinity" : this[prop].toISOString() : "maxAge" === prop ? null !== this[prop] && (obj[prop] = this[prop] == 1 / 0 || this[prop] == -1 / 0 ? this[prop].toString() : this[prop]) : this[prop] !== Cookie.prototype[prop] && (obj[prop] = this[prop])); + } + return obj; + }, Cookie.prototype.clone = function() { + return fromJSON(this.toJSON()); + }, Cookie.prototype.validate = function() { + if (!COOKIE_OCTETS.test(this.value)) return !1; + if (!(this.expires == 1 / 0 || this.expires instanceof Date || parseDate(this.expires))) return !1; + if (null != this.maxAge && this.maxAge <= 0) return !1; + if (null != this.path && !PATH_VALUE.test(this.path)) return !1; + var cdomain = this.cdomain(); + if (cdomain) { + if (cdomain.match(/\.$/)) return !1; + if (null == pubsuffix.getPublicSuffix(cdomain)) return !1; + } + return !0; + }, Cookie.prototype.setExpires = function(exp) { + exp instanceof Date ? this.expires = exp : this.expires = parseDate(exp) || "Infinity"; + }, Cookie.prototype.setMaxAge = function(age) { + this.maxAge = age === 1 / 0 || age === -1 / 0 ? age.toString() : age; + }, Cookie.prototype.cookieString = function() { + var val = this.value; + return null == val && (val = ""), "" === this.key ? val : this.key + "=" + val; + }, Cookie.prototype.toString = function() { + var str = this.cookieString(); + return this.expires != 1 / 0 && (this.expires instanceof Date ? str += "; Expires=" + formatDate(this.expires) : str += "; Expires=" + this.expires), + null != this.maxAge && this.maxAge != 1 / 0 && (str += "; Max-Age=" + this.maxAge), + this.domain && !this.hostOnly && (str += "; Domain=" + this.domain), this.path && (str += "; Path=" + this.path), + this.secure && (str += "; Secure"), this.httpOnly && (str += "; HttpOnly"), this.extensions && this.extensions.forEach((function(ext) { + str += "; " + ext; + })), str; + }, Cookie.prototype.TTL = function(now) { + if (null != this.maxAge) return this.maxAge <= 0 ? 0 : 1e3 * this.maxAge; + var expires = this.expires; + return expires != 1 / 0 ? (expires instanceof Date || (expires = parseDate(expires) || 1 / 0), + expires == 1 / 0 ? 1 / 0 : expires.getTime() - (now || Date.now())) : 1 / 0; + }, Cookie.prototype.expiryTime = function(now) { + if (null != this.maxAge) { + var relativeTo = now || this.creation || new Date, age = this.maxAge <= 0 ? -1 / 0 : 1e3 * this.maxAge; + return relativeTo.getTime() + age; + } + return this.expires == 1 / 0 ? 1 / 0 : this.expires.getTime(); + }, Cookie.prototype.expiryDate = function(now) { + var millisec = this.expiryTime(now); + return millisec == 1 / 0 ? new Date(2147483647e3) : millisec == -1 / 0 ? new Date(0) : new Date(millisec); + }, Cookie.prototype.isPersistent = function() { + return null != this.maxAge || this.expires != 1 / 0; + }, Cookie.prototype.cdomain = Cookie.prototype.canonicalizedDomain = function() { + return null == this.domain ? null : canonicalDomain(this.domain); + }, CookieJar.prototype.store = null, CookieJar.prototype.rejectPublicSuffixes = !0, + CookieJar.prototype.enableLooseMode = !1; + var CAN_BE_SYNC = []; + CAN_BE_SYNC.push("setCookie"), CookieJar.prototype.setCookie = function(cookie, url, options, cb) { + var err, context = getCookieContext(url); + options instanceof Function && (cb = options, options = {}); + var host = canonicalDomain(context.hostname), loose = this.enableLooseMode; + if (null != options.loose && (loose = options.loose), cookie instanceof Cookie || (cookie = Cookie.parse(cookie, { + loose: loose + })), !cookie) return err = new Error("Cookie failed to parse"), cb(options.ignoreError ? null : err); + var now = options.now || new Date; + if (this.rejectPublicSuffixes && cookie.domain && null == pubsuffix.getPublicSuffix(cookie.cdomain())) return err = new Error("Cookie has domain set to a public suffix"), + cb(options.ignoreError ? null : err); + if (cookie.domain) { + if (!domainMatch(host, cookie.cdomain(), !1)) return err = new Error("Cookie not in this host's domain. Cookie:" + cookie.cdomain() + " Request:" + host), + cb(options.ignoreError ? null : err); + null == cookie.hostOnly && (cookie.hostOnly = !1); + } else cookie.hostOnly = !0, cookie.domain = host; + if (cookie.path && "/" === cookie.path[0] || (cookie.path = defaultPath(context.pathname), + cookie.pathIsDefault = !0), !1 === options.http && cookie.httpOnly) return err = new Error("Cookie is HttpOnly and this isn't an HTTP API"), + cb(options.ignoreError ? null : err); + var store = this.store; + store.updateCookie || (store.updateCookie = function(oldCookie, newCookie, cb) { + this.putCookie(newCookie, cb); + }), store.findCookie(cookie.domain, cookie.path, cookie.key, (function(err, oldCookie) { + if (err) return cb(err); + var next = function(err) { + if (err) return cb(err); + cb(null, cookie); + }; + if (oldCookie) { + if (!1 === options.http && oldCookie.httpOnly) return err = new Error("old Cookie is HttpOnly and this isn't an HTTP API"), + cb(options.ignoreError ? null : err); + cookie.creation = oldCookie.creation, cookie.creationIndex = oldCookie.creationIndex, + cookie.lastAccessed = now, store.updateCookie(oldCookie, cookie, next); + } else cookie.creation = cookie.lastAccessed = now, store.putCookie(cookie, next); + })); + }, CAN_BE_SYNC.push("getCookies"), CookieJar.prototype.getCookies = function(url, options, cb) { + var context = getCookieContext(url); + options instanceof Function && (cb = options, options = {}); + var host = canonicalDomain(context.hostname), path = context.pathname || "/", secure = options.secure; + null != secure || !context.protocol || "https:" != context.protocol && "wss:" != context.protocol || (secure = !0); + var http = options.http; + null == http && (http = !0); + var now = options.now || Date.now(), expireCheck = !1 !== options.expire, allPaths = !!options.allPaths, store = this.store; + function matchingCookie(c) { + if (c.hostOnly) { + if (c.domain != host) return !1; + } else if (!domainMatch(host, c.domain, !1)) return !1; + return !(!allPaths && !pathMatch(path, c.path) || c.secure && !secure || c.httpOnly && !http || expireCheck && c.expiryTime() <= now && (store.removeCookie(c.domain, c.path, c.key, (function() {})), + 1)); + } + store.findCookies(host, allPaths ? null : path, (function(err, cookies) { + if (err) return cb(err); + cookies = cookies.filter(matchingCookie), !1 !== options.sort && (cookies = cookies.sort(cookieCompare)); + var now = new Date; + cookies.forEach((function(c) { + c.lastAccessed = now; + })), cb(null, cookies); + })); + }, CAN_BE_SYNC.push("getCookieString"), CookieJar.prototype.getCookieString = function() { + var args = Array.prototype.slice.call(arguments, 0), cb = args.pop(), next = function(err, cookies) { + err ? cb(err) : cb(null, cookies.sort(cookieCompare).map((function(c) { + return c.cookieString(); + })).join("; ")); + }; + args.push(next), this.getCookies.apply(this, args); + }, CAN_BE_SYNC.push("getSetCookieStrings"), CookieJar.prototype.getSetCookieStrings = function() { + var args = Array.prototype.slice.call(arguments, 0), cb = args.pop(), next = function(err, cookies) { + err ? cb(err) : cb(null, cookies.map((function(c) { + return c.toString(); + }))); + }; + args.push(next), this.getCookies.apply(this, args); + }, CAN_BE_SYNC.push("serialize"), CookieJar.prototype.serialize = function(cb) { + var type = this.store.constructor.name; + "Object" === type && (type = null); + var serialized = { + version: "tough-cookie@" + VERSION, + storeType: type, + rejectPublicSuffixes: !!this.rejectPublicSuffixes, + cookies: [] + }; + if (!this.store.getAllCookies || "function" != typeof this.store.getAllCookies) return cb(new Error("store does not support getAllCookies and cannot be serialized")); + this.store.getAllCookies((function(err, cookies) { + return err ? cb(err) : (serialized.cookies = cookies.map((function(cookie) { + return delete (cookie = cookie instanceof Cookie ? cookie.toJSON() : cookie).creationIndex, + cookie; + })), cb(null, serialized)); + })); + }, CookieJar.prototype.toJSON = function() { + return this.serializeSync(); + }, CAN_BE_SYNC.push("_importCookies"), CookieJar.prototype._importCookies = function(serialized, cb) { + var jar = this, cookies = serialized.cookies; + if (!cookies || !Array.isArray(cookies)) return cb(new Error("serialized jar has no cookies array")); + cookies = cookies.slice(), (function putNext(err) { + if (err) return cb(err); + if (!cookies.length) return cb(err, jar); + var cookie; + try { + cookie = fromJSON(cookies.shift()); + } catch (e) { + return cb(e); + } + if (null === cookie) return putNext(null); + jar.store.putCookie(cookie, putNext); + })(); + }, CookieJar.deserialize = function(strOrObj, store, cb) { + var serialized; + if (3 !== arguments.length && (cb = store, store = null), "string" == typeof strOrObj) { + if ((serialized = jsonParse(strOrObj)) instanceof Error) return cb(serialized); + } else serialized = strOrObj; + var jar = new CookieJar(store, serialized.rejectPublicSuffixes); + jar._importCookies(serialized, (function(err) { + if (err) return cb(err); + cb(null, jar); + })); + }, CookieJar.deserializeSync = function(strOrObj, store) { + var serialized = "string" == typeof strOrObj ? JSON.parse(strOrObj) : strOrObj, jar = new CookieJar(store, serialized.rejectPublicSuffixes); + if (!jar.store.synchronous) throw new Error("CookieJar store is not synchronous; use async API instead."); + return jar._importCookiesSync(serialized), jar; + }, CookieJar.fromJSON = CookieJar.deserializeSync, CAN_BE_SYNC.push("clone"), CookieJar.prototype.clone = function(newStore, cb) { + 1 === arguments.length && (cb = newStore, newStore = null), this.serialize((function(err, serialized) { + if (err) return cb(err); + CookieJar.deserialize(newStore, serialized, cb); + })); + }, CAN_BE_SYNC.forEach((function(method) { + CookieJar.prototype[method + "Sync"] = (function(method) { + return function() { + if (!this.store.synchronous) throw new Error("CookieJar store is not synchronous; use async API instead."); + var syncErr, syncResult, args = Array.prototype.slice.call(arguments); + if (args.push((function(err, result) { + syncErr = err, syncResult = result; + })), this[method].apply(this, args), syncErr) throw syncErr; + return syncResult; + }; + })(method); + })), exports.CookieJar = CookieJar, exports.Cookie = Cookie, exports.Store = Store, + exports.MemoryCookieStore = MemoryCookieStore, exports.parseDate = parseDate, exports.formatDate = formatDate, + exports.parse = parse, exports.fromJSON = fromJSON, exports.domainMatch = domainMatch, + exports.defaultPath = defaultPath, exports.pathMatch = pathMatch, exports.getPublicSuffix = pubsuffix.getPublicSuffix, + exports.cookieCompare = cookieCompare, exports.permuteDomain = __webpack_require__(477).permuteDomain, + exports.permutePath = function(path) { + if ("/" === path) return [ "/" ]; + path.lastIndexOf("/") === path.length - 1 && (path = path.substr(0, path.length - 1)); + for (var permutations = [ path ]; path.length > 1; ) { + var lindex = path.lastIndexOf("/"); + if (0 === lindex) break; + path = path.substr(0, lindex), permutations.push(path); + } + return permutations.push("/"), permutations; + }, exports.canonicalDomain = canonicalDomain; +}, function(module, exports, __webpack_require__) { + "use strict"; + var Punycode = __webpack_require__(475), internals = {}; + internals.rules = __webpack_require__(1044).map((function(rule) { + return { + rule: rule, + suffix: rule.replace(/^(\*\.|\!)/, ""), + punySuffix: -1, + wildcard: "*" === rule.charAt(0), + exception: "!" === rule.charAt(0) + }; + })), internals.endsWith = function(str, suffix) { + return -1 !== str.indexOf(suffix, str.length - suffix.length); + }, internals.findRule = function(domain) { + var punyDomain = Punycode.toASCII(domain); + return internals.rules.reduce((function(memo, rule) { + return -1 === rule.punySuffix && (rule.punySuffix = Punycode.toASCII(rule.suffix)), + internals.endsWith(punyDomain, "." + rule.punySuffix) || punyDomain === rule.punySuffix ? rule : memo; + }), null); + }, exports.errorCodes = { + DOMAIN_TOO_SHORT: "Domain name too short.", + DOMAIN_TOO_LONG: "Domain name too long. It should be no more than 255 chars.", + LABEL_STARTS_WITH_DASH: "Domain name label can not start with a dash.", + LABEL_ENDS_WITH_DASH: "Domain name label can not end with a dash.", + LABEL_TOO_LONG: "Domain name label should be at most 63 chars long.", + LABEL_TOO_SHORT: "Domain name label should be at least 1 character long.", + LABEL_INVALID_CHARS: "Domain name label can only contain alphanumeric characters or dashes." + }, internals.validate = function(input) { + var ascii = Punycode.toASCII(input); + if (ascii.length < 1) return "DOMAIN_TOO_SHORT"; + if (ascii.length > 255) return "DOMAIN_TOO_LONG"; + for (var label, labels = ascii.split("."), i = 0; i < labels.length; ++i) { + if (!(label = labels[i]).length) return "LABEL_TOO_SHORT"; + if (label.length > 63) return "LABEL_TOO_LONG"; + if ("-" === label.charAt(0)) return "LABEL_STARTS_WITH_DASH"; + if ("-" === label.charAt(label.length - 1)) return "LABEL_ENDS_WITH_DASH"; + if (!/^[a-z0-9\-]+$/.test(label)) return "LABEL_INVALID_CHARS"; + } + }, exports.parse = function(input) { + if ("string" != typeof input) throw new TypeError("Domain name must be a string."); + var domain = input.slice(0).toLowerCase(); + "." === domain.charAt(domain.length - 1) && (domain = domain.slice(0, domain.length - 1)); + var error = internals.validate(domain); + if (error) return { + input: input, + error: { + message: exports.errorCodes[error], + code: error + } + }; + var parsed = { + input: input, + tld: null, + sld: null, + domain: null, + subdomain: null, + listed: !1 + }, domainParts = domain.split("."); + if ("local" === domainParts[domainParts.length - 1]) return parsed; + var handlePunycode = function() { + return /xn--/.test(domain) ? (parsed.domain && (parsed.domain = Punycode.toASCII(parsed.domain)), + parsed.subdomain && (parsed.subdomain = Punycode.toASCII(parsed.subdomain)), parsed) : parsed; + }, rule = internals.findRule(domain); + if (!rule) return domainParts.length < 2 ? parsed : (parsed.tld = domainParts.pop(), + parsed.sld = domainParts.pop(), parsed.domain = [ parsed.sld, parsed.tld ].join("."), + domainParts.length && (parsed.subdomain = domainParts.pop()), handlePunycode()); + parsed.listed = !0; + var tldParts = rule.suffix.split("."), privateParts = domainParts.slice(0, domainParts.length - tldParts.length); + return rule.exception && privateParts.push(tldParts.shift()), parsed.tld = tldParts.join("."), + privateParts.length ? (rule.wildcard && (tldParts.unshift(privateParts.pop()), parsed.tld = tldParts.join(".")), + privateParts.length ? (parsed.sld = privateParts.pop(), parsed.domain = [ parsed.sld, parsed.tld ].join("."), + privateParts.length && (parsed.subdomain = privateParts.join(".")), handlePunycode()) : handlePunycode()) : handlePunycode(); + }, exports.get = function(domain) { + return domain && exports.parse(domain).domain || null; + }, exports.isValid = function(domain) { + var parsed = exports.parse(domain); + return Boolean(parsed.domain && parsed.listed); + }; +}, function(module) { + module.exports = [ "ac", "com.ac", "edu.ac", "gov.ac", "net.ac", "mil.ac", "org.ac", "ad", "nom.ad", "ae", "co.ae", "net.ae", "org.ae", "sch.ae", "ac.ae", "gov.ae", "mil.ae", "aero", "accident-investigation.aero", "accident-prevention.aero", "aerobatic.aero", "aeroclub.aero", "aerodrome.aero", "agents.aero", "aircraft.aero", "airline.aero", "airport.aero", "air-surveillance.aero", "airtraffic.aero", "air-traffic-control.aero", "ambulance.aero", "amusement.aero", "association.aero", "author.aero", "ballooning.aero", "broker.aero", "caa.aero", "cargo.aero", "catering.aero", "certification.aero", "championship.aero", "charter.aero", "civilaviation.aero", "club.aero", "conference.aero", "consultant.aero", "consulting.aero", "control.aero", "council.aero", "crew.aero", "design.aero", "dgca.aero", "educator.aero", "emergency.aero", "engine.aero", "engineer.aero", "entertainment.aero", "equipment.aero", "exchange.aero", "express.aero", "federation.aero", "flight.aero", "freight.aero", "fuel.aero", "gliding.aero", "government.aero", "groundhandling.aero", "group.aero", "hanggliding.aero", "homebuilt.aero", "insurance.aero", "journal.aero", "journalist.aero", "leasing.aero", "logistics.aero", "magazine.aero", "maintenance.aero", "media.aero", "microlight.aero", "modelling.aero", "navigation.aero", "parachuting.aero", "paragliding.aero", "passenger-association.aero", "pilot.aero", "press.aero", "production.aero", "recreation.aero", "repbody.aero", "res.aero", "research.aero", "rotorcraft.aero", "safety.aero", "scientist.aero", "services.aero", "show.aero", "skydiving.aero", "software.aero", "student.aero", "trader.aero", "trading.aero", "trainer.aero", "union.aero", "workinggroup.aero", "works.aero", "af", "gov.af", "com.af", "org.af", "net.af", "edu.af", "ag", "com.ag", "org.ag", "net.ag", "co.ag", "nom.ag", "ai", "off.ai", "com.ai", "net.ai", "org.ai", "al", "com.al", "edu.al", "gov.al", "mil.al", "net.al", "org.al", "am", "co.am", "com.am", "commune.am", "net.am", "org.am", "ao", "ed.ao", "gv.ao", "og.ao", "co.ao", "pb.ao", "it.ao", "aq", "ar", "com.ar", "edu.ar", "gob.ar", "gov.ar", "int.ar", "mil.ar", "musica.ar", "net.ar", "org.ar", "tur.ar", "arpa", "e164.arpa", "in-addr.arpa", "ip6.arpa", "iris.arpa", "uri.arpa", "urn.arpa", "as", "gov.as", "asia", "at", "ac.at", "co.at", "gv.at", "or.at", "au", "com.au", "net.au", "org.au", "edu.au", "gov.au", "asn.au", "id.au", "info.au", "conf.au", "oz.au", "act.au", "nsw.au", "nt.au", "qld.au", "sa.au", "tas.au", "vic.au", "wa.au", "act.edu.au", "nsw.edu.au", "nt.edu.au", "qld.edu.au", "sa.edu.au", "tas.edu.au", "vic.edu.au", "wa.edu.au", "qld.gov.au", "sa.gov.au", "tas.gov.au", "vic.gov.au", "wa.gov.au", "aw", "com.aw", "ax", "az", "com.az", "net.az", "int.az", "gov.az", "org.az", "edu.az", "info.az", "pp.az", "mil.az", "name.az", "pro.az", "biz.az", "ba", "com.ba", "edu.ba", "gov.ba", "mil.ba", "net.ba", "org.ba", "bb", "biz.bb", "co.bb", "com.bb", "edu.bb", "gov.bb", "info.bb", "net.bb", "org.bb", "store.bb", "tv.bb", "*.bd", "be", "ac.be", "bf", "gov.bf", "bg", "a.bg", "b.bg", "c.bg", "d.bg", "e.bg", "f.bg", "g.bg", "h.bg", "i.bg", "j.bg", "k.bg", "l.bg", "m.bg", "n.bg", "o.bg", "p.bg", "q.bg", "r.bg", "s.bg", "t.bg", "u.bg", "v.bg", "w.bg", "x.bg", "y.bg", "z.bg", "0.bg", "1.bg", "2.bg", "3.bg", "4.bg", "5.bg", "6.bg", "7.bg", "8.bg", "9.bg", "bh", "com.bh", "edu.bh", "net.bh", "org.bh", "gov.bh", "bi", "co.bi", "com.bi", "edu.bi", "or.bi", "org.bi", "biz", "bj", "asso.bj", "barreau.bj", "gouv.bj", "bm", "com.bm", "edu.bm", "gov.bm", "net.bm", "org.bm", "bn", "com.bn", "edu.bn", "gov.bn", "net.bn", "org.bn", "bo", "com.bo", "edu.bo", "gob.bo", "int.bo", "org.bo", "net.bo", "mil.bo", "tv.bo", "web.bo", "academia.bo", "agro.bo", "arte.bo", "blog.bo", "bolivia.bo", "ciencia.bo", "cooperativa.bo", "democracia.bo", "deporte.bo", "ecologia.bo", "economia.bo", "empresa.bo", "indigena.bo", "industria.bo", "info.bo", "medicina.bo", "movimiento.bo", "musica.bo", "natural.bo", "nombre.bo", "noticias.bo", "patria.bo", "politica.bo", "profesional.bo", "plurinacional.bo", "pueblo.bo", "revista.bo", "salud.bo", "tecnologia.bo", "tksat.bo", "transporte.bo", "wiki.bo", "br", "9guacu.br", "abc.br", "adm.br", "adv.br", "agr.br", "aju.br", "am.br", "anani.br", "aparecida.br", "arq.br", "art.br", "ato.br", "b.br", "barueri.br", "belem.br", "bhz.br", "bio.br", "blog.br", "bmd.br", "boavista.br", "bsb.br", "campinagrande.br", "campinas.br", "caxias.br", "cim.br", "cng.br", "cnt.br", "com.br", "contagem.br", "coop.br", "cri.br", "cuiaba.br", "curitiba.br", "def.br", "ecn.br", "eco.br", "edu.br", "emp.br", "eng.br", "esp.br", "etc.br", "eti.br", "far.br", "feira.br", "flog.br", "floripa.br", "fm.br", "fnd.br", "fortal.br", "fot.br", "foz.br", "fst.br", "g12.br", "ggf.br", "goiania.br", "gov.br", "ac.gov.br", "al.gov.br", "am.gov.br", "ap.gov.br", "ba.gov.br", "ce.gov.br", "df.gov.br", "es.gov.br", "go.gov.br", "ma.gov.br", "mg.gov.br", "ms.gov.br", "mt.gov.br", "pa.gov.br", "pb.gov.br", "pe.gov.br", "pi.gov.br", "pr.gov.br", "rj.gov.br", "rn.gov.br", "ro.gov.br", "rr.gov.br", "rs.gov.br", "sc.gov.br", "se.gov.br", "sp.gov.br", "to.gov.br", "gru.br", "imb.br", "ind.br", "inf.br", "jab.br", "jampa.br", "jdf.br", "joinville.br", "jor.br", "jus.br", "leg.br", "lel.br", "londrina.br", "macapa.br", "maceio.br", "manaus.br", "maringa.br", "mat.br", "med.br", "mil.br", "morena.br", "mp.br", "mus.br", "natal.br", "net.br", "niteroi.br", "*.nom.br", "not.br", "ntr.br", "odo.br", "ong.br", "org.br", "osasco.br", "palmas.br", "poa.br", "ppg.br", "pro.br", "psc.br", "psi.br", "pvh.br", "qsl.br", "radio.br", "rec.br", "recife.br", "ribeirao.br", "rio.br", "riobranco.br", "riopreto.br", "salvador.br", "sampa.br", "santamaria.br", "santoandre.br", "saobernardo.br", "saogonca.br", "sjc.br", "slg.br", "slz.br", "sorocaba.br", "srv.br", "taxi.br", "tc.br", "teo.br", "the.br", "tmp.br", "trd.br", "tur.br", "tv.br", "udi.br", "vet.br", "vix.br", "vlog.br", "wiki.br", "zlg.br", "bs", "com.bs", "net.bs", "org.bs", "edu.bs", "gov.bs", "bt", "com.bt", "edu.bt", "gov.bt", "net.bt", "org.bt", "bv", "bw", "co.bw", "org.bw", "by", "gov.by", "mil.by", "com.by", "of.by", "bz", "com.bz", "net.bz", "org.bz", "edu.bz", "gov.bz", "ca", "ab.ca", "bc.ca", "mb.ca", "nb.ca", "nf.ca", "nl.ca", "ns.ca", "nt.ca", "nu.ca", "on.ca", "pe.ca", "qc.ca", "sk.ca", "yk.ca", "gc.ca", "cat", "cc", "cd", "gov.cd", "cf", "cg", "ch", "ci", "org.ci", "or.ci", "com.ci", "co.ci", "edu.ci", "ed.ci", "ac.ci", "net.ci", "go.ci", "asso.ci", "aéroport.ci", "int.ci", "presse.ci", "md.ci", "gouv.ci", "*.ck", "!www.ck", "cl", "gov.cl", "gob.cl", "co.cl", "mil.cl", "cm", "co.cm", "com.cm", "gov.cm", "net.cm", "cn", "ac.cn", "com.cn", "edu.cn", "gov.cn", "net.cn", "org.cn", "mil.cn", "公司.cn", "网络.cn", "網絡.cn", "ah.cn", "bj.cn", "cq.cn", "fj.cn", "gd.cn", "gs.cn", "gz.cn", "gx.cn", "ha.cn", "hb.cn", "he.cn", "hi.cn", "hl.cn", "hn.cn", "jl.cn", "js.cn", "jx.cn", "ln.cn", "nm.cn", "nx.cn", "qh.cn", "sc.cn", "sd.cn", "sh.cn", "sn.cn", "sx.cn", "tj.cn", "xj.cn", "xz.cn", "yn.cn", "zj.cn", "hk.cn", "mo.cn", "tw.cn", "co", "arts.co", "com.co", "edu.co", "firm.co", "gov.co", "info.co", "int.co", "mil.co", "net.co", "nom.co", "org.co", "rec.co", "web.co", "com", "coop", "cr", "ac.cr", "co.cr", "ed.cr", "fi.cr", "go.cr", "or.cr", "sa.cr", "cu", "com.cu", "edu.cu", "org.cu", "net.cu", "gov.cu", "inf.cu", "cv", "cw", "com.cw", "edu.cw", "net.cw", "org.cw", "cx", "gov.cx", "cy", "ac.cy", "biz.cy", "com.cy", "ekloges.cy", "gov.cy", "ltd.cy", "name.cy", "net.cy", "org.cy", "parliament.cy", "press.cy", "pro.cy", "tm.cy", "cz", "de", "dj", "dk", "dm", "com.dm", "net.dm", "org.dm", "edu.dm", "gov.dm", "do", "art.do", "com.do", "edu.do", "gob.do", "gov.do", "mil.do", "net.do", "org.do", "sld.do", "web.do", "dz", "com.dz", "org.dz", "net.dz", "gov.dz", "edu.dz", "asso.dz", "pol.dz", "art.dz", "ec", "com.ec", "info.ec", "net.ec", "fin.ec", "k12.ec", "med.ec", "pro.ec", "org.ec", "edu.ec", "gov.ec", "gob.ec", "mil.ec", "edu", "ee", "edu.ee", "gov.ee", "riik.ee", "lib.ee", "med.ee", "com.ee", "pri.ee", "aip.ee", "org.ee", "fie.ee", "eg", "com.eg", "edu.eg", "eun.eg", "gov.eg", "mil.eg", "name.eg", "net.eg", "org.eg", "sci.eg", "*.er", "es", "com.es", "nom.es", "org.es", "gob.es", "edu.es", "et", "com.et", "gov.et", "org.et", "edu.et", "biz.et", "name.et", "info.et", "net.et", "eu", "fi", "aland.fi", "*.fj", "*.fk", "fm", "fo", "fr", "asso.fr", "com.fr", "gouv.fr", "nom.fr", "prd.fr", "tm.fr", "aeroport.fr", "avocat.fr", "avoues.fr", "cci.fr", "chambagri.fr", "chirurgiens-dentistes.fr", "experts-comptables.fr", "geometre-expert.fr", "greta.fr", "huissier-justice.fr", "medecin.fr", "notaires.fr", "pharmacien.fr", "port.fr", "veterinaire.fr", "ga", "gb", "gd", "ge", "com.ge", "edu.ge", "gov.ge", "org.ge", "mil.ge", "net.ge", "pvt.ge", "gf", "gg", "co.gg", "net.gg", "org.gg", "gh", "com.gh", "edu.gh", "gov.gh", "org.gh", "mil.gh", "gi", "com.gi", "ltd.gi", "gov.gi", "mod.gi", "edu.gi", "org.gi", "gl", "co.gl", "com.gl", "edu.gl", "net.gl", "org.gl", "gm", "gn", "ac.gn", "com.gn", "edu.gn", "gov.gn", "org.gn", "net.gn", "gov", "gp", "com.gp", "net.gp", "mobi.gp", "edu.gp", "org.gp", "asso.gp", "gq", "gr", "com.gr", "edu.gr", "net.gr", "org.gr", "gov.gr", "gs", "gt", "com.gt", "edu.gt", "gob.gt", "ind.gt", "mil.gt", "net.gt", "org.gt", "gu", "com.gu", "edu.gu", "gov.gu", "guam.gu", "info.gu", "net.gu", "org.gu", "web.gu", "gw", "gy", "co.gy", "com.gy", "edu.gy", "gov.gy", "net.gy", "org.gy", "hk", "com.hk", "edu.hk", "gov.hk", "idv.hk", "net.hk", "org.hk", "公司.hk", "教育.hk", "敎育.hk", "政府.hk", "個人.hk", "个人.hk", "箇人.hk", "網络.hk", "网络.hk", "组織.hk", "網絡.hk", "网絡.hk", "组织.hk", "組織.hk", "組织.hk", "hm", "hn", "com.hn", "edu.hn", "org.hn", "net.hn", "mil.hn", "gob.hn", "hr", "iz.hr", "from.hr", "name.hr", "com.hr", "ht", "com.ht", "shop.ht", "firm.ht", "info.ht", "adult.ht", "net.ht", "pro.ht", "org.ht", "med.ht", "art.ht", "coop.ht", "pol.ht", "asso.ht", "edu.ht", "rel.ht", "gouv.ht", "perso.ht", "hu", "co.hu", "info.hu", "org.hu", "priv.hu", "sport.hu", "tm.hu", "2000.hu", "agrar.hu", "bolt.hu", "casino.hu", "city.hu", "erotica.hu", "erotika.hu", "film.hu", "forum.hu", "games.hu", "hotel.hu", "ingatlan.hu", "jogasz.hu", "konyvelo.hu", "lakas.hu", "media.hu", "news.hu", "reklam.hu", "sex.hu", "shop.hu", "suli.hu", "szex.hu", "tozsde.hu", "utazas.hu", "video.hu", "id", "ac.id", "biz.id", "co.id", "desa.id", "go.id", "mil.id", "my.id", "net.id", "or.id", "ponpes.id", "sch.id", "web.id", "ie", "gov.ie", "il", "ac.il", "co.il", "gov.il", "idf.il", "k12.il", "muni.il", "net.il", "org.il", "im", "ac.im", "co.im", "com.im", "ltd.co.im", "net.im", "org.im", "plc.co.im", "tt.im", "tv.im", "in", "co.in", "firm.in", "net.in", "org.in", "gen.in", "ind.in", "nic.in", "ac.in", "edu.in", "res.in", "gov.in", "mil.in", "info", "int", "eu.int", "io", "com.io", "iq", "gov.iq", "edu.iq", "mil.iq", "com.iq", "org.iq", "net.iq", "ir", "ac.ir", "co.ir", "gov.ir", "id.ir", "net.ir", "org.ir", "sch.ir", "ایران.ir", "ايران.ir", "is", "net.is", "com.is", "edu.is", "gov.is", "org.is", "int.is", "it", "gov.it", "edu.it", "abr.it", "abruzzo.it", "aosta-valley.it", "aostavalley.it", "bas.it", "basilicata.it", "cal.it", "calabria.it", "cam.it", "campania.it", "emilia-romagna.it", "emiliaromagna.it", "emr.it", "friuli-v-giulia.it", "friuli-ve-giulia.it", "friuli-vegiulia.it", "friuli-venezia-giulia.it", "friuli-veneziagiulia.it", "friuli-vgiulia.it", "friuliv-giulia.it", "friulive-giulia.it", "friulivegiulia.it", "friulivenezia-giulia.it", "friuliveneziagiulia.it", "friulivgiulia.it", "fvg.it", "laz.it", "lazio.it", "lig.it", "liguria.it", "lom.it", "lombardia.it", "lombardy.it", "lucania.it", "mar.it", "marche.it", "mol.it", "molise.it", "piedmont.it", "piemonte.it", "pmn.it", "pug.it", "puglia.it", "sar.it", "sardegna.it", "sardinia.it", "sic.it", "sicilia.it", "sicily.it", "taa.it", "tos.it", "toscana.it", "trentin-sud-tirol.it", "trentin-süd-tirol.it", "trentin-sudtirol.it", "trentin-südtirol.it", "trentin-sued-tirol.it", "trentin-suedtirol.it", "trentino-a-adige.it", "trentino-aadige.it", "trentino-alto-adige.it", "trentino-altoadige.it", "trentino-s-tirol.it", "trentino-stirol.it", "trentino-sud-tirol.it", "trentino-süd-tirol.it", "trentino-sudtirol.it", "trentino-südtirol.it", "trentino-sued-tirol.it", "trentino-suedtirol.it", "trentino.it", "trentinoa-adige.it", "trentinoaadige.it", "trentinoalto-adige.it", "trentinoaltoadige.it", "trentinos-tirol.it", "trentinostirol.it", "trentinosud-tirol.it", "trentinosüd-tirol.it", "trentinosudtirol.it", "trentinosüdtirol.it", "trentinosued-tirol.it", "trentinosuedtirol.it", "trentinsud-tirol.it", "trentinsüd-tirol.it", "trentinsudtirol.it", "trentinsüdtirol.it", "trentinsued-tirol.it", "trentinsuedtirol.it", "tuscany.it", "umb.it", "umbria.it", "val-d-aosta.it", "val-daosta.it", "vald-aosta.it", "valdaosta.it", "valle-aosta.it", "valle-d-aosta.it", "valle-daosta.it", "valleaosta.it", "valled-aosta.it", "valledaosta.it", "vallee-aoste.it", "vallée-aoste.it", "vallee-d-aoste.it", "vallée-d-aoste.it", "valleeaoste.it", "valléeaoste.it", "valleedaoste.it", "valléedaoste.it", "vao.it", "vda.it", "ven.it", "veneto.it", "ag.it", "agrigento.it", "al.it", "alessandria.it", "alto-adige.it", "altoadige.it", "an.it", "ancona.it", "andria-barletta-trani.it", "andria-trani-barletta.it", "andriabarlettatrani.it", "andriatranibarletta.it", "ao.it", "aosta.it", "aoste.it", "ap.it", "aq.it", "aquila.it", "ar.it", "arezzo.it", "ascoli-piceno.it", "ascolipiceno.it", "asti.it", "at.it", "av.it", "avellino.it", "ba.it", "balsan-sudtirol.it", "balsan-südtirol.it", "balsan-suedtirol.it", "balsan.it", "bari.it", "barletta-trani-andria.it", "barlettatraniandria.it", "belluno.it", "benevento.it", "bergamo.it", "bg.it", "bi.it", "biella.it", "bl.it", "bn.it", "bo.it", "bologna.it", "bolzano-altoadige.it", "bolzano.it", "bozen-sudtirol.it", "bozen-südtirol.it", "bozen-suedtirol.it", "bozen.it", "br.it", "brescia.it", "brindisi.it", "bs.it", "bt.it", "bulsan-sudtirol.it", "bulsan-südtirol.it", "bulsan-suedtirol.it", "bulsan.it", "bz.it", "ca.it", "cagliari.it", "caltanissetta.it", "campidano-medio.it", "campidanomedio.it", "campobasso.it", "carbonia-iglesias.it", "carboniaiglesias.it", "carrara-massa.it", "carraramassa.it", "caserta.it", "catania.it", "catanzaro.it", "cb.it", "ce.it", "cesena-forli.it", "cesena-forlì.it", "cesenaforli.it", "cesenaforlì.it", "ch.it", "chieti.it", "ci.it", "cl.it", "cn.it", "co.it", "como.it", "cosenza.it", "cr.it", "cremona.it", "crotone.it", "cs.it", "ct.it", "cuneo.it", "cz.it", "dell-ogliastra.it", "dellogliastra.it", "en.it", "enna.it", "fc.it", "fe.it", "fermo.it", "ferrara.it", "fg.it", "fi.it", "firenze.it", "florence.it", "fm.it", "foggia.it", "forli-cesena.it", "forlì-cesena.it", "forlicesena.it", "forlìcesena.it", "fr.it", "frosinone.it", "ge.it", "genoa.it", "genova.it", "go.it", "gorizia.it", "gr.it", "grosseto.it", "iglesias-carbonia.it", "iglesiascarbonia.it", "im.it", "imperia.it", "is.it", "isernia.it", "kr.it", "la-spezia.it", "laquila.it", "laspezia.it", "latina.it", "lc.it", "le.it", "lecce.it", "lecco.it", "li.it", "livorno.it", "lo.it", "lodi.it", "lt.it", "lu.it", "lucca.it", "macerata.it", "mantova.it", "massa-carrara.it", "massacarrara.it", "matera.it", "mb.it", "mc.it", "me.it", "medio-campidano.it", "mediocampidano.it", "messina.it", "mi.it", "milan.it", "milano.it", "mn.it", "mo.it", "modena.it", "monza-brianza.it", "monza-e-della-brianza.it", "monza.it", "monzabrianza.it", "monzaebrianza.it", "monzaedellabrianza.it", "ms.it", "mt.it", "na.it", "naples.it", "napoli.it", "no.it", "novara.it", "nu.it", "nuoro.it", "og.it", "ogliastra.it", "olbia-tempio.it", "olbiatempio.it", "or.it", "oristano.it", "ot.it", "pa.it", "padova.it", "padua.it", "palermo.it", "parma.it", "pavia.it", "pc.it", "pd.it", "pe.it", "perugia.it", "pesaro-urbino.it", "pesarourbino.it", "pescara.it", "pg.it", "pi.it", "piacenza.it", "pisa.it", "pistoia.it", "pn.it", "po.it", "pordenone.it", "potenza.it", "pr.it", "prato.it", "pt.it", "pu.it", "pv.it", "pz.it", "ra.it", "ragusa.it", "ravenna.it", "rc.it", "re.it", "reggio-calabria.it", "reggio-emilia.it", "reggiocalabria.it", "reggioemilia.it", "rg.it", "ri.it", "rieti.it", "rimini.it", "rm.it", "rn.it", "ro.it", "roma.it", "rome.it", "rovigo.it", "sa.it", "salerno.it", "sassari.it", "savona.it", "si.it", "siena.it", "siracusa.it", "so.it", "sondrio.it", "sp.it", "sr.it", "ss.it", "suedtirol.it", "südtirol.it", "sv.it", "ta.it", "taranto.it", "te.it", "tempio-olbia.it", "tempioolbia.it", "teramo.it", "terni.it", "tn.it", "to.it", "torino.it", "tp.it", "tr.it", "trani-andria-barletta.it", "trani-barletta-andria.it", "traniandriabarletta.it", "tranibarlettaandria.it", "trapani.it", "trento.it", "treviso.it", "trieste.it", "ts.it", "turin.it", "tv.it", "ud.it", "udine.it", "urbino-pesaro.it", "urbinopesaro.it", "va.it", "varese.it", "vb.it", "vc.it", "ve.it", "venezia.it", "venice.it", "verbania.it", "vercelli.it", "verona.it", "vi.it", "vibo-valentia.it", "vibovalentia.it", "vicenza.it", "viterbo.it", "vr.it", "vs.it", "vt.it", "vv.it", "je", "co.je", "net.je", "org.je", "*.jm", "jo", "com.jo", "org.jo", "net.jo", "edu.jo", "sch.jo", "gov.jo", "mil.jo", "name.jo", "jobs", "jp", "ac.jp", "ad.jp", "co.jp", "ed.jp", "go.jp", "gr.jp", "lg.jp", "ne.jp", "or.jp", "aichi.jp", "akita.jp", "aomori.jp", "chiba.jp", "ehime.jp", "fukui.jp", "fukuoka.jp", "fukushima.jp", "gifu.jp", "gunma.jp", "hiroshima.jp", "hokkaido.jp", "hyogo.jp", "ibaraki.jp", "ishikawa.jp", "iwate.jp", "kagawa.jp", "kagoshima.jp", "kanagawa.jp", "kochi.jp", "kumamoto.jp", "kyoto.jp", "mie.jp", "miyagi.jp", "miyazaki.jp", "nagano.jp", "nagasaki.jp", "nara.jp", "niigata.jp", "oita.jp", "okayama.jp", "okinawa.jp", "osaka.jp", "saga.jp", "saitama.jp", "shiga.jp", "shimane.jp", "shizuoka.jp", "tochigi.jp", "tokushima.jp", "tokyo.jp", "tottori.jp", "toyama.jp", "wakayama.jp", "yamagata.jp", "yamaguchi.jp", "yamanashi.jp", "栃木.jp", "愛知.jp", "愛媛.jp", "兵庫.jp", "熊本.jp", "茨城.jp", "北海道.jp", "千葉.jp", "和歌山.jp", "長崎.jp", "長野.jp", "新潟.jp", "青森.jp", "静岡.jp", "東京.jp", "石川.jp", "埼玉.jp", "三重.jp", "京都.jp", "佐賀.jp", "大分.jp", "大阪.jp", "奈良.jp", "宮城.jp", "宮崎.jp", "富山.jp", "山口.jp", "山形.jp", "山梨.jp", "岩手.jp", "岐阜.jp", "岡山.jp", "島根.jp", "広島.jp", "徳島.jp", "沖縄.jp", "滋賀.jp", "神奈川.jp", "福井.jp", "福岡.jp", "福島.jp", "秋田.jp", "群馬.jp", "香川.jp", "高知.jp", "鳥取.jp", "鹿児島.jp", "*.kawasaki.jp", "*.kitakyushu.jp", "*.kobe.jp", "*.nagoya.jp", "*.sapporo.jp", "*.sendai.jp", "*.yokohama.jp", "!city.kawasaki.jp", "!city.kitakyushu.jp", "!city.kobe.jp", "!city.nagoya.jp", "!city.sapporo.jp", "!city.sendai.jp", "!city.yokohama.jp", "aisai.aichi.jp", "ama.aichi.jp", "anjo.aichi.jp", "asuke.aichi.jp", "chiryu.aichi.jp", "chita.aichi.jp", "fuso.aichi.jp", "gamagori.aichi.jp", "handa.aichi.jp", "hazu.aichi.jp", "hekinan.aichi.jp", "higashiura.aichi.jp", "ichinomiya.aichi.jp", "inazawa.aichi.jp", "inuyama.aichi.jp", "isshiki.aichi.jp", "iwakura.aichi.jp", "kanie.aichi.jp", "kariya.aichi.jp", "kasugai.aichi.jp", "kira.aichi.jp", "kiyosu.aichi.jp", "komaki.aichi.jp", "konan.aichi.jp", "kota.aichi.jp", "mihama.aichi.jp", "miyoshi.aichi.jp", "nishio.aichi.jp", "nisshin.aichi.jp", "obu.aichi.jp", "oguchi.aichi.jp", "oharu.aichi.jp", "okazaki.aichi.jp", "owariasahi.aichi.jp", "seto.aichi.jp", "shikatsu.aichi.jp", "shinshiro.aichi.jp", "shitara.aichi.jp", "tahara.aichi.jp", "takahama.aichi.jp", "tobishima.aichi.jp", "toei.aichi.jp", "togo.aichi.jp", "tokai.aichi.jp", "tokoname.aichi.jp", "toyoake.aichi.jp", "toyohashi.aichi.jp", "toyokawa.aichi.jp", "toyone.aichi.jp", "toyota.aichi.jp", "tsushima.aichi.jp", "yatomi.aichi.jp", "akita.akita.jp", "daisen.akita.jp", "fujisato.akita.jp", "gojome.akita.jp", "hachirogata.akita.jp", "happou.akita.jp", "higashinaruse.akita.jp", "honjo.akita.jp", "honjyo.akita.jp", "ikawa.akita.jp", "kamikoani.akita.jp", "kamioka.akita.jp", "katagami.akita.jp", "kazuno.akita.jp", "kitaakita.akita.jp", "kosaka.akita.jp", "kyowa.akita.jp", "misato.akita.jp", "mitane.akita.jp", "moriyoshi.akita.jp", "nikaho.akita.jp", "noshiro.akita.jp", "odate.akita.jp", "oga.akita.jp", "ogata.akita.jp", "semboku.akita.jp", "yokote.akita.jp", "yurihonjo.akita.jp", "aomori.aomori.jp", "gonohe.aomori.jp", "hachinohe.aomori.jp", "hashikami.aomori.jp", "hiranai.aomori.jp", "hirosaki.aomori.jp", "itayanagi.aomori.jp", "kuroishi.aomori.jp", "misawa.aomori.jp", "mutsu.aomori.jp", "nakadomari.aomori.jp", "noheji.aomori.jp", "oirase.aomori.jp", "owani.aomori.jp", "rokunohe.aomori.jp", "sannohe.aomori.jp", "shichinohe.aomori.jp", "shingo.aomori.jp", "takko.aomori.jp", "towada.aomori.jp", "tsugaru.aomori.jp", "tsuruta.aomori.jp", "abiko.chiba.jp", "asahi.chiba.jp", "chonan.chiba.jp", "chosei.chiba.jp", "choshi.chiba.jp", "chuo.chiba.jp", "funabashi.chiba.jp", "futtsu.chiba.jp", "hanamigawa.chiba.jp", "ichihara.chiba.jp", "ichikawa.chiba.jp", "ichinomiya.chiba.jp", "inzai.chiba.jp", "isumi.chiba.jp", "kamagaya.chiba.jp", "kamogawa.chiba.jp", "kashiwa.chiba.jp", "katori.chiba.jp", "katsuura.chiba.jp", "kimitsu.chiba.jp", "kisarazu.chiba.jp", "kozaki.chiba.jp", "kujukuri.chiba.jp", "kyonan.chiba.jp", "matsudo.chiba.jp", "midori.chiba.jp", "mihama.chiba.jp", "minamiboso.chiba.jp", "mobara.chiba.jp", "mutsuzawa.chiba.jp", "nagara.chiba.jp", "nagareyama.chiba.jp", "narashino.chiba.jp", "narita.chiba.jp", "noda.chiba.jp", "oamishirasato.chiba.jp", "omigawa.chiba.jp", "onjuku.chiba.jp", "otaki.chiba.jp", "sakae.chiba.jp", "sakura.chiba.jp", "shimofusa.chiba.jp", "shirako.chiba.jp", "shiroi.chiba.jp", "shisui.chiba.jp", "sodegaura.chiba.jp", "sosa.chiba.jp", "tako.chiba.jp", "tateyama.chiba.jp", "togane.chiba.jp", "tohnosho.chiba.jp", "tomisato.chiba.jp", "urayasu.chiba.jp", "yachimata.chiba.jp", "yachiyo.chiba.jp", "yokaichiba.chiba.jp", "yokoshibahikari.chiba.jp", "yotsukaido.chiba.jp", "ainan.ehime.jp", "honai.ehime.jp", "ikata.ehime.jp", "imabari.ehime.jp", "iyo.ehime.jp", "kamijima.ehime.jp", "kihoku.ehime.jp", "kumakogen.ehime.jp", "masaki.ehime.jp", "matsuno.ehime.jp", "matsuyama.ehime.jp", "namikata.ehime.jp", "niihama.ehime.jp", "ozu.ehime.jp", "saijo.ehime.jp", "seiyo.ehime.jp", "shikokuchuo.ehime.jp", "tobe.ehime.jp", "toon.ehime.jp", "uchiko.ehime.jp", "uwajima.ehime.jp", "yawatahama.ehime.jp", "echizen.fukui.jp", "eiheiji.fukui.jp", "fukui.fukui.jp", "ikeda.fukui.jp", "katsuyama.fukui.jp", "mihama.fukui.jp", "minamiechizen.fukui.jp", "obama.fukui.jp", "ohi.fukui.jp", "ono.fukui.jp", "sabae.fukui.jp", "sakai.fukui.jp", "takahama.fukui.jp", "tsuruga.fukui.jp", "wakasa.fukui.jp", "ashiya.fukuoka.jp", "buzen.fukuoka.jp", "chikugo.fukuoka.jp", "chikuho.fukuoka.jp", "chikujo.fukuoka.jp", "chikushino.fukuoka.jp", "chikuzen.fukuoka.jp", "chuo.fukuoka.jp", "dazaifu.fukuoka.jp", "fukuchi.fukuoka.jp", "hakata.fukuoka.jp", "higashi.fukuoka.jp", "hirokawa.fukuoka.jp", "hisayama.fukuoka.jp", "iizuka.fukuoka.jp", "inatsuki.fukuoka.jp", "kaho.fukuoka.jp", "kasuga.fukuoka.jp", "kasuya.fukuoka.jp", "kawara.fukuoka.jp", "keisen.fukuoka.jp", "koga.fukuoka.jp", "kurate.fukuoka.jp", "kurogi.fukuoka.jp", "kurume.fukuoka.jp", "minami.fukuoka.jp", "miyako.fukuoka.jp", "miyama.fukuoka.jp", "miyawaka.fukuoka.jp", "mizumaki.fukuoka.jp", "munakata.fukuoka.jp", "nakagawa.fukuoka.jp", "nakama.fukuoka.jp", "nishi.fukuoka.jp", "nogata.fukuoka.jp", "ogori.fukuoka.jp", "okagaki.fukuoka.jp", "okawa.fukuoka.jp", "oki.fukuoka.jp", "omuta.fukuoka.jp", "onga.fukuoka.jp", "onojo.fukuoka.jp", "oto.fukuoka.jp", "saigawa.fukuoka.jp", "sasaguri.fukuoka.jp", "shingu.fukuoka.jp", "shinyoshitomi.fukuoka.jp", "shonai.fukuoka.jp", "soeda.fukuoka.jp", "sue.fukuoka.jp", "tachiarai.fukuoka.jp", "tagawa.fukuoka.jp", "takata.fukuoka.jp", "toho.fukuoka.jp", "toyotsu.fukuoka.jp", "tsuiki.fukuoka.jp", "ukiha.fukuoka.jp", "umi.fukuoka.jp", "usui.fukuoka.jp", "yamada.fukuoka.jp", "yame.fukuoka.jp", "yanagawa.fukuoka.jp", "yukuhashi.fukuoka.jp", "aizubange.fukushima.jp", "aizumisato.fukushima.jp", "aizuwakamatsu.fukushima.jp", "asakawa.fukushima.jp", "bandai.fukushima.jp", "date.fukushima.jp", "fukushima.fukushima.jp", "furudono.fukushima.jp", "futaba.fukushima.jp", "hanawa.fukushima.jp", "higashi.fukushima.jp", "hirata.fukushima.jp", "hirono.fukushima.jp", "iitate.fukushima.jp", "inawashiro.fukushima.jp", "ishikawa.fukushima.jp", "iwaki.fukushima.jp", "izumizaki.fukushima.jp", "kagamiishi.fukushima.jp", "kaneyama.fukushima.jp", "kawamata.fukushima.jp", "kitakata.fukushima.jp", "kitashiobara.fukushima.jp", "koori.fukushima.jp", "koriyama.fukushima.jp", "kunimi.fukushima.jp", "miharu.fukushima.jp", "mishima.fukushima.jp", "namie.fukushima.jp", "nango.fukushima.jp", "nishiaizu.fukushima.jp", "nishigo.fukushima.jp", "okuma.fukushima.jp", "omotego.fukushima.jp", "ono.fukushima.jp", "otama.fukushima.jp", "samegawa.fukushima.jp", "shimogo.fukushima.jp", "shirakawa.fukushima.jp", "showa.fukushima.jp", "soma.fukushima.jp", "sukagawa.fukushima.jp", "taishin.fukushima.jp", "tamakawa.fukushima.jp", "tanagura.fukushima.jp", "tenei.fukushima.jp", "yabuki.fukushima.jp", "yamato.fukushima.jp", "yamatsuri.fukushima.jp", "yanaizu.fukushima.jp", "yugawa.fukushima.jp", "anpachi.gifu.jp", "ena.gifu.jp", "gifu.gifu.jp", "ginan.gifu.jp", "godo.gifu.jp", "gujo.gifu.jp", "hashima.gifu.jp", "hichiso.gifu.jp", "hida.gifu.jp", "higashishirakawa.gifu.jp", "ibigawa.gifu.jp", "ikeda.gifu.jp", "kakamigahara.gifu.jp", "kani.gifu.jp", "kasahara.gifu.jp", "kasamatsu.gifu.jp", "kawaue.gifu.jp", "kitagata.gifu.jp", "mino.gifu.jp", "minokamo.gifu.jp", "mitake.gifu.jp", "mizunami.gifu.jp", "motosu.gifu.jp", "nakatsugawa.gifu.jp", "ogaki.gifu.jp", "sakahogi.gifu.jp", "seki.gifu.jp", "sekigahara.gifu.jp", "shirakawa.gifu.jp", "tajimi.gifu.jp", "takayama.gifu.jp", "tarui.gifu.jp", "toki.gifu.jp", "tomika.gifu.jp", "wanouchi.gifu.jp", "yamagata.gifu.jp", "yaotsu.gifu.jp", "yoro.gifu.jp", "annaka.gunma.jp", "chiyoda.gunma.jp", "fujioka.gunma.jp", "higashiagatsuma.gunma.jp", "isesaki.gunma.jp", "itakura.gunma.jp", "kanna.gunma.jp", "kanra.gunma.jp", "katashina.gunma.jp", "kawaba.gunma.jp", "kiryu.gunma.jp", "kusatsu.gunma.jp", "maebashi.gunma.jp", "meiwa.gunma.jp", "midori.gunma.jp", "minakami.gunma.jp", "naganohara.gunma.jp", "nakanojo.gunma.jp", "nanmoku.gunma.jp", "numata.gunma.jp", "oizumi.gunma.jp", "ora.gunma.jp", "ota.gunma.jp", "shibukawa.gunma.jp", "shimonita.gunma.jp", "shinto.gunma.jp", "showa.gunma.jp", "takasaki.gunma.jp", "takayama.gunma.jp", "tamamura.gunma.jp", "tatebayashi.gunma.jp", "tomioka.gunma.jp", "tsukiyono.gunma.jp", "tsumagoi.gunma.jp", "ueno.gunma.jp", "yoshioka.gunma.jp", "asaminami.hiroshima.jp", "daiwa.hiroshima.jp", "etajima.hiroshima.jp", "fuchu.hiroshima.jp", "fukuyama.hiroshima.jp", "hatsukaichi.hiroshima.jp", "higashihiroshima.hiroshima.jp", "hongo.hiroshima.jp", "jinsekikogen.hiroshima.jp", "kaita.hiroshima.jp", "kui.hiroshima.jp", "kumano.hiroshima.jp", "kure.hiroshima.jp", "mihara.hiroshima.jp", "miyoshi.hiroshima.jp", "naka.hiroshima.jp", "onomichi.hiroshima.jp", "osakikamijima.hiroshima.jp", "otake.hiroshima.jp", "saka.hiroshima.jp", "sera.hiroshima.jp", "seranishi.hiroshima.jp", "shinichi.hiroshima.jp", "shobara.hiroshima.jp", "takehara.hiroshima.jp", "abashiri.hokkaido.jp", "abira.hokkaido.jp", "aibetsu.hokkaido.jp", "akabira.hokkaido.jp", "akkeshi.hokkaido.jp", "asahikawa.hokkaido.jp", "ashibetsu.hokkaido.jp", "ashoro.hokkaido.jp", "assabu.hokkaido.jp", "atsuma.hokkaido.jp", "bibai.hokkaido.jp", "biei.hokkaido.jp", "bifuka.hokkaido.jp", "bihoro.hokkaido.jp", "biratori.hokkaido.jp", "chippubetsu.hokkaido.jp", "chitose.hokkaido.jp", "date.hokkaido.jp", "ebetsu.hokkaido.jp", "embetsu.hokkaido.jp", "eniwa.hokkaido.jp", "erimo.hokkaido.jp", "esan.hokkaido.jp", "esashi.hokkaido.jp", "fukagawa.hokkaido.jp", "fukushima.hokkaido.jp", "furano.hokkaido.jp", "furubira.hokkaido.jp", "haboro.hokkaido.jp", "hakodate.hokkaido.jp", "hamatonbetsu.hokkaido.jp", "hidaka.hokkaido.jp", "higashikagura.hokkaido.jp", "higashikawa.hokkaido.jp", "hiroo.hokkaido.jp", "hokuryu.hokkaido.jp", "hokuto.hokkaido.jp", "honbetsu.hokkaido.jp", "horokanai.hokkaido.jp", "horonobe.hokkaido.jp", "ikeda.hokkaido.jp", "imakane.hokkaido.jp", "ishikari.hokkaido.jp", "iwamizawa.hokkaido.jp", "iwanai.hokkaido.jp", "kamifurano.hokkaido.jp", "kamikawa.hokkaido.jp", "kamishihoro.hokkaido.jp", "kamisunagawa.hokkaido.jp", "kamoenai.hokkaido.jp", "kayabe.hokkaido.jp", "kembuchi.hokkaido.jp", "kikonai.hokkaido.jp", "kimobetsu.hokkaido.jp", "kitahiroshima.hokkaido.jp", "kitami.hokkaido.jp", "kiyosato.hokkaido.jp", "koshimizu.hokkaido.jp", "kunneppu.hokkaido.jp", "kuriyama.hokkaido.jp", "kuromatsunai.hokkaido.jp", "kushiro.hokkaido.jp", "kutchan.hokkaido.jp", "kyowa.hokkaido.jp", "mashike.hokkaido.jp", "matsumae.hokkaido.jp", "mikasa.hokkaido.jp", "minamifurano.hokkaido.jp", "mombetsu.hokkaido.jp", "moseushi.hokkaido.jp", "mukawa.hokkaido.jp", "muroran.hokkaido.jp", "naie.hokkaido.jp", "nakagawa.hokkaido.jp", "nakasatsunai.hokkaido.jp", "nakatombetsu.hokkaido.jp", "nanae.hokkaido.jp", "nanporo.hokkaido.jp", "nayoro.hokkaido.jp", "nemuro.hokkaido.jp", "niikappu.hokkaido.jp", "niki.hokkaido.jp", "nishiokoppe.hokkaido.jp", "noboribetsu.hokkaido.jp", "numata.hokkaido.jp", "obihiro.hokkaido.jp", "obira.hokkaido.jp", "oketo.hokkaido.jp", "okoppe.hokkaido.jp", "otaru.hokkaido.jp", "otobe.hokkaido.jp", "otofuke.hokkaido.jp", "otoineppu.hokkaido.jp", "oumu.hokkaido.jp", "ozora.hokkaido.jp", "pippu.hokkaido.jp", "rankoshi.hokkaido.jp", "rebun.hokkaido.jp", "rikubetsu.hokkaido.jp", "rishiri.hokkaido.jp", "rishirifuji.hokkaido.jp", "saroma.hokkaido.jp", "sarufutsu.hokkaido.jp", "shakotan.hokkaido.jp", "shari.hokkaido.jp", "shibecha.hokkaido.jp", "shibetsu.hokkaido.jp", "shikabe.hokkaido.jp", "shikaoi.hokkaido.jp", "shimamaki.hokkaido.jp", "shimizu.hokkaido.jp", "shimokawa.hokkaido.jp", "shinshinotsu.hokkaido.jp", "shintoku.hokkaido.jp", "shiranuka.hokkaido.jp", "shiraoi.hokkaido.jp", "shiriuchi.hokkaido.jp", "sobetsu.hokkaido.jp", "sunagawa.hokkaido.jp", "taiki.hokkaido.jp", "takasu.hokkaido.jp", "takikawa.hokkaido.jp", "takinoue.hokkaido.jp", "teshikaga.hokkaido.jp", "tobetsu.hokkaido.jp", "tohma.hokkaido.jp", "tomakomai.hokkaido.jp", "tomari.hokkaido.jp", "toya.hokkaido.jp", "toyako.hokkaido.jp", "toyotomi.hokkaido.jp", "toyoura.hokkaido.jp", "tsubetsu.hokkaido.jp", "tsukigata.hokkaido.jp", "urakawa.hokkaido.jp", "urausu.hokkaido.jp", "uryu.hokkaido.jp", "utashinai.hokkaido.jp", "wakkanai.hokkaido.jp", "wassamu.hokkaido.jp", "yakumo.hokkaido.jp", "yoichi.hokkaido.jp", "aioi.hyogo.jp", "akashi.hyogo.jp", "ako.hyogo.jp", "amagasaki.hyogo.jp", "aogaki.hyogo.jp", "asago.hyogo.jp", "ashiya.hyogo.jp", "awaji.hyogo.jp", "fukusaki.hyogo.jp", "goshiki.hyogo.jp", "harima.hyogo.jp", "himeji.hyogo.jp", "ichikawa.hyogo.jp", "inagawa.hyogo.jp", "itami.hyogo.jp", "kakogawa.hyogo.jp", "kamigori.hyogo.jp", "kamikawa.hyogo.jp", "kasai.hyogo.jp", "kasuga.hyogo.jp", "kawanishi.hyogo.jp", "miki.hyogo.jp", "minamiawaji.hyogo.jp", "nishinomiya.hyogo.jp", "nishiwaki.hyogo.jp", "ono.hyogo.jp", "sanda.hyogo.jp", "sannan.hyogo.jp", "sasayama.hyogo.jp", "sayo.hyogo.jp", "shingu.hyogo.jp", "shinonsen.hyogo.jp", "shiso.hyogo.jp", "sumoto.hyogo.jp", "taishi.hyogo.jp", "taka.hyogo.jp", "takarazuka.hyogo.jp", "takasago.hyogo.jp", "takino.hyogo.jp", "tamba.hyogo.jp", "tatsuno.hyogo.jp", "toyooka.hyogo.jp", "yabu.hyogo.jp", "yashiro.hyogo.jp", "yoka.hyogo.jp", "yokawa.hyogo.jp", "ami.ibaraki.jp", "asahi.ibaraki.jp", "bando.ibaraki.jp", "chikusei.ibaraki.jp", "daigo.ibaraki.jp", "fujishiro.ibaraki.jp", "hitachi.ibaraki.jp", "hitachinaka.ibaraki.jp", "hitachiomiya.ibaraki.jp", "hitachiota.ibaraki.jp", "ibaraki.ibaraki.jp", "ina.ibaraki.jp", "inashiki.ibaraki.jp", "itako.ibaraki.jp", "iwama.ibaraki.jp", "joso.ibaraki.jp", "kamisu.ibaraki.jp", "kasama.ibaraki.jp", "kashima.ibaraki.jp", "kasumigaura.ibaraki.jp", "koga.ibaraki.jp", "miho.ibaraki.jp", "mito.ibaraki.jp", "moriya.ibaraki.jp", "naka.ibaraki.jp", "namegata.ibaraki.jp", "oarai.ibaraki.jp", "ogawa.ibaraki.jp", "omitama.ibaraki.jp", "ryugasaki.ibaraki.jp", "sakai.ibaraki.jp", "sakuragawa.ibaraki.jp", "shimodate.ibaraki.jp", "shimotsuma.ibaraki.jp", "shirosato.ibaraki.jp", "sowa.ibaraki.jp", "suifu.ibaraki.jp", "takahagi.ibaraki.jp", "tamatsukuri.ibaraki.jp", "tokai.ibaraki.jp", "tomobe.ibaraki.jp", "tone.ibaraki.jp", "toride.ibaraki.jp", "tsuchiura.ibaraki.jp", "tsukuba.ibaraki.jp", "uchihara.ibaraki.jp", "ushiku.ibaraki.jp", "yachiyo.ibaraki.jp", "yamagata.ibaraki.jp", "yawara.ibaraki.jp", "yuki.ibaraki.jp", "anamizu.ishikawa.jp", "hakui.ishikawa.jp", "hakusan.ishikawa.jp", "kaga.ishikawa.jp", "kahoku.ishikawa.jp", "kanazawa.ishikawa.jp", "kawakita.ishikawa.jp", "komatsu.ishikawa.jp", "nakanoto.ishikawa.jp", "nanao.ishikawa.jp", "nomi.ishikawa.jp", "nonoichi.ishikawa.jp", "noto.ishikawa.jp", "shika.ishikawa.jp", "suzu.ishikawa.jp", "tsubata.ishikawa.jp", "tsurugi.ishikawa.jp", "uchinada.ishikawa.jp", "wajima.ishikawa.jp", "fudai.iwate.jp", "fujisawa.iwate.jp", "hanamaki.iwate.jp", "hiraizumi.iwate.jp", "hirono.iwate.jp", "ichinohe.iwate.jp", "ichinoseki.iwate.jp", "iwaizumi.iwate.jp", "iwate.iwate.jp", "joboji.iwate.jp", "kamaishi.iwate.jp", "kanegasaki.iwate.jp", "karumai.iwate.jp", "kawai.iwate.jp", "kitakami.iwate.jp", "kuji.iwate.jp", "kunohe.iwate.jp", "kuzumaki.iwate.jp", "miyako.iwate.jp", "mizusawa.iwate.jp", "morioka.iwate.jp", "ninohe.iwate.jp", "noda.iwate.jp", "ofunato.iwate.jp", "oshu.iwate.jp", "otsuchi.iwate.jp", "rikuzentakata.iwate.jp", "shiwa.iwate.jp", "shizukuishi.iwate.jp", "sumita.iwate.jp", "tanohata.iwate.jp", "tono.iwate.jp", "yahaba.iwate.jp", "yamada.iwate.jp", "ayagawa.kagawa.jp", "higashikagawa.kagawa.jp", "kanonji.kagawa.jp", "kotohira.kagawa.jp", "manno.kagawa.jp", "marugame.kagawa.jp", "mitoyo.kagawa.jp", "naoshima.kagawa.jp", "sanuki.kagawa.jp", "tadotsu.kagawa.jp", "takamatsu.kagawa.jp", "tonosho.kagawa.jp", "uchinomi.kagawa.jp", "utazu.kagawa.jp", "zentsuji.kagawa.jp", "akune.kagoshima.jp", "amami.kagoshima.jp", "hioki.kagoshima.jp", "isa.kagoshima.jp", "isen.kagoshima.jp", "izumi.kagoshima.jp", "kagoshima.kagoshima.jp", "kanoya.kagoshima.jp", "kawanabe.kagoshima.jp", "kinko.kagoshima.jp", "kouyama.kagoshima.jp", "makurazaki.kagoshima.jp", "matsumoto.kagoshima.jp", "minamitane.kagoshima.jp", "nakatane.kagoshima.jp", "nishinoomote.kagoshima.jp", "satsumasendai.kagoshima.jp", "soo.kagoshima.jp", "tarumizu.kagoshima.jp", "yusui.kagoshima.jp", "aikawa.kanagawa.jp", "atsugi.kanagawa.jp", "ayase.kanagawa.jp", "chigasaki.kanagawa.jp", "ebina.kanagawa.jp", "fujisawa.kanagawa.jp", "hadano.kanagawa.jp", "hakone.kanagawa.jp", "hiratsuka.kanagawa.jp", "isehara.kanagawa.jp", "kaisei.kanagawa.jp", "kamakura.kanagawa.jp", "kiyokawa.kanagawa.jp", "matsuda.kanagawa.jp", "minamiashigara.kanagawa.jp", "miura.kanagawa.jp", "nakai.kanagawa.jp", "ninomiya.kanagawa.jp", "odawara.kanagawa.jp", "oi.kanagawa.jp", "oiso.kanagawa.jp", "sagamihara.kanagawa.jp", "samukawa.kanagawa.jp", "tsukui.kanagawa.jp", "yamakita.kanagawa.jp", "yamato.kanagawa.jp", "yokosuka.kanagawa.jp", "yugawara.kanagawa.jp", "zama.kanagawa.jp", "zushi.kanagawa.jp", "aki.kochi.jp", "geisei.kochi.jp", "hidaka.kochi.jp", "higashitsuno.kochi.jp", "ino.kochi.jp", "kagami.kochi.jp", "kami.kochi.jp", "kitagawa.kochi.jp", "kochi.kochi.jp", "mihara.kochi.jp", "motoyama.kochi.jp", "muroto.kochi.jp", "nahari.kochi.jp", "nakamura.kochi.jp", "nankoku.kochi.jp", "nishitosa.kochi.jp", "niyodogawa.kochi.jp", "ochi.kochi.jp", "okawa.kochi.jp", "otoyo.kochi.jp", "otsuki.kochi.jp", "sakawa.kochi.jp", "sukumo.kochi.jp", "susaki.kochi.jp", "tosa.kochi.jp", "tosashimizu.kochi.jp", "toyo.kochi.jp", "tsuno.kochi.jp", "umaji.kochi.jp", "yasuda.kochi.jp", "yusuhara.kochi.jp", "amakusa.kumamoto.jp", "arao.kumamoto.jp", "aso.kumamoto.jp", "choyo.kumamoto.jp", "gyokuto.kumamoto.jp", "kamiamakusa.kumamoto.jp", "kikuchi.kumamoto.jp", "kumamoto.kumamoto.jp", "mashiki.kumamoto.jp", "mifune.kumamoto.jp", "minamata.kumamoto.jp", "minamioguni.kumamoto.jp", "nagasu.kumamoto.jp", "nishihara.kumamoto.jp", "oguni.kumamoto.jp", "ozu.kumamoto.jp", "sumoto.kumamoto.jp", "takamori.kumamoto.jp", "uki.kumamoto.jp", "uto.kumamoto.jp", "yamaga.kumamoto.jp", "yamato.kumamoto.jp", "yatsushiro.kumamoto.jp", "ayabe.kyoto.jp", "fukuchiyama.kyoto.jp", "higashiyama.kyoto.jp", "ide.kyoto.jp", "ine.kyoto.jp", "joyo.kyoto.jp", "kameoka.kyoto.jp", "kamo.kyoto.jp", "kita.kyoto.jp", "kizu.kyoto.jp", "kumiyama.kyoto.jp", "kyotamba.kyoto.jp", "kyotanabe.kyoto.jp", "kyotango.kyoto.jp", "maizuru.kyoto.jp", "minami.kyoto.jp", "minamiyamashiro.kyoto.jp", "miyazu.kyoto.jp", "muko.kyoto.jp", "nagaokakyo.kyoto.jp", "nakagyo.kyoto.jp", "nantan.kyoto.jp", "oyamazaki.kyoto.jp", "sakyo.kyoto.jp", "seika.kyoto.jp", "tanabe.kyoto.jp", "uji.kyoto.jp", "ujitawara.kyoto.jp", "wazuka.kyoto.jp", "yamashina.kyoto.jp", "yawata.kyoto.jp", "asahi.mie.jp", "inabe.mie.jp", "ise.mie.jp", "kameyama.mie.jp", "kawagoe.mie.jp", "kiho.mie.jp", "kisosaki.mie.jp", "kiwa.mie.jp", "komono.mie.jp", "kumano.mie.jp", "kuwana.mie.jp", "matsusaka.mie.jp", "meiwa.mie.jp", "mihama.mie.jp", "minamiise.mie.jp", "misugi.mie.jp", "miyama.mie.jp", "nabari.mie.jp", "shima.mie.jp", "suzuka.mie.jp", "tado.mie.jp", "taiki.mie.jp", "taki.mie.jp", "tamaki.mie.jp", "toba.mie.jp", "tsu.mie.jp", "udono.mie.jp", "ureshino.mie.jp", "watarai.mie.jp", "yokkaichi.mie.jp", "furukawa.miyagi.jp", "higashimatsushima.miyagi.jp", "ishinomaki.miyagi.jp", "iwanuma.miyagi.jp", "kakuda.miyagi.jp", "kami.miyagi.jp", "kawasaki.miyagi.jp", "marumori.miyagi.jp", "matsushima.miyagi.jp", "minamisanriku.miyagi.jp", "misato.miyagi.jp", "murata.miyagi.jp", "natori.miyagi.jp", "ogawara.miyagi.jp", "ohira.miyagi.jp", "onagawa.miyagi.jp", "osaki.miyagi.jp", "rifu.miyagi.jp", "semine.miyagi.jp", "shibata.miyagi.jp", "shichikashuku.miyagi.jp", "shikama.miyagi.jp", "shiogama.miyagi.jp", "shiroishi.miyagi.jp", "tagajo.miyagi.jp", "taiwa.miyagi.jp", "tome.miyagi.jp", "tomiya.miyagi.jp", "wakuya.miyagi.jp", "watari.miyagi.jp", "yamamoto.miyagi.jp", "zao.miyagi.jp", "aya.miyazaki.jp", "ebino.miyazaki.jp", "gokase.miyazaki.jp", "hyuga.miyazaki.jp", "kadogawa.miyazaki.jp", "kawaminami.miyazaki.jp", "kijo.miyazaki.jp", "kitagawa.miyazaki.jp", "kitakata.miyazaki.jp", "kitaura.miyazaki.jp", "kobayashi.miyazaki.jp", "kunitomi.miyazaki.jp", "kushima.miyazaki.jp", "mimata.miyazaki.jp", "miyakonojo.miyazaki.jp", "miyazaki.miyazaki.jp", "morotsuka.miyazaki.jp", "nichinan.miyazaki.jp", "nishimera.miyazaki.jp", "nobeoka.miyazaki.jp", "saito.miyazaki.jp", "shiiba.miyazaki.jp", "shintomi.miyazaki.jp", "takaharu.miyazaki.jp", "takanabe.miyazaki.jp", "takazaki.miyazaki.jp", "tsuno.miyazaki.jp", "achi.nagano.jp", "agematsu.nagano.jp", "anan.nagano.jp", "aoki.nagano.jp", "asahi.nagano.jp", "azumino.nagano.jp", "chikuhoku.nagano.jp", "chikuma.nagano.jp", "chino.nagano.jp", "fujimi.nagano.jp", "hakuba.nagano.jp", "hara.nagano.jp", "hiraya.nagano.jp", "iida.nagano.jp", "iijima.nagano.jp", "iiyama.nagano.jp", "iizuna.nagano.jp", "ikeda.nagano.jp", "ikusaka.nagano.jp", "ina.nagano.jp", "karuizawa.nagano.jp", "kawakami.nagano.jp", "kiso.nagano.jp", "kisofukushima.nagano.jp", "kitaaiki.nagano.jp", "komagane.nagano.jp", "komoro.nagano.jp", "matsukawa.nagano.jp", "matsumoto.nagano.jp", "miasa.nagano.jp", "minamiaiki.nagano.jp", "minamimaki.nagano.jp", "minamiminowa.nagano.jp", "minowa.nagano.jp", "miyada.nagano.jp", "miyota.nagano.jp", "mochizuki.nagano.jp", "nagano.nagano.jp", "nagawa.nagano.jp", "nagiso.nagano.jp", "nakagawa.nagano.jp", "nakano.nagano.jp", "nozawaonsen.nagano.jp", "obuse.nagano.jp", "ogawa.nagano.jp", "okaya.nagano.jp", "omachi.nagano.jp", "omi.nagano.jp", "ookuwa.nagano.jp", "ooshika.nagano.jp", "otaki.nagano.jp", "otari.nagano.jp", "sakae.nagano.jp", "sakaki.nagano.jp", "saku.nagano.jp", "sakuho.nagano.jp", "shimosuwa.nagano.jp", "shinanomachi.nagano.jp", "shiojiri.nagano.jp", "suwa.nagano.jp", "suzaka.nagano.jp", "takagi.nagano.jp", "takamori.nagano.jp", "takayama.nagano.jp", "tateshina.nagano.jp", "tatsuno.nagano.jp", "togakushi.nagano.jp", "togura.nagano.jp", "tomi.nagano.jp", "ueda.nagano.jp", "wada.nagano.jp", "yamagata.nagano.jp", "yamanouchi.nagano.jp", "yasaka.nagano.jp", "yasuoka.nagano.jp", "chijiwa.nagasaki.jp", "futsu.nagasaki.jp", "goto.nagasaki.jp", "hasami.nagasaki.jp", "hirado.nagasaki.jp", "iki.nagasaki.jp", "isahaya.nagasaki.jp", "kawatana.nagasaki.jp", "kuchinotsu.nagasaki.jp", "matsuura.nagasaki.jp", "nagasaki.nagasaki.jp", "obama.nagasaki.jp", "omura.nagasaki.jp", "oseto.nagasaki.jp", "saikai.nagasaki.jp", "sasebo.nagasaki.jp", "seihi.nagasaki.jp", "shimabara.nagasaki.jp", "shinkamigoto.nagasaki.jp", "togitsu.nagasaki.jp", "tsushima.nagasaki.jp", "unzen.nagasaki.jp", "ando.nara.jp", "gose.nara.jp", "heguri.nara.jp", "higashiyoshino.nara.jp", "ikaruga.nara.jp", "ikoma.nara.jp", "kamikitayama.nara.jp", "kanmaki.nara.jp", "kashiba.nara.jp", "kashihara.nara.jp", "katsuragi.nara.jp", "kawai.nara.jp", "kawakami.nara.jp", "kawanishi.nara.jp", "koryo.nara.jp", "kurotaki.nara.jp", "mitsue.nara.jp", "miyake.nara.jp", "nara.nara.jp", "nosegawa.nara.jp", "oji.nara.jp", "ouda.nara.jp", "oyodo.nara.jp", "sakurai.nara.jp", "sango.nara.jp", "shimoichi.nara.jp", "shimokitayama.nara.jp", "shinjo.nara.jp", "soni.nara.jp", "takatori.nara.jp", "tawaramoto.nara.jp", "tenkawa.nara.jp", "tenri.nara.jp", "uda.nara.jp", "yamatokoriyama.nara.jp", "yamatotakada.nara.jp", "yamazoe.nara.jp", "yoshino.nara.jp", "aga.niigata.jp", "agano.niigata.jp", "gosen.niigata.jp", "itoigawa.niigata.jp", "izumozaki.niigata.jp", "joetsu.niigata.jp", "kamo.niigata.jp", "kariwa.niigata.jp", "kashiwazaki.niigata.jp", "minamiuonuma.niigata.jp", "mitsuke.niigata.jp", "muika.niigata.jp", "murakami.niigata.jp", "myoko.niigata.jp", "nagaoka.niigata.jp", "niigata.niigata.jp", "ojiya.niigata.jp", "omi.niigata.jp", "sado.niigata.jp", "sanjo.niigata.jp", "seiro.niigata.jp", "seirou.niigata.jp", "sekikawa.niigata.jp", "shibata.niigata.jp", "tagami.niigata.jp", "tainai.niigata.jp", "tochio.niigata.jp", "tokamachi.niigata.jp", "tsubame.niigata.jp", "tsunan.niigata.jp", "uonuma.niigata.jp", "yahiko.niigata.jp", "yoita.niigata.jp", "yuzawa.niigata.jp", "beppu.oita.jp", "bungoono.oita.jp", "bungotakada.oita.jp", "hasama.oita.jp", "hiji.oita.jp", "himeshima.oita.jp", "hita.oita.jp", "kamitsue.oita.jp", "kokonoe.oita.jp", "kuju.oita.jp", "kunisaki.oita.jp", "kusu.oita.jp", "oita.oita.jp", "saiki.oita.jp", "taketa.oita.jp", "tsukumi.oita.jp", "usa.oita.jp", "usuki.oita.jp", "yufu.oita.jp", "akaiwa.okayama.jp", "asakuchi.okayama.jp", "bizen.okayama.jp", "hayashima.okayama.jp", "ibara.okayama.jp", "kagamino.okayama.jp", "kasaoka.okayama.jp", "kibichuo.okayama.jp", "kumenan.okayama.jp", "kurashiki.okayama.jp", "maniwa.okayama.jp", "misaki.okayama.jp", "nagi.okayama.jp", "niimi.okayama.jp", "nishiawakura.okayama.jp", "okayama.okayama.jp", "satosho.okayama.jp", "setouchi.okayama.jp", "shinjo.okayama.jp", "shoo.okayama.jp", "soja.okayama.jp", "takahashi.okayama.jp", "tamano.okayama.jp", "tsuyama.okayama.jp", "wake.okayama.jp", "yakage.okayama.jp", "aguni.okinawa.jp", "ginowan.okinawa.jp", "ginoza.okinawa.jp", "gushikami.okinawa.jp", "haebaru.okinawa.jp", "higashi.okinawa.jp", "hirara.okinawa.jp", "iheya.okinawa.jp", "ishigaki.okinawa.jp", "ishikawa.okinawa.jp", "itoman.okinawa.jp", "izena.okinawa.jp", "kadena.okinawa.jp", "kin.okinawa.jp", "kitadaito.okinawa.jp", "kitanakagusuku.okinawa.jp", "kumejima.okinawa.jp", "kunigami.okinawa.jp", "minamidaito.okinawa.jp", "motobu.okinawa.jp", "nago.okinawa.jp", "naha.okinawa.jp", "nakagusuku.okinawa.jp", "nakijin.okinawa.jp", "nanjo.okinawa.jp", "nishihara.okinawa.jp", "ogimi.okinawa.jp", "okinawa.okinawa.jp", "onna.okinawa.jp", "shimoji.okinawa.jp", "taketomi.okinawa.jp", "tarama.okinawa.jp", "tokashiki.okinawa.jp", "tomigusuku.okinawa.jp", "tonaki.okinawa.jp", "urasoe.okinawa.jp", "uruma.okinawa.jp", "yaese.okinawa.jp", "yomitan.okinawa.jp", "yonabaru.okinawa.jp", "yonaguni.okinawa.jp", "zamami.okinawa.jp", "abeno.osaka.jp", "chihayaakasaka.osaka.jp", "chuo.osaka.jp", "daito.osaka.jp", "fujiidera.osaka.jp", "habikino.osaka.jp", "hannan.osaka.jp", "higashiosaka.osaka.jp", "higashisumiyoshi.osaka.jp", "higashiyodogawa.osaka.jp", "hirakata.osaka.jp", "ibaraki.osaka.jp", "ikeda.osaka.jp", "izumi.osaka.jp", "izumiotsu.osaka.jp", "izumisano.osaka.jp", "kadoma.osaka.jp", "kaizuka.osaka.jp", "kanan.osaka.jp", "kashiwara.osaka.jp", "katano.osaka.jp", "kawachinagano.osaka.jp", "kishiwada.osaka.jp", "kita.osaka.jp", "kumatori.osaka.jp", "matsubara.osaka.jp", "minato.osaka.jp", "minoh.osaka.jp", "misaki.osaka.jp", "moriguchi.osaka.jp", "neyagawa.osaka.jp", "nishi.osaka.jp", "nose.osaka.jp", "osakasayama.osaka.jp", "sakai.osaka.jp", "sayama.osaka.jp", "sennan.osaka.jp", "settsu.osaka.jp", "shijonawate.osaka.jp", "shimamoto.osaka.jp", "suita.osaka.jp", "tadaoka.osaka.jp", "taishi.osaka.jp", "tajiri.osaka.jp", "takaishi.osaka.jp", "takatsuki.osaka.jp", "tondabayashi.osaka.jp", "toyonaka.osaka.jp", "toyono.osaka.jp", "yao.osaka.jp", "ariake.saga.jp", "arita.saga.jp", "fukudomi.saga.jp", "genkai.saga.jp", "hamatama.saga.jp", "hizen.saga.jp", "imari.saga.jp", "kamimine.saga.jp", "kanzaki.saga.jp", "karatsu.saga.jp", "kashima.saga.jp", "kitagata.saga.jp", "kitahata.saga.jp", "kiyama.saga.jp", "kouhoku.saga.jp", "kyuragi.saga.jp", "nishiarita.saga.jp", "ogi.saga.jp", "omachi.saga.jp", "ouchi.saga.jp", "saga.saga.jp", "shiroishi.saga.jp", "taku.saga.jp", "tara.saga.jp", "tosu.saga.jp", "yoshinogari.saga.jp", "arakawa.saitama.jp", "asaka.saitama.jp", "chichibu.saitama.jp", "fujimi.saitama.jp", "fujimino.saitama.jp", "fukaya.saitama.jp", "hanno.saitama.jp", "hanyu.saitama.jp", "hasuda.saitama.jp", "hatogaya.saitama.jp", "hatoyama.saitama.jp", "hidaka.saitama.jp", "higashichichibu.saitama.jp", "higashimatsuyama.saitama.jp", "honjo.saitama.jp", "ina.saitama.jp", "iruma.saitama.jp", "iwatsuki.saitama.jp", "kamiizumi.saitama.jp", "kamikawa.saitama.jp", "kamisato.saitama.jp", "kasukabe.saitama.jp", "kawagoe.saitama.jp", "kawaguchi.saitama.jp", "kawajima.saitama.jp", "kazo.saitama.jp", "kitamoto.saitama.jp", "koshigaya.saitama.jp", "kounosu.saitama.jp", "kuki.saitama.jp", "kumagaya.saitama.jp", "matsubushi.saitama.jp", "minano.saitama.jp", "misato.saitama.jp", "miyashiro.saitama.jp", "miyoshi.saitama.jp", "moroyama.saitama.jp", "nagatoro.saitama.jp", "namegawa.saitama.jp", "niiza.saitama.jp", "ogano.saitama.jp", "ogawa.saitama.jp", "ogose.saitama.jp", "okegawa.saitama.jp", "omiya.saitama.jp", "otaki.saitama.jp", "ranzan.saitama.jp", "ryokami.saitama.jp", "saitama.saitama.jp", "sakado.saitama.jp", "satte.saitama.jp", "sayama.saitama.jp", "shiki.saitama.jp", "shiraoka.saitama.jp", "soka.saitama.jp", "sugito.saitama.jp", "toda.saitama.jp", "tokigawa.saitama.jp", "tokorozawa.saitama.jp", "tsurugashima.saitama.jp", "urawa.saitama.jp", "warabi.saitama.jp", "yashio.saitama.jp", "yokoze.saitama.jp", "yono.saitama.jp", "yorii.saitama.jp", "yoshida.saitama.jp", "yoshikawa.saitama.jp", "yoshimi.saitama.jp", "aisho.shiga.jp", "gamo.shiga.jp", "higashiomi.shiga.jp", "hikone.shiga.jp", "koka.shiga.jp", "konan.shiga.jp", "kosei.shiga.jp", "koto.shiga.jp", "kusatsu.shiga.jp", "maibara.shiga.jp", "moriyama.shiga.jp", "nagahama.shiga.jp", "nishiazai.shiga.jp", "notogawa.shiga.jp", "omihachiman.shiga.jp", "otsu.shiga.jp", "ritto.shiga.jp", "ryuoh.shiga.jp", "takashima.shiga.jp", "takatsuki.shiga.jp", "torahime.shiga.jp", "toyosato.shiga.jp", "yasu.shiga.jp", "akagi.shimane.jp", "ama.shimane.jp", "gotsu.shimane.jp", "hamada.shimane.jp", "higashiizumo.shimane.jp", "hikawa.shimane.jp", "hikimi.shimane.jp", "izumo.shimane.jp", "kakinoki.shimane.jp", "masuda.shimane.jp", "matsue.shimane.jp", "misato.shimane.jp", "nishinoshima.shimane.jp", "ohda.shimane.jp", "okinoshima.shimane.jp", "okuizumo.shimane.jp", "shimane.shimane.jp", "tamayu.shimane.jp", "tsuwano.shimane.jp", "unnan.shimane.jp", "yakumo.shimane.jp", "yasugi.shimane.jp", "yatsuka.shimane.jp", "arai.shizuoka.jp", "atami.shizuoka.jp", "fuji.shizuoka.jp", "fujieda.shizuoka.jp", "fujikawa.shizuoka.jp", "fujinomiya.shizuoka.jp", "fukuroi.shizuoka.jp", "gotemba.shizuoka.jp", "haibara.shizuoka.jp", "hamamatsu.shizuoka.jp", "higashiizu.shizuoka.jp", "ito.shizuoka.jp", "iwata.shizuoka.jp", "izu.shizuoka.jp", "izunokuni.shizuoka.jp", "kakegawa.shizuoka.jp", "kannami.shizuoka.jp", "kawanehon.shizuoka.jp", "kawazu.shizuoka.jp", "kikugawa.shizuoka.jp", "kosai.shizuoka.jp", "makinohara.shizuoka.jp", "matsuzaki.shizuoka.jp", "minamiizu.shizuoka.jp", "mishima.shizuoka.jp", "morimachi.shizuoka.jp", "nishiizu.shizuoka.jp", "numazu.shizuoka.jp", "omaezaki.shizuoka.jp", "shimada.shizuoka.jp", "shimizu.shizuoka.jp", "shimoda.shizuoka.jp", "shizuoka.shizuoka.jp", "susono.shizuoka.jp", "yaizu.shizuoka.jp", "yoshida.shizuoka.jp", "ashikaga.tochigi.jp", "bato.tochigi.jp", "haga.tochigi.jp", "ichikai.tochigi.jp", "iwafune.tochigi.jp", "kaminokawa.tochigi.jp", "kanuma.tochigi.jp", "karasuyama.tochigi.jp", "kuroiso.tochigi.jp", "mashiko.tochigi.jp", "mibu.tochigi.jp", "moka.tochigi.jp", "motegi.tochigi.jp", "nasu.tochigi.jp", "nasushiobara.tochigi.jp", "nikko.tochigi.jp", "nishikata.tochigi.jp", "nogi.tochigi.jp", "ohira.tochigi.jp", "ohtawara.tochigi.jp", "oyama.tochigi.jp", "sakura.tochigi.jp", "sano.tochigi.jp", "shimotsuke.tochigi.jp", "shioya.tochigi.jp", "takanezawa.tochigi.jp", "tochigi.tochigi.jp", "tsuga.tochigi.jp", "ujiie.tochigi.jp", "utsunomiya.tochigi.jp", "yaita.tochigi.jp", "aizumi.tokushima.jp", "anan.tokushima.jp", "ichiba.tokushima.jp", "itano.tokushima.jp", "kainan.tokushima.jp", "komatsushima.tokushima.jp", "matsushige.tokushima.jp", "mima.tokushima.jp", "minami.tokushima.jp", "miyoshi.tokushima.jp", "mugi.tokushima.jp", "nakagawa.tokushima.jp", "naruto.tokushima.jp", "sanagochi.tokushima.jp", "shishikui.tokushima.jp", "tokushima.tokushima.jp", "wajiki.tokushima.jp", "adachi.tokyo.jp", "akiruno.tokyo.jp", "akishima.tokyo.jp", "aogashima.tokyo.jp", "arakawa.tokyo.jp", "bunkyo.tokyo.jp", "chiyoda.tokyo.jp", "chofu.tokyo.jp", "chuo.tokyo.jp", "edogawa.tokyo.jp", "fuchu.tokyo.jp", "fussa.tokyo.jp", "hachijo.tokyo.jp", "hachioji.tokyo.jp", "hamura.tokyo.jp", "higashikurume.tokyo.jp", "higashimurayama.tokyo.jp", "higashiyamato.tokyo.jp", "hino.tokyo.jp", "hinode.tokyo.jp", "hinohara.tokyo.jp", "inagi.tokyo.jp", "itabashi.tokyo.jp", "katsushika.tokyo.jp", "kita.tokyo.jp", "kiyose.tokyo.jp", "kodaira.tokyo.jp", "koganei.tokyo.jp", "kokubunji.tokyo.jp", "komae.tokyo.jp", "koto.tokyo.jp", "kouzushima.tokyo.jp", "kunitachi.tokyo.jp", "machida.tokyo.jp", "meguro.tokyo.jp", "minato.tokyo.jp", "mitaka.tokyo.jp", "mizuho.tokyo.jp", "musashimurayama.tokyo.jp", "musashino.tokyo.jp", "nakano.tokyo.jp", "nerima.tokyo.jp", "ogasawara.tokyo.jp", "okutama.tokyo.jp", "ome.tokyo.jp", "oshima.tokyo.jp", "ota.tokyo.jp", "setagaya.tokyo.jp", "shibuya.tokyo.jp", "shinagawa.tokyo.jp", "shinjuku.tokyo.jp", "suginami.tokyo.jp", "sumida.tokyo.jp", "tachikawa.tokyo.jp", "taito.tokyo.jp", "tama.tokyo.jp", "toshima.tokyo.jp", "chizu.tottori.jp", "hino.tottori.jp", "kawahara.tottori.jp", "koge.tottori.jp", "kotoura.tottori.jp", "misasa.tottori.jp", "nanbu.tottori.jp", "nichinan.tottori.jp", "sakaiminato.tottori.jp", "tottori.tottori.jp", "wakasa.tottori.jp", "yazu.tottori.jp", "yonago.tottori.jp", "asahi.toyama.jp", "fuchu.toyama.jp", "fukumitsu.toyama.jp", "funahashi.toyama.jp", "himi.toyama.jp", "imizu.toyama.jp", "inami.toyama.jp", "johana.toyama.jp", "kamiichi.toyama.jp", "kurobe.toyama.jp", "nakaniikawa.toyama.jp", "namerikawa.toyama.jp", "nanto.toyama.jp", "nyuzen.toyama.jp", "oyabe.toyama.jp", "taira.toyama.jp", "takaoka.toyama.jp", "tateyama.toyama.jp", "toga.toyama.jp", "tonami.toyama.jp", "toyama.toyama.jp", "unazuki.toyama.jp", "uozu.toyama.jp", "yamada.toyama.jp", "arida.wakayama.jp", "aridagawa.wakayama.jp", "gobo.wakayama.jp", "hashimoto.wakayama.jp", "hidaka.wakayama.jp", "hirogawa.wakayama.jp", "inami.wakayama.jp", "iwade.wakayama.jp", "kainan.wakayama.jp", "kamitonda.wakayama.jp", "katsuragi.wakayama.jp", "kimino.wakayama.jp", "kinokawa.wakayama.jp", "kitayama.wakayama.jp", "koya.wakayama.jp", "koza.wakayama.jp", "kozagawa.wakayama.jp", "kudoyama.wakayama.jp", "kushimoto.wakayama.jp", "mihama.wakayama.jp", "misato.wakayama.jp", "nachikatsuura.wakayama.jp", "shingu.wakayama.jp", "shirahama.wakayama.jp", "taiji.wakayama.jp", "tanabe.wakayama.jp", "wakayama.wakayama.jp", "yuasa.wakayama.jp", "yura.wakayama.jp", "asahi.yamagata.jp", "funagata.yamagata.jp", "higashine.yamagata.jp", "iide.yamagata.jp", "kahoku.yamagata.jp", "kaminoyama.yamagata.jp", "kaneyama.yamagata.jp", "kawanishi.yamagata.jp", "mamurogawa.yamagata.jp", "mikawa.yamagata.jp", "murayama.yamagata.jp", "nagai.yamagata.jp", "nakayama.yamagata.jp", "nanyo.yamagata.jp", "nishikawa.yamagata.jp", "obanazawa.yamagata.jp", "oe.yamagata.jp", "oguni.yamagata.jp", "ohkura.yamagata.jp", "oishida.yamagata.jp", "sagae.yamagata.jp", "sakata.yamagata.jp", "sakegawa.yamagata.jp", "shinjo.yamagata.jp", "shirataka.yamagata.jp", "shonai.yamagata.jp", "takahata.yamagata.jp", "tendo.yamagata.jp", "tozawa.yamagata.jp", "tsuruoka.yamagata.jp", "yamagata.yamagata.jp", "yamanobe.yamagata.jp", "yonezawa.yamagata.jp", "yuza.yamagata.jp", "abu.yamaguchi.jp", "hagi.yamaguchi.jp", "hikari.yamaguchi.jp", "hofu.yamaguchi.jp", "iwakuni.yamaguchi.jp", "kudamatsu.yamaguchi.jp", "mitou.yamaguchi.jp", "nagato.yamaguchi.jp", "oshima.yamaguchi.jp", "shimonoseki.yamaguchi.jp", "shunan.yamaguchi.jp", "tabuse.yamaguchi.jp", "tokuyama.yamaguchi.jp", "toyota.yamaguchi.jp", "ube.yamaguchi.jp", "yuu.yamaguchi.jp", "chuo.yamanashi.jp", "doshi.yamanashi.jp", "fuefuki.yamanashi.jp", "fujikawa.yamanashi.jp", "fujikawaguchiko.yamanashi.jp", "fujiyoshida.yamanashi.jp", "hayakawa.yamanashi.jp", "hokuto.yamanashi.jp", "ichikawamisato.yamanashi.jp", "kai.yamanashi.jp", "kofu.yamanashi.jp", "koshu.yamanashi.jp", "kosuge.yamanashi.jp", "minami-alps.yamanashi.jp", "minobu.yamanashi.jp", "nakamichi.yamanashi.jp", "nanbu.yamanashi.jp", "narusawa.yamanashi.jp", "nirasaki.yamanashi.jp", "nishikatsura.yamanashi.jp", "oshino.yamanashi.jp", "otsuki.yamanashi.jp", "showa.yamanashi.jp", "tabayama.yamanashi.jp", "tsuru.yamanashi.jp", "uenohara.yamanashi.jp", "yamanakako.yamanashi.jp", "yamanashi.yamanashi.jp", "ke", "ac.ke", "co.ke", "go.ke", "info.ke", "me.ke", "mobi.ke", "ne.ke", "or.ke", "sc.ke", "kg", "org.kg", "net.kg", "com.kg", "edu.kg", "gov.kg", "mil.kg", "*.kh", "ki", "edu.ki", "biz.ki", "net.ki", "org.ki", "gov.ki", "info.ki", "com.ki", "km", "org.km", "nom.km", "gov.km", "prd.km", "tm.km", "edu.km", "mil.km", "ass.km", "com.km", "coop.km", "asso.km", "presse.km", "medecin.km", "notaires.km", "pharmaciens.km", "veterinaire.km", "gouv.km", "kn", "net.kn", "org.kn", "edu.kn", "gov.kn", "kp", "com.kp", "edu.kp", "gov.kp", "org.kp", "rep.kp", "tra.kp", "kr", "ac.kr", "co.kr", "es.kr", "go.kr", "hs.kr", "kg.kr", "mil.kr", "ms.kr", "ne.kr", "or.kr", "pe.kr", "re.kr", "sc.kr", "busan.kr", "chungbuk.kr", "chungnam.kr", "daegu.kr", "daejeon.kr", "gangwon.kr", "gwangju.kr", "gyeongbuk.kr", "gyeonggi.kr", "gyeongnam.kr", "incheon.kr", "jeju.kr", "jeonbuk.kr", "jeonnam.kr", "seoul.kr", "ulsan.kr", "kw", "com.kw", "edu.kw", "emb.kw", "gov.kw", "ind.kw", "net.kw", "org.kw", "ky", "edu.ky", "gov.ky", "com.ky", "org.ky", "net.ky", "kz", "org.kz", "edu.kz", "net.kz", "gov.kz", "mil.kz", "com.kz", "la", "int.la", "net.la", "info.la", "edu.la", "gov.la", "per.la", "com.la", "org.la", "lb", "com.lb", "edu.lb", "gov.lb", "net.lb", "org.lb", "lc", "com.lc", "net.lc", "co.lc", "org.lc", "edu.lc", "gov.lc", "li", "lk", "gov.lk", "sch.lk", "net.lk", "int.lk", "com.lk", "org.lk", "edu.lk", "ngo.lk", "soc.lk", "web.lk", "ltd.lk", "assn.lk", "grp.lk", "hotel.lk", "ac.lk", "lr", "com.lr", "edu.lr", "gov.lr", "org.lr", "net.lr", "ls", "ac.ls", "biz.ls", "co.ls", "edu.ls", "gov.ls", "info.ls", "net.ls", "org.ls", "sc.ls", "lt", "gov.lt", "lu", "lv", "com.lv", "edu.lv", "gov.lv", "org.lv", "mil.lv", "id.lv", "net.lv", "asn.lv", "conf.lv", "ly", "com.ly", "net.ly", "gov.ly", "plc.ly", "edu.ly", "sch.ly", "med.ly", "org.ly", "id.ly", "ma", "co.ma", "net.ma", "gov.ma", "org.ma", "ac.ma", "press.ma", "mc", "tm.mc", "asso.mc", "md", "me", "co.me", "net.me", "org.me", "edu.me", "ac.me", "gov.me", "its.me", "priv.me", "mg", "org.mg", "nom.mg", "gov.mg", "prd.mg", "tm.mg", "edu.mg", "mil.mg", "com.mg", "co.mg", "mh", "mil", "mk", "com.mk", "org.mk", "net.mk", "edu.mk", "gov.mk", "inf.mk", "name.mk", "ml", "com.ml", "edu.ml", "gouv.ml", "gov.ml", "net.ml", "org.ml", "presse.ml", "*.mm", "mn", "gov.mn", "edu.mn", "org.mn", "mo", "com.mo", "net.mo", "org.mo", "edu.mo", "gov.mo", "mobi", "mp", "mq", "mr", "gov.mr", "ms", "com.ms", "edu.ms", "gov.ms", "net.ms", "org.ms", "mt", "com.mt", "edu.mt", "net.mt", "org.mt", "mu", "com.mu", "net.mu", "org.mu", "gov.mu", "ac.mu", "co.mu", "or.mu", "museum", "academy.museum", "agriculture.museum", "air.museum", "airguard.museum", "alabama.museum", "alaska.museum", "amber.museum", "ambulance.museum", "american.museum", "americana.museum", "americanantiques.museum", "americanart.museum", "amsterdam.museum", "and.museum", "annefrank.museum", "anthro.museum", "anthropology.museum", "antiques.museum", "aquarium.museum", "arboretum.museum", "archaeological.museum", "archaeology.museum", "architecture.museum", "art.museum", "artanddesign.museum", "artcenter.museum", "artdeco.museum", "arteducation.museum", "artgallery.museum", "arts.museum", "artsandcrafts.museum", "asmatart.museum", "assassination.museum", "assisi.museum", "association.museum", "astronomy.museum", "atlanta.museum", "austin.museum", "australia.museum", "automotive.museum", "aviation.museum", "axis.museum", "badajoz.museum", "baghdad.museum", "bahn.museum", "bale.museum", "baltimore.museum", "barcelona.museum", "baseball.museum", "basel.museum", "baths.museum", "bauern.museum", "beauxarts.museum", "beeldengeluid.museum", "bellevue.museum", "bergbau.museum", "berkeley.museum", "berlin.museum", "bern.museum", "bible.museum", "bilbao.museum", "bill.museum", "birdart.museum", "birthplace.museum", "bonn.museum", "boston.museum", "botanical.museum", "botanicalgarden.museum", "botanicgarden.museum", "botany.museum", "brandywinevalley.museum", "brasil.museum", "bristol.museum", "british.museum", "britishcolumbia.museum", "broadcast.museum", "brunel.museum", "brussel.museum", "brussels.museum", "bruxelles.museum", "building.museum", "burghof.museum", "bus.museum", "bushey.museum", "cadaques.museum", "california.museum", "cambridge.museum", "can.museum", "canada.museum", "capebreton.museum", "carrier.museum", "cartoonart.museum", "casadelamoneda.museum", "castle.museum", "castres.museum", "celtic.museum", "center.museum", "chattanooga.museum", "cheltenham.museum", "chesapeakebay.museum", "chicago.museum", "children.museum", "childrens.museum", "childrensgarden.museum", "chiropractic.museum", "chocolate.museum", "christiansburg.museum", "cincinnati.museum", "cinema.museum", "circus.museum", "civilisation.museum", "civilization.museum", "civilwar.museum", "clinton.museum", "clock.museum", "coal.museum", "coastaldefence.museum", "cody.museum", "coldwar.museum", "collection.museum", "colonialwilliamsburg.museum", "coloradoplateau.museum", "columbia.museum", "columbus.museum", "communication.museum", "communications.museum", "community.museum", "computer.museum", "computerhistory.museum", "comunicações.museum", "contemporary.museum", "contemporaryart.museum", "convent.museum", "copenhagen.museum", "corporation.museum", "correios-e-telecomunicações.museum", "corvette.museum", "costume.museum", "countryestate.museum", "county.museum", "crafts.museum", "cranbrook.museum", "creation.museum", "cultural.museum", "culturalcenter.museum", "culture.museum", "cyber.museum", "cymru.museum", "dali.museum", "dallas.museum", "database.museum", "ddr.museum", "decorativearts.museum", "delaware.museum", "delmenhorst.museum", "denmark.museum", "depot.museum", "design.museum", "detroit.museum", "dinosaur.museum", "discovery.museum", "dolls.museum", "donostia.museum", "durham.museum", "eastafrica.museum", "eastcoast.museum", "education.museum", "educational.museum", "egyptian.museum", "eisenbahn.museum", "elburg.museum", "elvendrell.museum", "embroidery.museum", "encyclopedic.museum", "england.museum", "entomology.museum", "environment.museum", "environmentalconservation.museum", "epilepsy.museum", "essex.museum", "estate.museum", "ethnology.museum", "exeter.museum", "exhibition.museum", "family.museum", "farm.museum", "farmequipment.museum", "farmers.museum", "farmstead.museum", "field.museum", "figueres.museum", "filatelia.museum", "film.museum", "fineart.museum", "finearts.museum", "finland.museum", "flanders.museum", "florida.museum", "force.museum", "fortmissoula.museum", "fortworth.museum", "foundation.museum", "francaise.museum", "frankfurt.museum", "franziskaner.museum", "freemasonry.museum", "freiburg.museum", "fribourg.museum", "frog.museum", "fundacio.museum", "furniture.museum", "gallery.museum", "garden.museum", "gateway.museum", "geelvinck.museum", "gemological.museum", "geology.museum", "georgia.museum", "giessen.museum", "glas.museum", "glass.museum", "gorge.museum", "grandrapids.museum", "graz.museum", "guernsey.museum", "halloffame.museum", "hamburg.museum", "handson.museum", "harvestcelebration.museum", "hawaii.museum", "health.museum", "heimatunduhren.museum", "hellas.museum", "helsinki.museum", "hembygdsforbund.museum", "heritage.museum", "histoire.museum", "historical.museum", "historicalsociety.museum", "historichouses.museum", "historisch.museum", "historisches.museum", "history.museum", "historyofscience.museum", "horology.museum", "house.museum", "humanities.museum", "illustration.museum", "imageandsound.museum", "indian.museum", "indiana.museum", "indianapolis.museum", "indianmarket.museum", "intelligence.museum", "interactive.museum", "iraq.museum", "iron.museum", "isleofman.museum", "jamison.museum", "jefferson.museum", "jerusalem.museum", "jewelry.museum", "jewish.museum", "jewishart.museum", "jfk.museum", "journalism.museum", "judaica.museum", "judygarland.museum", "juedisches.museum", "juif.museum", "karate.museum", "karikatur.museum", "kids.museum", "koebenhavn.museum", "koeln.museum", "kunst.museum", "kunstsammlung.museum", "kunstunddesign.museum", "labor.museum", "labour.museum", "lajolla.museum", "lancashire.museum", "landes.museum", "lans.museum", "läns.museum", "larsson.museum", "lewismiller.museum", "lincoln.museum", "linz.museum", "living.museum", "livinghistory.museum", "localhistory.museum", "london.museum", "losangeles.museum", "louvre.museum", "loyalist.museum", "lucerne.museum", "luxembourg.museum", "luzern.museum", "mad.museum", "madrid.museum", "mallorca.museum", "manchester.museum", "mansion.museum", "mansions.museum", "manx.museum", "marburg.museum", "maritime.museum", "maritimo.museum", "maryland.museum", "marylhurst.museum", "media.museum", "medical.museum", "medizinhistorisches.museum", "meeres.museum", "memorial.museum", "mesaverde.museum", "michigan.museum", "midatlantic.museum", "military.museum", "mill.museum", "miners.museum", "mining.museum", "minnesota.museum", "missile.museum", "missoula.museum", "modern.museum", "moma.museum", "money.museum", "monmouth.museum", "monticello.museum", "montreal.museum", "moscow.museum", "motorcycle.museum", "muenchen.museum", "muenster.museum", "mulhouse.museum", "muncie.museum", "museet.museum", "museumcenter.museum", "museumvereniging.museum", "music.museum", "national.museum", "nationalfirearms.museum", "nationalheritage.museum", "nativeamerican.museum", "naturalhistory.museum", "naturalhistorymuseum.museum", "naturalsciences.museum", "nature.museum", "naturhistorisches.museum", "natuurwetenschappen.museum", "naumburg.museum", "naval.museum", "nebraska.museum", "neues.museum", "newhampshire.museum", "newjersey.museum", "newmexico.museum", "newport.museum", "newspaper.museum", "newyork.museum", "niepce.museum", "norfolk.museum", "north.museum", "nrw.museum", "nuernberg.museum", "nuremberg.museum", "nyc.museum", "nyny.museum", "oceanographic.museum", "oceanographique.museum", "omaha.museum", "online.museum", "ontario.museum", "openair.museum", "oregon.museum", "oregontrail.museum", "otago.museum", "oxford.museum", "pacific.museum", "paderborn.museum", "palace.museum", "paleo.museum", "palmsprings.museum", "panama.museum", "paris.museum", "pasadena.museum", "pharmacy.museum", "philadelphia.museum", "philadelphiaarea.museum", "philately.museum", "phoenix.museum", "photography.museum", "pilots.museum", "pittsburgh.museum", "planetarium.museum", "plantation.museum", "plants.museum", "plaza.museum", "portal.museum", "portland.museum", "portlligat.museum", "posts-and-telecommunications.museum", "preservation.museum", "presidio.museum", "press.museum", "project.museum", "public.museum", "pubol.museum", "quebec.museum", "railroad.museum", "railway.museum", "research.museum", "resistance.museum", "riodejaneiro.museum", "rochester.museum", "rockart.museum", "roma.museum", "russia.museum", "saintlouis.museum", "salem.museum", "salvadordali.museum", "salzburg.museum", "sandiego.museum", "sanfrancisco.museum", "santabarbara.museum", "santacruz.museum", "santafe.museum", "saskatchewan.museum", "satx.museum", "savannahga.museum", "schlesisches.museum", "schoenbrunn.museum", "schokoladen.museum", "school.museum", "schweiz.museum", "science.museum", "scienceandhistory.museum", "scienceandindustry.museum", "sciencecenter.museum", "sciencecenters.museum", "science-fiction.museum", "sciencehistory.museum", "sciences.museum", "sciencesnaturelles.museum", "scotland.museum", "seaport.museum", "settlement.museum", "settlers.museum", "shell.museum", "sherbrooke.museum", "sibenik.museum", "silk.museum", "ski.museum", "skole.museum", "society.museum", "sologne.museum", "soundandvision.museum", "southcarolina.museum", "southwest.museum", "space.museum", "spy.museum", "square.museum", "stadt.museum", "stalbans.museum", "starnberg.museum", "state.museum", "stateofdelaware.museum", "station.museum", "steam.museum", "steiermark.museum", "stjohn.museum", "stockholm.museum", "stpetersburg.museum", "stuttgart.museum", "suisse.museum", "surgeonshall.museum", "surrey.museum", "svizzera.museum", "sweden.museum", "sydney.museum", "tank.museum", "tcm.museum", "technology.museum", "telekommunikation.museum", "television.museum", "texas.museum", "textile.museum", "theater.museum", "time.museum", "timekeeping.museum", "topology.museum", "torino.museum", "touch.museum", "town.museum", "transport.museum", "tree.museum", "trolley.museum", "trust.museum", "trustee.museum", "uhren.museum", "ulm.museum", "undersea.museum", "university.museum", "usa.museum", "usantiques.museum", "usarts.museum", "uscountryestate.museum", "usculture.museum", "usdecorativearts.museum", "usgarden.museum", "ushistory.museum", "ushuaia.museum", "uslivinghistory.museum", "utah.museum", "uvic.museum", "valley.museum", "vantaa.museum", "versailles.museum", "viking.museum", "village.museum", "virginia.museum", "virtual.museum", "virtuel.museum", "vlaanderen.museum", "volkenkunde.museum", "wales.museum", "wallonie.museum", "war.museum", "washingtondc.museum", "watchandclock.museum", "watch-and-clock.museum", "western.museum", "westfalen.museum", "whaling.museum", "wildlife.museum", "williamsburg.museum", "windmill.museum", "workshop.museum", "york.museum", "yorkshire.museum", "yosemite.museum", "youth.museum", "zoological.museum", "zoology.museum", "ירושלים.museum", "иком.museum", "mv", "aero.mv", "biz.mv", "com.mv", "coop.mv", "edu.mv", "gov.mv", "info.mv", "int.mv", "mil.mv", "museum.mv", "name.mv", "net.mv", "org.mv", "pro.mv", "mw", "ac.mw", "biz.mw", "co.mw", "com.mw", "coop.mw", "edu.mw", "gov.mw", "int.mw", "museum.mw", "net.mw", "org.mw", "mx", "com.mx", "org.mx", "gob.mx", "edu.mx", "net.mx", "my", "com.my", "net.my", "org.my", "gov.my", "edu.my", "mil.my", "name.my", "mz", "ac.mz", "adv.mz", "co.mz", "edu.mz", "gov.mz", "mil.mz", "net.mz", "org.mz", "na", "info.na", "pro.na", "name.na", "school.na", "or.na", "dr.na", "us.na", "mx.na", "ca.na", "in.na", "cc.na", "tv.na", "ws.na", "mobi.na", "co.na", "com.na", "org.na", "name", "nc", "asso.nc", "nom.nc", "ne", "net", "nf", "com.nf", "net.nf", "per.nf", "rec.nf", "web.nf", "arts.nf", "firm.nf", "info.nf", "other.nf", "store.nf", "ng", "com.ng", "edu.ng", "gov.ng", "i.ng", "mil.ng", "mobi.ng", "name.ng", "net.ng", "org.ng", "sch.ng", "ni", "ac.ni", "biz.ni", "co.ni", "com.ni", "edu.ni", "gob.ni", "in.ni", "info.ni", "int.ni", "mil.ni", "net.ni", "nom.ni", "org.ni", "web.ni", "nl", "no", "fhs.no", "vgs.no", "fylkesbibl.no", "folkebibl.no", "museum.no", "idrett.no", "priv.no", "mil.no", "stat.no", "dep.no", "kommune.no", "herad.no", "aa.no", "ah.no", "bu.no", "fm.no", "hl.no", "hm.no", "jan-mayen.no", "mr.no", "nl.no", "nt.no", "of.no", "ol.no", "oslo.no", "rl.no", "sf.no", "st.no", "svalbard.no", "tm.no", "tr.no", "va.no", "vf.no", "gs.aa.no", "gs.ah.no", "gs.bu.no", "gs.fm.no", "gs.hl.no", "gs.hm.no", "gs.jan-mayen.no", "gs.mr.no", "gs.nl.no", "gs.nt.no", "gs.of.no", "gs.ol.no", "gs.oslo.no", "gs.rl.no", "gs.sf.no", "gs.st.no", "gs.svalbard.no", "gs.tm.no", "gs.tr.no", "gs.va.no", "gs.vf.no", "akrehamn.no", "åkrehamn.no", "algard.no", "ålgård.no", "arna.no", "brumunddal.no", "bryne.no", "bronnoysund.no", "brønnøysund.no", "drobak.no", "drøbak.no", "egersund.no", "fetsund.no", "floro.no", "florø.no", "fredrikstad.no", "hokksund.no", "honefoss.no", "hønefoss.no", "jessheim.no", "jorpeland.no", "jørpeland.no", "kirkenes.no", "kopervik.no", "krokstadelva.no", "langevag.no", "langevåg.no", "leirvik.no", "mjondalen.no", "mjøndalen.no", "mo-i-rana.no", "mosjoen.no", "mosjøen.no", "nesoddtangen.no", "orkanger.no", "osoyro.no", "osøyro.no", "raholt.no", "råholt.no", "sandnessjoen.no", "sandnessjøen.no", "skedsmokorset.no", "slattum.no", "spjelkavik.no", "stathelle.no", "stavern.no", "stjordalshalsen.no", "stjørdalshalsen.no", "tananger.no", "tranby.no", "vossevangen.no", "afjord.no", "åfjord.no", "agdenes.no", "al.no", "ål.no", "alesund.no", "ålesund.no", "alstahaug.no", "alta.no", "áltá.no", "alaheadju.no", "álaheadju.no", "alvdal.no", "amli.no", "åmli.no", "amot.no", "åmot.no", "andebu.no", "andoy.no", "andøy.no", "andasuolo.no", "ardal.no", "årdal.no", "aremark.no", "arendal.no", "ås.no", "aseral.no", "åseral.no", "asker.no", "askim.no", "askvoll.no", "askoy.no", "askøy.no", "asnes.no", "åsnes.no", "audnedaln.no", "aukra.no", "aure.no", "aurland.no", "aurskog-holand.no", "aurskog-høland.no", "austevoll.no", "austrheim.no", "averoy.no", "averøy.no", "balestrand.no", "ballangen.no", "balat.no", "bálát.no", "balsfjord.no", "bahccavuotna.no", "báhccavuotna.no", "bamble.no", "bardu.no", "beardu.no", "beiarn.no", "bajddar.no", "bájddar.no", "baidar.no", "báidár.no", "berg.no", "bergen.no", "berlevag.no", "berlevåg.no", "bearalvahki.no", "bearalváhki.no", "bindal.no", "birkenes.no", "bjarkoy.no", "bjarkøy.no", "bjerkreim.no", "bjugn.no", "bodo.no", "bodø.no", "badaddja.no", "bådåddjå.no", "budejju.no", "bokn.no", "bremanger.no", "bronnoy.no", "brønnøy.no", "bygland.no", "bykle.no", "barum.no", "bærum.no", "bo.telemark.no", "bø.telemark.no", "bo.nordland.no", "bø.nordland.no", "bievat.no", "bievát.no", "bomlo.no", "bømlo.no", "batsfjord.no", "båtsfjord.no", "bahcavuotna.no", "báhcavuotna.no", "dovre.no", "drammen.no", "drangedal.no", "dyroy.no", "dyrøy.no", "donna.no", "dønna.no", "eid.no", "eidfjord.no", "eidsberg.no", "eidskog.no", "eidsvoll.no", "eigersund.no", "elverum.no", "enebakk.no", "engerdal.no", "etne.no", "etnedal.no", "evenes.no", "evenassi.no", "evenášši.no", "evje-og-hornnes.no", "farsund.no", "fauske.no", "fuossko.no", "fuoisku.no", "fedje.no", "fet.no", "finnoy.no", "finnøy.no", "fitjar.no", "fjaler.no", "fjell.no", "flakstad.no", "flatanger.no", "flekkefjord.no", "flesberg.no", "flora.no", "fla.no", "flå.no", "folldal.no", "forsand.no", "fosnes.no", "frei.no", "frogn.no", "froland.no", "frosta.no", "frana.no", "fræna.no", "froya.no", "frøya.no", "fusa.no", "fyresdal.no", "forde.no", "førde.no", "gamvik.no", "gangaviika.no", "gáŋgaviika.no", "gaular.no", "gausdal.no", "gildeskal.no", "gildeskål.no", "giske.no", "gjemnes.no", "gjerdrum.no", "gjerstad.no", "gjesdal.no", "gjovik.no", "gjøvik.no", "gloppen.no", "gol.no", "gran.no", "grane.no", "granvin.no", "gratangen.no", "grimstad.no", "grong.no", "kraanghke.no", "kråanghke.no", "grue.no", "gulen.no", "hadsel.no", "halden.no", "halsa.no", "hamar.no", "hamaroy.no", "habmer.no", "hábmer.no", "hapmir.no", "hápmir.no", "hammerfest.no", "hammarfeasta.no", "hámmárfeasta.no", "haram.no", "hareid.no", "harstad.no", "hasvik.no", "aknoluokta.no", "ákŋoluokta.no", "hattfjelldal.no", "aarborte.no", "haugesund.no", "hemne.no", "hemnes.no", "hemsedal.no", "heroy.more-og-romsdal.no", "herøy.møre-og-romsdal.no", "heroy.nordland.no", "herøy.nordland.no", "hitra.no", "hjartdal.no", "hjelmeland.no", "hobol.no", "hobøl.no", "hof.no", "hol.no", "hole.no", "holmestrand.no", "holtalen.no", "holtålen.no", "hornindal.no", "horten.no", "hurdal.no", "hurum.no", "hvaler.no", "hyllestad.no", "hagebostad.no", "hægebostad.no", "hoyanger.no", "høyanger.no", "hoylandet.no", "høylandet.no", "ha.no", "hå.no", "ibestad.no", "inderoy.no", "inderøy.no", "iveland.no", "jevnaker.no", "jondal.no", "jolster.no", "jølster.no", "karasjok.no", "karasjohka.no", "kárášjohka.no", "karlsoy.no", "galsa.no", "gálsá.no", "karmoy.no", "karmøy.no", "kautokeino.no", "guovdageaidnu.no", "klepp.no", "klabu.no", "klæbu.no", "kongsberg.no", "kongsvinger.no", "kragero.no", "kragerø.no", "kristiansand.no", "kristiansund.no", "krodsherad.no", "krødsherad.no", "kvalsund.no", "rahkkeravju.no", "ráhkkerávju.no", "kvam.no", "kvinesdal.no", "kvinnherad.no", "kviteseid.no", "kvitsoy.no", "kvitsøy.no", "kvafjord.no", "kvæfjord.no", "giehtavuoatna.no", "kvanangen.no", "kvænangen.no", "navuotna.no", "návuotna.no", "kafjord.no", "kåfjord.no", "gaivuotna.no", "gáivuotna.no", "larvik.no", "lavangen.no", "lavagis.no", "loabat.no", "loabát.no", "lebesby.no", "davvesiida.no", "leikanger.no", "leirfjord.no", "leka.no", "leksvik.no", "lenvik.no", "leangaviika.no", "leaŋgaviika.no", "lesja.no", "levanger.no", "lier.no", "lierne.no", "lillehammer.no", "lillesand.no", "lindesnes.no", "lindas.no", "lindås.no", "lom.no", "loppa.no", "lahppi.no", "láhppi.no", "lund.no", "lunner.no", "luroy.no", "lurøy.no", "luster.no", "lyngdal.no", "lyngen.no", "ivgu.no", "lardal.no", "lerdal.no", "lærdal.no", "lodingen.no", "lødingen.no", "lorenskog.no", "lørenskog.no", "loten.no", "løten.no", "malvik.no", "masoy.no", "måsøy.no", "muosat.no", "muosát.no", "mandal.no", "marker.no", "marnardal.no", "masfjorden.no", "meland.no", "meldal.no", "melhus.no", "meloy.no", "meløy.no", "meraker.no", "meråker.no", "moareke.no", "moåreke.no", "midsund.no", "midtre-gauldal.no", "modalen.no", "modum.no", "molde.no", "moskenes.no", "moss.no", "mosvik.no", "malselv.no", "målselv.no", "malatvuopmi.no", "málatvuopmi.no", "namdalseid.no", "aejrie.no", "namsos.no", "namsskogan.no", "naamesjevuemie.no", "nååmesjevuemie.no", "laakesvuemie.no", "nannestad.no", "narvik.no", "narviika.no", "naustdal.no", "nedre-eiker.no", "nes.akershus.no", "nes.buskerud.no", "nesna.no", "nesodden.no", "nesseby.no", "unjarga.no", "unjárga.no", "nesset.no", "nissedal.no", "nittedal.no", "nord-aurdal.no", "nord-fron.no", "nord-odal.no", "norddal.no", "nordkapp.no", "davvenjarga.no", "davvenjárga.no", "nordre-land.no", "nordreisa.no", "raisa.no", "ráisa.no", "nore-og-uvdal.no", "notodden.no", "naroy.no", "nærøy.no", "notteroy.no", "nøtterøy.no", "odda.no", "oksnes.no", "øksnes.no", "oppdal.no", "oppegard.no", "oppegård.no", "orkdal.no", "orland.no", "ørland.no", "orskog.no", "ørskog.no", "orsta.no", "ørsta.no", "os.hedmark.no", "os.hordaland.no", "osen.no", "osteroy.no", "osterøy.no", "ostre-toten.no", "østre-toten.no", "overhalla.no", "ovre-eiker.no", "øvre-eiker.no", "oyer.no", "øyer.no", "oygarden.no", "øygarden.no", "oystre-slidre.no", "øystre-slidre.no", "porsanger.no", "porsangu.no", "porsáŋgu.no", "porsgrunn.no", "radoy.no", "radøy.no", "rakkestad.no", "rana.no", "ruovat.no", "randaberg.no", "rauma.no", "rendalen.no", "rennebu.no", "rennesoy.no", "rennesøy.no", "rindal.no", "ringebu.no", "ringerike.no", "ringsaker.no", "rissa.no", "risor.no", "risør.no", "roan.no", "rollag.no", "rygge.no", "ralingen.no", "rælingen.no", "rodoy.no", "rødøy.no", "romskog.no", "rømskog.no", "roros.no", "røros.no", "rost.no", "røst.no", "royken.no", "røyken.no", "royrvik.no", "røyrvik.no", "rade.no", "råde.no", "salangen.no", "siellak.no", "saltdal.no", "salat.no", "sálát.no", "sálat.no", "samnanger.no", "sande.more-og-romsdal.no", "sande.møre-og-romsdal.no", "sande.vestfold.no", "sandefjord.no", "sandnes.no", "sandoy.no", "sandøy.no", "sarpsborg.no", "sauda.no", "sauherad.no", "sel.no", "selbu.no", "selje.no", "seljord.no", "sigdal.no", "siljan.no", "sirdal.no", "skaun.no", "skedsmo.no", "ski.no", "skien.no", "skiptvet.no", "skjervoy.no", "skjervøy.no", "skierva.no", "skiervá.no", "skjak.no", "skjåk.no", "skodje.no", "skanland.no", "skånland.no", "skanit.no", "skánit.no", "smola.no", "smøla.no", "snillfjord.no", "snasa.no", "snåsa.no", "snoasa.no", "snaase.no", "snåase.no", "sogndal.no", "sokndal.no", "sola.no", "solund.no", "songdalen.no", "sortland.no", "spydeberg.no", "stange.no", "stavanger.no", "steigen.no", "steinkjer.no", "stjordal.no", "stjørdal.no", "stokke.no", "stor-elvdal.no", "stord.no", "stordal.no", "storfjord.no", "omasvuotna.no", "strand.no", "stranda.no", "stryn.no", "sula.no", "suldal.no", "sund.no", "sunndal.no", "surnadal.no", "sveio.no", "svelvik.no", "sykkylven.no", "sogne.no", "søgne.no", "somna.no", "sømna.no", "sondre-land.no", "søndre-land.no", "sor-aurdal.no", "sør-aurdal.no", "sor-fron.no", "sør-fron.no", "sor-odal.no", "sør-odal.no", "sor-varanger.no", "sør-varanger.no", "matta-varjjat.no", "mátta-várjjat.no", "sorfold.no", "sørfold.no", "sorreisa.no", "sørreisa.no", "sorum.no", "sørum.no", "tana.no", "deatnu.no", "time.no", "tingvoll.no", "tinn.no", "tjeldsund.no", "dielddanuorri.no", "tjome.no", "tjøme.no", "tokke.no", "tolga.no", "torsken.no", "tranoy.no", "tranøy.no", "tromso.no", "tromsø.no", "tromsa.no", "romsa.no", "trondheim.no", "troandin.no", "trysil.no", "trana.no", "træna.no", "trogstad.no", "trøgstad.no", "tvedestrand.no", "tydal.no", "tynset.no", "tysfjord.no", "divtasvuodna.no", "divttasvuotna.no", "tysnes.no", "tysvar.no", "tysvær.no", "tonsberg.no", "tønsberg.no", "ullensaker.no", "ullensvang.no", "ulvik.no", "utsira.no", "vadso.no", "vadsø.no", "cahcesuolo.no", "čáhcesuolo.no", "vaksdal.no", "valle.no", "vang.no", "vanylven.no", "vardo.no", "vardø.no", "varggat.no", "várggát.no", "vefsn.no", "vaapste.no", "vega.no", "vegarshei.no", "vegårshei.no", "vennesla.no", "verdal.no", "verran.no", "vestby.no", "vestnes.no", "vestre-slidre.no", "vestre-toten.no", "vestvagoy.no", "vestvågøy.no", "vevelstad.no", "vik.no", "vikna.no", "vindafjord.no", "volda.no", "voss.no", "varoy.no", "værøy.no", "vagan.no", "vågan.no", "voagat.no", "vagsoy.no", "vågsøy.no", "vaga.no", "vågå.no", "valer.ostfold.no", "våler.østfold.no", "valer.hedmark.no", "våler.hedmark.no", "*.np", "nr", "biz.nr", "info.nr", "gov.nr", "edu.nr", "org.nr", "net.nr", "com.nr", "nu", "nz", "ac.nz", "co.nz", "cri.nz", "geek.nz", "gen.nz", "govt.nz", "health.nz", "iwi.nz", "kiwi.nz", "maori.nz", "mil.nz", "māori.nz", "net.nz", "org.nz", "parliament.nz", "school.nz", "om", "co.om", "com.om", "edu.om", "gov.om", "med.om", "museum.om", "net.om", "org.om", "pro.om", "onion", "org", "pa", "ac.pa", "gob.pa", "com.pa", "org.pa", "sld.pa", "edu.pa", "net.pa", "ing.pa", "abo.pa", "med.pa", "nom.pa", "pe", "edu.pe", "gob.pe", "nom.pe", "mil.pe", "org.pe", "com.pe", "net.pe", "pf", "com.pf", "org.pf", "edu.pf", "*.pg", "ph", "com.ph", "net.ph", "org.ph", "gov.ph", "edu.ph", "ngo.ph", "mil.ph", "i.ph", "pk", "com.pk", "net.pk", "edu.pk", "org.pk", "fam.pk", "biz.pk", "web.pk", "gov.pk", "gob.pk", "gok.pk", "gon.pk", "gop.pk", "gos.pk", "info.pk", "pl", "com.pl", "net.pl", "org.pl", "aid.pl", "agro.pl", "atm.pl", "auto.pl", "biz.pl", "edu.pl", "gmina.pl", "gsm.pl", "info.pl", "mail.pl", "miasta.pl", "media.pl", "mil.pl", "nieruchomosci.pl", "nom.pl", "pc.pl", "powiat.pl", "priv.pl", "realestate.pl", "rel.pl", "sex.pl", "shop.pl", "sklep.pl", "sos.pl", "szkola.pl", "targi.pl", "tm.pl", "tourism.pl", "travel.pl", "turystyka.pl", "gov.pl", "ap.gov.pl", "ic.gov.pl", "is.gov.pl", "us.gov.pl", "kmpsp.gov.pl", "kppsp.gov.pl", "kwpsp.gov.pl", "psp.gov.pl", "wskr.gov.pl", "kwp.gov.pl", "mw.gov.pl", "ug.gov.pl", "um.gov.pl", "umig.gov.pl", "ugim.gov.pl", "upow.gov.pl", "uw.gov.pl", "starostwo.gov.pl", "pa.gov.pl", "po.gov.pl", "psse.gov.pl", "pup.gov.pl", "rzgw.gov.pl", "sa.gov.pl", "so.gov.pl", "sr.gov.pl", "wsa.gov.pl", "sko.gov.pl", "uzs.gov.pl", "wiih.gov.pl", "winb.gov.pl", "pinb.gov.pl", "wios.gov.pl", "witd.gov.pl", "wzmiuw.gov.pl", "piw.gov.pl", "wiw.gov.pl", "griw.gov.pl", "wif.gov.pl", "oum.gov.pl", "sdn.gov.pl", "zp.gov.pl", "uppo.gov.pl", "mup.gov.pl", "wuoz.gov.pl", "konsulat.gov.pl", "oirm.gov.pl", "augustow.pl", "babia-gora.pl", "bedzin.pl", "beskidy.pl", "bialowieza.pl", "bialystok.pl", "bielawa.pl", "bieszczady.pl", "boleslawiec.pl", "bydgoszcz.pl", "bytom.pl", "cieszyn.pl", "czeladz.pl", "czest.pl", "dlugoleka.pl", "elblag.pl", "elk.pl", "glogow.pl", "gniezno.pl", "gorlice.pl", "grajewo.pl", "ilawa.pl", "jaworzno.pl", "jelenia-gora.pl", "jgora.pl", "kalisz.pl", "kazimierz-dolny.pl", "karpacz.pl", "kartuzy.pl", "kaszuby.pl", "katowice.pl", "kepno.pl", "ketrzyn.pl", "klodzko.pl", "kobierzyce.pl", "kolobrzeg.pl", "konin.pl", "konskowola.pl", "kutno.pl", "lapy.pl", "lebork.pl", "legnica.pl", "lezajsk.pl", "limanowa.pl", "lomza.pl", "lowicz.pl", "lubin.pl", "lukow.pl", "malbork.pl", "malopolska.pl", "mazowsze.pl", "mazury.pl", "mielec.pl", "mielno.pl", "mragowo.pl", "naklo.pl", "nowaruda.pl", "nysa.pl", "olawa.pl", "olecko.pl", "olkusz.pl", "olsztyn.pl", "opoczno.pl", "opole.pl", "ostroda.pl", "ostroleka.pl", "ostrowiec.pl", "ostrowwlkp.pl", "pila.pl", "pisz.pl", "podhale.pl", "podlasie.pl", "polkowice.pl", "pomorze.pl", "pomorskie.pl", "prochowice.pl", "pruszkow.pl", "przeworsk.pl", "pulawy.pl", "radom.pl", "rawa-maz.pl", "rybnik.pl", "rzeszow.pl", "sanok.pl", "sejny.pl", "slask.pl", "slupsk.pl", "sosnowiec.pl", "stalowa-wola.pl", "skoczow.pl", "starachowice.pl", "stargard.pl", "suwalki.pl", "swidnica.pl", "swiebodzin.pl", "swinoujscie.pl", "szczecin.pl", "szczytno.pl", "tarnobrzeg.pl", "tgory.pl", "turek.pl", "tychy.pl", "ustka.pl", "walbrzych.pl", "warmia.pl", "warszawa.pl", "waw.pl", "wegrow.pl", "wielun.pl", "wlocl.pl", "wloclawek.pl", "wodzislaw.pl", "wolomin.pl", "wroclaw.pl", "zachpomor.pl", "zagan.pl", "zarow.pl", "zgora.pl", "zgorzelec.pl", "pm", "pn", "gov.pn", "co.pn", "org.pn", "edu.pn", "net.pn", "post", "pr", "com.pr", "net.pr", "org.pr", "gov.pr", "edu.pr", "isla.pr", "pro.pr", "biz.pr", "info.pr", "name.pr", "est.pr", "prof.pr", "ac.pr", "pro", "aaa.pro", "aca.pro", "acct.pro", "avocat.pro", "bar.pro", "cpa.pro", "eng.pro", "jur.pro", "law.pro", "med.pro", "recht.pro", "ps", "edu.ps", "gov.ps", "sec.ps", "plo.ps", "com.ps", "org.ps", "net.ps", "pt", "net.pt", "gov.pt", "org.pt", "edu.pt", "int.pt", "publ.pt", "com.pt", "nome.pt", "pw", "co.pw", "ne.pw", "or.pw", "ed.pw", "go.pw", "belau.pw", "py", "com.py", "coop.py", "edu.py", "gov.py", "mil.py", "net.py", "org.py", "qa", "com.qa", "edu.qa", "gov.qa", "mil.qa", "name.qa", "net.qa", "org.qa", "sch.qa", "re", "asso.re", "com.re", "nom.re", "ro", "arts.ro", "com.ro", "firm.ro", "info.ro", "nom.ro", "nt.ro", "org.ro", "rec.ro", "store.ro", "tm.ro", "www.ro", "rs", "ac.rs", "co.rs", "edu.rs", "gov.rs", "in.rs", "org.rs", "ru", "ac.ru", "edu.ru", "gov.ru", "int.ru", "mil.ru", "test.ru", "rw", "ac.rw", "co.rw", "coop.rw", "gov.rw", "mil.rw", "net.rw", "org.rw", "sa", "com.sa", "net.sa", "org.sa", "gov.sa", "med.sa", "pub.sa", "edu.sa", "sch.sa", "sb", "com.sb", "edu.sb", "gov.sb", "net.sb", "org.sb", "sc", "com.sc", "gov.sc", "net.sc", "org.sc", "edu.sc", "sd", "com.sd", "net.sd", "org.sd", "edu.sd", "med.sd", "tv.sd", "gov.sd", "info.sd", "se", "a.se", "ac.se", "b.se", "bd.se", "brand.se", "c.se", "d.se", "e.se", "f.se", "fh.se", "fhsk.se", "fhv.se", "g.se", "h.se", "i.se", "k.se", "komforb.se", "kommunalforbund.se", "komvux.se", "l.se", "lanbib.se", "m.se", "n.se", "naturbruksgymn.se", "o.se", "org.se", "p.se", "parti.se", "pp.se", "press.se", "r.se", "s.se", "t.se", "tm.se", "u.se", "w.se", "x.se", "y.se", "z.se", "sg", "com.sg", "net.sg", "org.sg", "gov.sg", "edu.sg", "per.sg", "sh", "com.sh", "net.sh", "gov.sh", "org.sh", "mil.sh", "si", "sj", "sk", "sl", "com.sl", "net.sl", "edu.sl", "gov.sl", "org.sl", "sm", "sn", "art.sn", "com.sn", "edu.sn", "gouv.sn", "org.sn", "perso.sn", "univ.sn", "so", "com.so", "net.so", "org.so", "sr", "st", "co.st", "com.st", "consulado.st", "edu.st", "embaixada.st", "gov.st", "mil.st", "net.st", "org.st", "principe.st", "saotome.st", "store.st", "su", "sv", "com.sv", "edu.sv", "gob.sv", "org.sv", "red.sv", "sx", "gov.sx", "sy", "edu.sy", "gov.sy", "net.sy", "mil.sy", "com.sy", "org.sy", "sz", "co.sz", "ac.sz", "org.sz", "tc", "td", "tel", "tf", "tg", "th", "ac.th", "co.th", "go.th", "in.th", "mi.th", "net.th", "or.th", "tj", "ac.tj", "biz.tj", "co.tj", "com.tj", "edu.tj", "go.tj", "gov.tj", "int.tj", "mil.tj", "name.tj", "net.tj", "nic.tj", "org.tj", "test.tj", "web.tj", "tk", "tl", "gov.tl", "tm", "com.tm", "co.tm", "org.tm", "net.tm", "nom.tm", "gov.tm", "mil.tm", "edu.tm", "tn", "com.tn", "ens.tn", "fin.tn", "gov.tn", "ind.tn", "intl.tn", "nat.tn", "net.tn", "org.tn", "info.tn", "perso.tn", "tourism.tn", "edunet.tn", "rnrt.tn", "rns.tn", "rnu.tn", "mincom.tn", "agrinet.tn", "defense.tn", "turen.tn", "to", "com.to", "gov.to", "net.to", "org.to", "edu.to", "mil.to", "tr", "av.tr", "bbs.tr", "bel.tr", "biz.tr", "com.tr", "dr.tr", "edu.tr", "gen.tr", "gov.tr", "info.tr", "mil.tr", "k12.tr", "kep.tr", "name.tr", "net.tr", "org.tr", "pol.tr", "tel.tr", "tsk.tr", "tv.tr", "web.tr", "nc.tr", "gov.nc.tr", "tt", "co.tt", "com.tt", "org.tt", "net.tt", "biz.tt", "info.tt", "pro.tt", "int.tt", "coop.tt", "jobs.tt", "mobi.tt", "travel.tt", "museum.tt", "aero.tt", "name.tt", "gov.tt", "edu.tt", "tv", "tw", "edu.tw", "gov.tw", "mil.tw", "com.tw", "net.tw", "org.tw", "idv.tw", "game.tw", "ebiz.tw", "club.tw", "網路.tw", "組織.tw", "商業.tw", "tz", "ac.tz", "co.tz", "go.tz", "hotel.tz", "info.tz", "me.tz", "mil.tz", "mobi.tz", "ne.tz", "or.tz", "sc.tz", "tv.tz", "ua", "com.ua", "edu.ua", "gov.ua", "in.ua", "net.ua", "org.ua", "cherkassy.ua", "cherkasy.ua", "chernigov.ua", "chernihiv.ua", "chernivtsi.ua", "chernovtsy.ua", "ck.ua", "cn.ua", "cr.ua", "crimea.ua", "cv.ua", "dn.ua", "dnepropetrovsk.ua", "dnipropetrovsk.ua", "dominic.ua", "donetsk.ua", "dp.ua", "if.ua", "ivano-frankivsk.ua", "kh.ua", "kharkiv.ua", "kharkov.ua", "kherson.ua", "khmelnitskiy.ua", "khmelnytskyi.ua", "kiev.ua", "kirovograd.ua", "km.ua", "kr.ua", "krym.ua", "ks.ua", "kv.ua", "kyiv.ua", "lg.ua", "lt.ua", "lugansk.ua", "lutsk.ua", "lv.ua", "lviv.ua", "mk.ua", "mykolaiv.ua", "nikolaev.ua", "od.ua", "odesa.ua", "odessa.ua", "pl.ua", "poltava.ua", "rivne.ua", "rovno.ua", "rv.ua", "sb.ua", "sebastopol.ua", "sevastopol.ua", "sm.ua", "sumy.ua", "te.ua", "ternopil.ua", "uz.ua", "uzhgorod.ua", "vinnica.ua", "vinnytsia.ua", "vn.ua", "volyn.ua", "yalta.ua", "zaporizhzhe.ua", "zaporizhzhia.ua", "zhitomir.ua", "zhytomyr.ua", "zp.ua", "zt.ua", "ug", "co.ug", "or.ug", "ac.ug", "sc.ug", "go.ug", "ne.ug", "com.ug", "org.ug", "uk", "ac.uk", "co.uk", "gov.uk", "ltd.uk", "me.uk", "net.uk", "nhs.uk", "org.uk", "plc.uk", "police.uk", "*.sch.uk", "us", "dni.us", "fed.us", "isa.us", "kids.us", "nsn.us", "ak.us", "al.us", "ar.us", "as.us", "az.us", "ca.us", "co.us", "ct.us", "dc.us", "de.us", "fl.us", "ga.us", "gu.us", "hi.us", "ia.us", "id.us", "il.us", "in.us", "ks.us", "ky.us", "la.us", "ma.us", "md.us", "me.us", "mi.us", "mn.us", "mo.us", "ms.us", "mt.us", "nc.us", "nd.us", "ne.us", "nh.us", "nj.us", "nm.us", "nv.us", "ny.us", "oh.us", "ok.us", "or.us", "pa.us", "pr.us", "ri.us", "sc.us", "sd.us", "tn.us", "tx.us", "ut.us", "vi.us", "vt.us", "va.us", "wa.us", "wi.us", "wv.us", "wy.us", "k12.ak.us", "k12.al.us", "k12.ar.us", "k12.as.us", "k12.az.us", "k12.ca.us", "k12.co.us", "k12.ct.us", "k12.dc.us", "k12.de.us", "k12.fl.us", "k12.ga.us", "k12.gu.us", "k12.ia.us", "k12.id.us", "k12.il.us", "k12.in.us", "k12.ks.us", "k12.ky.us", "k12.la.us", "k12.ma.us", "k12.md.us", "k12.me.us", "k12.mi.us", "k12.mn.us", "k12.mo.us", "k12.ms.us", "k12.mt.us", "k12.nc.us", "k12.ne.us", "k12.nh.us", "k12.nj.us", "k12.nm.us", "k12.nv.us", "k12.ny.us", "k12.oh.us", "k12.ok.us", "k12.or.us", "k12.pa.us", "k12.pr.us", "k12.ri.us", "k12.sc.us", "k12.tn.us", "k12.tx.us", "k12.ut.us", "k12.vi.us", "k12.vt.us", "k12.va.us", "k12.wa.us", "k12.wi.us", "k12.wy.us", "cc.ak.us", "cc.al.us", "cc.ar.us", "cc.as.us", "cc.az.us", "cc.ca.us", "cc.co.us", "cc.ct.us", "cc.dc.us", "cc.de.us", "cc.fl.us", "cc.ga.us", "cc.gu.us", "cc.hi.us", "cc.ia.us", "cc.id.us", "cc.il.us", "cc.in.us", "cc.ks.us", "cc.ky.us", "cc.la.us", "cc.ma.us", "cc.md.us", "cc.me.us", "cc.mi.us", "cc.mn.us", "cc.mo.us", "cc.ms.us", "cc.mt.us", "cc.nc.us", "cc.nd.us", "cc.ne.us", "cc.nh.us", "cc.nj.us", "cc.nm.us", "cc.nv.us", "cc.ny.us", "cc.oh.us", "cc.ok.us", "cc.or.us", "cc.pa.us", "cc.pr.us", "cc.ri.us", "cc.sc.us", "cc.sd.us", "cc.tn.us", "cc.tx.us", "cc.ut.us", "cc.vi.us", "cc.vt.us", "cc.va.us", "cc.wa.us", "cc.wi.us", "cc.wv.us", "cc.wy.us", "lib.ak.us", "lib.al.us", "lib.ar.us", "lib.as.us", "lib.az.us", "lib.ca.us", "lib.co.us", "lib.ct.us", "lib.dc.us", "lib.fl.us", "lib.ga.us", "lib.gu.us", "lib.hi.us", "lib.ia.us", "lib.id.us", "lib.il.us", "lib.in.us", "lib.ks.us", "lib.ky.us", "lib.la.us", "lib.ma.us", "lib.md.us", "lib.me.us", "lib.mi.us", "lib.mn.us", "lib.mo.us", "lib.ms.us", "lib.mt.us", "lib.nc.us", "lib.nd.us", "lib.ne.us", "lib.nh.us", "lib.nj.us", "lib.nm.us", "lib.nv.us", "lib.ny.us", "lib.oh.us", "lib.ok.us", "lib.or.us", "lib.pa.us", "lib.pr.us", "lib.ri.us", "lib.sc.us", "lib.sd.us", "lib.tn.us", "lib.tx.us", "lib.ut.us", "lib.vi.us", "lib.vt.us", "lib.va.us", "lib.wa.us", "lib.wi.us", "lib.wy.us", "pvt.k12.ma.us", "chtr.k12.ma.us", "paroch.k12.ma.us", "ann-arbor.mi.us", "cog.mi.us", "dst.mi.us", "eaton.mi.us", "gen.mi.us", "mus.mi.us", "tec.mi.us", "washtenaw.mi.us", "uy", "com.uy", "edu.uy", "gub.uy", "mil.uy", "net.uy", "org.uy", "uz", "co.uz", "com.uz", "net.uz", "org.uz", "va", "vc", "com.vc", "net.vc", "org.vc", "gov.vc", "mil.vc", "edu.vc", "ve", "arts.ve", "co.ve", "com.ve", "e12.ve", "edu.ve", "firm.ve", "gob.ve", "gov.ve", "info.ve", "int.ve", "mil.ve", "net.ve", "org.ve", "rec.ve", "store.ve", "tec.ve", "web.ve", "vg", "vi", "co.vi", "com.vi", "k12.vi", "net.vi", "org.vi", "vn", "com.vn", "net.vn", "org.vn", "edu.vn", "gov.vn", "int.vn", "ac.vn", "biz.vn", "info.vn", "name.vn", "pro.vn", "health.vn", "vu", "com.vu", "edu.vu", "net.vu", "org.vu", "wf", "ws", "com.ws", "net.ws", "org.ws", "gov.ws", "edu.ws", "yt", "امارات", "հայ", "বাংলা", "бг", "бел", "中国", "中國", "الجزائر", "مصر", "ею", "გე", "ελ", "香港", "公司.香港", "教育.香港", "政府.香港", "個人.香港", "網絡.香港", "組織.香港", "ಭಾರತ", "ଭାରତ", "ভাৰত", "भारतम्", "भारोत", "ڀارت", "ഭാരതം", "भारत", "بارت", "بھارت", "భారత్", "ભારત", "ਭਾਰਤ", "ভারত", "இந்தியா", "ایران", "ايران", "عراق", "الاردن", "한국", "қаз", "ලංකා", "இலங்கை", "المغرب", "мкд", "мон", "澳門", "澳门", "مليسيا", "عمان", "پاکستان", "پاكستان", "فلسطين", "срб", "пр.срб", "орг.срб", "обр.срб", "од.срб", "упр.срб", "ак.срб", "рф", "قطر", "السعودية", "السعودیة", "السعودیۃ", "السعوديه", "سودان", "新加坡", "சிங்கப்பூர்", "سورية", "سوريا", "ไทย", "ศึกษา.ไทย", "ธุรกิจ.ไทย", "รัฐบาล.ไทย", "ทหาร.ไทย", "เน็ต.ไทย", "องค์กร.ไทย", "تونس", "台灣", "台湾", "臺灣", "укр", "اليمن", "xxx", "*.ye", "ac.za", "agric.za", "alt.za", "co.za", "edu.za", "gov.za", "grondar.za", "law.za", "mil.za", "net.za", "ngo.za", "nis.za", "nom.za", "org.za", "school.za", "tm.za", "web.za", "zm", "ac.zm", "biz.zm", "co.zm", "com.zm", "edu.zm", "gov.zm", "info.zm", "mil.zm", "net.zm", "org.zm", "sch.zm", "zw", "ac.zw", "co.zw", "gov.zw", "mil.zw", "org.zw", "aaa", "aarp", "abarth", "abb", "abbott", "abbvie", "abc", "able", "abogado", "abudhabi", "academy", "accenture", "accountant", "accountants", "aco", "actor", "adac", "ads", "adult", "aeg", "aetna", "afamilycompany", "afl", "africa", "agakhan", "agency", "aig", "aigo", "airbus", "airforce", "airtel", "akdn", "alfaromeo", "alibaba", "alipay", "allfinanz", "allstate", "ally", "alsace", "alstom", "americanexpress", "americanfamily", "amex", "amfam", "amica", "amsterdam", "analytics", "android", "anquan", "anz", "aol", "apartments", "app", "apple", "aquarelle", "arab", "aramco", "archi", "army", "art", "arte", "asda", "associates", "athleta", "attorney", "auction", "audi", "audible", "audio", "auspost", "author", "auto", "autos", "avianca", "aws", "axa", "azure", "baby", "baidu", "banamex", "bananarepublic", "band", "bank", "bar", "barcelona", "barclaycard", "barclays", "barefoot", "bargains", "baseball", "basketball", "bauhaus", "bayern", "bbc", "bbt", "bbva", "bcg", "bcn", "beats", "beauty", "beer", "bentley", "berlin", "best", "bestbuy", "bet", "bharti", "bible", "bid", "bike", "bing", "bingo", "bio", "black", "blackfriday", "blockbuster", "blog", "bloomberg", "blue", "bms", "bmw", "bnl", "bnpparibas", "boats", "boehringer", "bofa", "bom", "bond", "boo", "book", "booking", "bosch", "bostik", "boston", "bot", "boutique", "box", "bradesco", "bridgestone", "broadway", "broker", "brother", "brussels", "budapest", "bugatti", "build", "builders", "business", "buy", "buzz", "bzh", "cab", "cafe", "cal", "call", "calvinklein", "cam", "camera", "camp", "cancerresearch", "canon", "capetown", "capital", "capitalone", "car", "caravan", "cards", "care", "career", "careers", "cars", "cartier", "casa", "case", "caseih", "cash", "casino", "catering", "catholic", "cba", "cbn", "cbre", "cbs", "ceb", "center", "ceo", "cern", "cfa", "cfd", "chanel", "channel", "charity", "chase", "chat", "cheap", "chintai", "christmas", "chrome", "chrysler", "church", "cipriani", "circle", "cisco", "citadel", "citi", "citic", "city", "cityeats", "claims", "cleaning", "click", "clinic", "clinique", "clothing", "cloud", "club", "clubmed", "coach", "codes", "coffee", "college", "cologne", "comcast", "commbank", "community", "company", "compare", "computer", "comsec", "condos", "construction", "consulting", "contact", "contractors", "cooking", "cookingchannel", "cool", "corsica", "country", "coupon", "coupons", "courses", "credit", "creditcard", "creditunion", "cricket", "crown", "crs", "cruise", "cruises", "csc", "cuisinella", "cymru", "cyou", "dabur", "dad", "dance", "data", "date", "dating", "datsun", "day", "dclk", "dds", "deal", "dealer", "deals", "degree", "delivery", "dell", "deloitte", "delta", "democrat", "dental", "dentist", "desi", "design", "dev", "dhl", "diamonds", "diet", "digital", "direct", "directory", "discount", "discover", "dish", "diy", "dnp", "docs", "doctor", "dodge", "dog", "domains", "dot", "download", "drive", "dtv", "dubai", "duck", "dunlop", "duns", "dupont", "durban", "dvag", "dvr", "earth", "eat", "eco", "edeka", "education", "email", "emerck", "energy", "engineer", "engineering", "enterprises", "epson", "equipment", "ericsson", "erni", "esq", "estate", "esurance", "etisalat", "eurovision", "eus", "events", "everbank", "exchange", "expert", "exposed", "express", "extraspace", "fage", "fail", "fairwinds", "faith", "family", "fan", "fans", "farm", "farmers", "fashion", "fast", "fedex", "feedback", "ferrari", "ferrero", "fiat", "fidelity", "fido", "film", "final", "finance", "financial", "fire", "firestone", "firmdale", "fish", "fishing", "fit", "fitness", "flickr", "flights", "flir", "florist", "flowers", "fly", "foo", "food", "foodnetwork", "football", "ford", "forex", "forsale", "forum", "foundation", "fox", "free", "fresenius", "frl", "frogans", "frontdoor", "frontier", "ftr", "fujitsu", "fujixerox", "fun", "fund", "furniture", "futbol", "fyi", "gal", "gallery", "gallo", "gallup", "game", "games", "gap", "garden", "gbiz", "gdn", "gea", "gent", "genting", "george", "ggee", "gift", "gifts", "gives", "giving", "glade", "glass", "gle", "global", "globo", "gmail", "gmbh", "gmo", "gmx", "godaddy", "gold", "goldpoint", "golf", "goo", "goodyear", "goog", "google", "gop", "got", "grainger", "graphics", "gratis", "green", "gripe", "grocery", "group", "guardian", "gucci", "guge", "guide", "guitars", "guru", "hair", "hamburg", "hangout", "haus", "hbo", "hdfc", "hdfcbank", "health", "healthcare", "help", "helsinki", "here", "hermes", "hgtv", "hiphop", "hisamitsu", "hitachi", "hiv", "hkt", "hockey", "holdings", "holiday", "homedepot", "homegoods", "homes", "homesense", "honda", "honeywell", "horse", "hospital", "host", "hosting", "hot", "hoteles", "hotels", "hotmail", "house", "how", "hsbc", "hughes", "hyatt", "hyundai", "ibm", "icbc", "ice", "icu", "ieee", "ifm", "ikano", "imamat", "imdb", "immo", "immobilien", "inc", "industries", "infiniti", "ing", "ink", "institute", "insurance", "insure", "intel", "international", "intuit", "investments", "ipiranga", "irish", "iselect", "ismaili", "ist", "istanbul", "itau", "itv", "iveco", "jaguar", "java", "jcb", "jcp", "jeep", "jetzt", "jewelry", "jio", "jll", "jmp", "jnj", "joburg", "jot", "joy", "jpmorgan", "jprs", "juegos", "juniper", "kaufen", "kddi", "kerryhotels", "kerrylogistics", "kerryproperties", "kfh", "kia", "kim", "kinder", "kindle", "kitchen", "kiwi", "koeln", "komatsu", "kosher", "kpmg", "kpn", "krd", "kred", "kuokgroup", "kyoto", "lacaixa", "ladbrokes", "lamborghini", "lamer", "lancaster", "lancia", "lancome", "land", "landrover", "lanxess", "lasalle", "lat", "latino", "latrobe", "law", "lawyer", "lds", "lease", "leclerc", "lefrak", "legal", "lego", "lexus", "lgbt", "liaison", "lidl", "life", "lifeinsurance", "lifestyle", "lighting", "like", "lilly", "limited", "limo", "lincoln", "linde", "link", "lipsy", "live", "living", "lixil", "llc", "loan", "loans", "locker", "locus", "loft", "lol", "london", "lotte", "lotto", "love", "lpl", "lplfinancial", "ltd", "ltda", "lundbeck", "lupin", "luxe", "luxury", "macys", "madrid", "maif", "maison", "makeup", "man", "management", "mango", "map", "market", "marketing", "markets", "marriott", "marshalls", "maserati", "mattel", "mba", "mckinsey", "med", "media", "meet", "melbourne", "meme", "memorial", "men", "menu", "merckmsd", "metlife", "miami", "microsoft", "mini", "mint", "mit", "mitsubishi", "mlb", "mls", "mma", "mobile", "mobily", "moda", "moe", "moi", "mom", "monash", "money", "monster", "mopar", "mormon", "mortgage", "moscow", "moto", "motorcycles", "mov", "movie", "movistar", "msd", "mtn", "mtr", "mutual", "nab", "nadex", "nagoya", "nationwide", "natura", "navy", "nba", "nec", "netbank", "netflix", "network", "neustar", "new", "newholland", "news", "next", "nextdirect", "nexus", "nfl", "ngo", "nhk", "nico", "nike", "nikon", "ninja", "nissan", "nissay", "nokia", "northwesternmutual", "norton", "now", "nowruz", "nowtv", "nra", "nrw", "ntt", "nyc", "obi", "observer", "off", "office", "okinawa", "olayan", "olayangroup", "oldnavy", "ollo", "omega", "one", "ong", "onl", "online", "onyourside", "ooo", "open", "oracle", "orange", "organic", "origins", "osaka", "otsuka", "ott", "ovh", "page", "panasonic", "paris", "pars", "partners", "parts", "party", "passagens", "pay", "pccw", "pet", "pfizer", "pharmacy", "phd", "philips", "phone", "photo", "photography", "photos", "physio", "piaget", "pics", "pictet", "pictures", "pid", "pin", "ping", "pink", "pioneer", "pizza", "place", "play", "playstation", "plumbing", "plus", "pnc", "pohl", "poker", "politie", "porn", "pramerica", "praxi", "press", "prime", "prod", "productions", "prof", "progressive", "promo", "properties", "property", "protection", "pru", "prudential", "pub", "pwc", "qpon", "quebec", "quest", "qvc", "racing", "radio", "raid", "read", "realestate", "realtor", "realty", "recipes", "red", "redstone", "redumbrella", "rehab", "reise", "reisen", "reit", "reliance", "ren", "rent", "rentals", "repair", "report", "republican", "rest", "restaurant", "review", "reviews", "rexroth", "rich", "richardli", "ricoh", "rightathome", "ril", "rio", "rip", "rmit", "rocher", "rocks", "rodeo", "rogers", "room", "rsvp", "rugby", "ruhr", "run", "rwe", "ryukyu", "saarland", "safe", "safety", "sakura", "sale", "salon", "samsclub", "samsung", "sandvik", "sandvikcoromant", "sanofi", "sap", "sarl", "sas", "save", "saxo", "sbi", "sbs", "sca", "scb", "schaeffler", "schmidt", "scholarships", "school", "schule", "schwarz", "science", "scjohnson", "scor", "scot", "search", "seat", "secure", "security", "seek", "select", "sener", "services", "ses", "seven", "sew", "sex", "sexy", "sfr", "shangrila", "sharp", "shaw", "shell", "shia", "shiksha", "shoes", "shop", "shopping", "shouji", "show", "showtime", "shriram", "silk", "sina", "singles", "site", "ski", "skin", "sky", "skype", "sling", "smart", "smile", "sncf", "soccer", "social", "softbank", "software", "sohu", "solar", "solutions", "song", "sony", "soy", "space", "sport", "spot", "spreadbetting", "srl", "srt", "stada", "staples", "star", "starhub", "statebank", "statefarm", "stc", "stcgroup", "stockholm", "storage", "store", "stream", "studio", "study", "style", "sucks", "supplies", "supply", "support", "surf", "surgery", "suzuki", "swatch", "swiftcover", "swiss", "sydney", "symantec", "systems", "tab", "taipei", "talk", "taobao", "target", "tatamotors", "tatar", "tattoo", "tax", "taxi", "tci", "tdk", "team", "tech", "technology", "telefonica", "temasek", "tennis", "teva", "thd", "theater", "theatre", "tiaa", "tickets", "tienda", "tiffany", "tips", "tires", "tirol", "tjmaxx", "tjx", "tkmaxx", "tmall", "today", "tokyo", "tools", "top", "toray", "toshiba", "total", "tours", "town", "toyota", "toys", "trade", "trading", "training", "travel", "travelchannel", "travelers", "travelersinsurance", "trust", "trv", "tube", "tui", "tunes", "tushu", "tvs", "ubank", "ubs", "uconnect", "unicom", "university", "uno", "uol", "ups", "vacations", "vana", "vanguard", "vegas", "ventures", "verisign", "versicherung", "vet", "viajes", "video", "vig", "viking", "villas", "vin", "vip", "virgin", "visa", "vision", "vistaprint", "viva", "vivo", "vlaanderen", "vodka", "volkswagen", "volvo", "vote", "voting", "voto", "voyage", "vuelos", "wales", "walmart", "walter", "wang", "wanggou", "warman", "watch", "watches", "weather", "weatherchannel", "webcam", "weber", "website", "wed", "wedding", "weibo", "weir", "whoswho", "wien", "wiki", "williamhill", "win", "windows", "wine", "winners", "wme", "wolterskluwer", "woodside", "work", "works", "world", "wow", "wtc", "wtf", "xbox", "xerox", "xfinity", "xihuan", "xin", "कॉम", "セール", "佛山", "慈善", "集团", "在线", "大众汽车", "点看", "คอม", "八卦", "موقع", "公益", "公司", "香格里拉", "网站", "移动", "我爱你", "москва", "католик", "онлайн", "сайт", "联通", "קום", "时尚", "微博", "淡马锡", "ファッション", "орг", "नेट", "ストア", "삼성", "商标", "商店", "商城", "дети", "ポイント", "新闻", "工行", "家電", "كوم", "中文网", "中信", "娱乐", "谷歌", "電訊盈科", "购物", "クラウド", "通販", "网店", "संगठन", "餐厅", "网络", "ком", "诺基亚", "食品", "飞利浦", "手表", "手机", "ارامكو", "العليان", "اتصالات", "بازار", "موبايلي", "ابوظبي", "كاثوليك", "همراه", "닷컴", "政府", "شبكة", "بيتك", "عرب", "机构", "组织机构", "健康", "招聘", "рус", "珠宝", "大拿", "みんな", "グーグル", "世界", "書籍", "网址", "닷넷", "コム", "天主教", "游戏", "vermögensberater", "vermögensberatung", "企业", "信息", "嘉里大酒店", "嘉里", "广东", "政务", "xyz", "yachts", "yahoo", "yamaxun", "yandex", "yodobashi", "yoga", "yokohama", "you", "youtube", "yun", "zappos", "zara", "zero", "zip", "zone", "zuerich", "cc.ua", "inf.ua", "ltd.ua", "beep.pl", "barsy.ca", "*.compute.estate", "*.alces.network", "alwaysdata.net", "cloudfront.net", "*.compute.amazonaws.com", "*.compute-1.amazonaws.com", "*.compute.amazonaws.com.cn", "us-east-1.amazonaws.com", "cn-north-1.eb.amazonaws.com.cn", "cn-northwest-1.eb.amazonaws.com.cn", "elasticbeanstalk.com", "ap-northeast-1.elasticbeanstalk.com", "ap-northeast-2.elasticbeanstalk.com", "ap-northeast-3.elasticbeanstalk.com", "ap-south-1.elasticbeanstalk.com", "ap-southeast-1.elasticbeanstalk.com", "ap-southeast-2.elasticbeanstalk.com", "ca-central-1.elasticbeanstalk.com", "eu-central-1.elasticbeanstalk.com", "eu-west-1.elasticbeanstalk.com", "eu-west-2.elasticbeanstalk.com", "eu-west-3.elasticbeanstalk.com", "sa-east-1.elasticbeanstalk.com", "us-east-1.elasticbeanstalk.com", "us-east-2.elasticbeanstalk.com", "us-gov-west-1.elasticbeanstalk.com", "us-west-1.elasticbeanstalk.com", "us-west-2.elasticbeanstalk.com", "*.elb.amazonaws.com", "*.elb.amazonaws.com.cn", "s3.amazonaws.com", "s3-ap-northeast-1.amazonaws.com", "s3-ap-northeast-2.amazonaws.com", "s3-ap-south-1.amazonaws.com", "s3-ap-southeast-1.amazonaws.com", "s3-ap-southeast-2.amazonaws.com", "s3-ca-central-1.amazonaws.com", "s3-eu-central-1.amazonaws.com", "s3-eu-west-1.amazonaws.com", "s3-eu-west-2.amazonaws.com", "s3-eu-west-3.amazonaws.com", "s3-external-1.amazonaws.com", "s3-fips-us-gov-west-1.amazonaws.com", "s3-sa-east-1.amazonaws.com", "s3-us-gov-west-1.amazonaws.com", "s3-us-east-2.amazonaws.com", "s3-us-west-1.amazonaws.com", "s3-us-west-2.amazonaws.com", "s3.ap-northeast-2.amazonaws.com", "s3.ap-south-1.amazonaws.com", "s3.cn-north-1.amazonaws.com.cn", "s3.ca-central-1.amazonaws.com", "s3.eu-central-1.amazonaws.com", "s3.eu-west-2.amazonaws.com", "s3.eu-west-3.amazonaws.com", "s3.us-east-2.amazonaws.com", "s3.dualstack.ap-northeast-1.amazonaws.com", "s3.dualstack.ap-northeast-2.amazonaws.com", "s3.dualstack.ap-south-1.amazonaws.com", "s3.dualstack.ap-southeast-1.amazonaws.com", "s3.dualstack.ap-southeast-2.amazonaws.com", "s3.dualstack.ca-central-1.amazonaws.com", "s3.dualstack.eu-central-1.amazonaws.com", "s3.dualstack.eu-west-1.amazonaws.com", "s3.dualstack.eu-west-2.amazonaws.com", "s3.dualstack.eu-west-3.amazonaws.com", "s3.dualstack.sa-east-1.amazonaws.com", "s3.dualstack.us-east-1.amazonaws.com", "s3.dualstack.us-east-2.amazonaws.com", "s3-website-us-east-1.amazonaws.com", "s3-website-us-west-1.amazonaws.com", "s3-website-us-west-2.amazonaws.com", "s3-website-ap-northeast-1.amazonaws.com", "s3-website-ap-southeast-1.amazonaws.com", "s3-website-ap-southeast-2.amazonaws.com", "s3-website-eu-west-1.amazonaws.com", "s3-website-sa-east-1.amazonaws.com", "s3-website.ap-northeast-2.amazonaws.com", "s3-website.ap-south-1.amazonaws.com", "s3-website.ca-central-1.amazonaws.com", "s3-website.eu-central-1.amazonaws.com", "s3-website.eu-west-2.amazonaws.com", "s3-website.eu-west-3.amazonaws.com", "s3-website.us-east-2.amazonaws.com", "t3l3p0rt.net", "tele.amune.org", "apigee.io", "on-aptible.com", "user.party.eus", "pimienta.org", "poivron.org", "potager.org", "sweetpepper.org", "myasustor.com", "go-vip.co", "go-vip.net", "wpcomstaging.com", "myfritz.net", "*.awdev.ca", "*.advisor.ws", "b-data.io", "backplaneapp.io", "app.banzaicloud.io", "betainabox.com", "bnr.la", "blackbaudcdn.net", "boomla.net", "boxfuse.io", "square7.ch", "bplaced.com", "bplaced.de", "square7.de", "bplaced.net", "square7.net", "browsersafetymark.io", "uk0.bigv.io", "dh.bytemark.co.uk", "vm.bytemark.co.uk", "mycd.eu", "carrd.co", "crd.co", "uwu.ai", "ae.org", "ar.com", "br.com", "cn.com", "com.de", "com.se", "de.com", "eu.com", "gb.com", "gb.net", "hu.com", "hu.net", "jp.net", "jpn.com", "kr.com", "mex.com", "no.com", "qc.com", "ru.com", "sa.com", "se.net", "uk.com", "uk.net", "us.com", "uy.com", "za.bz", "za.com", "africa.com", "gr.com", "in.net", "us.org", "co.com", "c.la", "certmgr.org", "xenapponazure.com", "discourse.group", "virtueeldomein.nl", "cleverapps.io", "*.lcl.dev", "*.stg.dev", "c66.me", "cloud66.ws", "cloud66.zone", "jdevcloud.com", "wpdevcloud.com", "cloudaccess.host", "freesite.host", "cloudaccess.net", "cloudcontrolled.com", "cloudcontrolapp.com", "workers.dev", "wnext.app", "co.ca", "*.otap.co", "co.cz", "c.cdn77.org", "cdn77-ssl.net", "r.cdn77.net", "rsc.cdn77.org", "ssl.origin.cdn77-secure.org", "cloudns.asia", "cloudns.biz", "cloudns.club", "cloudns.cc", "cloudns.eu", "cloudns.in", "cloudns.info", "cloudns.org", "cloudns.pro", "cloudns.pw", "cloudns.us", "cloudeity.net", "cnpy.gdn", "co.nl", "co.no", "webhosting.be", "hosting-cluster.nl", "dyn.cosidns.de", "dynamisches-dns.de", "dnsupdater.de", "internet-dns.de", "l-o-g-i-n.de", "dynamic-dns.info", "feste-ip.net", "knx-server.net", "static-access.net", "realm.cz", "*.cryptonomic.net", "cupcake.is", "cyon.link", "cyon.site", "daplie.me", "localhost.daplie.me", "dattolocal.com", "dattorelay.com", "dattoweb.com", "mydatto.com", "dattolocal.net", "mydatto.net", "biz.dk", "co.dk", "firm.dk", "reg.dk", "store.dk", "*.dapps.earth", "*.bzz.dapps.earth", "debian.net", "dedyn.io", "dnshome.de", "online.th", "shop.th", "drayddns.com", "dreamhosters.com", "mydrobo.com", "drud.io", "drud.us", "duckdns.org", "dy.fi", "tunk.org", "dyndns-at-home.com", "dyndns-at-work.com", "dyndns-blog.com", "dyndns-free.com", "dyndns-home.com", "dyndns-ip.com", "dyndns-mail.com", "dyndns-office.com", "dyndns-pics.com", "dyndns-remote.com", "dyndns-server.com", "dyndns-web.com", "dyndns-wiki.com", "dyndns-work.com", "dyndns.biz", "dyndns.info", "dyndns.org", "dyndns.tv", "at-band-camp.net", "ath.cx", "barrel-of-knowledge.info", "barrell-of-knowledge.info", "better-than.tv", "blogdns.com", "blogdns.net", "blogdns.org", "blogsite.org", "boldlygoingnowhere.org", "broke-it.net", "buyshouses.net", "cechire.com", "dnsalias.com", "dnsalias.net", "dnsalias.org", "dnsdojo.com", "dnsdojo.net", "dnsdojo.org", "does-it.net", "doesntexist.com", "doesntexist.org", "dontexist.com", "dontexist.net", "dontexist.org", "doomdns.com", "doomdns.org", "dvrdns.org", "dyn-o-saur.com", "dynalias.com", "dynalias.net", "dynalias.org", "dynathome.net", "dyndns.ws", "endofinternet.net", "endofinternet.org", "endoftheinternet.org", "est-a-la-maison.com", "est-a-la-masion.com", "est-le-patron.com", "est-mon-blogueur.com", "for-better.biz", "for-more.biz", "for-our.info", "for-some.biz", "for-the.biz", "forgot.her.name", "forgot.his.name", "from-ak.com", "from-al.com", "from-ar.com", "from-az.net", "from-ca.com", "from-co.net", "from-ct.com", "from-dc.com", "from-de.com", "from-fl.com", "from-ga.com", "from-hi.com", "from-ia.com", "from-id.com", "from-il.com", "from-in.com", "from-ks.com", "from-ky.com", "from-la.net", "from-ma.com", "from-md.com", "from-me.org", "from-mi.com", "from-mn.com", "from-mo.com", "from-ms.com", "from-mt.com", "from-nc.com", "from-nd.com", "from-ne.com", "from-nh.com", "from-nj.com", "from-nm.com", "from-nv.com", "from-ny.net", "from-oh.com", "from-ok.com", "from-or.com", "from-pa.com", "from-pr.com", "from-ri.com", "from-sc.com", "from-sd.com", "from-tn.com", "from-tx.com", "from-ut.com", "from-va.com", "from-vt.com", "from-wa.com", "from-wi.com", "from-wv.com", "from-wy.com", "ftpaccess.cc", "fuettertdasnetz.de", "game-host.org", "game-server.cc", "getmyip.com", "gets-it.net", "go.dyndns.org", "gotdns.com", "gotdns.org", "groks-the.info", "groks-this.info", "ham-radio-op.net", "here-for-more.info", "hobby-site.com", "hobby-site.org", "home.dyndns.org", "homedns.org", "homeftp.net", "homeftp.org", "homeip.net", "homelinux.com", "homelinux.net", "homelinux.org", "homeunix.com", "homeunix.net", "homeunix.org", "iamallama.com", "in-the-band.net", "is-a-anarchist.com", "is-a-blogger.com", "is-a-bookkeeper.com", "is-a-bruinsfan.org", "is-a-bulls-fan.com", "is-a-candidate.org", "is-a-caterer.com", "is-a-celticsfan.org", "is-a-chef.com", "is-a-chef.net", "is-a-chef.org", "is-a-conservative.com", "is-a-cpa.com", "is-a-cubicle-slave.com", "is-a-democrat.com", "is-a-designer.com", "is-a-doctor.com", "is-a-financialadvisor.com", "is-a-geek.com", "is-a-geek.net", "is-a-geek.org", "is-a-green.com", "is-a-guru.com", "is-a-hard-worker.com", "is-a-hunter.com", "is-a-knight.org", "is-a-landscaper.com", "is-a-lawyer.com", "is-a-liberal.com", "is-a-libertarian.com", "is-a-linux-user.org", "is-a-llama.com", "is-a-musician.com", "is-a-nascarfan.com", "is-a-nurse.com", "is-a-painter.com", "is-a-patsfan.org", "is-a-personaltrainer.com", "is-a-photographer.com", "is-a-player.com", "is-a-republican.com", "is-a-rockstar.com", "is-a-socialist.com", "is-a-soxfan.org", "is-a-student.com", "is-a-teacher.com", "is-a-techie.com", "is-a-therapist.com", "is-an-accountant.com", "is-an-actor.com", "is-an-actress.com", "is-an-anarchist.com", "is-an-artist.com", "is-an-engineer.com", "is-an-entertainer.com", "is-by.us", "is-certified.com", "is-found.org", "is-gone.com", "is-into-anime.com", "is-into-cars.com", "is-into-cartoons.com", "is-into-games.com", "is-leet.com", "is-lost.org", "is-not-certified.com", "is-saved.org", "is-slick.com", "is-uberleet.com", "is-very-bad.org", "is-very-evil.org", "is-very-good.org", "is-very-nice.org", "is-very-sweet.org", "is-with-theband.com", "isa-geek.com", "isa-geek.net", "isa-geek.org", "isa-hockeynut.com", "issmarterthanyou.com", "isteingeek.de", "istmein.de", "kicks-ass.net", "kicks-ass.org", "knowsitall.info", "land-4-sale.us", "lebtimnetz.de", "leitungsen.de", "likes-pie.com", "likescandy.com", "merseine.nu", "mine.nu", "misconfused.org", "mypets.ws", "myphotos.cc", "neat-url.com", "office-on-the.net", "on-the-web.tv", "podzone.net", "podzone.org", "readmyblog.org", "saves-the-whales.com", "scrapper-site.net", "scrapping.cc", "selfip.biz", "selfip.com", "selfip.info", "selfip.net", "selfip.org", "sells-for-less.com", "sells-for-u.com", "sells-it.net", "sellsyourhome.org", "servebbs.com", "servebbs.net", "servebbs.org", "serveftp.net", "serveftp.org", "servegame.org", "shacknet.nu", "simple-url.com", "space-to-rent.com", "stuff-4-sale.org", "stuff-4-sale.us", "teaches-yoga.com", "thruhere.net", "traeumtgerade.de", "webhop.biz", "webhop.info", "webhop.net", "webhop.org", "worse-than.tv", "writesthisblog.com", "ddnss.de", "dyn.ddnss.de", "dyndns.ddnss.de", "dyndns1.de", "dyn-ip24.de", "home-webserver.de", "dyn.home-webserver.de", "myhome-server.de", "ddnss.org", "definima.net", "definima.io", "bci.dnstrace.pro", "ddnsfree.com", "ddnsgeek.com", "giize.com", "gleeze.com", "kozow.com", "loseyourip.com", "ooguy.com", "theworkpc.com", "casacam.net", "dynu.net", "accesscam.org", "camdvr.org", "freeddns.org", "mywire.org", "webredirect.org", "myddns.rocks", "blogsite.xyz", "dynv6.net", "e4.cz", "mytuleap.com", "onred.one", "staging.onred.one", "enonic.io", "customer.enonic.io", "eu.org", "al.eu.org", "asso.eu.org", "at.eu.org", "au.eu.org", "be.eu.org", "bg.eu.org", "ca.eu.org", "cd.eu.org", "ch.eu.org", "cn.eu.org", "cy.eu.org", "cz.eu.org", "de.eu.org", "dk.eu.org", "edu.eu.org", "ee.eu.org", "es.eu.org", "fi.eu.org", "fr.eu.org", "gr.eu.org", "hr.eu.org", "hu.eu.org", "ie.eu.org", "il.eu.org", "in.eu.org", "int.eu.org", "is.eu.org", "it.eu.org", "jp.eu.org", "kr.eu.org", "lt.eu.org", "lu.eu.org", "lv.eu.org", "mc.eu.org", "me.eu.org", "mk.eu.org", "mt.eu.org", "my.eu.org", "net.eu.org", "ng.eu.org", "nl.eu.org", "no.eu.org", "nz.eu.org", "paris.eu.org", "pl.eu.org", "pt.eu.org", "q-a.eu.org", "ro.eu.org", "ru.eu.org", "se.eu.org", "si.eu.org", "sk.eu.org", "tr.eu.org", "uk.eu.org", "us.eu.org", "eu-1.evennode.com", "eu-2.evennode.com", "eu-3.evennode.com", "eu-4.evennode.com", "us-1.evennode.com", "us-2.evennode.com", "us-3.evennode.com", "us-4.evennode.com", "twmail.cc", "twmail.net", "twmail.org", "mymailer.com.tw", "url.tw", "apps.fbsbx.com", "ru.net", "adygeya.ru", "bashkiria.ru", "bir.ru", "cbg.ru", "com.ru", "dagestan.ru", "grozny.ru", "kalmykia.ru", "kustanai.ru", "marine.ru", "mordovia.ru", "msk.ru", "mytis.ru", "nalchik.ru", "nov.ru", "pyatigorsk.ru", "spb.ru", "vladikavkaz.ru", "vladimir.ru", "abkhazia.su", "adygeya.su", "aktyubinsk.su", "arkhangelsk.su", "armenia.su", "ashgabad.su", "azerbaijan.su", "balashov.su", "bashkiria.su", "bryansk.su", "bukhara.su", "chimkent.su", "dagestan.su", "east-kazakhstan.su", "exnet.su", "georgia.su", "grozny.su", "ivanovo.su", "jambyl.su", "kalmykia.su", "kaluga.su", "karacol.su", "karaganda.su", "karelia.su", "khakassia.su", "krasnodar.su", "kurgan.su", "kustanai.su", "lenug.su", "mangyshlak.su", "mordovia.su", "msk.su", "murmansk.su", "nalchik.su", "navoi.su", "north-kazakhstan.su", "nov.su", "obninsk.su", "penza.su", "pokrovsk.su", "sochi.su", "spb.su", "tashkent.su", "termez.su", "togliatti.su", "troitsk.su", "tselinograd.su", "tula.su", "tuva.su", "vladikavkaz.su", "vladimir.su", "vologda.su", "channelsdvr.net", "fastly-terrarium.com", "fastlylb.net", "map.fastlylb.net", "freetls.fastly.net", "map.fastly.net", "a.prod.fastly.net", "global.prod.fastly.net", "a.ssl.fastly.net", "b.ssl.fastly.net", "global.ssl.fastly.net", "fastpanel.direct", "fastvps-server.com", "fhapp.xyz", "fedorainfracloud.org", "fedorapeople.org", "cloud.fedoraproject.org", "app.os.fedoraproject.org", "app.os.stg.fedoraproject.org", "mydobiss.com", "filegear.me", "filegear-au.me", "filegear-de.me", "filegear-gb.me", "filegear-ie.me", "filegear-jp.me", "filegear-sg.me", "firebaseapp.com", "flynnhub.com", "flynnhosting.net", "freebox-os.com", "freeboxos.com", "fbx-os.fr", "fbxos.fr", "freebox-os.fr", "freeboxos.fr", "freedesktop.org", "*.futurecms.at", "*.ex.futurecms.at", "*.in.futurecms.at", "futurehosting.at", "futuremailing.at", "*.ex.ortsinfo.at", "*.kunden.ortsinfo.at", "*.statics.cloud", "service.gov.uk", "gehirn.ne.jp", "usercontent.jp", "lab.ms", "github.io", "githubusercontent.com", "gitlab.io", "glitch.me", "cloudapps.digital", "london.cloudapps.digital", "homeoffice.gov.uk", "ro.im", "shop.ro", "goip.de", "run.app", "a.run.app", "*.0emm.com", "appspot.com", "blogspot.ae", "blogspot.al", "blogspot.am", "blogspot.ba", "blogspot.be", "blogspot.bg", "blogspot.bj", "blogspot.ca", "blogspot.cf", "blogspot.ch", "blogspot.cl", "blogspot.co.at", "blogspot.co.id", "blogspot.co.il", "blogspot.co.ke", "blogspot.co.nz", "blogspot.co.uk", "blogspot.co.za", "blogspot.com", "blogspot.com.ar", "blogspot.com.au", "blogspot.com.br", "blogspot.com.by", "blogspot.com.co", "blogspot.com.cy", "blogspot.com.ee", "blogspot.com.eg", "blogspot.com.es", "blogspot.com.mt", "blogspot.com.ng", "blogspot.com.tr", "blogspot.com.uy", "blogspot.cv", "blogspot.cz", "blogspot.de", "blogspot.dk", "blogspot.fi", "blogspot.fr", "blogspot.gr", "blogspot.hk", "blogspot.hr", "blogspot.hu", "blogspot.ie", "blogspot.in", "blogspot.is", "blogspot.it", "blogspot.jp", "blogspot.kr", "blogspot.li", "blogspot.lt", "blogspot.lu", "blogspot.md", "blogspot.mk", "blogspot.mr", "blogspot.mx", "blogspot.my", "blogspot.nl", "blogspot.no", "blogspot.pe", "blogspot.pt", "blogspot.qa", "blogspot.re", "blogspot.ro", "blogspot.rs", "blogspot.ru", "blogspot.se", "blogspot.sg", "blogspot.si", "blogspot.sk", "blogspot.sn", "blogspot.td", "blogspot.tw", "blogspot.ug", "blogspot.vn", "cloudfunctions.net", "cloud.goog", "codespot.com", "googleapis.com", "googlecode.com", "pagespeedmobilizer.com", "publishproxy.com", "withgoogle.com", "withyoutube.com", "fin.ci", "free.hr", "caa.li", "ua.rs", "conf.se", "hashbang.sh", "hasura.app", "hasura-app.io", "hepforge.org", "herokuapp.com", "herokussl.com", "myravendb.com", "ravendb.community", "ravendb.me", "development.run", "ravendb.run", "bpl.biz", "orx.biz", "ng.city", "ng.ink", "biz.gl", "col.ng", "gen.ng", "ltd.ng", "sch.so", "häkkinen.fi", "*.moonscale.io", "moonscale.net", "iki.fi", "dyn-berlin.de", "in-berlin.de", "in-brb.de", "in-butter.de", "in-dsl.de", "in-dsl.net", "in-dsl.org", "in-vpn.de", "in-vpn.net", "in-vpn.org", "biz.at", "info.at", "info.cx", "ac.leg.br", "al.leg.br", "am.leg.br", "ap.leg.br", "ba.leg.br", "ce.leg.br", "df.leg.br", "es.leg.br", "go.leg.br", "ma.leg.br", "mg.leg.br", "ms.leg.br", "mt.leg.br", "pa.leg.br", "pb.leg.br", "pe.leg.br", "pi.leg.br", "pr.leg.br", "rj.leg.br", "rn.leg.br", "ro.leg.br", "rr.leg.br", "rs.leg.br", "sc.leg.br", "se.leg.br", "sp.leg.br", "to.leg.br", "pixolino.com", "ipifony.net", "mein-iserv.de", "test-iserv.de", "myjino.ru", "*.hosting.myjino.ru", "*.landing.myjino.ru", "*.spectrum.myjino.ru", "*.vps.myjino.ru", "*.triton.zone", "*.cns.joyent.com", "js.org", "kaas.gg", "khplay.nl", "keymachine.de", "knightpoint.systems", "co.krd", "edu.krd", "git-repos.de", "lcube-server.de", "svn-repos.de", "leadpages.co", "lpages.co", "lpusercontent.com", "co.business", "co.education", "co.events", "co.financial", "co.network", "co.place", "co.technology", "app.lmpm.com", "linkitools.space", "linkyard.cloud", "linkyard-cloud.ch", "members.linode.com", "nodebalancer.linode.com", "we.bs", "loginline.app", "loginline.dev", "loginline.io", "loginline.services", "loginline.site", "krasnik.pl", "leczna.pl", "lubartow.pl", "lublin.pl", "poniatowa.pl", "swidnik.pl", "uklugs.org", "glug.org.uk", "lug.org.uk", "lugs.org.uk", "barsy.bg", "barsy.co.uk", "barsyonline.co.uk", "barsycenter.com", "barsyonline.com", "barsy.club", "barsy.de", "barsy.eu", "barsy.in", "barsy.info", "barsy.io", "barsy.me", "barsy.menu", "barsy.mobi", "barsy.net", "barsy.online", "barsy.org", "barsy.pro", "barsy.pub", "barsy.shop", "barsy.site", "barsy.support", "barsy.uk", "*.magentosite.cloud", "mayfirst.info", "mayfirst.org", "hb.cldmail.ru", "miniserver.com", "memset.net", "cloud.metacentrum.cz", "custom.metacentrum.cz", "flt.cloud.muni.cz", "usr.cloud.muni.cz", "meteorapp.com", "eu.meteorapp.com", "co.pl", "azurecontainer.io", "azurewebsites.net", "azure-mobile.net", "cloudapp.net", "mozilla-iot.org", "bmoattachments.org", "net.ru", "org.ru", "pp.ru", "ui.nabu.casa", "pony.club", "of.fashion", "on.fashion", "of.football", "in.london", "of.london", "for.men", "and.mom", "for.mom", "for.one", "for.sale", "of.work", "to.work", "nctu.me", "bitballoon.com", "netlify.com", "4u.com", "ngrok.io", "nh-serv.co.uk", "nfshost.com", "dnsking.ch", "mypi.co", "n4t.co", "001www.com", "ddnslive.com", "myiphost.com", "forumz.info", "16-b.it", "32-b.it", "64-b.it", "soundcast.me", "tcp4.me", "dnsup.net", "hicam.net", "now-dns.net", "ownip.net", "vpndns.net", "dynserv.org", "now-dns.org", "x443.pw", "now-dns.top", "ntdll.top", "freeddns.us", "crafting.xyz", "zapto.xyz", "nsupdate.info", "nerdpol.ovh", "blogsyte.com", "brasilia.me", "cable-modem.org", "ciscofreak.com", "collegefan.org", "couchpotatofries.org", "damnserver.com", "ddns.me", "ditchyourip.com", "dnsfor.me", "dnsiskinky.com", "dvrcam.info", "dynns.com", "eating-organic.net", "fantasyleague.cc", "geekgalaxy.com", "golffan.us", "health-carereform.com", "homesecuritymac.com", "homesecuritypc.com", "hopto.me", "ilovecollege.info", "loginto.me", "mlbfan.org", "mmafan.biz", "myactivedirectory.com", "mydissent.net", "myeffect.net", "mymediapc.net", "mypsx.net", "mysecuritycamera.com", "mysecuritycamera.net", "mysecuritycamera.org", "net-freaks.com", "nflfan.org", "nhlfan.net", "no-ip.ca", "no-ip.co.uk", "no-ip.net", "noip.us", "onthewifi.com", "pgafan.net", "point2this.com", "pointto.us", "privatizehealthinsurance.net", "quicksytes.com", "read-books.org", "securitytactics.com", "serveexchange.com", "servehumour.com", "servep2p.com", "servesarcasm.com", "stufftoread.com", "ufcfan.org", "unusualperson.com", "workisboring.com", "3utilities.com", "bounceme.net", "ddns.net", "ddnsking.com", "gotdns.ch", "hopto.org", "myftp.biz", "myftp.org", "myvnc.com", "no-ip.biz", "no-ip.info", "no-ip.org", "noip.me", "redirectme.net", "servebeer.com", "serveblog.net", "servecounterstrike.com", "serveftp.com", "servegame.com", "servehalflife.com", "servehttp.com", "serveirc.com", "serveminecraft.net", "servemp3.com", "servepics.com", "servequake.com", "sytes.net", "webhop.me", "zapto.org", "stage.nodeart.io", "nodum.co", "nodum.io", "pcloud.host", "nyc.mn", "nom.ae", "nom.af", "nom.ai", "nom.al", "nym.by", "nym.bz", "nom.cl", "nom.gd", "nom.ge", "nom.gl", "nym.gr", "nom.gt", "nym.gy", "nom.hn", "nym.ie", "nom.im", "nom.ke", "nym.kz", "nym.la", "nym.lc", "nom.li", "nym.li", "nym.lt", "nym.lu", "nym.me", "nom.mk", "nym.mn", "nym.mx", "nom.nu", "nym.nz", "nym.pe", "nym.pt", "nom.pw", "nom.qa", "nym.ro", "nom.rs", "nom.si", "nym.sk", "nom.st", "nym.su", "nym.sx", "nom.tj", "nym.tw", "nom.ug", "nom.uy", "nom.vc", "nom.vg", "cya.gg", "cloudycluster.net", "nid.io", "opencraft.hosting", "operaunite.com", "outsystemscloud.com", "ownprovider.com", "own.pm", "ox.rs", "oy.lc", "pgfog.com", "pagefrontapp.com", "art.pl", "gliwice.pl", "krakow.pl", "poznan.pl", "wroc.pl", "zakopane.pl", "pantheonsite.io", "gotpantheon.com", "mypep.link", "on-web.fr", "*.platform.sh", "*.platformsh.site", "co.bn", "xen.prgmr.com", "priv.at", "prvcy.page", "*.dweb.link", "protonet.io", "chirurgiens-dentistes-en-france.fr", "byen.site", "instantcloud.cn", "ras.ru", "qa2.com", "dev-myqnapcloud.com", "alpha-myqnapcloud.com", "myqnapcloud.com", "*.quipelements.com", "vapor.cloud", "vaporcloud.io", "rackmaze.com", "rackmaze.net", "*.on-rancher.cloud", "*.on-rio.io", "readthedocs.io", "rhcloud.com", "app.render.com", "onrender.com", "repl.co", "repl.run", "resindevice.io", "devices.resinstaging.io", "hzc.io", "wellbeingzone.eu", "ptplus.fit", "wellbeingzone.co.uk", "git-pages.rit.edu", "sandcats.io", "logoip.de", "logoip.com", "schokokeks.net", "scrysec.com", "firewall-gateway.com", "firewall-gateway.de", "my-gateway.de", "my-router.de", "spdns.de", "spdns.eu", "firewall-gateway.net", "my-firewall.org", "myfirewall.org", "spdns.org", "*.s5y.io", "*.sensiosite.cloud", "biz.ua", "co.ua", "pp.ua", "shiftedit.io", "myshopblocks.com", "mo-siemens.io", "1kapp.com", "appchizi.com", "applinzi.com", "sinaapp.com", "vipsinaapp.com", "siteleaf.net", "bounty-full.com", "alpha.bounty-full.com", "beta.bounty-full.com", "stackhero-network.com", "static.land", "dev.static.land", "sites.static.land", "apps.lair.io", "*.stolos.io", "spacekit.io", "customer.speedpartner.de", "api.stdlib.com", "storj.farm", "utwente.io", "soc.srcf.net", "user.srcf.net", "temp-dns.com", "applicationcloud.io", "scapp.io", "syncloud.it", "diskstation.me", "dscloud.biz", "dscloud.me", "dscloud.mobi", "dsmynas.com", "dsmynas.net", "dsmynas.org", "familyds.com", "familyds.net", "familyds.org", "i234.me", "myds.me", "synology.me", "vpnplus.to", "taifun-dns.de", "gda.pl", "gdansk.pl", "gdynia.pl", "med.pl", "sopot.pl", "edugit.org", "telebit.app", "telebit.io", "*.telebit.xyz", "gwiddle.co.uk", "thingdustdata.com", "cust.dev.thingdust.io", "cust.disrec.thingdust.io", "cust.prod.thingdust.io", "cust.testing.thingdust.io", "arvo.network", "azimuth.network", "bloxcms.com", "townnews-staging.com", "12hp.at", "2ix.at", "4lima.at", "lima-city.at", "12hp.ch", "2ix.ch", "4lima.ch", "lima-city.ch", "trafficplex.cloud", "de.cool", "12hp.de", "2ix.de", "4lima.de", "lima-city.de", "1337.pictures", "clan.rip", "lima-city.rocks", "webspace.rocks", "lima.zone", "*.transurl.be", "*.transurl.eu", "*.transurl.nl", "tuxfamily.org", "dd-dns.de", "diskstation.eu", "diskstation.org", "dray-dns.de", "draydns.de", "dyn-vpn.de", "dynvpn.de", "mein-vigor.de", "my-vigor.de", "my-wan.de", "syno-ds.de", "synology-diskstation.de", "synology-ds.de", "uber.space", "*.uberspace.de", "hk.com", "hk.org", "ltd.hk", "inc.hk", "virtualuser.de", "virtual-user.de", "lib.de.us", "2038.io", "router.management", "v-info.info", "voorloper.cloud", "wafflecell.com", "wedeploy.io", "wedeploy.me", "wedeploy.sh", "remotewd.com", "wmflabs.org", "half.host", "xnbay.com", "u2.xnbay.com", "u2-local.xnbay.com", "cistron.nl", "demon.nl", "xs4all.space", "official.academy", "yolasite.com", "ybo.faith", "yombo.me", "homelink.one", "ybo.party", "ybo.review", "ybo.science", "ybo.trade", "nohost.me", "noho.st", "za.net", "za.org", "now.sh", "bss.design", "basicserver.io", "virtualserver.io", "site.builder.nu", "enterprisecloud.nu", "zone.id" ]; +}, function(module, exports, __webpack_require__) { + "use strict"; + var Store = __webpack_require__(476).Store, permuteDomain = __webpack_require__(477).permuteDomain, pathMatch = __webpack_require__(478).pathMatch, util = __webpack_require__(0); + function MemoryCookieStore() { + Store.call(this), this.idx = {}; + } + util.inherits(MemoryCookieStore, Store), exports.MemoryCookieStore = MemoryCookieStore, + MemoryCookieStore.prototype.idx = null, MemoryCookieStore.prototype.synchronous = !0, + MemoryCookieStore.prototype.inspect = function() { + return "{ idx: " + util.inspect(this.idx, !1, 2) + " }"; + }, util.inspect.custom && (MemoryCookieStore.prototype[util.inspect.custom] = MemoryCookieStore.prototype.inspect), + MemoryCookieStore.prototype.findCookie = function(domain, path, key, cb) { + return this.idx[domain] && this.idx[domain][path] ? cb(null, this.idx[domain][path][key] || null) : cb(null, void 0); + }, MemoryCookieStore.prototype.findCookies = function(domain, path, cb) { + var pathMatcher, results = []; + if (!domain) return cb(null, []); + pathMatcher = path ? function(domainIndex) { + Object.keys(domainIndex).forEach((function(cookiePath) { + if (pathMatch(path, cookiePath)) { + var pathIndex = domainIndex[cookiePath]; + for (var key in pathIndex) results.push(pathIndex[key]); + } + })); + } : function(domainIndex) { + for (var curPath in domainIndex) { + var pathIndex = domainIndex[curPath]; + for (var key in pathIndex) results.push(pathIndex[key]); + } + }; + var domains = permuteDomain(domain) || [ domain ], idx = this.idx; + domains.forEach((function(curDomain) { + var domainIndex = idx[curDomain]; + domainIndex && pathMatcher(domainIndex); + })), cb(null, results); + }, MemoryCookieStore.prototype.putCookie = function(cookie, cb) { + this.idx[cookie.domain] || (this.idx[cookie.domain] = {}), this.idx[cookie.domain][cookie.path] || (this.idx[cookie.domain][cookie.path] = {}), + this.idx[cookie.domain][cookie.path][cookie.key] = cookie, cb(null); + }, MemoryCookieStore.prototype.updateCookie = function(oldCookie, newCookie, cb) { + this.putCookie(newCookie, cb); + }, MemoryCookieStore.prototype.removeCookie = function(domain, path, key, cb) { + this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key] && delete this.idx[domain][path][key], + cb(null); + }, MemoryCookieStore.prototype.removeCookies = function(domain, path, cb) { + return this.idx[domain] && (path ? delete this.idx[domain][path] : delete this.idx[domain]), + cb(null); + }, MemoryCookieStore.prototype.getAllCookies = function(cb) { + var cookies = [], idx = this.idx; + Object.keys(idx).forEach((function(domain) { + Object.keys(idx[domain]).forEach((function(path) { + Object.keys(idx[domain][path]).forEach((function(key) { + null !== key && cookies.push(idx[domain][path][key]); + })); + })); + })), cookies.sort((function(a, b) { + return (a.creationIndex || 0) - (b.creationIndex || 0); + })), cb(null, cookies); + }; +}, function(module) { + module.exports = { + author: { + name: "Jeremy Stashewsky", + email: "jstash@gmail.com", + website: "https://github.com/stash" + }, + contributors: [ { + name: "Alexander Savin", + website: "https://github.com/apsavin" + }, { + name: "Ian Livingstone", + website: "https://github.com/ianlivingstone" + }, { + name: "Ivan Nikulin", + website: "https://github.com/inikulin" + }, { + name: "Lalit Kapoor", + website: "https://github.com/lalitkapoor" + }, { + name: "Sam Thompson", + website: "https://github.com/sambthompson" + }, { + name: "Sebastian Mayr", + website: "https://github.com/Sebmaster" + } ], + license: "BSD-3-Clause", + name: "tough-cookie", + description: "RFC6265 Cookies and Cookie Jar for node.js", + keywords: [ "HTTP", "cookie", "cookies", "set-cookie", "cookiejar", "jar", "RFC6265", "RFC2965" ], + version: "2.4.3", + homepage: "https://github.com/salesforce/tough-cookie", + repository: { + type: "git", + url: "git://github.com/salesforce/tough-cookie.git" + }, + bugs: { + url: "https://github.com/salesforce/tough-cookie/issues" + }, + main: "./lib/cookie", + files: [ "lib" ], + scripts: { + test: "vows test/*_test.js", + cover: "nyc --reporter=lcov --reporter=html vows test/*_test.js" + }, + engines: { + node: ">=0.8" + }, + devDependencies: { + async: "^1.4.2", + nyc: "^11.6.0", + "string.prototype.repeat": "^0.2.0", + vows: "^0.8.1" + }, + dependencies: { + psl: "^1.1.24", + punycode: "^1.4.1" + } + }; +}, function(module, exports) { + function serializer(replacer, cycleReplacer) { + var stack = [], keys = []; + return null == cycleReplacer && (cycleReplacer = function(key, value) { + return stack[0] === value ? "[Circular ~]" : "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"; + }), function(key, value) { + if (stack.length > 0) { + var thisPos = stack.indexOf(this); + ~thisPos ? stack.splice(thisPos + 1) : stack.push(this), ~thisPos ? keys.splice(thisPos, 1 / 0, key) : keys.push(key), + ~stack.indexOf(value) && (value = cycleReplacer.call(this, key, value)); + } else stack.push(value); + return null == replacer ? value : replacer.call(this, key, value); + }; + } + (module.exports = function(obj, replacer, spaces, cycleReplacer) { + return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces); + }).getSerialize = serializer; +}, function(module, exports, __webpack_require__) { + "use strict"; + var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), util = __webpack_require__(0), stream = __webpack_require__(3), zlib = __webpack_require__(45), aws2 = __webpack_require__(1049), aws4 = __webpack_require__(1050), httpSignature = __webpack_require__(1052), mime = __webpack_require__(89), caseless = __webpack_require__(236), ForeverAgent = __webpack_require__(1069), FormData = __webpack_require__(1070), extend = __webpack_require__(147), isstream = __webpack_require__(492), isTypedArray = __webpack_require__(168).strict, helpers = __webpack_require__(229), cookies = __webpack_require__(473), getProxyFromURI = __webpack_require__(1077), Querystring = __webpack_require__(1078).Querystring, Har = __webpack_require__(1081).Har, Auth = __webpack_require__(1137).Auth, OAuth = __webpack_require__(1138).OAuth, hawk = __webpack_require__(1140), Multipart = __webpack_require__(1141).Multipart, Redirect = __webpack_require__(1142).Redirect, Tunnel = __webpack_require__(1143).Tunnel, now = __webpack_require__(1145), Buffer = __webpack_require__(25).Buffer, safeStringify = helpers.safeStringify, isReadStream = helpers.isReadStream, toBase64 = helpers.toBase64, defer = helpers.defer, copy = helpers.copy, version = helpers.version, globalCookieJar = cookies.jar(), globalPool = {}; + function requestToJSON() { + return { + uri: this.uri, + method: this.method, + headers: this.headers + }; + } + function responseToJSON() { + return { + statusCode: this.statusCode, + body: this.body, + headers: this.headers, + request: requestToJSON.call(this.request) + }; + } + function Request(options) { + options.har && (this._har = new Har(this), options = this._har.options(options)), + stream.Stream.call(this); + var reserved = Object.keys(Request.prototype), nonReserved = (function(reserved, options) { + var object = {}; + for (var i in options) -1 === reserved.indexOf(i) && (object[i] = options[i]); + return object; + })(reserved, options); + extend(this, nonReserved), options = (function(reserved, options) { + var object = {}; + for (var i in options) { + var isReserved = !(-1 === reserved.indexOf(i)), isFunction = "function" == typeof options[i]; + isReserved && isFunction || (object[i] = options[i]); + } + return object; + })(reserved, options), this.readable = !0, this.writable = !0, options.method && (this.explicitMethod = !0), + this._qs = new Querystring(this), this._auth = new Auth(this), this._oauth = new OAuth(this), + this._multipart = new Multipart(this), this._redirect = new Redirect(this), this._tunnel = new Tunnel(this), + this.init(options); + } + function debug() { + Request.debug && console.error("REQUEST %s", util.format.apply(util, arguments)); + } + util.inherits(Request, stream.Stream), Request.debug = process.env.NODE_DEBUG && /\brequest\b/.test(process.env.NODE_DEBUG), + Request.prototype.debug = debug, Request.prototype.init = function(options) { + var self = this; + for (var headerName in options || (options = {}), self.headers = self.headers ? copy(self.headers) : {}, + self.headers) void 0 === self.headers[headerName] && delete self.headers[headerName]; + if (caseless.httpify(self, self.headers), self.method || (self.method = options.method || "GET"), + self.localAddress || (self.localAddress = options.localAddress), self._qs.init(options), + debug(options), self.pool || !1 === self.pool || (self.pool = globalPool), self.dests = self.dests || [], + self.__isRequestRequest = !0, !self._callback && self.callback && (self._callback = self.callback, + self.callback = function() { + self._callbackCalled || (self._callbackCalled = !0, self._callback.apply(self, arguments)); + }, self.on("error", self.callback.bind()), self.on("complete", self.callback.bind(self, null))), + !self.uri && self.url && (self.uri = self.url, delete self.url), self.baseUrl) { + if ("string" != typeof self.baseUrl) return self.emit("error", new Error("options.baseUrl must be a string")); + if ("string" != typeof self.uri) return self.emit("error", new Error("options.uri must be a string when using options.baseUrl")); + if (0 === self.uri.indexOf("//") || -1 !== self.uri.indexOf("://")) return self.emit("error", new Error("options.uri must be a path when using options.baseUrl")); + var baseUrlEndsWithSlash = self.baseUrl.lastIndexOf("/") === self.baseUrl.length - 1, uriStartsWithSlash = 0 === self.uri.indexOf("/"); + baseUrlEndsWithSlash && uriStartsWithSlash ? self.uri = self.baseUrl + self.uri.slice(1) : baseUrlEndsWithSlash || uriStartsWithSlash ? self.uri = self.baseUrl + self.uri : "" === self.uri ? self.uri = self.baseUrl : self.uri = self.baseUrl + "/" + self.uri, + delete self.baseUrl; + } + if (!self.uri) return self.emit("error", new Error("options.uri is a required argument")); + if ("string" == typeof self.uri && (self.uri = url.parse(self.uri)), self.uri.href || (self.uri.href = url.format(self.uri)), + "unix:" === self.uri.protocol) return self.emit("error", new Error("`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`")); + if ("unix" === self.uri.host && self.enableUnixSocket(), !1 === self.strictSSL && (self.rejectUnauthorized = !1), + self.uri.pathname || (self.uri.pathname = "/"), !(self.uri.host || self.uri.hostname && self.uri.port || self.uri.isUnix)) { + var message = 'Invalid URI "' + url.format(self.uri) + '"'; + return 0 === Object.keys(options).length && (message += ". This can be caused by a crappy redirection."), + self.abort(), self.emit("error", new Error(message)); + } + if (self.hasOwnProperty("proxy") || (self.proxy = getProxyFromURI(self.uri)), self.tunnel = self._tunnel.isEnabled(), + self.proxy && self._tunnel.setup(options), self._redirect.onRequest(options), self.setHost = !1, + !self.hasHeader("host")) { + var hostHeaderName = self.originalHostHeaderName || "host"; + self.setHeader(hostHeaderName, self.uri.host), self.uri.port && ("80" === self.uri.port && "http:" === self.uri.protocol || "443" === self.uri.port && "https:" === self.uri.protocol) && self.setHeader(hostHeaderName, self.uri.hostname), + self.setHost = !0; + } + if (self.jar(self._jar || options.jar), self.uri.port || ("http:" === self.uri.protocol ? self.uri.port = 80 : "https:" === self.uri.protocol && (self.uri.port = 443)), + self.proxy && !self.tunnel ? (self.port = self.proxy.port, self.host = self.proxy.hostname) : (self.port = self.uri.port, + self.host = self.uri.hostname), options.form && self.form(options.form), options.formData) { + var formData = options.formData, requestForm = self.form(), appendFormValue = function(key, value) { + value && value.hasOwnProperty("value") && value.hasOwnProperty("options") ? requestForm.append(key, value.value, value.options) : requestForm.append(key, value); + }; + for (var formKey in formData) if (formData.hasOwnProperty(formKey)) { + var formValue = formData[formKey]; + if (formValue instanceof Array) for (var j = 0; j < formValue.length; j++) appendFormValue(formKey, formValue[j]); else appendFormValue(formKey, formValue); + } + } + if (options.qs && self.qs(options.qs), self.uri.path ? self.path = self.uri.path : self.path = self.uri.pathname + (self.uri.search || ""), + 0 === self.path.length && (self.path = "/"), options.aws && self.aws(options.aws), + options.hawk && self.hawk(options.hawk), options.httpSignature && self.httpSignature(options.httpSignature), + options.auth && (Object.prototype.hasOwnProperty.call(options.auth, "username") && (options.auth.user = options.auth.username), + Object.prototype.hasOwnProperty.call(options.auth, "password") && (options.auth.pass = options.auth.password), + self.auth(options.auth.user, options.auth.pass, options.auth.sendImmediately, options.auth.bearer)), + self.gzip && !self.hasHeader("accept-encoding") && self.setHeader("accept-encoding", "gzip, deflate"), + self.uri.auth && !self.hasHeader("authorization")) { + var uriAuthPieces = self.uri.auth.split(":").map((function(item) { + return self._qs.unescape(item); + })); + self.auth(uriAuthPieces[0], uriAuthPieces.slice(1).join(":"), !0); + } + if (!self.tunnel && self.proxy && self.proxy.auth && !self.hasHeader("proxy-authorization")) { + var proxyAuthPieces = self.proxy.auth.split(":").map((function(item) { + return self._qs.unescape(item); + })), authHeader = "Basic " + toBase64(proxyAuthPieces.join(":")); + self.setHeader("proxy-authorization", authHeader); + } + function setContentLength() { + var length; + isTypedArray(self.body) && (self.body = Buffer.from(self.body)), self.hasHeader("content-length") || ((length = "string" == typeof self.body ? Buffer.byteLength(self.body) : Array.isArray(self.body) ? self.body.reduce((function(a, b) { + return a + b.length; + }), 0) : self.body.length) ? self.setHeader("content-length", length) : self.emit("error", new Error("Argument error, options.body."))); + } + self.proxy && !self.tunnel && (self.path = self.uri.protocol + "//" + self.uri.host + self.path), + options.json && self.json(options.json), options.multipart && self.multipart(options.multipart), + options.time && (self.timing = !0, self.elapsedTime = self.elapsedTime || 0), self.body && !isstream(self.body) && setContentLength(), + options.oauth ? self.oauth(options.oauth) : self._oauth.params && self.hasHeader("authorization") && self.oauth(self._oauth.params); + var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol, defaultModules = { + "http:": http, + "https:": https + }, httpModules = self.httpModules || {}; + if (self.httpModule = httpModules[protocol] || defaultModules[protocol], !self.httpModule) return self.emit("error", new Error("Invalid protocol: " + protocol)); + if (options.ca && (self.ca = options.ca), !self.agent) if (options.agentOptions && (self.agentOptions = options.agentOptions), + options.agentClass) self.agentClass = options.agentClass; else if (options.forever) { + var v = version(); + 0 === v.major && v.minor <= 10 ? self.agentClass = "http:" === protocol ? ForeverAgent : ForeverAgent.SSL : (self.agentClass = self.httpModule.Agent, + self.agentOptions = self.agentOptions || {}, self.agentOptions.keepAlive = !0); + } else self.agentClass = self.httpModule.Agent; + !1 === self.pool ? self.agent = !1 : self.agent = self.agent || self.getNewAgent(), + self.on("pipe", (function(src) { + if (self.ntick && self._started && self.emit("error", new Error("You cannot pipe to this stream after the outbound request has started.")), + self.src = src, isReadStream(src)) self.hasHeader("content-type") || self.setHeader("content-type", mime.lookup(src.path)); else { + if (src.headers) for (var i in src.headers) self.hasHeader(i) || self.setHeader(i, src.headers[i]); + self._json && !self.hasHeader("content-type") && self.setHeader("content-type", "application/json"), + src.method && !self.explicitMethod && (self.method = src.method); + } + })), defer((function() { + if (!self._aborted) { + var end = function() { + if (self._form && (self._auth.hasAuth ? self._auth.hasAuth && self._auth.sentAuth && self._form.pipe(self) : self._form.pipe(self)), + self._multipart && self._multipart.chunked && self._multipart.body.pipe(self), self.body) isstream(self.body) ? self.body.pipe(self) : (setContentLength(), + Array.isArray(self.body) ? self.body.forEach((function(part) { + self.write(part); + })) : self.write(self.body), self.end()); else if (self.requestBodyStream) console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe."), + self.requestBodyStream.pipe(self); else if (!self.src) { + if (self._auth.hasAuth && !self._auth.sentAuth) return void self.end(); + "GET" !== self.method && void 0 !== self.method && self.setHeader("content-length", 0), + self.end(); + } + }; + self._form && !self.hasHeader("content-length") ? (self.setHeader(self._form.getHeaders(), !0), + self._form.getLength((function(err, length) { + err || isNaN(length) || self.setHeader("content-length", length), end(); + }))) : end(), self.ntick = !0; + } + })); + }, Request.prototype.getNewAgent = function() { + var Agent = this.agentClass, options = {}; + if (this.agentOptions) for (var i in this.agentOptions) options[i] = this.agentOptions[i]; + this.ca && (options.ca = this.ca), this.ciphers && (options.ciphers = this.ciphers), + this.secureProtocol && (options.secureProtocol = this.secureProtocol), this.secureOptions && (options.secureOptions = this.secureOptions), + void 0 !== this.rejectUnauthorized && (options.rejectUnauthorized = this.rejectUnauthorized), + this.cert && this.key && (options.key = this.key, options.cert = this.cert), this.pfx && (options.pfx = this.pfx), + this.passphrase && (options.passphrase = this.passphrase); + var poolKey = ""; + Agent !== this.httpModule.Agent && (poolKey += Agent.name); + var proxy = this.proxy; + return "string" == typeof proxy && (proxy = url.parse(proxy)), (proxy && "https:" === proxy.protocol || "https:" === this.uri.protocol) && (options.ca && (poolKey && (poolKey += ":"), + poolKey += options.ca), void 0 !== options.rejectUnauthorized && (poolKey && (poolKey += ":"), + poolKey += options.rejectUnauthorized), options.cert && (poolKey && (poolKey += ":"), + poolKey += options.cert.toString("ascii") + options.key.toString("ascii")), options.pfx && (poolKey && (poolKey += ":"), + poolKey += options.pfx.toString("ascii")), options.ciphers && (poolKey && (poolKey += ":"), + poolKey += options.ciphers), options.secureProtocol && (poolKey && (poolKey += ":"), + poolKey += options.secureProtocol), options.secureOptions && (poolKey && (poolKey += ":"), + poolKey += options.secureOptions)), this.pool === globalPool && !poolKey && 0 === Object.keys(options).length && this.httpModule.globalAgent ? this.httpModule.globalAgent : (poolKey = this.uri.protocol + poolKey, + this.pool[poolKey] || (this.pool[poolKey] = new Agent(options), this.pool.maxSockets && (this.pool[poolKey].maxSockets = this.pool.maxSockets)), + this.pool[poolKey]); + }, Request.prototype.start = function() { + var self = this; + if (self.timing) var startTime = (new Date).getTime(), startTimeNow = now(); + if (!self._aborted) { + self._started = !0, self.method = self.method || "GET", self.href = self.uri.href, + self.src && self.src.stat && self.src.stat.size && !self.hasHeader("content-length") && self.setHeader("content-length", self.src.stat.size), + self._aws && self.aws(self._aws, !0); + var timeout, reqOptions = copy(self); + delete reqOptions.auth, debug("make request", self.uri.href), delete reqOptions.timeout; + try { + self.req = self.httpModule.request(reqOptions); + } catch (err) { + return void self.emit("error", err); + } + self.timing && (self.startTime = startTime, self.startTimeNow = startTimeNow, self.timings = {}), + self.timeout && !self.timeoutTimer && (self.timeout < 0 ? timeout = 0 : "number" == typeof self.timeout && isFinite(self.timeout) && (timeout = self.timeout)), + self.req.on("response", self.onRequestResponse.bind(self)), self.req.on("error", self.onRequestError.bind(self)), + self.req.on("drain", (function() { + self.emit("drain"); + })), self.req.on("socket", (function(socket) { + var isConnecting = socket._connecting || socket.connecting; + if (self.timing && (self.timings.socket = now() - self.startTimeNow, isConnecting)) { + var onLookupTiming = function() { + self.timings.lookup = now() - self.startTimeNow; + }, onConnectTiming = function() { + self.timings.connect = now() - self.startTimeNow; + }; + socket.once("lookup", onLookupTiming), socket.once("connect", onConnectTiming), + self.req.once("error", (function() { + socket.removeListener("lookup", onLookupTiming), socket.removeListener("connect", onConnectTiming); + })); + } + var setReqTimeout = function() { + self.req.setTimeout(timeout, (function() { + if (self.req) { + self.abort(); + var e = new Error("ESOCKETTIMEDOUT"); + e.code = "ESOCKETTIMEDOUT", e.connect = !1, self.emit("error", e); + } + })); + }; + if (void 0 !== timeout) if (isConnecting) { + var onReqSockConnect = function() { + socket.removeListener("connect", onReqSockConnect), clearTimeout(self.timeoutTimer), + self.timeoutTimer = null, setReqTimeout(); + }; + socket.on("connect", onReqSockConnect), self.req.on("error", (function(err) { + socket.removeListener("connect", onReqSockConnect); + })), self.timeoutTimer = setTimeout((function() { + socket.removeListener("connect", onReqSockConnect), self.abort(); + var e = new Error("ETIMEDOUT"); + e.code = "ETIMEDOUT", e.connect = !0, self.emit("error", e); + }), timeout); + } else setReqTimeout(); + self.emit("socket", socket); + })), self.emit("request", self.req); + } + }, Request.prototype.onRequestError = function(error) { + if (!this._aborted) { + if (this.req && this.req._reusedSocket && "ECONNRESET" === error.code && this.agent.addRequestNoreuse) return this.agent = { + addRequest: this.agent.addRequestNoreuse.bind(this.agent) + }, this.start(), void this.req.end(); + this.timeout && this.timeoutTimer && (clearTimeout(this.timeoutTimer), this.timeoutTimer = null), + this.emit("error", error); + } + }, Request.prototype.onRequestResponse = function(response) { + var self = this; + if (self.timing && (self.timings.response = now() - self.startTimeNow), debug("onRequestResponse", self.uri.href, response.statusCode, response.headers), + response.on("end", (function() { + self.timing && (self.timings.end = now() - self.startTimeNow, response.timingStart = self.startTime, + self.timings.socket || (self.timings.socket = 0), self.timings.lookup || (self.timings.lookup = self.timings.socket), + self.timings.connect || (self.timings.connect = self.timings.lookup), self.timings.response || (self.timings.response = self.timings.connect), + debug("elapsed time", self.timings.end), self.elapsedTime += Math.round(self.timings.end), + response.elapsedTime = self.elapsedTime, response.timings = self.timings, response.timingPhases = { + wait: self.timings.socket, + dns: self.timings.lookup - self.timings.socket, + tcp: self.timings.connect - self.timings.lookup, + firstByte: self.timings.response - self.timings.connect, + download: self.timings.end - self.timings.response, + total: self.timings.end + }), debug("response end", self.uri.href, response.statusCode, response.headers); + })), self._aborted) return debug("aborted", self.uri.href), void response.resume(); + if (self.response = response, response.request = self, response.toJSON = responseToJSON, + self.httpModule !== https || !self.strictSSL || response.hasOwnProperty("socket") && response.socket.authorized) { + self.originalHost = self.getHeader("host"), self.originalHostHeaderName || (self.originalHostHeaderName = self.hasHeader("host")), + self.setHost && self.removeHeader("host"), self.timeout && self.timeoutTimer && (clearTimeout(self.timeoutTimer), + self.timeoutTimer = null); + var targetCookieJar = self._jar && self._jar.setCookie ? self._jar : globalCookieJar, addCookie = function(cookie) { + try { + targetCookieJar.setCookie(cookie, self.uri.href, { + ignoreError: !0 + }); + } catch (e) { + self.emit("error", e); + } + }; + if (response.caseless = caseless(response.headers), response.caseless.has("set-cookie") && !self._disableCookies) { + var headerName = response.caseless.has("set-cookie"); + Array.isArray(response.headers[headerName]) ? response.headers[headerName].forEach(addCookie) : addCookie(response.headers[headerName]); + } + if (!self._redirect.onResponse(response)) { + var responseContent, code; + if (response.on("close", (function() { + self._ended || self.response.emit("end"); + })), response.once("end", (function() { + self._ended = !0; + })), !self.gzip || (code = response.statusCode, "HEAD" === self.method || code >= 100 && code < 200 || 204 === code || 304 === code)) responseContent = response; else { + var contentEncoding = response.headers["content-encoding"] || "identity"; + contentEncoding = contentEncoding.trim().toLowerCase(); + var zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + "gzip" === contentEncoding ? (responseContent = zlib.createGunzip(zlibOptions), + response.pipe(responseContent)) : "deflate" === contentEncoding ? (responseContent = zlib.createInflate(zlibOptions), + response.pipe(responseContent)) : ("identity" !== contentEncoding && debug("ignoring unrecognized Content-Encoding " + contentEncoding), + responseContent = response); + } + self.encoding && (0 !== self.dests.length ? console.error("Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.") : responseContent.setEncoding(self.encoding)), + self._paused && responseContent.pause(), self.responseContent = responseContent, + self.emit("response", response), self.dests.forEach((function(dest) { + self.pipeDest(dest); + })), responseContent.on("data", (function(chunk) { + self.timing && !self.responseStarted && (self.responseStartTime = (new Date).getTime(), + response.responseStartTime = self.responseStartTime), self._destdata = !0, self.emit("data", chunk); + })), responseContent.once("end", (function(chunk) { + self.emit("end", chunk); + })), responseContent.on("error", (function(error) { + self.emit("error", error); + })), responseContent.on("close", (function() { + self.emit("close"); + })), self.callback ? self.readResponseBody(response) : self.on("end", (function() { + self._aborted ? debug("aborted", self.uri.href) : self.emit("complete", response); + })), debug("finish init function", self.uri.href); + } + } else { + debug("strict ssl error", self.uri.href); + var sslErr = response.hasOwnProperty("socket") ? response.socket.authorizationError : self.uri.href + " does not support SSL"; + self.emit("error", new Error("SSL Error: " + sslErr)); + } + }, Request.prototype.readResponseBody = function(response) { + var self = this; + debug("reading response's body"); + var buffers = [], bufferLength = 0, strings = []; + self.on("data", (function(chunk) { + Buffer.isBuffer(chunk) ? chunk.length && (bufferLength += chunk.length, buffers.push(chunk)) : strings.push(chunk); + })), self.on("end", (function() { + if (debug("end event", self.uri.href), self._aborted) return debug("aborted", self.uri.href), + buffers = [], void (bufferLength = 0); + if (bufferLength ? (debug("has body", self.uri.href, bufferLength), response.body = Buffer.concat(buffers, bufferLength), + null !== self.encoding && (response.body = response.body.toString(self.encoding)), + buffers = [], bufferLength = 0) : strings.length && ("utf8" === self.encoding && strings[0].length > 0 && "\ufeff" === strings[0][0] && (strings[0] = strings[0].substring(1)), + response.body = strings.join("")), self._json) try { + response.body = JSON.parse(response.body, self._jsonReviver); + } catch (e) { + debug("invalid JSON received", self.uri.href); + } + debug("emitting complete", self.uri.href), void 0 !== response.body || self._json || (response.body = null === self.encoding ? Buffer.alloc(0) : ""), + self.emit("complete", response, response.body); + })); + }, Request.prototype.abort = function() { + this._aborted = !0, this.req ? this.req.abort() : this.response && this.response.destroy(), + this.emit("abort"); + }, Request.prototype.pipeDest = function(dest) { + var response = this.response; + if (dest.headers && !dest.headersSent) { + if (response.caseless.has("content-type")) { + var ctname = response.caseless.has("content-type"); + dest.setHeader ? dest.setHeader(ctname, response.headers[ctname]) : dest.headers[ctname] = response.headers[ctname]; + } + if (response.caseless.has("content-length")) { + var clname = response.caseless.has("content-length"); + dest.setHeader ? dest.setHeader(clname, response.headers[clname]) : dest.headers[clname] = response.headers[clname]; + } + } + if (dest.setHeader && !dest.headersSent) { + for (var i in response.headers) this.gzip && "content-encoding" === i || dest.setHeader(i, response.headers[i]); + dest.statusCode = response.statusCode; + } + this.pipefilter && this.pipefilter(response, dest); + }, Request.prototype.qs = function(q, clobber) { + var base; + for (var i in base = !clobber && this.uri.query ? this._qs.parse(this.uri.query) : {}, + q) base[i] = q[i]; + var qs = this._qs.stringify(base); + return "" === qs || (this.uri = url.parse(this.uri.href.split("?")[0] + "?" + qs), + this.url = this.uri, this.path = this.uri.path, "unix" === this.uri.host && this.enableUnixSocket()), + this; + }, Request.prototype.form = function(form) { + var self = this; + return form ? (/^application\/x-www-form-urlencoded\b/.test(self.getHeader("content-type")) || self.setHeader("content-type", "application/x-www-form-urlencoded"), + self.body = "string" == typeof form ? self._qs.rfc3986(form.toString("utf8")) : self._qs.stringify(form).toString("utf8"), + self) : (self._form = new FormData, self._form.on("error", (function(err) { + err.message = "form-data: " + err.message, self.emit("error", err), self.abort(); + })), self._form); + }, Request.prototype.multipart = function(multipart) { + return this._multipart.onRequest(multipart), this._multipart.chunked || (this.body = this._multipart.body), + this; + }, Request.prototype.json = function(val) { + return this.hasHeader("accept") || this.setHeader("accept", "application/json"), + "function" == typeof this.jsonReplacer && (this._jsonReplacer = this.jsonReplacer), + this._json = !0, "boolean" == typeof val ? void 0 !== this.body && (/^application\/x-www-form-urlencoded\b/.test(this.getHeader("content-type")) ? this.body = this._qs.rfc3986(this.body) : this.body = safeStringify(this.body, this._jsonReplacer), + this.hasHeader("content-type") || this.setHeader("content-type", "application/json")) : (this.body = safeStringify(val, this._jsonReplacer), + this.hasHeader("content-type") || this.setHeader("content-type", "application/json")), + "function" == typeof this.jsonReviver && (this._jsonReviver = this.jsonReviver), + this; + }, Request.prototype.getHeader = function(name, headers) { + var result, re; + return headers || (headers = this.headers), Object.keys(headers).forEach((function(key) { + key.length === name.length && (re = new RegExp(name, "i"), key.match(re) && (result = headers[key])); + })), result; + }, Request.prototype.enableUnixSocket = function() { + var unixParts = this.uri.path.split(":"), host = unixParts[0], path = unixParts[1]; + this.socketPath = host, this.uri.pathname = path, this.uri.path = path, this.uri.host = host, + this.uri.hostname = host, this.uri.isUnix = !0; + }, Request.prototype.auth = function(user, pass, sendImmediately, bearer) { + return this._auth.onRequest(user, pass, sendImmediately, bearer), this; + }, Request.prototype.aws = function(opts, now) { + if (!now) return this._aws = opts, this; + if (4 === opts.sign_version || "4" === opts.sign_version) { + var options = { + host: this.uri.host, + path: this.uri.path, + method: this.method, + headers: this.headers, + body: this.body + }; + opts.service && (options.service = opts.service); + var signRes = aws4.sign(options, { + accessKeyId: opts.key, + secretAccessKey: opts.secret, + sessionToken: opts.session + }); + this.setHeader("authorization", signRes.headers.Authorization), this.setHeader("x-amz-date", signRes.headers["X-Amz-Date"]), + signRes.headers["X-Amz-Security-Token"] && this.setHeader("x-amz-security-token", signRes.headers["X-Amz-Security-Token"]); + } else { + var date = new Date; + this.setHeader("date", date.toUTCString()); + var auth = { + key: opts.key, + secret: opts.secret, + verb: this.method.toUpperCase(), + date: date, + contentType: this.getHeader("content-type") || "", + md5: this.getHeader("content-md5") || "", + amazonHeaders: aws2.canonicalizeHeaders(this.headers) + }, path = this.uri.path; + opts.bucket && path ? auth.resource = "/" + opts.bucket + path : opts.bucket && !path ? auth.resource = "/" + opts.bucket : !opts.bucket && path ? auth.resource = path : opts.bucket || path || (auth.resource = "/"), + auth.resource = aws2.canonicalizeResource(auth.resource), this.setHeader("authorization", aws2.authorization(auth)); + } + return this; + }, Request.prototype.httpSignature = function(opts) { + var self = this; + return httpSignature.signRequest({ + getHeader: function(header) { + return self.getHeader(header, self.headers); + }, + setHeader: function(header, value) { + self.setHeader(header, value); + }, + method: self.method, + path: self.path + }, opts), debug("httpSignature authorization", self.getHeader("authorization")), + self; + }, Request.prototype.hawk = function(opts) { + this.setHeader("Authorization", hawk.header(this.uri, this.method, opts)); + }, Request.prototype.oauth = function(_oauth) { + return this._oauth.onRequest(_oauth), this; + }, Request.prototype.jar = function(jar) { + var cookies; + if (0 === this._redirect.redirectsFollowed && (this.originalCookieHeader = this.getHeader("cookie")), + jar) { + var targetCookieJar = jar && jar.getCookieString ? jar : globalCookieJar, urihref = this.uri.href; + targetCookieJar && (cookies = targetCookieJar.getCookieString(urihref)); + } else cookies = !1, this._disableCookies = !0; + return cookies && cookies.length && (this.originalCookieHeader ? this.setHeader("cookie", this.originalCookieHeader + "; " + cookies) : this.setHeader("cookie", cookies)), + this._jar = jar, this; + }, Request.prototype.pipe = function(dest, opts) { + if (!this.response) return this.dests.push(dest), stream.Stream.prototype.pipe.call(this, dest, opts), + dest; + if (this._destdata) this.emit("error", new Error("You cannot pipe after data has been emitted from the response.")); else { + if (!this._ended) return stream.Stream.prototype.pipe.call(this, dest, opts), this.pipeDest(dest), + dest; + this.emit("error", new Error("You cannot pipe after the response has been ended.")); + } + }, Request.prototype.write = function() { + var self = this; + if (!self._aborted) return self._started || self.start(), self.req ? self.req.write.apply(self.req, arguments) : void 0; + }, Request.prototype.end = function(chunk) { + this._aborted || (chunk && this.write(chunk), this._started || this.start(), this.req && this.req.end()); + }, Request.prototype.pause = function() { + var self = this; + self.responseContent ? self.responseContent.pause.apply(self.responseContent, arguments) : self._paused = !0; + }, Request.prototype.resume = function() { + var self = this; + self.responseContent ? self.responseContent.resume.apply(self.responseContent, arguments) : self._paused = !1; + }, Request.prototype.destroy = function() { + this._ended ? this.response && this.response.destroy() : this.end(); + }, Request.defaultProxyHeaderWhiteList = Tunnel.defaultProxyHeaderWhiteList.slice(), + Request.defaultProxyHeaderExclusiveList = Tunnel.defaultProxyHeaderExclusiveList.slice(), + Request.prototype.toJSON = requestToJSON, module.exports = Request; +}, function(module, exports, __webpack_require__) { + var crypto = __webpack_require__(9), parse = __webpack_require__(6).parse, keys = [ "acl", "location", "logging", "notification", "partNumber", "policy", "requestPayment", "torrent", "uploadId", "uploads", "versionId", "versioning", "versions", "website" ]; + function authorization(options) { + return "AWS " + options.key + ":" + sign(options); + } + function hmacSha1(options) { + return crypto.createHmac("sha1", options.secret).update(options.message).digest("base64"); + } + function sign(options) { + return options.message = stringToSign(options), hmacSha1(options); + } + function stringToSign(options) { + var headers = options.amazonHeaders || ""; + return headers && (headers += "\n"), [ options.verb, options.md5, options.contentType, options.date ? options.date.toUTCString() : "", headers + options.resource ].join("\n"); + } + function queryStringToSign(options) { + return "GET\n\n\n" + options.date + "\n" + options.resource; + } + module.exports = authorization, module.exports.authorization = authorization, module.exports.hmacSha1 = hmacSha1, + module.exports.sign = sign, module.exports.signQuery = function(options) { + return options.message = queryStringToSign(options), hmacSha1(options); + }, module.exports.stringToSign = stringToSign, module.exports.queryStringToSign = queryStringToSign, + module.exports.canonicalizeHeaders = function(headers) { + for (var buf = [], fields = Object.keys(headers), i = 0, len = fields.length; i < len; ++i) { + var field, val = headers[field = fields[i]]; + 0 === (field = field.toLowerCase()).indexOf("x-amz") && buf.push(field + ":" + val); + } + return buf.sort().join("\n"); + }, module.exports.canonicalizeResource = function(resource) { + var url = parse(resource, !0), path = url.pathname, buf = []; + return Object.keys(url.query).forEach((function(key) { + if (~keys.indexOf(key)) { + var val = "" == url.query[key] ? "" : "=" + encodeURIComponent(url.query[key]); + buf.push(key + val); + } + })), path + (buf.length ? "?" + buf.sort().join("&") : ""); + }; +}, function(module, exports, __webpack_require__) { + var aws4 = exports, url = __webpack_require__(6), querystring = __webpack_require__(24), crypto = __webpack_require__(9), credentialsCache = __webpack_require__(1051)(1e3); + function hmac(key, string, encoding) { + return crypto.createHmac("sha256", key).update(string, "utf8").digest(encoding); + } + function hash(string, encoding) { + return crypto.createHash("sha256").update(string, "utf8").digest(encoding); + } + function encodeRfc3986(urlEncodedString) { + return urlEncodedString.replace(/[!'()*]/g, (function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + })); + } + function RequestSigner(request, credentials) { + "string" == typeof request && (request = url.parse(request)); + var headers = request.headers = request.headers || {}, hostParts = this.matchHost(request.hostname || request.host || headers.Host || headers.host); + this.request = request, this.credentials = credentials || this.defaultCredentials(), + this.service = request.service || hostParts[0] || "", this.region = request.region || hostParts[1] || "us-east-1", + "email" === this.service && (this.service = "ses"), !request.method && request.body && (request.method = "POST"), + headers.Host || headers.host || (headers.Host = request.hostname || request.host || this.createHost(), + request.port && (headers.Host += ":" + request.port)), request.hostname || request.host || (request.hostname = headers.Host || headers.host), + this.isCodeCommitGit = "codecommit" === this.service && "GIT" === request.method; + } + RequestSigner.prototype.matchHost = function(host) { + var hostParts = ((host || "").match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(\.cn)?$/) || []).slice(1, 3); + return "es" === hostParts[1] && (hostParts = hostParts.reverse()), hostParts; + }, RequestSigner.prototype.isSingleRegion = function() { + return [ "s3", "sdb" ].indexOf(this.service) >= 0 && "us-east-1" === this.region || [ "cloudfront", "ls", "route53", "iam", "importexport", "sts" ].indexOf(this.service) >= 0; + }, RequestSigner.prototype.createHost = function() { + var region = this.isSingleRegion() ? "" : ("s3" === this.service && "us-east-1" !== this.region ? "-" : ".") + this.region; + return ("ses" === this.service ? "email" : this.service) + region + ".amazonaws.com"; + }, RequestSigner.prototype.prepareRequest = function() { + this.parsePath(); + var query, request = this.request, headers = request.headers; + request.signQuery ? (this.parsedPath.query = query = this.parsedPath.query || {}, + this.credentials.sessionToken && (query["X-Amz-Security-Token"] = this.credentials.sessionToken), + "s3" !== this.service || query["X-Amz-Expires"] || (query["X-Amz-Expires"] = 86400), + query["X-Amz-Date"] ? this.datetime = query["X-Amz-Date"] : query["X-Amz-Date"] = this.getDateTime(), + query["X-Amz-Algorithm"] = "AWS4-HMAC-SHA256", query["X-Amz-Credential"] = this.credentials.accessKeyId + "/" + this.credentialString(), + query["X-Amz-SignedHeaders"] = this.signedHeaders()) : (request.doNotModifyHeaders || this.isCodeCommitGit || (!request.body || headers["Content-Type"] || headers["content-type"] || (headers["Content-Type"] = "application/x-www-form-urlencoded; charset=utf-8"), + !request.body || headers["Content-Length"] || headers["content-length"] || (headers["Content-Length"] = Buffer.byteLength(request.body)), + !this.credentials.sessionToken || headers["X-Amz-Security-Token"] || headers["x-amz-security-token"] || (headers["X-Amz-Security-Token"] = this.credentials.sessionToken), + "s3" !== this.service || headers["X-Amz-Content-Sha256"] || headers["x-amz-content-sha256"] || (headers["X-Amz-Content-Sha256"] = hash(this.request.body || "", "hex")), + headers["X-Amz-Date"] || headers["x-amz-date"] ? this.datetime = headers["X-Amz-Date"] || headers["x-amz-date"] : headers["X-Amz-Date"] = this.getDateTime()), + delete headers.Authorization, delete headers.authorization); + }, RequestSigner.prototype.sign = function() { + return this.parsedPath || this.prepareRequest(), this.request.signQuery ? this.parsedPath.query["X-Amz-Signature"] = this.signature() : this.request.headers.Authorization = this.authHeader(), + this.request.path = this.formatPath(), this.request; + }, RequestSigner.prototype.getDateTime = function() { + if (!this.datetime) { + var headers = this.request.headers, date = new Date(headers.Date || headers.date || new Date); + this.datetime = date.toISOString().replace(/[:\-]|\.\d{3}/g, ""), this.isCodeCommitGit && (this.datetime = this.datetime.slice(0, -1)); + } + return this.datetime; + }, RequestSigner.prototype.getDate = function() { + return this.getDateTime().substr(0, 8); + }, RequestSigner.prototype.authHeader = function() { + return [ "AWS4-HMAC-SHA256 Credential=" + this.credentials.accessKeyId + "/" + this.credentialString(), "SignedHeaders=" + this.signedHeaders(), "Signature=" + this.signature() ].join(", "); + }, RequestSigner.prototype.signature = function() { + var kDate, kRegion, kService, date = this.getDate(), cacheKey = [ this.credentials.secretAccessKey, date, this.region, this.service ].join(), kCredentials = credentialsCache.get(cacheKey); + return kCredentials || (kDate = hmac("AWS4" + this.credentials.secretAccessKey, date), + kRegion = hmac(kDate, this.region), kService = hmac(kRegion, this.service), kCredentials = hmac(kService, "aws4_request"), + credentialsCache.set(cacheKey, kCredentials)), hmac(kCredentials, this.stringToSign(), "hex"); + }, RequestSigner.prototype.stringToSign = function() { + return [ "AWS4-HMAC-SHA256", this.getDateTime(), this.credentialString(), hash(this.canonicalString(), "hex") ].join("\n"); + }, RequestSigner.prototype.canonicalString = function() { + this.parsedPath || this.prepareRequest(); + var bodyHash, pathStr = this.parsedPath.path, query = this.parsedPath.query, headers = this.request.headers, queryStr = "", normalizePath = "s3" !== this.service, decodePath = "s3" === this.service || this.request.doNotEncodePath, decodeSlashesInPath = "s3" === this.service, firstValOnly = "s3" === this.service; + return bodyHash = "s3" === this.service && this.request.signQuery ? "UNSIGNED-PAYLOAD" : this.isCodeCommitGit ? "" : headers["X-Amz-Content-Sha256"] || headers["x-amz-content-sha256"] || hash(this.request.body || "", "hex"), + query && (queryStr = encodeRfc3986(querystring.stringify(Object.keys(query).sort().reduce((function(obj, key) { + return key ? (obj[key] = Array.isArray(query[key]) ? firstValOnly ? query[key][0] : query[key].slice().sort() : query[key], + obj) : obj; + }), {})))), "/" !== pathStr && (normalizePath && (pathStr = pathStr.replace(/\/{2,}/g, "/")), + "/" !== (pathStr = pathStr.split("/").reduce((function(path, piece) { + return normalizePath && ".." === piece ? path.pop() : normalizePath && "." === piece || (decodePath && (piece = decodeURIComponent(piece)), + path.push(encodeRfc3986(encodeURIComponent(piece)))), path; + }), []).join("/"))[0] && (pathStr = "/" + pathStr), decodeSlashesInPath && (pathStr = pathStr.replace(/%2F/g, "/"))), + [ this.request.method || "GET", pathStr, queryStr, this.canonicalHeaders() + "\n", this.signedHeaders(), bodyHash ].join("\n"); + }, RequestSigner.prototype.canonicalHeaders = function() { + var headers = this.request.headers; + return Object.keys(headers).sort((function(a, b) { + return a.toLowerCase() < b.toLowerCase() ? -1 : 1; + })).map((function(key) { + return key.toLowerCase() + ":" + headers[key].toString().trim().replace(/\s+/g, " "); + })).join("\n"); + }, RequestSigner.prototype.signedHeaders = function() { + return Object.keys(this.request.headers).map((function(key) { + return key.toLowerCase(); + })).sort().join(";"); + }, RequestSigner.prototype.credentialString = function() { + return [ this.getDate(), this.region, this.service, "aws4_request" ].join("/"); + }, RequestSigner.prototype.defaultCredentials = function() { + var env = process.env; + return { + accessKeyId: env.AWS_ACCESS_KEY_ID || env.AWS_ACCESS_KEY, + secretAccessKey: env.AWS_SECRET_ACCESS_KEY || env.AWS_SECRET_KEY, + sessionToken: env.AWS_SESSION_TOKEN + }; + }, RequestSigner.prototype.parsePath = function() { + var path = this.request.path || "/", queryIx = path.indexOf("?"), query = null; + queryIx >= 0 && (query = querystring.parse(path.slice(queryIx + 1)), path = path.slice(0, queryIx)), + /[^0-9A-Za-z!'()*\-._~%/]/.test(path) && (path = path.split("/").map((function(piece) { + return encodeURIComponent(decodeURIComponent(piece)); + })).join("/")), this.parsedPath = { + path: path, + query: query + }; + }, RequestSigner.prototype.formatPath = function() { + var path = this.parsedPath.path, query = this.parsedPath.query; + return query ? (null != query[""] && delete query[""], path + "?" + encodeRfc3986(querystring.stringify(query))) : path; + }, aws4.RequestSigner = RequestSigner, aws4.sign = function(request, credentials) { + return new RequestSigner(request, credentials).sign(); + }; +}, function(module, exports) { + function LruCache(size) { + this.capacity = 0 | size, this.map = Object.create(null), this.list = new DoublyLinkedList; + } + function DoublyLinkedList() { + this.firstNode = null, this.lastNode = null; + } + function DoublyLinkedNode(key, val) { + this.key = key, this.val = val, this.prev = null, this.next = null; + } + module.exports = function(size) { + return new LruCache(size); + }, LruCache.prototype.get = function(key) { + var node = this.map[key]; + if (null != node) return this.used(node), node.val; + }, LruCache.prototype.set = function(key, val) { + var node = this.map[key]; + if (null != node) node.val = val; else { + if (this.capacity || this.prune(), !this.capacity) return !1; + node = new DoublyLinkedNode(key, val), this.map[key] = node, this.capacity--; + } + return this.used(node), !0; + }, LruCache.prototype.used = function(node) { + this.list.moveToFront(node); + }, LruCache.prototype.prune = function() { + var node = this.list.pop(); + null != node && (delete this.map[node.key], this.capacity++); + }, DoublyLinkedList.prototype.moveToFront = function(node) { + this.firstNode != node && (this.remove(node), null == this.firstNode ? (this.firstNode = node, + this.lastNode = node, node.prev = null, node.next = null) : (node.prev = null, node.next = this.firstNode, + node.next.prev = node, this.firstNode = node)); + }, DoublyLinkedList.prototype.pop = function() { + var lastNode = this.lastNode; + return null != lastNode && this.remove(lastNode), lastNode; + }, DoublyLinkedList.prototype.remove = function(node) { + this.firstNode == node ? this.firstNode = node.next : null != node.prev && (node.prev.next = node.next), + this.lastNode == node ? this.lastNode = node.prev : null != node.next && (node.next.prev = node.prev); + }; +}, function(module, exports, __webpack_require__) { + var parser = __webpack_require__(1053), signer = __webpack_require__(1061), verify = __webpack_require__(1068), utils = __webpack_require__(150); + module.exports = { + parse: parser.parseRequest, + parseRequest: parser.parseRequest, + sign: signer.signRequest, + signRequest: signer.signRequest, + createSigner: signer.createSigner, + isSigner: signer.isSigner, + sshKeyToPEM: utils.sshKeyToPEM, + sshKeyFingerprint: utils.fingerprint, + pemToRsaSSHKey: utils.pemToRsaSSHKey, + verify: verify.verifySignature, + verifySignature: verify.verifySignature, + verifyHMAC: verify.verifyHMAC + }; +}, function(module, exports, __webpack_require__) { + var assert = __webpack_require__(15), util = __webpack_require__(0), utils = __webpack_require__(150), HttpSignatureError = (utils.HASH_ALGOS, + utils.PK_ALGOS, utils.HttpSignatureError), InvalidAlgorithmError = utils.InvalidAlgorithmError, validateAlgorithm = utils.validateAlgorithm; + function ExpiredRequestError(message) { + HttpSignatureError.call(this, message, ExpiredRequestError); + } + function InvalidHeaderError(message) { + HttpSignatureError.call(this, message, InvalidHeaderError); + } + function InvalidParamsError(message) { + HttpSignatureError.call(this, message, InvalidParamsError); + } + function MissingHeaderError(message) { + HttpSignatureError.call(this, message, MissingHeaderError); + } + function StrictParsingError(message) { + HttpSignatureError.call(this, message, StrictParsingError); + } + util.inherits(ExpiredRequestError, HttpSignatureError), util.inherits(InvalidHeaderError, HttpSignatureError), + util.inherits(InvalidParamsError, HttpSignatureError), util.inherits(MissingHeaderError, HttpSignatureError), + util.inherits(StrictParsingError, HttpSignatureError), module.exports = { + parseRequest: function(request, options) { + assert.object(request, "request"), assert.object(request.headers, "request.headers"), + void 0 === options && (options = {}), void 0 === options.headers && (options.headers = [ request.headers["x-date"] ? "x-date" : "date" ]), + assert.object(options, "options"), assert.arrayOfString(options.headers, "options.headers"), + assert.optionalFinite(options.clockSkew, "options.clockSkew"); + var authzHeaderName = options.authorizationHeaderName || "authorization"; + if (!request.headers[authzHeaderName]) throw new MissingHeaderError("no " + authzHeaderName + " header present in the request"); + options.clockSkew = options.clockSkew || 300; + var date, i = 0, state = 0, substate = 0, tmpName = "", tmpValue = "", parsed = { + scheme: "", + params: {}, + signingString: "" + }, authz = request.headers[authzHeaderName]; + for (i = 0; i < authz.length; i++) { + var c = authz.charAt(i); + switch (Number(state)) { + case 0: + " " !== c ? parsed.scheme += c : state = 1; + break; + + case 1: + switch (Number(substate)) { + case 0: + var code = c.charCodeAt(0); + if (code >= 65 && code <= 90 || code >= 97 && code <= 122) tmpName += c; else { + if ("=" !== c) throw new InvalidHeaderError("bad param format"); + if (0 === tmpName.length) throw new InvalidHeaderError("bad param format"); + substate = 1; + } + break; + + case 1: + if ('"' !== c) throw new InvalidHeaderError("bad param format"); + tmpValue = "", substate = 2; + break; + + case 2: + '"' === c ? (parsed.params[tmpName] = tmpValue, substate = 3) : tmpValue += c; + break; + + case 3: + if ("," !== c) throw new InvalidHeaderError("bad param format"); + tmpName = "", substate = 0; + break; + + default: + throw new Error("Invalid substate"); + } + break; + + default: + throw new Error("Invalid substate"); + } + } + if (parsed.params.headers && "" !== parsed.params.headers ? parsed.params.headers = parsed.params.headers.split(" ") : request.headers["x-date"] ? parsed.params.headers = [ "x-date" ] : parsed.params.headers = [ "date" ], + !parsed.scheme || "Signature" !== parsed.scheme) throw new InvalidHeaderError('scheme was not "Signature"'); + if (!parsed.params.keyId) throw new InvalidHeaderError("keyId was not specified"); + if (!parsed.params.algorithm) throw new InvalidHeaderError("algorithm was not specified"); + if (!parsed.params.signature) throw new InvalidHeaderError("signature was not specified"); + parsed.params.algorithm = parsed.params.algorithm.toLowerCase(); + try { + validateAlgorithm(parsed.params.algorithm); + } catch (e) { + throw e instanceof InvalidAlgorithmError ? new InvalidParamsError(parsed.params.algorithm + " is not supported") : e; + } + for (i = 0; i < parsed.params.headers.length; i++) { + var h = parsed.params.headers[i].toLowerCase(); + if (parsed.params.headers[i] = h, "request-line" === h) { + if (options.strict) throw new StrictParsingError("request-line is not a valid header with strict parsing enabled."); + parsed.signingString += request.method + " " + request.url + " HTTP/" + request.httpVersion; + } else if ("(request-target)" === h) parsed.signingString += "(request-target): " + request.method.toLowerCase() + " " + request.url; else { + var value = request.headers[h]; + if (void 0 === value) throw new MissingHeaderError(h + " was not in the request"); + parsed.signingString += h + ": " + value; + } + i + 1 < parsed.params.headers.length && (parsed.signingString += "\n"); + } + if (request.headers.date || request.headers["x-date"]) { + date = request.headers["x-date"] ? new Date(request.headers["x-date"]) : new Date(request.headers.date); + var now = new Date, skew = Math.abs(now.getTime() - date.getTime()); + if (skew > 1e3 * options.clockSkew) throw new ExpiredRequestError("clock skew of " + skew / 1e3 + "s was greater than " + options.clockSkew + "s"); + } + if (options.headers.forEach((function(hdr) { + if (parsed.params.headers.indexOf(hdr.toLowerCase()) < 0) throw new MissingHeaderError(hdr + " was not a signed header"); + })), options.algorithms && -1 === options.algorithms.indexOf(parsed.params.algorithm)) throw new InvalidParamsError(parsed.params.algorithm + " is not a supported algorithm"); + return parsed.algorithm = parsed.params.algorithm.toUpperCase(), parsed.keyId = parsed.params.keyId, + parsed; + } + }; +}, function(module, exports, __webpack_require__) { + var errors = __webpack_require__(231), types = __webpack_require__(232), Reader = __webpack_require__(1055), Writer = __webpack_require__(1056); + for (var t in module.exports = { + Reader: Reader, + Writer: Writer + }, types) types.hasOwnProperty(t) && (module.exports[t] = types[t]); + for (var e in errors) errors.hasOwnProperty(e) && (module.exports[e] = errors[e]); +}, function(module, exports, __webpack_require__) { + var assert = __webpack_require__(22), Buffer = __webpack_require__(14).Buffer, ASN1 = __webpack_require__(232), newInvalidAsn1Error = __webpack_require__(231).newInvalidAsn1Error; + function Reader(data) { + if (!data || !Buffer.isBuffer(data)) throw new TypeError("data must be a node Buffer"); + this._buf = data, this._size = data.length, this._len = 0, this._offset = 0; + } + Object.defineProperty(Reader.prototype, "length", { + enumerable: !0, + get: function() { + return this._len; + } + }), Object.defineProperty(Reader.prototype, "offset", { + enumerable: !0, + get: function() { + return this._offset; + } + }), Object.defineProperty(Reader.prototype, "remain", { + get: function() { + return this._size - this._offset; + } + }), Object.defineProperty(Reader.prototype, "buffer", { + get: function() { + return this._buf.slice(this._offset); + } + }), Reader.prototype.readByte = function(peek) { + if (this._size - this._offset < 1) return null; + var b = 255 & this._buf[this._offset]; + return peek || (this._offset += 1), b; + }, Reader.prototype.peek = function() { + return this.readByte(!0); + }, Reader.prototype.readLength = function(offset) { + if (void 0 === offset && (offset = this._offset), offset >= this._size) return null; + var lenB = 255 & this._buf[offset++]; + if (null === lenB) return null; + if (128 == (128 & lenB)) { + if (0 == (lenB &= 127)) throw newInvalidAsn1Error("Indefinite length not supported"); + if (lenB > 4) throw newInvalidAsn1Error("encoding too long"); + if (this._size - offset < lenB) return null; + this._len = 0; + for (var i = 0; i < lenB; i++) this._len = (this._len << 8) + (255 & this._buf[offset++]); + } else this._len = lenB; + return offset; + }, Reader.prototype.readSequence = function(tag) { + var seq = this.peek(); + if (null === seq) return null; + if (void 0 !== tag && tag !== seq) throw newInvalidAsn1Error("Expected 0x" + tag.toString(16) + ": got 0x" + seq.toString(16)); + var o = this.readLength(this._offset + 1); + return null === o ? null : (this._offset = o, seq); + }, Reader.prototype.readInt = function() { + return this._readTag(ASN1.Integer); + }, Reader.prototype.readBoolean = function() { + return 0 !== this._readTag(ASN1.Boolean); + }, Reader.prototype.readEnumeration = function() { + return this._readTag(ASN1.Enumeration); + }, Reader.prototype.readString = function(tag, retbuf) { + tag || (tag = ASN1.OctetString); + var b = this.peek(); + if (null === b) return null; + if (b !== tag) throw newInvalidAsn1Error("Expected 0x" + tag.toString(16) + ": got 0x" + b.toString(16)); + var o = this.readLength(this._offset + 1); + if (null === o) return null; + if (this.length > this._size - o) return null; + if (this._offset = o, 0 === this.length) return retbuf ? Buffer.alloc(0) : ""; + var str = this._buf.slice(this._offset, this._offset + this.length); + return this._offset += this.length, retbuf ? str : str.toString("utf8"); + }, Reader.prototype.readOID = function(tag) { + tag || (tag = ASN1.OID); + var b = this.readString(tag, !0); + if (null === b) return null; + for (var values = [], value = 0, i = 0; i < b.length; i++) { + var byte = 255 & b[i]; + value <<= 7, value += 127 & byte, 0 == (128 & byte) && (values.push(value), value = 0); + } + return value = values.shift(), values.unshift(value % 40), values.unshift(value / 40 >> 0), + values.join("."); + }, Reader.prototype._readTag = function(tag) { + assert.ok(void 0 !== tag); + var b = this.peek(); + if (null === b) return null; + if (b !== tag) throw newInvalidAsn1Error("Expected 0x" + tag.toString(16) + ": got 0x" + b.toString(16)); + var o = this.readLength(this._offset + 1); + if (null === o) return null; + if (this.length > 4) throw newInvalidAsn1Error("Integer too long: " + this.length); + if (this.length > this._size - o) return null; + this._offset = o; + for (var fb = this._buf[this._offset], value = 0, i = 0; i < this.length; i++) value <<= 8, + value |= 255 & this._buf[this._offset++]; + return 128 == (128 & fb) && 4 !== i && (value -= 1 << 8 * i), value >> 0; + }, module.exports = Reader; +}, function(module, exports, __webpack_require__) { + var assert = __webpack_require__(22), Buffer = __webpack_require__(14).Buffer, ASN1 = __webpack_require__(232), newInvalidAsn1Error = __webpack_require__(231).newInvalidAsn1Error, DEFAULT_OPTS = { + size: 1024, + growthFactor: 8 + }; + function Writer(options) { + var from, to; + from = DEFAULT_OPTS, to = options || {}, assert.ok(from), assert.equal(typeof from, "object"), + assert.ok(to), assert.equal(typeof to, "object"), Object.getOwnPropertyNames(from).forEach((function(key) { + if (!to[key]) { + var value = Object.getOwnPropertyDescriptor(from, key); + Object.defineProperty(to, key, value); + } + })), options = to, this._buf = Buffer.alloc(options.size || 1024), this._size = this._buf.length, + this._offset = 0, this._options = options, this._seq = []; + } + Object.defineProperty(Writer.prototype, "buffer", { + get: function() { + if (this._seq.length) throw newInvalidAsn1Error(this._seq.length + " unended sequence(s)"); + return this._buf.slice(0, this._offset); + } + }), Writer.prototype.writeByte = function(b) { + if ("number" != typeof b) throw new TypeError("argument must be a Number"); + this._ensure(1), this._buf[this._offset++] = b; + }, Writer.prototype.writeInt = function(i, tag) { + if ("number" != typeof i) throw new TypeError("argument must be a Number"); + "number" != typeof tag && (tag = ASN1.Integer); + for (var sz = 4; (0 == (4286578688 & i) || -8388608 == (4286578688 & i)) && sz > 1; ) sz--, + i <<= 8; + if (sz > 4) throw newInvalidAsn1Error("BER ints cannot be > 0xffffffff"); + for (this._ensure(2 + sz), this._buf[this._offset++] = tag, this._buf[this._offset++] = sz; sz-- > 0; ) this._buf[this._offset++] = (4278190080 & i) >>> 24, + i <<= 8; + }, Writer.prototype.writeNull = function() { + this.writeByte(ASN1.Null), this.writeByte(0); + }, Writer.prototype.writeEnumeration = function(i, tag) { + if ("number" != typeof i) throw new TypeError("argument must be a Number"); + return "number" != typeof tag && (tag = ASN1.Enumeration), this.writeInt(i, tag); + }, Writer.prototype.writeBoolean = function(b, tag) { + if ("boolean" != typeof b) throw new TypeError("argument must be a Boolean"); + "number" != typeof tag && (tag = ASN1.Boolean), this._ensure(3), this._buf[this._offset++] = tag, + this._buf[this._offset++] = 1, this._buf[this._offset++] = b ? 255 : 0; + }, Writer.prototype.writeString = function(s, tag) { + if ("string" != typeof s) throw new TypeError("argument must be a string (was: " + typeof s + ")"); + "number" != typeof tag && (tag = ASN1.OctetString); + var len = Buffer.byteLength(s); + this.writeByte(tag), this.writeLength(len), len && (this._ensure(len), this._buf.write(s, this._offset), + this._offset += len); + }, Writer.prototype.writeBuffer = function(buf, tag) { + if ("number" != typeof tag) throw new TypeError("tag must be a number"); + if (!Buffer.isBuffer(buf)) throw new TypeError("argument must be a buffer"); + this.writeByte(tag), this.writeLength(buf.length), this._ensure(buf.length), buf.copy(this._buf, this._offset, 0, buf.length), + this._offset += buf.length; + }, Writer.prototype.writeStringArray = function(strings) { + if (!strings instanceof Array) throw new TypeError("argument must be an Array[String]"); + var self = this; + strings.forEach((function(s) { + self.writeString(s); + })); + }, Writer.prototype.writeOID = function(s, tag) { + if ("string" != typeof s) throw new TypeError("argument must be a string"); + if ("number" != typeof tag && (tag = ASN1.OID), !/^([0-9]+\.){3,}[0-9]+$/.test(s)) throw new Error("argument is not a valid OID string"); + var tmp = s.split("."), bytes = []; + bytes.push(40 * parseInt(tmp[0], 10) + parseInt(tmp[1], 10)), tmp.slice(2).forEach((function(b) { + !(function(bytes, octet) { + octet < 128 ? bytes.push(octet) : octet < 16384 ? (bytes.push(octet >>> 7 | 128), + bytes.push(127 & octet)) : octet < 2097152 ? (bytes.push(octet >>> 14 | 128), bytes.push(255 & (octet >>> 7 | 128)), + bytes.push(127 & octet)) : octet < 268435456 ? (bytes.push(octet >>> 21 | 128), + bytes.push(255 & (octet >>> 14 | 128)), bytes.push(255 & (octet >>> 7 | 128)), bytes.push(127 & octet)) : (bytes.push(255 & (octet >>> 28 | 128)), + bytes.push(255 & (octet >>> 21 | 128)), bytes.push(255 & (octet >>> 14 | 128)), + bytes.push(255 & (octet >>> 7 | 128)), bytes.push(127 & octet)); + })(bytes, parseInt(b, 10)); + })); + var self = this; + this._ensure(2 + bytes.length), this.writeByte(tag), this.writeLength(bytes.length), + bytes.forEach((function(b) { + self.writeByte(b); + })); + }, Writer.prototype.writeLength = function(len) { + if ("number" != typeof len) throw new TypeError("argument must be a Number"); + if (this._ensure(4), len <= 127) this._buf[this._offset++] = len; else if (len <= 255) this._buf[this._offset++] = 129, + this._buf[this._offset++] = len; else if (len <= 65535) this._buf[this._offset++] = 130, + this._buf[this._offset++] = len >> 8, this._buf[this._offset++] = len; else { + if (!(len <= 16777215)) throw newInvalidAsn1Error("Length too long (> 4 bytes)"); + this._buf[this._offset++] = 131, this._buf[this._offset++] = len >> 16, this._buf[this._offset++] = len >> 8, + this._buf[this._offset++] = len; + } + }, Writer.prototype.startSequence = function(tag) { + "number" != typeof tag && (tag = ASN1.Sequence | ASN1.Constructor), this.writeByte(tag), + this._seq.push(this._offset), this._ensure(3), this._offset += 3; + }, Writer.prototype.endSequence = function() { + var seq = this._seq.pop(), start = seq + 3, len = this._offset - start; + if (len <= 127) this._shift(start, len, -2), this._buf[seq] = len; else if (len <= 255) this._shift(start, len, -1), + this._buf[seq] = 129, this._buf[seq + 1] = len; else if (len <= 65535) this._buf[seq] = 130, + this._buf[seq + 1] = len >> 8, this._buf[seq + 2] = len; else { + if (!(len <= 16777215)) throw newInvalidAsn1Error("Sequence too long"); + this._shift(start, len, 1), this._buf[seq] = 131, this._buf[seq + 1] = len >> 16, + this._buf[seq + 2] = len >> 8, this._buf[seq + 3] = len; + } + }, Writer.prototype._shift = function(start, len, shift) { + assert.ok(void 0 !== start), assert.ok(void 0 !== len), assert.ok(shift), this._buf.copy(this._buf, start + shift, start, start + len), + this._offset += shift; + }, Writer.prototype._ensure = function(len) { + if (assert.ok(len), this._size - this._offset < len) { + var sz = this._size * this._options.growthFactor; + sz - this._offset < len && (sz += len); + var buf = Buffer.alloc(sz); + this._buf.copy(buf, 0, 0, this._offset), this._buf = buf, this._size = sz; + } + }, module.exports = Writer; +}, function(module, exports, __webpack_require__) { + var crypto = __webpack_require__(9), BigInteger = __webpack_require__(98).BigInteger, Buffer = (__webpack_require__(151).ECPointFp, + __webpack_require__(14).Buffer); + function unstupid(hex, len) { + return hex.length >= len ? hex : unstupid("0" + hex, len); + } + exports.ECCurves = __webpack_require__(1058), exports.ECKey = function(curve, key, isPublic) { + var priv, c = curve(), n = c.getN(), bytes = Math.floor(n.bitLength() / 8); + if (key) if (isPublic) curve = c.getCurve(), this.P = curve.decodePointHex(key.toString("hex")); else { + if (key.length != bytes) return !1; + priv = new BigInteger(key.toString("hex"), 16); + } else { + var n1 = n.subtract(BigInteger.ONE), r = new BigInteger(crypto.randomBytes(n.bitLength())); + priv = r.mod(n1).add(BigInteger.ONE), this.P = c.getG().multiply(priv); + } + this.P && (this.PublicKey = Buffer.from(c.getCurve().encodeCompressedPointHex(this.P), "hex")), + priv && (this.PrivateKey = Buffer.from(unstupid(priv.toString(16), 2 * bytes), "hex"), + this.deriveSharedSecret = function(key) { + if (!key || !key.P) return !1; + var S = key.P.multiply(priv); + return Buffer.from(unstupid(S.getX().toBigInteger().toString(16), 2 * bytes), "hex"); + }); + }; +}, function(module, exports, __webpack_require__) { + var BigInteger = __webpack_require__(98).BigInteger, ECCurveFp = __webpack_require__(151).ECCurveFp; + function X9ECParameters(curve, g, n, h) { + this.curve = curve, this.g = g, this.n = n, this.h = h; + } + function fromHex(s) { + return new BigInteger(s, 16); + } + X9ECParameters.prototype.getCurve = function() { + return this.curve; + }, X9ECParameters.prototype.getG = function() { + return this.g; + }, X9ECParameters.prototype.getN = function() { + return this.n; + }, X9ECParameters.prototype.getH = function() { + return this.h; + }, module.exports = { + secp128r1: function() { + var p = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF"), a = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC"), b = fromHex("E87579C11079F43DD824993C2CEE5ED3"), n = fromHex("FFFFFFFE0000000075A30D1B9038A115"), h = BigInteger.ONE, curve = new ECCurveFp(p, a, b), G = curve.decodePointHex("04161FF7528B899B2D0C28607CA52C5B86CF5AC8395BAFEB13C02DA292DDED7A83"); + return new X9ECParameters(curve, G, n, h); + }, + secp160k1: function() { + var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73"), a = BigInteger.ZERO, b = fromHex("7"), n = fromHex("0100000000000000000001B8FA16DFAB9ACA16B6B3"), h = BigInteger.ONE, curve = new ECCurveFp(p, a, b), G = curve.decodePointHex("043B4C382CE37AA192A4019E763036F4F5DD4D7EBB938CF935318FDCED6BC28286531733C3F03C4FEE"); + return new X9ECParameters(curve, G, n, h); + }, + secp160r1: function() { + var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF"), a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC"), b = fromHex("1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45"), n = fromHex("0100000000000000000001F4C8F927AED3CA752257"), h = BigInteger.ONE, curve = new ECCurveFp(p, a, b), G = curve.decodePointHex("044A96B5688EF573284664698968C38BB913CBFC8223A628553168947D59DCC912042351377AC5FB32"); + return new X9ECParameters(curve, G, n, h); + }, + secp192k1: function() { + var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37"), a = BigInteger.ZERO, b = fromHex("3"), n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D"), h = BigInteger.ONE, curve = new ECCurveFp(p, a, b), G = curve.decodePointHex("04DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D"); + return new X9ECParameters(curve, G, n, h); + }, + secp192r1: function() { + var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF"), a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC"), b = fromHex("64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1"), n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831"), h = BigInteger.ONE, curve = new ECCurveFp(p, a, b), G = curve.decodePointHex("04188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF101207192B95FFC8DA78631011ED6B24CDD573F977A11E794811"); + return new X9ECParameters(curve, G, n, h); + }, + secp224r1: function() { + var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001"), a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE"), b = fromHex("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4"), n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D"), h = BigInteger.ONE, curve = new ECCurveFp(p, a, b), G = curve.decodePointHex("04B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34"); + return new X9ECParameters(curve, G, n, h); + }, + secp256r1: function() { + var p = fromHex("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"), a = fromHex("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC"), b = fromHex("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"), n = fromHex("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551"), h = BigInteger.ONE, curve = new ECCurveFp(p, a, b), G = curve.decodePointHex("046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5"); + return new X9ECParameters(curve, G, n, h); + } + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + read: function(buf, options) { + Buffer.isBuffer(buf) && (buf = buf.toString("ascii")); + var parts = buf.trim().split(/[ \t\n]+/g); + if (parts.length < 2 || parts.length > 3) throw new Error("Not a valid SSH certificate line"); + var algo = parts[0], data = parts[1]; + return fromBuffer(data = Buffer.from(data, "base64"), algo); + }, + verify: function(cert, key) { + return !1; + }, + sign: function(cert, key) { + void 0 === cert.signatures.openssh && (cert.signatures.openssh = {}); + try { + var blob = toBuffer(cert, !0); + } catch (e) { + return delete cert.signatures.openssh, !1; + } + var sig = cert.signatures.openssh, hashAlgo = void 0; + "rsa" !== key.type && "dsa" !== key.type || (hashAlgo = "sha1"); + var signer = key.createSign(hashAlgo); + return signer.write(blob), sig.signature = signer.sign(), !0; + }, + signAsync: function(cert, signer, done) { + void 0 === cert.signatures.openssh && (cert.signatures.openssh = {}); + try { + var blob = toBuffer(cert, !0); + } catch (e) { + return delete cert.signatures.openssh, void done(e); + } + var sig = cert.signatures.openssh; + signer(blob, (function(err, signature) { + if (err) done(err); else { + try { + signature.toBuffer("ssh"); + } catch (e) { + return void done(e); + } + sig.signature = signature, done(); + } + })); + }, + write: function(cert, options) { + void 0 === options && (options = {}); + var blob = toBuffer(cert), out = getCertType(cert.subjectKey) + " " + blob.toString("base64"); + return options.comment && (out = out + " " + options.comment), out; + }, + fromBuffer: fromBuffer, + toBuffer: toBuffer + }; + var assert = __webpack_require__(15), SSHBuffer = __webpack_require__(100), crypto = __webpack_require__(9), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), Key = __webpack_require__(26), Identity = (__webpack_require__(28), + __webpack_require__(103)), rfc4253 = __webpack_require__(57), Signature = __webpack_require__(48), utils = __webpack_require__(27), Certificate = __webpack_require__(102), TYPES = { + user: 1, + host: 2 + }; + Object.keys(TYPES).forEach((function(k) { + TYPES[TYPES[k]] = k; + })); + var ECDSA_ALGO = /^ecdsa-sha2-([^@-]+)-cert-v01@openssh.com$/; + function fromBuffer(data, algo, partial) { + var sshbuf = new SSHBuffer({ + buffer: data + }), innerAlgo = sshbuf.readString(); + if (void 0 !== algo && innerAlgo !== algo) throw new Error("SSH certificate algorithm mismatch"); + void 0 === algo && (algo = innerAlgo); + var cert = { + signatures: {} + }; + cert.signatures.openssh = {}, cert.signatures.openssh.nonce = sshbuf.readBuffer(); + var key = {}, parts = key.parts = []; + key.type = (function(certType) { + if ("ssh-rsa-cert-v01@openssh.com" === certType) return "rsa"; + if ("ssh-dss-cert-v01@openssh.com" === certType) return "dsa"; + if (certType.match(ECDSA_ALGO)) return "ecdsa"; + if ("ssh-ed25519-cert-v01@openssh.com" === certType) return "ed25519"; + throw new Error("Unsupported cert type " + certType); + })(algo); + for (var partCount = algs.info[key.type].parts.length; parts.length < partCount; ) parts.push(sshbuf.readPart()); + assert.ok(parts.length >= 1, "key must have at least one part"); + var algInfo = algs.info[key.type]; + if ("ecdsa" === key.type) { + var res = ECDSA_ALGO.exec(algo); + assert.ok(null !== res), assert.strictEqual(res[1], parts[0].data.toString()); + } + for (var i = 0; i < algInfo.parts.length; ++i) if (parts[i].name = algInfo.parts[i], + "curve" !== parts[i].name && !1 !== algInfo.normalize) { + var p = parts[i]; + p.data = utils.mpNormalize(p.data); + } + cert.subjectKey = new Key(key), cert.serial = sshbuf.readInt64(); + var type = TYPES[sshbuf.readInt()]; + assert.string(type, "valid cert type"), cert.signatures.openssh.keyId = sshbuf.readString(); + for (var principals = [], pbuf = sshbuf.readBuffer(), psshbuf = new SSHBuffer({ + buffer: pbuf + }); !psshbuf.atEnd(); ) principals.push(psshbuf.readString()); + 0 === principals.length && (principals = [ "*" ]), cert.subjects = principals.map((function(pr) { + if ("user" === type) return Identity.forUser(pr); + if ("host" === type) return Identity.forHost(pr); + throw new Error("Unknown identity type " + type); + })), cert.validFrom = int64ToDate(sshbuf.readInt64()), cert.validUntil = int64ToDate(sshbuf.readInt64()); + for (var ext, exts = [], extbuf = new SSHBuffer({ + buffer: sshbuf.readBuffer() + }); !extbuf.atEnd(); ) (ext = { + critical: !0 + }).name = extbuf.readString(), ext.data = extbuf.readBuffer(), exts.push(ext); + for (extbuf = new SSHBuffer({ + buffer: sshbuf.readBuffer() + }); !extbuf.atEnd(); ) (ext = { + critical: !1 + }).name = extbuf.readString(), ext.data = extbuf.readBuffer(), exts.push(ext); + cert.signatures.openssh.exts = exts, sshbuf.readBuffer(); + var signingKeyBuf = sshbuf.readBuffer(); + cert.issuerKey = rfc4253.read(signingKeyBuf), cert.issuer = Identity.forHost("**"); + var sigBuf = sshbuf.readBuffer(); + return cert.signatures.openssh.signature = Signature.parse(sigBuf, cert.issuerKey.type, "ssh"), + void 0 !== partial && (partial.remainder = sshbuf.remainder(), partial.consumed = sshbuf._offset), + new Certificate(cert); + } + function int64ToDate(buf) { + var i = 4294967296 * buf.readUInt32BE(0); + i += buf.readUInt32BE(4); + var d = new Date; + return d.setTime(1e3 * i), d.sourceInt64 = buf, d; + } + function dateToInt64(date) { + if (void 0 !== date.sourceInt64) return date.sourceInt64; + var i = Math.round(date.getTime() / 1e3), upper = Math.floor(i / 4294967296), lower = Math.floor(i % 4294967296), buf = Buffer.alloc(8); + return buf.writeUInt32BE(upper, 0), buf.writeUInt32BE(lower, 4), buf; + } + function toBuffer(cert, noSig) { + assert.object(cert.signatures.openssh, "signature for openssh format"); + var sig = cert.signatures.openssh; + void 0 === sig.nonce && (sig.nonce = crypto.randomBytes(16)); + var buf = new SSHBuffer({}); + buf.writeString(getCertType(cert.subjectKey)), buf.writeBuffer(sig.nonce); + var key = cert.subjectKey; + algs.info[key.type].parts.forEach((function(part) { + buf.writePart(key.part[part]); + })), buf.writeInt64(cert.serial); + var type = cert.subjects[0].type; + assert.notStrictEqual(type, "unknown"), cert.subjects.forEach((function(id) { + assert.strictEqual(id.type, type); + })), type = TYPES[type], buf.writeInt(type), void 0 === sig.keyId && (sig.keyId = cert.subjects[0].type + "_" + (cert.subjects[0].uid || cert.subjects[0].hostname)), + buf.writeString(sig.keyId); + var sub = new SSHBuffer({}); + cert.subjects.forEach((function(id) { + type === TYPES.host ? sub.writeString(id.hostname) : type === TYPES.user && sub.writeString(id.uid); + })), buf.writeBuffer(sub.toBuffer()), buf.writeInt64(dateToInt64(cert.validFrom)), + buf.writeInt64(dateToInt64(cert.validUntil)); + var exts = sig.exts; + void 0 === exts && (exts = []); + var extbuf = new SSHBuffer({}); + return exts.forEach((function(ext) { + !0 === ext.critical && (extbuf.writeString(ext.name), extbuf.writeBuffer(ext.data)); + })), buf.writeBuffer(extbuf.toBuffer()), extbuf = new SSHBuffer({}), exts.forEach((function(ext) { + !0 !== ext.critical && (extbuf.writeString(ext.name), extbuf.writeBuffer(ext.data)); + })), buf.writeBuffer(extbuf.toBuffer()), buf.writeBuffer(Buffer.alloc(0)), sub = rfc4253.write(cert.issuerKey), + buf.writeBuffer(sub), noSig || buf.writeBuffer(sig.signature.toBuffer("ssh")), buf.toBuffer(); + } + function getCertType(key) { + if ("rsa" === key.type) return "ssh-rsa-cert-v01@openssh.com"; + if ("dsa" === key.type) return "ssh-dss-cert-v01@openssh.com"; + if ("ecdsa" === key.type) return "ecdsa-sha2-" + key.curve + "-cert-v01@openssh.com"; + if ("ed25519" === key.type) return "ssh-ed25519-cert-v01@openssh.com"; + throw new Error("Unsupported key type " + key.type); + } +}, function(module, exports, __webpack_require__) { + var x509 = __webpack_require__(484); + module.exports = { + read: function(buf, options) { + "string" != typeof buf && (assert.buffer(buf, "buf"), buf = buf.toString("ascii")); + for (var m, m2, lines = buf.trim().split(/[\r\n]+/g), si = -1; !m && si < lines.length; ) m = lines[++si].match(/[-]+[ ]*BEGIN CERTIFICATE[ ]*[-]+/); + assert.ok(m, "invalid PEM header"); + for (var ei = lines.length; !m2 && ei > 0; ) m2 = lines[--ei].match(/[-]+[ ]*END CERTIFICATE[ ]*[-]+/); + assert.ok(m2, "invalid PEM footer"), lines = lines.slice(si, ei + 1); + for (var headers = {}; m = (lines = lines.slice(1))[0].match(/^([A-Za-z0-9-]+): (.+)$/); ) headers[m[1].toLowerCase()] = m[2]; + return lines = lines.slice(0, -1).join(""), buf = Buffer.from(lines, "base64"), + x509.read(buf, options); + }, + verify: x509.verify, + sign: x509.sign, + write: function(cert, options) { + var tmp = x509.write(cert, options).toString("base64"), len = tmp.length + tmp.length / 64 + 18 + 16 + 2 * "CERTIFICATE".length + 10, buf = Buffer.alloc(len), o = 0; + o += buf.write("-----BEGIN CERTIFICATE-----\n", o); + for (var i = 0; i < tmp.length; ) { + var limit = i + 64; + limit > tmp.length && (limit = tmp.length), o += buf.write(tmp.slice(i, limit), o), + buf[o++] = 10, i = limit; + } + return o += buf.write("-----END CERTIFICATE-----\n", o), buf.slice(0, o); + } + }; + var assert = __webpack_require__(15), Buffer = (__webpack_require__(49), __webpack_require__(14).Buffer); + __webpack_require__(30), __webpack_require__(27), __webpack_require__(26), __webpack_require__(28), + __webpack_require__(56), __webpack_require__(103), __webpack_require__(48), __webpack_require__(102); +}, function(module, exports, __webpack_require__) { + var assert = __webpack_require__(15), crypto = __webpack_require__(9), util = (__webpack_require__(11), + __webpack_require__(0)), sshpk = __webpack_require__(230), jsprim = __webpack_require__(1062), utils = __webpack_require__(150), sprintf = __webpack_require__(0).format, HASH_ALGOS = utils.HASH_ALGOS, PK_ALGOS = utils.PK_ALGOS, InvalidAlgorithmError = utils.InvalidAlgorithmError, HttpSignatureError = utils.HttpSignatureError, validateAlgorithm = utils.validateAlgorithm, AUTHZ_FMT = 'Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"'; + function MissingHeaderError(message) { + HttpSignatureError.call(this, message, MissingHeaderError); + } + function StrictParsingError(message) { + HttpSignatureError.call(this, message, StrictParsingError); + } + function RequestSigner(options) { + assert.object(options, "options"); + var alg = []; + if (void 0 !== options.algorithm && (assert.string(options.algorithm, "options.algorithm"), + alg = validateAlgorithm(options.algorithm)), this.rs_alg = alg, void 0 !== options.sign) assert.func(options.sign, "options.sign"), + this.rs_signFunc = options.sign; else if ("hmac" === alg[0] && void 0 !== options.key) { + if (assert.string(options.keyId, "options.keyId"), this.rs_keyId = options.keyId, + "string" != typeof options.key && !Buffer.isBuffer(options.key)) throw new TypeError("options.key for HMAC must be a string or Buffer"); + this.rs_signer = crypto.createHmac(alg[1].toUpperCase(), options.key), this.rs_signer.sign = function() { + var digest = this.digest("base64"); + return { + hashAlgorithm: alg[1], + toString: function() { + return digest; + } + }; + }; + } else { + if (void 0 === options.key) throw new TypeError("options.sign (func) or options.key is required"); + var key = options.key; + if (("string" == typeof key || Buffer.isBuffer(key)) && (key = sshpk.parsePrivateKey(key)), + assert.ok(sshpk.PrivateKey.isPrivateKey(key, [ 1, 2 ]), "options.key must be a sshpk.PrivateKey"), + this.rs_key = key, assert.string(options.keyId, "options.keyId"), this.rs_keyId = options.keyId, + !PK_ALGOS[key.type]) throw new InvalidAlgorithmError(key.type.toUpperCase() + " type keys are not supported"); + if (void 0 !== alg[0] && key.type !== alg[0]) throw new InvalidAlgorithmError("options.key must be a " + alg[0].toUpperCase() + " key, was given a " + key.type.toUpperCase() + " key instead"); + this.rs_signer = key.createSign(alg[1]); + } + this.rs_headers = [], this.rs_lines = []; + } + util.inherits(MissingHeaderError, HttpSignatureError), util.inherits(StrictParsingError, HttpSignatureError), + RequestSigner.prototype.writeHeader = function(header, value) { + if (assert.string(header, "header"), header = header.toLowerCase(), assert.string(value, "value"), + this.rs_headers.push(header), this.rs_signFunc) this.rs_lines.push(header + ": " + value); else { + var line = header + ": " + value; + this.rs_headers.length > 0 && (line = "\n" + line), this.rs_signer.update(line); + } + return value; + }, RequestSigner.prototype.writeDateHeader = function() { + return this.writeHeader("date", jsprim.rfc1123(new Date)); + }, RequestSigner.prototype.writeTarget = function(method, path) { + assert.string(method, "method"), assert.string(path, "path"), method = method.toLowerCase(), + this.writeHeader("(request-target)", method + " " + path); + }, RequestSigner.prototype.sign = function(cb) { + if (assert.func(cb, "callback"), this.rs_headers.length < 1) throw new Error("At least one header must be signed"); + var alg, authz; + if (this.rs_signFunc) { + var data = this.rs_lines.join("\n"), self = this; + this.rs_signFunc(data, (function(err, sig) { + if (err) cb(err); else { + try { + assert.object(sig, "signature"), assert.string(sig.keyId, "signature.keyId"), assert.string(sig.algorithm, "signature.algorithm"), + assert.string(sig.signature, "signature.signature"), alg = validateAlgorithm(sig.algorithm), + authz = sprintf(AUTHZ_FMT, sig.keyId, sig.algorithm, self.rs_headers.join(" "), sig.signature); + } catch (e) { + return void cb(e); + } + cb(null, authz); + } + })); + } else { + try { + var sigObj = this.rs_signer.sign(); + } catch (e) { + return void cb(e); + } + alg = (this.rs_alg[0] || this.rs_key.type) + "-" + sigObj.hashAlgorithm; + var signature = sigObj.toString(); + authz = sprintf(AUTHZ_FMT, this.rs_keyId, alg, this.rs_headers.join(" "), signature), + cb(null, authz); + } + }, module.exports = { + isSigner: function(obj) { + return "object" == typeof obj && obj instanceof RequestSigner; + }, + createSigner: function(options) { + return new RequestSigner(options); + }, + signRequest: function(request, options) { + assert.object(request, "request"), assert.object(options, "options"), assert.optionalString(options.algorithm, "options.algorithm"), + assert.string(options.keyId, "options.keyId"), assert.optionalArrayOfString(options.headers, "options.headers"), + assert.optionalString(options.httpVersion, "options.httpVersion"), request.getHeader("Date") || request.setHeader("Date", jsprim.rfc1123(new Date)), + options.headers || (options.headers = [ "date" ]), options.httpVersion || (options.httpVersion = "1.1"); + var i, alg = []; + options.algorithm && (options.algorithm = options.algorithm.toLowerCase(), alg = validateAlgorithm(options.algorithm)); + var signature, stringToSign = ""; + for (i = 0; i < options.headers.length; i++) { + if ("string" != typeof options.headers[i]) throw new TypeError("options.headers must be an array of Strings"); + var h = options.headers[i].toLowerCase(); + if ("request-line" === h) { + if (options.strict) throw new StrictParsingError("request-line is not a valid header with strict parsing enabled."); + stringToSign += request.method + " " + request.path + " HTTP/" + options.httpVersion; + } else if ("(request-target)" === h) stringToSign += "(request-target): " + request.method.toLowerCase() + " " + request.path; else { + var value = request.getHeader(h); + if (void 0 === value || "" === value) throw new MissingHeaderError(h + " was not in the request"); + stringToSign += h + ": " + value; + } + i + 1 < options.headers.length && (stringToSign += "\n"); + } + if (request.hasOwnProperty("_stringToSign") && (request._stringToSign = stringToSign), + "hmac" === alg[0]) { + if ("string" != typeof options.key && !Buffer.isBuffer(options.key)) throw new TypeError("options.key must be a string or Buffer"); + var hmac = crypto.createHmac(alg[1].toUpperCase(), options.key); + hmac.update(stringToSign), signature = hmac.digest("base64"); + } else { + var key = options.key; + if (("string" == typeof key || Buffer.isBuffer(key)) && (key = sshpk.parsePrivateKey(options.key)), + assert.ok(sshpk.PrivateKey.isPrivateKey(key, [ 1, 2 ]), "options.key must be a sshpk.PrivateKey"), + !PK_ALGOS[key.type]) throw new InvalidAlgorithmError(key.type.toUpperCase() + " type keys are not supported"); + if (void 0 !== alg[0] && key.type !== alg[0]) throw new InvalidAlgorithmError("options.key must be a " + alg[0].toUpperCase() + " key, was given a " + key.type.toUpperCase() + " key instead"); + var signer = key.createSign(alg[1]); + signer.update(stringToSign); + var sigObj = signer.sign(); + if (!HASH_ALGOS[sigObj.hashAlgorithm]) throw new InvalidAlgorithmError(sigObj.hashAlgorithm.toUpperCase() + " is not a supported hash algorithm"); + options.algorithm = key.type + "-" + sigObj.hashAlgorithm, signature = sigObj.toString(), + assert.notStrictEqual(signature, "", "empty signature produced"); + } + var authzHeaderName = options.authorizationHeaderName || "Authorization"; + return request.setHeader(authzHeaderName, sprintf(AUTHZ_FMT, options.keyId, options.algorithm, options.headers.join(" "), signature)), + !0; + } + }; +}, function(module, exports, __webpack_require__) { + var mod_assert = __webpack_require__(15), mod_extsprintf = (__webpack_require__(0), + __webpack_require__(1063)), mod_verror = __webpack_require__(1064), mod_jsonschema = __webpack_require__(1067); + function hasKey(obj, key) { + return mod_assert.equal(typeof key, "string"), Object.prototype.hasOwnProperty.call(obj, key); + } + function pluckv(obj, key) { + if (null !== obj && "object" == typeof obj) { + if (obj.hasOwnProperty(key)) return obj[key]; + var i = key.indexOf("."); + if (-1 != i) { + var key1 = key.substr(0, i); + if (obj.hasOwnProperty(key1)) return pluckv(obj[key1], key.substr(i + 1)); + } + } + } + function doFlattenIter(data, depth, accum, callback) { + var each, key; + if (0 === depth) return (each = accum.slice(0)).push(data), void callback(each); + for (key in mod_assert.ok(null !== data), mod_assert.equal(typeof data, "object"), + mod_assert.equal(typeof depth, "number"), mod_assert.ok(depth >= 0), data) (each = accum.slice(0)).push(key), + doFlattenIter(data[key], depth - 1, each, callback); + } + exports.deepCopy = function deepCopy(obj) { + var ret, key, marker = "__deepCopy"; + if (obj && obj[marker]) throw new Error("attempted deep copy of cyclic object"); + if (obj && obj.constructor == Object) { + for (key in ret = {}, obj[marker] = !0, obj) key != marker && (ret[key] = deepCopy(obj[key])); + return delete obj[marker], ret; + } + if (obj && obj.constructor == Array) { + for (ret = [], obj[marker] = !0, key = 0; key < obj.length; key++) ret.push(deepCopy(obj[key])); + return delete obj[marker], ret; + } + return obj; + }, exports.deepEqual = function deepEqual(obj1, obj2) { + if (typeof obj1 != typeof obj2) return !1; + if (null === obj1 || null === obj2 || "object" != typeof obj1) return obj1 === obj2; + if (obj1.constructor != obj2.constructor) return !1; + var k; + for (k in obj1) { + if (!obj2.hasOwnProperty(k)) return !1; + if (!deepEqual(obj1[k], obj2[k])) return !1; + } + for (k in obj2) if (!obj1.hasOwnProperty(k)) return !1; + return !0; + }, exports.isEmpty = function(obj) { + var key; + for (key in obj) return !1; + return !0; + }, exports.hasKey = hasKey, exports.forEachKey = function(obj, callback) { + for (var key in obj) hasKey(obj, key) && callback(key, obj[key]); + }, exports.pluck = function(obj, key) { + return mod_assert.equal(typeof key, "string"), pluckv(obj, key); + }, exports.flattenObject = function flattenObject(data, depth) { + if (0 === depth) return [ data ]; + mod_assert.ok(null !== data), mod_assert.equal(typeof data, "object"), mod_assert.equal(typeof depth, "number"), + mod_assert.ok(depth >= 0); + var key, rv = []; + for (key in data) flattenObject(data[key], depth - 1).forEach((function(p) { + rv.push([ key ].concat(p)); + })); + return rv; + }, exports.flattenIter = function(data, depth, callback) { + doFlattenIter(data, depth, [], callback); + }, exports.validateJsonObject = validateJsonObjectJS, exports.validateJsonObjectJS = validateJsonObjectJS, + exports.randElt = function(arr) { + return mod_assert.ok(Array.isArray(arr) && arr.length > 0, "randElt argument must be a non-empty array"), + arr[Math.floor(Math.random() * arr.length)]; + }, exports.extraProperties = function(obj, allowed) { + mod_assert.ok("object" == typeof obj && null !== obj, "obj argument must be a non-null object"), + mod_assert.ok(Array.isArray(allowed), "allowed argument must be an array of strings"); + for (var i = 0; i < allowed.length; i++) mod_assert.ok("string" == typeof allowed[i], "allowed argument must be an array of strings"); + return Object.keys(obj).filter((function(key) { + return -1 === allowed.indexOf(key); + })); + }, exports.mergeObjects = mergeObjects, exports.startsWith = function(str, prefix) { + return str.substr(0, prefix.length) == prefix; + }, exports.endsWith = function(str, suffix) { + return str.substr(str.length - suffix.length, suffix.length) == suffix; + }, exports.parseInteger = function(str, uopts) { + mod_assert.string(str, "str"), mod_assert.optionalObject(uopts, "options"); + var c, baseOverride = !1, options = PI_DEFAULTS; + uopts && (baseOverride = hasKey(uopts, "base"), options = mergeObjects(options, uopts), + mod_assert.number(options.base, "options.base"), mod_assert.ok(options.base >= 2, "options.base >= 2"), + mod_assert.ok(options.base <= 36, "options.base <= 36"), mod_assert.bool(options.allowSign, "options.allowSign"), + mod_assert.bool(options.allowPrefix, "options.allowPrefix"), mod_assert.bool(options.allowTrailing, "options.allowTrailing"), + mod_assert.bool(options.allowImprecise, "options.allowImprecise"), mod_assert.bool(options.trimWhitespace, "options.trimWhitespace"), + mod_assert.bool(options.leadingZeroIsOctal, "options.leadingZeroIsOctal"), options.leadingZeroIsOctal && mod_assert.ok(!baseOverride, '"base" and "leadingZeroIsOctal" are mutually exclusive')); + var start, d, pbase = -1, base = options.base, mult = 1, value = 0, idx = 0, len = str.length; + if (options.trimWhitespace) for (;idx < len && isSpace(str.charCodeAt(idx)); ) ++idx; + for (options.allowSign && ("-" === str[idx] ? (idx += 1, mult = -1) : "+" === str[idx] && (idx += 1)), + "0" === str[idx] && (options.allowPrefix && (pbase = (function(c) { + return 98 === c || 66 === c ? 2 : 111 === c || 79 === c ? 8 : 116 === c || 84 === c ? 10 : 120 === c || 88 === c ? 16 : -1; + })(str.charCodeAt(idx + 1)), -1 === pbase || baseOverride && pbase !== base || (base = pbase, + idx += 2)), -1 === pbase && options.leadingZeroIsOctal && (base = 8)), start = idx; idx < len && -1 != (c = (d = str.charCodeAt(idx)) >= 48 && d <= 57 ? d - 48 : d >= 65 && d <= 90 ? d - 55 : d >= 97 && d <= 122 ? d - 87 : -1) && c < base; ++idx) value *= base, + value += c; + if (start === idx) return new Error("invalid number: " + JSON.stringify(str)); + if (options.trimWhitespace) for (;idx < len && isSpace(str.charCodeAt(idx)); ) ++idx; + if (idx < len && !options.allowTrailing) return new Error("trailing characters after number: " + JSON.stringify(str.slice(idx))); + if (0 === value) return 0; + var result = value * mult; + return !options.allowImprecise && (value > MAX_SAFE_INTEGER || result < MIN_SAFE_INTEGER) ? new Error("number is outside of the supported range: " + JSON.stringify(str.slice(start, idx))) : result; + }, exports.iso8601 = function(d) { + return "number" == typeof d && (d = new Date(d)), mod_assert.ok(d.constructor === Date), + mod_extsprintf.sprintf("%4d-%02d-%02dT%02d:%02d:%02d.%03dZ", d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()); + }, exports.rfc1123 = function(date) { + return mod_extsprintf.sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT", RFC1123_DAYS[date.getUTCDay()], date.getUTCDate(), RFC1123_MONTHS[date.getUTCMonth()], date.getUTCFullYear(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()); + }, exports.parseDateTime = function(str) { + var numeric = +str; + return isNaN(numeric) ? new Date(str) : new Date(numeric); + }, exports.hrtimediff = hrtimeDiff, exports.hrtimeDiff = hrtimeDiff, exports.hrtimeAccum = hrtimeAccum, + exports.hrtimeAdd = function(a, b) { + return assertHrtime(a), hrtimeAccum([ a[0], a[1] ], b); + }, exports.hrtimeNanosec = function(a) { + return assertHrtime(a), Math.floor(1e9 * a[0] + a[1]); + }, exports.hrtimeMicrosec = function(a) { + return assertHrtime(a), Math.floor(1e6 * a[0] + a[1] / 1e3); + }, exports.hrtimeMillisec = function(a) { + return assertHrtime(a), Math.floor(1e3 * a[0] + a[1] / 1e6); + }; + var RFC1123_MONTHS = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], RFC1123_DAYS = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991, MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991, PI_DEFAULTS = { + base: 10, + allowSign: !0, + allowPrefix: !1, + allowTrailing: !1, + allowImprecise: !1, + trimWhitespace: !1, + leadingZeroIsOctal: !1 + }; + function isSpace(c) { + return 32 === c || c >= 9 && c <= 13 || 160 === c || 5760 === c || 6158 === c || c >= 8192 && c <= 8202 || 8232 === c || 8233 === c || 8239 === c || 8287 === c || 12288 === c || 65279 === c; + } + function validateJsonObjectJS(schema, input) { + var report = mod_jsonschema.validate(input, schema); + if (0 === report.errors.length) return null; + var i, j, error = report.errors[0], propname = error.property, reason = error.message.toLowerCase(); + -1 != (i = reason.indexOf("the property ")) && -1 != (j = reason.indexOf(" is not defined in the schema and the schema does not allow additional properties")) && (i += "the property ".length, + propname = "" === propname ? reason.substr(i, j - i) : propname + "." + reason.substr(i, j - i), + reason = "unsupported property"); + var rv = new mod_verror.VError('property "%s": %s', propname, reason); + return rv.jsv_details = error, rv; + } + function assertHrtime(a) { + mod_assert.ok(a[0] >= 0 && a[1] >= 0, "negative numbers not allowed in hrtimes"), + mod_assert.ok(a[1] < 1e9, "nanoseconds column overflow"); + } + function hrtimeDiff(a, b) { + assertHrtime(a), assertHrtime(b), mod_assert.ok(a[0] > b[0] || a[0] == b[0] && a[1] >= b[1], "negative differences not allowed"); + var rv = [ a[0] - b[0], 0 ]; + return a[1] >= b[1] ? rv[1] = a[1] - b[1] : (rv[0]--, rv[1] = 1e9 - (b[1] - a[1])), + rv; + } + function hrtimeAccum(a, b) { + return assertHrtime(a), assertHrtime(b), a[1] += b[1], a[1] >= 1e9 && (a[0]++, a[1] -= 1e9), + a[0] += b[0], a; + } + function mergeObjects(provided, overrides, defaults) { + var rv, k; + if (rv = {}, defaults) for (k in defaults) rv[k] = defaults[k]; + if (provided) for (k in provided) rv[k] = provided[k]; + if (overrides) for (k in overrides) rv[k] = overrides[k]; + return rv; + } +}, function(module, exports, __webpack_require__) { + var mod_assert = __webpack_require__(22), mod_util = __webpack_require__(0); + function jsSprintf(fmt) { + var flags, width, precision, conversion, left, pad, sign, arg, match, regex = [ "([^%]*)", "%", "(['\\-+ #0]*?)", "([1-9]\\d*)?", "(\\.([1-9]\\d*))?", "[lhjztL]*?", "([diouxXfFeEgGaAcCsSp%jr])" ].join(""), re = new RegExp(regex), args = Array.prototype.slice.call(arguments, 1), ret = "", argn = 1; + for (mod_assert.equal("string", typeof fmt); null !== (match = re.exec(fmt)); ) if (ret += match[1], + fmt = fmt.substring(match[0].length), flags = match[2] || "", width = match[3] || 0, + precision = match[4] || "", left = !1, sign = !1, pad = " ", "%" != (conversion = match[6])) { + if (0 === args.length) throw new Error("too few args to sprintf"); + if (arg = args.shift(), argn++, flags.match(/[\' #]/)) throw new Error("unsupported flags: " + flags); + if (precision.length > 0) throw new Error("non-zero precision not supported"); + switch (flags.match(/-/) && (left = !0), flags.match(/0/) && (pad = "0"), flags.match(/\+/) && (sign = !0), + conversion) { + case "s": + if (null == arg) throw new Error("argument " + argn + ": attempted to print undefined or null as a string"); + ret += doPad(pad, width, left, arg.toString()); + break; + + case "d": + arg = Math.floor(arg); + + case "f": + ret += (sign = sign && arg > 0 ? "+" : "") + doPad(pad, width, left, arg.toString()); + break; + + case "x": + ret += doPad(pad, width, left, arg.toString(16)); + break; + + case "j": + 0 === width && (width = 10), ret += mod_util.inspect(arg, !1, width); + break; + + case "r": + ret += dumpException(arg); + break; + + default: + throw new Error("unsupported conversion: " + conversion); + } + } else ret += "%"; + return ret + fmt; + } + function jsFprintf(stream) { + var args = Array.prototype.slice.call(arguments, 1); + return stream.write(jsSprintf.apply(this, args)); + } + function doPad(chr, width, left, str) { + for (var ret = str; ret.length < width; ) left ? ret += chr : ret = chr + ret; + return ret; + } + function dumpException(ex) { + var ret; + if (!(ex instanceof Error)) throw new Error(jsSprintf("invalid type for %%r: %j", ex)); + if (ret = "EXCEPTION: " + ex.constructor.name + ": " + ex.stack, ex.cause && "function" == typeof ex.cause) { + var cex = ex.cause(); + cex && (ret += "\nCaused by: " + dumpException(cex)); + } + return ret; + } + exports.sprintf = jsSprintf, exports.printf = function() { + var args = Array.prototype.slice.call(arguments); + args.unshift(process.stdout), jsFprintf.apply(null, args); + }, exports.fprintf = jsFprintf; +}, function(module, exports, __webpack_require__) { + var mod_assertplus = __webpack_require__(15), mod_util = __webpack_require__(0), mod_extsprintf = __webpack_require__(1065), mod_isError = __webpack_require__(1066).isError, sprintf = mod_extsprintf.sprintf; + function parseConstructorArguments(args) { + var argv, options, sprintf_args, k; + if (mod_assertplus.object(args, "args"), mod_assertplus.bool(args.strict, "args.strict"), + mod_assertplus.array(args.argv, "args.argv"), 0 === (argv = args.argv).length) options = {}, + sprintf_args = []; else if (mod_isError(argv[0])) options = { + cause: argv[0] + }, sprintf_args = argv.slice(1); else if ("object" == typeof argv[0]) { + for (k in options = {}, argv[0]) options[k] = argv[0][k]; + sprintf_args = argv.slice(1); + } else mod_assertplus.string(argv[0], "first argument to VError, SError, or WError constructor must be a string, object, or Error"), + options = {}, sprintf_args = argv; + return mod_assertplus.object(options), options.strict || args.strict || (sprintf_args = sprintf_args.map((function(a) { + return null === a ? "null" : void 0 === a ? "undefined" : a; + }))), { + options: options, + shortmessage: 0 === sprintf_args.length ? "" : sprintf.apply(null, sprintf_args) + }; + } + function VError() { + var args, obj, parsed, cause, ctor, message, k; + if (args = Array.prototype.slice.call(arguments, 0), !(this instanceof VError)) return obj = Object.create(VError.prototype), + VError.apply(obj, arguments), obj; + if ((parsed = parseConstructorArguments({ + argv: args, + strict: !1 + })).options.name && (mod_assertplus.string(parsed.options.name, 'error\'s "name" must be a string'), + this.name = parsed.options.name), this.jse_shortmsg = parsed.shortmessage, message = parsed.shortmessage, + (cause = parsed.options.cause) && (mod_assertplus.ok(mod_isError(cause), "cause is not an Error"), + this.jse_cause = cause, parsed.options.skipCauseMessage || (message += ": " + cause.message)), + this.jse_info = {}, parsed.options.info) for (k in parsed.options.info) this.jse_info[k] = parsed.options.info[k]; + return this.message = message, Error.call(this, message), Error.captureStackTrace && (ctor = parsed.options.constructorOpt || this.constructor, + Error.captureStackTrace(this, ctor)), this; + } + function SError() { + var args, obj, parsed, options; + return args = Array.prototype.slice.call(arguments, 0), this instanceof SError ? (options = (parsed = parseConstructorArguments({ + argv: args, + strict: !0 + })).options, VError.call(this, options, "%s", parsed.shortmessage), this) : (obj = Object.create(SError.prototype), + SError.apply(obj, arguments), obj); + } + function MultiError(errors) { + mod_assertplus.array(errors, "list of errors"), mod_assertplus.ok(errors.length > 0, "must be at least one error"), + this.ase_errors = errors, VError.call(this, { + cause: errors[0] + }, "first of %d error%s", errors.length, 1 == errors.length ? "" : "s"); + } + function WError() { + var args, obj, parsed, options; + return args = Array.prototype.slice.call(arguments, 0), this instanceof WError ? ((options = (parsed = parseConstructorArguments({ + argv: args, + strict: !1 + })).options).skipCauseMessage = !0, VError.call(this, options, "%s", parsed.shortmessage), + this) : (obj = Object.create(WError.prototype), WError.apply(obj, args), obj); + } + module.exports = VError, VError.VError = VError, VError.SError = SError, VError.WError = WError, + VError.MultiError = MultiError, mod_util.inherits(VError, Error), VError.prototype.name = "VError", + VError.prototype.toString = function() { + var str = this.hasOwnProperty("name") && this.name || this.constructor.name || this.constructor.prototype.name; + return this.message && (str += ": " + this.message), str; + }, VError.prototype.cause = function() { + var cause = VError.cause(this); + return null === cause ? void 0 : cause; + }, VError.cause = function(err) { + return mod_assertplus.ok(mod_isError(err), "err must be an Error"), mod_isError(err.jse_cause) ? err.jse_cause : null; + }, VError.info = function(err) { + var rv, cause, k; + if (mod_assertplus.ok(mod_isError(err), "err must be an Error"), rv = null !== (cause = VError.cause(err)) ? VError.info(cause) : {}, + "object" == typeof err.jse_info && null !== err.jse_info) for (k in err.jse_info) rv[k] = err.jse_info[k]; + return rv; + }, VError.findCauseByName = function(err, name) { + var cause; + for (mod_assertplus.ok(mod_isError(err), "err must be an Error"), mod_assertplus.string(name, "name"), + mod_assertplus.ok(name.length > 0, "name cannot be empty"), cause = err; null !== cause; cause = VError.cause(cause)) if (mod_assertplus.ok(mod_isError(cause)), + cause.name == name) return cause; + return null; + }, VError.hasCauseWithName = function(err, name) { + return null !== VError.findCauseByName(err, name); + }, VError.fullStack = function(err) { + mod_assertplus.ok(mod_isError(err), "err must be an Error"); + var cause = VError.cause(err); + return cause ? err.stack + "\ncaused by: " + VError.fullStack(cause) : err.stack; + }, VError.errorFromList = function(errors) { + return mod_assertplus.arrayOfObject(errors, "errors"), 0 === errors.length ? null : (errors.forEach((function(e) { + mod_assertplus.ok(mod_isError(e)); + })), 1 == errors.length ? errors[0] : new MultiError(errors)); + }, VError.errorForEach = function(err, func) { + mod_assertplus.ok(mod_isError(err), "err must be an Error"), mod_assertplus.func(func, "func"), + err instanceof MultiError ? err.errors().forEach((function(e) { + func(e); + })) : func(err); + }, mod_util.inherits(SError, VError), mod_util.inherits(MultiError, VError), MultiError.prototype.name = "MultiError", + MultiError.prototype.errors = function() { + return this.ase_errors.slice(0); + }, mod_util.inherits(WError, VError), WError.prototype.name = "WError", WError.prototype.toString = function() { + var str = this.hasOwnProperty("name") && this.name || this.constructor.name || this.constructor.prototype.name; + return this.message && (str += ": " + this.message), this.jse_cause && this.jse_cause.message && (str += "; caused by " + this.jse_cause.toString()), + str; + }, WError.prototype.cause = function(c) { + return mod_isError(c) && (this.jse_cause = c), this.jse_cause; + }; +}, function(module, exports, __webpack_require__) { + var mod_assert = __webpack_require__(22), mod_util = __webpack_require__(0); + function jsSprintf(ofmt) { + var flags, width, precision, conversion, left, pad, sign, arg, match, convposn, curconv, regex = [ "([^%]*)", "%", "(['\\-+ #0]*?)", "([1-9]\\d*)?", "(\\.([1-9]\\d*))?", "[lhjztL]*?", "([diouxXfFeEgGaAcCsSp%jr])" ].join(""), re = new RegExp(regex), args = Array.prototype.slice.call(arguments, 1), fmt = ofmt, ret = "", argn = 1, posn = 0; + for (mod_assert.equal("string", typeof fmt, "first argument must be a format string"); null !== (match = re.exec(fmt)); ) if (ret += match[1], + fmt = fmt.substring(match[0].length), curconv = match[0].substring(match[1].length), + convposn = posn + match[1].length + 1, posn += match[0].length, flags = match[2] || "", + width = match[3] || 0, precision = match[4] || "", left = !1, sign = !1, pad = " ", + "%" != (conversion = match[6])) { + if (0 === args.length) throw jsError(ofmt, convposn, curconv, "has no matching argument (too few arguments passed)"); + if (arg = args.shift(), argn++, flags.match(/[\' #]/)) throw jsError(ofmt, convposn, curconv, "uses unsupported flags"); + if (precision.length > 0) throw jsError(ofmt, convposn, curconv, "uses non-zero precision (not supported)"); + switch (flags.match(/-/) && (left = !0), flags.match(/0/) && (pad = "0"), flags.match(/\+/) && (sign = !0), + conversion) { + case "s": + if (null == arg) throw jsError(ofmt, convposn, curconv, "attempted to print undefined or null as a string (argument " + argn + " to sprintf)"); + ret += doPad(pad, width, left, arg.toString()); + break; + + case "d": + arg = Math.floor(arg); + + case "f": + ret += (sign = sign && arg > 0 ? "+" : "") + doPad(pad, width, left, arg.toString()); + break; + + case "x": + ret += doPad(pad, width, left, arg.toString(16)); + break; + + case "j": + 0 === width && (width = 10), ret += mod_util.inspect(arg, !1, width); + break; + + case "r": + ret += dumpException(arg); + break; + + default: + throw jsError(ofmt, convposn, curconv, "is not supported"); + } + } else ret += "%"; + return ret + fmt; + } + function jsError(fmtstr, convposn, curconv, reason) { + return mod_assert.equal(typeof fmtstr, "string"), mod_assert.equal(typeof curconv, "string"), + mod_assert.equal(typeof convposn, "number"), mod_assert.equal(typeof reason, "string"), + new Error('format string "' + fmtstr + '": conversion specifier "' + curconv + '" at character ' + convposn + " " + reason); + } + function jsFprintf(stream) { + var args = Array.prototype.slice.call(arguments, 1); + return stream.write(jsSprintf.apply(this, args)); + } + function doPad(chr, width, left, str) { + for (var ret = str; ret.length < width; ) left ? ret += chr : ret = chr + ret; + return ret; + } + function dumpException(ex) { + var ret; + if (!(ex instanceof Error)) throw new Error(jsSprintf("invalid type for %%r: %j", ex)); + if (ret = "EXCEPTION: " + ex.constructor.name + ": " + ex.stack, ex.cause && "function" == typeof ex.cause) { + var cex = ex.cause(); + cex && (ret += "\nCaused by: " + dumpException(cex)); + } + return ret; + } + exports.sprintf = jsSprintf, exports.printf = function() { + var args = Array.prototype.slice.call(arguments); + args.unshift(process.stdout), jsFprintf.apply(null, args); + }, exports.fprintf = jsFprintf; +}, function(module, exports) { + function objectToString(o) { + return Object.prototype.toString.call(o); + } + exports.isArray = function(arg) { + return Array.isArray ? Array.isArray(arg) : "[object Array]" === objectToString(arg); + }, exports.isBoolean = function(arg) { + return "boolean" == typeof arg; + }, exports.isNull = function(arg) { + return null === arg; + }, exports.isNullOrUndefined = function(arg) { + return null == arg; + }, exports.isNumber = function(arg) { + return "number" == typeof arg; + }, exports.isString = function(arg) { + return "string" == typeof arg; + }, exports.isSymbol = function(arg) { + return "symbol" == typeof arg; + }, exports.isUndefined = function(arg) { + return void 0 === arg; + }, exports.isRegExp = function(re) { + return "[object RegExp]" === objectToString(re); + }, exports.isObject = function(arg) { + return "object" == typeof arg && null !== arg; + }, exports.isDate = function(d) { + return "[object Date]" === objectToString(d); + }, exports.isError = function(e) { + return "[object Error]" === objectToString(e) || e instanceof Error; + }, exports.isFunction = function(arg) { + return "function" == typeof arg; + }, exports.isPrimitive = function(arg) { + return null === arg || "boolean" == typeof arg || "number" == typeof arg || "string" == typeof arg || "symbol" == typeof arg || void 0 === arg; + }, exports.isBuffer = Buffer.isBuffer; +}, function(module, exports, __webpack_require__) { + var __WEBPACK_AMD_DEFINE_RESULT__; + __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return (function() { + var exports = validate; + exports.Integer = { + type: "integer" + }; + var primitiveConstructors = { + String: String, + Boolean: Boolean, + Number: Number, + Object: Object, + Array: Array, + Date: Date + }; + function validate(instance, schema) { + return validate(instance, schema, { + changing: !1 + }); + } + exports.validate = validate, exports.checkPropertyChange = function(value, schema, property) { + return validate(value, schema, { + changing: property || "property" + }); + }; + var validate = exports._validate = function(instance, schema, options) { + options || (options = {}); + var _changing = options.changing; + function getType(schema) { + return schema.type || primitiveConstructors[schema.name] == schema && schema.name.toLowerCase(); + } + var errors = []; + function checkProp(value, schema, path, i) { + var l; + function addError(message) { + errors.push({ + property: path, + message: message + }); + } + if (path += path ? "number" == typeof i ? "[" + i + "]" : void 0 === i ? "" : "." + i : i, + ("object" != typeof schema || schema instanceof Array) && (path || "function" != typeof schema) && (!schema || !getType(schema))) return "function" == typeof schema ? value instanceof schema || addError("is not an instance of the class/constructor " + schema.name) : schema && addError("Invalid schema/property definition " + schema), + null; + function checkType(type, value) { + if (type) { + if (!("string" != typeof type || "any" == type || ("null" == type ? null === value : typeof value == type) || value instanceof Array && "array" == type || value instanceof Date && "date" == type || "integer" == type && value % 1 == 0)) return [ { + property: path, + message: typeof value + " value found, but a " + type + " is required" + } ]; + if (type instanceof Array) { + for (var unionErrors = [], j = 0; j < type.length && (unionErrors = checkType(type[j], value)).length; j++) ; + if (unionErrors.length) return unionErrors; + } else if ("object" == typeof type) { + var priorErrors = errors; + errors = [], checkProp(value, type, path); + var theseErrors = errors; + return errors = priorErrors, theseErrors; + } + } + return []; + } + if (_changing && schema.readonly && addError("is a readonly field, it can not be changed"), + schema.extends && checkProp(value, schema.extends, path, i), void 0 === value) schema.required && addError("is missing and it is required"); else if (errors = errors.concat(checkType(getType(schema), value)), + schema.disallow && !checkType(schema.disallow, value).length && addError(" disallowed value was matched"), + null !== value) { + if (value instanceof Array) { + if (schema.items) { + var itemsIsArray = schema.items instanceof Array, propDef = schema.items; + for (i = 0, l = value.length; i < l; i += 1) itemsIsArray && (propDef = schema.items[i]), + options.coerce && (value[i] = options.coerce(value[i], propDef)), errors.concat(checkProp(value[i], propDef, path, i)); + } + schema.minItems && value.length < schema.minItems && addError("There must be a minimum of " + schema.minItems + " in the array"), + schema.maxItems && value.length > schema.maxItems && addError("There must be a maximum of " + schema.maxItems + " in the array"); + } else (schema.properties || schema.additionalProperties) && errors.concat((function(instance, objTypeDef, path, additionalProp) { + if ("object" == typeof objTypeDef) for (var i in ("object" != typeof instance || instance instanceof Array) && errors.push({ + property: path, + message: "an object is required" + }), objTypeDef) if (objTypeDef.hasOwnProperty(i)) { + var value = instance[i]; + if (void 0 === value && options.existingOnly) continue; + var propDef = objTypeDef[i]; + void 0 === value && propDef.default && (value = instance[i] = propDef.default), + options.coerce && i in instance && (value = instance[i] = options.coerce(value, propDef)), + checkProp(value, propDef, path, i); + } + for (i in instance) { + if (instance.hasOwnProperty(i) && ("_" != i.charAt(0) || "_" != i.charAt(1)) && objTypeDef && !objTypeDef[i] && !1 === additionalProp) { + if (options.filter) { + delete instance[i]; + continue; + } + errors.push({ + property: path, + message: typeof value + "The property " + i + " is not defined in the schema and the schema does not allow additional properties" + }); + } + var requires = objTypeDef && objTypeDef[i] && objTypeDef[i].requires; + requires && !(requires in instance) && errors.push({ + property: path, + message: "the presence of the property " + i + " requires that " + requires + " also be present" + }), value = instance[i], !additionalProp || objTypeDef && "object" == typeof objTypeDef && i in objTypeDef || (options.coerce && (value = instance[i] = options.coerce(value, additionalProp)), + checkProp(value, additionalProp, path, i)), !_changing && value && value.$schema && (errors = errors.concat(checkProp(value, value.$schema, path, i))); + } + return errors; + })(value, schema.properties, path, schema.additionalProperties)); + if (schema.pattern && "string" == typeof value && !value.match(schema.pattern) && addError("does not match the regex pattern " + schema.pattern), + schema.maxLength && "string" == typeof value && value.length > schema.maxLength && addError("may only be " + schema.maxLength + " characters long"), + schema.minLength && "string" == typeof value && value.length < schema.minLength && addError("must be at least " + schema.minLength + " characters long"), + void 0 !== typeof schema.minimum && typeof value == typeof schema.minimum && schema.minimum > value && addError("must have a minimum value of " + schema.minimum), + void 0 !== typeof schema.maximum && typeof value == typeof schema.maximum && schema.maximum < value && addError("must have a maximum value of " + schema.maximum), + schema.enum) { + var found, enumer = schema.enum; + l = enumer.length; + for (var j = 0; j < l; j++) if (enumer[j] === value) { + found = 1; + break; + } + found || addError("does not have a value in the enumeration " + enumer.join(", ")); + } + "number" == typeof schema.maxDecimal && value.toString().match(new RegExp("\\.[0-9]{" + (schema.maxDecimal + 1) + ",}")) && addError("may only have " + schema.maxDecimal + " digits of decimal places"); + } + return null; + } + return schema && checkProp(instance, schema, "", _changing || ""), !_changing && instance && instance.$schema && checkProp(instance, instance.$schema, "", ""), + { + valid: !errors.length, + errors: errors + }; + }; + return exports.mustBeValid = function(result) { + if (!result.valid) throw new TypeError(result.errors.map((function(error) { + return "for property " + error.property + ": " + error.message; + })).join(", \n")); + }, exports; + })(); + }.apply(exports, []), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); +}, function(module, exports, __webpack_require__) { + var assert = __webpack_require__(15), crypto = __webpack_require__(9), sshpk = __webpack_require__(230), utils = __webpack_require__(150), validateAlgorithm = (utils.HASH_ALGOS, + utils.PK_ALGOS, utils.InvalidAlgorithmError, utils.HttpSignatureError, utils.validateAlgorithm); + module.exports = { + verifySignature: function(parsedSignature, pubkey) { + assert.object(parsedSignature, "parsedSignature"), ("string" == typeof pubkey || Buffer.isBuffer(pubkey)) && (pubkey = sshpk.parseKey(pubkey)), + assert.ok(sshpk.Key.isKey(pubkey, [ 1, 1 ]), "pubkey must be a sshpk.Key"); + var alg = validateAlgorithm(parsedSignature.algorithm); + if ("hmac" === alg[0] || alg[0] !== pubkey.type) return !1; + var v = pubkey.createVerify(alg[1]); + return v.update(parsedSignature.signingString), v.verify(parsedSignature.params.signature, "base64"); + }, + verifyHMAC: function(parsedSignature, secret) { + assert.object(parsedSignature, "parsedHMAC"), assert.string(secret, "secret"); + var alg = validateAlgorithm(parsedSignature.algorithm); + if ("hmac" !== alg[0]) return !1; + var hashAlg = alg[1].toUpperCase(), hmac = crypto.createHmac(hashAlg, secret); + hmac.update(parsedSignature.signingString); + var h1 = crypto.createHmac(hashAlg, secret); + h1.update(hmac.digest()), h1 = h1.digest(); + var h2 = crypto.createHmac(hashAlg, secret); + return h2.update(new Buffer(parsedSignature.params.signature, "base64")), h2 = h2.digest(), + "string" == typeof h1 ? h1 === h2 : Buffer.isBuffer(h1) && !h1.equals ? h1.toString("binary") === h2.toString("binary") : h1.equals(h2); + } + }; +}, function(module, exports, __webpack_require__) { + module.exports = ForeverAgent, ForeverAgent.SSL = ForeverAgentSSL; + var util = __webpack_require__(0), Agent = __webpack_require__(11).Agent, net = __webpack_require__(42), tls = __webpack_require__(92), AgentSSL = __webpack_require__(21).Agent; + function getConnectionName(host, port) { + return "string" == typeof host ? host + ":" + port : host.host + ":" + host.port + ":" + (host.localAddress ? host.localAddress + ":" : ":"); + } + function ForeverAgent(options) { + var self = this; + self.options = options || {}, self.requests = {}, self.sockets = {}, self.freeSockets = {}, + self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets, self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets, + self.on("free", (function(socket, host, port) { + var name = getConnectionName(host, port); + if (self.requests[name] && self.requests[name].length) self.requests[name].shift().onSocket(socket); else if (self.sockets[name].length < self.minSockets) { + self.freeSockets[name] || (self.freeSockets[name] = []), self.freeSockets[name].push(socket); + var onIdleError = function() { + socket.destroy(); + }; + socket._onIdleError = onIdleError, socket.on("error", onIdleError); + } else socket.destroy(); + })); + } + function ForeverAgentSSL(options) { + ForeverAgent.call(this, options); + } + util.inherits(ForeverAgent, Agent), ForeverAgent.defaultMinSockets = 5, ForeverAgent.prototype.createConnection = net.createConnection, + ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest, ForeverAgent.prototype.addRequest = function(req, host, port) { + var name = getConnectionName(host, port); + if ("string" != typeof host) { + var options = host; + port = options.port, host = options.host; + } + if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) { + var idleSocket = this.freeSockets[name].pop(); + idleSocket.removeListener("error", idleSocket._onIdleError), delete idleSocket._onIdleError, + req._reusedSocket = !0, req.onSocket(idleSocket); + } else this.addRequestNoreuse(req, host, port); + }, ForeverAgent.prototype.removeSocket = function(s, name, host, port) { + var index; + this.sockets[name] ? -1 !== (index = this.sockets[name].indexOf(s)) && this.sockets[name].splice(index, 1) : this.sockets[name] && 0 === this.sockets[name].length && (delete this.sockets[name], + delete this.requests[name]), this.freeSockets[name] && -1 !== (index = this.freeSockets[name].indexOf(s)) && (this.freeSockets[name].splice(index, 1), + 0 === this.freeSockets[name].length && delete this.freeSockets[name]), this.requests[name] && this.requests[name].length && this.createSocket(name, host, port).emit("free"); + }, util.inherits(ForeverAgentSSL, ForeverAgent), ForeverAgentSSL.prototype.createConnection = function(port, host, options) { + return "object" == typeof port ? options = port : "object" == typeof host ? options = host : "object" == typeof options || (options = {}), + "number" == typeof port && (options.port = port), "string" == typeof host && (options.host = host), + tls.connect(options); + }, ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest; +}, function(module, exports, __webpack_require__) { + var CombinedStream = __webpack_require__(485), util = __webpack_require__(0), path = __webpack_require__(4), http = __webpack_require__(11), https = __webpack_require__(21), parseUrl = __webpack_require__(6).parse, fs = __webpack_require__(2), mime = __webpack_require__(89), asynckit = __webpack_require__(1072), populate = __webpack_require__(1076); + function FormData(options) { + if (!(this instanceof FormData)) return new FormData; + for (var option in this._overheadLength = 0, this._valueLength = 0, this._valuesToMeasure = [], + CombinedStream.call(this), options = options || {}) this[option] = options[option]; + } + module.exports = FormData, util.inherits(FormData, CombinedStream), FormData.LINE_BREAK = "\r\n", + FormData.DEFAULT_CONTENT_TYPE = "application/octet-stream", FormData.prototype.append = function(field, value, options) { + "string" == typeof (options = options || {}) && (options = { + filename: options + }); + var append = CombinedStream.prototype.append.bind(this); + if ("number" == typeof value && (value = "" + value), util.isArray(value)) this._error(new Error("Arrays are not supported.")); else { + var header = this._multiPartHeader(field, value, options), footer = this._multiPartFooter(); + append(header), append(value), append(footer), this._trackLength(header, value, options); + } + }, FormData.prototype._trackLength = function(header, value, options) { + var valueLength = 0; + null != options.knownLength ? valueLength += +options.knownLength : Buffer.isBuffer(value) ? valueLength = value.length : "string" == typeof value && (valueLength = Buffer.byteLength(value)), + this._valueLength += valueLength, this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length, + value && (value.path || value.readable && value.hasOwnProperty("httpVersion")) && (options.knownLength || this._valuesToMeasure.push(value)); + }, FormData.prototype._lengthRetriever = function(value, callback) { + value.hasOwnProperty("fd") ? null != value.end && value.end != 1 / 0 && null != value.start ? callback(null, value.end + 1 - (value.start ? value.start : 0)) : fs.stat(value.path, (function(err, stat) { + var fileSize; + err ? callback(err) : (fileSize = stat.size - (value.start ? value.start : 0), callback(null, fileSize)); + })) : value.hasOwnProperty("httpVersion") ? callback(null, +value.headers["content-length"]) : value.hasOwnProperty("httpModule") ? (value.on("response", (function(response) { + value.pause(), callback(null, +response.headers["content-length"]); + })), value.resume()) : callback("Unknown stream"); + }, FormData.prototype._multiPartHeader = function(field, value, options) { + if ("string" == typeof options.header) return options.header; + var header, contentDisposition = this._getContentDisposition(value, options), contentType = this._getContentType(value, options), contents = "", headers = { + "Content-Disposition": [ "form-data", 'name="' + field + '"' ].concat(contentDisposition || []), + "Content-Type": [].concat(contentType || []) + }; + for (var prop in "object" == typeof options.header && populate(headers, options.header), + headers) headers.hasOwnProperty(prop) && null != (header = headers[prop]) && (Array.isArray(header) || (header = [ header ]), + header.length && (contents += prop + ": " + header.join("; ") + FormData.LINE_BREAK)); + return "--" + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK; + }, FormData.prototype._getContentDisposition = function(value, options) { + var filename, contentDisposition; + return "string" == typeof options.filepath ? filename = path.normalize(options.filepath).replace(/\\/g, "/") : options.filename || value.name || value.path ? filename = path.basename(options.filename || value.name || value.path) : value.readable && value.hasOwnProperty("httpVersion") && (filename = path.basename(value.client._httpMessage.path)), + filename && (contentDisposition = 'filename="' + filename + '"'), contentDisposition; + }, FormData.prototype._getContentType = function(value, options) { + var contentType = options.contentType; + return !contentType && value.name && (contentType = mime.lookup(value.name)), !contentType && value.path && (contentType = mime.lookup(value.path)), + !contentType && value.readable && value.hasOwnProperty("httpVersion") && (contentType = value.headers["content-type"]), + contentType || !options.filepath && !options.filename || (contentType = mime.lookup(options.filepath || options.filename)), + contentType || "object" != typeof value || (contentType = FormData.DEFAULT_CONTENT_TYPE), + contentType; + }, FormData.prototype._multiPartFooter = function() { + return function(next) { + var footer = FormData.LINE_BREAK; + 0 === this._streams.length && (footer += this._lastBoundary()), next(footer); + }.bind(this); + }, FormData.prototype._lastBoundary = function() { + return "--" + this.getBoundary() + "--" + FormData.LINE_BREAK; + }, FormData.prototype.getHeaders = function(userHeaders) { + var header, formHeaders = { + "content-type": "multipart/form-data; boundary=" + this.getBoundary() + }; + for (header in userHeaders) userHeaders.hasOwnProperty(header) && (formHeaders[header.toLowerCase()] = userHeaders[header]); + return formHeaders; + }, FormData.prototype.getBoundary = function() { + return this._boundary || this._generateBoundary(), this._boundary; + }, FormData.prototype._generateBoundary = function() { + for (var boundary = "--------------------------", i = 0; i < 24; i++) boundary += Math.floor(10 * Math.random()).toString(16); + this._boundary = boundary; + }, FormData.prototype.getLengthSync = function() { + var knownLength = this._overheadLength + this._valueLength; + return this._streams.length && (knownLength += this._lastBoundary().length), this.hasKnownLength() || this._error(new Error("Cannot calculate proper length in synchronous way.")), + knownLength; + }, FormData.prototype.hasKnownLength = function() { + var hasKnownLength = !0; + return this._valuesToMeasure.length && (hasKnownLength = !1), hasKnownLength; + }, FormData.prototype.getLength = function(cb) { + var knownLength = this._overheadLength + this._valueLength; + this._streams.length && (knownLength += this._lastBoundary().length), this._valuesToMeasure.length ? asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, (function(err, values) { + err ? cb(err) : (values.forEach((function(length) { + knownLength += length; + })), cb(null, knownLength)); + })) : process.nextTick(cb.bind(this, null, knownLength)); + }, FormData.prototype.submit = function(params, cb) { + var request, options, defaults = { + method: "post" + }; + return "string" == typeof params ? (params = parseUrl(params), options = populate({ + port: params.port, + path: params.pathname, + host: params.hostname, + protocol: params.protocol + }, defaults)) : (options = populate(params, defaults)).port || (options.port = "https:" == options.protocol ? 443 : 80), + options.headers = this.getHeaders(params.headers), request = "https:" == options.protocol ? https.request(options) : http.request(options), + this.getLength(function(err, length) { + err ? this._error(err) : (request.setHeader("Content-Length", length), this.pipe(request), + cb && (request.on("error", cb), request.on("response", cb.bind(this, null)))); + }.bind(this)), request; + }, FormData.prototype._error = function(err) { + this.error || (this.error = err, this.pause(), this.emit("error", err)); + }, FormData.prototype.toString = function() { + return "[object FormData]"; + }; +}, function(module, exports, __webpack_require__) { + var Stream = __webpack_require__(3).Stream, util = __webpack_require__(0); + function DelayedStream() { + this.source = null, this.dataSize = 0, this.maxDataSize = 1048576, this.pauseStream = !0, + this._maxDataSizeExceeded = !1, this._released = !1, this._bufferedEvents = []; + } + module.exports = DelayedStream, util.inherits(DelayedStream, Stream), DelayedStream.create = function(source, options) { + var delayedStream = new this; + for (var option in options = options || {}) delayedStream[option] = options[option]; + delayedStream.source = source; + var realEmit = source.emit; + return source.emit = function() { + return delayedStream._handleEmit(arguments), realEmit.apply(source, arguments); + }, source.on("error", (function() {})), delayedStream.pauseStream && source.pause(), + delayedStream; + }, Object.defineProperty(DelayedStream.prototype, "readable", { + configurable: !0, + enumerable: !0, + get: function() { + return this.source.readable; + } + }), DelayedStream.prototype.setEncoding = function() { + return this.source.setEncoding.apply(this.source, arguments); + }, DelayedStream.prototype.resume = function() { + this._released || this.release(), this.source.resume(); + }, DelayedStream.prototype.pause = function() { + this.source.pause(); + }, DelayedStream.prototype.release = function() { + this._released = !0, this._bufferedEvents.forEach(function(args) { + this.emit.apply(this, args); + }.bind(this)), this._bufferedEvents = []; + }, DelayedStream.prototype.pipe = function() { + var r = Stream.prototype.pipe.apply(this, arguments); + return this.resume(), r; + }, DelayedStream.prototype._handleEmit = function(args) { + this._released ? this.emit.apply(this, args) : ("data" === args[0] && (this.dataSize += args[1].length, + this._checkIfMaxDataSizeExceeded()), this._bufferedEvents.push(args)); + }, DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { + if (!(this._maxDataSizeExceeded || this.dataSize <= this.maxDataSize)) { + this._maxDataSizeExceeded = !0; + var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded."; + this.emit("error", new Error(message)); + } + }; +}, function(module, exports, __webpack_require__) { + module.exports = { + parallel: __webpack_require__(1073), + serial: __webpack_require__(1075), + serialOrdered: __webpack_require__(491) + }; +}, function(module, exports, __webpack_require__) { + var iterate = __webpack_require__(486), initState = __webpack_require__(489), terminator = __webpack_require__(490); + module.exports = function(list, iterator, callback) { + for (var state = initState(list); state.index < (state.keyedList || list).length; ) iterate(list, iterator, state, (function(error, result) { + error ? callback(error, result) : 0 !== Object.keys(state.jobs).length || callback(null, state.results); + })), state.index++; + return terminator.bind(state, callback); + }; +}, function(module, exports) { + module.exports = function(fn) { + var nextTick = "function" == typeof setImmediate ? setImmediate : "object" == typeof process && "function" == typeof process.nextTick ? process.nextTick : null; + nextTick ? nextTick(fn) : setTimeout(fn, 0); + }; +}, function(module, exports, __webpack_require__) { + var serialOrdered = __webpack_require__(491); + module.exports = function(list, iterator, callback) { + return serialOrdered(list, iterator, null, callback); + }; +}, function(module, exports) { + module.exports = function(dst, src) { + return Object.keys(src).forEach((function(prop) { + dst[prop] = dst[prop] || src[prop]; + })), dst; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + function formatHostname(hostname) { + return hostname.replace(/^\.*/, ".").toLowerCase(); + } + function parseNoProxyZone(zone) { + var zoneParts = (zone = zone.trim().toLowerCase()).split(":", 2); + return { + hostname: formatHostname(zoneParts[0]), + port: zoneParts[1], + hasPort: zone.indexOf(":") > -1 + }; + } + module.exports = function(uri) { + var noProxy = process.env.NO_PROXY || process.env.no_proxy || ""; + return "*" === noProxy || "" !== noProxy && (function(uri, noProxy) { + var port = uri.port || ("https:" === uri.protocol ? "443" : "80"), hostname = formatHostname(uri.hostname); + return noProxy.split(",").map(parseNoProxyZone).some((function(noProxyZone) { + var isMatchedAt = hostname.indexOf(noProxyZone.hostname), hostnameMatched = isMatchedAt > -1 && isMatchedAt === hostname.length - noProxyZone.hostname.length; + return noProxyZone.hasPort ? port === noProxyZone.port && hostnameMatched : hostnameMatched; + })); + })(uri, noProxy) ? null : "http:" === uri.protocol ? process.env.HTTP_PROXY || process.env.http_proxy || null : "https:" === uri.protocol && (process.env.HTTPS_PROXY || process.env.https_proxy || process.env.HTTP_PROXY || process.env.http_proxy) || null; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var qs = __webpack_require__(493), querystring = __webpack_require__(24); + function Querystring(request) { + this.request = request, this.lib = null, this.useQuerystring = null, this.parseOptions = null, + this.stringifyOptions = null; + } + Querystring.prototype.init = function(options) { + this.lib || (this.useQuerystring = options.useQuerystring, this.lib = this.useQuerystring ? querystring : qs, + this.parseOptions = options.qsParseOptions || {}, this.stringifyOptions = options.qsStringifyOptions || {}); + }, Querystring.prototype.stringify = function(obj) { + return this.useQuerystring ? this.rfc3986(this.lib.stringify(obj, this.stringifyOptions.sep || null, this.stringifyOptions.eq || null, this.stringifyOptions)) : this.lib.stringify(obj, this.stringifyOptions); + }, Querystring.prototype.parse = function(str) { + return this.useQuerystring ? this.lib.parse(str, this.parseOptions.sep || null, this.parseOptions.eq || null, this.parseOptions) : this.lib.parse(str, this.parseOptions); + }, Querystring.prototype.rfc3986 = function(str) { + return str.replace(/[!'()*]/g, (function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + })); + }, Querystring.prototype.unescape = querystring.unescape, exports.Querystring = Querystring; +}, function(module, exports, __webpack_require__) { + "use strict"; + var utils = __webpack_require__(494), formats = __webpack_require__(495), arrayPrefixGenerators = { + brackets: function(prefix) { + return prefix + "[]"; + }, + indices: function(prefix, key) { + return prefix + "[" + key + "]"; + }, + repeat: function(prefix) { + return prefix; + } + }, toISO = Date.prototype.toISOString, defaults = { + delimiter: "&", + encode: !0, + encoder: utils.encode, + encodeValuesOnly: !1, + serializeDate: function(date) { + return toISO.call(date); + }, + skipNulls: !1, + strictNullHandling: !1 + }, stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly) { + var obj = object; + if ("function" == typeof filter) obj = filter(prefix, obj); else if (obj instanceof Date) obj = serializeDate(obj); else if (null === obj) { + if (strictNullHandling) return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix; + obj = ""; + } + if ("string" == typeof obj || "number" == typeof obj || "boolean" == typeof obj || utils.isBuffer(obj)) return encoder ? [ formatter(encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder)) + "=" + formatter(encoder(obj, defaults.encoder)) ] : [ formatter(prefix) + "=" + formatter(String(obj)) ]; + var objKeys, values = []; + if (void 0 === obj) return values; + if (Array.isArray(filter)) objKeys = filter; else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + skipNulls && null === obj[key] || (values = Array.isArray(obj) ? values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly)) : values.concat(stringify(obj[key], prefix + (allowDots ? "." + key : "[" + key + "]"), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly))); + } + return values; + }; + module.exports = function(object, opts) { + var obj = object, options = opts ? utils.assign({}, opts) : {}; + if (null !== options.encoder && void 0 !== options.encoder && "function" != typeof options.encoder) throw new TypeError("Encoder has to be a function."); + var delimiter = void 0 === options.delimiter ? defaults.delimiter : options.delimiter, strictNullHandling = "boolean" == typeof options.strictNullHandling ? options.strictNullHandling : defaults.strictNullHandling, skipNulls = "boolean" == typeof options.skipNulls ? options.skipNulls : defaults.skipNulls, encode = "boolean" == typeof options.encode ? options.encode : defaults.encode, encoder = "function" == typeof options.encoder ? options.encoder : defaults.encoder, sort = "function" == typeof options.sort ? options.sort : null, allowDots = void 0 !== options.allowDots && options.allowDots, serializeDate = "function" == typeof options.serializeDate ? options.serializeDate : defaults.serializeDate, encodeValuesOnly = "boolean" == typeof options.encodeValuesOnly ? options.encodeValuesOnly : defaults.encodeValuesOnly; + if (void 0 === options.format) options.format = formats.default; else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) throw new TypeError("Unknown format option provided."); + var objKeys, filter, formatter = formats.formatters[options.format]; + "function" == typeof options.filter ? obj = (filter = options.filter)("", obj) : Array.isArray(options.filter) && (objKeys = filter = options.filter); + var arrayFormat, keys = []; + if ("object" != typeof obj || null === obj) return ""; + arrayFormat = options.arrayFormat in arrayPrefixGenerators ? options.arrayFormat : "indices" in options ? options.indices ? "indices" : "repeat" : "indices"; + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + objKeys || (objKeys = Object.keys(obj)), sort && objKeys.sort(sort); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + skipNulls && null === obj[key] || (keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encode ? encoder : null, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly))); + } + var joined = keys.join(delimiter), prefix = !0 === options.addQueryPrefix ? "?" : ""; + return joined.length > 0 ? prefix + joined : ""; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var utils = __webpack_require__(494), has = Object.prototype.hasOwnProperty, defaults = { + allowDots: !1, + allowPrototypes: !1, + arrayLimit: 20, + decoder: utils.decode, + delimiter: "&", + depth: 5, + parameterLimit: 1e3, + plainObjects: !1, + strictNullHandling: !1 + }, parseKeys = function(givenKey, val, options) { + if (givenKey) { + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, "[$1]") : givenKey, child = /(\[[^[\]]*])/g, segment = /(\[[^[\]]*])/.exec(key), parent = segment ? key.slice(0, segment.index) : key, keys = []; + if (parent) { + if (!options.plainObjects && has.call(Object.prototype, parent) && !options.allowPrototypes) return; + keys.push(parent); + } + for (var i = 0; null !== (segment = child.exec(key)) && i < options.depth; ) { + if (i += 1, !options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1)) && !options.allowPrototypes) return; + keys.push(segment[1]); + } + return segment && keys.push("[" + key.slice(segment.index) + "]"), (function(chain, val, options) { + for (var leaf = val, i = chain.length - 1; i >= 0; --i) { + var obj, root = chain[i]; + if ("[]" === root) obj = (obj = []).concat(leaf); else { + obj = options.plainObjects ? Object.create(null) : {}; + var cleanRoot = "[" === root.charAt(0) && "]" === root.charAt(root.length - 1) ? root.slice(1, -1) : root, index = parseInt(cleanRoot, 10); + !isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit ? (obj = [])[index] = leaf : obj[cleanRoot] = leaf; + } + leaf = obj; + } + return leaf; + })(keys, val, options); + } + }; + module.exports = function(str, opts) { + var options = opts ? utils.assign({}, opts) : {}; + if (null !== options.decoder && void 0 !== options.decoder && "function" != typeof options.decoder) throw new TypeError("Decoder has to be a function."); + if (options.ignoreQueryPrefix = !0 === options.ignoreQueryPrefix, options.delimiter = "string" == typeof options.delimiter || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter, + options.depth = "number" == typeof options.depth ? options.depth : defaults.depth, + options.arrayLimit = "number" == typeof options.arrayLimit ? options.arrayLimit : defaults.arrayLimit, + options.parseArrays = !1 !== options.parseArrays, options.decoder = "function" == typeof options.decoder ? options.decoder : defaults.decoder, + options.allowDots = "boolean" == typeof options.allowDots ? options.allowDots : defaults.allowDots, + options.plainObjects = "boolean" == typeof options.plainObjects ? options.plainObjects : defaults.plainObjects, + options.allowPrototypes = "boolean" == typeof options.allowPrototypes ? options.allowPrototypes : defaults.allowPrototypes, + options.parameterLimit = "number" == typeof options.parameterLimit ? options.parameterLimit : defaults.parameterLimit, + options.strictNullHandling = "boolean" == typeof options.strictNullHandling ? options.strictNullHandling : defaults.strictNullHandling, + "" === str || null == str) return options.plainObjects ? Object.create(null) : {}; + for (var tempObj = "string" == typeof str ? (function(str, options) { + for (var obj = {}, cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str, limit = options.parameterLimit === 1 / 0 ? void 0 : options.parameterLimit, parts = cleanStr.split(options.delimiter, limit), i = 0; i < parts.length; ++i) { + var key, val, part = parts[i], bracketEqualsPos = part.indexOf("]="), pos = -1 === bracketEqualsPos ? part.indexOf("=") : bracketEqualsPos + 1; + -1 === pos ? (key = options.decoder(part, defaults.decoder), val = options.strictNullHandling ? null : "") : (key = options.decoder(part.slice(0, pos), defaults.decoder), + val = options.decoder(part.slice(pos + 1), defaults.decoder)), has.call(obj, key) ? obj[key] = [].concat(obj[key]).concat(val) : obj[key] = val; + } + return obj; + })(str, options) : str, obj = options.plainObjects ? Object.create(null) : {}, keys = Object.keys(tempObj), i = 0; i < keys.length; ++i) { + var key = keys[i], newObj = parseKeys(key, tempObj[key], options); + obj = utils.merge(obj, newObj, options); + } + return utils.compact(obj); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var fs = __webpack_require__(2), qs = __webpack_require__(24), validate = __webpack_require__(1082), extend = __webpack_require__(147); + function Har(request) { + this.request = request; + } + Har.prototype.reducer = function(obj, pair) { + if (void 0 === obj[pair.name]) return obj[pair.name] = pair.value, obj; + var arr = [ obj[pair.name], pair.value ]; + return obj[pair.name] = arr, obj; + }, Har.prototype.prep = function(data) { + if (data.queryObj = {}, data.headersObj = {}, data.postData.jsonObj = !1, data.postData.paramsObj = !1, + data.queryString && data.queryString.length && (data.queryObj = data.queryString.reduce(this.reducer, {})), + data.headers && data.headers.length && (data.headersObj = data.headers.reduceRight((function(headers, header) { + return headers[header.name] = header.value, headers; + }), {})), data.cookies && data.cookies.length) { + var cookies = data.cookies.map((function(cookie) { + return cookie.name + "=" + cookie.value; + })); + cookies.length && (data.headersObj.cookie = cookies.join("; ")); + } + function some(arr) { + return arr.some((function(type) { + return 0 === data.postData.mimeType.indexOf(type); + })); + } + if (some([ "multipart/mixed", "multipart/related", "multipart/form-data", "multipart/alternative" ])) data.postData.mimeType = "multipart/form-data"; else if (some([ "application/x-www-form-urlencoded" ])) data.postData.params ? (data.postData.paramsObj = data.postData.params.reduce(this.reducer, {}), + data.postData.text = qs.stringify(data.postData.paramsObj)) : data.postData.text = ""; else if (some([ "text/json", "text/x-json", "application/json", "application/x-json" ]) && (data.postData.mimeType = "application/json", + data.postData.text)) try { + data.postData.jsonObj = JSON.parse(data.postData.text); + } catch (e) { + this.request.debug(e), data.postData.mimeType = "text/plain"; + } + return data; + }, Har.prototype.options = function(options) { + if (!options.har) return options; + var har = {}; + if (extend(har, options.har), har.log && har.log.entries && (har = har.log.entries[0]), + har.url = har.url || options.url || options.uri || options.baseUrl || "/", har.httpVersion = har.httpVersion || "HTTP/1.1", + har.queryString = har.queryString || [], har.headers = har.headers || [], har.cookies = har.cookies || [], + har.postData = har.postData || {}, har.postData.mimeType = har.postData.mimeType || "application/octet-stream", + har.bodySize = 0, har.headersSize = 0, har.postData.size = 0, !validate.request(har)) return options; + var req = this.prep(har); + function test(type) { + return 0 === req.postData.mimeType.indexOf(type); + } + return req.url && (options.url = req.url), req.method && (options.method = req.method), + Object.keys(req.queryObj).length && (options.qs = req.queryObj), Object.keys(req.headersObj).length && (options.headers = req.headersObj), + test("application/x-www-form-urlencoded") ? options.form = req.postData.paramsObj : test("application/json") ? req.postData.jsonObj && (options.body = req.postData.jsonObj, + options.json = !0) : test("multipart/form-data") ? (options.formData = {}, req.postData.params.forEach((function(param) { + var attachment = {}; + param.fileName || param.fileName || param.contentType ? (param.fileName && !param.value ? attachment.value = fs.createReadStream(param.fileName) : param.value && (attachment.value = param.value), + param.fileName && (attachment.options = { + filename: param.fileName, + contentType: param.contentType ? param.contentType : null + }), options.formData[param.name] = attachment) : options.formData[param.name] = param.value; + }))) : req.postData.text && (options.body = req.postData.text), options; + }, exports.Har = Har; +}, function(module, exports, __webpack_require__) { + var ajv, Ajv = __webpack_require__(1083), HARError = __webpack_require__(1116), schemas = __webpack_require__(1117); + function validate(name, data) { + data = data || {}; + var validate = (ajv = ajv || (function() { + var ajv = new Ajv({ + allErrors: !0 + }); + return ajv.addMetaSchema(__webpack_require__(1136)), ajv.addSchema(schemas), ajv; + })()).getSchema(name + ".json"); + return new Promise((function(resolve, reject) { + validate(data) ? resolve(data) : reject(new HARError(validate.errors)); + })); + } + exports.afterRequest = function(data) { + return validate("afterRequest", data); + }, exports.beforeRequest = function(data) { + return validate("beforeRequest", data); + }, exports.browser = function(data) { + return validate("browser", data); + }, exports.cache = function(data) { + return validate("cache", data); + }, exports.content = function(data) { + return validate("content", data); + }, exports.cookie = function(data) { + return validate("cookie", data); + }, exports.creator = function(data) { + return validate("creator", data); + }, exports.entry = function(data) { + return validate("entry", data); + }, exports.har = function(data) { + return validate("har", data); + }, exports.header = function(data) { + return validate("header", data); + }, exports.log = function(data) { + return validate("log", data); + }, exports.page = function(data) { + return validate("page", data); + }, exports.pageTimings = function(data) { + return validate("pageTimings", data); + }, exports.postData = function(data) { + return validate("postData", data); + }, exports.query = function(data) { + return validate("query", data); + }, exports.request = function(data) { + return validate("request", data); + }, exports.response = function(data) { + return validate("response", data); + }, exports.timings = function(data) { + return validate("timings", data); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var compileSchema = __webpack_require__(1084), resolve = __webpack_require__(237), Cache = __webpack_require__(1088), SchemaObject = __webpack_require__(496), stableStringify = __webpack_require__(497), formats = __webpack_require__(1089), rules = __webpack_require__(1090), $dataMetaSchema = __webpack_require__(1111), util = __webpack_require__(80); + module.exports = Ajv, Ajv.prototype.validate = function(schemaKeyRef, data) { + var v; + if ("string" == typeof schemaKeyRef) { + if (!(v = this.getSchema(schemaKeyRef))) throw new Error('no schema with key or ref "' + schemaKeyRef + '"'); + } else { + var schemaObj = this._addSchema(schemaKeyRef); + v = schemaObj.validate || this._compile(schemaObj); + } + var valid = v(data); + return !0 !== v.$async && (this.errors = v.errors), valid; + }, Ajv.prototype.compile = function(schema, _meta) { + var schemaObj = this._addSchema(schema, void 0, _meta); + return schemaObj.validate || this._compile(schemaObj); + }, Ajv.prototype.addSchema = function(schema, key, _skipValidation, _meta) { + if (Array.isArray(schema)) { + for (var i = 0; i < schema.length; i++) this.addSchema(schema[i], void 0, _skipValidation, _meta); + return this; + } + var id = this._getId(schema); + if (void 0 !== id && "string" != typeof id) throw new Error("schema id must be string"); + return checkUnique(this, key = resolve.normalizeId(key || id)), this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, !0), + this; + }, Ajv.prototype.addMetaSchema = function(schema, key, skipValidation) { + return this.addSchema(schema, key, skipValidation, !0), this; + }, Ajv.prototype.validateSchema = function(schema, throwOrLogError) { + var $schema = schema.$schema; + if (void 0 !== $schema && "string" != typeof $schema) throw new Error("$schema must be a string"); + if (!($schema = $schema || this._opts.defaultMeta || (function(self) { + var meta = self._opts.meta; + return self._opts.defaultMeta = "object" == typeof meta ? self._getId(meta) || meta : self.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0, + self._opts.defaultMeta; + })(this))) return this.logger.warn("meta-schema not available"), this.errors = null, + !0; + var valid = this.validate($schema, schema); + if (!valid && throwOrLogError) { + var message = "schema is invalid: " + this.errorsText(); + if ("log" != this._opts.validateSchema) throw new Error(message); + this.logger.error(message); + } + return valid; + }, Ajv.prototype.getSchema = function(keyRef) { + var schemaObj = _getSchemaObj(this, keyRef); + switch (typeof schemaObj) { + case "object": + return schemaObj.validate || this._compile(schemaObj); + + case "string": + return this.getSchema(schemaObj); + + case "undefined": + return (function(self, ref) { + var res = resolve.schema.call(self, { + schema: {} + }, ref); + if (res) { + var schema = res.schema, root = res.root, baseId = res.baseId, v = compileSchema.call(self, schema, root, void 0, baseId); + return self._fragments[ref] = new SchemaObject({ + ref: ref, + fragment: !0, + schema: schema, + root: root, + baseId: baseId, + validate: v + }), v; + } + })(this, keyRef); + } + }, Ajv.prototype.removeSchema = function(schemaKeyRef) { + if (schemaKeyRef instanceof RegExp) return _removeAllSchemas(this, this._schemas, schemaKeyRef), + _removeAllSchemas(this, this._refs, schemaKeyRef), this; + switch (typeof schemaKeyRef) { + case "undefined": + return _removeAllSchemas(this, this._schemas), _removeAllSchemas(this, this._refs), + this._cache.clear(), this; + + case "string": + var schemaObj = _getSchemaObj(this, schemaKeyRef); + return schemaObj && this._cache.del(schemaObj.cacheKey), delete this._schemas[schemaKeyRef], + delete this._refs[schemaKeyRef], this; + + case "object": + var serialize = this._opts.serialize, cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef; + this._cache.del(cacheKey); + var id = this._getId(schemaKeyRef); + id && (id = resolve.normalizeId(id), delete this._schemas[id], delete this._refs[id]); + } + return this; + }, Ajv.prototype.addFormat = function(name, format) { + return "string" == typeof format && (format = new RegExp(format)), this._formats[name] = format, + this; + }, Ajv.prototype.errorsText = function(errors, options) { + if (!(errors = errors || this.errors)) return "No errors"; + for (var separator = void 0 === (options = options || {}).separator ? ", " : options.separator, dataVar = void 0 === options.dataVar ? "data" : options.dataVar, text = "", i = 0; i < errors.length; i++) { + var e = errors[i]; + e && (text += dataVar + e.dataPath + " " + e.message + separator); + } + return text.slice(0, -separator.length); + }, Ajv.prototype._addSchema = function(schema, skipValidation, meta, shouldAddSchema) { + if ("object" != typeof schema && "boolean" != typeof schema) throw new Error("schema should be object or boolean"); + var serialize = this._opts.serialize, cacheKey = serialize ? serialize(schema) : schema, cached = this._cache.get(cacheKey); + if (cached) return cached; + shouldAddSchema = shouldAddSchema || !1 !== this._opts.addUsedSchema; + var id = resolve.normalizeId(this._getId(schema)); + id && shouldAddSchema && checkUnique(this, id); + var recursiveMeta, willValidate = !1 !== this._opts.validateSchema && !skipValidation; + willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)) && this.validateSchema(schema, !0); + var localRefs = resolve.ids.call(this, schema), schemaObj = new SchemaObject({ + id: id, + schema: schema, + localRefs: localRefs, + cacheKey: cacheKey, + meta: meta + }); + return "#" != id[0] && shouldAddSchema && (this._refs[id] = schemaObj), this._cache.put(cacheKey, schemaObj), + willValidate && recursiveMeta && this.validateSchema(schema, !0), schemaObj; + }, Ajv.prototype._compile = function(schemaObj, root) { + if (schemaObj.compiling) return schemaObj.validate = callValidate, callValidate.schema = schemaObj.schema, + callValidate.errors = null, callValidate.root = root || callValidate, !0 === schemaObj.schema.$async && (callValidate.$async = !0), + callValidate; + var currentOpts, v; + schemaObj.compiling = !0, schemaObj.meta && (currentOpts = this._opts, this._opts = this._metaOpts); + try { + v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); + } catch (e) { + throw delete schemaObj.validate, e; + } finally { + schemaObj.compiling = !1, schemaObj.meta && (this._opts = currentOpts); + } + return schemaObj.validate = v, schemaObj.refs = v.refs, schemaObj.refVal = v.refVal, + schemaObj.root = v.root, v; + function callValidate() { + var _validate = schemaObj.validate, result = _validate.apply(this, arguments); + return callValidate.errors = _validate.errors, result; + } + }, Ajv.prototype.compileAsync = __webpack_require__(1112); + var customKeyword = __webpack_require__(1113); + Ajv.prototype.addKeyword = customKeyword.add, Ajv.prototype.getKeyword = customKeyword.get, + Ajv.prototype.removeKeyword = customKeyword.remove, Ajv.prototype.validateKeyword = customKeyword.validate; + var errorClasses = __webpack_require__(239); + Ajv.ValidationError = errorClasses.Validation, Ajv.MissingRefError = errorClasses.MissingRef, + Ajv.$dataMetaSchema = $dataMetaSchema; + var META_SCHEMA_ID = "http://json-schema.org/draft-07/schema", META_IGNORE_OPTIONS = [ "removeAdditional", "useDefaults", "coerceTypes", "strictDefaults" ], META_SUPPORT_DATA = [ "/properties" ]; + function Ajv(opts) { + if (!(this instanceof Ajv)) return new Ajv(opts); + opts = this._opts = util.copy(opts) || {}, (function(self) { + var logger = self._opts.logger; + if (!1 === logger) self.logger = { + log: noop, + warn: noop, + error: noop + }; else { + if (void 0 === logger && (logger = console), !("object" == typeof logger && logger.log && logger.warn && logger.error)) throw new Error("logger must implement log, warn and error methods"); + self.logger = logger; + } + })(this), this._schemas = {}, this._refs = {}, this._fragments = {}, this._formats = formats(opts.format), + this._cache = opts.cache || new Cache, this._loadingSchemas = {}, this._compilations = [], + this.RULES = rules(), this._getId = (function(opts) { + switch (opts.schemaId) { + case "auto": + return _get$IdOrId; + + case "id": + return _getId; + + default: + return _get$Id; + } + })(opts), opts.loopRequired = opts.loopRequired || 1 / 0, "property" == opts.errorDataPath && (opts._errorDataPathProperty = !0), + void 0 === opts.serialize && (opts.serialize = stableStringify), this._metaOpts = (function(self) { + for (var metaOpts = util.copy(self._opts), i = 0; i < META_IGNORE_OPTIONS.length; i++) delete metaOpts[META_IGNORE_OPTIONS[i]]; + return metaOpts; + })(this), opts.formats && (function(self) { + for (var name in self._opts.formats) { + var format = self._opts.formats[name]; + self.addFormat(name, format); + } + })(this), (function(self) { + var $dataSchema; + if (self._opts.$data && ($dataSchema = __webpack_require__(1115), self.addMetaSchema($dataSchema, $dataSchema.$id, !0)), + !1 !== self._opts.meta) { + var metaSchema = __webpack_require__(503); + self._opts.$data && (metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA)), + self.addMetaSchema(metaSchema, META_SCHEMA_ID, !0), self._refs["http://json-schema.org/schema"] = META_SCHEMA_ID; + } + })(this), "object" == typeof opts.meta && this.addMetaSchema(opts.meta), opts.nullable && this.addKeyword("nullable", { + metaSchema: { + type: "boolean" + } + }), (function(self) { + var optsSchemas = self._opts.schemas; + if (optsSchemas) if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas); else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key); + })(this); + } + function _getSchemaObj(self, keyRef) { + return keyRef = resolve.normalizeId(keyRef), self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef]; + } + function _removeAllSchemas(self, schemas, regex) { + for (var keyRef in schemas) { + var schemaObj = schemas[keyRef]; + schemaObj.meta || regex && !regex.test(keyRef) || (self._cache.del(schemaObj.cacheKey), + delete schemas[keyRef]); + } + } + function _getId(schema) { + return schema.$id && this.logger.warn("schema $id ignored", schema.$id), schema.id; + } + function _get$Id(schema) { + return schema.id && this.logger.warn("schema id ignored", schema.id), schema.$id; + } + function _get$IdOrId(schema) { + if (schema.$id && schema.id && schema.$id != schema.id) throw new Error("schema $id is different from id"); + return schema.$id || schema.id; + } + function checkUnique(self, id) { + if (self._schemas[id] || self._refs[id]) throw new Error('schema with key or id "' + id + '" already exists'); + } + function noop() {} +}, function(module, exports, __webpack_require__) { + "use strict"; + var resolve = __webpack_require__(237), util = __webpack_require__(80), errorClasses = __webpack_require__(239), stableStringify = __webpack_require__(497), validateGenerator = __webpack_require__(498), ucs2length = util.ucs2length, equal = __webpack_require__(238), ValidationError = errorClasses.Validation; + function checkCompiling(schema, root, baseId) { + var index = compIndex.call(this, schema, root, baseId); + return index >= 0 ? { + index: index, + compiling: !0 + } : (index = this._compilations.length, this._compilations[index] = { + schema: schema, + root: root, + baseId: baseId + }, { + index: index, + compiling: !1 + }); + } + function endCompiling(schema, root, baseId) { + var i = compIndex.call(this, schema, root, baseId); + i >= 0 && this._compilations.splice(i, 1); + } + function compIndex(schema, root, baseId) { + for (var i = 0; i < this._compilations.length; i++) { + var c = this._compilations[i]; + if (c.schema == schema && c.root == root && c.baseId == baseId) return i; + } + return -1; + } + function patternCode(i, patterns) { + return "var pattern" + i + " = new RegExp(" + util.toQuotedString(patterns[i]) + ");"; + } + function defaultCode(i) { + return "var default" + i + " = defaults[" + i + "];"; + } + function refValCode(i, refVal) { + return void 0 === refVal[i] ? "" : "var refVal" + i + " = refVal[" + i + "];"; + } + function customRuleCode(i) { + return "var customRule" + i + " = customRules[" + i + "];"; + } + function vars(arr, statement) { + if (!arr.length) return ""; + for (var code = "", i = 0; i < arr.length; i++) code += statement(i, arr); + return code; + } + module.exports = function compile(schema, root, localRefs, baseId) { + var self = this, opts = this._opts, refVal = [ void 0 ], refs = {}, patterns = [], patternsHash = {}, defaults = [], defaultsHash = {}, customRules = []; + root = root || { + schema: schema, + refVal: refVal, + refs: refs + }; + var c = checkCompiling.call(this, schema, root, baseId), compilation = this._compilations[c.index]; + if (c.compiling) return compilation.callValidate = function callValidate() { + var validate = compilation.validate, result = validate.apply(this, arguments); + return callValidate.errors = validate.errors, result; + }; + var formats = this._formats, RULES = this.RULES; + try { + var v = localCompile(schema, root, localRefs, baseId); + compilation.validate = v; + var cv = compilation.callValidate; + return cv && (cv.schema = v.schema, cv.errors = null, cv.refs = v.refs, cv.refVal = v.refVal, + cv.root = v.root, cv.$async = v.$async, opts.sourceCode && (cv.source = v.source)), + v; + } finally { + endCompiling.call(this, schema, root, baseId); + } + function localCompile(_schema, _root, localRefs, baseId) { + var isRoot = !_root || _root && _root.schema == _schema; + if (_root.schema != root.schema) return compile.call(self, _schema, _root, localRefs, baseId); + var validate, $async = !0 === _schema.$async, sourceCode = validateGenerator({ + isTop: !0, + schema: _schema, + isRoot: isRoot, + baseId: baseId, + root: _root, + schemaPath: "", + errSchemaPath: "#", + errorPath: '""', + MissingRefError: errorClasses.MissingRef, + RULES: RULES, + validate: validateGenerator, + util: util, + resolve: resolve, + resolveRef: resolveRef, + usePattern: usePattern, + useDefault: useDefault, + useCustomRule: useCustomRule, + opts: opts, + formats: formats, + logger: self.logger, + self: self + }); + sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + sourceCode, + opts.processCode && (sourceCode = opts.processCode(sourceCode)); + try { + validate = new Function("self", "RULES", "formats", "root", "refVal", "defaults", "customRules", "equal", "ucs2length", "ValidationError", sourceCode)(self, RULES, formats, root, refVal, defaults, customRules, equal, ucs2length, ValidationError), + refVal[0] = validate; + } catch (e) { + throw self.logger.error("Error compiling schema, function code:", sourceCode), e; + } + return validate.schema = _schema, validate.errors = null, validate.refs = refs, + validate.refVal = refVal, validate.root = isRoot ? validate : _root, $async && (validate.$async = !0), + !0 === opts.sourceCode && (validate.source = { + code: sourceCode, + patterns: patterns, + defaults: defaults + }), validate; + } + function resolveRef(baseId, ref, isRoot) { + ref = resolve.url(baseId, ref); + var _refVal, refCode, refIndex = refs[ref]; + if (void 0 !== refIndex) return resolvedRef(_refVal = refVal[refIndex], refCode = "refVal[" + refIndex + "]"); + if (!isRoot && root.refs) { + var rootRefId = root.refs[ref]; + if (void 0 !== rootRefId) return resolvedRef(_refVal = root.refVal[rootRefId], refCode = addLocalRef(ref, _refVal)); + } + refCode = addLocalRef(ref); + var v = resolve.call(self, localCompile, root, ref); + if (void 0 === v) { + var localSchema = localRefs && localRefs[ref]; + localSchema && (v = resolve.inlineRef(localSchema, opts.inlineRefs) ? localSchema : compile.call(self, localSchema, root, localRefs, baseId)); + } + if (void 0 !== v) return (function(ref, v) { + var refId = refs[ref]; + refVal[refId] = v; + })(ref, v), resolvedRef(v, refCode); + !(function(ref) { + delete refs[ref]; + })(ref); + } + function addLocalRef(ref, v) { + var refId = refVal.length; + return refVal[refId] = v, refs[ref] = refId, "refVal" + refId; + } + function resolvedRef(refVal, code) { + return "object" == typeof refVal || "boolean" == typeof refVal ? { + code: code, + schema: refVal, + inline: !0 + } : { + code: code, + $async: refVal && !!refVal.$async + }; + } + function usePattern(regexStr) { + var index = patternsHash[regexStr]; + return void 0 === index && (index = patternsHash[regexStr] = patterns.length, patterns[index] = regexStr), + "pattern" + index; + } + function useDefault(value) { + switch (typeof value) { + case "boolean": + case "number": + return "" + value; + + case "string": + return util.toQuotedString(value); + + case "object": + if (null === value) return "null"; + var valueStr = stableStringify(value), index = defaultsHash[valueStr]; + return void 0 === index && (index = defaultsHash[valueStr] = defaults.length, defaults[index] = value), + "default" + index; + } + } + function useCustomRule(rule, schema, parentSchema, it) { + if (!1 !== self._opts.validateSchema) { + var deps = rule.definition.dependencies; + if (deps && !deps.every((function(keyword) { + return Object.prototype.hasOwnProperty.call(parentSchema, keyword); + }))) throw new Error("parent schema must have all required keywords: " + deps.join(",")); + var validateSchema = rule.definition.validateSchema; + if (validateSchema && !validateSchema(schema)) { + var message = "keyword schema is invalid: " + self.errorsText(validateSchema.errors); + if ("log" != self._opts.validateSchema) throw new Error(message); + self.logger.error(message); + } + } + var validate, compile = rule.definition.compile, inline = rule.definition.inline, macro = rule.definition.macro; + if (compile) validate = compile.call(self, schema, parentSchema, it); else if (macro) validate = macro.call(self, schema, parentSchema, it), + !1 !== opts.validateSchema && self.validateSchema(validate, !0); else if (inline) validate = inline.call(self, it, rule.keyword, schema, parentSchema); else if (!(validate = rule.definition.validate)) return; + if (void 0 === validate) throw new Error('custom keyword "' + rule.keyword + '"failed to compile'); + var index = customRules.length; + return customRules[index] = validate, { + code: "customRule" + index, + validate: validate + }; + } + }; +}, function(module, exports, __webpack_require__) { + !(function(exports) { + "use strict"; + function merge() { + for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) sets[_key] = arguments[_key]; + if (sets.length > 1) { + sets[0] = sets[0].slice(0, -1); + for (var xl = sets.length - 1, x = 1; x < xl; ++x) sets[x] = sets[x].slice(1, -1); + return sets[xl] = sets[xl].slice(1), sets.join(""); + } + return sets[0]; + } + function subexp(str) { + return "(?:" + str + ")"; + } + function typeOf(o) { + return void 0 === o ? "undefined" : null === o ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase(); + } + function toUpperCase(str) { + return str.toUpperCase(); + } + function buildExps(isIRI) { + var HEXDIG$$ = merge("[0-9]", "[A-Fa-f]"), PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", RESERVED$$ = merge("[\\:\\/\\?\\#\\[\\]\\@]", SUB_DELIMS$$), IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]", UNRESERVED$$ = merge("[A-Za-z]", "[0-9]", "[\\-\\.\\_\\~]", isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]"), SCHEME$ = subexp("[A-Za-z]" + merge("[A-Za-z]", "[0-9]", "[\\+\\-\\.]") + "*"), USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"), DEC_OCTET_RELAXED$ = (subexp(subexp("25[0-5]") + "|" + subexp("2[0-4][0-9]") + "|" + subexp("1[0-9][0-9]") + "|" + subexp("[1-9][0-9]") + "|[0-9]"), + subexp(subexp("25[0-5]") + "|" + subexp("2[0-4][0-9]") + "|" + subexp("1[0-9][0-9]") + "|" + subexp("0?[1-9][0-9]") + "|0?0?[0-9]")), IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$ + "{1,4}"), LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), IPV6ADDRESS$ = subexp([ IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$ ].join("|")), ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"), IPV6ADDRZ_RELAXED$ = (subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), + subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$)), IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"), IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"), HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")|" + REG_NAME$), PORT$ = subexp("[0-9]*"), AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")), SEGMENT$ = subexp(PCHAR$ + "*"), SEGMENT_NZ$ = subexp(PCHAR$ + "+"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"), PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), PATH_EMPTY$ = "(?!" + PCHAR$ + ")", QUERY$ = (subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), + subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*")), FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"); + return subexp(URI$ + "|" + RELATIVE$), subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")"), + subexp("\\?(" + QUERY$ + ")"), subexp("\\#(" + FRAGMENT$ + ")"), subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")"), + subexp("\\?(" + QUERY$ + ")"), subexp("\\#(" + FRAGMENT$ + ")"), subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")"), + subexp("\\?(" + QUERY$ + ")"), subexp("\\#(" + FRAGMENT$ + ")"), subexp("(" + USERINFO$ + ")@"), + subexp("\\:(" + PORT$ + ")"), { + NOT_SCHEME: new RegExp(merge("[^]", "[A-Za-z]", "[0-9]", "[\\+\\-\\.]"), "g"), + NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"), + NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"), + ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"), + UNRESERVED: new RegExp(UNRESERVED$$, "g"), + OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"), + PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"), + IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"), + IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") + }; + } + var URI_PROTOCOL = buildExps(!1), IRI_PROTOCOL = buildExps(!0), slicedToArray = function(arr, i) { + if (Array.isArray(arr)) return arr; + if (Symbol.iterator in Object(arr)) return (function(arr, i) { + var _arr = [], _n = !0, _d = !1, _e = void 0; + try { + for (var _s, _i = arr[Symbol.iterator](); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), + !i || _arr.length !== i); _n = !0) ; + } catch (err) { + _d = !0, _e = err; + } finally { + try { + !_n && _i.return && _i.return(); + } finally { + if (_d) throw _e; + } + } + return _arr; + })(arr, i); + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + }, maxInt = 2147483647, regexPunycode = /^xn--/, regexNonASCII = /[^\0-\x7E]/, regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, errors = { + overflow: "Overflow: input needs wider integers to process", + "not-basic": "Illegal input >= 0x80 (not a basic code point)", + "invalid-input": "Invalid input" + }, floor = Math.floor, stringFromCharCode = String.fromCharCode; + function error$1(type) { + throw new RangeError(errors[type]); + } + function mapDomain(string, fn) { + var parts = string.split("@"), result = ""; + return parts.length > 1 && (result = parts[0] + "@", string = parts[1]), result + (function(array, fn) { + for (var result = [], length = array.length; length--; ) result[length] = fn(array[length]); + return result; + })((string = string.replace(regexSeparators, ".")).split("."), fn).join("."); + } + function ucs2decode(string) { + for (var output = [], counter = 0, length = string.length; counter < length; ) { + var value = string.charCodeAt(counter++); + if (value >= 55296 && value <= 56319 && counter < length) { + var extra = string.charCodeAt(counter++); + 56320 == (64512 & extra) ? output.push(((1023 & value) << 10) + (1023 & extra) + 65536) : (output.push(value), + counter--); + } else output.push(value); + } + return output; + } + var digitToBasic = function(digit, flag) { + return digit + 22 + 75 * (digit < 26) - ((0 != flag) << 5); + }, adapt = function(delta, numPoints, firstTime) { + var k = 0; + for (delta = firstTime ? floor(delta / 700) : delta >> 1, delta += floor(delta / numPoints); delta > 455; k += 36) delta = floor(delta / 35); + return floor(k + 36 * delta / (delta + 38)); + }, decode = function(input) { + var codePoint, output = [], inputLength = input.length, i = 0, n = 128, bias = 72, basic = input.lastIndexOf("-"); + basic < 0 && (basic = 0); + for (var j = 0; j < basic; ++j) input.charCodeAt(j) >= 128 && error$1("not-basic"), + output.push(input.charCodeAt(j)); + for (var index = basic > 0 ? basic + 1 : 0; index < inputLength; ) { + for (var oldi = i, w = 1, k = 36; ;k += 36) { + index >= inputLength && error$1("invalid-input"); + var digit = (codePoint = input.charCodeAt(index++)) - 48 < 10 ? codePoint - 22 : codePoint - 65 < 26 ? codePoint - 65 : codePoint - 97 < 26 ? codePoint - 97 : 36; + (digit >= 36 || digit > floor((maxInt - i) / w)) && error$1("overflow"), i += digit * w; + var t = k <= bias ? 1 : k >= bias + 26 ? 26 : k - bias; + if (digit < t) break; + var baseMinusT = 36 - t; + w > floor(maxInt / baseMinusT) && error$1("overflow"), w *= baseMinusT; + } + var out = output.length + 1; + bias = adapt(i - oldi, out, 0 == oldi), floor(i / out) > maxInt - n && error$1("overflow"), + n += floor(i / out), i %= out, output.splice(i++, 0, n); + } + return String.fromCodePoint.apply(String, output); + }, encode = function(input) { + var output = [], inputLength = (input = ucs2decode(input)).length, n = 128, delta = 0, bias = 72, _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0; + try { + for (var _step, _iterator = input[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) { + var _currentValue2 = _step.value; + _currentValue2 < 128 && output.push(stringFromCharCode(_currentValue2)); + } + } catch (err) { + _didIteratorError = !0, _iteratorError = err; + } finally { + try { + !_iteratorNormalCompletion && _iterator.return && _iterator.return(); + } finally { + if (_didIteratorError) throw _iteratorError; + } + } + var basicLength = output.length, handledCPCount = basicLength; + for (basicLength && output.push("-"); handledCPCount < inputLength; ) { + var m = maxInt, _iteratorNormalCompletion2 = !0, _didIteratorError2 = !1, _iteratorError2 = void 0; + try { + for (var _step2, _iterator2 = input[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = !0) { + var currentValue = _step2.value; + currentValue >= n && currentValue < m && (m = currentValue); + } + } catch (err) { + _didIteratorError2 = !0, _iteratorError2 = err; + } finally { + try { + !_iteratorNormalCompletion2 && _iterator2.return && _iterator2.return(); + } finally { + if (_didIteratorError2) throw _iteratorError2; + } + } + var handledCPCountPlusOne = handledCPCount + 1; + m - n > floor((maxInt - delta) / handledCPCountPlusOne) && error$1("overflow"), + delta += (m - n) * handledCPCountPlusOne, n = m; + var _iteratorNormalCompletion3 = !0, _didIteratorError3 = !1, _iteratorError3 = void 0; + try { + for (var _step3, _iterator3 = input[Symbol.iterator](); !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = !0) { + var _currentValue = _step3.value; + if (_currentValue < n && ++delta > maxInt && error$1("overflow"), _currentValue == n) { + for (var q = delta, k = 36; ;k += 36) { + var t = k <= bias ? 1 : k >= bias + 26 ? 26 : k - bias; + if (q < t) break; + var qMinusT = q - t, baseMinusT = 36 - t; + output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))), q = floor(qMinusT / baseMinusT); + } + output.push(stringFromCharCode(digitToBasic(q, 0))), bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength), + delta = 0, ++handledCPCount; + } + } + } catch (err) { + _didIteratorError3 = !0, _iteratorError3 = err; + } finally { + try { + !_iteratorNormalCompletion3 && _iterator3.return && _iterator3.return(); + } finally { + if (_didIteratorError3) throw _iteratorError3; + } + } + ++delta, ++n; + } + return output.join(""); + }, punycode_toASCII = function(input) { + return mapDomain(input, (function(string) { + return regexNonASCII.test(string) ? "xn--" + encode(string) : string; + })); + }, punycode_toUnicode = function(input) { + return mapDomain(input, (function(string) { + return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string; + })); + }, SCHEMES = {}; + function pctEncChar(chr) { + var c = chr.charCodeAt(0); + return c < 16 ? "%0" + c.toString(16).toUpperCase() : c < 128 ? "%" + c.toString(16).toUpperCase() : c < 2048 ? "%" + (c >> 6 | 192).toString(16).toUpperCase() + "%" + (63 & c | 128).toString(16).toUpperCase() : "%" + (c >> 12 | 224).toString(16).toUpperCase() + "%" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (63 & c | 128).toString(16).toUpperCase(); + } + function pctDecChars(str) { + for (var newStr = "", i = 0, il = str.length; i < il; ) { + var c = parseInt(str.substr(i + 1, 2), 16); + if (c < 128) newStr += String.fromCharCode(c), i += 3; else if (c >= 194 && c < 224) { + if (il - i >= 6) { + var c2 = parseInt(str.substr(i + 4, 2), 16); + newStr += String.fromCharCode((31 & c) << 6 | 63 & c2); + } else newStr += str.substr(i, 6); + i += 6; + } else if (c >= 224) { + if (il - i >= 9) { + var _c = parseInt(str.substr(i + 4, 2), 16), c3 = parseInt(str.substr(i + 7, 2), 16); + newStr += String.fromCharCode((15 & c) << 12 | (63 & _c) << 6 | 63 & c3); + } else newStr += str.substr(i, 9); + i += 9; + } else newStr += str.substr(i, 3), i += 3; + } + return newStr; + } + function _normalizeComponentEncoding(components, protocol) { + function decodeUnreserved(str) { + var decStr = pctDecChars(str); + return decStr.match(protocol.UNRESERVED) ? decStr : str; + } + return components.scheme && (components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, "")), + void 0 !== components.userinfo && (components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase)), + void 0 !== components.host && (components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase)), + void 0 !== components.path && (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)), + void 0 !== components.query && (components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase)), + void 0 !== components.fragment && (components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase)), + components; + } + function _stripLeadingZeros(str) { + return str.replace(/^0*(.*)/, "$1") || "0"; + } + function _normalizeIPv4(host, protocol) { + var matches = host.match(protocol.IPV4ADDRESS) || [], address = slicedToArray(matches, 2)[1]; + return address ? address.split(".").map(_stripLeadingZeros).join(".") : host; + } + function _normalizeIPv6(host, protocol) { + var matches = host.match(protocol.IPV6ADDRESS) || [], _matches2 = slicedToArray(matches, 3), address = _matches2[1], zone = _matches2[2]; + if (address) { + for (var _address$toLowerCase$ = address.toLowerCase().split("::").reverse(), _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2), last = _address$toLowerCase$2[0], first = _address$toLowerCase$2[1], firstFields = first ? first.split(":").map(_stripLeadingZeros) : [], lastFields = last.split(":").map(_stripLeadingZeros), isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]), fieldCount = isLastFieldIPv4Address ? 7 : 8, lastFieldsStart = lastFields.length - fieldCount, fields = Array(fieldCount), x = 0; x < fieldCount; ++x) fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || ""; + isLastFieldIPv4Address && (fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol)); + var longestZeroFields = fields.reduce((function(acc, field, index) { + if (!field || "0" === field) { + var lastLongest = acc[acc.length - 1]; + lastLongest && lastLongest.index + lastLongest.length === index ? lastLongest.length++ : acc.push({ + index: index, + length: 1 + }); + } + return acc; + }), []).sort((function(a, b) { + return b.length - a.length; + }))[0], newHost = void 0; + if (longestZeroFields && longestZeroFields.length > 1) { + var newFirst = fields.slice(0, longestZeroFields.index), newLast = fields.slice(longestZeroFields.index + longestZeroFields.length); + newHost = newFirst.join(":") + "::" + newLast.join(":"); + } else newHost = fields.join(":"); + return zone && (newHost += "%" + zone), newHost; + } + return host; + } + var URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i, NO_MATCH_IS_UNDEFINED = void 0 === "".match(/(){0}/)[1]; + function parse(uriString) { + var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, components = {}, protocol = !1 !== options.iri ? IRI_PROTOCOL : URI_PROTOCOL; + "suffix" === options.reference && (uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString); + var matches = uriString.match(URI_PARSE); + if (matches) { + NO_MATCH_IS_UNDEFINED ? (components.scheme = matches[1], components.userinfo = matches[3], + components.host = matches[4], components.port = parseInt(matches[5], 10), components.path = matches[6] || "", + components.query = matches[7], components.fragment = matches[8], isNaN(components.port) && (components.port = matches[5])) : (components.scheme = matches[1] || void 0, + components.userinfo = -1 !== uriString.indexOf("@") ? matches[3] : void 0, components.host = -1 !== uriString.indexOf("//") ? matches[4] : void 0, + components.port = parseInt(matches[5], 10), components.path = matches[6] || "", + components.query = -1 !== uriString.indexOf("?") ? matches[7] : void 0, components.fragment = -1 !== uriString.indexOf("#") ? matches[8] : void 0, + isNaN(components.port) && (components.port = uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : void 0)), + components.host && (components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol)), + void 0 !== components.scheme || void 0 !== components.userinfo || void 0 !== components.host || void 0 !== components.port || components.path || void 0 !== components.query ? void 0 === components.scheme ? components.reference = "relative" : void 0 === components.fragment ? components.reference = "absolute" : components.reference = "uri" : components.reference = "same-document", + options.reference && "suffix" !== options.reference && options.reference !== components.reference && (components.error = components.error || "URI is not a " + options.reference + " reference."); + var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; + if (options.unicodeSupport || schemeHandler && schemeHandler.unicodeSupport) _normalizeComponentEncoding(components, protocol); else { + if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) try { + components.host = punycode_toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()); + } catch (e) { + components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e; + } + _normalizeComponentEncoding(components, URI_PROTOCOL); + } + schemeHandler && schemeHandler.parse && schemeHandler.parse(components, options); + } else components.error = components.error || "URI can not be parsed."; + return components; + } + function _recomposeAuthority(components, options) { + var protocol = !1 !== options.iri ? IRI_PROTOCOL : URI_PROTOCOL, uriTokens = []; + return void 0 !== components.userinfo && (uriTokens.push(components.userinfo), uriTokens.push("@")), + void 0 !== components.host && uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (function(_, $1, $2) { + return "[" + $1 + ($2 ? "%25" + $2 : "") + "]"; + }))), "number" == typeof components.port && (uriTokens.push(":"), uriTokens.push(components.port.toString(10))), + uriTokens.length ? uriTokens.join("") : void 0; + } + var RDS1 = /^\.\.?\//, RDS2 = /^\/\.(\/|$)/, RDS3 = /^\/\.\.(\/|$)/, RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/; + function removeDotSegments(input) { + for (var output = []; input.length; ) if (input.match(RDS1)) input = input.replace(RDS1, ""); else if (input.match(RDS2)) input = input.replace(RDS2, "/"); else if (input.match(RDS3)) input = input.replace(RDS3, "/"), + output.pop(); else if ("." === input || ".." === input) input = ""; else { + var im = input.match(RDS5); + if (!im) throw new Error("Unexpected dot segment condition"); + var s = im[0]; + input = input.slice(s.length), output.push(s); + } + return output.join(""); + } + function serialize(components) { + var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL, uriTokens = [], schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; + if (schemeHandler && schemeHandler.serialize && schemeHandler.serialize(components, options), + components.host) if (protocol.IPV6ADDRESS.test(components.host)) ; else if (options.domainHost || schemeHandler && schemeHandler.domainHost) try { + components.host = options.iri ? punycode_toUnicode(components.host) : punycode_toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()); + } catch (e) { + components.error = components.error || "Host's domain name can not be converted to " + (options.iri ? "Unicode" : "ASCII") + " via punycode: " + e; + } + _normalizeComponentEncoding(components, protocol), "suffix" !== options.reference && components.scheme && (uriTokens.push(components.scheme), + uriTokens.push(":")); + var authority = _recomposeAuthority(components, options); + if (void 0 !== authority && ("suffix" !== options.reference && uriTokens.push("//"), + uriTokens.push(authority), components.path && "/" !== components.path.charAt(0) && uriTokens.push("/")), + void 0 !== components.path) { + var s = components.path; + options.absolutePath || schemeHandler && schemeHandler.absolutePath || (s = removeDotSegments(s)), + void 0 === authority && (s = s.replace(/^\/\//, "/%2F")), uriTokens.push(s); + } + return void 0 !== components.query && (uriTokens.push("?"), uriTokens.push(components.query)), + void 0 !== components.fragment && (uriTokens.push("#"), uriTokens.push(components.fragment)), + uriTokens.join(""); + } + function resolveComponents(base, relative) { + var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, target = {}; + return arguments[3] || (base = parse(serialize(base, options), options), relative = parse(serialize(relative, options), options)), + !(options = options || {}).tolerant && relative.scheme ? (target.scheme = relative.scheme, + target.userinfo = relative.userinfo, target.host = relative.host, target.port = relative.port, + target.path = removeDotSegments(relative.path || ""), target.query = relative.query) : (void 0 !== relative.userinfo || void 0 !== relative.host || void 0 !== relative.port ? (target.userinfo = relative.userinfo, + target.host = relative.host, target.port = relative.port, target.path = removeDotSegments(relative.path || ""), + target.query = relative.query) : (relative.path ? ("/" === relative.path.charAt(0) ? target.path = removeDotSegments(relative.path) : (void 0 === base.userinfo && void 0 === base.host && void 0 === base.port || base.path ? base.path ? target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path : target.path = relative.path : target.path = "/" + relative.path, + target.path = removeDotSegments(target.path)), target.query = relative.query) : (target.path = base.path, + void 0 !== relative.query ? target.query = relative.query : target.query = base.query), + target.userinfo = base.userinfo, target.host = base.host, target.port = base.port), + target.scheme = base.scheme), target.fragment = relative.fragment, target; + } + function unescapeComponent(str, options) { + return str && str.toString().replace(options && options.iri ? IRI_PROTOCOL.PCT_ENCODED : URI_PROTOCOL.PCT_ENCODED, pctDecChars); + } + var handler = { + scheme: "http", + domainHost: !0, + parse: function(components, options) { + return components.host || (components.error = components.error || "HTTP URIs must have a host."), + components; + }, + serialize: function(components, options) { + return components.port !== ("https" !== String(components.scheme).toLowerCase() ? 80 : 443) && "" !== components.port || (components.port = void 0), + components.path || (components.path = "/"), components; + } + }, handler$1 = { + scheme: "https", + domainHost: handler.domainHost, + parse: handler.parse, + serialize: handler.serialize + }, O = {}, UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]", HEXDIG$$ = "[0-9A-Fa-f]", PCT_ENCODED$ = subexp(subexp("%[EFef][0-9A-Fa-f]%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f][0-9A-Fa-f]%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), VCHAR$$ = merge("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]", '[\\"\\\\]'), UNRESERVED = new RegExp(UNRESERVED$$, "g"), PCT_ENCODED = new RegExp(PCT_ENCODED$, "g"), NOT_LOCAL_PART = new RegExp(merge("[^]", "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]", "[\\.]", '[\\"]', VCHAR$$), "g"), NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"), "g"), NOT_HFVALUE = NOT_HFNAME; + function decodeUnreserved(str) { + var decStr = pctDecChars(str); + return decStr.match(UNRESERVED) ? decStr : str; + } + var handler$2 = { + scheme: "mailto", + parse: function(components, options) { + var mailtoComponents = components, to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(",") : []; + if (mailtoComponents.path = void 0, mailtoComponents.query) { + for (var unknownHeaders = !1, headers = {}, hfields = mailtoComponents.query.split("&"), x = 0, xl = hfields.length; x < xl; ++x) { + var hfield = hfields[x].split("="); + switch (hfield[0]) { + case "to": + for (var toAddrs = hfield[1].split(","), _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) to.push(toAddrs[_x]); + break; + + case "subject": + mailtoComponents.subject = unescapeComponent(hfield[1], options); + break; + + case "body": + mailtoComponents.body = unescapeComponent(hfield[1], options); + break; + + default: + unknownHeaders = !0, headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options); + } + } + unknownHeaders && (mailtoComponents.headers = headers); + } + mailtoComponents.query = void 0; + for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) { + var addr = to[_x2].split("@"); + if (addr[0] = unescapeComponent(addr[0]), options.unicodeSupport) addr[1] = unescapeComponent(addr[1], options).toLowerCase(); else try { + addr[1] = punycode_toASCII(unescapeComponent(addr[1], options).toLowerCase()); + } catch (e) { + mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e; + } + to[_x2] = addr.join("@"); + } + return mailtoComponents; + }, + serialize: function(mailtoComponents, options) { + var obj, components = mailtoComponents, to = null != (obj = mailtoComponents.to) ? obj instanceof Array ? obj : "number" != typeof obj.length || obj.split || obj.setInterval || obj.call ? [ obj ] : Array.prototype.slice.call(obj) : []; + if (to) { + for (var x = 0, xl = to.length; x < xl; ++x) { + var toAddr = String(to[x]), atIdx = toAddr.lastIndexOf("@"), localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar), domain = toAddr.slice(atIdx + 1); + try { + domain = options.iri ? punycode_toUnicode(domain) : punycode_toASCII(unescapeComponent(domain, options).toLowerCase()); + } catch (e) { + components.error = components.error || "Email address's domain name can not be converted to " + (options.iri ? "Unicode" : "ASCII") + " via punycode: " + e; + } + to[x] = localPart + "@" + domain; + } + components.path = to.join(","); + } + var headers = mailtoComponents.headers = mailtoComponents.headers || {}; + mailtoComponents.subject && (headers.subject = mailtoComponents.subject), mailtoComponents.body && (headers.body = mailtoComponents.body); + var fields = []; + for (var name in headers) headers[name] !== O[name] && 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)); + return fields.length && (components.query = fields.join("&")), components; + } + }, URN_PARSE = /^([^\:]+)\:(.*)/, handler$3 = { + scheme: "urn", + parse: function(components, options) { + var matches = components.path && components.path.match(URN_PARSE), urnComponents = components; + if (matches) { + var scheme = options.scheme || urnComponents.scheme || "urn", nid = matches[1].toLowerCase(), nss = matches[2], urnScheme = scheme + ":" + (options.nid || nid), schemeHandler = SCHEMES[urnScheme]; + urnComponents.nid = nid, urnComponents.nss = nss, urnComponents.path = void 0, schemeHandler && (urnComponents = schemeHandler.parse(urnComponents, options)); + } else urnComponents.error = urnComponents.error || "URN can not be parsed."; + return urnComponents; + }, + serialize: function(urnComponents, options) { + var scheme = options.scheme || urnComponents.scheme || "urn", nid = urnComponents.nid, urnScheme = scheme + ":" + (options.nid || nid), schemeHandler = SCHEMES[urnScheme]; + schemeHandler && (urnComponents = schemeHandler.serialize(urnComponents, options)); + var uriComponents = urnComponents, nss = urnComponents.nss; + return uriComponents.path = (nid || options.nid) + ":" + nss, uriComponents; + } + }, UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/, handler$4 = { + scheme: "urn:uuid", + parse: function(urnComponents, options) { + var uuidComponents = urnComponents; + return uuidComponents.uuid = uuidComponents.nss, uuidComponents.nss = void 0, options.tolerant || uuidComponents.uuid && uuidComponents.uuid.match(UUID) || (uuidComponents.error = uuidComponents.error || "UUID is not valid."), + uuidComponents; + }, + serialize: function(uuidComponents, options) { + var urnComponents = uuidComponents; + return urnComponents.nss = (uuidComponents.uuid || "").toLowerCase(), urnComponents; + } + }; + SCHEMES[handler.scheme] = handler, SCHEMES[handler$1.scheme] = handler$1, SCHEMES[handler$2.scheme] = handler$2, + SCHEMES[handler$3.scheme] = handler$3, SCHEMES[handler$4.scheme] = handler$4, exports.SCHEMES = SCHEMES, + exports.pctEncChar = pctEncChar, exports.pctDecChars = pctDecChars, exports.parse = parse, + exports.removeDotSegments = removeDotSegments, exports.serialize = serialize, exports.resolveComponents = resolveComponents, + exports.resolve = function(baseURI, relativeURI, options) { + var schemelessOptions = (function(target, source) { + var obj = target; + if (source) for (var key in source) obj[key] = source[key]; + return obj; + })({ + scheme: "null" + }, options); + return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, !0), schemelessOptions); + }, exports.normalize = function(uri, options) { + return "string" == typeof uri ? uri = serialize(parse(uri, options), options) : "object" === typeOf(uri) && (uri = parse(serialize(uri, options), options)), + uri; + }, exports.equal = function(uriA, uriB, options) { + return "string" == typeof uriA ? uriA = serialize(parse(uriA, options), options) : "object" === typeOf(uriA) && (uriA = serialize(uriA, options)), + "string" == typeof uriB ? uriB = serialize(parse(uriB, options), options) : "object" === typeOf(uriB) && (uriB = serialize(uriB, options)), + uriA === uriB; + }, exports.escapeComponent = function(str, options) { + return str && str.toString().replace(options && options.iri ? IRI_PROTOCOL.ESCAPE : URI_PROTOCOL.ESCAPE, pctEncChar); + }, exports.unescapeComponent = unescapeComponent, Object.defineProperty(exports, "__esModule", { + value: !0 + }); + })(exports); +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(str) { + for (var value, length = 0, len = str.length, pos = 0; pos < len; ) length++, (value = str.charCodeAt(pos++)) >= 55296 && value <= 56319 && pos < len && 56320 == (64512 & (value = str.charCodeAt(pos))) && pos++; + return length; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var traverse = module.exports = function(schema, opts, cb) { + "function" == typeof opts && (cb = opts, opts = {}), _traverse(opts, "function" == typeof (cb = opts.cb || cb) ? cb : cb.pre || function() {}, cb.post || function() {}, schema, "", schema); + }; + function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { + if (schema && "object" == typeof schema && !Array.isArray(schema)) { + for (var key in pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex), + schema) { + var sch = schema[key]; + if (Array.isArray(sch)) { + if (key in traverse.arrayKeywords) for (var i = 0; i < sch.length; i++) _traverse(opts, pre, post, sch[i], jsonPtr + "/" + key + "/" + i, rootSchema, jsonPtr, key, schema, i); + } else if (key in traverse.propsKeywords) { + if (sch && "object" == typeof sch) for (var prop in sch) _traverse(opts, pre, post, sch[prop], jsonPtr + "/" + key + "/" + prop.replace(/~/g, "~0").replace(/\//g, "~1"), rootSchema, jsonPtr, key, schema, prop); + } else (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) && _traverse(opts, pre, post, sch, jsonPtr + "/" + key, rootSchema, jsonPtr, key, schema); + } + post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); + } + } + traverse.keywords = { + additionalItems: !0, + items: !0, + contains: !0, + additionalProperties: !0, + propertyNames: !0, + not: !0 + }, traverse.arrayKeywords = { + items: !0, + allOf: !0, + anyOf: !0, + oneOf: !0 + }, traverse.propsKeywords = { + definitions: !0, + properties: !0, + patternProperties: !0, + dependencies: !0 + }, traverse.skipKeywords = { + default: !0, + enum: !0, + const: !0, + required: !0, + maximum: !0, + minimum: !0, + exclusiveMaximum: !0, + exclusiveMinimum: !0, + multipleOf: !0, + maxLength: !0, + minLength: !0, + pattern: !0, + format: !0, + maxItems: !0, + minItems: !0, + uniqueItems: !0, + maxProperties: !0, + minProperties: !0 + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var Cache = module.exports = function() { + this._cache = {}; + }; + Cache.prototype.put = function(key, value) { + this._cache[key] = value; + }, Cache.prototype.get = function(key) { + return this._cache[key]; + }, Cache.prototype.del = function(key) { + delete this._cache[key]; + }, Cache.prototype.clear = function() { + this._cache = {}; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var util = __webpack_require__(80), DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/, DAYS = [ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ], TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i, HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i, 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, 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, URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i, UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i, JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/, JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i, RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/; + function formats(mode) { + return mode = "full" == mode ? "full" : "fast", util.copy(formats[mode]); + } + function date(str) { + var matches = str.match(DATE); + if (!matches) return !1; + var year = +matches[1], month = +matches[2], day = +matches[3]; + return month >= 1 && month <= 12 && day >= 1 && day <= (2 == month && (function(year) { + return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0); + })(year) ? 29 : DAYS[month]); + } + function time(str, full) { + var matches = str.match(TIME); + if (!matches) return !1; + var hour = matches[1], minute = matches[2], second = matches[3], timeZone = matches[5]; + return (hour <= 23 && minute <= 59 && second <= 59 || 23 == hour && 59 == minute && 60 == second) && (!full || timeZone); + } + module.exports = formats, formats.fast = { + date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/, + time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i, + "date-time": /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i, + uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i, + "uri-reference": /^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, + "uri-template": URITEMPLATE, + url: URL, + email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i, + hostname: HOSTNAME, + ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, + ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, + regex: regex, + uuid: UUID, + "json-pointer": JSON_POINTER, + "json-pointer-uri-fragment": JSON_POINTER_URI_FRAGMENT, + "relative-json-pointer": RELATIVE_JSON_POINTER + }, formats.full = { + date: date, + time: time, + "date-time": function(str) { + var dateTime = str.split(DATE_TIME_SEPARATOR); + return 2 == dateTime.length && date(dateTime[0]) && time(dateTime[1], !0); + }, + uri: function(str) { + return NOT_URI_FRAGMENT.test(str) && URI.test(str); + }, + "uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i, + "uri-template": URITEMPLATE, + url: URL, + email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, + hostname: function(str) { + return str.length <= 255 && HOSTNAME.test(str); + }, + ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, + ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, + regex: regex, + uuid: UUID, + "json-pointer": JSON_POINTER, + "json-pointer-uri-fragment": JSON_POINTER_URI_FRAGMENT, + "relative-json-pointer": RELATIVE_JSON_POINTER + }; + var DATE_TIME_SEPARATOR = /t|\s/i, NOT_URI_FRAGMENT = /\/|:/, Z_ANCHOR = /[^\\]\\Z/; + function regex(str) { + if (Z_ANCHOR.test(str)) return !1; + try { + return new RegExp(str), !0; + } catch (e) { + return !1; + } + } +}, function(module, exports, __webpack_require__) { + "use strict"; + var ruleModules = __webpack_require__(1091), toHash = __webpack_require__(80).toHash; + module.exports = function() { + var RULES = [ { + type: "number", + rules: [ { + maximum: [ "exclusiveMaximum" ] + }, { + minimum: [ "exclusiveMinimum" ] + }, "multipleOf", "format" ] + }, { + type: "string", + rules: [ "maxLength", "minLength", "pattern", "format" ] + }, { + type: "array", + rules: [ "maxItems", "minItems", "items", "contains", "uniqueItems" ] + }, { + type: "object", + rules: [ "maxProperties", "minProperties", "required", "dependencies", "propertyNames", { + properties: [ "additionalProperties", "patternProperties" ] + } ] + }, { + rules: [ "$ref", "const", "enum", "not", "anyOf", "oneOf", "allOf", "if" ] + } ], ALL = [ "type", "$comment" ]; + return RULES.all = toHash(ALL), RULES.types = toHash([ "number", "integer", "string", "array", "object", "boolean", "null" ]), + RULES.forEach((function(group) { + group.rules = group.rules.map((function(keyword) { + var implKeywords; + if ("object" == typeof keyword) { + var key = Object.keys(keyword)[0]; + implKeywords = keyword[key], keyword = key, implKeywords.forEach((function(k) { + ALL.push(k), RULES.all[k] = !0; + })); + } + return ALL.push(keyword), RULES.all[keyword] = { + keyword: keyword, + code: ruleModules[keyword], + implements: implKeywords + }; + })), RULES.all.$comment = { + keyword: "$comment", + code: ruleModules.$comment + }, group.type && (RULES.types[group.type] = group); + })), RULES.keywords = toHash(ALL.concat([ "$schema", "$id", "id", "$data", "$async", "title", "description", "default", "definitions", "examples", "readOnly", "writeOnly", "contentMediaType", "contentEncoding", "additionalItems", "then", "else" ])), + RULES.custom = {}, RULES; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = { + $ref: __webpack_require__(1092), + allOf: __webpack_require__(1093), + anyOf: __webpack_require__(1094), + $comment: __webpack_require__(1095), + const: __webpack_require__(1096), + contains: __webpack_require__(1097), + dependencies: __webpack_require__(1098), + enum: __webpack_require__(1099), + format: __webpack_require__(1100), + if: __webpack_require__(1101), + items: __webpack_require__(1102), + maximum: __webpack_require__(499), + minimum: __webpack_require__(499), + maxItems: __webpack_require__(500), + minItems: __webpack_require__(500), + maxLength: __webpack_require__(501), + minLength: __webpack_require__(501), + maxProperties: __webpack_require__(502), + minProperties: __webpack_require__(502), + multipleOf: __webpack_require__(1103), + not: __webpack_require__(1104), + oneOf: __webpack_require__(1105), + pattern: __webpack_require__(1106), + properties: __webpack_require__(1107), + propertyNames: __webpack_require__(1108), + required: __webpack_require__(1109), + uniqueItems: __webpack_require__(1110), + validate: __webpack_require__(498) + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $async, $refCode, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl; + if ("#" == $schema || "#/" == $schema) it.isRoot ? ($async = it.async, $refCode = "validate") : ($async = !0 === it.root.schema.$async, + $refCode = "root.refVal[0]"); else { + var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot); + if (void 0 === $refVal) { + var $message = it.MissingRefError.message(it.baseId, $schema); + if ("fail" == it.opts.missingRefs) { + it.logger.error($message), ($$outStack = $$outStack || []).push(out), out = "", + !1 !== it.createErrors ? (out += " { keyword: '$ref' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { ref: '" + it.util.escapeQuotes($schema) + "' } ", + !1 !== it.opts.messages && (out += " , message: 'can\\'t resolve reference " + it.util.escapeQuotes($schema) + "' "), + it.opts.verbose && (out += " , schema: " + it.util.toQuotedString($schema) + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + $breakOnError && (out += " if (false) { "); + } else { + if ("ignore" != it.opts.missingRefs) throw new it.MissingRefError(it.baseId, $schema, $message); + it.logger.warn($message), $breakOnError && (out += " if (true) { "); + } + } else if ($refVal.inline) { + var $it = it.util.copy(it); + $it.level++; + var $nextValid = "valid" + $it.level; + $it.schema = $refVal.schema, $it.schemaPath = "", $it.errSchemaPath = $schema, out += " " + it.validate($it).replace(/validate\.schema/g, $refVal.code) + " ", + $breakOnError && (out += " if (" + $nextValid + ") { "); + } else $async = !0 === $refVal.$async || it.async && !1 !== $refVal.$async, $refCode = $refVal.code; + } + if ($refCode) { + var $$outStack; + ($$outStack = $$outStack || []).push(out), out = "", it.opts.passContext ? out += " " + $refCode + ".call(this, " : out += " " + $refCode + "( ", + out += " " + $data + ", (dataPath || '')", '""' != it.errorPath && (out += " + " + it.errorPath); + var __callValidate = out += " , " + ($dataLvl ? "data" + ($dataLvl - 1 || "") : "parentData") + " , " + ($dataLvl ? it.dataPathArr[$dataLvl] : "parentDataProperty") + ", rootData) "; + if (out = $$outStack.pop(), $async) { + if (!it.async) throw new Error("async schema referenced by sync schema"); + $breakOnError && (out += " var " + $valid + "; "), out += " try { await " + __callValidate + "; ", + $breakOnError && (out += " " + $valid + " = true; "), out += " } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ", + $breakOnError && (out += " " + $valid + " = false; "), out += " } ", $breakOnError && (out += " if (" + $valid + ") { "); + } else out += " if (!" + __callValidate + ") { if (vErrors === null) vErrors = " + $refCode + ".errors; else vErrors = vErrors.concat(" + $refCode + ".errors); errors = vErrors.length; } ", + $breakOnError && (out += " else { "); + } + return out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $it = it.util.copy(it), $closingBraces = ""; + $it.level++; + var $nextValid = "valid" + $it.level, $currentBaseId = $it.baseId, $allSchemasEmpty = !0, arr1 = $schema; + if (arr1) for (var $sch, $i = -1, l1 = arr1.length - 1; $i < l1; ) $sch = arr1[$i += 1], + it.util.schemaHasRules($sch, it.RULES.all) && ($allSchemasEmpty = !1, $it.schema = $sch, + $it.schemaPath = $schemaPath + "[" + $i + "]", $it.errSchemaPath = $errSchemaPath + "/" + $i, + out += " " + it.validate($it) + " ", $it.baseId = $currentBaseId, $breakOnError && (out += " if (" + $nextValid + ") { ", + $closingBraces += "}")); + return $breakOnError && (out += $allSchemasEmpty ? " if (true) { " : " " + $closingBraces.slice(0, -1) + " "), + it.util.cleanUpCode(out); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $errs = "errs__" + $lvl, $it = it.util.copy(it), $closingBraces = ""; + $it.level++; + var $nextValid = "valid" + $it.level, $noEmptySchema = $schema.every((function($sch) { + return it.util.schemaHasRules($sch, it.RULES.all); + })); + if ($noEmptySchema) { + var $currentBaseId = $it.baseId; + out += " var " + $errs + " = errors; var " + $valid + " = false; "; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = !0; + var arr1 = $schema; + if (arr1) for (var $sch, $i = -1, l1 = arr1.length - 1; $i < l1; ) $sch = arr1[$i += 1], + $it.schema = $sch, $it.schemaPath = $schemaPath + "[" + $i + "]", $it.errSchemaPath = $errSchemaPath + "/" + $i, + out += " " + it.validate($it) + " ", $it.baseId = $currentBaseId, out += " " + $valid + " = " + $valid + " || " + $nextValid + "; if (!" + $valid + ") { ", + $closingBraces += "}"; + it.compositeRule = $it.compositeRule = $wasComposite, out += " " + $closingBraces + " if (!" + $valid + ") { var err = ", + !1 !== it.createErrors ? (out += " { keyword: 'anyOf' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ", + !1 !== it.opts.messages && (out += " , message: 'should match some schema in anyOf' "), + it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + !it.compositeRule && $breakOnError && (it.async ? out += " throw new ValidationError(vErrors); " : out += " validate.errors = vErrors; return false; "), + out += " } else { errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; } ", + it.opts.allErrors && (out += " } "), out = it.util.cleanUpCode(out); + } else $breakOnError && (out += " if (true) { "); + return out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $schema = it.schema[$keyword], $errSchemaPath = it.errSchemaPath + "/" + $keyword, $comment = (it.opts.allErrors, + it.util.toQuotedString($schema)); + return !0 === it.opts.$comment ? out += " console.log(" + $comment + ");" : "function" == typeof it.opts.$comment && (out += " self._opts.$comment(" + $comment + ", " + it.util.toQuotedString($errSchemaPath) + ", validate.root.schema);"), + out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $isData = it.opts.$data && $schema && $schema.$data; + $isData && (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; "), + $isData || (out += " var schema" + $lvl + " = validate.schema" + $schemaPath + ";"), + out += "var " + $valid + " = equal(" + $data + ", schema" + $lvl + "); if (!" + $valid + ") { "; + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'const' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { allowedValue: schema" + $lvl + " } ", + !1 !== it.opts.messages && (out += " , message: 'should be equal to constant' "), + it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " }", $breakOnError && (out += " else { "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $errs = "errs__" + $lvl, $it = it.util.copy(it); + $it.level++; + var $nextValid = "valid" + $it.level, $idx = "i" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = "data" + $dataNxt, $currentBaseId = it.baseId, $nonEmptySchema = it.util.schemaHasRules($schema, it.RULES.all); + if (out += "var " + $errs + " = errors;var " + $valid + ";", $nonEmptySchema) { + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = !0, $it.schema = $schema, $it.schemaPath = $schemaPath, + $it.errSchemaPath = $errSchemaPath, out += " var " + $nextValid + " = false; for (var " + $idx + " = 0; " + $idx + " < " + $data + ".length; " + $idx + "++) { ", + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, !0); + var $passData = $data + "[" + $idx + "]"; + $it.dataPathArr[$dataNxt] = $idx; + var $code = it.validate($it); + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2 ? out += " " + it.util.varReplace($code, $nextData, $passData) + " " : out += " var " + $nextData + " = " + $passData + "; " + $code + " ", + out += " if (" + $nextValid + ") break; } ", it.compositeRule = $it.compositeRule = $wasComposite, + out += " if (!" + $nextValid + ") {"; + } else out += " if (" + $data + ".length == 0) {"; + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'contains' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ", + !1 !== it.opts.messages && (out += " , message: 'should contain a valid item' "), + it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } else { ", $nonEmptySchema && (out += " errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; } "), + it.opts.allErrors && (out += " } "), it.util.cleanUpCode(out); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $errs = "errs__" + $lvl, $it = it.util.copy(it), $closingBraces = ""; + $it.level++; + var $nextValid = "valid" + $it.level, $schemaDeps = {}, $propertyDeps = {}, $ownProperties = it.opts.ownProperties; + for ($property in $schema) { + var $sch = $schema[$property], $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps; + $deps[$property] = $sch; + } + out += "var " + $errs + " = errors;"; + var $currentErrorPath = it.errorPath; + for (var $property in out += "var missing" + $lvl + ";", $propertyDeps) if (($deps = $propertyDeps[$property]).length) { + if (out += " if ( " + $data + it.util.getProperty($property) + " !== undefined ", + $ownProperties && (out += " && Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($property) + "') "), + $breakOnError) { + out += " && ( "; + var arr1 = $deps; + if (arr1) for (var $i = -1, l1 = arr1.length - 1; $i < l1; ) $propertyKey = arr1[$i += 1], + $i && (out += " || "), out += " ( ( " + ($useData = $data + ($prop = it.util.getProperty($propertyKey))) + " === undefined ", + $ownProperties && (out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') "), + out += ") && (missing" + $lvl + " = " + it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) + ") ) "; + out += ")) { "; + var $propertyPath = "missing" + $lvl, $missingProperty = "' + " + $propertyPath + " + '"; + it.opts._errorDataPathProperty && (it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, !0) : $currentErrorPath + " + " + $propertyPath); + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (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(1 == $deps.length ? $deps[0] : $deps.join(", ")) + "' } ", + !1 !== it.opts.messages && (out += " , message: 'should have ", 1 == $deps.length ? out += "property " + it.util.escapeQuotes($deps[0]) : out += "properties " + it.util.escapeQuotes($deps.join(", ")), + out += " when property " + it.util.escapeQuotes($property) + " is present' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "; + } else { + out += " ) { "; + var arr2 = $deps; + if (arr2) for (var $propertyKey, i2 = -1, l2 = arr2.length - 1; i2 < l2; ) { + $propertyKey = arr2[i2 += 1]; + var $prop = it.util.getProperty($propertyKey), $useData = ($missingProperty = it.util.escapeQuotes($propertyKey), + $data + $prop); + it.opts._errorDataPathProperty && (it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers)), + out += " if ( " + $useData + " === undefined ", $ownProperties && (out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') "), + out += ") { var err = ", !1 !== it.createErrors ? (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(1 == $deps.length ? $deps[0] : $deps.join(", ")) + "' } ", + !1 !== it.opts.messages && (out += " , message: 'should have ", 1 == $deps.length ? out += "property " + it.util.escapeQuotes($deps[0]) : out += "properties " + it.util.escapeQuotes($deps.join(", ")), + out += " when property " + it.util.escapeQuotes($property) + " is present' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "; + } + } + out += " } ", $breakOnError && ($closingBraces += "}", out += " else { "); + } + it.errorPath = $currentErrorPath; + var $currentBaseId = $it.baseId; + for (var $property in $schemaDeps) $sch = $schemaDeps[$property], it.util.schemaHasRules($sch, it.RULES.all) && (out += " " + $nextValid + " = true; if ( " + $data + it.util.getProperty($property) + " !== undefined ", + $ownProperties && (out += " && Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($property) + "') "), + out += ") { ", $it.schema = $sch, $it.schemaPath = $schemaPath + it.util.getProperty($property), + $it.errSchemaPath = $errSchemaPath + "/" + it.util.escapeFragment($property), out += " " + it.validate($it) + " ", + $it.baseId = $currentBaseId, out += " } ", $breakOnError && (out += " if (" + $nextValid + ") { ", + $closingBraces += "}")); + return $breakOnError && (out += " " + $closingBraces + " if (" + $errs + " == errors) {"), + it.util.cleanUpCode(out); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $isData = it.opts.$data && $schema && $schema.$data; + $isData && (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; "); + var $i = "i" + $lvl, $vSchema = "schema" + $lvl; + $isData || (out += " var " + $vSchema + " = validate.schema" + $schemaPath + ";"), + out += "var " + $valid + ";", $isData && (out += " if (schema" + $lvl + " === undefined) " + $valid + " = true; else if (!Array.isArray(schema" + $lvl + ")) " + $valid + " = false; else {"), + out += $valid + " = false;for (var " + $i + "=0; " + $i + "<" + $vSchema + ".length; " + $i + "++) if (equal(" + $data + ", " + $vSchema + "[" + $i + "])) { " + $valid + " = true; break; }", + $isData && (out += " } "), out += " if (!" + $valid + ") { "; + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'enum' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { allowedValues: schema" + $lvl + " } ", + !1 !== it.opts.messages && (out += " , message: 'should be equal to one of the allowed values' "), + it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " }", $breakOnError && (out += " else { "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""); + if (!1 === it.opts.format) return $breakOnError && (out += " if (true) { "), out; + var $schemaValue, $isData = it.opts.$data && $schema && $schema.$data; + $isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema; + var $unknownFormats = it.opts.unknownFormats, $allowUnknown = Array.isArray($unknownFormats); + if ($isData) out += " var " + ($format = "format" + $lvl) + " = formats[" + $schemaValue + "]; var " + ($isObject = "isObject" + $lvl) + " = typeof " + $format + " == 'object' && !(" + $format + " instanceof RegExp) && " + $format + ".validate; var " + ($formatType = "formatType" + $lvl) + " = " + $isObject + " && " + $format + ".type || 'string'; if (" + $isObject + ") { ", + it.async && (out += " var async" + $lvl + " = " + $format + ".async; "), out += " " + $format + " = " + $format + ".validate; } if ( ", + $isData && (out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'string') || "), + out += " (", "ignore" != $unknownFormats && (out += " (" + $schemaValue + " && !" + $format + " ", + $allowUnknown && (out += " && self._opts.unknownFormats.indexOf(" + $schemaValue + ") == -1 "), + out += ") || "), out += " (" + $format + " && " + $formatType + " == '" + $ruleType + "' && !(typeof " + $format + " == 'function' ? ", + it.async ? out += " (async" + $lvl + " ? await " + $format + "(" + $data + ") : " + $format + "(" + $data + ")) " : out += " " + $format + "(" + $data + ") ", + out += " : " + $format + ".test(" + $data + "))))) {"; else { + var $format; + if (!($format = it.formats[$schema])) { + if ("ignore" == $unknownFormats) return it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'), + $breakOnError && (out += " if (true) { "), out; + if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) return $breakOnError && (out += " if (true) { "), + out; + throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); + } + var $isObject, $formatType = ($isObject = "object" == typeof $format && !($format instanceof RegExp) && $format.validate) && $format.type || "string"; + if ($isObject) { + var $async = !0 === $format.async; + $format = $format.validate; + } + if ($formatType != $ruleType) return $breakOnError && (out += " if (true) { "), + out; + if ($async) { + if (!it.async) throw new Error("async format in sync schema"); + out += " if (!(await " + ($formatRef = "formats" + it.util.getProperty($schema) + ".validate") + "(" + $data + "))) { "; + } else { + out += " if (! "; + var $formatRef = "formats" + it.util.getProperty($schema); + $isObject && ($formatRef += ".validate"), out += "function" == typeof $format ? " " + $formatRef + "(" + $data + ") " : " " + $formatRef + ".test(" + $data + ") ", + out += ") { "; + } + } + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'format' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { format: ", + out += $isData ? "" + $schemaValue : "" + it.util.toQuotedString($schema), out += " } ", + !1 !== it.opts.messages && (out += " , message: 'should match format \"", out += $isData ? "' + " + $schemaValue + " + '" : "" + it.util.escapeQuotes($schema), + out += "\"' "), it.opts.verbose && (out += " , schema: ", out += $isData ? "validate.schema" + $schemaPath : "" + it.util.toQuotedString($schema), + out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } ", $breakOnError && (out += " else { "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $errs = "errs__" + $lvl, $it = it.util.copy(it); + $it.level++; + var $nextValid = "valid" + $it.level, $thenSch = it.schema.then, $elseSch = it.schema.else, $thenPresent = void 0 !== $thenSch && it.util.schemaHasRules($thenSch, it.RULES.all), $elsePresent = void 0 !== $elseSch && it.util.schemaHasRules($elseSch, it.RULES.all), $currentBaseId = $it.baseId; + if ($thenPresent || $elsePresent) { + var $ifClause; + $it.createErrors = !1, $it.schema = $schema, $it.schemaPath = $schemaPath, $it.errSchemaPath = $errSchemaPath, + out += " var " + $errs + " = errors; var " + $valid + " = true; "; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = !0, out += " " + it.validate($it) + " ", + $it.baseId = $currentBaseId, $it.createErrors = !0, out += " errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; } ", + it.compositeRule = $it.compositeRule = $wasComposite, $thenPresent ? (out += " if (" + $nextValid + ") { ", + $it.schema = it.schema.then, $it.schemaPath = it.schemaPath + ".then", $it.errSchemaPath = it.errSchemaPath + "/then", + out += " " + it.validate($it) + " ", $it.baseId = $currentBaseId, out += " " + $valid + " = " + $nextValid + "; ", + $thenPresent && $elsePresent ? out += " var " + ($ifClause = "ifClause" + $lvl) + " = 'then'; " : $ifClause = "'then'", + out += " } ", $elsePresent && (out += " else { ")) : out += " if (!" + $nextValid + ") { ", + $elsePresent && ($it.schema = it.schema.else, $it.schemaPath = it.schemaPath + ".else", + $it.errSchemaPath = it.errSchemaPath + "/else", out += " " + it.validate($it) + " ", + $it.baseId = $currentBaseId, out += " " + $valid + " = " + $nextValid + "; ", $thenPresent && $elsePresent ? out += " var " + ($ifClause = "ifClause" + $lvl) + " = 'else'; " : $ifClause = "'else'", + out += " } "), out += " if (!" + $valid + ") { var err = ", !1 !== it.createErrors ? (out += " { keyword: 'if' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { failingKeyword: " + $ifClause + " } ", + !1 !== it.opts.messages && (out += " , message: 'should match \"' + " + $ifClause + " + '\" schema' "), + it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + !it.compositeRule && $breakOnError && (it.async ? out += " throw new ValidationError(vErrors); " : out += " validate.errors = vErrors; return false; "), + out += " } ", $breakOnError && (out += " else { "), out = it.util.cleanUpCode(out); + } else $breakOnError && (out += " if (true) { "); + return out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $errs = "errs__" + $lvl, $it = it.util.copy(it), $closingBraces = ""; + $it.level++; + var $nextValid = "valid" + $it.level, $idx = "i" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = "data" + $dataNxt, $currentBaseId = it.baseId; + if (out += "var " + $errs + " = errors;var " + $valid + ";", Array.isArray($schema)) { + var $additionalItems = it.schema.additionalItems; + if (!1 === $additionalItems) { + out += " " + $valid + " = " + $data + ".length <= " + $schema.length + "; "; + var $currErrSchemaPath = $errSchemaPath; + $errSchemaPath = it.errSchemaPath + "/additionalItems", out += " if (!" + $valid + ") { "; + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'additionalItems' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { limit: " + $schema.length + " } ", + !1 !== it.opts.messages && (out += " , message: 'should NOT have more than " + $schema.length + " items' "), + it.opts.verbose && (out += " , schema: false , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } ", $errSchemaPath = $currErrSchemaPath, $breakOnError && ($closingBraces += "}", + out += " else { "); + } + var arr1 = $schema; + if (arr1) for (var $sch, $i = -1, l1 = arr1.length - 1; $i < l1; ) if ($sch = arr1[$i += 1], + it.util.schemaHasRules($sch, it.RULES.all)) { + out += " " + $nextValid + " = true; if (" + $data + ".length > " + $i + ") { "; + var $passData = $data + "[" + $i + "]"; + $it.schema = $sch, $it.schemaPath = $schemaPath + "[" + $i + "]", $it.errSchemaPath = $errSchemaPath + "/" + $i, + $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, !0), + $it.dataPathArr[$dataNxt] = $i; + var $code = it.validate($it); + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2 ? out += " " + it.util.varReplace($code, $nextData, $passData) + " " : out += " var " + $nextData + " = " + $passData + "; " + $code + " ", + out += " } ", $breakOnError && (out += " if (" + $nextValid + ") { ", $closingBraces += "}"); + } + "object" == typeof $additionalItems && it.util.schemaHasRules($additionalItems, it.RULES.all) && ($it.schema = $additionalItems, + $it.schemaPath = it.schemaPath + ".additionalItems", $it.errSchemaPath = it.errSchemaPath + "/additionalItems", + out += " " + $nextValid + " = true; if (" + $data + ".length > " + $schema.length + ") { for (var " + $idx + " = " + $schema.length + "; " + $idx + " < " + $data + ".length; " + $idx + "++) { ", + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, !0), + $passData = $data + "[" + $idx + "]", $it.dataPathArr[$dataNxt] = $idx, $code = it.validate($it), + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2 ? out += " " + it.util.varReplace($code, $nextData, $passData) + " " : out += " var " + $nextData + " = " + $passData + "; " + $code + " ", + $breakOnError && (out += " if (!" + $nextValid + ") break; "), out += " } } ", + $breakOnError && (out += " if (" + $nextValid + ") { ", $closingBraces += "}")); + } else it.util.schemaHasRules($schema, it.RULES.all) && ($it.schema = $schema, $it.schemaPath = $schemaPath, + $it.errSchemaPath = $errSchemaPath, out += " for (var " + $idx + " = 0; " + $idx + " < " + $data + ".length; " + $idx + "++) { ", + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, !0), + $passData = $data + "[" + $idx + "]", $it.dataPathArr[$dataNxt] = $idx, $code = it.validate($it), + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2 ? out += " " + it.util.varReplace($code, $nextData, $passData) + " " : out += " var " + $nextData + " = " + $passData + "; " + $code + " ", + $breakOnError && (out += " if (!" + $nextValid + ") break; "), out += " }"); + return $breakOnError && (out += " " + $closingBraces + " if (" + $errs + " == errors) {"), + it.util.cleanUpCode(out); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $schemaValue, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $isData = it.opts.$data && $schema && $schema.$data; + $isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema, out += "var division" + $lvl + ";if (", + $isData && (out += " " + $schemaValue + " !== undefined && ( typeof " + $schemaValue + " != 'number' || "), + out += " (division" + $lvl + " = " + $data + " / " + $schemaValue + ", ", it.opts.multipleOfPrecision ? out += " Math.abs(Math.round(division" + $lvl + ") - division" + $lvl + ") > 1e-" + it.opts.multipleOfPrecision + " " : out += " division" + $lvl + " !== parseInt(division" + $lvl + ") ", + out += " ) ", $isData && (out += " ) "), out += " ) { "; + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'multipleOf' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { multipleOf: " + $schemaValue + " } ", + !1 !== it.opts.messages && (out += " , message: 'should be multiple of ", out += $isData ? "' + " + $schemaValue : $schemaValue + "'"), + it.opts.verbose && (out += " , schema: ", out += $isData ? "validate.schema" + $schemaPath : "" + $schema, + out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += "} ", $breakOnError && (out += " else { "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $errs = "errs__" + $lvl, $it = it.util.copy(it); + $it.level++; + var $nextValid = "valid" + $it.level; + if (it.util.schemaHasRules($schema, it.RULES.all)) { + $it.schema = $schema, $it.schemaPath = $schemaPath, $it.errSchemaPath = $errSchemaPath, + out += " var " + $errs + " = errors; "; + var $allErrorsOption, $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = !0, $it.createErrors = !1, $it.opts.allErrors && ($allErrorsOption = $it.opts.allErrors, + $it.opts.allErrors = !1), out += " " + it.validate($it) + " ", $it.createErrors = !0, + $allErrorsOption && ($it.opts.allErrors = $allErrorsOption), it.compositeRule = $it.compositeRule = $wasComposite, + out += " if (" + $nextValid + ") { "; + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'not' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ", + !1 !== it.opts.messages && (out += " , message: 'should NOT be valid' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } else { errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; } ", + it.opts.allErrors && (out += " } "); + } else out += " var err = ", !1 !== it.createErrors ? (out += " { keyword: 'not' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ", + !1 !== it.opts.messages && (out += " , message: 'should NOT be valid' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + $breakOnError && (out += " if (false) { "); + return out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $errs = "errs__" + $lvl, $it = it.util.copy(it), $closingBraces = ""; + $it.level++; + var $nextValid = "valid" + $it.level, $currentBaseId = $it.baseId, $prevValid = "prevValid" + $lvl, $passingSchemas = "passingSchemas" + $lvl; + out += "var " + $errs + " = errors , " + $prevValid + " = false , " + $valid + " = false , " + $passingSchemas + " = null; "; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = !0; + var arr1 = $schema; + if (arr1) for (var $sch, $i = -1, l1 = arr1.length - 1; $i < l1; ) $sch = arr1[$i += 1], + it.util.schemaHasRules($sch, it.RULES.all) ? ($it.schema = $sch, $it.schemaPath = $schemaPath + "[" + $i + "]", + $it.errSchemaPath = $errSchemaPath + "/" + $i, out += " " + it.validate($it) + " ", + $it.baseId = $currentBaseId) : out += " var " + $nextValid + " = true; ", $i && (out += " if (" + $nextValid + " && " + $prevValid + ") { " + $valid + " = false; " + $passingSchemas + " = [" + $passingSchemas + ", " + $i + "]; } else { ", + $closingBraces += "}"), out += " if (" + $nextValid + ") { " + $valid + " = " + $prevValid + " = true; " + $passingSchemas + " = " + $i + "; }"; + return it.compositeRule = $it.compositeRule = $wasComposite, out += $closingBraces + "if (!" + $valid + ") { var err = ", + !1 !== it.createErrors ? (out += " { keyword: 'oneOf' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { passingSchemas: " + $passingSchemas + " } ", + !1 !== it.opts.messages && (out += " , message: 'should match exactly one schema in oneOf' "), + it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + !it.compositeRule && $breakOnError && (it.async ? out += " throw new ValidationError(vErrors); " : out += " validate.errors = vErrors; return false; "), + out += "} else { errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; }", + it.opts.allErrors && (out += " } "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $schemaValue, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $isData = it.opts.$data && $schema && $schema.$data; + $isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema, out += "if ( ", $isData && (out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'string') || "), + out += " !" + ($isData ? "(new RegExp(" + $schemaValue + "))" : it.usePattern($schema)) + ".test(" + $data + ") ) { "; + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'pattern' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { pattern: ", + out += $isData ? "" + $schemaValue : "" + it.util.toQuotedString($schema), out += " } ", + !1 !== it.opts.messages && (out += " , message: 'should match pattern \"", out += $isData ? "' + " + $schemaValue + " + '" : "" + it.util.escapeQuotes($schema), + out += "\"' "), it.opts.verbose && (out += " , schema: ", out += $isData ? "validate.schema" + $schemaPath : "" + it.util.toQuotedString($schema), + out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + return out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += "} ", $breakOnError && (out += " else { "), out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $errs = "errs__" + $lvl, $it = it.util.copy(it), $closingBraces = ""; + $it.level++; + var $nextValid = "valid" + $it.level, $key = "key" + $lvl, $idx = "idx" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = "data" + $dataNxt, $dataProperties = "dataProperties" + $lvl, $schemaKeys = Object.keys($schema || {}), $pProperties = it.schema.patternProperties || {}, $pPropertyKeys = Object.keys($pProperties), $aProperties = it.schema.additionalProperties, $someProperties = $schemaKeys.length || $pPropertyKeys.length, $noAdditional = !1 === $aProperties, $additionalIsSchema = "object" == typeof $aProperties && Object.keys($aProperties).length, $removeAdditional = it.opts.removeAdditional, $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional, $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId, $required = it.schema.required; + if ($required && (!it.opts.$data || !$required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required); + if (out += "var " + $errs + " = errors;var " + $nextValid + " = true;", $ownProperties && (out += " var " + $dataProperties + " = undefined;"), + $checkAdditional) { + if (out += $ownProperties ? " " + $dataProperties + " = " + $dataProperties + " || Object.keys(" + $data + "); for (var " + $idx + "=0; " + $idx + "<" + $dataProperties + ".length; " + $idx + "++) { var " + $key + " = " + $dataProperties + "[" + $idx + "]; " : " for (var " + $key + " in " + $data + ") { ", + $someProperties) { + if (out += " var isAdditional" + $lvl + " = !(false ", $schemaKeys.length) if ($schemaKeys.length > 8) out += " || validate.schema" + $schemaPath + ".hasOwnProperty(" + $key + ") "; else { + var arr1 = $schemaKeys; + if (arr1) for (var i1 = -1, l1 = arr1.length - 1; i1 < l1; ) $propertyKey = arr1[i1 += 1], + out += " || " + $key + " == " + it.util.toQuotedString($propertyKey) + " "; + } + if ($pPropertyKeys.length) { + var arr2 = $pPropertyKeys; + if (arr2) for (var $i = -1, l2 = arr2.length - 1; $i < l2; ) $pProperty = arr2[$i += 1], + out += " || " + it.usePattern($pProperty) + ".test(" + $key + ") "; + } + out += " ); if (isAdditional" + $lvl + ") { "; + } + if ("all" == $removeAdditional) out += " delete " + $data + "[" + $key + "]; "; else { + var $currentErrorPath = it.errorPath, $additionalProperty = "' + " + $key + " + '"; + if (it.opts._errorDataPathProperty && (it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers)), + $noAdditional) if ($removeAdditional) out += " delete " + $data + "[" + $key + "]; "; else { + out += " " + $nextValid + " = false; "; + var $currErrSchemaPath = $errSchemaPath; + $errSchemaPath = it.errSchemaPath + "/additionalProperties", ($$outStack = $$outStack || []).push(out), + out = "", !1 !== it.createErrors ? (out += " { keyword: 'additionalProperties' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { additionalProperty: '" + $additionalProperty + "' } ", + !1 !== it.opts.messages && (out += " , message: '", it.opts._errorDataPathProperty ? out += "is an invalid additional property" : out += "should NOT have additional properties", + out += "' "), it.opts.verbose && (out += " , schema: false , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + $errSchemaPath = $currErrSchemaPath, $breakOnError && (out += " break; "); + } else if ($additionalIsSchema) if ("failing" == $removeAdditional) { + out += " var " + $errs + " = errors; "; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = !0, $it.schema = $aProperties, $it.schemaPath = it.schemaPath + ".additionalProperties", + $it.errSchemaPath = it.errSchemaPath + "/additionalProperties", $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + "[" + $key + "]"; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2 ? out += " " + it.util.varReplace($code, $nextData, $passData) + " " : out += " var " + $nextData + " = " + $passData + "; " + $code + " ", + out += " if (!" + $nextValid + ") { errors = " + $errs + "; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete " + $data + "[" + $key + "]; } ", + it.compositeRule = $it.compositeRule = $wasComposite; + } else $it.schema = $aProperties, $it.schemaPath = it.schemaPath + ".additionalProperties", + $it.errSchemaPath = it.errSchemaPath + "/additionalProperties", $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers), + $passData = $data + "[" + $key + "]", $it.dataPathArr[$dataNxt] = $key, $code = it.validate($it), + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2 ? out += " " + it.util.varReplace($code, $nextData, $passData) + " " : out += " var " + $nextData + " = " + $passData + "; " + $code + " ", + $breakOnError && (out += " if (!" + $nextValid + ") break; "); + it.errorPath = $currentErrorPath; + } + $someProperties && (out += " } "), out += " } ", $breakOnError && (out += " if (" + $nextValid + ") { ", + $closingBraces += "}"); + } + var $useDefaults = it.opts.useDefaults && !it.compositeRule; + if ($schemaKeys.length) { + var arr3 = $schemaKeys; + if (arr3) for (var $propertyKey, i3 = -1, l3 = arr3.length - 1; i3 < l3; ) { + var $sch = $schema[$propertyKey = arr3[i3 += 1]]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + var $prop = it.util.getProperty($propertyKey), $hasDefault = ($passData = $data + $prop, + $useDefaults && void 0 !== $sch.default); + if ($it.schema = $sch, $it.schemaPath = $schemaPath + $prop, $it.errSchemaPath = $errSchemaPath + "/" + it.util.escapeFragment($propertyKey), + $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers), + $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey), $code = it.validate($it), + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2) { + $code = it.util.varReplace($code, $nextData, $passData); + var $useData = $passData; + } else $useData = $nextData, out += " var " + $nextData + " = " + $passData + "; "; + if ($hasDefault) out += " " + $code + " "; else { + if ($requiredHash && $requiredHash[$propertyKey]) { + out += " if ( " + $useData + " === undefined ", $ownProperties && (out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') "), + out += ") { " + $nextValid + " = false; ", $currentErrorPath = it.errorPath, $currErrSchemaPath = $errSchemaPath; + var $$outStack, $missingProperty = it.util.escapeQuotes($propertyKey); + it.opts._errorDataPathProperty && (it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers)), + $errSchemaPath = it.errSchemaPath + "/required", ($$outStack = $$outStack || []).push(out), + out = "", !1 !== it.createErrors ? (out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ", + !1 !== it.opts.messages && (out += " , message: '", it.opts._errorDataPathProperty ? out += "is a required property" : out += "should have required property \\'" + $missingProperty + "\\'", + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", __err = out, out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + $errSchemaPath = $currErrSchemaPath, it.errorPath = $currentErrorPath, out += " } else { "; + } else $breakOnError ? (out += " if ( " + $useData + " === undefined ", $ownProperties && (out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') "), + out += ") { " + $nextValid + " = true; } else { ") : (out += " if (" + $useData + " !== undefined ", + $ownProperties && (out += " && Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') "), + out += " ) { "); + out += " " + $code + " } "; + } + } + $breakOnError && (out += " if (" + $nextValid + ") { ", $closingBraces += "}"); + } + } + if ($pPropertyKeys.length) { + var arr4 = $pPropertyKeys; + if (arr4) for (var $pProperty, i4 = -1, l4 = arr4.length - 1; i4 < l4; ) $sch = $pProperties[$pProperty = arr4[i4 += 1]], + it.util.schemaHasRules($sch, it.RULES.all) && ($it.schema = $sch, $it.schemaPath = it.schemaPath + ".patternProperties" + it.util.getProperty($pProperty), + $it.errSchemaPath = it.errSchemaPath + "/patternProperties/" + it.util.escapeFragment($pProperty), + out += $ownProperties ? " " + $dataProperties + " = " + $dataProperties + " || Object.keys(" + $data + "); for (var " + $idx + "=0; " + $idx + "<" + $dataProperties + ".length; " + $idx + "++) { var " + $key + " = " + $dataProperties + "[" + $idx + "]; " : " for (var " + $key + " in " + $data + ") { ", + out += " if (" + it.usePattern($pProperty) + ".test(" + $key + ")) { ", $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers), + $passData = $data + "[" + $key + "]", $it.dataPathArr[$dataNxt] = $key, $code = it.validate($it), + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2 ? out += " " + it.util.varReplace($code, $nextData, $passData) + " " : out += " var " + $nextData + " = " + $passData + "; " + $code + " ", + $breakOnError && (out += " if (!" + $nextValid + ") break; "), out += " } ", $breakOnError && (out += " else " + $nextValid + " = true; "), + out += " } ", $breakOnError && (out += " if (" + $nextValid + ") { ", $closingBraces += "}")); + } + return $breakOnError && (out += " " + $closingBraces + " if (" + $errs + " == errors) {"), + it.util.cleanUpCode(out); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $errs = "errs__" + $lvl, $it = it.util.copy(it); + $it.level++; + var $nextValid = "valid" + $it.level; + if (out += "var " + $errs + " = errors;", it.util.schemaHasRules($schema, it.RULES.all)) { + $it.schema = $schema, $it.schemaPath = $schemaPath, $it.errSchemaPath = $errSchemaPath; + var $key = "key" + $lvl, $idx = "idx" + $lvl, $i = "i" + $lvl, $invalidName = "' + " + $key + " + '", $nextData = "data" + ($it.dataLevel = it.dataLevel + 1), $dataProperties = "dataProperties" + $lvl, $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId; + $ownProperties && (out += " var " + $dataProperties + " = undefined; "), out += $ownProperties ? " " + $dataProperties + " = " + $dataProperties + " || Object.keys(" + $data + "); for (var " + $idx + "=0; " + $idx + "<" + $dataProperties + ".length; " + $idx + "++) { var " + $key + " = " + $dataProperties + "[" + $idx + "]; " : " for (var " + $key + " in " + $data + ") { ", + out += " var startErrs" + $lvl + " = errors; "; + var $passData = $key, $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = !0; + var $code = it.validate($it); + $it.baseId = $currentBaseId, it.util.varOccurences($code, $nextData) < 2 ? out += " " + it.util.varReplace($code, $nextData, $passData) + " " : out += " var " + $nextData + " = " + $passData + "; " + $code + " ", + it.compositeRule = $it.compositeRule = $wasComposite, out += " if (!" + $nextValid + ") { for (var " + $i + "=startErrs" + $lvl + "; " + $i + "= it.opts.loopRequired, $ownProperties = it.opts.ownProperties; + if ($breakOnError) if (out += " var missing" + $lvl + "; ", $loopRequired) { + $isData || (out += " var " + $vSchema + " = validate.schema" + $schemaPath + "; "); + var $missingProperty = "' + " + ($propertyPath = "schema" + $lvl + "[" + ($i = "i" + $lvl) + "]") + " + '"; + it.opts._errorDataPathProperty && (it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers)), + out += " var " + $valid + " = true; ", $isData && (out += " if (schema" + $lvl + " === undefined) " + $valid + " = true; else if (!Array.isArray(schema" + $lvl + ")) " + $valid + " = false; else {"), + out += " for (var " + $i + " = 0; " + $i + " < " + $vSchema + ".length; " + $i + "++) { " + $valid + " = " + $data + "[" + $vSchema + "[" + $i + "]] !== undefined ", + $ownProperties && (out += " && Object.prototype.hasOwnProperty.call(" + $data + ", " + $vSchema + "[" + $i + "]) "), + out += "; if (!" + $valid + ") break; } ", $isData && (out += " } "), out += " if (!" + $valid + ") { ", + ($$outStack = $$outStack || []).push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ", + !1 !== it.opts.messages && (out += " , message: '", it.opts._errorDataPathProperty ? out += "is a required property" : out += "should have required property \\'" + $missingProperty + "\\'", + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } else { "; + } else { + out += " if ( "; + var $$outStack, arr2 = $required; + if (arr2) for (var $i = -1, l2 = arr2.length - 1; $i < l2; ) $propertyKey = arr2[$i += 1], + $i && (out += " || "), out += " ( ( " + ($useData = $data + ($prop = it.util.getProperty($propertyKey))) + " === undefined ", + $ownProperties && (out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') "), + out += ") && (missing" + $lvl + " = " + it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) + ") ) "; + out += ") { ", $missingProperty = "' + " + ($propertyPath = "missing" + $lvl) + " + '", + it.opts._errorDataPathProperty && (it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, !0) : $currentErrorPath + " + " + $propertyPath), + ($$outStack = $$outStack || []).push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ", + !1 !== it.opts.messages && (out += " , message: '", it.opts._errorDataPathProperty ? out += "is a required property" : out += "should have required property \\'" + $missingProperty + "\\'", + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", __err = out, out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } else { "; + } else if ($loopRequired) { + var $propertyPath; + $isData || (out += " var " + $vSchema + " = validate.schema" + $schemaPath + "; "), + $missingProperty = "' + " + ($propertyPath = "schema" + $lvl + "[" + ($i = "i" + $lvl) + "]") + " + '", + it.opts._errorDataPathProperty && (it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers)), + $isData && (out += " if (" + $vSchema + " && !Array.isArray(" + $vSchema + ")) { var err = ", + !1 !== it.createErrors ? (out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ", + !1 !== it.opts.messages && (out += " , message: '", it.opts._errorDataPathProperty ? out += "is a required property" : out += "should have required property \\'" + $missingProperty + "\\'", + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (" + $vSchema + " !== undefined) { "), + out += " for (var " + $i + " = 0; " + $i + " < " + $vSchema + ".length; " + $i + "++) { if (" + $data + "[" + $vSchema + "[" + $i + "]] === undefined ", + $ownProperties && (out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", " + $vSchema + "[" + $i + "]) "), + out += ") { var err = ", !1 !== it.createErrors ? (out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ", + !1 !== it.opts.messages && (out += " , message: '", it.opts._errorDataPathProperty ? out += "is a required property" : out += "should have required property \\'" + $missingProperty + "\\'", + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ", + $isData && (out += " } "); + } else { + var arr3 = $required; + if (arr3) for (var $propertyKey, i3 = -1, l3 = arr3.length - 1; i3 < l3; ) { + $propertyKey = arr3[i3 += 1]; + var $prop = it.util.getProperty($propertyKey), $useData = ($missingProperty = it.util.escapeQuotes($propertyKey), + $data + $prop); + it.opts._errorDataPathProperty && (it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers)), + out += " if ( " + $useData + " === undefined ", $ownProperties && (out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') "), + out += ") { var err = ", !1 !== it.createErrors ? (out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ", + !1 !== it.opts.messages && (out += " , message: '", it.opts._errorDataPathProperty ? out += "is a required property" : out += "should have required property \\'" + $missingProperty + "\\'", + out += "' "), it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} ", out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "; + } + } + it.errorPath = $currentErrorPath; + } else $breakOnError && (out += " if (true) {"); + return out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $schemaValue, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $isData = it.opts.$data && $schema && $schema.$data; + if ($isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema, ($schema || $isData) && !1 !== it.opts.uniqueItems) { + $isData && (out += " var " + $valid + "; if (" + $schemaValue + " === false || " + $schemaValue + " === undefined) " + $valid + " = true; else if (typeof " + $schemaValue + " != 'boolean') " + $valid + " = false; else { "), + out += " var i = " + $data + ".length , " + $valid + " = true , j; if (i > 1) { "; + var $itemType = it.schema.items && it.schema.items.type, $typeIsArray = Array.isArray($itemType); + if (!$itemType || "object" == $itemType || "array" == $itemType || $typeIsArray && ($itemType.indexOf("object") >= 0 || $itemType.indexOf("array") >= 0)) out += " outer: for (;i--;) { for (j = i; j--;) { if (equal(" + $data + "[i], " + $data + "[j])) { " + $valid + " = false; break outer; } } } "; else { + out += " var itemIndices = {}, item; for (;i--;) { var item = " + $data + "[i]; "; + var $method = "checkDataType" + ($typeIsArray ? "s" : ""); + out += " if (" + it.util[$method]($itemType, "item", !0) + ") continue; ", $typeIsArray && (out += " if (typeof item == 'string') item = '\"' + item; "), + out += " if (typeof itemIndices[item] == 'number') { " + $valid + " = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "; + } + out += " } ", $isData && (out += " } "), out += " if (!" + $valid + ") { "; + var $$outStack = $$outStack || []; + $$outStack.push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: 'uniqueItems' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { i: i, j: j } ", + !1 !== it.opts.messages && (out += " , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "), + it.opts.verbose && (out += " , schema: ", out += $isData ? "validate.schema" + $schemaPath : "" + $schema, + out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ", + out += " } ", $breakOnError && (out += " else { "); + } else $breakOnError && (out += " if (true) { "); + return out; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var KEYWORDS = [ "multipleOf", "maximum", "exclusiveMaximum", "minimum", "exclusiveMinimum", "maxLength", "minLength", "pattern", "additionalItems", "maxItems", "minItems", "uniqueItems", "maxProperties", "minProperties", "required", "additionalProperties", "enum", "format", "const" ]; + module.exports = function(metaSchema, keywordsJsonPointers) { + for (var i = 0; i < keywordsJsonPointers.length; i++) { + metaSchema = JSON.parse(JSON.stringify(metaSchema)); + var j, segments = keywordsJsonPointers[i].split("/"), keywords = metaSchema; + for (j = 1; j < segments.length; j++) keywords = keywords[segments[j]]; + for (j = 0; j < KEYWORDS.length; j++) { + var key = KEYWORDS[j], schema = keywords[key]; + schema && (keywords[key] = { + anyOf: [ schema, { + $ref: "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#" + } ] + }); + } + } + return metaSchema; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var MissingRefError = __webpack_require__(239).MissingRef; + module.exports = function compileAsync(schema, meta, callback) { + var self = this; + if ("function" != typeof this._opts.loadSchema) throw new Error("options.loadSchema should be a function"); + "function" == typeof meta && (callback = meta, meta = void 0); + var p = loadMetaSchemaOf(schema).then((function() { + var schemaObj = self._addSchema(schema, void 0, meta); + return schemaObj.validate || _compileAsync(schemaObj); + })); + return callback && p.then((function(v) { + callback(null, v); + }), callback), p; + function loadMetaSchemaOf(sch) { + var $schema = sch.$schema; + return $schema && !self.getSchema($schema) ? compileAsync.call(self, { + $ref: $schema + }, !0) : Promise.resolve(); + } + function _compileAsync(schemaObj) { + try { + return self._compile(schemaObj); + } catch (e) { + if (e instanceof MissingRefError) return (function(e) { + var ref = e.missingSchema; + if (added(ref)) throw new Error("Schema " + ref + " is loaded but " + e.missingRef + " cannot be resolved"); + var schemaPromise = self._loadingSchemas[ref]; + return schemaPromise || (schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref)).then(removePromise, removePromise), + schemaPromise.then((function(sch) { + if (!added(ref)) return loadMetaSchemaOf(sch).then((function() { + added(ref) || self.addSchema(sch, ref, void 0, meta); + })); + })).then((function() { + return _compileAsync(schemaObj); + })); + function removePromise() { + delete self._loadingSchemas[ref]; + } + function added(ref) { + return self._refs[ref] || self._schemas[ref]; + } + })(e); + throw e; + } + } + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i, customRuleCode = __webpack_require__(1114), metaSchema = __webpack_require__(503); + module.exports = { + add: function(keyword, definition) { + var RULES = this.RULES; + if (RULES.keywords[keyword]) throw new Error("Keyword " + keyword + " is already defined"); + if (!IDENTIFIER.test(keyword)) throw new Error("Keyword " + keyword + " is not a valid identifier"); + if (definition) { + this.validateKeyword(definition, !0); + var dataType = definition.type; + if (Array.isArray(dataType)) for (var i = 0; i < dataType.length; i++) _addRule(keyword, dataType[i], definition); else _addRule(keyword, dataType, definition); + var metaSchema = definition.metaSchema; + metaSchema && (definition.$data && this._opts.$data && (metaSchema = { + anyOf: [ metaSchema, { + $ref: "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#" + } ] + }), definition.validateSchema = this.compile(metaSchema, !0)); + } + function _addRule(keyword, dataType, definition) { + for (var ruleGroup, i = 0; i < RULES.length; i++) { + var rg = RULES[i]; + if (rg.type == dataType) { + ruleGroup = rg; + break; + } + } + ruleGroup || (ruleGroup = { + type: dataType, + rules: [] + }, RULES.push(ruleGroup)); + var rule = { + keyword: keyword, + definition: definition, + custom: !0, + code: customRuleCode, + implements: definition.implements + }; + ruleGroup.rules.push(rule), RULES.custom[keyword] = rule; + } + return RULES.keywords[keyword] = RULES.all[keyword] = !0, this; + }, + get: function(keyword) { + var rule = this.RULES.custom[keyword]; + return rule ? rule.definition : this.RULES.keywords[keyword] || !1; + }, + remove: function(keyword) { + var RULES = this.RULES; + delete RULES.keywords[keyword], delete RULES.all[keyword], delete RULES.custom[keyword]; + for (var i = 0; i < RULES.length; i++) for (var rules = RULES[i].rules, j = 0; j < rules.length; j++) if (rules[j].keyword == keyword) { + rules.splice(j, 1); + break; + } + return this; + }, + validate: function validateKeyword(definition, throwError) { + validateKeyword.errors = null; + var v = this._validateKeyword = this._validateKeyword || this.compile(definitionSchema, !0); + if (v(definition)) return !0; + if (validateKeyword.errors = v.errors, throwError) throw new Error("custom keyword definition is invalid: " + this.errorsText(v.errors)); + return !1; + } + }; + var definitionSchema = { + definitions: { + simpleTypes: metaSchema.definitions.simpleTypes + }, + type: "object", + dependencies: { + schema: [ "validate" ], + $data: [ "validate" ], + statements: [ "inline" ], + valid: { + not: { + required: [ "macro" ] + } + } + }, + properties: { + type: metaSchema.properties.type, + schema: { + type: "boolean" + }, + statements: { + type: "boolean" + }, + dependencies: { + type: "array", + items: { + type: "string" + } + }, + metaSchema: { + type: "object" + }, + modifying: { + type: "boolean" + }, + valid: { + type: "boolean" + }, + $data: { + type: "boolean" + }, + async: { + type: "boolean" + }, + errors: { + anyOf: [ { + type: "boolean" + }, { + const: "full" + } ] + } + } + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(it, $keyword, $ruleType) { + var $errorKeyword, $schemaValue, out = " ", $lvl = it.level, $dataLvl = it.dataLevel, $schema = it.schema[$keyword], $schemaPath = it.schemaPath + it.util.getProperty($keyword), $errSchemaPath = it.errSchemaPath + "/" + $keyword, $breakOnError = !it.opts.allErrors, $data = "data" + ($dataLvl || ""), $valid = "valid" + $lvl, $errs = "errs__" + $lvl, $isData = it.opts.$data && $schema && $schema.$data; + $isData ? (out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ", + $schemaValue = "schema" + $lvl) : $schemaValue = $schema; + var $compile, $inline, $macro, $ruleValidate, $validateCode, $definition = "definition" + $lvl, $rDef = this.definition, $closingBraces = ""; + if ($isData && $rDef.$data) { + $validateCode = "keywordValidate" + $lvl; + var $validateSchema = $rDef.validateSchema; + out += " var " + $definition + " = RULES.custom['" + $keyword + "'].definition; var " + $validateCode + " = " + $definition + ".validate;"; + } else { + if (!($ruleValidate = it.useCustomRule(this, $schema, it.schema, it))) return; + $schemaValue = "validate.schema" + $schemaPath, $validateCode = $ruleValidate.code, + $compile = $rDef.compile, $inline = $rDef.inline, $macro = $rDef.macro; + } + var $ruleErrs = $validateCode + ".errors", $i = "i" + $lvl, $ruleErr = "ruleErr" + $lvl, $asyncKeyword = $rDef.async; + if ($asyncKeyword && !it.async) throw new Error("async keyword in sync schema"); + if ($inline || $macro || (out += $ruleErrs + " = null;"), out += "var " + $errs + " = errors;var " + $valid + ";", + $isData && $rDef.$data && ($closingBraces += "}", out += " if (" + $schemaValue + " === undefined) { " + $valid + " = true; } else { ", + $validateSchema && ($closingBraces += "}", out += " " + $valid + " = " + $definition + ".validateSchema(" + $schemaValue + "); if (" + $valid + ") { ")), + $inline) $rDef.statements ? out += " " + $ruleValidate.validate + " " : out += " " + $valid + " = " + $ruleValidate.validate + "; "; else if ($macro) { + var $it = it.util.copy(it); + $closingBraces = "", $it.level++; + var $nextValid = "valid" + $it.level; + $it.schema = $ruleValidate.validate, $it.schemaPath = ""; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = !0; + var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); + it.compositeRule = $it.compositeRule = $wasComposite, out += " " + $code; + } else { + ($$outStack = $$outStack || []).push(out), out = "", out += " " + $validateCode + ".call( ", + it.opts.passContext ? out += "this" : out += "self", $compile || !1 === $rDef.schema ? out += " , " + $data + " " : out += " , " + $schemaValue + " , " + $data + " , validate.schema" + it.schemaPath + " ", + out += " , (dataPath || '')", '""' != it.errorPath && (out += " + " + it.errorPath); + var $parentData = $dataLvl ? "data" + ($dataLvl - 1 || "") : "parentData", $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : "parentDataProperty", def_callRuleValidate = out += " , " + $parentData + " , " + $parentDataProperty + " , rootData ) "; + out = $$outStack.pop(), !1 === $rDef.errors ? (out += " " + $valid + " = ", $asyncKeyword && (out += "await "), + out += def_callRuleValidate + "; ") : out += $asyncKeyword ? " var " + ($ruleErrs = "customErrors" + $lvl) + " = null; try { " + $valid + " = await " + def_callRuleValidate + "; } catch (e) { " + $valid + " = false; if (e instanceof ValidationError) " + $ruleErrs + " = e.errors; else throw e; } " : " " + $ruleErrs + " = null; " + $valid + " = " + def_callRuleValidate + "; "; + } + if ($rDef.modifying && (out += " if (" + $parentData + ") " + $data + " = " + $parentData + "[" + $parentDataProperty + "];"), + out += "" + $closingBraces, $rDef.valid) $breakOnError && (out += " if (true) { "); else { + var $$outStack; + out += " if ( ", void 0 === $rDef.valid ? (out += " !", out += $macro ? "" + $nextValid : "" + $valid) : out += " " + !$rDef.valid + " ", + out += ") { ", $errorKeyword = this.keyword, ($$outStack = $$outStack || []).push(out), + out = "", ($$outStack = $$outStack || []).push(out), out = "", !1 !== it.createErrors ? (out += " { keyword: '" + ($errorKeyword || "custom") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { keyword: '" + this.keyword + "' } ", + !1 !== it.opts.messages && (out += " , message: 'should pass \"" + this.keyword + "\" keyword validation' "), + it.opts.verbose && (out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " "), + out += " } ") : out += " {} "; + var __err = out; + out = $$outStack.pop(), !it.compositeRule && $breakOnError ? it.async ? out += " throw new ValidationError([" + __err + "]); " : out += " validate.errors = [" + __err + "]; return false; " : out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "; + var def_customError = out; + out = $$outStack.pop(), $inline ? $rDef.errors ? "full" != $rDef.errors && (out += " for (var " + $i + "=" + $errs + "; " + $i + " b ? 1 : a < b ? -1 : 0; + } + function generateBase(httpMethod, base_uri, params) { + var normalized = (function(obj) { + var key, val, arr = []; + for (key in obj) if (val = obj[key], Array.isArray(val)) for (var i = 0; i < val.length; i++) arr.push([ key, val[i] ]); else if ("object" == typeof val) for (var prop in val) arr.push([ key + "[" + prop + "]", val[prop] ]); else arr.push([ key, val ]); + return arr; + })(params).map((function(p) { + return [ rfc3986(p[0]), rfc3986(p[1] || "") ]; + })).sort((function(a, b) { + return compare(a[0], b[0]) || compare(a[1], b[1]); + })).map((function(p) { + return p.join("="); + })).join("&"); + return [ rfc3986(httpMethod ? httpMethod.toUpperCase() : "GET"), rfc3986(base_uri), rfc3986(normalized) ].join("&"); + } + function hmacsign(httpMethod, base_uri, params, consumer_secret, token_secret) { + var base = generateBase(httpMethod, base_uri, params); + return sha([ consumer_secret || "", token_secret || "" ].map(rfc3986).join("&"), base, "sha1"); + } + function hmacsign256(httpMethod, base_uri, params, consumer_secret, token_secret) { + var base = generateBase(httpMethod, base_uri, params); + return sha([ consumer_secret || "", token_secret || "" ].map(rfc3986).join("&"), base, "sha256"); + } + function rsasign(httpMethod, base_uri, params, private_key, token_secret) { + return key = private_key || "", body = generateBase(httpMethod, base_uri, params), + crypto.createSign("RSA-SHA1").update(body).sign(key, "base64"); + var key, body; + } + function plaintext(consumer_secret, token_secret) { + return [ consumer_secret || "", token_secret || "" ].map(rfc3986).join("&"); + } + exports.hmacsign = hmacsign, exports.hmacsign256 = hmacsign256, exports.rsasign = rsasign, + exports.plaintext = plaintext, exports.sign = function(signMethod, httpMethod, base_uri, params, consumer_secret, token_secret) { + var method, skipArgs = 1; + switch (signMethod) { + case "RSA-SHA1": + method = rsasign; + break; + + case "HMAC-SHA1": + method = hmacsign; + break; + + case "HMAC-SHA256": + method = hmacsign256; + break; + + case "PLAINTEXT": + method = plaintext, skipArgs = 4; + break; + + default: + throw new Error("Signature method not supported: " + signMethod); + } + return method.apply(null, [].slice.call(arguments, skipArgs)); + }, exports.rfc3986 = rfc3986, exports.generateBase = generateBase; +}, function(module, exports, __webpack_require__) { + "use strict"; + var crypto = __webpack_require__(9); + exports.calculateMac = function(credentials, opts) { + var normalized = "hawk.1.header\n" + opts.ts + "\n" + opts.nonce + "\n" + (opts.method || "").toUpperCase() + "\n" + opts.resource + "\n" + opts.host.toLowerCase() + "\n" + opts.port + "\n" + (opts.hash || "") + "\n"; + return opts.ext && (normalized += opts.ext.replace("\\", "\\\\").replace("\n", "\\n")), + normalized += "\n", opts.app && (normalized = normalized + opts.app + "\n" + (opts.dlg || "") + "\n"), + crypto.createHmac(credentials.algorithm, credentials.key).update(normalized).digest("base64"); + }, exports.header = function(uri, method, opts) { + var timestamp = opts.timestamp || Math.floor((Date.now() + (opts.localtimeOffsetMsec || 0)) / 1e3), credentials = opts.credentials; + if (!(credentials && credentials.id && credentials.key && credentials.algorithm)) return ""; + if (-1 === [ "sha1", "sha256" ].indexOf(credentials.algorithm)) return ""; + var payload, algorithm, contentType, hash, artifacts = { + ts: timestamp, + nonce: opts.nonce || (6, 42, crypto.randomBytes(Math.ceil(5.25)).toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "").slice(0, 6)), + method: method, + resource: uri.pathname + (uri.search || ""), + host: uri.hostname, + port: uri.port || ("http:" === uri.protocol ? 80 : 443), + hash: opts.hash, + ext: opts.ext, + app: opts.app, + dlg: opts.dlg + }; + artifacts.hash || !opts.payload && "" !== opts.payload || (artifacts.hash = (payload = opts.payload, + algorithm = credentials.algorithm, contentType = opts.contentType, (hash = crypto.createHash(algorithm)).update("hawk.1.payload\n"), + hash.update((contentType ? contentType.split(";")[0].trim().toLowerCase() : "") + "\n"), + hash.update(payload || ""), hash.update("\n"), hash.digest("base64"))); + var mac = exports.calculateMac(credentials, artifacts), hasExt = null !== artifacts.ext && void 0 !== artifacts.ext && "" !== artifacts.ext, header = 'Hawk id="' + credentials.id + '", ts="' + artifacts.ts + '", nonce="' + artifacts.nonce + (artifacts.hash ? '", hash="' + artifacts.hash : "") + (hasExt ? '", ext="' + artifacts.ext.replace(/\\/g, "\\\\").replace(/"/g, '\\"') : "") + '", mac="' + mac + '"'; + return artifacts.app && (header = header + ', app="' + artifacts.app + (artifacts.dlg ? '", dlg="' + artifacts.dlg : "") + '"'), + header; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var uuid = __webpack_require__(148), CombinedStream = __webpack_require__(485), isstream = __webpack_require__(492), Buffer = __webpack_require__(25).Buffer; + function Multipart(request) { + this.request = request, this.boundary = uuid(), this.chunked = !1, this.body = null; + } + Multipart.prototype.isChunked = function(options) { + var self = this, chunked = !1, parts = options.data || options; + return parts.forEach || self.request.emit("error", new Error("Argument error, options.multipart.")), + void 0 !== options.chunked && (chunked = options.chunked), "chunked" === self.request.getHeader("transfer-encoding") && (chunked = !0), + chunked || parts.forEach((function(part) { + void 0 === part.body && self.request.emit("error", new Error("Body attribute missing in multipart.")), + isstream(part.body) && (chunked = !0); + })), chunked; + }, Multipart.prototype.setHeaders = function(chunked) { + chunked && !this.request.hasHeader("transfer-encoding") && this.request.setHeader("transfer-encoding", "chunked"); + var header = this.request.getHeader("content-type"); + header && -1 !== header.indexOf("multipart") ? -1 !== header.indexOf("boundary") ? this.boundary = header.replace(/.*boundary=([^\s;]+).*/, "$1") : this.request.setHeader("content-type", header + "; boundary=" + this.boundary) : this.request.setHeader("content-type", "multipart/related; boundary=" + this.boundary); + }, Multipart.prototype.build = function(parts, chunked) { + var self = this, body = chunked ? new CombinedStream : []; + function add(part) { + return "number" == typeof part && (part = part.toString()), chunked ? body.append(part) : body.push(Buffer.from(part)); + } + return self.request.preambleCRLF && add("\r\n"), parts.forEach((function(part) { + var preamble = "--" + self.boundary + "\r\n"; + Object.keys(part).forEach((function(key) { + "body" !== key && (preamble += key + ": " + part[key] + "\r\n"); + })), add(preamble += "\r\n"), add(part.body), add("\r\n"); + })), add("--" + self.boundary + "--"), self.request.postambleCRLF && add("\r\n"), + body; + }, Multipart.prototype.onRequest = function(options) { + var chunked = this.isChunked(options), parts = options.data || options; + this.setHeaders(chunked), this.chunked = chunked, this.body = this.build(parts, chunked); + }, exports.Multipart = Multipart; +}, function(module, exports, __webpack_require__) { + "use strict"; + var url = __webpack_require__(6), isUrl = /^https?:/; + function Redirect(request) { + this.request = request, this.followRedirect = !0, this.followRedirects = !0, this.followAllRedirects = !1, + this.followOriginalHttpMethod = !1, this.allowRedirect = function() { + return !0; + }, this.maxRedirects = 10, this.redirects = [], this.redirectsFollowed = 0, this.removeRefererHeader = !1; + } + Redirect.prototype.onRequest = function(options) { + void 0 !== options.maxRedirects && (this.maxRedirects = options.maxRedirects), "function" == typeof options.followRedirect && (this.allowRedirect = options.followRedirect), + void 0 !== options.followRedirect && (this.followRedirects = !!options.followRedirect), + void 0 !== options.followAllRedirects && (this.followAllRedirects = options.followAllRedirects), + (this.followRedirects || this.followAllRedirects) && (this.redirects = this.redirects || []), + void 0 !== options.removeRefererHeader && (this.removeRefererHeader = options.removeRefererHeader), + void 0 !== options.followOriginalHttpMethod && (this.followOriginalHttpMethod = options.followOriginalHttpMethod); + }, Redirect.prototype.redirectTo = function(response) { + var request = this.request, redirectTo = null; + if (response.statusCode >= 300 && response.statusCode < 400 && response.caseless.has("location")) { + var location = response.caseless.get("location"); + if (request.debug("redirect", location), this.followAllRedirects) redirectTo = location; else if (this.followRedirects) switch (request.method) { + case "PATCH": + case "PUT": + case "POST": + case "DELETE": + break; + + default: + redirectTo = location; + } + } else if (401 === response.statusCode) { + var authHeader = request._auth.onResponse(response); + authHeader && (request.setHeader("authorization", authHeader), redirectTo = request.uri); + } + return redirectTo; + }, Redirect.prototype.onResponse = function(response) { + var request = this.request, redirectTo = this.redirectTo(response); + if (!redirectTo || !this.allowRedirect.call(request, response)) return !1; + if (request.debug("redirect to", redirectTo), response.resume && response.resume(), + this.redirectsFollowed >= this.maxRedirects) return request.emit("error", new Error("Exceeded maxRedirects. Probably stuck in a redirect loop " + request.uri.href)), + !1; + this.redirectsFollowed += 1, isUrl.test(redirectTo) || (redirectTo = url.resolve(request.uri.href, redirectTo)); + var uriPrev = request.uri; + return request.uri = url.parse(redirectTo), request.uri.protocol !== uriPrev.protocol && delete request.agent, + this.redirects.push({ + statusCode: response.statusCode, + redirectUri: redirectTo + }), this.followAllRedirects && "HEAD" !== request.method && 401 !== response.statusCode && 307 !== response.statusCode && (request.method = this.followOriginalHttpMethod ? request.method : "GET"), + delete request.src, delete request.req, delete request._started, 401 !== response.statusCode && 307 !== response.statusCode && (delete request.body, + delete request._form, request.headers && (request.removeHeader("host"), request.removeHeader("content-type"), + request.removeHeader("content-length"), request.uri.hostname !== request.originalHost.split(":")[0] && request.removeHeader("authorization"))), + this.removeRefererHeader || request.setHeader("referer", uriPrev.href), request.emit("redirect"), + request.init(), !0; + }, exports.Redirect = Redirect; +}, function(module, exports, __webpack_require__) { + "use strict"; + var url = __webpack_require__(6), tunnel = __webpack_require__(1144), defaultProxyHeaderWhiteList = [ "accept", "accept-charset", "accept-encoding", "accept-language", "accept-ranges", "cache-control", "content-encoding", "content-language", "content-location", "content-md5", "content-range", "content-type", "connection", "date", "expect", "max-forwards", "pragma", "referer", "te", "user-agent", "via" ], defaultProxyHeaderExclusiveList = [ "proxy-authorization" ]; + function Tunnel(request) { + this.request = request, this.proxyHeaderWhiteList = defaultProxyHeaderWhiteList, + this.proxyHeaderExclusiveList = [], void 0 !== request.tunnel && (this.tunnelOverride = request.tunnel); + } + Tunnel.prototype.isEnabled = function() { + var request = this.request; + return void 0 !== this.tunnelOverride ? this.tunnelOverride : "https:" === request.uri.protocol; + }, Tunnel.prototype.setup = function(options) { + var request = this.request; + if (options = options || {}, "string" == typeof request.proxy && (request.proxy = url.parse(request.proxy)), + !request.proxy || !request.tunnel) return !1; + options.proxyHeaderWhiteList && (this.proxyHeaderWhiteList = options.proxyHeaderWhiteList), + options.proxyHeaderExclusiveList && (this.proxyHeaderExclusiveList = options.proxyHeaderExclusiveList); + var uriObject, port, protocol, proxyHeaderExclusiveList = this.proxyHeaderExclusiveList.concat(defaultProxyHeaderExclusiveList), proxyHeaderWhiteList = this.proxyHeaderWhiteList.concat(proxyHeaderExclusiveList), proxyHeaders = (function(headers, proxyHeaderWhiteList) { + var whiteList = proxyHeaderWhiteList.reduce((function(set, header) { + return set[header.toLowerCase()] = !0, set; + }), {}); + return Object.keys(headers).filter((function(header) { + return whiteList[header.toLowerCase()]; + })).reduce((function(set, header) { + return set[header] = headers[header], set; + }), {}); + })(request.headers, proxyHeaderWhiteList); + proxyHeaders.host = (port = (uriObject = request.uri).port, protocol = uriObject.protocol, + uriObject.hostname + ":" + (port || ("https:" === protocol ? "443" : "80"))), proxyHeaderExclusiveList.forEach(request.removeHeader, request); + var tunnelFn = (function(request) { + var uri, proxy, tunnelFnName = (uri = request.uri, proxy = request.proxy, [ "https:" === uri.protocol ? "https" : "http", "https:" === proxy.protocol ? "Https" : "Http" ].join("Over")); + return tunnel[tunnelFnName]; + })(request), tunnelOptions = (function(request, proxyHeaders) { + var proxy = request.proxy; + return { + proxy: { + host: proxy.hostname, + port: +proxy.port, + proxyAuth: proxy.auth, + headers: proxyHeaders + }, + headers: request.headers, + ca: request.ca, + cert: request.cert, + key: request.key, + passphrase: request.passphrase, + pfx: request.pfx, + ciphers: request.ciphers, + rejectUnauthorized: request.rejectUnauthorized, + secureOptions: request.secureOptions, + secureProtocol: request.secureProtocol + }; + })(request, proxyHeaders); + return request.agent = tunnelFn(tunnelOptions), !0; + }, Tunnel.defaultProxyHeaderWhiteList = defaultProxyHeaderWhiteList, Tunnel.defaultProxyHeaderExclusiveList = defaultProxyHeaderExclusiveList, + exports.Tunnel = Tunnel; +}, function(module, exports, __webpack_require__) { + "use strict"; + __webpack_require__(42); + var debug, tls = __webpack_require__(92), http = __webpack_require__(11), https = __webpack_require__(21), events = __webpack_require__(5), assert = __webpack_require__(22), util = __webpack_require__(0), Buffer = __webpack_require__(25).Buffer; + function TunnelingAgent(options) { + var self = this; + self.options = options || {}, self.proxyOptions = self.options.proxy || {}, self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets, + self.requests = [], self.sockets = [], self.on("free", (function(socket, host, port) { + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === host && pending.port === port) return self.requests.splice(i, 1), + void pending.request.onSocket(socket); + } + socket.destroy(), self.removeSocket(socket); + })); + } + function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, (function(socket) { + var secureSocket = tls.connect(0, mergeOptions({}, self.options, { + servername: options.host, + socket: socket + })); + self.sockets[self.sockets.indexOf(socket)] = secureSocket, cb(secureSocket); + })); + } + function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if ("object" == typeof overrides) for (var keys = Object.keys(overrides), j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + void 0 !== overrides[k] && (target[k] = overrides[k]); + } + } + return target; + } + exports.httpOverHttp = function(options) { + var agent = new TunnelingAgent(options); + return agent.request = http.request, agent; + }, exports.httpsOverHttp = function(options) { + var agent = new TunnelingAgent(options); + return agent.request = http.request, agent.createSocket = createSecureSocket, agent.defaultPort = 443, + agent; + }, exports.httpOverHttps = function(options) { + var agent = new TunnelingAgent(options); + return agent.request = https.request, agent; + }, exports.httpsOverHttps = function(options) { + var agent = new TunnelingAgent(options); + return agent.request = https.request, agent.createSocket = createSecureSocket, agent.defaultPort = 443, + agent; + }, util.inherits(TunnelingAgent, events.EventEmitter), TunnelingAgent.prototype.addRequest = function(req, options) { + var self = this; + "string" == typeof options && (options = { + host: options, + port: arguments[2], + path: arguments[3] + }), self.sockets.length >= this.maxSockets ? self.requests.push({ + host: options.host, + port: options.port, + request: req + }) : self.createConnection({ + host: options.host, + port: options.port, + request: req + }); + }, TunnelingAgent.prototype.createConnection = function(pending) { + var self = this; + self.createSocket(pending, (function(socket) { + function onFree() { + self.emit("free", socket, pending.host, pending.port); + } + function onCloseOrRemove(err) { + self.removeSocket(socket), socket.removeListener("free", onFree), socket.removeListener("close", onCloseOrRemove), + socket.removeListener("agentRemove", onCloseOrRemove); + } + socket.on("free", onFree), socket.on("close", onCloseOrRemove), socket.on("agentRemove", onCloseOrRemove), + pending.request.onSocket(socket); + })); + }, TunnelingAgent.prototype.createSocket = function(options, cb) { + var self = this, placeholder = {}; + self.sockets.push(placeholder); + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: "CONNECT", + path: options.host + ":" + options.port, + agent: !1 + }); + connectOptions.proxyAuth && (connectOptions.headers = connectOptions.headers || {}, + connectOptions.headers["Proxy-Authorization"] = "Basic " + Buffer.from(connectOptions.proxyAuth).toString("base64")), + debug("making CONNECT request"); + var connectReq = self.request(connectOptions); + function onConnect(res, socket, head) { + if (connectReq.removeAllListeners(), socket.removeAllListeners(), 200 === res.statusCode) assert.equal(head.length, 0), + debug("tunneling connection has established"), self.sockets[self.sockets.indexOf(placeholder)] = socket, + cb(socket); else { + debug("tunneling socket could not be established, statusCode=%d", res.statusCode); + var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); + error.code = "ECONNRESET", options.request.emit("error", error), self.removeSocket(placeholder); + } + } + connectReq.useChunkedEncodingByDefault = !1, connectReq.once("response", (function(res) { + res.upgrade = !0; + })), connectReq.once("upgrade", (function(res, socket, head) { + process.nextTick((function() { + onConnect(res, socket, head); + })); + })), connectReq.once("connect", onConnect), connectReq.once("error", (function(cause) { + connectReq.removeAllListeners(), debug("tunneling socket could not be established, cause=%s\n", cause.message, cause.stack); + var error = new Error("tunneling socket could not be established, cause=" + cause.message); + error.code = "ECONNRESET", options.request.emit("error", error), self.removeSocket(placeholder); + })), connectReq.end(); + }, TunnelingAgent.prototype.removeSocket = function(socket) { + var pos = this.sockets.indexOf(socket); + if (-1 !== pos) { + this.sockets.splice(pos, 1); + var pending = this.requests.shift(); + pending && this.createConnection(pending); + } + }, debug = process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? function() { + var args = Array.prototype.slice.call(arguments); + "string" == typeof args[0] ? args[0] = "TUNNEL: " + args[0] : args.unshift("TUNNEL:"), + console.error.apply(console, args); + } : function() {}, exports.debug = debug; +}, function(module, exports) { + (function() { + var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime; + "undefined" != typeof performance && null !== performance && performance.now ? module.exports = function() { + return performance.now(); + } : "undefined" != typeof process && null !== process && process.hrtime ? (module.exports = function() { + return (getNanoSeconds() - nodeLoadTime) / 1e6; + }, hrtime = process.hrtime, moduleLoadTime = (getNanoSeconds = function() { + var hr; + return 1e9 * (hr = hrtime())[0] + hr[1]; + })(), upTime = 1e9 * process.uptime(), nodeLoadTime = moduleLoadTime - upTime) : Date.now ? (module.exports = function() { + return Date.now() - loadTime; + }, loadTime = Date.now()) : (module.exports = function() { + return (new Date).getTime() - loadTime; + }, loadTime = (new Date).getTime()); + }).call(this); +}, function(module, exports, __webpack_require__) { + const request = __webpack_require__(228); + module.exports = async function(url) { + return new Promise(((resolve, reject) => { + const req = request({ + url: url, + followRedirect: !0, + maxRedirects: 5, + strictSSL: !1 + }); + req.on("response", (function(d) { + req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject("Could not retrieve content-length from ranged request"); + })).on("error", reject); + })); + }; +}, function(module, exports, __webpack_require__) { + const mime = __webpack_require__(63); + module.exports = function(rarInnerFile) { + return mime.lookup(rarInnerFile.name) || "application/octet-stream"; + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(240), getRouter = __webpack_require__(1149), getZipStream = __webpack_require__(504); + module.exports = { + router: getRouter, + create: zipUrls => { + if (!zipUrls || !Array.isArray(zipUrls)) throw Error('"zipUrls" is undefined or not an array'); + return store.set(zipUrls); + }, + file: async (key, opts) => { + if (!key) throw Error('Missing "key"'); + const file = await getZipStream({ + url: key, + query: { + o: JSON.stringify(opts || {}), + key: key + } + }); + return file.createReadStream = () => file.stream(), file; + } + }; +}, function(module, exports, __webpack_require__) { + const getContentType = __webpack_require__(1150), getZipStream = __webpack_require__(504), bodyParser = __webpack_require__(106), Router = __webpack_require__(469), store = __webpack_require__(240); + module.exports = function() { + const router = Router(); + return router.use(bodyParser.json()), router.post("/create", ((req, res) => { + Array.isArray(req.body) || res.status(500).send("Cannot parse JSON data"); + const key = store.set(req.body); + res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + })); + })), router.get("/stream", (async (req, res) => { + let file; + try { + file = await getZipStream(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + const contentLength = file.uncompressedSize; + return ((req || {}).headers || {}).range && "bytes=0-" !== req.headers.range && req.headers.range !== "bytes=0-" + (contentLength - 1) ? (res.statusCode = 405, + void res.end()) : "HEAD" === req.method ? (res.statusCode = 204, res.setHeader("Content-Length", contentLength + ""), + res.setHeader("Content-Type", getContentType({ + name: file.path + })), void res.end()) : (res.statusCode = 200, res.setHeader("Content-Type", getContentType({ + name: file.path + })), res.setHeader("Content-Length", contentLength), void file.stream().pipe(res)); + })), router; + }; +}, function(module, exports, __webpack_require__) { + const mime = __webpack_require__(63); + module.exports = function(rarInnerFile) { + return mime.lookup(rarInnerFile.name) || "application/octet-stream"; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + exports.Open = __webpack_require__(1152); +}, function(module, exports, __webpack_require__) { + var directory = __webpack_require__(1153), Stream = __webpack_require__(3); + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + module.exports = { + url: function(request, params, options) { + if ("string" == typeof params && (params = { + url: params + }), !params.url) throw "URL missing"; + params.headers = params.headers || {}; + var source = { + stream: function(offset, length) { + var options = Object.create(params); + return options.headers = Object.create(params.headers), options.headers.range = "bytes=" + offset + "-" + (length || ""), + request(options); + }, + size: function() { + return new Promise((function(resolve, reject) { + var req = request(params); + req.on("response", (function(d) { + req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject(new Error("Missing content length header")); + })).on("error", reject); + })); + } + }; + return directory(source, options); + } + }; +}, function(module, exports, __webpack_require__) { + var binary = __webpack_require__(241), PullStream = __webpack_require__(505), unzip = __webpack_require__(1158), Promise = __webpack_require__(1161), BufferStream = __webpack_require__(1193), parseExtraField = __webpack_require__(506), Buffer = __webpack_require__(153), path = __webpack_require__(4), Writer = __webpack_require__(1194).Writer, parseDateTime = __webpack_require__(507), signature = Buffer.alloc(4); + signature.writeUInt32LE(101010256, 0), module.exports = function(source, options) { + var sourceSize, crxHeader, startOffset, vars, endDir = PullStream(), records = PullStream(), tailSize = options && options.tailSize || 80; + return options && options.crx && (crxHeader = (function(source) { + var sourceStream = source.stream(0).pipe(PullStream()); + return sourceStream.pull(4).then((function(data) { + var crxHeader; + if (875721283 === data.readUInt32LE(0)) return sourceStream.pull(12).then((function(data) { + crxHeader = binary.parse(data).word32lu("version").word32lu("pubKeyLength").word32lu("signatureLength").vars; + })).then((function() { + return sourceStream.pull(crxHeader.pubKeyLength + crxHeader.signatureLength); + })).then((function(data) { + return crxHeader.publicKey = data.slice(0, crxHeader.pubKeyLength), crxHeader.signature = data.slice(crxHeader.pubKeyLength), + crxHeader.size = 16 + crxHeader.pubKeyLength + crxHeader.signatureLength, crxHeader; + })); + })); + })(source)), source.size().then((function(size) { + return sourceSize = size, source.stream(Math.max(0, size - tailSize)).on("error", (function(error) { + endDir.emit("error", error); + })).pipe(endDir), endDir.pull(signature); + })).then((function() { + return Promise.props({ + directory: endDir.pull(22), + crxHeader: crxHeader + }); + })).then((function(d) { + var data = d.directory; + if (startOffset = d.crxHeader && d.crxHeader.size || 0, 65535 == (vars = binary.parse(data).word32lu("signature").word16lu("diskNumber").word16lu("diskStart").word16lu("numberOfRecordsOnDisk").word16lu("numberOfRecords").word32lu("sizeOfCentralDirectory").word32lu("offsetToStartOfCentralDirectory").word16lu("commentLength").vars).numberOfRecords || 65535 == vars.numberOfRecords || 4294967295 == vars.offsetToStartOfCentralDirectory) { + const zip64CDLSize = 20, zip64CDLOffset = sourceSize - (tailSize - endDir.match + zip64CDLSize), zip64CDLStream = PullStream(); + return source.stream(zip64CDLOffset).pipe(zip64CDLStream), zip64CDLStream.pull(zip64CDLSize).then((function(d) { + return (function(source, zip64CDL) { + var d64loc = binary.parse(zip64CDL).word32lu("signature").word32lu("diskNumber").word64lu("offsetToStartOfCentralDirectory").word32lu("numberOfDisks").vars; + if (117853008 != d64loc.signature) throw new Error("invalid zip64 end of central dir locator signature (0x07064b50): 0x" + d64loc.signature.toString(16)); + var dir64 = PullStream(); + return source.stream(d64loc.offsetToStartOfCentralDirectory).pipe(dir64), dir64.pull(56); + })(source, d); + })).then((function(dir64record) { + vars = (function(dir64record) { + var vars = binary.parse(dir64record).word32lu("signature").word64lu("sizeOfCentralDirectory").word16lu("version").word16lu("versionsNeededToExtract").word32lu("diskNumber").word32lu("diskStart").word64lu("numberOfRecordsOnDisk").word64lu("numberOfRecords").word64lu("sizeOfCentralDirectory").word64lu("offsetToStartOfCentralDirectory").vars; + if (101075792 != vars.signature) throw new Error("invalid zip64 end of central dir locator signature (0x06064b50): 0x0" + vars.signature.toString(16)); + return vars; + })(dir64record); + })); + } + vars.offsetToStartOfCentralDirectory += startOffset; + })).then((function() { + if (vars.commentLength) return endDir.pull(vars.commentLength).then((function(comment) { + vars.comment = comment.toString("utf8"); + })); + })).then((function() { + return source.stream(vars.offsetToStartOfCentralDirectory).pipe(records), vars.extract = function(opts) { + if (!opts || !opts.path) throw new Error("PATH_MISSING"); + return opts.path = path.resolve(path.normalize(opts.path)), vars.files.then((function(files) { + return Promise.map(files, (function(entry) { + if ("Directory" != entry.type) { + var extractPath = path.join(opts.path, entry.path); + if (0 == extractPath.indexOf(opts.path)) { + var writer = opts.getWriter ? opts.getWriter({ + path: extractPath + }) : Writer({ + path: extractPath + }); + return new Promise((function(resolve, reject) { + entry.stream(opts.password).on("error", reject).pipe(writer).on("close", resolve).on("error", reject); + })); + } + } + }), { + concurrency: opts.concurrency > 1 ? opts.concurrency : 1 + }); + })); + }, vars.files = Promise.mapSeries(Array(vars.numberOfRecords), (function() { + return records.pull(46).then((function(data) { + var vars = binary.parse(data).word32lu("signature").word16lu("versionMadeBy").word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").word16lu("fileCommentLength").word16lu("diskNumber").word16lu("internalFileAttributes").word32lu("externalFileAttributes").word32lu("offsetToLocalFileHeader").vars; + return vars.offsetToLocalFileHeader += startOffset, vars.lastModifiedDateTime = parseDateTime(vars.lastModifiedDate, vars.lastModifiedTime), + records.pull(vars.fileNameLength).then((function(fileNameBuffer) { + return vars.pathBuffer = fileNameBuffer, vars.path = fileNameBuffer.toString("utf8"), + vars.isUnicode = 0 != (2048 & vars.flags), records.pull(vars.extraFieldLength); + })).then((function(extraField) { + return vars.extra = parseExtraField(extraField, vars), records.pull(vars.fileCommentLength); + })).then((function(comment) { + return vars.comment = comment, vars.type = 0 === vars.uncompressedSize && /[\/\\]$/.test(vars.path) ? "Directory" : "File", + vars.stream = function(_password) { + return unzip(source, vars.offsetToLocalFileHeader, _password, vars); + }, vars.buffer = function(_password) { + return BufferStream(vars.stream(_password)); + }, vars; + })); + })); + })), Promise.props(vars); + })); + }; +}, function(module, exports, __webpack_require__) { + var Traverse = __webpack_require__(1155), EventEmitter = __webpack_require__(5).EventEmitter; + function Chainsaw(builder) { + var saw = Chainsaw.saw(builder, {}), r = builder.call(saw.handlers, saw); + return void 0 !== r && (saw.handlers = r), saw.record(), saw.chain(); + } + module.exports = Chainsaw, Chainsaw.light = function(builder) { + var saw = Chainsaw.saw(builder, {}), r = builder.call(saw.handlers, saw); + return void 0 !== r && (saw.handlers = r), saw.chain(); + }, Chainsaw.saw = function(builder, handlers) { + var saw = new EventEmitter; + return saw.handlers = handlers, saw.actions = [], saw.chain = function() { + var ch = Traverse(saw.handlers).map((function(node) { + if (this.isRoot) return node; + var ps = this.path; + "function" == typeof node && this.update((function() { + return saw.actions.push({ + path: ps, + args: [].slice.call(arguments) + }), ch; + })); + })); + return process.nextTick((function() { + saw.emit("begin"), saw.next(); + })), ch; + }, saw.pop = function() { + return saw.actions.shift(); + }, saw.next = function() { + var action = saw.pop(); + if (action) { + if (!action.trap) { + var node = saw.handlers; + action.path.forEach((function(key) { + node = node[key]; + })), node.apply(saw.handlers, action.args); + } + } else saw.emit("end"); + }, saw.nest = function(cb) { + var args = [].slice.call(arguments, 1), autonext = !0; + "boolean" == typeof cb && (autonext = cb, cb = args.shift()); + var s = Chainsaw.saw(builder, {}), r = builder.call(s.handlers, s); + void 0 !== r && (s.handlers = r), void 0 !== saw.step && s.record(), cb.apply(s.chain(), args), + !1 !== autonext && s.on("end", saw.next); + }, saw.record = function() { + !(function(saw) { + saw.step = 0, saw.pop = function() { + return saw.actions[saw.step++]; + }, saw.trap = function(name, cb) { + var ps = Array.isArray(name) ? name : [ name ]; + saw.actions.push({ + path: ps, + step: saw.step, + cb: cb, + trap: !0 + }); + }, saw.down = function(name) { + var ps = (Array.isArray(name) ? name : [ name ]).join("/"), i = saw.actions.slice(saw.step).map((function(x) { + return !(x.trap && x.step <= saw.step) && x.path.join("/") == ps; + })).indexOf(!0); + i >= 0 ? saw.step += i : saw.step = saw.actions.length; + var act = saw.actions[saw.step - 1]; + act && act.trap ? (saw.step = act.step, act.cb()) : saw.next(); + }, saw.jump = function(step) { + saw.step = step, saw.next(); + }; + })(saw); + }, [ "trap", "down", "jump" ].forEach((function(method) { + saw[method] = function() { + throw new Error("To use the trap, down and jump features, please call record() first to start recording actions."); + }; + })), saw; + }; +}, function(module, exports) { + function Traverse(obj) { + if (!(this instanceof Traverse)) return new Traverse(obj); + this.value = obj; + } + function walk(root, cb, immutable) { + var path = [], parents = [], alive = !0; + return (function walker(node_) { + var node = immutable ? copy(node_) : node_, modifiers = {}, state = { + node: node, + node_: node_, + path: [].concat(path), + parent: parents.slice(-1)[0], + key: path.slice(-1)[0], + isRoot: 0 === path.length, + level: path.length, + circular: null, + update: function(x) { + state.isRoot || (state.parent.node[state.key] = x), state.node = x; + }, + delete: function() { + delete state.parent.node[state.key]; + }, + remove: function() { + Array.isArray(state.parent.node) ? state.parent.node.splice(state.key, 1) : delete state.parent.node[state.key]; + }, + before: function(f) { + modifiers.before = f; + }, + after: function(f) { + modifiers.after = f; + }, + pre: function(f) { + modifiers.pre = f; + }, + post: function(f) { + modifiers.post = f; + }, + stop: function() { + alive = !1; + } + }; + if (!alive) return state; + if ("object" == typeof node && null !== node) { + state.isLeaf = 0 == Object.keys(node).length; + for (var i = 0; i < parents.length; i++) if (parents[i].node_ === node_) { + state.circular = parents[i]; + break; + } + } else state.isLeaf = !0; + state.notLeaf = !state.isLeaf, state.notRoot = !state.isRoot; + var ret = cb.call(state, state.node); + if (void 0 !== ret && state.update && state.update(ret), modifiers.before && modifiers.before.call(state, state.node), + "object" == typeof state.node && null !== state.node && !state.circular) { + parents.push(state); + var keys = Object.keys(state.node); + keys.forEach((function(key, i) { + path.push(key), modifiers.pre && modifiers.pre.call(state, state.node[key], key); + var child = walker(state.node[key]); + immutable && Object.hasOwnProperty.call(state.node, key) && (state.node[key] = child.node), + child.isLast = i == keys.length - 1, child.isFirst = 0 == i, modifiers.post && modifiers.post.call(state, child), + path.pop(); + })), parents.pop(); + } + return modifiers.after && modifiers.after.call(state, state.node), state; + })(root).node; + } + function copy(src) { + var dst; + return "object" == typeof src && null !== src ? (dst = Array.isArray(src) ? [] : src instanceof Date ? new Date(src) : src instanceof Boolean ? new Boolean(src) : src instanceof Number ? new Number(src) : src instanceof String ? new String(src) : Object.create(Object.getPrototypeOf(src)), + Object.keys(src).forEach((function(key) { + dst[key] = src[key]; + })), dst) : src; + } + module.exports = Traverse, Traverse.prototype.get = function(ps) { + for (var node = this.value, i = 0; i < ps.length; i++) { + var key = ps[i]; + if (!Object.hasOwnProperty.call(node, key)) { + node = void 0; + break; + } + node = node[key]; + } + return node; + }, Traverse.prototype.set = function(ps, value) { + for (var node = this.value, i = 0; i < ps.length - 1; i++) { + var key = ps[i]; + Object.hasOwnProperty.call(node, key) || (node[key] = {}), node = node[key]; + } + return node[ps[i]] = value, value; + }, Traverse.prototype.map = function(cb) { + return walk(this.value, cb, !0); + }, Traverse.prototype.forEach = function(cb) { + return this.value = walk(this.value, cb, !1), this.value; + }, Traverse.prototype.reduce = function(cb, init) { + var skip = 1 === arguments.length, acc = skip ? this.value : init; + return this.forEach((function(x) { + this.isRoot && skip || (acc = cb.call(this, acc, x)); + })), acc; + }, Traverse.prototype.deepEqual = function(obj) { + if (1 !== arguments.length) throw new Error("deepEqual requires exactly one object to compare against"); + var equal = !0, node = obj; + return this.forEach((function(y) { + var notEqual = function() { + equal = !1; + }.bind(this); + if (!this.isRoot) { + if ("object" != typeof node) return notEqual(); + node = node[this.key]; + } + var x = node; + this.post((function() { + node = x; + })); + var toS = function(o) { + return Object.prototype.toString.call(o); + }; + if (this.circular) Traverse(obj).get(this.circular.path) !== x && notEqual(); else if (typeof x != typeof y) notEqual(); else if (null === x || null === y || void 0 === x || void 0 === y) x !== y && notEqual(); else if (x.__proto__ !== y.__proto__) notEqual(); else if (x === y) ; else if ("function" == typeof x) x instanceof RegExp ? x.toString() != y.toString() && notEqual() : x !== y && notEqual(); else if ("object" == typeof x) if ("[object Arguments]" === toS(y) || "[object Arguments]" === toS(x)) toS(x) !== toS(y) && notEqual(); else if (x instanceof Date || y instanceof Date) x instanceof Date && y instanceof Date && x.getTime() === y.getTime() || notEqual(); else { + var kx = Object.keys(x), ky = Object.keys(y); + if (kx.length !== ky.length) return notEqual(); + for (var i = 0; i < kx.length; i++) { + var k = kx[i]; + Object.hasOwnProperty.call(y, k) || notEqual(); + } + } + })), equal; + }, Traverse.prototype.paths = function() { + var acc = []; + return this.forEach((function(x) { + acc.push(this.path); + })), acc; + }, Traverse.prototype.nodes = function() { + var acc = []; + return this.forEach((function(x) { + acc.push(this.node); + })), acc; + }, Traverse.prototype.clone = function() { + var parents = [], nodes = []; + return (function clone(src) { + for (var i = 0; i < parents.length; i++) if (parents[i] === src) return nodes[i]; + if ("object" == typeof src && null !== src) { + var dst = copy(src); + return parents.push(src), nodes.push(dst), Object.keys(src).forEach((function(key) { + dst[key] = clone(src[key]); + })), parents.pop(), nodes.pop(), dst; + } + return src; + })(this.value); + }, Object.keys(Traverse.prototype).forEach((function(key) { + Traverse[key] = function(obj) { + var args = [].slice.call(arguments, 1), t = Traverse(obj); + return t[key].apply(t, args); + }; + })); +}, function(module, exports) { + function Buffers(bufs) { + if (!(this instanceof Buffers)) return new Buffers(bufs); + this.buffers = bufs || [], this.length = this.buffers.reduce((function(size, buf) { + return size + buf.length; + }), 0); + } + module.exports = Buffers, Buffers.prototype.push = function() { + for (var i = 0; i < arguments.length; i++) if (!Buffer.isBuffer(arguments[i])) throw new TypeError("Tried to push a non-buffer"); + for (i = 0; i < arguments.length; i++) { + var buf = arguments[i]; + this.buffers.push(buf), this.length += buf.length; + } + return this.length; + }, Buffers.prototype.unshift = function() { + for (var i = 0; i < arguments.length; i++) if (!Buffer.isBuffer(arguments[i])) throw new TypeError("Tried to unshift a non-buffer"); + for (i = 0; i < arguments.length; i++) { + var buf = arguments[i]; + this.buffers.unshift(buf), this.length += buf.length; + } + return this.length; + }, Buffers.prototype.copy = function(dst, dStart, start, end) { + return this.slice(start, end).copy(dst, dStart, 0, end - start); + }, Buffers.prototype.splice = function(i, howMany) { + var buffers = this.buffers, index = i >= 0 ? i : this.length - i, reps = [].slice.call(arguments, 2); + for ((void 0 === howMany || howMany > this.length - index) && (howMany = this.length - index), + i = 0; i < reps.length; i++) this.length += reps[i].length; + for (var removed = new Buffers, startBytes = 0, ii = 0; ii < buffers.length && startBytes + buffers[ii].length < index; ii++) startBytes += buffers[ii].length; + if (index - startBytes > 0) { + var start = index - startBytes; + if (start + howMany < buffers[ii].length) { + removed.push(buffers[ii].slice(start, start + howMany)); + var orig = buffers[ii], buf0 = new Buffer(start); + for (i = 0; i < start; i++) buf0[i] = orig[i]; + var buf1 = new Buffer(orig.length - start - howMany); + for (i = start + howMany; i < orig.length; i++) buf1[i - howMany - start] = orig[i]; + if (reps.length > 0) { + var reps_ = reps.slice(); + reps_.unshift(buf0), reps_.push(buf1), buffers.splice.apply(buffers, [ ii, 1 ].concat(reps_)), + ii += reps_.length, reps = []; + } else buffers.splice(ii, 1, buf0, buf1), ii += 2; + } else removed.push(buffers[ii].slice(start)), buffers[ii] = buffers[ii].slice(0, start), + ii++; + } + for (reps.length > 0 && (buffers.splice.apply(buffers, [ ii, 0 ].concat(reps)), + ii += reps.length); removed.length < howMany; ) { + var buf = buffers[ii], len = buf.length, take = Math.min(len, howMany - removed.length); + take === len ? (removed.push(buf), buffers.splice(ii, 1)) : (removed.push(buf.slice(0, take)), + buffers[ii] = buffers[ii].slice(take)); + } + return this.length -= removed.length, removed; + }, Buffers.prototype.slice = function(i, j) { + var buffers = this.buffers; + void 0 === j && (j = this.length), void 0 === i && (i = 0), j > this.length && (j = this.length); + for (var startBytes = 0, si = 0; si < buffers.length && startBytes + buffers[si].length <= i; si++) startBytes += buffers[si].length; + for (var target = new Buffer(j - i), ti = 0, ii = si; ti < j - i && ii < buffers.length; ii++) { + var len = buffers[ii].length, start = 0 === ti ? i - startBytes : 0, end = ti + len >= j - i ? Math.min(start + (j - i) - ti, len) : len; + buffers[ii].copy(target, ti, start, end), ti += end - start; + } + return target; + }, Buffers.prototype.pos = function(i) { + if (i < 0 || i >= this.length) throw new Error("oob"); + for (var l = i, bi = 0, bu = null; ;) { + if (l < (bu = this.buffers[bi]).length) return { + buf: bi, + offset: l + }; + l -= bu.length, bi++; + } + }, Buffers.prototype.get = function(i) { + var pos = this.pos(i); + return this.buffers[pos.buf].get(pos.offset); + }, Buffers.prototype.set = function(i, b) { + var pos = this.pos(i); + return this.buffers[pos.buf].set(pos.offset, b); + }, Buffers.prototype.indexOf = function(needle, offset) { + if ("string" == typeof needle) needle = new Buffer(needle); else if (!(needle instanceof Buffer)) throw new Error("Invalid type for a search string"); + if (!needle.length) return 0; + if (!this.length) return -1; + var mstart, i = 0, j = 0, match = 0, pos = 0; + if (offset) { + var p = this.pos(offset); + i = p.buf, j = p.offset, pos = offset; + } + for (;;) { + for (;j >= this.buffers[i].length; ) if (j = 0, ++i >= this.buffers.length) return -1; + if (this.buffers[i][j] == needle[match]) { + if (0 == match && (mstart = { + i: i, + j: j, + pos: pos + }), ++match == needle.length) return mstart.pos; + } else 0 != match && (i = mstart.i, j = mstart.j, pos = mstart.pos, match = 0); + j++, pos++; + } + }, Buffers.prototype.toBuffer = function() { + return this.slice(); + }, Buffers.prototype.toString = function(encoding, start, end) { + return this.slice(start, end).toString(encoding); + }; +}, function(module, exports) { + module.exports = function(store) { + function getset(name, value) { + var node = vars.store, keys = name.split("."); + keys.slice(0, -1).forEach((function(k) { + void 0 === node[k] && (node[k] = {}), node = node[k]; + })); + var key = keys[keys.length - 1]; + return 1 == arguments.length ? node[key] : node[key] = value; + } + var vars = { + get: function(name) { + return getset(name); + }, + set: function(name, value) { + return getset(name, value); + }, + store: store || {} + }; + return vars; + }; +}, function(module, exports, __webpack_require__) { + var Decrypt = __webpack_require__(1159), PullStream = __webpack_require__(505), Stream = __webpack_require__(3), binary = __webpack_require__(241), zlib = __webpack_require__(45), parseExtraField = __webpack_require__(506), Buffer = __webpack_require__(153), parseDateTime = __webpack_require__(507); + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + module.exports = function(source, offset, _password, directoryVars) { + var file = PullStream(), entry = Stream.PassThrough(), req = source.stream(offset); + return req.pipe(file).on("error", (function(e) { + entry.emit("error", e); + })), entry.vars = file.pull(30).then((function(data) { + var vars = binary.parse(data).word32lu("signature").word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").vars; + return vars.lastModifiedDateTime = parseDateTime(vars.lastModifiedDate, vars.lastModifiedTime), + file.pull(vars.fileNameLength).then((function(fileName) { + return vars.fileName = fileName.toString("utf8"), file.pull(vars.extraFieldLength); + })).then((function(extraField) { + var checkEncryption; + return vars.extra = parseExtraField(extraField, vars), directoryVars && directoryVars.compressedSize && (vars = directoryVars), + 1 & vars.flags && (checkEncryption = file.pull(12).then((function(header) { + if (!_password) throw new Error("MISSING_PASSWORD"); + var decrypt = Decrypt(); + String(_password).split("").forEach((function(d) { + decrypt.update(d); + })); + for (var i = 0; i < header.length; i++) header[i] = decrypt.decryptByte(header[i]); + vars.decrypt = decrypt, vars.compressedSize -= 12; + var check = 8 & vars.flags ? vars.lastModifiedTime >> 8 & 255 : vars.crc32 >> 24 & 255; + if (header[11] !== check) throw new Error("BAD_PASSWORD"); + return vars; + }))), Promise.resolve(checkEncryption).then((function() { + return entry.emit("vars", vars), vars; + })); + })); + })), entry.vars.then((function(vars) { + var eof, fileSizeKnown = !(8 & vars.flags) || vars.compressedSize > 0, inflater = vars.compressionMethod ? zlib.createInflateRaw() : Stream.PassThrough(); + fileSizeKnown ? (entry.size = vars.uncompressedSize, eof = vars.compressedSize) : (eof = Buffer.alloc(4)).writeUInt32LE(134695760, 0); + var stream = file.stream(eof); + vars.decrypt && (stream = stream.pipe(vars.decrypt.stream())), stream.pipe(inflater).on("error", (function(err) { + entry.emit("error", err); + })).pipe(entry).on("finish", (function() { + req.destroy ? req.destroy() : req.abort ? req.abort() : req.close ? req.close() : req.push ? req.push() : console.log("warning - unable to close stream"); + })); + })).catch((function(e) { + entry.emit("error", e); + })), entry; + }; +}, function(module, exports, __webpack_require__) { + var table, bigInt = __webpack_require__(1160), Stream = __webpack_require__(3); + function crc(ch, crc) { + return table || (function() { + var c, n, k; + for (table = [], n = 0; n < 256; n++) { + for (c = n, k = 0; k < 8; k++) c = 1 & c ? 3988292384 ^ c >>> 1 : c >>>= 1; + table[n] = c >>> 0; + } + })(), ch.charCodeAt && (ch = ch.charCodeAt(0)), bigInt(crc).shiftRight(8).and(16777215).xor(table[bigInt(crc).xor(ch).and(255)]).value; + } + function Decrypt() { + if (!(this instanceof Decrypt)) return new Decrypt; + this.key0 = 305419896, this.key1 = 591751049, this.key2 = 878082192; + } + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + Decrypt.prototype.update = function(h) { + this.key0 = crc(h, this.key0), this.key1 = bigInt(this.key0).and(255).and(4294967295).add(this.key1), + this.key1 = bigInt(this.key1).multiply(134775813).add(1).and(4294967295).value, + this.key2 = crc(bigInt(this.key1).shiftRight(24).and(255), this.key2); + }, Decrypt.prototype.decryptByte = function(c) { + var k = bigInt(this.key2).or(2); + return c ^= bigInt(k).multiply(bigInt(1 ^ k)).shiftRight(8).and(255), this.update(c), + c; + }, Decrypt.prototype.stream = function() { + var stream = Stream.Transform(), self = this; + return stream._transform = function(d, e, cb) { + for (var i = 0; i < d.length; i++) d[i] = self.decryptByte(d[i]); + this.push(d), cb(); + }, stream; + }, module.exports = Decrypt; +}, function(module, exports, __webpack_require__) { + (function(module) { + var __WEBPACK_AMD_DEFINE_RESULT__, bigInt = (function(undefined) { + "use strict"; + var BASE = 1e7, MAX_INT = 9007199254740992, MAX_INT_ARR = smallToArray(MAX_INT), supportsNativeBigInt = "function" == typeof BigInt; + function Integer(v, radix, alphabet, caseSensitive) { + return void 0 === v ? Integer[0] : void 0 === radix || 10 == +radix && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive); + } + function BigInteger(value, sign) { + this.value = value, this.sign = sign, this.isSmall = !1; + } + function SmallInteger(value) { + this.value = value, this.sign = value < 0, this.isSmall = !0; + } + function NativeBigInt(value) { + this.value = value; + } + function isPrecise(n) { + return -MAX_INT < n && n < MAX_INT; + } + function smallToArray(n) { + return n < 1e7 ? [ n ] : n < 1e14 ? [ n % 1e7, Math.floor(n / 1e7) ] : [ n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14) ]; + } + function arrayToSmall(arr) { + trim(arr); + var length = arr.length; + if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) switch (length) { + case 0: + return 0; + + case 1: + return arr[0]; + + case 2: + return arr[0] + arr[1] * BASE; + + default: + return arr[0] + (arr[1] + arr[2] * BASE) * BASE; + } + return arr; + } + function trim(v) { + for (var i = v.length; 0 === v[--i]; ) ; + v.length = i + 1; + } + function createArray(length) { + for (var x = new Array(length), i = -1; ++i < length; ) x[i] = 0; + return x; + } + function truncate(n) { + return n > 0 ? Math.floor(n) : Math.ceil(n); + } + function add(a, b) { + var sum, i, l_a = a.length, l_b = b.length, r = new Array(l_a), carry = 0, base = BASE; + for (i = 0; i < l_b; i++) carry = (sum = a[i] + b[i] + carry) >= base ? 1 : 0, r[i] = sum - carry * base; + for (;i < l_a; ) carry = (sum = a[i] + carry) === base ? 1 : 0, r[i++] = sum - carry * base; + return carry > 0 && r.push(carry), r; + } + function addAny(a, b) { + return a.length >= b.length ? add(a, b) : add(b, a); + } + function addSmall(a, carry) { + var sum, i, l = a.length, r = new Array(l), base = BASE; + for (i = 0; i < l; i++) sum = a[i] - base + carry, carry = Math.floor(sum / base), + r[i] = sum - carry * base, carry += 1; + for (;carry > 0; ) r[i++] = carry % base, carry = Math.floor(carry / base); + return r; + } + function subtract(a, b) { + var i, difference, a_l = a.length, b_l = b.length, r = new Array(a_l), borrow = 0; + for (i = 0; i < b_l; i++) (difference = a[i] - borrow - b[i]) < 0 ? (difference += 1e7, + borrow = 1) : borrow = 0, r[i] = difference; + for (i = b_l; i < a_l; i++) { + if (!((difference = a[i] - borrow) < 0)) { + r[i++] = difference; + break; + } + difference += 1e7, r[i] = difference; + } + for (;i < a_l; i++) r[i] = a[i]; + return trim(r), r; + } + function subtractSmall(a, b, sign) { + var i, difference, l = a.length, r = new Array(l), carry = -b; + for (i = 0; i < l; i++) difference = a[i] + carry, carry = Math.floor(difference / 1e7), + difference %= 1e7, r[i] = difference < 0 ? difference + 1e7 : difference; + return "number" == typeof (r = arrayToSmall(r)) ? (sign && (r = -r), new SmallInteger(r)) : new BigInteger(r, sign); + } + function multiplyLong(a, b) { + var product, carry, i, a_i, a_l = a.length, b_l = b.length, r = createArray(a_l + b_l); + for (i = 0; i < a_l; ++i) { + a_i = a[i]; + for (var j = 0; j < b_l; ++j) product = a_i * b[j] + r[i + j], carry = Math.floor(product / 1e7), + r[i + j] = product - 1e7 * carry, r[i + j + 1] += carry; + } + return trim(r), r; + } + function multiplySmall(a, b) { + var product, i, l = a.length, r = new Array(l), base = BASE, carry = 0; + for (i = 0; i < l; i++) product = a[i] * b + carry, carry = Math.floor(product / base), + r[i] = product - carry * base; + for (;carry > 0; ) r[i++] = carry % base, carry = Math.floor(carry / base); + return r; + } + function shiftLeft(x, n) { + for (var r = []; n-- > 0; ) r.push(0); + return r.concat(x); + } + function multiplyKaratsuba(x, y) { + var n = Math.max(x.length, y.length); + if (n <= 30) return multiplyLong(x, y); + n = Math.ceil(n / 2); + var b = x.slice(n), a = x.slice(0, n), d = y.slice(n), c = y.slice(0, n), ac = multiplyKaratsuba(a, c), bd = multiplyKaratsuba(b, d), abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d)), product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n)); + return trim(product), product; + } + function multiplySmallAndArray(a, b, sign) { + return new BigInteger(a < BASE ? multiplySmall(b, a) : multiplyLong(b, smallToArray(a)), sign); + } + function square(a) { + var product, carry, i, a_i, l = a.length, r = createArray(l + l); + for (i = 0; i < l; i++) { + carry = 0 - (a_i = a[i]) * a_i; + for (var j = i; j < l; j++) product = a_i * a[j] * 2 + r[i + j] + carry, carry = Math.floor(product / 1e7), + r[i + j] = product - 1e7 * carry; + r[i + l] = carry; + } + return trim(r), r; + } + function divModSmall(value, lambda) { + var i, q, remainder, divisor, length = value.length, quotient = createArray(length); + for (remainder = 0, i = length - 1; i >= 0; --i) remainder = (divisor = 1e7 * remainder + value[i]) - (q = truncate(divisor / lambda)) * lambda, + quotient[i] = 0 | q; + return [ quotient, 0 | remainder ]; + } + function divModAny(self, v) { + var value, n = parseValue(v); + if (supportsNativeBigInt) return [ new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value) ]; + var quotient, a = self.value, b = n.value; + if (0 === b) throw new Error("Cannot divide by zero"); + if (self.isSmall) return n.isSmall ? [ new SmallInteger(truncate(a / b)), new SmallInteger(a % b) ] : [ Integer[0], self ]; + if (n.isSmall) { + if (1 === b) return [ self, Integer[0] ]; + if (-1 == b) return [ self.negate(), Integer[0] ]; + var abs = Math.abs(b); + if (abs < BASE) { + quotient = arrayToSmall((value = divModSmall(a, abs))[0]); + var remainder = value[1]; + return self.sign && (remainder = -remainder), "number" == typeof quotient ? (self.sign !== n.sign && (quotient = -quotient), + [ new SmallInteger(quotient), new SmallInteger(remainder) ]) : [ new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder) ]; + } + b = smallToArray(abs); + } + var comparison = compareAbs(a, b); + if (-1 === comparison) return [ Integer[0], self ]; + if (0 === comparison) return [ Integer[self.sign === n.sign ? 1 : -1], Integer[0] ]; + value = a.length + b.length <= 200 ? (function(a, b) { + var quotientDigit, shift, carry, borrow, i, l, q, a_l = a.length, b_l = b.length, base = BASE, result = createArray(b.length), divisorMostSignificantDigit = b[b_l - 1], lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)), remainder = multiplySmall(a, lambda), divisor = multiplySmall(b, lambda); + for (remainder.length <= a_l && remainder.push(0), divisor.push(0), divisorMostSignificantDigit = divisor[b_l - 1], + shift = a_l - b_l; shift >= 0; shift--) { + for (quotientDigit = base - 1, remainder[shift + b_l] !== divisorMostSignificantDigit && (quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit)), + carry = 0, borrow = 0, l = divisor.length, i = 0; i < l; i++) carry += quotientDigit * divisor[i], + q = Math.floor(carry / base), borrow += remainder[shift + i] - (carry - q * base), + carry = q, borrow < 0 ? (remainder[shift + i] = borrow + base, borrow = -1) : (remainder[shift + i] = borrow, + borrow = 0); + for (;0 !== borrow; ) { + for (quotientDigit -= 1, carry = 0, i = 0; i < l; i++) (carry += remainder[shift + i] - base + divisor[i]) < 0 ? (remainder[shift + i] = carry + base, + carry = 0) : (remainder[shift + i] = carry, carry = 1); + borrow += carry; + } + result[shift] = quotientDigit; + } + return remainder = divModSmall(remainder, lambda)[0], [ arrayToSmall(result), arrayToSmall(remainder) ]; + })(a, b) : (function(a, b) { + for (var guess, xlen, highx, highy, check, a_l = a.length, b_l = b.length, result = [], part = []; a_l; ) if (part.unshift(a[--a_l]), + trim(part), compareAbs(part, b) < 0) result.push(0); else { + highx = 1e7 * part[(xlen = part.length) - 1] + part[xlen - 2], highy = 1e7 * b[b_l - 1] + b[b_l - 2], + xlen > b_l && (highx = 1e7 * (highx + 1)), guess = Math.ceil(highx / highy); + do { + if (compareAbs(check = multiplySmall(b, guess), part) <= 0) break; + guess--; + } while (guess); + result.push(guess), part = subtract(part, check); + } + return result.reverse(), [ arrayToSmall(result), arrayToSmall(part) ]; + })(a, b), quotient = value[0]; + var qSign = self.sign !== n.sign, mod = value[1], mSign = self.sign; + return "number" == typeof quotient ? (qSign && (quotient = -quotient), quotient = new SmallInteger(quotient)) : quotient = new BigInteger(quotient, qSign), + "number" == typeof mod ? (mSign && (mod = -mod), mod = new SmallInteger(mod)) : mod = new BigInteger(mod, mSign), + [ quotient, mod ]; + } + function compareAbs(a, b) { + if (a.length !== b.length) return a.length > b.length ? 1 : -1; + for (var i = a.length - 1; i >= 0; i--) if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1; + return 0; + } + function isBasicPrime(v) { + var n = v.abs(); + return !n.isUnit() && (!!(n.equals(2) || n.equals(3) || n.equals(5)) || !(n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) && (!!n.lesser(49) || void 0)); + } + function millerRabinTest(n, a) { + for (var d, i, x, nPrev = n.prev(), b = nPrev, r = 0; b.isEven(); ) b = b.divide(2), + r++; + next: for (i = 0; i < a.length; i++) if (!n.lesser(a[i]) && !(x = bigInt(a[i]).modPow(b, n)).isUnit() && !x.equals(nPrev)) { + for (d = r - 1; 0 != d; d--) { + if ((x = x.square().mod(n)).isUnit()) return !1; + if (x.equals(nPrev)) continue next; + } + return !1; + } + return !0; + } + BigInteger.prototype = Object.create(Integer.prototype), SmallInteger.prototype = Object.create(Integer.prototype), + NativeBigInt.prototype = Object.create(Integer.prototype), BigInteger.prototype.add = function(v) { + var n = parseValue(v); + if (this.sign !== n.sign) return this.subtract(n.negate()); + var a = this.value, b = n.value; + return n.isSmall ? new BigInteger(addSmall(a, Math.abs(b)), this.sign) : new BigInteger(addAny(a, b), this.sign); + }, BigInteger.prototype.plus = BigInteger.prototype.add, SmallInteger.prototype.add = function(v) { + var n = parseValue(v), a = this.value; + if (a < 0 !== n.sign) return this.subtract(n.negate()); + var b = n.value; + if (n.isSmall) { + if (isPrecise(a + b)) return new SmallInteger(a + b); + b = smallToArray(Math.abs(b)); + } + return new BigInteger(addSmall(b, Math.abs(a)), a < 0); + }, SmallInteger.prototype.plus = SmallInteger.prototype.add, NativeBigInt.prototype.add = function(v) { + return new NativeBigInt(this.value + parseValue(v).value); + }, NativeBigInt.prototype.plus = NativeBigInt.prototype.add, BigInteger.prototype.subtract = function(v) { + var n = parseValue(v); + if (this.sign !== n.sign) return this.add(n.negate()); + var a = this.value, b = n.value; + return n.isSmall ? subtractSmall(a, Math.abs(b), this.sign) : (function(a, b, sign) { + var value; + return compareAbs(a, b) >= 0 ? value = subtract(a, b) : (value = subtract(b, a), + sign = !sign), "number" == typeof (value = arrayToSmall(value)) ? (sign && (value = -value), + new SmallInteger(value)) : new BigInteger(value, sign); + })(a, b, this.sign); + }, BigInteger.prototype.minus = BigInteger.prototype.subtract, SmallInteger.prototype.subtract = function(v) { + var n = parseValue(v), a = this.value; + if (a < 0 !== n.sign) return this.add(n.negate()); + var b = n.value; + return n.isSmall ? new SmallInteger(a - b) : subtractSmall(b, Math.abs(a), a >= 0); + }, SmallInteger.prototype.minus = SmallInteger.prototype.subtract, NativeBigInt.prototype.subtract = function(v) { + return new NativeBigInt(this.value - parseValue(v).value); + }, NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract, BigInteger.prototype.negate = function() { + return new BigInteger(this.value, !this.sign); + }, SmallInteger.prototype.negate = function() { + var sign = this.sign, small = new SmallInteger(-this.value); + return small.sign = !sign, small; + }, NativeBigInt.prototype.negate = function() { + return new NativeBigInt(-this.value); + }, BigInteger.prototype.abs = function() { + return new BigInteger(this.value, !1); + }, SmallInteger.prototype.abs = function() { + return new SmallInteger(Math.abs(this.value)); + }, NativeBigInt.prototype.abs = function() { + return new NativeBigInt(this.value >= 0 ? this.value : -this.value); + }, BigInteger.prototype.multiply = function(v) { + var abs, l1, l2, n = parseValue(v), a = this.value, b = n.value, sign = this.sign !== n.sign; + if (n.isSmall) { + if (0 === b) return Integer[0]; + if (1 === b) return this; + if (-1 === b) return this.negate(); + if ((abs = Math.abs(b)) < BASE) return new BigInteger(multiplySmall(a, abs), sign); + b = smallToArray(abs); + } + return new BigInteger(-.012 * (l1 = a.length) - .012 * (l2 = b.length) + 15e-6 * l1 * l2 > 0 ? multiplyKaratsuba(a, b) : multiplyLong(a, b), sign); + }, BigInteger.prototype.times = BigInteger.prototype.multiply, SmallInteger.prototype._multiplyBySmall = function(a) { + return isPrecise(a.value * this.value) ? new SmallInteger(a.value * this.value) : multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign); + }, BigInteger.prototype._multiplyBySmall = function(a) { + return 0 === a.value ? Integer[0] : 1 === a.value ? this : -1 === a.value ? this.negate() : multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign); + }, SmallInteger.prototype.multiply = function(v) { + return parseValue(v)._multiplyBySmall(this); + }, SmallInteger.prototype.times = SmallInteger.prototype.multiply, NativeBigInt.prototype.multiply = function(v) { + return new NativeBigInt(this.value * parseValue(v).value); + }, NativeBigInt.prototype.times = NativeBigInt.prototype.multiply, BigInteger.prototype.square = function() { + return new BigInteger(square(this.value), !1); + }, SmallInteger.prototype.square = function() { + var value = this.value * this.value; + return isPrecise(value) ? new SmallInteger(value) : new BigInteger(square(smallToArray(Math.abs(this.value))), !1); + }, NativeBigInt.prototype.square = function(v) { + return new NativeBigInt(this.value * this.value); + }, BigInteger.prototype.divmod = function(v) { + var result = divModAny(this, v); + return { + quotient: result[0], + remainder: result[1] + }; + }, NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod, + BigInteger.prototype.divide = function(v) { + return divModAny(this, v)[0]; + }, NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function(v) { + return new NativeBigInt(this.value / parseValue(v).value); + }, SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide, + BigInteger.prototype.mod = function(v) { + return divModAny(this, v)[1]; + }, NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function(v) { + return new NativeBigInt(this.value % parseValue(v).value); + }, SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod, + BigInteger.prototype.pow = function(v) { + var value, x, y, n = parseValue(v), a = this.value, b = n.value; + if (0 === b) return Integer[1]; + if (0 === a) return Integer[0]; + if (1 === a) return Integer[1]; + if (-1 === a) return n.isEven() ? Integer[1] : Integer[-1]; + if (n.sign) return Integer[0]; + if (!n.isSmall) throw new Error("The exponent " + n.toString() + " is too large."); + if (this.isSmall && isPrecise(value = Math.pow(a, b))) return new SmallInteger(truncate(value)); + for (x = this, y = Integer[1]; !0 & b && (y = y.times(x), --b), 0 !== b; ) b /= 2, + x = x.square(); + return y; + }, SmallInteger.prototype.pow = BigInteger.prototype.pow, NativeBigInt.prototype.pow = function(v) { + var n = parseValue(v), a = this.value, b = n.value, _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2); + if (b === _0) return Integer[1]; + if (a === _0) return Integer[0]; + if (a === _1) return Integer[1]; + if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1]; + if (n.isNegative()) return new NativeBigInt(_0); + for (var x = this, y = Integer[1]; (b & _1) === _1 && (y = y.times(x), --b), b !== _0; ) b /= _2, + x = x.square(); + return y; + }, BigInteger.prototype.modPow = function(exp, mod) { + if (exp = parseValue(exp), (mod = parseValue(mod)).isZero()) throw new Error("Cannot take modPow with modulus 0"); + var r = Integer[1], base = this.mod(mod); + for (exp.isNegative() && (exp = exp.multiply(Integer[-1]), base = base.modInv(mod)); exp.isPositive(); ) { + if (base.isZero()) return Integer[0]; + exp.isOdd() && (r = r.multiply(base).mod(mod)), exp = exp.divide(2), base = base.square().mod(mod); + } + return r; + }, NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow, + BigInteger.prototype.compareAbs = function(v) { + var n = parseValue(v), a = this.value, b = n.value; + return n.isSmall ? 1 : compareAbs(a, b); + }, SmallInteger.prototype.compareAbs = function(v) { + var n = parseValue(v), a = Math.abs(this.value), b = n.value; + return n.isSmall ? a === (b = Math.abs(b)) ? 0 : a > b ? 1 : -1 : -1; + }, NativeBigInt.prototype.compareAbs = function(v) { + var a = this.value, b = parseValue(v).value; + return (a = a >= 0 ? a : -a) === (b = b >= 0 ? b : -b) ? 0 : a > b ? 1 : -1; + }, BigInteger.prototype.compare = function(v) { + if (v === 1 / 0) return -1; + if (v === -1 / 0) return 1; + var n = parseValue(v), a = this.value, b = n.value; + return this.sign !== n.sign ? n.sign ? 1 : -1 : n.isSmall ? this.sign ? -1 : 1 : compareAbs(a, b) * (this.sign ? -1 : 1); + }, BigInteger.prototype.compareTo = BigInteger.prototype.compare, SmallInteger.prototype.compare = function(v) { + if (v === 1 / 0) return -1; + if (v === -1 / 0) return 1; + var n = parseValue(v), a = this.value, b = n.value; + return n.isSmall ? a == b ? 0 : a > b ? 1 : -1 : a < 0 !== n.sign ? a < 0 ? -1 : 1 : a < 0 ? 1 : -1; + }, SmallInteger.prototype.compareTo = SmallInteger.prototype.compare, NativeBigInt.prototype.compare = function(v) { + if (v === 1 / 0) return -1; + if (v === -1 / 0) return 1; + var a = this.value, b = parseValue(v).value; + return a === b ? 0 : a > b ? 1 : -1; + }, NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare, BigInteger.prototype.equals = function(v) { + return 0 === this.compare(v); + }, NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals, + BigInteger.prototype.notEquals = function(v) { + return 0 !== this.compare(v); + }, NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals, + BigInteger.prototype.greater = function(v) { + return this.compare(v) > 0; + }, NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater, + BigInteger.prototype.lesser = function(v) { + return this.compare(v) < 0; + }, NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser, + BigInteger.prototype.greaterOrEquals = function(v) { + return this.compare(v) >= 0; + }, NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals, + BigInteger.prototype.lesserOrEquals = function(v) { + return this.compare(v) <= 0; + }, NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals, + BigInteger.prototype.isEven = function() { + return 0 == (1 & this.value[0]); + }, SmallInteger.prototype.isEven = function() { + return 0 == (1 & this.value); + }, NativeBigInt.prototype.isEven = function() { + return (this.value & BigInt(1)) === BigInt(0); + }, BigInteger.prototype.isOdd = function() { + return 1 == (1 & this.value[0]); + }, SmallInteger.prototype.isOdd = function() { + return 1 == (1 & this.value); + }, NativeBigInt.prototype.isOdd = function() { + return (this.value & BigInt(1)) === BigInt(1); + }, BigInteger.prototype.isPositive = function() { + return !this.sign; + }, SmallInteger.prototype.isPositive = function() { + return this.value > 0; + }, NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive, BigInteger.prototype.isNegative = function() { + return this.sign; + }, SmallInteger.prototype.isNegative = function() { + return this.value < 0; + }, NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative, BigInteger.prototype.isUnit = function() { + return !1; + }, SmallInteger.prototype.isUnit = function() { + return 1 === Math.abs(this.value); + }, NativeBigInt.prototype.isUnit = function() { + return this.abs().value === BigInt(1); + }, BigInteger.prototype.isZero = function() { + return !1; + }, SmallInteger.prototype.isZero = function() { + return 0 === this.value; + }, NativeBigInt.prototype.isZero = function() { + return this.value === BigInt(0); + }, BigInteger.prototype.isDivisibleBy = function(v) { + var n = parseValue(v); + return !n.isZero() && (!!n.isUnit() || (0 === n.compareAbs(2) ? this.isEven() : this.mod(n).isZero())); + }, NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy, + BigInteger.prototype.isPrime = function(strict) { + var isPrime = isBasicPrime(this); + if (undefined !== isPrime) return isPrime; + var n = this.abs(), bits = n.bitLength(); + if (bits <= 64) return millerRabinTest(n, [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 ]); + for (var logN = Math.log(2) * bits.toJSNumber(), t = Math.ceil(!0 === strict ? 2 * Math.pow(logN, 2) : logN), a = [], i = 0; i < t; i++) a.push(bigInt(i + 2)); + return millerRabinTest(n, a); + }, NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime, + BigInteger.prototype.isProbablePrime = function(iterations, rng) { + var isPrime = isBasicPrime(this); + if (undefined !== isPrime) return isPrime; + for (var n = this.abs(), t = undefined === iterations ? 5 : iterations, a = [], i = 0; i < t; i++) a.push(bigInt.randBetween(2, n.minus(2), rng)); + return millerRabinTest(n, a); + }, NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime, + BigInteger.prototype.modInv = function(n) { + for (var q, lastT, lastR, t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(); !newR.isZero(); ) q = r.divide(newR), + lastT = t, lastR = r, t = newT, r = newR, newT = lastT.subtract(q.multiply(newT)), + newR = lastR.subtract(q.multiply(newR)); + if (!r.isUnit()) throw new Error(this.toString() + " and " + n.toString() + " are not co-prime"); + return -1 === t.compare(0) && (t = t.add(n)), this.isNegative() ? t.negate() : t; + }, NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv, + BigInteger.prototype.next = function() { + var value = this.value; + return this.sign ? subtractSmall(value, 1, this.sign) : new BigInteger(addSmall(value, 1), this.sign); + }, SmallInteger.prototype.next = function() { + var value = this.value; + return value + 1 < MAX_INT ? new SmallInteger(value + 1) : new BigInteger(MAX_INT_ARR, !1); + }, NativeBigInt.prototype.next = function() { + return new NativeBigInt(this.value + BigInt(1)); + }, BigInteger.prototype.prev = function() { + var value = this.value; + return this.sign ? new BigInteger(addSmall(value, 1), !0) : subtractSmall(value, 1, this.sign); + }, SmallInteger.prototype.prev = function() { + var value = this.value; + return value - 1 > -MAX_INT ? new SmallInteger(value - 1) : new BigInteger(MAX_INT_ARR, !0); + }, NativeBigInt.prototype.prev = function() { + return new NativeBigInt(this.value - BigInt(1)); + }; + for (var powersOfTwo = [ 1 ]; 2 * powersOfTwo[powersOfTwo.length - 1] <= BASE; ) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]); + var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1]; + function shift_isSmall(n) { + return Math.abs(n) <= BASE; + } + function bitwise(x, y, fn) { + y = parseValue(y); + for (var xSign = x.isNegative(), ySign = y.isNegative(), xRem = xSign ? x.not() : x, yRem = ySign ? y.not() : y, xDigit = 0, yDigit = 0, xDivMod = null, yDivMod = null, result = []; !xRem.isZero() || !yRem.isZero(); ) xDigit = (xDivMod = divModAny(xRem, highestPower2))[1].toJSNumber(), + xSign && (xDigit = highestPower2 - 1 - xDigit), yDigit = (yDivMod = divModAny(yRem, highestPower2))[1].toJSNumber(), + ySign && (yDigit = highestPower2 - 1 - yDigit), xRem = xDivMod[0], yRem = yDivMod[0], + result.push(fn(xDigit, yDigit)); + for (var sum = 0 !== fn(xSign ? 1 : 0, ySign ? 1 : 0) ? bigInt(-1) : bigInt(0), i = result.length - 1; i >= 0; i -= 1) sum = sum.multiply(highestPower2).add(bigInt(result[i])); + return sum; + } + function roughLOB(n) { + var v = n.value, x = "number" == typeof v ? 1073741824 | v : "bigint" == typeof v ? v | BigInt(1073741824) : v[0] + v[1] * BASE | 1073758208; + return x & -x; + } + function integerLogarithm(value, base) { + if (base.compareTo(value) <= 0) { + var tmp = integerLogarithm(value, base.square(base)), p = tmp.p, e = tmp.e, t = p.multiply(base); + return t.compareTo(value) <= 0 ? { + p: t, + e: 2 * e + 1 + } : { + p: p, + e: 2 * e + }; + } + return { + p: bigInt(1), + e: 0 + }; + } + function max(a, b) { + return a = parseValue(a), b = parseValue(b), a.greater(b) ? a : b; + } + function min(a, b) { + return a = parseValue(a), b = parseValue(b), a.lesser(b) ? a : b; + } + function gcd(a, b) { + if (a = parseValue(a).abs(), b = parseValue(b).abs(), a.equals(b)) return a; + if (a.isZero()) return b; + if (b.isZero()) return a; + for (var d, t, c = Integer[1]; a.isEven() && b.isEven(); ) d = min(roughLOB(a), roughLOB(b)), + a = a.divide(d), b = b.divide(d), c = c.multiply(d); + for (;a.isEven(); ) a = a.divide(roughLOB(a)); + do { + for (;b.isEven(); ) b = b.divide(roughLOB(b)); + a.greater(b) && (t = b, b = a, a = t), b = b.subtract(a); + } while (!b.isZero()); + return c.isUnit() ? a : a.multiply(c); + } + BigInteger.prototype.shiftLeft = function(v) { + var n = parseValue(v).toJSNumber(); + if (!shift_isSmall(n)) throw new Error(String(n) + " is too large for shifting."); + if (n < 0) return this.shiftRight(-n); + var result = this; + if (result.isZero()) return result; + for (;n >= powers2Length; ) result = result.multiply(highestPower2), n -= powers2Length - 1; + return result.multiply(powersOfTwo[n]); + }, NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft, + BigInteger.prototype.shiftRight = function(v) { + var remQuo, n = parseValue(v).toJSNumber(); + if (!shift_isSmall(n)) throw new Error(String(n) + " is too large for shifting."); + if (n < 0) return this.shiftLeft(-n); + for (var result = this; n >= powers2Length; ) { + if (result.isZero() || result.isNegative() && result.isUnit()) return result; + result = (remQuo = divModAny(result, highestPower2))[1].isNegative() ? remQuo[0].prev() : remQuo[0], + n -= powers2Length - 1; + } + return (remQuo = divModAny(result, powersOfTwo[n]))[1].isNegative() ? remQuo[0].prev() : remQuo[0]; + }, NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight, + BigInteger.prototype.not = function() { + return this.negate().prev(); + }, NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not, + BigInteger.prototype.and = function(n) { + return bitwise(this, n, (function(a, b) { + return a & b; + })); + }, NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and, + BigInteger.prototype.or = function(n) { + return bitwise(this, n, (function(a, b) { + return a | b; + })); + }, NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or, + BigInteger.prototype.xor = function(n) { + return bitwise(this, n, (function(a, b) { + return a ^ b; + })); + }, NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor, + BigInteger.prototype.bitLength = function() { + var n = this; + return n.compareTo(bigInt(0)) < 0 && (n = n.negate().subtract(bigInt(1))), 0 === n.compareTo(bigInt(0)) ? bigInt(0) : bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1)); + }, NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength; + var parseBase = function(text, base, alphabet, caseSensitive) { + alphabet = alphabet || "0123456789abcdefghijklmnopqrstuvwxyz", text = String(text), + caseSensitive || (text = text.toLowerCase(), alphabet = alphabet.toLowerCase()); + var i, length = text.length, absBase = Math.abs(base), alphabetValues = {}; + for (i = 0; i < alphabet.length; i++) alphabetValues[alphabet[i]] = i; + for (i = 0; i < length; i++) if ("-" !== (c = text[i]) && c in alphabetValues && alphabetValues[c] >= absBase) { + if ("1" === c && 1 === absBase) continue; + throw new Error(c + " is not a valid digit in base " + base + "."); + } + base = parseValue(base); + var digits = [], isNegative = "-" === text[0]; + for (i = isNegative ? 1 : 0; i < text.length; i++) { + var c; + if ((c = text[i]) in alphabetValues) digits.push(parseValue(alphabetValues[c])); else { + if ("<" !== c) throw new Error(c + " is not a valid character"); + var start = i; + do { + i++; + } while (">" !== text[i] && i < text.length); + digits.push(parseValue(text.slice(start + 1, i))); + } + } + return parseBaseFromArray(digits, base, isNegative); + }; + function parseBaseFromArray(digits, base, isNegative) { + var i, val = Integer[0], pow = Integer[1]; + for (i = digits.length - 1; i >= 0; i--) val = val.add(digits[i].times(pow)), pow = pow.times(base); + return isNegative ? val.negate() : val; + } + function toBase(n, base) { + if ((base = bigInt(base)).isZero()) { + if (n.isZero()) return { + value: [ 0 ], + isNegative: !1 + }; + throw new Error("Cannot convert nonzero numbers to base 0."); + } + if (base.equals(-1)) { + if (n.isZero()) return { + value: [ 0 ], + isNegative: !1 + }; + if (n.isNegative()) return { + value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber())).map(Array.prototype.valueOf, [ 1, 0 ])), + isNegative: !1 + }; + var arr = Array.apply(null, Array(n.toJSNumber() - 1)).map(Array.prototype.valueOf, [ 0, 1 ]); + return arr.unshift([ 1 ]), { + value: [].concat.apply([], arr), + isNegative: !1 + }; + } + var neg = !1; + if (n.isNegative() && base.isPositive() && (neg = !0, n = n.abs()), base.isUnit()) return n.isZero() ? { + value: [ 0 ], + isNegative: !1 + } : { + value: Array.apply(null, Array(n.toJSNumber())).map(Number.prototype.valueOf, 1), + isNegative: neg + }; + for (var divmod, out = [], left = n; left.isNegative() || left.compareAbs(base) >= 0; ) { + divmod = left.divmod(base), left = divmod.quotient; + var digit = divmod.remainder; + digit.isNegative() && (digit = base.minus(digit).abs(), left = left.next()), out.push(digit.toJSNumber()); + } + return out.push(left.toJSNumber()), { + value: out.reverse(), + isNegative: neg + }; + } + function toBaseString(n, base, alphabet) { + var arr = toBase(n, base); + return (arr.isNegative ? "-" : "") + arr.value.map((function(x) { + return (function(digit, alphabet) { + return digit < (alphabet = alphabet || "0123456789abcdefghijklmnopqrstuvwxyz").length ? alphabet[digit] : "<" + digit + ">"; + })(x, alphabet); + })).join(""); + } + function parseStringValue(v) { + if (isPrecise(+v)) { + var x = +v; + if (x === truncate(x)) return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x); + throw new Error("Invalid integer: " + v); + } + var sign = "-" === v[0]; + sign && (v = v.slice(1)); + var split = v.split(/e/i); + if (split.length > 2) throw new Error("Invalid integer: " + split.join("e")); + if (2 === split.length) { + var exp = split[1]; + if ("+" === exp[0] && (exp = exp.slice(1)), (exp = +exp) !== truncate(exp) || !isPrecise(exp)) throw new Error("Invalid integer: " + exp + " is not a valid exponent."); + var text = split[0], decimalPlace = text.indexOf("."); + if (decimalPlace >= 0 && (exp -= text.length - decimalPlace - 1, text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1)), + exp < 0) throw new Error("Cannot include negative exponent part for integers"); + v = text += new Array(exp + 1).join("0"); + } + if (!/^([0-9][0-9]*)$/.test(v)) throw new Error("Invalid integer: " + v); + if (supportsNativeBigInt) return new NativeBigInt(BigInt(sign ? "-" + v : v)); + for (var r = [], max = v.length, min = max - 7; max > 0; ) r.push(+v.slice(min, max)), + (min -= 7) < 0 && (min = 0), max -= 7; + return trim(r), new BigInteger(r, sign); + } + function parseValue(v) { + return "number" == typeof v ? (function(v) { + if (supportsNativeBigInt) return new NativeBigInt(BigInt(v)); + if (isPrecise(v)) { + if (v !== truncate(v)) throw new Error(v + " is not an integer."); + return new SmallInteger(v); + } + return parseStringValue(v.toString()); + })(v) : "string" == typeof v ? parseStringValue(v) : "bigint" == typeof v ? new NativeBigInt(v) : v; + } + BigInteger.prototype.toArray = function(radix) { + return toBase(this, radix); + }, SmallInteger.prototype.toArray = function(radix) { + return toBase(this, radix); + }, NativeBigInt.prototype.toArray = function(radix) { + return toBase(this, radix); + }, BigInteger.prototype.toString = function(radix, alphabet) { + if (undefined === radix && (radix = 10), 10 !== radix || alphabet) return toBaseString(this, radix, alphabet); + for (var digit, v = this.value, l = v.length, str = String(v[--l]); --l >= 0; ) digit = String(v[l]), + str += "0000000".slice(digit.length) + digit; + return (this.sign ? "-" : "") + str; + }, SmallInteger.prototype.toString = function(radix, alphabet) { + return undefined === radix && (radix = 10), 10 != radix || alphabet ? toBaseString(this, radix, alphabet) : String(this.value); + }, NativeBigInt.prototype.toString = SmallInteger.prototype.toString, NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function() { + return this.toString(); + }, BigInteger.prototype.valueOf = function() { + return parseInt(this.toString(), 10); + }, BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf, SmallInteger.prototype.valueOf = function() { + return this.value; + }, SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf, NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function() { + return parseInt(this.toString(), 10); + }; + for (var i = 0; i < 1e3; i++) Integer[i] = parseValue(i), i > 0 && (Integer[-i] = parseValue(-i)); + return Integer.one = Integer[1], Integer.zero = Integer[0], Integer.minusOne = Integer[-1], + Integer.max = max, Integer.min = min, Integer.gcd = gcd, Integer.lcm = function(a, b) { + return a = parseValue(a).abs(), b = parseValue(b).abs(), a.divide(gcd(a, b)).multiply(b); + }, Integer.isInstance = function(x) { + return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; + }, Integer.randBetween = function(a, b, rng) { + a = parseValue(a), b = parseValue(b); + var usedRNG = rng || Math.random, low = min(a, b), range = max(a, b).subtract(low).add(1); + if (range.isSmall) return low.add(Math.floor(usedRNG() * range)); + for (var digits = toBase(range, BASE).value, result = [], restricted = !0, i = 0; i < digits.length; i++) { + var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE, digit = truncate(usedRNG() * top); + result.push(digit), digit < digits[i] && (restricted = !1); + } + return low.add(Integer.fromArray(result, BASE, !1)); + }, Integer.fromArray = function(digits, base, isNegative) { + return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative); + }, Integer; + })(); + module.hasOwnProperty("exports") && (module.exports = bigInt), void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return bigInt; + }.call(exports, __webpack_require__, exports, module)) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); + }).call(this, __webpack_require__(62)(module)); +}, function(module, exports, __webpack_require__) { + "use strict"; + var old; + "undefined" != typeof Promise && (old = Promise); + var bluebird = __webpack_require__(1162)(); + bluebird.noConflict = function() { + try { + Promise === bluebird && (Promise = old); + } catch (e) {} + return bluebird; + }, module.exports = bluebird; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function() { + var makeSelfResolutionError = function() { + return new TypeError("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n"); + }, reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); + }, apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); + }; + function Proxyable() {} + var getDomain, UNDEFINED_BINDING = {}, util = __webpack_require__(17); + getDomain = util.isNode ? function() { + var ret = process.domain; + return void 0 === ret && (ret = null), ret; + } : function() { + return null; + }, util.notEnumerableProp(Promise, "_getDomain", getDomain); + var es5 = __webpack_require__(81), Async = __webpack_require__(1163), async = new Async; + es5.defineProperty(Promise, "_async", { + value: async + }); + var errors = __webpack_require__(58), TypeError = Promise.TypeError = errors.TypeError; + Promise.RangeError = errors.RangeError; + var CancellationError = Promise.CancellationError = errors.CancellationError; + Promise.TimeoutError = errors.TimeoutError, Promise.OperationalError = errors.OperationalError, + Promise.RejectionError = errors.OperationalError, Promise.AggregateError = errors.AggregateError; + var INTERNAL = function() {}, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = __webpack_require__(1166)(Promise, INTERNAL), PromiseArray = __webpack_require__(1167)(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = __webpack_require__(1168)(Promise), createContext = Context.create, debug = __webpack_require__(1169)(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, + __webpack_require__(1170)(Promise, tryConvertToPromise)), catchFilter = __webpack_require__(1171)(NEXT_FILTER), nodebackForPromise = __webpack_require__(508), errorObj = util.errorObj, tryCatch = util.tryCatch; + function Promise(executor) { + this._bitField = 0, this._fulfillmentHandler0 = void 0, this._rejectionHandler0 = void 0, + this._promise0 = void 0, this._receiver0 = void 0, executor !== INTERNAL && ((function(self, executor) { + if ("function" != typeof executor) throw new TypeError("expecting a function but got " + util.classString(executor)); + if (self.constructor !== Promise) throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n"); + })(this, executor), this._resolveFromExecutor(executor)), this._promiseCreated(), + this._fireEvent("promiseCreated", this); + } + function deferResolve(v) { + this.promise._resolveCallback(v); + } + function deferReject(v) { + this.promise._rejectCallback(v, !1); + } + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value, p._rejectionHandler0 = value, p._promise0 = value, + p._receiver0 = value; + } + return Promise.prototype.toString = function() { + return "[object Promise]"; + }, Promise.prototype.caught = Promise.prototype.catch = function(fn) { + var len = arguments.length; + if (len > 1) { + var i, catchInstances = new Array(len - 1), j = 0; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (!util.isObject(item)) return apiRejection("expecting an object but got A catch statement predicate " + util.classString(item)); + catchInstances[j++] = item; + } + return catchInstances.length = j, fn = arguments[i], this.then(void 0, catchFilter(catchInstances, fn, this)); + } + return this.then(void 0, fn); + }, Promise.prototype.reflect = function() { + return this._then(reflectHandler, reflectHandler, void 0, this, void 0); + }, Promise.prototype.then = function(didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && "function" != typeof didFulfill && "function" != typeof didReject) { + var msg = ".then() only accepts functions but was passed: " + util.classString(didFulfill); + arguments.length > 1 && (msg += ", " + util.classString(didReject)), this._warn(msg); + } + return this._then(didFulfill, didReject, void 0, void 0, void 0); + }, Promise.prototype.done = function(didFulfill, didReject) { + this._then(didFulfill, didReject, void 0, void 0, void 0)._setIsFinal(); + }, Promise.prototype.spread = function(fn) { + return "function" != typeof fn ? apiRejection("expecting a function but got " + util.classString(fn)) : this.all()._then(fn, void 0, void 0, APPLY, void 0); + }, Promise.prototype.toJSON = function() { + var ret = { + isFulfilled: !1, + isRejected: !1, + fulfillmentValue: void 0, + rejectionReason: void 0 + }; + return this.isFulfilled() ? (ret.fulfillmentValue = this.value(), ret.isFulfilled = !0) : this.isRejected() && (ret.rejectionReason = this.reason(), + ret.isRejected = !0), ret; + }, Promise.prototype.all = function() { + return arguments.length > 0 && this._warn(".all() was passed arguments but it does not take any"), + new PromiseArray(this).promise(); + }, Promise.prototype.error = function(fn) { + return this.caught(util.originatesFromRejection, fn); + }, Promise.getNewLibraryCopy = module.exports, Promise.is = function(val) { + return val instanceof Promise; + }, Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 && !!Object(arguments[1]).multiArgs, result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + return result === errorObj && ret._rejectCallback(result.e, !0), ret._isFateSealed() || ret._setAsyncGuaranteed(), + ret; + }, Promise.all = function(promises) { + return new PromiseArray(promises).promise(); + }, Promise.cast = function(obj) { + var ret = tryConvertToPromise(obj); + return ret instanceof Promise || ((ret = new Promise(INTERNAL))._captureStackTrace(), + ret._setFulfilled(), ret._rejectionHandler0 = obj), ret; + }, Promise.resolve = Promise.fulfilled = Promise.cast, Promise.reject = Promise.rejected = function(reason) { + var ret = new Promise(INTERNAL); + return ret._captureStackTrace(), ret._rejectCallback(reason, !0), ret; + }, Promise.setScheduler = function(fn) { + if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); + return async.setScheduler(fn); + }, Promise.prototype._then = function(didFulfill, didReject, _, receiver, internalData) { + var haveInternalData = void 0 !== internalData, promise = haveInternalData ? internalData : new Promise(INTERNAL), target = this._target(), bitField = target._bitField; + haveInternalData || (promise._propagateFrom(this, 3), promise._captureStackTrace(), + void 0 === receiver && 0 != (2097152 & this._bitField) && (receiver = 0 != (50397184 & bitField) ? this._boundValue() : target === this ? void 0 : this._boundTo), + this._fireEvent("promiseChained", this, promise)); + var domain = getDomain(); + if (0 != (50397184 & bitField)) { + var handler, value, settler = target._settlePromiseCtx; + 0 != (33554432 & bitField) ? (value = target._rejectionHandler0, handler = didFulfill) : 0 != (16777216 & bitField) ? (value = target._fulfillmentHandler0, + handler = didReject, target._unsetRejectionIsUnhandled()) : (settler = target._settlePromiseLateCancellationObserver, + value = new CancellationError("late cancellation observer"), target._attachExtraTrace(value), + handler = didReject), async.invoke(settler, target, { + handler: null === domain ? handler : "function" == typeof handler && util.domainBind(domain, handler), + promise: promise, + receiver: receiver, + value: value + }); + } else target._addCallbacks(didFulfill, didReject, promise, receiver, domain); + return promise; + }, Promise.prototype._length = function() { + return 65535 & this._bitField; + }, Promise.prototype._isFateSealed = function() { + return 0 != (117506048 & this._bitField); + }, Promise.prototype._isFollowing = function() { + return 67108864 == (67108864 & this._bitField); + }, Promise.prototype._setLength = function(len) { + this._bitField = -65536 & this._bitField | 65535 & len; + }, Promise.prototype._setFulfilled = function() { + this._bitField = 33554432 | this._bitField, this._fireEvent("promiseFulfilled", this); + }, Promise.prototype._setRejected = function() { + this._bitField = 16777216 | this._bitField, this._fireEvent("promiseRejected", this); + }, Promise.prototype._setFollowing = function() { + this._bitField = 67108864 | this._bitField, this._fireEvent("promiseResolved", this); + }, Promise.prototype._setIsFinal = function() { + this._bitField = 4194304 | this._bitField; + }, Promise.prototype._isFinal = function() { + return (4194304 & this._bitField) > 0; + }, Promise.prototype._unsetCancelled = function() { + this._bitField = -65537 & this._bitField; + }, Promise.prototype._setCancelled = function() { + this._bitField = 65536 | this._bitField, this._fireEvent("promiseCancelled", this); + }, Promise.prototype._setWillBeCancelled = function() { + this._bitField = 8388608 | this._bitField; + }, Promise.prototype._setAsyncGuaranteed = function() { + async.hasCustomScheduler() || (this._bitField = 134217728 | this._bitField); + }, Promise.prototype._receiverAt = function(index) { + var ret = 0 === index ? this._receiver0 : this[4 * index - 4 + 3]; + if (ret !== UNDEFINED_BINDING) return void 0 === ret && this._isBound() ? this._boundValue() : ret; + }, Promise.prototype._promiseAt = function(index) { + return this[4 * index - 4 + 2]; + }, Promise.prototype._fulfillmentHandlerAt = function(index) { + return this[4 * index - 4 + 0]; + }, Promise.prototype._rejectionHandlerAt = function(index) { + return this[4 * index - 4 + 1]; + }, Promise.prototype._boundValue = function() {}, Promise.prototype._migrateCallback0 = function(follower) { + follower._bitField; + var fulfill = follower._fulfillmentHandler0, reject = follower._rejectionHandler0, promise = follower._promise0, receiver = follower._receiverAt(0); + void 0 === receiver && (receiver = UNDEFINED_BINDING), this._addCallbacks(fulfill, reject, promise, receiver, null); + }, Promise.prototype._migrateCallbackAt = function(follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index), reject = follower._rejectionHandlerAt(index), promise = follower._promiseAt(index), receiver = follower._receiverAt(index); + void 0 === receiver && (receiver = UNDEFINED_BINDING), this._addCallbacks(fulfill, reject, promise, receiver, null); + }, Promise.prototype._addCallbacks = function(fulfill, reject, promise, receiver, domain) { + var index = this._length(); + if (index >= 65531 && (index = 0, this._setLength(0)), 0 === index) this._promise0 = promise, + this._receiver0 = receiver, "function" == typeof fulfill && (this._fulfillmentHandler0 = null === domain ? fulfill : util.domainBind(domain, fulfill)), + "function" == typeof reject && (this._rejectionHandler0 = null === domain ? reject : util.domainBind(domain, reject)); else { + var base = 4 * index - 4; + this[base + 2] = promise, this[base + 3] = receiver, "function" == typeof fulfill && (this[base + 0] = null === domain ? fulfill : util.domainBind(domain, fulfill)), + "function" == typeof reject && (this[base + 1] = null === domain ? reject : util.domainBind(domain, reject)); + } + return this._setLength(index + 1), index; + }, Promise.prototype._proxy = function(proxyable, arg) { + this._addCallbacks(void 0, void 0, arg, proxyable, null); + }, Promise.prototype._resolveCallback = function(value, shouldBind) { + if (0 == (117506048 & this._bitField)) { + if (value === this) return this._rejectCallback(makeSelfResolutionError(), !1); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + shouldBind && this._propagateFrom(maybePromise, 2); + var promise = maybePromise._target(); + if (promise !== this) { + var bitField = promise._bitField; + if (0 == (50397184 & bitField)) { + var len = this._length(); + len > 0 && promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) promise._migrateCallbackAt(this, i); + this._setFollowing(), this._setLength(0), this._setFollowee(promise); + } else if (0 != (33554432 & bitField)) this._fulfill(promise._value()); else if (0 != (16777216 & bitField)) this._reject(promise._reason()); else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason), this._reject(reason); + } + } else this._reject(makeSelfResolutionError()); + } + }, Promise.prototype._rejectCallback = function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason), hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + util.classString(reason); + this._warn(message, !0); + } + this._attachExtraTrace(trace, !!synchronous && hasStack), this._reject(reason); + }, Promise.prototype._resolveFromExecutor = function(executor) { + var promise = this; + this._captureStackTrace(), this._pushContext(); + var synchronous = !0, r = this._execute(executor, (function(value) { + promise._resolveCallback(value); + }), (function(reason) { + promise._rejectCallback(reason, synchronous); + })); + synchronous = !1, this._popContext(), void 0 !== r && promise._rejectCallback(r, !0); + }, Promise.prototype._settlePromiseFromHandler = function(handler, receiver, value, promise) { + var bitField = promise._bitField; + if (0 == (65536 & bitField)) { + var x; + promise._pushContext(), receiver === APPLY ? value && "number" == typeof value.length ? x = tryCatch(handler).apply(this._boundValue(), value) : (x = errorObj).e = new TypeError("cannot .spread() a non-array: " + util.classString(value)) : x = tryCatch(handler).call(receiver, value); + var promiseCreated = promise._popContext(); + 0 == (65536 & (bitField = promise._bitField)) && (x === NEXT_FILTER ? promise._reject(value) : x === errorObj ? promise._rejectCallback(x.e, !1) : (debug.checkForgottenReturns(x, promiseCreated, "", promise, this), + promise._resolveCallback(x))); + } + }, Promise.prototype._target = function() { + for (var ret = this; ret._isFollowing(); ) ret = ret._followee(); + return ret; + }, Promise.prototype._followee = function() { + return this._rejectionHandler0; + }, Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; + }, Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise, bitField = this._bitField, asyncGuaranteed = 0 != (134217728 & bitField); + 0 != (65536 & bitField) ? (isPromise && promise._invokeInternalOnCancel(), receiver instanceof PassThroughHandlerContext && receiver.isFinallyHandler() ? (receiver.cancelPromise = promise, + tryCatch(handler).call(receiver, value) === errorObj && promise._reject(errorObj.e)) : handler === reflectHandler ? promise._fulfill(reflectHandler.call(receiver)) : receiver instanceof Proxyable ? receiver._promiseCancelled(promise) : isPromise || promise instanceof PromiseArray ? promise._cancel() : receiver.cancel()) : "function" == typeof handler ? isPromise ? (asyncGuaranteed && promise._setAsyncGuaranteed(), + this._settlePromiseFromHandler(handler, receiver, value, promise)) : handler.call(receiver, value, promise) : receiver instanceof Proxyable ? receiver._isResolved() || (0 != (33554432 & bitField) ? receiver._promiseFulfilled(value, promise) : receiver._promiseRejected(value, promise)) : isPromise && (asyncGuaranteed && promise._setAsyncGuaranteed(), + 0 != (33554432 & bitField) ? promise._fulfill(value) : promise._reject(value)); + }, Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler, promise = ctx.promise, receiver = ctx.receiver, value = ctx.value; + "function" == typeof handler ? promise instanceof Promise ? this._settlePromiseFromHandler(handler, receiver, value, promise) : handler.call(receiver, value, promise) : promise instanceof Promise && promise._reject(value); + }, Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); + }, Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0, receiver = this._receiverAt(0); + this._promise0 = void 0, this._receiver0 = void 0, this._settlePromise(promise, handler, receiver, value); + }, Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = 4 * index - 4; + this[base + 2] = this[base + 3] = this[base + 0] = this[base + 1] = void 0; + }, Promise.prototype._fulfill = function(value) { + var bitField = this._bitField; + if (!((117506048 & bitField) >>> 16)) { + if (value === this) { + var err = makeSelfResolutionError(); + return this._attachExtraTrace(err), this._reject(err); + } + this._setFulfilled(), this._rejectionHandler0 = value, (65535 & bitField) > 0 && (0 != (134217728 & bitField) ? this._settlePromises() : async.settlePromises(this)); + } + }, Promise.prototype._reject = function(reason) { + var bitField = this._bitField; + if (!((117506048 & bitField) >>> 16)) { + if (this._setRejected(), this._fulfillmentHandler0 = reason, this._isFinal()) return async.fatalError(reason, util.isNode); + (65535 & bitField) > 0 ? async.settlePromises(this) : this._ensurePossibleRejectionHandled(); + } + }, Promise.prototype._fulfillPromises = function(len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i), promise = this._promiseAt(i), receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i), this._settlePromise(promise, handler, receiver, value); + } + }, Promise.prototype._rejectPromises = function(len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i), promise = this._promiseAt(i), receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i), this._settlePromise(promise, handler, receiver, reason); + } + }, Promise.prototype._settlePromises = function() { + var bitField = this._bitField, len = 65535 & bitField; + if (len > 0) { + if (0 != (16842752 & bitField)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField), this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField), this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); + }, Promise.prototype._settledValue = function() { + var bitField = this._bitField; + return 0 != (33554432 & bitField) ? this._rejectionHandler0 : 0 != (16777216 & bitField) ? this._fulfillmentHandler0 : void 0; + }, Promise.defer = Promise.pending = function() { + return debug.deprecated("Promise.defer", "new Promise"), { + promise: new Promise(INTERNAL), + resolve: deferResolve, + reject: deferReject + }; + }, util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError), + __webpack_require__(1172)(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), + __webpack_require__(1173)(Promise, INTERNAL, tryConvertToPromise, debug), __webpack_require__(1174)(Promise, PromiseArray, apiRejection, debug), + __webpack_require__(1175)(Promise), __webpack_require__(1176)(Promise), __webpack_require__(1177)(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), + Promise.Promise = Promise, Promise.version = "3.4.7", __webpack_require__(1178)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), + __webpack_require__(1179)(Promise), __webpack_require__(1180)(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), + __webpack_require__(1181)(Promise, INTERNAL, debug), __webpack_require__(1182)(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), + __webpack_require__(1183)(Promise), __webpack_require__(1184)(Promise, INTERNAL), + __webpack_require__(1185)(Promise, PromiseArray, tryConvertToPromise, apiRejection), + __webpack_require__(1186)(Promise, INTERNAL, tryConvertToPromise, apiRejection), + __webpack_require__(1187)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), + __webpack_require__(1188)(Promise, PromiseArray, debug), __webpack_require__(1189)(Promise, PromiseArray, apiRejection), + __webpack_require__(1190)(Promise, INTERNAL), __webpack_require__(1191)(Promise, INTERNAL), + __webpack_require__(1192)(Promise), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), + fillTypes({ + a: 1 + }), fillTypes({ + b: 2 + }), fillTypes({ + c: 3 + }), fillTypes(1), fillTypes((function() {})), fillTypes(void 0), fillTypes(!1), + fillTypes(new Promise(INTERNAL)), debug.setBounds(Async.firstLineError, util.lastLineError), + Promise; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var firstLineError; + try { + throw new Error; + } catch (e) { + firstLineError = e; + } + var schedule = __webpack_require__(1164), Queue = __webpack_require__(1165), util = __webpack_require__(17); + function Async() { + this._customScheduler = !1, this._isTickUsed = !1, this._lateQueue = new Queue(16), + this._normalQueue = new Queue(16), this._haveDrainedQueues = !1, this._trampolineEnabled = !0; + var self = this; + this.drainQueues = function() { + self._drainQueues(); + }, this._schedule = schedule; + } + function AsyncInvokeLater(fn, receiver, arg) { + this._lateQueue.push(fn, receiver, arg), this._queueTick(); + } + function AsyncInvoke(fn, receiver, arg) { + this._normalQueue.push(fn, receiver, arg), this._queueTick(); + } + function AsyncSettlePromises(promise) { + this._normalQueue._pushOne(promise), this._queueTick(); + } + Async.prototype.setScheduler = function(fn) { + var prev = this._schedule; + return this._schedule = fn, this._customScheduler = !0, prev; + }, Async.prototype.hasCustomScheduler = function() { + return this._customScheduler; + }, Async.prototype.enableTrampoline = function() { + this._trampolineEnabled = !0; + }, Async.prototype.disableTrampolineIfNecessary = function() { + util.hasDevTools && (this._trampolineEnabled = !1); + }, Async.prototype.haveItemsQueued = function() { + return this._isTickUsed || this._haveDrainedQueues; + }, Async.prototype.fatalError = function(e, isNode) { + isNode ? (process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + "\n"), + process.exit(2)) : this.throwLater(e); + }, Async.prototype.throwLater = function(fn, arg) { + if (1 === arguments.length && (arg = fn, fn = function() { + throw arg; + }), "undefined" != typeof setTimeout) setTimeout((function() { + fn(arg); + }), 0); else try { + this._schedule((function() { + fn(arg); + })); + } catch (e) { + throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n"); + } + }, util.hasDevTools ? (Async.prototype.invokeLater = function(fn, receiver, arg) { + this._trampolineEnabled ? AsyncInvokeLater.call(this, fn, receiver, arg) : this._schedule((function() { + setTimeout((function() { + fn.call(receiver, arg); + }), 100); + })); + }, Async.prototype.invoke = function(fn, receiver, arg) { + this._trampolineEnabled ? AsyncInvoke.call(this, fn, receiver, arg) : this._schedule((function() { + fn.call(receiver, arg); + })); + }, Async.prototype.settlePromises = function(promise) { + this._trampolineEnabled ? AsyncSettlePromises.call(this, promise) : this._schedule((function() { + promise._settlePromises(); + })); + }) : (Async.prototype.invokeLater = AsyncInvokeLater, Async.prototype.invoke = AsyncInvoke, + Async.prototype.settlePromises = AsyncSettlePromises), Async.prototype._drainQueue = function(queue) { + for (;queue.length() > 0; ) { + var fn = queue.shift(); + if ("function" == typeof fn) { + var receiver = queue.shift(), arg = queue.shift(); + fn.call(receiver, arg); + } else fn._settlePromises(); + } + }, Async.prototype._drainQueues = function() { + this._drainQueue(this._normalQueue), this._reset(), this._haveDrainedQueues = !0, + this._drainQueue(this._lateQueue); + }, Async.prototype._queueTick = function() { + this._isTickUsed || (this._isTickUsed = !0, this._schedule(this.drainQueues)); + }, Async.prototype._reset = function() { + this._isTickUsed = !1; + }, module.exports = Async, module.exports.firstLineError = firstLineError; +}, function(module, exports, __webpack_require__) { + "use strict"; + var schedule, div, opts, toggleScheduled, div2, util = __webpack_require__(17), NativePromise = util.getNativePromise(); + if (util.isNode && "undefined" == typeof MutationObserver) { + var GlobalSetImmediate = global.setImmediate, ProcessNextTick = process.nextTick; + schedule = util.isRecentNode ? function(fn) { + GlobalSetImmediate.call(global, fn); + } : function(fn) { + ProcessNextTick.call(process, fn); + }; + } else if ("function" == typeof NativePromise && "function" == typeof NativePromise.resolve) { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; + } else schedule = "undefined" == typeof MutationObserver || "undefined" != typeof window && window.navigator && (window.navigator.standalone || window.cordova) ? "undefined" != typeof setImmediate ? function(fn) { + setImmediate(fn); + } : "undefined" != typeof setTimeout ? function(fn) { + setTimeout(fn, 0); + } : function() { + throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n"); + } : (div = document.createElement("div"), opts = { + attributes: !0 + }, toggleScheduled = !1, div2 = document.createElement("div"), new MutationObserver((function() { + div.classList.toggle("foo"), toggleScheduled = !1; + })).observe(div2, opts), function(fn) { + var o = new MutationObserver((function() { + o.disconnect(), fn(); + })); + o.observe(div, opts), toggleScheduled || (toggleScheduled = !0, div2.classList.toggle("foo")); + }); + module.exports = schedule; +}, function(module, exports, __webpack_require__) { + "use strict"; + function Queue(capacity) { + this._capacity = capacity, this._length = 0, this._front = 0; + } + Queue.prototype._willBeOverCapacity = function(size) { + return this._capacity < size; + }, Queue.prototype._pushOne = function(arg) { + var length = this.length(); + this._checkCapacity(length + 1), this[this._front + length & this._capacity - 1] = arg, + this._length = length + 1; + }, Queue.prototype.push = function(fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) return this._pushOne(fn), this._pushOne(receiver), + void this._pushOne(arg); + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[j + 0 & wrapMask] = fn, this[j + 1 & wrapMask] = receiver, this[j + 2 & wrapMask] = arg, + this._length = length; + }, Queue.prototype.shift = function() { + var front = this._front, ret = this[front]; + return this[front] = void 0, this._front = front + 1 & this._capacity - 1, this._length--, + ret; + }, Queue.prototype.length = function() { + return this._length; + }, Queue.prototype._checkCapacity = function(size) { + this._capacity < size && this._resizeTo(this._capacity << 1); + }, Queue.prototype._resizeTo = function(capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity, (function(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) dst[j + dstIndex] = src[j + 0], src[j + 0] = void 0; + })(this, 0, this, oldCapacity, this._front + this._length & oldCapacity - 1); + }, module.exports = Queue; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL) { + var util = __webpack_require__(17), errorObj = util.errorObj, isObject = util.isObject, hasProp = {}.hasOwnProperty; + return function(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = (function(obj) { + try { + return (function(obj) { + return obj.then; + })(obj); + } catch (e) { + return errorObj.e = e, errorObj; + } + })(obj); + if (then === errorObj) { + context && context._pushContext(); + var ret = Promise.reject(then.e); + return context && context._popContext(), ret; + } + if ("function" == typeof then) return (function(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return !1; + } + })(obj) ? (ret = new Promise(INTERNAL), obj._then(ret._fulfill, ret._reject, void 0, ret, null), + ret) : (function(x, then, context) { + var promise = new Promise(INTERNAL), ret = promise; + context && context._pushContext(), promise._captureStackTrace(), context && context._popContext(); + var result = util.tryCatch(then).call(x, (function(value) { + promise && (promise._resolveCallback(value), promise = null); + }), (function(reason) { + promise && (promise._rejectCallback(reason, false, !0), promise = null); + })); + return !1, promise && result === errorObj && (promise._rejectCallback(result.e, !0, !0), + promise = null), ret; + })(obj, then, context); + } + return obj; + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable) { + var util = __webpack_require__(17); + function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + values instanceof Promise && promise._propagateFrom(values, 3), promise._setOnCancel(this), + this._values = values, this._length = 0, this._totalResolved = 0, this._init(void 0, -2); + } + return util.isArray, util.inherits(PromiseArray, Proxyable), PromiseArray.prototype.length = function() { + return this._length; + }, PromiseArray.prototype.promise = function() { + return this._promise; + }, PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + var bitField = (values = values._target())._bitField; + if (this._values = values, 0 == (50397184 & bitField)) return this._promise._setAsyncGuaranteed(), + values._then(init, this._reject, void 0, this, resolveValueIfEmpty); + if (0 == (33554432 & bitField)) return 0 != (16777216 & bitField) ? this._reject(values._reason()) : this._cancel(); + values = values._value(); + } + if (null !== (values = util.asArray(values))) 0 !== values.length ? this._iterate(values) : -5 === resolveValueIfEmpty ? this._resolveEmptyArray() : this._resolve((function(val) { + switch (val) { + case -2: + return []; + + case -3: + return {}; + } + })(resolveValueIfEmpty)); else { + var err = apiRejection("expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, !1); + } + }, PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len, this._values = this.shouldCopyValues() ? new Array(len) : this._values; + for (var result = this._promise, isResolved = !1, bitField = null, i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + bitField = maybePromise instanceof Promise ? (maybePromise = maybePromise._target())._bitField : null, + isResolved ? null !== bitField && maybePromise.suppressUnhandledRejections() : null !== bitField ? 0 == (50397184 & bitField) ? (maybePromise._proxy(this, i), + this._values[i] = maybePromise) : isResolved = 0 != (33554432 & bitField) ? this._promiseFulfilled(maybePromise._value(), i) : 0 != (16777216 & bitField) ? this._promiseRejected(maybePromise._reason(), i) : this._promiseCancelled(i) : isResolved = this._promiseFulfilled(maybePromise, i); + } + isResolved || result._setAsyncGuaranteed(); + }, PromiseArray.prototype._isResolved = function() { + return null === this._values; + }, PromiseArray.prototype._resolve = function(value) { + this._values = null, this._promise._fulfill(value); + }, PromiseArray.prototype._cancel = function() { + !this._isResolved() && this._promise._isCancellable() && (this._values = null, this._promise._cancel()); + }, PromiseArray.prototype._reject = function(reason) { + this._values = null, this._promise._rejectCallback(reason, !1); + }, PromiseArray.prototype._promiseFulfilled = function(value, index) { + return this._values[index] = value, ++this._totalResolved >= this._length && (this._resolve(this._values), + !0); + }, PromiseArray.prototype._promiseCancelled = function() { + return this._cancel(), !0; + }, PromiseArray.prototype._promiseRejected = function(reason) { + return this._totalResolved++, this._reject(reason), !0; + }, PromiseArray.prototype._resultCancelled = function() { + if (!this._isResolved()) { + var values = this._values; + if (this._cancel(), values instanceof Promise) values.cancel(); else for (var i = 0; i < values.length; ++i) values[i] instanceof Promise && values[i].cancel(); + } + }, PromiseArray.prototype.shouldCopyValues = function() { + return !0; + }, PromiseArray.prototype.getActualLength = function(len) { + return len; + }, PromiseArray; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise) { + var longStackTraces = !1, contextStack = []; + function Context() { + this._trace = new Context.CapturedTrace(peekContext()); + } + function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) return contextStack[lastIndex]; + } + return Promise.prototype._promiseCreated = function() {}, Promise.prototype._pushContext = function() {}, + Promise.prototype._popContext = function() { + return null; + }, Promise._peekContext = Promise.prototype._peekContext = function() {}, Context.prototype._pushContext = function() { + void 0 !== this._trace && (this._trace._promiseCreated = null, contextStack.push(this._trace)); + }, Context.prototype._popContext = function() { + if (void 0 !== this._trace) { + var trace = contextStack.pop(), ret = trace._promiseCreated; + return trace._promiseCreated = null, ret; + } + return null; + }, Context.CapturedTrace = null, Context.create = function() { + if (longStackTraces) return new Context; + }, Context.deactivateLongStackTraces = function() {}, Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext, Promise_popContext = Promise.prototype._popContext, Promise_PeekContext = Promise._peekContext, Promise_peekContext = Promise.prototype._peekContext, Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext, Promise.prototype._popContext = Promise_popContext, + Promise._peekContext = Promise_PeekContext, Promise.prototype._peekContext = Promise_peekContext, + Promise.prototype._promiseCreated = Promise_promiseCreated, longStackTraces = !1; + }, longStackTraces = !0, Promise.prototype._pushContext = Context.prototype._pushContext, + Promise.prototype._popContext = Context.prototype._popContext, Promise._peekContext = Promise.prototype._peekContext = peekContext, + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + ctx && null == ctx._promiseCreated && (ctx._promiseCreated = this); + }; + }, Context; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, Context) { + var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = __webpack_require__(58).Warning, util = __webpack_require__(17), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = -1048577 & target._bitField | 524288; + }, Promise.prototype._ensurePossibleRejectionHandled = function() { + 0 == (524288 & this._bitField) && (this._setRejectionIsUnhandled(), async.invokeLater(this._notifyUnhandledRejection, this, void 0)); + }, Promise.prototype._notifyUnhandledRejectionIsHandled = function() { + fireRejectionEvent("rejectionHandled", unhandledRejectionHandled, void 0, this); + }, Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = 268435456 | this._bitField; + }, Promise.prototype._returnedNonUndefined = function() { + return 0 != (268435456 & this._bitField); + }, Promise.prototype._notifyUnhandledRejection = function() { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(), fireRejectionEvent("unhandledRejection", possiblyUnhandledRejection, reason, this); + } + }, Promise.prototype._setUnhandledRejectionIsNotified = function() { + this._bitField = 262144 | this._bitField; + }, Promise.prototype._unsetUnhandledRejectionIsNotified = function() { + this._bitField = -262145 & this._bitField; + }, Promise.prototype._isUnhandledRejectionNotified = function() { + return (262144 & this._bitField) > 0; + }, Promise.prototype._setRejectionIsUnhandled = function() { + this._bitField = 1048576 | this._bitField; + }, Promise.prototype._unsetRejectionIsUnhandled = function() { + this._bitField = -1048577 & this._bitField, this._isUnhandledRejectionNotified() && (this._unsetUnhandledRejectionIsNotified(), + this._notifyUnhandledRejectionIsHandled()); + }, Promise.prototype._isRejectionUnhandled = function() { + return (1048576 & this._bitField) > 0; + }, Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); + }, Promise.onPossiblyUnhandledRejection = function(fn) { + var domain = getDomain(); + possiblyUnhandledRejection = "function" == typeof fn ? null === domain ? fn : util.domainBind(domain, fn) : void 0; + }, Promise.onUnhandledRejectionHandled = function(fn) { + var domain = getDomain(); + unhandledRejectionHandled = "function" == typeof fn ? null === domain ? fn : util.domainBind(domain, fn) : void 0; + }; + var disableLongStackTraces = function() {}; + Promise.longStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace, Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + config.longStackTraces = !0, disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); + Promise.prototype._captureStackTrace = Promise_captureStackTrace, Promise.prototype._attachExtraTrace = Promise_attachExtraTrace, + Context.deactivateLongStackTraces(), async.enableTrampoline(), config.longStackTraces = !1; + }, Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace, Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace, + Context.activateLongStackTraces(), async.disableTrampolineIfNecessary(); + } + }, Promise.hasLongStackTraces = function() { + return config.longStackTraces && longStackTracesIsSupported(); + }; + var fireDomEvent = (function() { + try { + if ("function" == typeof CustomEvent) { + var event = new CustomEvent("CustomEvent"); + return util.global.dispatchEvent(event), function(name, event) { + var domEvent = new CustomEvent(name.toLowerCase(), { + detail: event, + cancelable: !0 + }); + return !util.global.dispatchEvent(domEvent); + }; + } + return "function" == typeof Event ? (event = new Event("CustomEvent"), util.global.dispatchEvent(event), + function(name, event) { + var domEvent = new Event(name.toLowerCase(), { + cancelable: !0 + }); + return domEvent.detail = event, !util.global.dispatchEvent(domEvent); + }) : ((event = document.createEvent("CustomEvent")).initCustomEvent("testingtheevent", !1, !0, {}), + util.global.dispatchEvent(event), function(name, event) { + var domEvent = document.createEvent("CustomEvent"); + return domEvent.initCustomEvent(name.toLowerCase(), !1, !0, event), !util.global.dispatchEvent(domEvent); + }); + } catch (e) {} + return function() { + return !1; + }; + })(), fireGlobalEvent = util.isNode ? function() { + return process.emit.apply(process, arguments); + } : util.global ? function(name) { + var methodName = "on" + name.toLowerCase(), method = util.global[methodName]; + return !!method && (method.apply(util.global, [].slice.call(arguments, 1)), !0); + } : function() { + return !1; + }; + function generatePromiseLifecycleEventObject(name, promise) { + return { + promise: promise + }; + } + var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return { + promise: promise, + child: child + }; + }, + warning: function(name, warning) { + return { + warning: warning + }; + }, + unhandledRejection: function(name, reason, promise) { + return { + reason: reason, + promise: promise + }; + }, + rejectionHandled: generatePromiseLifecycleEventObject + }, activeFireEvent = function(name) { + var globalEventFired = !1; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e), globalEventFired = !0; + } + var domEventFired = !1; + try { + domEventFired = fireDomEvent(name, eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e), domEventFired = !0; + } + return domEventFired || globalEventFired; + }; + function defaultFireEvent() { + return !1; + } + function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, (function(onCancel) { + if ("function" != typeof onCancel) throw new TypeError("onCancel must be a function, got: " + util.toString(onCancel)); + promise._attachCancellationCallback(onCancel); + })); + } catch (e) { + return e; + } + } + function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + var previousOnCancel = this._onCancel(); + void 0 !== previousOnCancel ? util.isArray(previousOnCancel) ? previousOnCancel.push(onCancel) : this._setOnCancel([ previousOnCancel, onCancel ]) : this._setOnCancel(onCancel); + } + function cancellationOnCancel() { + return this._onCancelField; + } + function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; + } + function cancellationClearCancellationData() { + this._cancellationParent = void 0, this._onCancelField = void 0; + } + function cancellationPropagateFrom(parent, flags) { + if (0 != (1 & flags)) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + void 0 === branchesRemainingToCancel && (branchesRemainingToCancel = 0), parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + 0 != (2 & flags) && parent._isBound() && this._setBoundTo(parent._boundTo); + } + Promise.config = function(opts) { + if ("longStackTraces" in (opts = Object(opts)) && (opts.longStackTraces ? Promise.longStackTraces() : !opts.longStackTraces && Promise.hasLongStackTraces() && disableLongStackTraces()), + "warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption, wForgottenReturn = config.warnings, util.isObject(warningsOption) && "wForgottenReturn" in warningsOption && (wForgottenReturn = !!warningsOption.wForgottenReturn); + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) throw new Error("cannot enable cancellation after promises are in use"); + Promise.prototype._clearCancellationData = cancellationClearCancellationData, Promise.prototype._propagateFrom = cancellationPropagateFrom, + Promise.prototype._onCancel = cancellationOnCancel, Promise.prototype._setOnCancel = cancellationSetOnCancel, + Promise.prototype._attachCancellationCallback = cancellationAttachCancellationCallback, + Promise.prototype._execute = cancellationExecute, propagateFromFunction = cancellationPropagateFrom, + config.cancellation = !0; + } + return "monitoring" in opts && (opts.monitoring && !config.monitoring ? (config.monitoring = !0, + Promise.prototype._fireEvent = activeFireEvent) : !opts.monitoring && config.monitoring && (config.monitoring = !1, + Promise.prototype._fireEvent = defaultFireEvent)), Promise; + }, Promise.prototype._fireEvent = defaultFireEvent, Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } + }, Promise.prototype._onCancel = function() {}, Promise.prototype._setOnCancel = function(handler) {}, + Promise.prototype._attachCancellationCallback = function(onCancel) {}, Promise.prototype._captureStackTrace = function() {}, + Promise.prototype._attachExtraTrace = function() {}, Promise.prototype._clearCancellationData = function() {}, + Promise.prototype._propagateFrom = function(parent, flags) {}; + var propagateFromFunction = function(parent, flags) { + 0 != (2 & flags) && parent._isBound() && this._setBoundTo(parent._boundTo); + }; + function boundValueFunction() { + var ret = this._boundTo; + return void 0 !== ret && ret instanceof Promise ? ret.isFulfilled() ? ret.value() : void 0 : ret; + } + function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); + } + function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (void 0 !== trace && ignoreSelf && (trace = trace._parent), void 0 !== trace) trace.attachExtraTrace(error); else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", parsed.message + "\n" + parsed.stack.join("\n")), + util.notEnumerableProp(error, "__stackCleaned__", !0); + } + } + } + function warn(message, shouldUseOwnTrace, promise) { + if (config.warnings) { + var ctx, warning = new Warning(message); + if (shouldUseOwnTrace) promise._attachExtraTrace(warning); else if (config.longStackTraces && (ctx = Promise._peekContext())) ctx.attachExtraTrace(warning); else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + activeFireEvent("warning", warning) || formatAndLogError(warning, "", !0); + } + } + function cleanStack(stack) { + for (var ret = [], i = 0; i < stack.length; ++i) { + var line = stack[i], isTraceLine = " (No stack trace)" === line || stackFramePattern.test(line), isInternalFrame = isTraceLine && shouldIgnore(line); + isTraceLine && !isInternalFrame && (indentStackFrames && " " !== line.charAt(0) && (line = " " + line), + ret.push(line)); + } + return ret; + } + function parseStackAndMessage(error) { + var stack = error.stack, message = error.toString(); + return stack = "string" == typeof stack && stack.length > 0 ? (function(error) { + for (var stack = error.stack.replace(/\s+$/g, "").split("\n"), i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) break; + } + return i > 0 && "SyntaxError" != error.name && (stack = stack.slice(i)), stack; + })(error) : [ " (No stack trace)" ], { + message: message, + stack: "SyntaxError" == error.name ? stack : cleanStack(stack) + }; + } + function formatAndLogError(error, title, isSoft) { + if ("undefined" != typeof console) { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else message = title + String(error); + "function" == typeof printWarning ? printWarning(message, isSoft) : "function" != typeof console.log && "object" != typeof console.log || console.log(message); + } + } + function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = !1; + try { + "function" == typeof localHandler && (localEventFired = !0, "rejectionHandled" === name ? localHandler(promise) : localHandler(reason, promise)); + } catch (e) { + async.throwLater(e); + } + "unhandledRejection" === name ? activeFireEvent(name, reason, promise) || localEventFired || formatAndLogError(reason, "Unhandled rejection ") : activeFireEvent(name, promise); + } + function formatNonError(obj) { + var str; + if ("function" == typeof obj) str = "[function " + (obj.name || "anonymous") + "]"; else { + if (str = obj && "function" == typeof obj.toString ? obj.toString() : util.toString(obj), + /\[object [a-zA-Z0-9$_]+\]/.test(str)) try { + str = JSON.stringify(obj); + } catch (e) {} + 0 === str.length && (str = "(empty array)"); + } + return "(<" + (function(str) { + return str.length < 41 ? str : str.substr(0, 38) + "..."; + })(str) + ">, no stack trace)"; + } + function longStackTracesIsSupported() { + return "function" == typeof captureStackTrace; + } + var shouldIgnore = function() { + return !1; + }, parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; + function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } + function CapturedTrace(parent) { + this._parent = parent, this._promisesCreated = 0; + var length = this._length = 1 + (void 0 === parent ? 0 : parent._length); + captureStackTrace(this, CapturedTrace), length > 32 && this.uncycle(); + } + util.inherits(CapturedTrace, Error), Context.CapturedTrace = CapturedTrace, CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (!(length < 2)) { + for (var nodes = [], stackToIndex = {}, i = 0, node = this; void 0 !== node; ++i) nodes.push(node), + node = node._parent; + for (i = (length = this._length = i) - 1; i >= 0; --i) { + var stack = nodes[i].stack; + void 0 === stackToIndex[stack] && (stackToIndex[stack] = i); + } + for (i = 0; i < length; ++i) { + var index = stackToIndex[nodes[i].stack]; + if (void 0 !== index && index !== i) { + index > 0 && (nodes[index - 1]._parent = void 0, nodes[index - 1]._length = 1), + nodes[i]._parent = void 0, nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + index < length - 1 ? (cycleEdgeNode._parent = nodes[index + 1], cycleEdgeNode._parent.uncycle(), + cycleEdgeNode._length = cycleEdgeNode._parent._length + 1) : (cycleEdgeNode._parent = void 0, + cycleEdgeNode._length = 1); + for (var currentChildLength = cycleEdgeNode._length + 1, j = i - 2; j >= 0; --j) nodes[j]._length = currentChildLength, + currentChildLength++; + return; + } + } + } + }, CapturedTrace.prototype.attachExtraTrace = function(error) { + if (!error.__stackCleaned__) { + this.uncycle(); + for (var parsed = parseStackAndMessage(error), message = parsed.message, stacks = [ parsed.stack ], trace = this; void 0 !== trace; ) stacks.push(cleanStack(trace.stack.split("\n"))), + trace = trace._parent; + !(function(stacks) { + for (var current = stacks[0], i = 1; i < stacks.length; ++i) { + for (var prev = stacks[i], currentLastIndex = current.length - 1, currentLastLine = current[currentLastIndex], commonRootMeetPoint = -1, j = prev.length - 1; j >= 0; --j) if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + for (j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] !== line) break; + current.pop(), currentLastIndex--; + } + current = prev; + } + })(stacks), (function(stacks) { + for (var i = 0; i < stacks.length; ++i) (0 === stacks[i].length || i + 1 < stacks.length && stacks[i][0] === stacks[i + 1][0]) && (stacks.splice(i, 1), + i--); + })(stacks), util.notEnumerableProp(error, "stack", (function(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) stacks[i].push("From previous event:"), + stacks[i] = stacks[i].join("\n"); + return i < stacks.length && (stacks[i] = stacks[i].join("\n")), message + "\n" + stacks.join("\n"); + })(message, stacks)), util.notEnumerableProp(error, "__stackCleaned__", !0); + } + }; + var captureStackTrace = (function() { + var v8stackFramePattern = /^\s*at\s*/, v8stackFormatter = function(stack, error) { + return "string" == typeof stack ? stack : void 0 !== error.name && void 0 !== error.message ? error.toString() : formatNonError(error); + }; + if ("number" == typeof Error.stackTraceLimit && "function" == typeof Error.captureStackTrace) { + Error.stackTraceLimit += 6, stackFramePattern = v8stackFramePattern, formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + return shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }, function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6, captureStackTrace(receiver, ignoreUntil), Error.stackTraceLimit -= 6; + }; + } + var hasStackAfterThrow, err = new Error; + if ("string" == typeof err.stack && err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) return stackFramePattern = /@/, + formatStack = v8stackFormatter, indentStackFrames = !0, function(o) { + o.stack = (new Error).stack; + }; + try { + throw new Error; + } catch (e) { + hasStackAfterThrow = "stack" in e; + } + return !("stack" in err) && hasStackAfterThrow && "number" == typeof Error.stackTraceLimit ? (stackFramePattern = v8stackFramePattern, + formatStack = v8stackFormatter, function(o) { + Error.stackTraceLimit += 6; + try { + throw new Error; + } catch (e) { + o.stack = e.stack; + } + Error.stackTraceLimit -= 6; + }) : (formatStack = function(stack, error) { + return "string" == typeof stack ? stack : "object" != typeof error && "function" != typeof error || void 0 === error.name || void 0 === error.message ? formatNonError(error) : error.toString(); + }, null); + })(); + "undefined" != typeof console && void 0 !== console.warn && (printWarning = function(message) { + console.warn(message); + }, util.isNode && process.stderr.isTTY ? printWarning = function(message, isSoft) { + var color = isSoft ? "" : ""; + console.warn(color + message + "\n"); + } : util.isNode || "string" != typeof (new Error).stack || (printWarning = function(message, isSoft) { + console.warn("%c" + message, isSoft ? "color: darkorange" : "color: red"); + })); + var config = { + warnings: warnings, + longStackTraces: !1, + cancellation: !1, + monitoring: !1 + }; + return longStackTraces && Promise.longStackTraces(), { + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: function(returnValue, promiseCreated, name, promise, parent) { + if (void 0 === returnValue && null !== promiseCreated && wForgottenReturn) { + if (void 0 !== parent && parent._returnedNonUndefined()) return; + if (0 == (65535 & promise._bitField)) return; + name && (name += " "); + var handlerLine = "", creatorLine = ""; + if (promiseCreated._trace) { + for (var traceLines = promiseCreated._trace.stack.split("\n"), stack = cleanStack(traceLines), i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + lineMatches && (handlerLine = "at " + lineMatches[1] + ":" + lineMatches[2] + ":" + lineMatches[3] + " "); + break; + } + } + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (i = 0; i < traceLines.length; ++i) if (traceLines[i] === firstUserLine) { + i > 0 && (creatorLine = "\n" + traceLines[i - 1]); + break; + } + } + } + var msg = "a promise was created in a " + name + "handler " + handlerLine + "but was not returned from it, see http://goo.gl/rRqMUw" + creatorLine; + promise._warn(msg, !0, promiseCreated); + } + }, + setBounds: function(firstLineError, lastLineError) { + if (longStackTracesIsSupported()) { + for (var firstFileName, lastFileName, firstStackLines = firstLineError.stack.split("\n"), lastStackLines = lastLineError.stack.split("\n"), firstIndex = -1, lastIndex = -1, i = 0; i < firstStackLines.length; ++i) if (result = parseLineInfo(firstStackLines[i])) { + firstFileName = result.fileName, firstIndex = result.line; + break; + } + for (i = 0; i < lastStackLines.length; ++i) { + var result; + if (result = parseLineInfo(lastStackLines[i])) { + lastFileName = result.fileName, lastIndex = result.line; + break; + } + } + firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || firstFileName !== lastFileName || firstIndex >= lastIndex || (shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return !0; + var info = parseLineInfo(line); + return !!(info && info.fileName === firstFileName && firstIndex <= info.line && info.line <= lastIndex); + }); + } + }, + warn: warn, + deprecated: function(name, replacement) { + var message = name + " is deprecated and will be removed in a future version."; + return replacement && (message += " Use " + replacement + " instead."), warn(message); + }, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, tryConvertToPromise) { + var util = __webpack_require__(17), CancellationError = Promise.CancellationError, errorObj = util.errorObj; + function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise, this.type = type, this.handler = handler, this.called = !1, + this.cancelPromise = null; + } + function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; + } + function checkCancel(ctx, reason) { + return null != ctx.cancelPromise && (arguments.length > 1 ? ctx.cancelPromise._reject(reason) : ctx.cancelPromise._cancel(), + ctx.cancelPromise = null, !0); + } + function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); + } + function fail(reason) { + if (!checkCancel(this, reason)) return errorObj.e = reason, errorObj; + } + function finallyHandler(reasonOrValue) { + var promise = this.promise, handler = this.handler; + if (!this.called) { + this.called = !0; + var ret = this.isFinallyHandler() ? handler.call(promise._boundValue()) : handler.call(promise._boundValue(), reasonOrValue); + if (void 0 !== ret) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (null != this.cancelPromise) { + if (maybePromise._isCancelled()) { + var reason = new CancellationError("late cancellation observer"); + return promise._attachExtraTrace(reason), errorObj.e = reason, errorObj; + } + maybePromise.isPending() && maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this)); + } + return maybePromise._then(succeed, fail, void 0, this, void 0); + } + } + } + return promise.isRejected() ? (checkCancel(this), errorObj.e = reasonOrValue, errorObj) : (checkCancel(this), + reasonOrValue); + } + return PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return 0 === this.type; + }, FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); + }, Promise.prototype._passThrough = function(handler, type, success, fail) { + return "function" != typeof handler ? this.then() : this._then(success, fail, void 0, new PassThroughHandlerContext(this, type, handler), void 0); + }, Promise.prototype.lastly = Promise.prototype.finally = function(handler) { + return this._passThrough(handler, 0, finallyHandler, finallyHandler); + }, Promise.prototype.tap = function(handler) { + return this._passThrough(handler, 1, finallyHandler); + }, PassThroughHandlerContext; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(NEXT_FILTER) { + var util = __webpack_require__(17), getKeys = __webpack_require__(81).keys, tryCatch = util.tryCatch, errorObj = util.errorObj; + return function(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + if (item === Error || null != item && item.prototype instanceof Error) { + if (e instanceof item) return tryCatch(cb).call(boundTo, e); + } else if ("function" == typeof item) { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) return matchesPredicate; + if (matchesPredicate) return tryCatch(cb).call(boundTo, e); + } else if (util.isObject(e)) { + for (var keys = getKeys(item), j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) continue predicateLoop; + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { + var util = __webpack_require__(17), tryCatch = util.tryCatch; + Promise.method = function(fn) { + if ("function" != typeof fn) throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + return function() { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(), ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments), promiseCreated = ret._popContext(); + return debug.checkForgottenReturns(value, promiseCreated, "Promise.method", ret), + ret._resolveFromSyncValue(value), ret; + }; + }, Promise.attempt = Promise.try = function(fn) { + if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); + var value, ret = new Promise(INTERNAL); + if (ret._captureStackTrace(), ret._pushContext(), arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1], ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) : tryCatch(fn).call(ctx, arg); + } else value = tryCatch(fn)(); + var promiseCreated = ret._popContext(); + return debug.checkForgottenReturns(value, promiseCreated, "Promise.try", ret), ret._resolveFromSyncValue(value), + ret; + }, Promise.prototype._resolveFromSyncValue = function(value) { + value === util.errorObj ? this._rejectCallback(value.e, !1) : this._resolveCallback(value, !0); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { + var calledBind = !1, rejectThis = function(_, e) { + this._reject(e); + }, targetRejected = function(e, context) { + context.promiseRejectionQueued = !0, context.bindingPromise._then(rejectThis, rejectThis, null, this, e); + }, bindingResolved = function(thisArg, context) { + 0 == (50397184 & this._bitField) && this._resolveCallback(context.target); + }, bindingRejected = function(e, context) { + context.promiseRejectionQueued || this._reject(e); + }; + Promise.prototype.bind = function(thisArg) { + calledBind || (calledBind = !0, Promise.prototype._propagateFrom = debug.propagateFromFunction(), + Promise.prototype._boundValue = debug.boundValueFunction()); + var maybePromise = tryConvertToPromise(thisArg), ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + if (ret._setBoundTo(maybePromise), maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: !1, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, void 0, ret, context), maybePromise._then(bindingResolved, bindingRejected, void 0, ret, context), + ret._setOnCancel(maybePromise); + } else ret._resolveCallback(target); + return ret; + }, Promise.prototype._setBoundTo = function(obj) { + void 0 !== obj ? (this._bitField = 2097152 | this._bitField, this._boundTo = obj) : this._bitField = -2097153 & this._bitField; + }, Promise.prototype._isBound = function() { + return 2097152 == (2097152 & this._bitField); + }, Promise.bind = function(thisArg, value) { + return Promise.resolve(value).bind(thisArg); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, PromiseArray, apiRejection, debug) { + var util = __webpack_require__(17), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; + Promise.prototype.break = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + for (var promise = this, child = promise; promise._isCancellable(); ) { + if (!promise._cancelBy(child)) { + child._isFollowing() ? child._followee().cancel() : child._cancelBranched(); + break; + } + var parent = promise._cancellationParent; + if (null == parent || !parent._isCancellable()) { + promise._isFollowing() ? promise._followee().cancel() : promise._cancelBranched(); + break; + } + promise._isFollowing() && promise._followee().cancel(), promise._setWillBeCancelled(), + child = promise, promise = parent; + } + }, Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; + }, Promise.prototype._enoughBranchesHaveCancelled = function() { + return void 0 === this._branchesRemainingToCancel || this._branchesRemainingToCancel <= 0; + }, Promise.prototype._cancelBy = function(canceller) { + return canceller === this ? (this._branchesRemainingToCancel = 0, this._invokeOnCancel(), + !0) : (this._branchHasCancelled(), !!this._enoughBranchesHaveCancelled() && (this._invokeOnCancel(), + !0)); + }, Promise.prototype._cancelBranched = function() { + this._enoughBranchesHaveCancelled() && this._cancel(); + }, Promise.prototype._cancel = function() { + this._isCancellable() && (this._setCancelled(), async.invoke(this._cancelPromises, this, void 0)); + }, Promise.prototype._cancelPromises = function() { + this._length() > 0 && this._settlePromises(); + }, Promise.prototype._unsetOnCancel = function() { + this._onCancelField = void 0; + }, Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); + }, Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); + }, Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) for (var i = 0; i < onCancelCallback.length; ++i) this._doInvokeOnCancel(onCancelCallback[i], internalOnly); else if (void 0 !== onCancelCallback) if ("function" == typeof onCancelCallback) { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + e === errorObj && (this._attachExtraTrace(e.e), async.throwLater(e.e)); + } + } else onCancelCallback._resultCancelled(this); + }, Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(), async.invoke(this._doInvokeOnCancel, this, onCancelCallback); + }, Promise.prototype._invokeInternalOnCancel = function() { + this._isCancellable() && (this._doInvokeOnCancel(this._onCancel(), !0), this._unsetOnCancel()); + }, Promise.prototype._resultCancelled = function() { + this.cancel(); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise) { + function returner() { + return this.value; + } + function thrower() { + throw this.reason; + } + Promise.prototype.return = Promise.prototype.thenReturn = function(value) { + return value instanceof Promise && value.suppressUnhandledRejections(), this._then(returner, void 0, void 0, { + value: value + }, void 0); + }, Promise.prototype.throw = Promise.prototype.thenThrow = function(reason) { + return this._then(thrower, void 0, void 0, { + reason: reason + }, void 0); + }, Promise.prototype.catchThrow = function(reason) { + if (arguments.length <= 1) return this._then(void 0, thrower, void 0, { + reason: reason + }, void 0); + var _reason = arguments[1], handler = function() { + throw _reason; + }; + return this.caught(reason, handler); + }, Promise.prototype.catchReturn = function(value) { + if (arguments.length <= 1) return value instanceof Promise && value.suppressUnhandledRejections(), + this._then(void 0, returner, void 0, { + value: value + }, void 0); + var _value = arguments[1]; + _value instanceof Promise && _value.suppressUnhandledRejections(); + var handler = function() { + return _value; + }; + return this.caught(value, handler); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise) { + function PromiseInspection(promise) { + void 0 !== promise ? (promise = promise._target(), this._bitField = promise._bitField, + this._settledValueField = promise._isFateSealed() ? promise._settledValue() : void 0) : (this._bitField = 0, + this._settledValueField = void 0); + } + PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; + }; + var value = PromiseInspection.prototype.value = function() { + if (!this.isFulfilled()) throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n"); + return this._settledValue(); + }, reason = PromiseInspection.prototype.error = PromiseInspection.prototype.reason = function() { + if (!this.isRejected()) throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n"); + return this._settledValue(); + }, isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return 0 != (33554432 & this._bitField); + }, isRejected = PromiseInspection.prototype.isRejected = function() { + return 0 != (16777216 & this._bitField); + }, isPending = PromiseInspection.prototype.isPending = function() { + return 0 == (50397184 & this._bitField); + }, isResolved = PromiseInspection.prototype.isResolved = function() { + return 0 != (50331648 & this._bitField); + }; + PromiseInspection.prototype.isCancelled = function() { + return 0 != (8454144 & this._bitField); + }, Promise.prototype.__isCancelled = function() { + return 65536 == (65536 & this._bitField); + }, Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); + }, Promise.prototype.isCancelled = function() { + return 0 != (8454144 & this._target()._bitField); + }, Promise.prototype.isPending = function() { + return isPending.call(this._target()); + }, Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); + }, Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); + }, Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); + }, Promise.prototype.value = function() { + return value.call(this._target()); + }, Promise.prototype.reason = function() { + var target = this._target(); + return target._unsetRejectionIsUnhandled(), reason.call(target); + }, Promise.prototype._value = function() { + return this._settledValue(); + }, Promise.prototype._reason = function() { + return this._unsetRejectionIsUnhandled(), this._settledValue(); + }, Promise.PromiseInspection = PromiseInspection; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain) { + var reject, util = __webpack_require__(17), canEvaluate = util.canEvaluate, tryCatch = util.tryCatch, errorObj = util.errorObj; + if (canEvaluate) { + for (var thenCallback = function(i) { + return new Function("value", "holder", " \n 'use strict'; \n holder.pIndex = value; \n holder.checkFulfillment(this); \n ".replace(/Index/g, i)); + }, promiseSetter = function(i) { + return new Function("promise", "holder", " \n 'use strict'; \n holder.pIndex = promise; \n ".replace(/Index/g, i)); + }, generateHolderClass = function(total) { + for (var props = new Array(total), i = 0; i < props.length; ++i) props[i] = "this.p" + (i + 1); + var assignment = props.join(" = ") + " = null;", cancellationCode = "var promise;\n" + props.map((function(prop) { + return " \n promise = " + prop + "; \n if (promise instanceof Promise) { \n promise.cancel(); \n } \n "; + })).join("\n"), passedArguments = props.join(", "), name = "Holder$" + total, code = "return function(tryCatch, errorObj, Promise, async) { \n 'use strict'; \n function [TheName](fn) { \n [TheProperties] \n this.fn = fn; \n this.asyncNeeded = true; \n this.now = 0; \n } \n \n [TheName].prototype._callFunction = function(promise) { \n promise._pushContext(); \n var ret = tryCatch(this.fn)([ThePassedArguments]); \n promise._popContext(); \n if (ret === errorObj) { \n promise._rejectCallback(ret.e, false); \n } else { \n promise._resolveCallback(ret); \n } \n }; \n \n [TheName].prototype.checkFulfillment = function(promise) { \n var now = ++this.now; \n if (now === [TheTotal]) { \n if (this.asyncNeeded) { \n async.invoke(this._callFunction, this, promise); \n } else { \n this._callFunction(promise); \n } \n \n } \n }; \n \n [TheName].prototype._resultCancelled = function() { \n [CancellationCode] \n }; \n \n return [TheName]; \n }(tryCatch, errorObj, Promise, async); \n "; + return code = code.replace(/\[TheName\]/g, name).replace(/\[TheTotal\]/g, total).replace(/\[ThePassedArguments\]/g, passedArguments).replace(/\[TheProperties\]/g, assignment).replace(/\[CancellationCode\]/g, cancellationCode), + new Function("tryCatch", "errorObj", "Promise", "async", code)(tryCatch, errorObj, Promise, async); + }, holderClasses = [], thenCallbacks = [], promiseSetters = [], i = 0; i < 8; ++i) holderClasses.push(generateHolderClass(i + 1)), + thenCallbacks.push(thenCallback(i + 1)), promiseSetters.push(promiseSetter(i + 1)); + reject = function(reason) { + this._reject(reason); + }; + } + Promise.join = function() { + var fn, last = arguments.length - 1; + if (last > 0 && "function" == typeof arguments[last] && (fn = arguments[last], last <= 8 && canEvaluate)) { + (ret = new Promise(INTERNAL))._captureStackTrace(); + for (var HolderClass = holderClasses[last - 1], holder = new HolderClass(fn), callbacks = thenCallbacks, i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + var bitField = (maybePromise = maybePromise._target())._bitField; + 0 == (50397184 & bitField) ? (maybePromise._then(callbacks[i], reject, void 0, ret, holder), + promiseSetters[i](maybePromise, holder), holder.asyncNeeded = !1) : 0 != (33554432 & bitField) ? callbacks[i].call(ret, maybePromise._value(), holder) : 0 != (16777216 & bitField) ? ret._reject(maybePromise._reason()) : ret._cancel(); + } else callbacks[i].call(ret, maybePromise, holder); + } + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var domain = getDomain(); + null !== domain && (holder.fn = util.domainBind(domain, holder.fn)); + } + ret._setAsyncGuaranteed(), ret._setOnCancel(holder); + } + return ret; + } + for (var $_len = arguments.length, args = new Array($_len), $_i = 0; $_i < $_len; ++$_i) args[$_i] = arguments[$_i]; + fn && args.pop(); + var ret = new PromiseArray(args).promise(); + return void 0 !== fn ? ret.spread(fn) : ret; + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { + var getDomain = Promise._getDomain, util = __webpack_require__(17), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; + function MappingPromiseArray(promises, fn, limit, _filter) { + this.constructor$(promises), this._promise._captureStackTrace(); + var domain = getDomain(); + this._callback = null === domain ? fn : util.domainBind(domain, fn), this._preservedValues = _filter === INTERNAL ? new Array(this.length()) : null, + this._limit = limit, this._inFlight = 0, this._queue = [], async.invoke(this._asyncInit, this, void 0); + } + function map(promises, fn, options, _filter) { + if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); + var limit = 0; + if (void 0 !== options) { + if ("object" != typeof options || null === options) return Promise.reject(new TypeError("options argument must be an object but it is " + util.classString(options))); + if ("number" != typeof options.concurrency) return Promise.reject(new TypeError("'concurrency' must be a number but it is " + util.classString(options.concurrency))); + limit = options.concurrency; + } + return new MappingPromiseArray(promises, fn, limit = "number" == typeof limit && isFinite(limit) && limit >= 1 ? limit : 0, _filter).promise(); + } + util.inherits(MappingPromiseArray, PromiseArray), MappingPromiseArray.prototype._asyncInit = function() { + this._init$(void 0, -2); + }, MappingPromiseArray.prototype._init = function() {}, MappingPromiseArray.prototype._promiseFulfilled = function(value, index) { + var values = this._values, length = this.length(), preservedValues = this._preservedValues, limit = this._limit; + if (index < 0) { + if (values[index = -1 * index - 1] = value, limit >= 1 && (this._inFlight--, this._drainQueue(), + this._isResolved())) return !0; + } else { + if (limit >= 1 && this._inFlight >= limit) return values[index] = value, this._queue.push(index), + !1; + null !== preservedValues && (preservedValues[index] = value); + var promise = this._promise, callback = this._callback, receiver = promise._boundValue(); + promise._pushContext(); + var ret = tryCatch(callback).call(receiver, value, index, length), promiseCreated = promise._popContext(); + if (debug.checkForgottenReturns(ret, promiseCreated, null !== preservedValues ? "Promise.filter" : "Promise.map", promise), + ret === errorObj) return this._reject(ret.e), !0; + var maybePromise = tryConvertToPromise(ret, this._promise); + if (maybePromise instanceof Promise) { + var bitField = (maybePromise = maybePromise._target())._bitField; + if (0 == (50397184 & bitField)) return limit >= 1 && this._inFlight++, values[index] = maybePromise, + maybePromise._proxy(this, -1 * (index + 1)), !1; + if (0 == (33554432 & bitField)) return 0 != (16777216 & bitField) ? (this._reject(maybePromise._reason()), + !0) : (this._cancel(), !0); + ret = maybePromise._value(); + } + values[index] = ret; + } + return ++this._totalResolved >= length && (null !== preservedValues ? this._filter(values, preservedValues) : this._resolve(values), + !0); + }, MappingPromiseArray.prototype._drainQueue = function() { + for (var queue = this._queue, limit = this._limit, values = this._values; queue.length > 0 && this._inFlight < limit; ) { + if (this._isResolved()) return; + var index = queue.pop(); + this._promiseFulfilled(values[index], index); + } + }, MappingPromiseArray.prototype._filter = function(booleans, values) { + for (var len = values.length, ret = new Array(len), j = 0, i = 0; i < len; ++i) booleans[i] && (ret[j++] = values[i]); + ret.length = j, this._resolve(ret); + }, MappingPromiseArray.prototype.preservedValues = function() { + return this._preservedValues; + }, Promise.prototype.map = function(fn, options) { + return map(this, fn, options, null); + }, Promise.map = function(promises, fn, options, _filter) { + return map(promises, fn, options, _filter); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var cr = Object.create; + if (cr) { + var callerCache = cr(null), getterCache = cr(null); + callerCache[" size"] = getterCache[" size"] = 0; + } + module.exports = function(Promise) { + var getMethodCaller, getGetter, util = __webpack_require__(17), canEvaluate = util.canEvaluate, isIdentifier = util.isIdentifier, makeMethodCaller = function(methodName) { + return new Function("ensureMethod", " \n return function(obj) { \n 'use strict' \n var len = this.length; \n ensureMethod(obj, 'methodName'); \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: \n return obj.methodName.apply(obj, this); \n } \n }; \n ".replace(/methodName/g, methodName))(ensureMethod); + }, makeGetter = function(propertyName) { + return new Function("obj", " \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName", propertyName)); + }, getCompiled = function(name, compiler, cache) { + var ret = cache[name]; + if ("function" != typeof ret) { + if (!isIdentifier(name)) return null; + if (ret = compiler(name), cache[name] = ret, cache[" size"]++, cache[" size"] > 512) { + for (var keys = Object.keys(cache), i = 0; i < 256; ++i) delete cache[keys[i]]; + cache[" size"] = keys.length - 256; + } + } + return ret; + }; + function ensureMethod(obj, methodName) { + var fn; + if (null != obj && (fn = obj[methodName]), "function" != typeof fn) { + var message = "Object " + util.classString(obj) + " has no method '" + util.toString(methodName) + "'"; + throw new Promise.TypeError(message); + } + return fn; + } + function caller(obj) { + return ensureMethod(obj, this.pop()).apply(obj, this); + } + function namedGetter(obj) { + return obj[this]; + } + function indexedGetter(obj) { + var index = +this; + return index < 0 && (index = Math.max(0, index + obj.length)), obj[index]; + } + getMethodCaller = function(name) { + return getCompiled(name, makeMethodCaller, callerCache); + }, getGetter = function(name) { + return getCompiled(name, makeGetter, getterCache); + }, Promise.prototype.call = function(methodName) { + for (var $_len = arguments.length, args = new Array(Math.max($_len - 1, 0)), $_i = 1; $_i < $_len; ++$_i) args[$_i - 1] = arguments[$_i]; + if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (null !== maybeCaller) return this._then(maybeCaller, void 0, void 0, args, void 0); + } + return args.push(methodName), this._then(caller, void 0, void 0, args, void 0); + }, Promise.prototype.get = function(propertyName) { + var getter; + if ("number" == typeof propertyName) getter = indexedGetter; else if (canEvaluate) { + var maybeGetter = getGetter(propertyName); + getter = null !== maybeGetter ? maybeGetter : namedGetter; + } else getter = namedGetter; + return this._then(getter, void 0, void 0, propertyName, void 0); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { + var util = __webpack_require__(17), TypeError = __webpack_require__(58).TypeError, inherits = __webpack_require__(17).inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; + function thrower(e) { + setTimeout((function() { + throw e; + }), 0); + } + function dispose(resources, inspection) { + var i = 0, len = resources.length, ret = new Promise(INTERNAL); + return (function iterator() { + if (i >= len) return ret._fulfill(); + var maybePromise = (function(thenable) { + var maybePromise = tryConvertToPromise(thenable); + return maybePromise !== thenable && "function" == typeof thenable._isDisposable && "function" == typeof thenable._getDisposer && thenable._isDisposable() && maybePromise._setDisposable(thenable._getDisposer()), + maybePromise; + })(resources[i++]); + if (maybePromise instanceof Promise && maybePromise._isDisposable()) { + try { + maybePromise = tryConvertToPromise(maybePromise._getDisposer().tryDispose(inspection), resources.promise); + } catch (e) { + return thrower(e); + } + if (maybePromise instanceof Promise) return maybePromise._then(iterator, thrower, null, null, null); + } + iterator(); + })(), ret; + } + function Disposer(data, promise, context) { + this._data = data, this._promise = promise, this._context = context; + } + function FunctionDisposer(fn, promise, context) { + this.constructor$(fn, promise, context); + } + function maybeUnwrapDisposer(value) { + return Disposer.isDisposer(value) ? (this.resources[this.index]._setDisposable(value), + value.promise()) : value; + } + function ResourceList(length) { + this.length = length, this.promise = null, this[length - 1] = null; + } + Disposer.prototype.data = function() { + return this._data; + }, Disposer.prototype.promise = function() { + return this._promise; + }, Disposer.prototype.resource = function() { + return this.promise().isFulfilled() ? this.promise().value() : NULL; + }, Disposer.prototype.tryDispose = function(inspection) { + var resource = this.resource(), context = this._context; + void 0 !== context && context._pushContext(); + var ret = resource !== NULL ? this.doDispose(resource, inspection) : null; + return void 0 !== context && context._popContext(), this._promise._unsetDisposable(), + this._data = null, ret; + }, Disposer.isDisposer = function(d) { + return null != d && "function" == typeof d.resource && "function" == typeof d.tryDispose; + }, inherits(FunctionDisposer, Disposer), FunctionDisposer.prototype.doDispose = function(resource, inspection) { + return this.data().call(resource, resource, inspection); + }, ResourceList.prototype._resultCancelled = function() { + for (var len = this.length, i = 0; i < len; ++i) { + var item = this[i]; + item instanceof Promise && item.cancel(); + } + }, Promise.using = function() { + var len = arguments.length; + if (len < 2) return apiRejection("you must pass at least 2 arguments to Promise.using"); + var input, fn = arguments[len - 1]; + if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); + var spreadArgs = !0; + 2 === len && Array.isArray(arguments[0]) ? (len = (input = arguments[0]).length, + spreadArgs = !1) : (input = arguments, len--); + for (var resources = new ResourceList(len), i = 0; i < len; ++i) { + var resource = input[i]; + if (Disposer.isDisposer(resource)) { + var disposer = resource; + (resource = resource.promise())._setDisposable(disposer); + } else { + var maybePromise = tryConvertToPromise(resource); + maybePromise instanceof Promise && (resource = maybePromise._then(maybeUnwrapDisposer, null, null, { + resources: resources, + index: i + }, void 0)); + } + resources[i] = resource; + } + var reflectedResources = new Array(resources.length); + for (i = 0; i < reflectedResources.length; ++i) reflectedResources[i] = Promise.resolve(resources[i]).reflect(); + var resultPromise = Promise.all(reflectedResources).then((function(inspections) { + for (var i = 0; i < inspections.length; ++i) { + var inspection = inspections[i]; + if (inspection.isRejected()) return errorObj.e = inspection.error(), errorObj; + if (!inspection.isFulfilled()) return void resultPromise.cancel(); + inspections[i] = inspection.value(); + } + promise._pushContext(), fn = tryCatch(fn); + var ret = spreadArgs ? fn.apply(void 0, inspections) : fn(inspections), promiseCreated = promise._popContext(); + return debug.checkForgottenReturns(ret, promiseCreated, "Promise.using", promise), + ret; + })), promise = resultPromise.lastly((function() { + var inspection = new Promise.PromiseInspection(resultPromise); + return dispose(resources, inspection); + })); + return resources.promise = promise, promise._setOnCancel(resources), promise; + }, Promise.prototype._setDisposable = function(disposer) { + this._bitField = 131072 | this._bitField, this._disposer = disposer; + }, Promise.prototype._isDisposable = function() { + return (131072 & this._bitField) > 0; + }, Promise.prototype._getDisposer = function() { + return this._disposer; + }, Promise.prototype._unsetDisposable = function() { + this._bitField = -131073 & this._bitField, this._disposer = void 0; + }, Promise.prototype.disposer = function(fn) { + if ("function" == typeof fn) return new FunctionDisposer(fn, this, createContext()); + throw new TypeError; + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL, debug) { + var util = __webpack_require__(17), TimeoutError = Promise.TimeoutError; + function HandleWrapper(handle) { + this.handle = handle; + } + HandleWrapper.prototype._resultCancelled = function() { + clearTimeout(this.handle); + }; + var afterValue = function(value) { + return delay(+this).thenReturn(value); + }, delay = Promise.delay = function(ms, value) { + var ret, handle; + return void 0 !== value ? (ret = Promise.resolve(value)._then(afterValue, null, null, ms, void 0), + debug.cancellation() && value instanceof Promise && ret._setOnCancel(value)) : (ret = new Promise(INTERNAL), + handle = setTimeout((function() { + ret._fulfill(); + }), +ms), debug.cancellation() && ret._setOnCancel(new HandleWrapper(handle)), ret._captureStackTrace()), + ret._setAsyncGuaranteed(), ret; + }; + function successClear(value) { + return clearTimeout(this.handle), value; + } + function failureClear(reason) { + throw clearTimeout(this.handle), reason; + } + Promise.prototype.delay = function(ms) { + return delay(ms, this); + }, Promise.prototype.timeout = function(ms, message) { + var ret, parent; + ms = +ms; + var handleWrapper = new HandleWrapper(setTimeout((function() { + ret.isPending() && (function(promise, message, parent) { + var err; + err = "string" != typeof message ? message instanceof Error ? message : new TimeoutError("operation timed out") : new TimeoutError(message), + util.markAsOriginatingFromRejection(err), promise._attachExtraTrace(err), promise._reject(err), + null != parent && parent.cancel(); + })(ret, message, parent); + }), ms)); + return debug.cancellation() ? (parent = this.then(), (ret = parent._then(successClear, failureClear, void 0, handleWrapper, void 0))._setOnCancel(handleWrapper)) : ret = this._then(successClear, failureClear, void 0, handleWrapper, void 0), + ret; + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { + var TypeError = __webpack_require__(58).TypeError, util = __webpack_require__(17), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; + function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { + if (debug.cancellation()) { + var internal = new Promise(INTERNAL), _finallyPromise = this._finallyPromise = new Promise(INTERNAL); + this._promise = internal.lastly((function() { + return _finallyPromise; + })), internal._captureStackTrace(), internal._setOnCancel(this); + } else (this._promise = new Promise(INTERNAL))._captureStackTrace(); + this._stack = stack, this._generatorFunction = generatorFunction, this._receiver = receiver, + this._generator = void 0, this._yieldHandlers = "function" == typeof yieldHandler ? [ yieldHandler ].concat(yieldHandlers) : yieldHandlers, + this._yieldedPromise = null, this._cancellationPhase = !1; + } + util.inherits(PromiseSpawn, Proxyable), PromiseSpawn.prototype._isResolved = function() { + return null === this._promise; + }, PromiseSpawn.prototype._cleanup = function() { + this._promise = this._generator = null, debug.cancellation() && null !== this._finallyPromise && (this._finallyPromise._fulfill(), + this._finallyPromise = null); + }, PromiseSpawn.prototype._promiseCancelled = function() { + if (!this._isResolved()) { + var result; + if (void 0 !== this._generator.return) this._promise._pushContext(), result = tryCatch(this._generator.return).call(this._generator, void 0), + this._promise._popContext(); else { + var reason = new Promise.CancellationError("generator .return() sentinel"); + Promise.coroutine.returnSentinel = reason, this._promise._attachExtraTrace(reason), + this._promise._pushContext(), result = tryCatch(this._generator.throw).call(this._generator, reason), + this._promise._popContext(); + } + this._cancellationPhase = !0, this._yieldedPromise = null, this._continue(result); + } + }, PromiseSpawn.prototype._promiseFulfilled = function(value) { + this._yieldedPromise = null, this._promise._pushContext(); + var result = tryCatch(this._generator.next).call(this._generator, value); + this._promise._popContext(), this._continue(result); + }, PromiseSpawn.prototype._promiseRejected = function(reason) { + this._yieldedPromise = null, this._promise._attachExtraTrace(reason), this._promise._pushContext(); + var result = tryCatch(this._generator.throw).call(this._generator, reason); + this._promise._popContext(), this._continue(result); + }, PromiseSpawn.prototype._resultCancelled = function() { + if (this._yieldedPromise instanceof Promise) { + var promise = this._yieldedPromise; + this._yieldedPromise = null, promise.cancel(); + } + }, PromiseSpawn.prototype.promise = function() { + return this._promise; + }, PromiseSpawn.prototype._run = function() { + this._generator = this._generatorFunction.call(this._receiver), this._receiver = this._generatorFunction = void 0, + this._promiseFulfilled(void 0); + }, PromiseSpawn.prototype._continue = function(result) { + var promise = this._promise; + if (result === errorObj) return this._cleanup(), this._cancellationPhase ? promise.cancel() : promise._rejectCallback(result.e, !1); + var value = result.value; + if (!0 === result.done) return this._cleanup(), this._cancellationPhase ? promise.cancel() : promise._resolveCallback(value); + var maybePromise = tryConvertToPromise(value, this._promise); + if (maybePromise instanceof Promise || (maybePromise = (function(value, yieldHandlers, traceParent) { + for (var i = 0; i < yieldHandlers.length; ++i) { + traceParent._pushContext(); + var result = tryCatch(yieldHandlers[i])(value); + if (traceParent._popContext(), result === errorObj) { + traceParent._pushContext(); + var ret = Promise.reject(errorObj.e); + return traceParent._popContext(), ret; + } + var maybePromise = tryConvertToPromise(result, traceParent); + if (maybePromise instanceof Promise) return maybePromise; + } + return null; + })(maybePromise, this._yieldHandlers, this._promise), null !== maybePromise)) { + var bitField = (maybePromise = maybePromise._target())._bitField; + 0 == (50397184 & bitField) ? (this._yieldedPromise = maybePromise, maybePromise._proxy(this, null)) : 0 != (33554432 & bitField) ? Promise._async.invoke(this._promiseFulfilled, this, maybePromise._value()) : 0 != (16777216 & bitField) ? Promise._async.invoke(this._promiseRejected, this, maybePromise._reason()) : this._promiseCancelled(); + } else this._promiseRejected(new TypeError("A value %s was yielded that could not be treated as a promise\n\n See http://goo.gl/MqrFmX\n\n".replace("%s", value) + "From coroutine:\n" + this._stack.split("\n").slice(1, -7).join("\n"))); + }, Promise.coroutine = function(generatorFunction, options) { + if ("function" != typeof generatorFunction) throw new TypeError("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); + var yieldHandler = Object(options).yieldHandler, PromiseSpawn$ = PromiseSpawn, stack = (new Error).stack; + return function() { + var generator = generatorFunction.apply(this, arguments), spawn = new PromiseSpawn$(void 0, void 0, yieldHandler, stack), ret = spawn.promise(); + return spawn._generator = generator, spawn._promiseFulfilled(void 0), ret; + }; + }, Promise.coroutine.addYieldHandler = function(fn) { + if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); + yieldHandlers.push(fn); + }, Promise.spawn = function(generatorFunction) { + if (debug.deprecated("Promise.spawn()", "Promise.coroutine()"), "function" != typeof generatorFunction) return apiRejection("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); + var spawn = new PromiseSpawn(generatorFunction, this), ret = spawn.promise(); + return spawn._run(Promise.spawn), ret; + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise) { + var util = __webpack_require__(17), async = Promise._async, tryCatch = util.tryCatch, errorObj = util.errorObj; + function spreadAdapter(val, nodeback) { + if (!util.isArray(val)) return successAdapter.call(this, val, nodeback); + var ret = tryCatch(nodeback).apply(this._boundValue(), [ null ].concat(val)); + ret === errorObj && async.throwLater(ret.e); + } + function successAdapter(val, nodeback) { + var receiver = this._boundValue(), ret = void 0 === val ? tryCatch(nodeback).call(receiver, null) : tryCatch(nodeback).call(receiver, null, val); + ret === errorObj && async.throwLater(ret.e); + } + function errorAdapter(reason, nodeback) { + if (!reason) { + var newReason = new Error(reason + ""); + newReason.cause = reason, reason = newReason; + } + var ret = tryCatch(nodeback).call(this._boundValue(), reason); + ret === errorObj && async.throwLater(ret.e); + } + Promise.prototype.asCallback = Promise.prototype.nodeify = function(nodeback, options) { + if ("function" == typeof nodeback) { + var adapter = successAdapter; + void 0 !== options && Object(options).spread && (adapter = spreadAdapter), this._then(adapter, errorAdapter, void 0, this, nodeback); + } + return this; + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL) { + var THIS = {}, util = __webpack_require__(17), nodebackForPromise = __webpack_require__(508), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = __webpack_require__(58).TypeError, defaultPromisified = { + __isPromisified__: !0 + }, noCopyPropsPattern = new RegExp("^(?:" + [ "arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__" ].join("|") + ")$"), defaultFilter = function(name) { + return util.isIdentifier(name) && "_" !== name.charAt(0) && "constructor" !== name; + }; + function propsFilter(key) { + return !noCopyPropsPattern.test(key); + } + function isPromisified(fn) { + try { + return !0 === fn.__isPromisified__; + } catch (e) { + return !1; + } + } + function hasPromisified(obj, key, suffix) { + var val = util.getDataPropertyOrDefault(obj, key + suffix, defaultPromisified); + return !!val && isPromisified(val); + } + var makeNodePromisified = canEvaluate ? function(callback, receiver, originalName, fn, _, multiArgs) { + var newParameterCount = Math.max(0, (function(fn) { + return "number" == typeof fn.length ? Math.max(Math.min(fn.length, 1024), 0) : 0; + })(fn) - 1), argumentOrder = (function(likelyArgumentCount) { + for (var ret = [ likelyArgumentCount ], min = Math.max(0, likelyArgumentCount - 1 - 3), i = likelyArgumentCount - 1; i >= min; --i) ret.push(i); + for (i = likelyArgumentCount + 1; i <= 3; ++i) ret.push(i); + return ret; + })(newParameterCount), shouldProxyThis = "string" == typeof callback || receiver === THIS; + var parameterCount, getFunctionCode = "string" == typeof callback ? "this != null ? this['" + callback + "'] : fn" : "fn", body = "'use strict'; \n var ret = function (Parameters) { \n 'use strict'; \n var len = arguments.length; \n var promise = new Promise(INTERNAL); \n promise._captureStackTrace(); \n var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n var ret; \n var callback = tryCatch([GetFunctionCode]); \n switch(len) { \n [CodeForSwitchCase] \n } \n if (ret === errorObj) { \n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n } \n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n return promise; \n }; \n notEnumerableProp(ret, '__isPromisified__', true); \n return ret; \n ".replace("[CodeForSwitchCase]", (function() { + for (var ret = "", i = 0; i < argumentOrder.length; ++i) ret += "case " + argumentOrder[i] + ":" + (count = argumentOrder[i], + argumentCount = void 0, args = void 0, comma = void 0, args = (argumentCount = count, + util.filledRange(argumentCount, "_arg", "")).join(", "), comma = count > 0 ? ", " : "", + (shouldProxyThis ? "ret = callback.call(this, {{args}}, nodeback); break;\n" : void 0 === receiver ? "ret = callback({{args}}, nodeback); break;\n" : "ret = callback.call(receiver, {{args}}, nodeback); break;\n").replace("{{args}}", args).replace(", ", comma)); + var count, argumentCount, args, comma; + return ret + " \n default: \n var args = new Array(len + 1); \n var i = 0; \n for (var i = 0; i < len; ++i) { \n args[i] = arguments[i]; \n } \n args[i] = nodeback; \n [CodeForCall] \n break; \n ".replace("[CodeForCall]", shouldProxyThis ? "ret = callback.apply(this, args);\n" : "ret = callback.apply(receiver, args);\n"); + })()).replace("[GetFunctionCode]", getFunctionCode); + return body = body.replace("Parameters", (parameterCount = newParameterCount, util.filledRange(Math.max(parameterCount, 3), "_arg", ""))), + new Function("Promise", "fn", "receiver", "withAppended", "maybeWrapAsError", "nodebackForPromise", "tryCatch", "errorObj", "notEnumerableProp", "INTERNAL", body)(Promise, fn, receiver, withAppended, maybeWrapAsError, nodebackForPromise, util.tryCatch, util.errorObj, util.notEnumerableProp, INTERNAL); + } : function(callback, receiver, _, fn, __, multiArgs) { + var defaultThis = (function() { + return this; + })(), method = callback; + function promisified() { + var _receiver = receiver; + receiver === THIS && (_receiver = this); + var promise = new Promise(INTERNAL); + promise._captureStackTrace(); + var cb = "string" == typeof method && this !== defaultThis ? this[method] : callback, fn = nodebackForPromise(promise, multiArgs); + try { + cb.apply(_receiver, withAppended(arguments, fn)); + } catch (e) { + promise._rejectCallback(maybeWrapAsError(e), !0, !0); + } + return promise._isFateSealed() || promise._setAsyncGuaranteed(), promise; + } + return "string" == typeof method && (callback = fn), util.notEnumerableProp(promisified, "__isPromisified__", !0), + promisified; + }; + function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { + for (var suffixRegexp = new RegExp(suffix.replace(/([$])/, "\\$") + "$"), methods = (function(obj, suffix, suffixRegexp, filter) { + for (var keys = util.inheritedDataKeys(obj), ret = [], i = 0; i < keys.length; ++i) { + var key = keys[i], value = obj[key], passesDefaultFilter = filter === defaultFilter || defaultFilter(key); + "function" != typeof value || isPromisified(value) || hasPromisified(obj, key, suffix) || !filter(key, value, obj, passesDefaultFilter) || ret.push(key, value); + } + return (function(ret, suffix, suffixRegexp) { + for (var i = 0; i < ret.length; i += 2) { + var key = ret[i]; + if (suffixRegexp.test(key)) for (var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""), j = 0; j < ret.length; j += 2) if (ret[j] === keyWithoutAsyncSuffix) throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\n\n See http://goo.gl/MqrFmX\n".replace("%s", suffix)); + } + })(ret, suffix, suffixRegexp), ret; + })(obj, suffix, suffixRegexp, filter), i = 0, len = methods.length; i < len; i += 2) { + var key = methods[i], fn = methods[i + 1], promisifiedKey = key + suffix; + if (promisifier === makeNodePromisified) obj[promisifiedKey] = makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); else { + var promisified = promisifier(fn, (function() { + return makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + })); + util.notEnumerableProp(promisified, "__isPromisified__", !0), obj[promisifiedKey] = promisified; + } + } + return util.toFastProperties(obj), obj; + } + Promise.promisify = function(fn, options) { + if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); + if (isPromisified(fn)) return fn; + var callback, receiver, multiArgs, ret = (callback = fn, receiver = void 0 === (options = Object(options)).context ? THIS : options.context, + multiArgs = !!options.multiArgs, makeNodePromisified(callback, receiver, void 0, callback, null, multiArgs)); + return util.copyDescriptors(fn, ret, propsFilter), ret; + }, Promise.promisifyAll = function(target, options) { + if ("function" != typeof target && "object" != typeof target) throw new TypeError("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n"); + var multiArgs = !!(options = Object(options)).multiArgs, suffix = options.suffix; + "string" != typeof suffix && (suffix = "Async"); + var filter = options.filter; + "function" != typeof filter && (filter = defaultFilter); + var promisifier = options.promisifier; + if ("function" != typeof promisifier && (promisifier = makeNodePromisified), !util.isIdentifier(suffix)) throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n"); + for (var keys = util.inheritedDataKeys(target), i = 0; i < keys.length; ++i) { + var value = target[keys[i]]; + "constructor" !== keys[i] && util.isClass(value) && (promisifyAll(value.prototype, suffix, filter, promisifier, multiArgs), + promisifyAll(value, suffix, filter, promisifier, multiArgs)); + } + return promisifyAll(target, suffix, filter, promisifier, multiArgs); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, PromiseArray, tryConvertToPromise, apiRejection) { + var Es6Map, util = __webpack_require__(17), isObject = util.isObject, es5 = __webpack_require__(81); + "function" == typeof Map && (Es6Map = Map); + var mapToEntries = (function() { + var index = 0, size = 0; + function extractEntry(value, key) { + this[index] = value, this[index + size] = key, index++; + } + return function(map) { + size = map.size, index = 0; + var ret = new Array(2 * map.size); + return map.forEach(extractEntry, ret), ret; + }; + })(); + function PropertiesPromiseArray(obj) { + var entries, isMap = !1; + if (void 0 !== Es6Map && obj instanceof Es6Map) entries = mapToEntries(obj), isMap = !0; else { + var keys = es5.keys(obj), len = keys.length; + entries = new Array(2 * len); + for (var i = 0; i < len; ++i) { + var key = keys[i]; + entries[i] = obj[key], entries[i + len] = key; + } + } + this.constructor$(entries), this._isMap = isMap, this._init$(void 0, -3); + } + function props(promises) { + var ret, castValue = tryConvertToPromise(promises); + return isObject(castValue) ? (ret = castValue instanceof Promise ? castValue._then(Promise.props, void 0, void 0, void 0, void 0) : new PropertiesPromiseArray(castValue).promise(), + castValue instanceof Promise && ret._propagateFrom(castValue, 2), ret) : apiRejection("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n"); + } + util.inherits(PropertiesPromiseArray, PromiseArray), PropertiesPromiseArray.prototype._init = function() {}, + PropertiesPromiseArray.prototype._promiseFulfilled = function(value, index) { + if (this._values[index] = value, ++this._totalResolved >= this._length) { + var val; + if (this._isMap) val = (function(entries) { + for (var ret = new Es6Map, length = entries.length / 2 | 0, i = 0; i < length; ++i) { + var key = entries[length + i], value = entries[i]; + ret.set(key, value); + } + return ret; + })(this._values); else { + val = {}; + for (var keyOffset = this.length(), i = 0, len = this.length(); i < len; ++i) val[this._values[i + keyOffset]] = this._values[i]; + } + return this._resolve(val), !0; + } + return !1; + }, PropertiesPromiseArray.prototype.shouldCopyValues = function() { + return !1; + }, PropertiesPromiseArray.prototype.getActualLength = function(len) { + return len >> 1; + }, Promise.prototype.props = function() { + return props(this); + }, Promise.props = function(promises) { + return props(promises); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL, tryConvertToPromise, apiRejection) { + var util = __webpack_require__(17); + function race(promises, parent) { + var promise, maybePromise = tryConvertToPromise(promises); + if (maybePromise instanceof Promise) return (promise = maybePromise).then((function(array) { + return race(array, promise); + })); + if (null === (promises = util.asArray(promises))) return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); + var ret = new Promise(INTERNAL); + void 0 !== parent && ret._propagateFrom(parent, 3); + for (var fulfill = ret._fulfill, reject = ret._reject, i = 0, len = promises.length; i < len; ++i) { + var val = promises[i]; + (void 0 !== val || i in promises) && Promise.cast(val)._then(fulfill, reject, void 0, ret, null); + } + return ret; + } + Promise.race = function(promises) { + return race(promises, void 0); + }, Promise.prototype.race = function() { + return race(this, void 0); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { + var getDomain = Promise._getDomain, util = __webpack_require__(17), tryCatch = util.tryCatch; + function ReductionPromiseArray(promises, fn, initialValue, _each) { + this.constructor$(promises); + var domain = getDomain(); + this._fn = null === domain ? fn : util.domainBind(domain, fn), void 0 !== initialValue && (initialValue = Promise.resolve(initialValue))._attachCancellationCallback(this), + this._initialValue = initialValue, this._currentCancellable = null, this._eachValues = _each === INTERNAL ? Array(this._length) : 0 === _each ? null : void 0, + this._promise._captureStackTrace(), this._init$(void 0, -5); + } + function completed(valueOrReason, array) { + this.isFulfilled() ? array._resolve(valueOrReason) : array._reject(valueOrReason); + } + function reduce(promises, fn, initialValue, _each) { + return "function" != typeof fn ? apiRejection("expecting a function but got " + util.classString(fn)) : new ReductionPromiseArray(promises, fn, initialValue, _each).promise(); + } + function gotAccum(accum) { + this.accum = accum, this.array._gotAccum(accum); + var value = tryConvertToPromise(this.value, this.array._promise); + return value instanceof Promise ? (this.array._currentCancellable = value, value._then(gotValue, void 0, void 0, this, void 0)) : gotValue.call(this, value); + } + function gotValue(value) { + var ret, array = this.array, promise = array._promise, fn = tryCatch(array._fn); + promise._pushContext(), (ret = void 0 !== array._eachValues ? fn.call(promise._boundValue(), value, this.index, this.length) : fn.call(promise._boundValue(), this.accum, value, this.index, this.length)) instanceof Promise && (array._currentCancellable = ret); + var promiseCreated = promise._popContext(); + return debug.checkForgottenReturns(ret, promiseCreated, void 0 !== array._eachValues ? "Promise.each" : "Promise.reduce", promise), + ret; + } + util.inherits(ReductionPromiseArray, PromiseArray), ReductionPromiseArray.prototype._gotAccum = function(accum) { + void 0 !== this._eachValues && null !== this._eachValues && accum !== INTERNAL && this._eachValues.push(accum); + }, ReductionPromiseArray.prototype._eachComplete = function(value) { + return null !== this._eachValues && this._eachValues.push(value), this._eachValues; + }, ReductionPromiseArray.prototype._init = function() {}, ReductionPromiseArray.prototype._resolveEmptyArray = function() { + this._resolve(void 0 !== this._eachValues ? this._eachValues : this._initialValue); + }, ReductionPromiseArray.prototype.shouldCopyValues = function() { + return !1; + }, ReductionPromiseArray.prototype._resolve = function(value) { + this._promise._resolveCallback(value), this._values = null; + }, ReductionPromiseArray.prototype._resultCancelled = function(sender) { + if (sender === this._initialValue) return this._cancel(); + this._isResolved() || (this._resultCancelled$(), this._currentCancellable instanceof Promise && this._currentCancellable.cancel(), + this._initialValue instanceof Promise && this._initialValue.cancel()); + }, ReductionPromiseArray.prototype._iterate = function(values) { + var value, i; + this._values = values; + var length = values.length; + if (void 0 !== this._initialValue ? (value = this._initialValue, i = 0) : (value = Promise.resolve(values[0]), + i = 1), this._currentCancellable = value, !value.isRejected()) for (;i < length; ++i) { + var ctx = { + accum: null, + value: values[i], + index: i, + length: length, + array: this + }; + value = value._then(gotAccum, void 0, void 0, ctx, void 0); + } + void 0 !== this._eachValues && (value = value._then(this._eachComplete, void 0, void 0, this, void 0)), + value._then(completed, completed, void 0, value, this); + }, Promise.prototype.reduce = function(fn, initialValue) { + return reduce(this, fn, initialValue, null); + }, Promise.reduce = function(promises, fn, initialValue, _each) { + return reduce(promises, fn, initialValue, _each); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, PromiseArray, debug) { + var PromiseInspection = Promise.PromiseInspection; + function SettledPromiseArray(values) { + this.constructor$(values); + } + __webpack_require__(17).inherits(SettledPromiseArray, PromiseArray), SettledPromiseArray.prototype._promiseResolved = function(index, inspection) { + return this._values[index] = inspection, ++this._totalResolved >= this._length && (this._resolve(this._values), + !0); + }, SettledPromiseArray.prototype._promiseFulfilled = function(value, index) { + var ret = new PromiseInspection; + return ret._bitField = 33554432, ret._settledValueField = value, this._promiseResolved(index, ret); + }, SettledPromiseArray.prototype._promiseRejected = function(reason, index) { + var ret = new PromiseInspection; + return ret._bitField = 16777216, ret._settledValueField = reason, this._promiseResolved(index, ret); + }, Promise.settle = function(promises) { + return debug.deprecated(".settle()", ".reflect()"), new SettledPromiseArray(promises).promise(); + }, Promise.prototype.settle = function() { + return Promise.settle(this); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, PromiseArray, apiRejection) { + var util = __webpack_require__(17), RangeError = __webpack_require__(58).RangeError, AggregateError = __webpack_require__(58).AggregateError, isArray = util.isArray, CANCELLATION = {}; + function SomePromiseArray(values) { + this.constructor$(values), this._howMany = 0, this._unwrap = !1, this._initialized = !1; + } + function some(promises, howMany) { + if ((0 | howMany) !== howMany || howMany < 0) return apiRejection("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n"); + var ret = new SomePromiseArray(promises), promise = ret.promise(); + return ret.setHowMany(howMany), ret.init(), promise; + } + util.inherits(SomePromiseArray, PromiseArray), SomePromiseArray.prototype._init = function() { + if (this._initialized) if (0 !== this._howMany) { + this._init$(void 0, -5); + var isArrayResolved = isArray(this._values); + !this._isResolved() && isArrayResolved && this._howMany > this._canPossiblyFulfill() && this._reject(this._getRangeError(this.length())); + } else this._resolve([]); + }, SomePromiseArray.prototype.init = function() { + this._initialized = !0, this._init(); + }, SomePromiseArray.prototype.setUnwrap = function() { + this._unwrap = !0; + }, SomePromiseArray.prototype.howMany = function() { + return this._howMany; + }, SomePromiseArray.prototype.setHowMany = function(count) { + this._howMany = count; + }, SomePromiseArray.prototype._promiseFulfilled = function(value) { + return this._addFulfilled(value), this._fulfilled() === this.howMany() && (this._values.length = this.howMany(), + 1 === this.howMany() && this._unwrap ? this._resolve(this._values[0]) : this._resolve(this._values), + !0); + }, SomePromiseArray.prototype._promiseRejected = function(reason) { + return this._addRejected(reason), this._checkOutcome(); + }, SomePromiseArray.prototype._promiseCancelled = function() { + return this._values instanceof Promise || null == this._values ? this._cancel() : (this._addRejected(CANCELLATION), + this._checkOutcome()); + }, SomePromiseArray.prototype._checkOutcome = function() { + if (this.howMany() > this._canPossiblyFulfill()) { + for (var e = new AggregateError, i = this.length(); i < this._values.length; ++i) this._values[i] !== CANCELLATION && e.push(this._values[i]); + return e.length > 0 ? this._reject(e) : this._cancel(), !0; + } + return !1; + }, SomePromiseArray.prototype._fulfilled = function() { + return this._totalResolved; + }, SomePromiseArray.prototype._rejected = function() { + return this._values.length - this.length(); + }, SomePromiseArray.prototype._addRejected = function(reason) { + this._values.push(reason); + }, SomePromiseArray.prototype._addFulfilled = function(value) { + this._values[this._totalResolved++] = value; + }, SomePromiseArray.prototype._canPossiblyFulfill = function() { + return this.length() - this._rejected(); + }, SomePromiseArray.prototype._getRangeError = function(count) { + var message = "Input array must contain at least " + this._howMany + " items but contains only " + count + " items"; + return new RangeError(message); + }, SomePromiseArray.prototype._resolveEmptyArray = function() { + this._reject(this._getRangeError(0)); + }, Promise.some = function(promises, howMany) { + return some(promises, howMany); + }, Promise.prototype.some = function(howMany) { + return some(this, howMany); + }, Promise._SomePromiseArray = SomePromiseArray; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL) { + var PromiseMap = Promise.map; + Promise.prototype.filter = function(fn, options) { + return PromiseMap(this, fn, options, INTERNAL); + }, Promise.filter = function(promises, fn, options) { + return PromiseMap(promises, fn, options, INTERNAL); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise, INTERNAL) { + var PromiseReduce = Promise.reduce, PromiseAll = Promise.all; + function promiseAllThis() { + return PromiseAll(this); + } + Promise.prototype.each = function(fn) { + return PromiseReduce(this, fn, INTERNAL, 0)._then(promiseAllThis, void 0, void 0, this, void 0); + }, Promise.prototype.mapSeries = function(fn) { + return PromiseReduce(this, fn, INTERNAL, INTERNAL); + }, Promise.each = function(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, 0)._then(promiseAllThis, void 0, void 0, promises, void 0); + }, Promise.mapSeries = function(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, INTERNAL); + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(Promise) { + var SomePromiseArray = Promise._SomePromiseArray; + function any(promises) { + var ret = new SomePromiseArray(promises), promise = ret.promise(); + return ret.setHowMany(1), ret.setUnwrap(), ret.init(), promise; + } + Promise.any = function(promises) { + return any(promises); + }, Promise.prototype.any = function() { + return any(this); + }; + }; +}, function(module, exports, __webpack_require__) { + var Stream = __webpack_require__(3), Buffer = __webpack_require__(153); + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + module.exports = function(entry) { + return new Promise((function(resolve, reject) { + var chunks = [], bufferStream = Stream.Transform().on("finish", (function() { + resolve(Buffer.concat(chunks)); + })).on("error", reject); + bufferStream._transform = function(d, e, cb) { + chunks.push(d), cb(); + }, entry.on("error", reject).pipe(bufferStream); + })); + }; +}, function(module, exports, __webpack_require__) { + exports.Abstract = __webpack_require__(242), exports.Reader = __webpack_require__(82), + exports.Writer = __webpack_require__(104), exports.File = { + Reader: __webpack_require__(511), + Writer: __webpack_require__(516) + }, exports.Dir = { + Reader: __webpack_require__(510), + Writer: __webpack_require__(514) + }, exports.Link = { + Reader: __webpack_require__(509), + Writer: __webpack_require__(515) + }, exports.Proxy = { + Reader: __webpack_require__(512), + Writer: __webpack_require__(517) + }, exports.Reader.Dir = exports.DirReader = exports.Dir.Reader, exports.Reader.File = exports.FileReader = exports.File.Reader, + exports.Reader.Link = exports.LinkReader = exports.Link.Reader, exports.Reader.Proxy = exports.ProxyReader = exports.Proxy.Reader, + exports.Writer.Dir = exports.DirWriter = exports.Dir.Writer, exports.Writer.File = exports.FileWriter = exports.File.Writer, + exports.Writer.Link = exports.LinkWriter = exports.Link.Writer, exports.Writer.Proxy = exports.ProxyWriter = exports.Proxy.Writer, + exports.collect = __webpack_require__(243); +}, function(module, exports, __webpack_require__) { + var constants = __webpack_require__(1196), origCwd = process.cwd, cwd = null, platform = process.env.GRACEFUL_FS_PLATFORM || process.platform; + process.cwd = function() { + return cwd || (cwd = origCwd.call(process)), cwd; + }; + try { + process.cwd(); + } catch (er) {} + var chdir = process.chdir; + process.chdir = function(d) { + cwd = null, chdir.call(process, d); + }, module.exports = function(fs) { + var fs$rename, fs$readSync, fs$read; + function chmodFix(orig) { + return orig ? function(target, mode, cb) { + return orig.call(fs, target, mode, (function(er) { + chownErOk(er) && (er = null), cb && cb.apply(this, arguments); + })); + } : orig; + } + function chmodFixSync(orig) { + return orig ? function(target, mode) { + try { + return orig.call(fs, target, mode); + } catch (er) { + if (!chownErOk(er)) throw er; + } + } : orig; + } + function chownFix(orig) { + return orig ? function(target, uid, gid, cb) { + return orig.call(fs, target, uid, gid, (function(er) { + chownErOk(er) && (er = null), cb && cb.apply(this, arguments); + })); + } : orig; + } + function chownFixSync(orig) { + return orig ? function(target, uid, gid) { + try { + return orig.call(fs, target, uid, gid); + } catch (er) { + if (!chownErOk(er)) throw er; + } + } : orig; + } + function statFix(orig) { + return orig ? function(target, cb) { + return orig.call(fs, target, (function(er, stats) { + if (!stats) return cb.apply(this, arguments); + stats.uid < 0 && (stats.uid += 4294967296), stats.gid < 0 && (stats.gid += 4294967296), + cb && cb.apply(this, arguments); + })); + } : orig; + } + function statFixSync(orig) { + return orig ? function(target) { + var stats = orig.call(fs, target); + return stats.uid < 0 && (stats.uid += 4294967296), stats.gid < 0 && (stats.gid += 4294967296), + stats; + } : orig; + } + function chownErOk(er) { + return !er || "ENOSYS" === er.code || !(process.getuid && 0 === process.getuid() || "EINVAL" !== er.code && "EPERM" !== er.code); + } + constants.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./) && (function(fs) { + fs.lchmod = function(path, mode, callback) { + fs.open(path, constants.O_WRONLY | constants.O_SYMLINK, mode, (function(err, fd) { + err ? callback && callback(err) : fs.fchmod(fd, mode, (function(err) { + fs.close(fd, (function(err2) { + callback && callback(err || err2); + })); + })); + })); + }, fs.lchmodSync = function(path, mode) { + var ret, fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode), threw = !0; + try { + ret = fs.fchmodSync(fd, mode), threw = !1; + } finally { + if (threw) try { + fs.closeSync(fd); + } catch (er) {} else fs.closeSync(fd); + } + return ret; + }; + })(fs), fs.lutimes || (function(fs) { + constants.hasOwnProperty("O_SYMLINK") ? (fs.lutimes = function(path, at, mt, cb) { + fs.open(path, constants.O_SYMLINK, (function(er, fd) { + er ? cb && cb(er) : fs.futimes(fd, at, mt, (function(er) { + fs.close(fd, (function(er2) { + cb && cb(er || er2); + })); + })); + })); + }, fs.lutimesSync = function(path, at, mt) { + var ret, fd = fs.openSync(path, constants.O_SYMLINK), threw = !0; + try { + ret = fs.futimesSync(fd, at, mt), threw = !1; + } finally { + if (threw) try { + fs.closeSync(fd); + } catch (er) {} else fs.closeSync(fd); + } + return ret; + }) : (fs.lutimes = function(_a, _b, _c, cb) { + cb && process.nextTick(cb); + }, fs.lutimesSync = function() {}); + })(fs), fs.chown = chownFix(fs.chown), fs.fchown = chownFix(fs.fchown), fs.lchown = chownFix(fs.lchown), + fs.chmod = chmodFix(fs.chmod), fs.fchmod = chmodFix(fs.fchmod), fs.lchmod = chmodFix(fs.lchmod), + fs.chownSync = chownFixSync(fs.chownSync), fs.fchownSync = chownFixSync(fs.fchownSync), + fs.lchownSync = chownFixSync(fs.lchownSync), fs.chmodSync = chmodFixSync(fs.chmodSync), + fs.fchmodSync = chmodFixSync(fs.fchmodSync), fs.lchmodSync = chmodFixSync(fs.lchmodSync), + fs.stat = statFix(fs.stat), fs.fstat = statFix(fs.fstat), fs.lstat = statFix(fs.lstat), + fs.statSync = statFixSync(fs.statSync), fs.fstatSync = statFixSync(fs.fstatSync), + fs.lstatSync = statFixSync(fs.lstatSync), fs.lchmod || (fs.lchmod = function(path, mode, cb) { + cb && process.nextTick(cb); + }, fs.lchmodSync = function() {}), fs.lchown || (fs.lchown = function(path, uid, gid, cb) { + cb && process.nextTick(cb); + }, fs.lchownSync = function() {}), "win32" === platform && (fs.rename = (fs$rename = fs.rename, + function(from, to, cb) { + var start = Date.now(), backoff = 0; + fs$rename(from, to, (function CB(er) { + if (er && ("EACCES" === er.code || "EPERM" === er.code) && Date.now() - start < 6e4) return setTimeout((function() { + fs.stat(to, (function(stater, st) { + stater && "ENOENT" === stater.code ? fs$rename(from, to, CB) : cb(er); + })); + }), backoff), void (backoff < 100 && (backoff += 10)); + cb && cb(er); + })); + })), fs.read = (fs$read = fs.read, function(fd, buffer, offset, length, position, callback_) { + var callback; + if (callback_ && "function" == typeof callback_) { + var eagCounter = 0; + callback = function(er, _, __) { + if (er && "EAGAIN" === er.code && eagCounter < 10) return eagCounter++, fs$read.call(fs, fd, buffer, offset, length, position, callback); + callback_.apply(this, arguments); + }; + } + return fs$read.call(fs, fd, buffer, offset, length, position, callback); + }), fs.readSync = (fs$readSync = fs.readSync, function(fd, buffer, offset, length, position) { + for (var eagCounter = 0; ;) try { + return fs$readSync.call(fs, fd, buffer, offset, length, position); + } catch (er) { + if ("EAGAIN" === er.code && eagCounter < 10) { + eagCounter++; + continue; + } + throw er; + } + }); + }; +}, function(module, exports) { + module.exports = require("constants"); +}, function(module, exports, __webpack_require__) { + var Stream = __webpack_require__(3).Stream; + module.exports = function(fs) { + return { + ReadStream: function ReadStream(path, options) { + if (!(this instanceof ReadStream)) return new ReadStream(path, options); + Stream.call(this); + var self = this; + this.path = path, this.fd = null, this.readable = !0, this.paused = !1, this.flags = "r", + this.mode = 438, this.bufferSize = 65536, options = options || {}; + for (var keys = Object.keys(options), index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } + if (this.encoding && this.setEncoding(this.encoding), void 0 !== this.start) { + if ("number" != typeof this.start) throw TypeError("start must be a Number"); + if (void 0 === this.end) this.end = 1 / 0; else if ("number" != typeof this.end) throw TypeError("end must be a Number"); + if (this.start > this.end) throw new Error("start must be <= end"); + this.pos = this.start; + } + null === this.fd ? fs.open(this.path, this.flags, this.mode, (function(err, fd) { + if (err) return self.emit("error", err), void (self.readable = !1); + self.fd = fd, self.emit("open", fd), self._read(); + })) : process.nextTick((function() { + self._read(); + })); + }, + WriteStream: function WriteStream(path, options) { + if (!(this instanceof WriteStream)) return new WriteStream(path, options); + Stream.call(this), this.path = path, this.fd = null, this.writable = !0, this.flags = "w", + this.encoding = "binary", this.mode = 438, this.bytesWritten = 0, options = options || {}; + for (var keys = Object.keys(options), index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } + if (void 0 !== this.start) { + if ("number" != typeof this.start) throw TypeError("start must be a Number"); + if (this.start < 0) throw new Error("start must be >= zero"); + this.pos = this.start; + } + this.busy = !1, this._queue = [], null === this.fd && (this._open = fs.open, this._queue.push([ this._open, this.path, this.flags, this.mode, void 0 ]), + this.flush()); + } + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(obj) { + if (null === obj || "object" != typeof obj) return obj; + if (obj instanceof Object) var copy = { + __proto__: obj.__proto__ + }; else copy = Object.create(null); + return Object.getOwnPropertyNames(obj).forEach((function(key) { + Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)); + })), copy; + }; +}, function(module, exports, __webpack_require__) { + module.exports = SocketReader; + var inherits = __webpack_require__(7), Reader = __webpack_require__(82); + function SocketReader(props) { + if (!(this instanceof SocketReader)) throw new Error("SocketReader must be called as constructor."); + if ("Socket" !== props.type || !props.Socket) throw new Error("Non-socket type " + props.type); + Reader.call(this, props); + } + inherits(SocketReader, Reader), SocketReader.prototype._read = function() { + this._paused || this._ended || (this.emit("end"), this.emit("close"), this._ended = !0); + }; } ]); \ No newline at end of file diff --git a/setup/Stremio.iss b/setup/Stremio.iss index 47b5fd8..3ad5536 100644 --- a/setup/Stremio.iss +++ b/setup/Stremio.iss @@ -169,6 +169,15 @@ Source: "{#SourcePath}..\bin\ffmpeg.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourcePath}..\bin\ffprobe.exe"; DestDir: "{app}"; Flags: ignoreversion signonce Source: "{#SourcePath}..\bin\stremio-runtime.exe"; DestDir: "{app}"; Flags: ignoreversion signonce Source: "{#SourcePath}..\server.js"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#SourcePath}..\bin\avcodec-58.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#SourcePath}..\bin\avdevice-58.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#SourcePath}..\bin\avfilter-7.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#SourcePath}..\bin\avformat-58.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#SourcePath}..\bin\avutil-56.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#SourcePath}..\bin\postproc-55.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#SourcePath}..\bin\swresample-3.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#SourcePath}..\bin\swscale-5.dll"; DestDir: "{app}"; Flags: ignoreversion + [Registry] ; Associate .torrent files if assoctorrent task is selected