2016-04-06 16:22:30 +00:00
( function ( f ) { if ( typeof exports === "object" && typeof module !== "undefined" ) { module . exports = f ( ) } else if ( typeof define === "function" && define . amd ) { define ( [ ] , f ) } else { var g ; if ( typeof window !== "undefined" ) { g = window } else if ( typeof global !== "undefined" ) { g = global } else if ( typeof self !== "undefined" ) { g = self } else { g = this } g . Syndicate = f ( ) } } ) ( function ( ) { var define , module , exports ; return function e ( t , n , r ) { function s ( o , u ) { if ( ! n [ o ] ) { if ( ! t [ o ] ) { var a = typeof require == "function" && require ; if ( ! u && a ) return a ( o , ! 0 ) ; if ( i ) return i ( o , ! 0 ) ; var f = new Error ( "Cannot find module '" + o + "'" ) ; throw f . code = "MODULE_NOT_FOUND" , f } var l = n [ o ] = { exports : { } } ; t [ o ] [ 0 ] . call ( l . exports , function ( e ) { var n = t [ o ] [ 1 ] [ e ] ; return s ( n ? n : e ) } , l , l . exports , e , t , n , r ) } return n [ o ] . exports } var i = typeof require == "function" && require ; for ( var o = 0 ; o < r . length ; o ++ ) s ( r [ o ] ) ; return s } ( { 1 : [ function ( require , module , exports ) { } , { } ] , 2 : [ function ( require , module , exports ) { ( function ( global ) { "use strict" ; var base64 = require ( "base64-js" ) ; var ieee754 = require ( "ieee754" ) ; var isArray = require ( "isarray" ) ; exports . Buffer = Buffer ; exports . SlowBuffer = SlowBuffer ; exports . INSPECT _MAX _BYTES = 50 ; Buffer . poolSize = 8192 ; var rootParent = { } ; Buffer . TYPED _ARRAY _SUPPORT = global . TYPED _ARRAY _SUPPORT !== undefined ? global . TYPED _ARRAY _SUPPORT : typedArraySupport ( ) ; function typedArraySupport ( ) { try { var arr = new Uint8Array ( 1 ) ; arr . foo = function ( ) { return 42 } ; return arr . foo ( ) === 42 && typeof arr . subarray === "function" && arr . subarray ( 1 , 1 ) . byteLength === 0 } catch ( e ) { return false } } function kMaxLength ( ) { return Buffer . TYPED _ARRAY _SUPPORT ? 2147483647 : 1073741823 } function Buffer ( arg ) { if ( ! ( this instanceof Buffer ) ) { if ( arguments . length > 1 ) return new Buffer ( arg , arguments [ 1 ] ) ; return new Buffer ( arg ) } if ( ! Buffer . TYPED _ARRAY _SUPPORT ) { this . length = 0 ; this . parent = undefined } if ( typeof arg === "number" ) { return fromNumber ( this , arg ) } if ( typeof arg === "string" ) { return fromString ( this , arg , arguments . length > 1 ? arguments [ 1 ] : "utf8" ) } return fromObject ( this , arg ) } Buffer . _augment = function ( arr ) { arr . _ _proto _ _ = Buffer . prototype ; return arr } ; function fromNumber ( that , length ) { that = allocate ( that , length < 0 ? 0 : checked ( length ) | 0 ) ; if ( ! Buffer . TYPED _ARRAY _SUPPORT ) { for ( var i = 0 ; i < length ; i ++ ) { that [ i ] = 0 } } return that } function fromString ( that , string , encoding ) { if ( typeof encoding !== "string" || encoding === "" ) encoding = "utf8" ; var length = byteLength ( string , encoding ) | 0 ; that = allocate ( that , length ) ; that . write ( string , encoding ) ; return that } function fromObject ( that , object ) { if ( Buffer . isBuffer ( object ) ) return fromBuffer ( that , object ) ; if ( isArray ( object ) ) return fromArray ( that , object ) ; if ( object == null ) { throw new TypeError ( "must start with number, buffer, array or string" ) } if ( typeof ArrayBuffer !== "undefined" ) { if ( object . buffer instanceof ArrayBuffer ) { return fromTypedArray ( that , object ) } if ( object instanceof ArrayBuffer ) { return fromArrayBuffer ( that , object ) } } if ( object . length ) return fromArrayLike ( that , object ) ; return fromJsonObject ( that , object ) } function fromBuffer ( that , buffer ) { var length = checked ( buffer . length ) | 0 ; that = allocate ( that , length ) ; buffer . copy ( that , 0 , 0 , length ) ; return that } function fromArray ( that , array ) { var length = checked ( array . length ) | 0 ; that = allocate ( that , length ) ; for ( var i = 0 ; i < length ; i += 1 ) { that [ i ] = array [ i ] & 255 } return that } function fromTypedArray ( that , array ) { var length = checked ( array . length ) | 0 ; that = allocate ( that , length ) ; for ( var i = 0 ; i < length ; i += 1 ) { that [ i ] = array [ i ] & 255 } return that } function fromArrayBuffer ( that , array ) { array . byteLength ; if ( Buffer . TYPED _ARRAY _SUPPORT ) { that = new Uint8Array ( array ) ; that . _ _proto _ _ = Buffer . prototype } else { that = fromTypedArray ( that , new Uint8Array ( array ) ) } return that } function fromArrayLike ( that , array ) { var length = checked ( array . length ) | 0 ; that = allocate ( that , length ) ; for ( var i = 0 ; i < length ; i += 1 ) { that [ i ] = array [ i ] & 255 } return that } function fromJsonObject ( that , object ) { var array ; var length = 0 ; if ( object . type === "Buffer" && isArray ( object . data ) ) { array = object . data ; length = checked ( array . length ) | 0 } that = allocate ( that , length ) ; for ( var i = 0 ; i < length ; i += 1 ) { that [ i ] = array [ i ] & 255 } return that } if ( Buffer . TYPED _ARRAY _SUPPORT ) { Buffer . prototype . _ _proto _ _ = Uint8Array . prototype ; Buffer . _ _proto _ _ = Uint8Array } else { Buffer . prototype . length = undefined ; Buffer . prototype . parent = undefined } function al
return toString . call ( arr ) == "[object Array]" } } , { } ] , 6 : [ function ( require , module , exports ) { "use strict" ; exports . randomBytes = exports . rng = exports . pseudoRandomBytes = exports . prng = require ( "randombytes" ) ; exports . createHash = exports . Hash = require ( "create-hash" ) ; exports . createHmac = exports . Hmac = require ( "create-hmac" ) ; var hashes = [ "sha1" , "sha224" , "sha256" , "sha384" , "sha512" , "md5" , "rmd160" ] . concat ( Object . keys ( require ( "browserify-sign/algos" ) ) ) ; exports . getHashes = function ( ) { return hashes } ; var p = require ( "pbkdf2" ) ; exports . pbkdf2 = p . pbkdf2 ; exports . pbkdf2Sync = p . pbkdf2Sync ; var aes = require ( "browserify-cipher" ) ; [ "Cipher" , "createCipher" , "Cipheriv" , "createCipheriv" , "Decipher" , "createDecipher" , "Decipheriv" , "createDecipheriv" , "getCiphers" , "listCiphers" ] . forEach ( function ( key ) { exports [ key ] = aes [ key ] } ) ; var dh = require ( "diffie-hellman" ) ; [ "DiffieHellmanGroup" , "createDiffieHellmanGroup" , "getDiffieHellman" , "createDiffieHellman" , "DiffieHellman" ] . forEach ( function ( key ) { exports [ key ] = dh [ key ] } ) ; var sign = require ( "browserify-sign" ) ; [ "createSign" , "Sign" , "createVerify" , "Verify" ] . forEach ( function ( key ) { exports [ key ] = sign [ key ] } ) ; exports . createECDH = require ( "create-ecdh" ) ; var publicEncrypt = require ( "public-encrypt" ) ; [ "publicEncrypt" , "privateEncrypt" , "publicDecrypt" , "privateDecrypt" ] . forEach ( function ( key ) { exports [ key ] = publicEncrypt [ key ] } ) ; [ "createCredentials" ] . forEach ( function ( name ) { exports [ name ] = function ( ) { throw new Error ( [ "sorry, " + name + " is not implemented yet" , "we accept pull requests" , "https://github.com/crypto-browserify/crypto-browserify" ] . join ( "\n" ) ) } } ) } , { "browserify-cipher" : 7 , "browserify-sign" : 37 , "browserify-sign/algos" : 36 , "create-ecdh" : 104 , "create-hash" : 130 , "create-hmac" : 143 , "diffie-hellman" : 144 , pbkdf2 : 151 , "public-encrypt" : 152 , randombytes : 197 } ] , 7 : [ function ( require , module , exports ) { var ebtk = require ( "evp_bytestokey" ) ; var aes = require ( "browserify-aes/browser" ) ; var DES = require ( "browserify-des" ) ; var desModes = require ( "browserify-des/modes" ) ; var aesModes = require ( "browserify-aes/modes" ) ; function createCipher ( suite , password ) { var keyLen , ivLen ; suite = suite . toLowerCase ( ) ; if ( aesModes [ suite ] ) { keyLen = aesModes [ suite ] . key ; ivLen = aesModes [ suite ] . iv } else if ( desModes [ suite ] ) { keyLen = desModes [ suite ] . key * 8 ; ivLen = desModes [ suite ] . iv } else { throw new TypeError ( "invalid suite type" ) } var keys = ebtk ( password , false , keyLen , ivLen ) ; return createCipheriv ( suite , keys . key , keys . iv ) } function createDecipher ( suite , password ) { var keyLen , ivLen ; suite = suite . toLowerCase ( ) ; if ( aesModes [ suite ] ) { keyLen = aesModes [ suite ] . key ; ivLen = aesModes [ suite ] . iv } else if ( desModes [ suite ] ) { keyLen = desModes [ suite ] . key * 8 ; ivLen = desModes [ suite ] . iv } else { throw new TypeError ( "invalid suite type" ) } var keys = ebtk ( password , false , keyLen , ivLen ) ; return createDecipheriv ( suite , keys . key , keys . iv ) } function createCipheriv ( suite , key , iv ) { suite = suite . toLowerCase ( ) ; if ( aesModes [ suite ] ) { return aes . createCipheriv ( suite , key , iv ) } else if ( desModes [ suite ] ) { return new DES ( { key : key , iv : iv , mode : suite } ) } else { throw new TypeError ( "invalid suite type" ) } } function createDecipheriv ( suite , key , iv ) { suite = suite . toLowerCase ( ) ; if ( aesModes [ suite ] ) { return aes . createDecipheriv ( suite , key , iv ) } else if ( desModes [ suite ] ) { return new DES ( { key : key , iv : iv , mode : suite , decrypt : true } ) } else { throw new TypeError ( "invalid suite type" ) } } exports . createCipher = exports . Cipher = createCipher ; exports . createCipheriv = exports . Cipheriv = createCipheriv ; exports . createDecipher = exports . Decipher = createDecipher ; exports . createDecipheriv = exports . Decipheriv = createDecipheriv ; function getCiphers ( ) { return Object . keys ( desModes ) . concat ( aes . getCiphers ( ) ) } exports . listCiphers = exports . getCiphers = getCiphers } , { "browserify-aes/browser" : 10 , "browserify-aes/modes" : 14 , "browserify-des" : 25 , "browserify-des/modes" : 26 , evp _bytestokey : 35 } ] , 8 : [ function ( require , module , exports ) { ( function ( Buffer ) { var uint _max = Math . pow ( 2 , 32 ) ; function fixup _uint32 ( x ) { var ret , x _pos ; ret = x > uint _max || x < 0 ? ( x _pos = Math . abs ( x ) % uint _max , x < 0 ? uint _max - x _pos : x _pos ) : x ; return ret } function scrub _vec ( v ) { for ( var i = 0 ; i < v . length ; v ++ ) { v [ i ] = 0 } return false } function Global ( ) { this . SBOX = [ ] ; this . INV _SBOX = [ ] ; this . SUB _MIX = [ [ ] , [ ] , [ ] , [ ] ] ; this . INV _SUB _MIX = [ [ ] , [ ] , [ ] , [ ] ] ; this . init ( ) ; this . RCON = [ 0 , 1 , 2 , 4 , 8 , 16 , 32 , 64 , 128
for ( ; inputOff < max ; inputOff += this . blockSize ) { this . _update ( data , inputOff , out , outputOff ) ; outputOff += this . blockSize } for ( ; inputOff < data . length ; inputOff ++ , this . bufferOff ++ ) this . buffer [ this . bufferOff ] = data [ inputOff ] ; return out } ; Cipher . prototype . _updateDecrypt = function _updateDecrypt ( data ) { var inputOff = 0 ; var outputOff = 0 ; var count = Math . ceil ( ( this . bufferOff + data . length ) / this . blockSize ) - 1 ; var out = new Array ( count * this . blockSize ) ; for ( ; count > 0 ; count -- ) { inputOff += this . _buffer ( data , inputOff ) ; outputOff += this . _flushBuffer ( out , outputOff ) } inputOff += this . _buffer ( data , inputOff ) ; return out } ; Cipher . prototype . final = function final ( buffer ) { var first ; if ( buffer ) first = this . update ( buffer ) ; var last ; if ( this . type === "encrypt" ) last = this . _finalEncrypt ( ) ; else last = this . _finalDecrypt ( ) ; if ( first ) return first . concat ( last ) ; else return last } ; Cipher . prototype . _pad = function _pad ( buffer , off ) { if ( off === 0 ) return false ; while ( off < buffer . length ) buffer [ off ++ ] = 0 ; return true } ; Cipher . prototype . _finalEncrypt = function _finalEncrypt ( ) { if ( ! this . _pad ( this . buffer , this . bufferOff ) ) return [ ] ; var out = new Array ( this . blockSize ) ; this . _update ( this . buffer , 0 , out , 0 ) ; return out } ; Cipher . prototype . _unpad = function _unpad ( buffer ) { return buffer } ; Cipher . prototype . _finalDecrypt = function _finalDecrypt ( ) { assert . equal ( this . bufferOff , this . blockSize , "Not enough data to decrypt" ) ; var out = new Array ( this . blockSize ) ; this . _flushBuffer ( out , 0 ) ; return this . _unpad ( out ) } } , { "minimalistic-assert" : 34 } ] , 31 : [ function ( require , module , exports ) { "use strict" ; var assert = require ( "minimalistic-assert" ) ; var inherits = require ( "inherits" ) ; var des = require ( "../des" ) ; var utils = des . utils ; var Cipher = des . Cipher ; function DESState ( ) { this . tmp = new Array ( 2 ) ; this . keys = null } function DES ( options ) { Cipher . call ( this , options ) ; var state = new DESState ; this . _desState = state ; this . deriveKeys ( state , options . key ) } inherits ( DES , Cipher ) ; module . exports = DES ; DES . create = function create ( options ) { return new DES ( options ) } ; var shiftTable = [ 1 , 1 , 2 , 2 , 2 , 2 , 2 , 2 , 1 , 2 , 2 , 2 , 2 , 2 , 2 , 1 ] ; DES . prototype . deriveKeys = function deriveKeys ( state , key ) { state . keys = new Array ( 16 * 2 ) ; assert . equal ( key . length , this . blockSize , "Invalid key length" ) ; var kL = utils . readUInt32BE ( key , 0 ) ; var kR = utils . readUInt32BE ( key , 4 ) ; utils . pc1 ( kL , kR , state . tmp , 0 ) ; kL = state . tmp [ 0 ] ; kR = state . tmp [ 1 ] ; for ( var i = 0 ; i < state . keys . length ; i += 2 ) { var shift = shiftTable [ i >>> 1 ] ; kL = utils . r28shl ( kL , shift ) ; kR = utils . r28shl ( kR , shift ) ; utils . pc2 ( kL , kR , state . keys , i ) } } ; DES . prototype . _update = function _update ( inp , inOff , out , outOff ) { var state = this . _desState ; var l = utils . readUInt32BE ( inp , inOff ) ; var r = utils . readUInt32BE ( inp , inOff + 4 ) ; utils . ip ( l , r , state . tmp , 0 ) ; l = state . tmp [ 0 ] ; r = state . tmp [ 1 ] ; if ( this . type === "encrypt" ) this . _encrypt ( state , l , r , state . tmp , 0 ) ; else this . _decrypt ( state , l , r , state . tmp , 0 ) ; l = state . tmp [ 0 ] ; r = state . tmp [ 1 ] ; utils . writeUInt32BE ( out , l , outOff ) ; utils . writeUInt32BE ( out , r , outOff + 4 ) } ; DES . prototype . _pad = function _pad ( buffer , off ) { var value = buffer . length - off ; for ( var i = off ; i < buffer . length ; i ++ ) buffer [ i ] = value ; return true } ; DES . prototype . _unpad = function _unpad ( buffer ) { var pad = buffer [ buffer . length - 1 ] ; for ( var i = buffer . length - pad ; i < buffer . length ; i ++ ) assert . equal ( buffer [ i ] , pad ) ; return buffer . slice ( 0 , buffer . length - pad ) } ; DES . prototype . _encrypt = function _encrypt ( state , lStart , rStart , out , off ) { var l = lStart ; var r = rStart ; for ( var i = 0 ; i < state . keys . length ; i += 2 ) { var keyL = state . keys [ i ] ; var keyR = state . keys [ i + 1 ] ; utils . expand ( r , state . tmp , 0 ) ; keyL ^= state . tmp [ 0 ] ; keyR ^= state . tmp [ 1 ] ; var s = utils . substitute ( keyL , keyR ) ; var f = utils . permute ( s ) ; var t = r ; r = ( l ^ f ) >>> 0 ; l = t } utils . rip ( r , l , out , off ) } ; DES . prototype . _decrypt = function _decrypt ( state , lStart , rStart , out , off ) { var l = rStart ; var r = lStart ; for ( var i = state . keys . length - 2 ; i >= 0 ; i -= 2 ) { var keyL = state . keys [ i ] ; var keyR = state . keys [ i + 1 ] ; utils . expand ( l , state . tmp , 0 ) ; keyL ^= state . tmp [ 0 ] ; keyR ^= state . tmp [ 1 ] ; var s = utils . substitute ( keyL , keyR ) ; var f = utils . permute ( s ) ; var t = l ; l = ( r ^ f ) >>> 0 ; r = t } utils . rip ( l , r , out , off ) } } , { "../des" : 28 , inherits : 199 , "minimalistic-assert" : 34 } ] , 32 : [ function ( require , module , exports ) { "use strict" ; var assert = require ( "minimalistic-assert" ) ; var inherits = require ( "inherits" ) ; var des = require ( "../des" ) ; var Cipher = des . Cipher ; var DES = des . DES ; function EDESta
mid += Math . imul ( al0 , bh5 ) ; mid += Math . imul ( ah0 , bl5 ) ; hi += Math . imul ( ah0 , bh5 ) ; var w5 = c + lo + ( ( mid & 8191 ) << 13 ) ; c = hi + ( mid >>> 13 ) + ( w5 >>> 26 ) ; w5 &= 67108863 ; lo = Math . imul ( al6 , bl0 ) ; mid = Math . imul ( al6 , bh0 ) ; mid += Math . imul ( ah6 , bl0 ) ; hi = Math . imul ( ah6 , bh0 ) ; lo += Math . imul ( al5 , bl1 ) ; mid += Math . imul ( al5 , bh1 ) ; mid += Math . imul ( ah5 , bl1 ) ; hi += Math . imul ( ah5 , bh1 ) ; lo += Math . imul ( al4 , bl2 ) ; mid += Math . imul ( al4 , bh2 ) ; mid += Math . imul ( ah4 , bl2 ) ; hi += Math . imul ( ah4 , bh2 ) ; lo += Math . imul ( al3 , bl3 ) ; mid += Math . imul ( al3 , bh3 ) ; mid += Math . imul ( ah3 , bl3 ) ; hi += Math . imul ( ah3 , bh3 ) ; lo += Math . imul ( al2 , bl4 ) ; mid += Math . imul ( al2 , bh4 ) ; mid += Math . imul ( ah2 , bl4 ) ; hi += Math . imul ( ah2 , bh4 ) ; lo += Math . imul ( al1 , bl5 ) ; mid += Math . imul ( al1 , bh5 ) ; mid += Math . imul ( ah1 , bl5 ) ; hi += Math . imul ( ah1 , bh5 ) ; lo += Math . imul ( al0 , bl6 ) ; mid += Math . imul ( al0 , bh6 ) ; mid += Math . imul ( ah0 , bl6 ) ; hi += Math . imul ( ah0 , bh6 ) ; var w6 = c + lo + ( ( mid & 8191 ) << 13 ) ; c = hi + ( mid >>> 13 ) + ( w6 >>> 26 ) ; w6 &= 67108863 ; lo = Math . imul ( al7 , bl0 ) ; mid = Math . imul ( al7 , bh0 ) ; mid += Math . imul ( ah7 , bl0 ) ; hi = Math . imul ( ah7 , bh0 ) ; lo += Math . imul ( al6 , bl1 ) ; mid += Math . imul ( al6 , bh1 ) ; mid += Math . imul ( ah6 , bl1 ) ; hi += Math . imul ( ah6 , bh1 ) ; lo += Math . imul ( al5 , bl2 ) ; mid += Math . imul ( al5 , bh2 ) ; mid += Math . imul ( ah5 , bl2 ) ; hi += Math . imul ( ah5 , bh2 ) ; lo += Math . imul ( al4 , bl3 ) ; mid += Math . imul ( al4 , bh3 ) ; mid += Math . imul ( ah4 , bl3 ) ; hi += Math . imul ( ah4 , bh3 ) ; lo += Math . imul ( al3 , bl4 ) ; mid += Math . imul ( al3 , bh4 ) ; mid += Math . imul ( ah3 , bl4 ) ; hi += Math . imul ( ah3 , bh4 ) ; lo += Math . imul ( al2 , bl5 ) ; mid += Math . imul ( al2 , bh5 ) ; mid += Math . imul ( ah2 , bl5 ) ; hi += Math . imul ( ah2 , bh5 ) ; lo += Math . imul ( al1 , bl6 ) ; mid += Math . imul ( al1 , bh6 ) ; mid += Math . imul ( ah1 , bl6 ) ; hi += Math . imul ( ah1 , bh6 ) ; lo += Math . imul ( al0 , bl7 ) ; mid += Math . imul ( al0 , bh7 ) ; mid += Math . imul ( ah0 , bl7 ) ; hi += Math . imul ( ah0 , bh7 ) ; var w7 = c + lo + ( ( mid & 8191 ) << 13 ) ; c = hi + ( mid >>> 13 ) + ( w7 >>> 26 ) ; w7 &= 67108863 ; lo = Math . imul ( al8 , bl0 ) ; mid = Math . imul ( al8 , bh0 ) ; mid += Math . imul ( ah8 , bl0 ) ; hi = Math . imul ( ah8 , bh0 ) ; lo += Math . imul ( al7 , bl1 ) ; mid += Math . imul ( al7 , bh1 ) ; mid += Math . imul ( ah7 , bl1 ) ; hi += Math . imul ( ah7 , bh1 ) ; lo += Math . imul ( al6 , bl2 ) ; mid += Math . imul ( al6 , bh2 ) ; mid += Math . imul ( ah6 , bl2 ) ; hi += Math . imul ( ah6 , bh2 ) ; lo += Math . imul ( al5 , bl3 ) ; mid += Math . imul ( al5 , bh3 ) ; mid += Math . imul ( ah5 , bl3 ) ; hi += Math . imul ( ah5 , bh3 ) ; lo += Math . imul ( al4 , bl4 ) ; mid += Math . imul ( al4 , bh4 ) ; mid += Math . imul ( ah4 , bl4 ) ; hi += Math . imul ( ah4 , bh4 ) ; lo += Math . imul ( al3 , bl5 ) ; mid += Math . imul ( al3 , bh5 ) ; mid += Math . imul ( ah3 , bl5 ) ; hi += Math . imul ( ah3 , bh5 ) ; lo += Math . imul ( al2 , bl6 ) ; mid += Math . imul ( al2 , bh6 ) ; mid += Math . imul ( ah2 , bl6 ) ; hi += Math . imul ( ah2 , bh6 ) ; lo += Math . imul ( al1 , bl7 ) ; mid += Math . imul ( al1 , bh7 ) ; mid += Math . imul ( ah1 , bl7 ) ; hi += Math . imul ( ah1 , bh7 ) ; lo += Math . imul ( al0 , bl8 ) ; mid += Math . imul ( al0 , bh8 ) ; mid += Math . imul ( ah0 , bl8 ) ; hi += Math . imul ( ah0 , bh8 ) ; var w8 = c + lo + ( ( mid & 8191 ) << 13 ) ; c = hi + ( mid >>> 13 ) + ( w8 >>> 26 ) ; w8 &= 67108863 ; lo = Math . imul ( al9 , bl0 ) ; mid = Math . imul ( al9 , bh0 ) ; mid += Math . imul ( ah9 , bl0 ) ; hi = Math . imul ( ah9 , bh0 ) ; lo += Math . imul ( al8 , bl1 ) ; mid += Math . imul ( al8 , bh1 ) ; mid += Math . imul ( ah8 , bl1 ) ; hi += Math . imul ( ah8 , bh1 ) ; lo += Math . imul ( al7 , bl2 ) ; mid += Math . imul ( al7 , bh2 ) ; mid += Math . imul ( ah7 , bl2 ) ; hi += Math . imul ( ah7 , bh2 ) ; lo += Math . imul ( al6 , bl3 ) ; mid += Math . imul ( al6 , bh3 ) ; mid += Math . imul ( ah6 , bl3 ) ; hi += Math . imul ( ah6 , bh3 ) ; lo += Math . imul ( al5 , bl4 ) ; mid += Math . imul ( al5 , bh4 ) ; mid += Math . imul ( ah5 , bl4 ) ; hi += Math . imul ( ah5 , bh4 ) ; lo += Math . imul ( al4 , bl5 ) ; mid += Math . imul ( al4 , bh5 ) ; mid += Math . imul ( ah4 , bl5 ) ; hi += Math . imul ( ah4 , bh5 ) ; lo += Math . imul ( al3 , bl6 ) ; mid += Math . imul ( al3 , bh6 ) ; mid += Math . imul ( ah3 , bl6 ) ; hi += Math . imul ( ah3 , bh6 ) ; lo += Math . imul ( al2 , bl7 ) ; mid += Math . imul ( al2 , bh7 ) ; mid += Math . imul ( ah2 , bl7 ) ; hi += Math . imul ( ah2 , bh7 ) ; lo += Math . imul ( al1 , bl8 ) ; mid += Math . imul ( al1 , bh8 ) ; mid += Math . imul ( ah1 , bl8 ) ; hi += Math . imul ( ah1 , bh8 ) ; lo += Math . imul ( al0 , bl9 ) ; mid += Math . imul ( al0 , bh9 ) ; mid += Math . imul ( ah0 , bl9 ) ; hi += Math . imul ( ah0 , bh9 ) ; var w9 = c + lo + ( ( mid & 8191 ) << 13 ) ; c = hi + ( mid >>> 13 ) + ( w9 >>> 26 ) ; w9 &= 67108863 ; lo = Math . imul ( al9 , bl1 ) ; mid = Math . imul ( al9 , bh1 ) ; mid += Math . imul ( ah9 , bl1 ) ; hi = Math . imul ( ah9 , bh1 ) ; lo += Math . imul ( al8 , bl2 ) ; mid += Math . imul ( al8 , bh2 ) ; mid += Math . imul ( ah8 , bl2 ) ; hi += Math . imul ( ah8 , bh2 ) ; lo += Math . imul ( al7 , bl3 ) ; mid += Math . imul ( al7 , bh3 ) ; mid += Math . imul ( ah7 , bl3 ) ; hi += Math . imul ( ah7 , bh3 ) ; lo += Math . imul ( al6 , bl4 ) ; mid += Math . imul ( al6 , bh4 ) ; mid += Math . imul ( ah6 , bl4 ) ; hi += Math . imul ( ah6 , bh4 ) ; lo += Math . imul ( al5 , bl5 ) ; mid += Math . imul ( al5 , bh5 ) ; mid += Math . imul ( ah5 , bl5 ) ; hi += Math . imul ( ah5 , bh5 ) ; lo += Math . imul ( al4 , bl6 ) ; mid += Math .
r = r . redMul ( b ) ; c = b . redSqr ( ) ; t = t . redMul ( c ) ; m = i } return r } ; Red . prototype . invm = function invm ( a ) { var inv = a . _invmp ( this . m ) ; if ( inv . negative !== 0 ) { inv . negative = 0 ; return this . imod ( inv ) . redNeg ( ) } else { return this . imod ( inv ) } } ; Red . prototype . pow = function pow ( a , num ) { if ( num . isZero ( ) ) return new BN ( 1 ) ; if ( num . cmpn ( 1 ) === 0 ) return a . clone ( ) ; var windowSize = 4 ; var wnd = new Array ( 1 << windowSize ) ; wnd [ 0 ] = new BN ( 1 ) . toRed ( this ) ; wnd [ 1 ] = a ; for ( var i = 2 ; i < wnd . length ; i ++ ) { wnd [ i ] = this . mul ( wnd [ i - 1 ] , a ) } var res = wnd [ 0 ] ; var current = 0 ; var currentLen = 0 ; var start = num . bitLength ( ) % 26 ; if ( start === 0 ) { start = 26 } for ( i = num . length - 1 ; i >= 0 ; i -- ) { var word = num . words [ i ] ; for ( var j = start - 1 ; j >= 0 ; j -- ) { var bit = word >> j & 1 ; if ( res !== wnd [ 0 ] ) { res = this . sqr ( res ) } if ( bit === 0 && current === 0 ) { currentLen = 0 ; continue } current <<= 1 ; current |= bit ; currentLen ++ ; if ( currentLen !== windowSize && ( i !== 0 || j !== 0 ) ) continue ; res = this . mul ( res , wnd [ current ] ) ; currentLen = 0 ; current = 0 } start = 26 } return res } ; Red . prototype . convertTo = function convertTo ( num ) { var r = num . umod ( this . m ) ; return r === num ? r . clone ( ) : r } ; Red . prototype . convertFrom = function convertFrom ( num ) { var res = num . clone ( ) ; res . red = null ; return res } ; BN . mont = function mont ( num ) { return new Mont ( num ) } ; function Mont ( m ) { Red . call ( this , m ) ; this . shift = this . m . bitLength ( ) ; if ( this . shift % 26 !== 0 ) { this . shift += 26 - this . shift % 26 } this . r = new BN ( 1 ) . iushln ( this . shift ) ; this . r2 = this . imod ( this . r . sqr ( ) ) ; this . rinv = this . r . _invmp ( this . m ) ; this . minv = this . rinv . mul ( this . r ) . isubn ( 1 ) . div ( this . m ) ; this . minv = this . minv . umod ( this . r ) ; this . minv = this . r . sub ( this . minv ) } inherits ( Mont , Red ) ; Mont . prototype . convertTo = function convertTo ( num ) { return this . imod ( num . ushln ( this . shift ) ) } ; Mont . prototype . convertFrom = function convertFrom ( num ) { var r = this . imod ( num . mul ( this . rinv ) ) ; r . red = null ; return r } ; Mont . prototype . imul = function imul ( a , b ) { if ( a . isZero ( ) || b . isZero ( ) ) { a . words [ 0 ] = 0 ; a . length = 1 ; return a } var t = a . imul ( b ) ; var c = t . maskn ( this . shift ) . mul ( this . minv ) . imaskn ( this . shift ) . mul ( this . m ) ; var u = t . isub ( c ) . iushrn ( this . shift ) ; var res = u ; if ( u . cmp ( this . m ) >= 0 ) { res = u . isub ( this . m ) } else if ( u . cmpn ( 0 ) < 0 ) { res = u . iadd ( this . m ) } return res . _forceRed ( this ) } ; Mont . prototype . mul = function mul ( a , b ) { if ( a . isZero ( ) || b . isZero ( ) ) return new BN ( 0 ) . _forceRed ( this ) ; var t = a . mul ( b ) ; var c = t . maskn ( this . shift ) . mul ( this . minv ) . imaskn ( this . shift ) . mul ( this . m ) ; var u = t . isub ( c ) . iushrn ( this . shift ) ; var res = u ; if ( u . cmp ( this . m ) >= 0 ) { res = u . isub ( this . m ) } else if ( u . cmpn ( 0 ) < 0 ) { res = u . iadd ( this . m ) } return res . _forceRed ( this ) } ; Mont . prototype . invm = function invm ( a ) { var res = this . imod ( a . _invmp ( this . m ) . mul ( this . r2 ) ) ; return res . _forceRed ( this ) } } ) ( typeof module === "undefined" || module , this ) } , { buffer : 1 } ] , 40 : [ function ( require , module , exports ) { ( function ( Buffer ) { var bn = require ( "bn.js" ) ; var randomBytes = require ( "randombytes" ) ; module . exports = crt ; function blind ( priv ) { var r = getr ( priv ) ; var blinder = r . toRed ( bn . mont ( priv . modulus ) ) . redPow ( new bn ( priv . publicExponent ) ) . fromRed ( ) ; return { blinder : blinder , unblinder : r . invm ( priv . modulus ) } } function crt ( msg , priv ) { var blinds = blind ( priv ) ; var len = priv . modulus . byteLength ( ) ; var mod = bn . mont ( priv . modulus ) ; var blinded = new bn ( msg ) . mul ( blinds . blinder ) . umod ( priv . modulus ) ; var c1 = blinded . toRed ( bn . mont ( priv . prime1 ) ) ; var c2 = blinded . toRed ( bn . mont ( priv . prime2 ) ) ; var qinv = priv . coefficient ; var p = priv . prime1 ; var q = priv . prime2 ; var m1 = c1 . redPow ( priv . exponent1 ) ; var m2 = c2 . redPow ( priv . exponent2 ) ; m1 = m1 . fromRed ( ) ; m2 = m2 . fromRed ( ) ; var h = m1 . isub ( m2 ) . imul ( qinv ) . umod ( p ) ; h . imul ( q ) ; m2 . iadd ( h ) ; return new Buffer ( m2 . imul ( blinds . unblinder ) . umod ( priv . modulus ) . toArray ( false , len ) ) } crt . getr = getr ; function getr ( priv ) { var len = priv . modulus . byteLength ( ) ; var r = new bn ( randomBytes ( len ) ) ; while ( r . cmp ( priv . modulus ) >= 0 || ! r . umod ( priv . prime1 ) || ! r . umod ( priv . prime2 ) ) { r = new bn ( randomBytes ( len ) ) } return r } } ) . call ( this , require ( "buffer" ) . Buffer ) } , { "bn.js" : 39 , buffer : 2 , randombytes : 197 } ] , 41 : [ function ( require , module , exports ) { "use strict" ; var elliptic = exports ; elliptic . version = require ( "../package.json" ) . version ; elliptic . utils = require ( "./elliptic/utils" ) ; elliptic . rand = require ( "brorand" ) ; elliptic . hmacDRBG = require ( "./elliptic/hmac-drbg" ) ; elliptic . curve = require ( "./elliptic/curve" ) ; elliptic . curves = require ( "./elliptic/curves" ) ; elliptic . ec = require ( "./elliptic/ec" ) ; ell
var nz ; if ( this . zOne ) { var xx = this . x . redSqr ( ) ; var yy = this . y . redSqr ( ) ; var yyyy = yy . redSqr ( ) ; var s = this . x . redAdd ( yy ) . redSqr ( ) . redISub ( xx ) . redISub ( yyyy ) ; s = s . redIAdd ( s ) ; var m = xx . redAdd ( xx ) . redIAdd ( xx ) ; var t = m . redSqr ( ) . redISub ( s ) . redISub ( s ) ; var yyyy8 = yyyy . redIAdd ( yyyy ) ; yyyy8 = yyyy8 . redIAdd ( yyyy8 ) ; yyyy8 = yyyy8 . redIAdd ( yyyy8 ) ; nx = t ; ny = m . redMul ( s . redISub ( t ) ) . redISub ( yyyy8 ) ; nz = this . y . redAdd ( this . y ) } else { var a = this . x . redSqr ( ) ; var b = this . y . redSqr ( ) ; var c = b . redSqr ( ) ; var d = this . x . redAdd ( b ) . redSqr ( ) . redISub ( a ) . redISub ( c ) ; d = d . redIAdd ( d ) ; var e = a . redAdd ( a ) . redIAdd ( a ) ; var f = e . redSqr ( ) ; var c8 = c . redIAdd ( c ) ; c8 = c8 . redIAdd ( c8 ) ; c8 = c8 . redIAdd ( c8 ) ; nx = f . redISub ( d ) . redISub ( d ) ; ny = e . redMul ( d . redISub ( nx ) ) . redISub ( c8 ) ; nz = this . y . redMul ( this . z ) ; nz = nz . redIAdd ( nz ) } return this . curve . jpoint ( nx , ny , nz ) } ; JPoint . prototype . _threeDbl = function _threeDbl ( ) { var nx ; var ny ; var nz ; if ( this . zOne ) { var xx = this . x . redSqr ( ) ; var yy = this . y . redSqr ( ) ; var yyyy = yy . redSqr ( ) ; var s = this . x . redAdd ( yy ) . redSqr ( ) . redISub ( xx ) . redISub ( yyyy ) ; s = s . redIAdd ( s ) ; var m = xx . redAdd ( xx ) . redIAdd ( xx ) . redIAdd ( this . curve . a ) ; var t = m . redSqr ( ) . redISub ( s ) . redISub ( s ) ; nx = t ; var yyyy8 = yyyy . redIAdd ( yyyy ) ; yyyy8 = yyyy8 . redIAdd ( yyyy8 ) ; yyyy8 = yyyy8 . redIAdd ( yyyy8 ) ; ny = m . redMul ( s . redISub ( t ) ) . redISub ( yyyy8 ) ; nz = this . y . redAdd ( this . y ) } else { var delta = this . z . redSqr ( ) ; var gamma = this . y . redSqr ( ) ; var beta = this . x . redMul ( gamma ) ; var alpha = this . x . redSub ( delta ) . redMul ( this . x . redAdd ( delta ) ) ; alpha = alpha . redAdd ( alpha ) . redIAdd ( alpha ) ; var beta4 = beta . redIAdd ( beta ) ; beta4 = beta4 . redIAdd ( beta4 ) ; var beta8 = beta4 . redAdd ( beta4 ) ; nx = alpha . redSqr ( ) . redISub ( beta8 ) ; nz = this . y . redAdd ( this . z ) . redSqr ( ) . redISub ( gamma ) . redISub ( delta ) ; var ggamma8 = gamma . redSqr ( ) ; ggamma8 = ggamma8 . redIAdd ( ggamma8 ) ; ggamma8 = ggamma8 . redIAdd ( ggamma8 ) ; ggamma8 = ggamma8 . redIAdd ( ggamma8 ) ; ny = alpha . redMul ( beta4 . redISub ( nx ) ) . redISub ( ggamma8 ) } return this . curve . jpoint ( nx , ny , nz ) } ; JPoint . prototype . _dbl = function _dbl ( ) { var a = this . curve . a ; var jx = this . x ; var jy = this . y ; var jz = this . z ; var jz4 = jz . redSqr ( ) . redSqr ( ) ; var jx2 = jx . redSqr ( ) ; var jy2 = jy . redSqr ( ) ; var c = jx2 . redAdd ( jx2 ) . redIAdd ( jx2 ) . redIAdd ( a . redMul ( jz4 ) ) ; var jxd4 = jx . redAdd ( jx ) ; jxd4 = jxd4 . redIAdd ( jxd4 ) ; var t1 = jxd4 . redMul ( jy2 ) ; var nx = c . redSqr ( ) . redISub ( t1 . redAdd ( t1 ) ) ; var t2 = t1 . redISub ( nx ) ; var jyd8 = jy2 . redSqr ( ) ; jyd8 = jyd8 . redIAdd ( jyd8 ) ; jyd8 = jyd8 . redIAdd ( jyd8 ) ; jyd8 = jyd8 . redIAdd ( jyd8 ) ; var ny = c . redMul ( t2 ) . redISub ( jyd8 ) ; var nz = jy . redAdd ( jy ) . redMul ( jz ) ; return this . curve . jpoint ( nx , ny , nz ) } ; JPoint . prototype . trpl = function trpl ( ) { if ( ! this . curve . zeroA ) return this . dbl ( ) . add ( this ) ; var xx = this . x . redSqr ( ) ; var yy = this . y . redSqr ( ) ; var zz = this . z . redSqr ( ) ; var yyyy = yy . redSqr ( ) ; var m = xx . redAdd ( xx ) . redIAdd ( xx ) ; var mm = m . redSqr ( ) ; var e = this . x . redAdd ( yy ) . redSqr ( ) . redISub ( xx ) . redISub ( yyyy ) ; e = e . redIAdd ( e ) ; e = e . redAdd ( e ) . redIAdd ( e ) ; e = e . redISub ( mm ) ; var ee = e . redSqr ( ) ; var t = yyyy . redIAdd ( yyyy ) ; t = t . redIAdd ( t ) ; t = t . redIAdd ( t ) ; t = t . redIAdd ( t ) ; var u = m . redIAdd ( e ) . redSqr ( ) . redISub ( mm ) . redISub ( ee ) . redISub ( t ) ; var yyu4 = yy . redMul ( u ) ; yyu4 = yyu4 . redIAdd ( yyu4 ) ; yyu4 = yyu4 . redIAdd ( yyu4 ) ; var nx = this . x . redMul ( ee ) . redISub ( yyu4 ) ; nx = nx . redIAdd ( nx ) ; nx = nx . redIAdd ( nx ) ; var ny = this . y . redMul ( u . redMul ( t . redISub ( u ) ) . redISub ( e . redMul ( ee ) ) ) ; ny = ny . redIAdd ( ny ) ; ny = ny . redIAdd ( ny ) ; ny = ny . redIAdd ( ny ) ; var nz = this . z . redAdd ( e ) . redSqr ( ) . redISub ( zz ) . redISub ( ee ) ; return this . curve . jpoint ( nx , ny , nz ) } ; JPoint . prototype . mul = function mul ( k , kbase ) { k = new BN ( k , kbase ) ; return this . curve . _wnafMul ( this , k ) } ; JPoint . prototype . eq = function eq ( p ) { if ( p . type === "affine" ) return this . eq ( p . toJ ( ) ) ; if ( this === p ) return true ; var z2 = this . z . redSqr ( ) ; var pz2 = p . z . redSqr ( ) ; if ( this . x . redMul ( pz2 ) . redISub ( p . x . redMul ( z2 ) ) . cmpn ( 0 ) !== 0 ) return false ; var z3 = z2 . redMul ( this . z ) ; var pz3 = pz2 . redMul ( p . z ) ; return this . y . redMul ( pz3 ) . redISub ( p . y . redMul ( z3 ) ) . cmpn ( 0 ) === 0 } ; JPoint . prototype . inspect = function inspect ( ) { if ( this . isInfinity ( ) ) return "<EC JPoint Infinity>" ; return "<EC JPoint x: " + this . x . toString ( 16 , 2 ) + " y: " + this . y . toString ( 16 , 2 ) + " z: " + this . z . toString ( 16 , 2 ) + ">" } ; JPoint . prototype . isInfinity = function isInfinity ( ) { return this . z . cmpn ( 0 ) === 0 } } , { "../../elliptic" : 41 , "../curve" : 44 , "bn.js" : 39 , inherits : 199 } ] , 47 : [ function ( require , module , exports ) { "use strict" ; var curves = exports ; var hash = require ( " hash . j
} , naf : { wnd : 7 , points : [ [ "f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9" , "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672" ] , [ "2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4" , "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6" ] , [ "5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc" , "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da" ] , [ "acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe" , "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37" ] , [ "774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb" , "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b" ] , [ "f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8" , "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81" ] , [ "d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e" , "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58" ] , [ "defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34" , "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77" ] , [ "2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c" , "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a" ] , [ "352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5" , "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c" ] , [ "2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f" , "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67" ] , [ "9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714" , "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402" ] , [ "daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729" , "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55" ] , [ "c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db" , "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482" ] , [ "6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4" , "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82" ] , [ "1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5" , "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396" ] , [ "605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479" , "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49" ] , [ "62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d" , "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf" ] , [ "80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f" , "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a" ] , [ "7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb" , "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7" ] , [ "d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9" , "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933" ] , [ "49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963" , "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a" ] , [ "77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74" , "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6" ] , [ "f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530" , "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37" ] , [ "463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b" , "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e" ] , [ "f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247" , "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6" ] , [ "caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1" , "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476" ] , [ "2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120" , "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40" ] , [ "7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435" , "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61" ] , [ "754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18" , "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683" ] , [
} } ; SHA512 . prototype . _update = function _update ( msg , start ) { this . _prepareBlock ( msg , start ) ; var W = this . W ; var ah = this . h [ 0 ] ; var al = this . h [ 1 ] ; var bh = this . h [ 2 ] ; var bl = this . h [ 3 ] ; var ch = this . h [ 4 ] ; var cl = this . h [ 5 ] ; var dh = this . h [ 6 ] ; var dl = this . h [ 7 ] ; var eh = this . h [ 8 ] ; var el = this . h [ 9 ] ; var fh = this . h [ 10 ] ; var fl = this . h [ 11 ] ; var gh = this . h [ 12 ] ; var gl = this . h [ 13 ] ; var hh = this . h [ 14 ] ; var hl = this . h [ 15 ] ; assert ( this . k . length === W . length ) ; for ( var i = 0 ; i < W . length ; i += 2 ) { var c0 _hi = hh ; var c0 _lo = hl ; var c1 _hi = s1 _512 _hi ( eh , el ) ; var c1 _lo = s1 _512 _lo ( eh , el ) ; var c2 _hi = ch64 _hi ( eh , el , fh , fl , gh , gl ) ; var c2 _lo = ch64 _lo ( eh , el , fh , fl , gh , gl ) ; var c3 _hi = this . k [ i ] ; var c3 _lo = this . k [ i + 1 ] ; var c4 _hi = W [ i ] ; var c4 _lo = W [ i + 1 ] ; var T1 _hi = sum64 _5 _hi ( c0 _hi , c0 _lo , c1 _hi , c1 _lo , c2 _hi , c2 _lo , c3 _hi , c3 _lo , c4 _hi , c4 _lo ) ; var T1 _lo = sum64 _5 _lo ( c0 _hi , c0 _lo , c1 _hi , c1 _lo , c2 _hi , c2 _lo , c3 _hi , c3 _lo , c4 _hi , c4 _lo ) ; var c0 _hi = s0 _512 _hi ( ah , al ) ; var c0 _lo = s0 _512 _lo ( ah , al ) ; var c1 _hi = maj64 _hi ( ah , al , bh , bl , ch , cl ) ; var c1 _lo = maj64 _lo ( ah , al , bh , bl , ch , cl ) ; var T2 _hi = sum64 _hi ( c0 _hi , c0 _lo , c1 _hi , c1 _lo ) ; var T2 _lo = sum64 _lo ( c0 _hi , c0 _lo , c1 _hi , c1 _lo ) ; hh = gh ; hl = gl ; gh = fh ; gl = fl ; fh = eh ; fl = el ; eh = sum64 _hi ( dh , dl , T1 _hi , T1 _lo ) ; el = sum64 _lo ( dl , dl , T1 _hi , T1 _lo ) ; dh = ch ; dl = cl ; ch = bh ; cl = bl ; bh = ah ; bl = al ; ah = sum64 _hi ( T1 _hi , T1 _lo , T2 _hi , T2 _lo ) ; al = sum64 _lo ( T1 _hi , T1 _lo , T2 _hi , T2 _lo ) } sum64 ( this . h , 0 , ah , al ) ; sum64 ( this . h , 2 , bh , bl ) ; sum64 ( this . h , 4 , ch , cl ) ; sum64 ( this . h , 6 , dh , dl ) ; sum64 ( this . h , 8 , eh , el ) ; sum64 ( this . h , 10 , fh , fl ) ; sum64 ( this . h , 12 , gh , gl ) ; sum64 ( this . h , 14 , hh , hl ) } ; SHA512 . prototype . _digest = function digest ( enc ) { if ( enc === "hex" ) return utils . toHex32 ( this . h , "big" ) ; else return utils . split32 ( this . h , "big" ) } ; function SHA384 ( ) { if ( ! ( this instanceof SHA384 ) ) return new SHA384 ; SHA512 . call ( this ) ; this . h = [ 3418070365 , 3238371032 , 1654270250 , 914150663 , 2438529370 , 812702999 , 355462360 , 4144912697 , 1731405415 , 4290775857 , 2394180231 , 1750603025 , 3675008525 , 1694076839 , 1203062813 , 3204075428 ] } utils . inherits ( SHA384 , SHA512 ) ; exports . sha384 = SHA384 ; SHA384 . blockSize = 1024 ; SHA384 . outSize = 384 ; SHA384 . hmacStrength = 192 ; SHA384 . padLength = 128 ; SHA384 . prototype . _digest = function digest ( enc ) { if ( enc === "hex" ) return utils . toHex32 ( this . h . slice ( 0 , 12 ) , "big" ) ; else return utils . split32 ( this . h . slice ( 0 , 12 ) , "big" ) } ; function SHA1 ( ) { if ( ! ( this instanceof SHA1 ) ) return new SHA1 ; BlockHash . call ( this ) ; this . h = [ 1732584193 , 4023233417 , 2562383102 , 271733878 , 3285377520 ] ; this . W = new Array ( 80 ) } utils . inherits ( SHA1 , BlockHash ) ; exports . sha1 = SHA1 ; SHA1 . blockSize = 512 ; SHA1 . outSize = 160 ; SHA1 . hmacStrength = 80 ; SHA1 . padLength = 64 ; SHA1 . prototype . _update = function _update ( msg , start ) { var W = this . W ; for ( var i = 0 ; i < 16 ; i ++ ) W [ i ] = msg [ start + i ] ; for ( ; i < W . length ; i ++ ) W [ i ] = rotl32 ( W [ i - 3 ] ^ W [ i - 8 ] ^ W [ i - 14 ] ^ W [ i - 16 ] , 1 ) ; var a = this . h [ 0 ] ; var b = this . h [ 1 ] ; var c = this . h [ 2 ] ; var d = this . h [ 3 ] ; var e = this . h [ 4 ] ; for ( var i = 0 ; i < W . length ; i ++ ) { var s = ~ ~ ( i / 20 ) ; var t = sum32 _5 ( rotl32 ( a , 5 ) , ft _1 ( s , b , c , d ) , e , W [ i ] , sha1 _K [ s ] ) ; e = d ; d = c ; c = rotl32 ( b , 30 ) ; b = a ; a = t } this . h [ 0 ] = sum32 ( this . h [ 0 ] , a ) ; this . h [ 1 ] = sum32 ( this . h [ 1 ] , b ) ; this . h [ 2 ] = sum32 ( this . h [ 2 ] , c ) ; this . h [ 3 ] = sum32 ( this . h [ 3 ] , d ) ; this . h [ 4 ] = sum32 ( this . h [ 4 ] , e ) } ; SHA1 . prototype . _digest = function digest ( enc ) { if ( enc === "hex" ) return utils . toHex32 ( this . h , "big" ) ; else return utils . split32 ( this . h , "big" ) } ; function ch32 ( x , y , z ) { return x & y ^ ~ x & z } function maj32 ( x , y , z ) { return x & y ^ x & z ^ y & z } function p32 ( x , y , z ) { return x ^ y ^ z } function s0 _256 ( x ) { return rotr32 ( x , 2 ) ^ rotr32 ( x , 13 ) ^ rotr32 ( x , 22 ) } function s1 _256 ( x ) { return rotr32 ( x , 6 ) ^ rotr32 ( x , 11 ) ^ rotr32 ( x , 25 ) } function g0 _256 ( x ) { return rotr32 ( x , 7 ) ^ rotr32 ( x , 18 ) ^ x >>> 3 } function g1 _256 ( x ) { return rotr32 ( x , 17 ) ^ rotr32 ( x , 19 ) ^ x >>> 10 } function ft _1 ( s , x , y , z ) { if ( s === 0 ) return ch32 ( x , y , z ) ; if ( s === 1 || s === 3 ) return p32 ( x , y , z ) ; if ( s === 2 ) return maj32 ( x , y , z ) } function ch64 _hi ( xh , xl , yh , yl , zh , zl ) { var r = xh & yh ^ ~ xh & zh ; if ( r < 0 ) r += 4294967296 ; return r } function ch64 _lo ( xh , xl , yh , yl , zh , zl ) { var r = xl & yl ^ ~ xl & zl ; if ( r < 0 ) r += 4294967296 ; return r } function maj64 _hi ( xh , xl , yh , yl , zh , zl ) { var r = xh & yh ^ xh & zh ^ yh & zh ; if ( r < 0 ) r += 4294967296 ; return r } function maj64 _lo ( xh , xl , yh , yl , zh , zl ) { var r = xl & yl ^ xl & zl ^ yl & zl ; if ( r < 0 ) r += 4294967296 ; return r } function s0 _512 _hi ( xh , xl ) { var c0 _hi = rotr64 _hi ( xh , xl , 28 ) ; var c1 _hi = rotr64 _hi ( xl , xh , 2 ) ; var c2 _hi = rotr64 _hi ( xl , xh , 7 ) ; var r = c0 _hi ^ c1 _hi ^ c2 _hi ; if ( r < 0 ) r += 4294967296 ; return r } function s0 _512 _lo (
var child = this . clone ( ) ; child . _baseState . implicit = null ; content = this . _createEncoderBuffer ( data . map ( function ( item ) { var state = this . _baseState ; return this . _getUse ( state . args [ 0 ] , data ) . _encode ( item , reporter ) } , child ) ) } else if ( state . use !== null ) { result = this . _getUse ( state . use , parent ) . _encode ( data , reporter ) } else { content = this . _encodePrimitive ( state . tag , data ) ; primitive = true } } var result ; if ( ! state . any && state . choice === null ) { var tag = state . implicit !== null ? state . implicit : state . tag ; var cls = state . implicit === null ? "universal" : "context" ; if ( tag === null ) { if ( state . use === null ) reporter . error ( "Tag could be ommited only for .use()" ) } else { if ( state . use === null ) result = this . _encodeComposite ( tag , primitive , cls , content ) } } if ( state . explicit !== null ) result = this . _encodeComposite ( state . explicit , false , "context" , result ) ; return result } ; Node . prototype . _encodeChoice = function encodeChoice ( data , reporter ) { var state = this . _baseState ; var node = state . choice [ data . type ] ; if ( ! node ) { assert ( false , data . type + " not found in " + JSON . stringify ( Object . keys ( state . choice ) ) ) } return node . _encode ( data . value , reporter ) } ; Node . prototype . _encodePrimitive = function encodePrimitive ( tag , data ) { var state = this . _baseState ; if ( tag === "octstr" || tag === "bitstr" || tag === "ia5str" ) return this . _encodeStr ( data , tag ) ; else if ( tag === "utf8str" || tag === "bmpstr" ) return this . _encodeStr ( data , tag ) ; else if ( tag === "numstr" || tag === "printstr" ) return this . _encodeStr ( data , tag ) ; else if ( tag === "objid" && state . args ) return this . _encodeObjid ( data , state . reverseArgs [ 0 ] , state . args [ 1 ] ) ; else if ( tag === "objid" ) return this . _encodeObjid ( data , null , null ) ; else if ( tag === "gentime" || tag === "utctime" ) return this . _encodeTime ( data , tag ) ; else if ( tag === "null_" ) return this . _encodeNull ( ) ; else if ( tag === "int" || tag === "enum" ) return this . _encodeInt ( data , state . args && state . reverseArgs [ 0 ] ) ; else if ( tag === "bool" ) return this . _encodeBool ( data ) ; else throw new Error ( "Unsupported tag: " + tag ) } ; Node . prototype . _isNumstr = function isNumstr ( str ) { return /^[0-9 ]*$/ . test ( str ) } ; Node . prototype . _isPrintstr = function isPrintstr ( str ) { return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/ . test ( str ) } } , { "../base" : 72 , "minimalistic-assert" : 83 } ] , 74 : [ function ( require , module , exports ) { var inherits = require ( "inherits" ) ; function Reporter ( options ) { this . _reporterState = { obj : null , path : [ ] , options : options || { } , errors : [ ] } } exports . Reporter = Reporter ; Reporter . prototype . isError = function isError ( obj ) { return obj instanceof ReporterError } ; Reporter . prototype . save = function save ( ) { var state = this . _reporterState ; return { obj : state . obj , pathLen : state . path . length } } ; Reporter . prototype . restore = function restore ( data ) { var state = this . _reporterState ; state . obj = data . obj ; state . path = state . path . slice ( 0 , data . pathLen ) } ; Reporter . prototype . enterKey = function enterKey ( key ) { return this . _reporterState . path . push ( key ) } ; Reporter . prototype . leaveKey = function leaveKey ( index , key , value ) { var state = this . _reporterState ; state . path = state . path . slice ( 0 , index - 1 ) ; if ( state . obj !== null ) state . obj [ key ] = value } ; Reporter . prototype . enterObject = function enterObject ( ) { var state = this . _reporterState ; var prev = state . obj ; state . obj = { } ; return prev } ; Reporter . prototype . leaveObject = function leaveObject ( prev ) { var state = this . _reporterState ; var now = state . obj ; state . obj = prev ; return now } ; Reporter . prototype . error = function error ( msg ) { var err ; var state = this . _reporterState ; var inherited = msg instanceof ReporterError ; if ( inherited ) { err = msg } else { err = new ReporterError ( state . path . map ( function ( elem ) { return "[" + JSON . stringify ( elem ) + "]" } ) . join ( "" ) , msg . message || msg , msg . stack ) } if ( ! state . options . partial ) throw err ; if ( ! inherited ) state . errors . push ( err ) ; return err } ; Reporter . prototype . wrapResult = function wrapResult ( result ) { var state = this . _reporterState ; if ( ! state . options . partial ) return result ; return { result : this . isError ( result ) ? null : result , errors : state . errors } } ; function ReporterError ( path , msg ) { this . path = path ; this . rethrow ( msg ) } inherits ( ReporterError , Error ) ; ReporterError . prototype . rethrow = function rethrow ( msg ) { this . message = msg + " at: " + ( this . path || "(shallow)" ) ; Error . captureStackTrace ( this , ReporterError ) ; return this } } , { inherits : 199 } ] , 75 : [ function ( require , module , exports ) { var constants = require ( "../constants" ) ; exports . tagClass = { 0 : " universa
} , { dup : 63 , inherits : 199 } ] , 129 : [ function ( require , module , exports ) { arguments [ 4 ] [ 64 ] [ 0 ] . apply ( exports , arguments ) } , { dup : 64 } ] , 130 : [ function ( require , module , exports ) { ( function ( Buffer ) { "use strict" ; var inherits = require ( "inherits" ) ; var md5 = require ( "./md5" ) ; var rmd160 = require ( "ripemd160" ) ; var sha = require ( "sha.js" ) ; var Base = require ( "cipher-base" ) ; function HashNoConstructor ( hash ) { Base . call ( this , "digest" ) ; this . _hash = hash ; this . buffers = [ ] } inherits ( HashNoConstructor , Base ) ; HashNoConstructor . prototype . _update = function ( data ) { this . buffers . push ( data ) } ; HashNoConstructor . prototype . _final = function ( ) { var buf = Buffer . concat ( this . buffers ) ; var r = this . _hash ( buf ) ; this . buffers = null ; return r } ; function Hash ( hash ) { Base . call ( this , "digest" ) ; this . _hash = hash } inherits ( Hash , Base ) ; Hash . prototype . _update = function ( data ) { this . _hash . update ( data ) } ; Hash . prototype . _final = function ( ) { return this . _hash . digest ( ) } ; module . exports = function createHash ( alg ) { alg = alg . toLowerCase ( ) ; if ( "md5" === alg ) return new HashNoConstructor ( md5 ) ; if ( "rmd160" === alg || "ripemd160" === alg ) return new HashNoConstructor ( rmd160 ) ; return new Hash ( sha ( alg ) ) } } ) . call ( this , require ( "buffer" ) . Buffer ) } , { "./md5" : 132 , buffer : 2 , "cipher-base" : 133 , inherits : 199 , ripemd160 : 134 , "sha.js" : 136 } ] , 131 : [ function ( require , module , exports ) { ( function ( Buffer ) { "use strict" ; var intSize = 4 ; var zeroBuffer = new Buffer ( intSize ) ; zeroBuffer . fill ( 0 ) ; var chrsz = 8 ; function toArray ( buf , bigEndian ) { if ( buf . length % intSize !== 0 ) { var len = buf . length + ( intSize - buf . length % intSize ) ; buf = Buffer . concat ( [ buf , zeroBuffer ] , len ) } var arr = [ ] ; var fn = bigEndian ? buf . readInt32BE : buf . readInt32LE ; for ( var i = 0 ; i < buf . length ; i += intSize ) { arr . push ( fn . call ( buf , i ) ) } return arr } function toBuffer ( arr , size , bigEndian ) { var buf = new Buffer ( size ) ; var fn = bigEndian ? buf . writeInt32BE : buf . writeInt32LE ; for ( var i = 0 ; i < arr . length ; i ++ ) { fn . call ( buf , arr [ i ] , i * 4 , true ) } return buf } function hash ( buf , fn , hashSize , bigEndian ) { if ( ! Buffer . isBuffer ( buf ) ) buf = new Buffer ( buf ) ; var arr = fn ( toArray ( buf , bigEndian ) , buf . length * chrsz ) ; return toBuffer ( arr , hashSize , bigEndian ) } exports . hash = hash } ) . call ( this , require ( "buffer" ) . Buffer ) } , { buffer : 2 } ] , 132 : [ function ( require , module , exports ) { "use strict" ; var helpers = require ( "./helpers" ) ; function core _md5 ( x , len ) { x [ len >> 5 ] |= 128 << len % 32 ; x [ ( len + 64 >>> 9 << 4 ) + 14 ] = len ; var a = 1732584193 ; var b = - 271733879 ; var c = - 1732584194 ; var d = 271733878 ; for ( var i = 0 ; i < x . length ; i += 16 ) { var olda = a ; var oldb = b ; var oldc = c ; var oldd = d ; a = md5 _ff ( a , b , c , d , x [ i + 0 ] , 7 , - 680876936 ) ; d = md5 _ff ( d , a , b , c , x [ i + 1 ] , 12 , - 389564586 ) ; c = md5 _ff ( c , d , a , b , x [ i + 2 ] , 17 , 606105819 ) ; b = md5 _ff ( b , c , d , a , x [ i + 3 ] , 22 , - 1044525330 ) ; a = md5 _ff ( a , b , c , d , x [ i + 4 ] , 7 , - 176418897 ) ; d = md5 _ff ( d , a , b , c , x [ i + 5 ] , 12 , 1200080426 ) ; c = md5 _ff ( c , d , a , b , x [ i + 6 ] , 17 , - 1473231341 ) ; b = md5 _ff ( b , c , d , a , x [ i + 7 ] , 22 , - 45705983 ) ; a = md5 _ff ( a , b , c , d , x [ i + 8 ] , 7 , 1770035416 ) ; d = md5 _ff ( d , a , b , c , x [ i + 9 ] , 12 , - 1958414417 ) ; c = md5 _ff ( c , d , a , b , x [ i + 10 ] , 17 , - 42063 ) ; b = md5 _ff ( b , c , d , a , x [ i + 11 ] , 22 , - 1990404162 ) ; a = md5 _ff ( a , b , c , d , x [ i + 12 ] , 7 , 1804603682 ) ; d = md5 _ff ( d , a , b , c , x [ i + 13 ] , 12 , - 40341101 ) ; c = md5 _ff ( c , d , a , b , x [ i + 14 ] , 17 , - 1502002290 ) ; b = md5 _ff ( b , c , d , a , x [ i + 15 ] , 22 , 1236535329 ) ; a = md5 _gg ( a , b , c , d , x [ i + 1 ] , 5 , - 165796510 ) ; d = md5 _gg ( d , a , b , c , x [ i + 6 ] , 9 , - 1069501632 ) ; c = md5 _gg ( c , d , a , b , x [ i + 11 ] , 14 , 643717713 ) ; b = md5 _gg ( b , c , d , a , x [ i + 0 ] , 20 , - 373897302 ) ; a = md5 _gg ( a , b , c , d , x [ i + 5 ] , 5 , - 701558691 ) ; d = md5 _gg ( d , a , b , c , x [ i + 10 ] , 9 , 38016083 ) ; c = md5 _gg ( c , d , a , b , x [ i + 15 ] , 14 , - 660478335 ) ; b = md5 _gg ( b , c , d , a , x [ i + 4 ] , 20 , - 405537848 ) ; a = md5 _gg ( a , b , c , d , x [ i + 9 ] , 5 , 568446438 ) ; d = md5 _gg ( d , a , b , c , x [ i + 14 ] , 9 , - 1019803690 ) ; c = md5 _gg ( c , d , a , b , x [ i + 3 ] , 14 , - 187363961 ) ; b = md5 _gg ( b , c , d , a , x [ i + 8 ] , 20 , 1163531501 ) ; a = md5 _gg ( a , b , c , d , x [ i + 13 ] , 5 , - 1444681467 ) ; d = md5 _gg ( d , a , b , c , x [ i + 2 ] , 9 , - 51403784 ) ; c = md5 _gg ( c , d , a , b , x [ i + 7 ] , 14 , 1735328473 ) ; b = md5 _gg ( b , c , d , a , x [ i + 12 ] , 20 , - 1926607734 ) ; a = md5 _hh ( a , b , c , d , x [ i + 5 ] , 4 , - 378558 ) ; d = md5 _hh ( d , a , b , c , x [ i + 8 ] , 11 , - 2022574463 ) ; c = md5 _hh ( c , d , a , b , x [ i + 11 ] , 16 , 1839030562 ) ; b = md5 _hh ( b , c , d , a , x [ i + 14 ] , 23 , - 35309556 ) ; a = md5 _hh ( a , b , c , d , x [ i + 1 ] , 4 , - 1530992060 ) ; d = md5 _hh ( d , a , b , c , x [ i + 4 ] , 11 , 1272893353 ) ; c = md5 _hh ( c , d , a , b , x [ i + 7 ] , 16 , - 155497632 ) ; b = md5 _hh ( b , c , d , a , x [ i + 10 ] , 23 , - 1094730640 ) ; a = md5 _hh ( a , b , c , d , x [ i + 13 ] , 4 , 681279174 ) ; d = md5 _hh ( d , a , b , c , x [ i + 0 ] , 11 , - 358537222 ) ; c = md5 _hh ( c , d , a , b , x [ i + 3 ] , 16 , - 722521979 ) ; b = md5 _hh ( b , c , d , a , x [ i + 6 ] , 23 , 76029189 ) ; a = md5 _hh ( a , b , c , d , x [ i
} , modp16 : { gen : "02" , prime : "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff" } , modp17 : { gen : "02" , prime : "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff" } , modp18 : { gen : "02" , prime : " ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef2963
} else { state . length += state . objectMode ? 1 : chunk . length ; if ( addToFront ) state . buffer . unshift ( chunk ) ; else state . buffer . push ( chunk ) ; if ( state . needReadable ) emitReadable ( stream ) } maybeReadMore ( stream , state ) } } else if ( ! addToFront ) { state . reading = false } return needMoreData ( state ) } function needMoreData ( state ) { return ! state . ended && ( state . needReadable || state . length < state . highWaterMark || state . length === 0 ) } Readable . prototype . setEncoding = function ( enc ) { if ( ! StringDecoder ) StringDecoder = require ( "string_decoder/" ) . StringDecoder ; this . _readableState . decoder = new StringDecoder ( enc ) ; this . _readableState . encoding = enc ; return this } ; var MAX _HWM = 8388608 ; function computeNewHighWaterMark ( n ) { if ( n >= MAX _HWM ) { n = MAX _HWM } else { n -- ; n |= n >>> 1 ; n |= n >>> 2 ; n |= n >>> 4 ; n |= n >>> 8 ; n |= n >>> 16 ; n ++ } return n } function howMuchToRead ( n , state ) { if ( state . length === 0 && state . ended ) return 0 ; if ( state . objectMode ) return n === 0 ? 0 : 1 ; if ( n === null || isNaN ( n ) ) { if ( state . flowing && state . buffer . length ) return state . buffer [ 0 ] . length ; else return state . length } if ( n <= 0 ) return 0 ; if ( n > state . highWaterMark ) state . highWaterMark = computeNewHighWaterMark ( n ) ; if ( n > state . length ) { if ( ! state . ended ) { state . needReadable = true ; return 0 } else { return state . length } } return n } Readable . prototype . read = function ( n ) { debug ( "read" , n ) ; var state = this . _readableState ; var nOrig = n ; if ( typeof n !== "number" || n > 0 ) state . emittedReadable = false ; if ( n === 0 && state . needReadable && ( state . length >= state . highWaterMark || state . ended ) ) { debug ( "read: emitReadable" , state . length , state . ended ) ; if ( state . length === 0 && state . ended ) endReadable ( this ) ; else emitReadable ( this ) ; return null } n = howMuchToRead ( n , state ) ; if ( n === 0 && state . ended ) { if ( state . length === 0 ) endReadable ( this ) ; return null } var doRead = state . needReadable ; debug ( "need readable" , doRead ) ; if ( state . length === 0 || state . length - n < state . highWaterMark ) { doRead = true ; debug ( "length less than watermark" , doRead ) } if ( state . ended || state . reading ) { doRead = false ; debug ( "reading or ended" , doRead ) } if ( doRead ) { debug ( "do read" ) ; state . reading = true ; state . sync = true ; if ( state . length === 0 ) state . needReadable = true ; this . _read ( state . highWaterMark ) ; state . sync = false } if ( doRead && ! state . reading ) n = howMuchToRead ( nOrig , state ) ; var ret ; if ( n > 0 ) ret = fromList ( n , state ) ; else ret = null ; if ( ret === null ) { state . needReadable = true ; n = 0 } state . length -= n ; if ( state . length === 0 && ! state . ended ) state . needReadable = true ; if ( nOrig !== n && state . ended && state . length === 0 ) endReadable ( this ) ; if ( ret !== null ) this . emit ( "data" , ret ) ; return ret } ; function chunkInvalid ( state , chunk ) { var er = null ; if ( ! Buffer . isBuffer ( chunk ) && typeof chunk !== "string" && chunk !== null && chunk !== undefined && ! state . objectMode ) { er = new TypeError ( "Invalid non-string/buffer chunk" ) } return er } function onEofChunk ( stream , state ) { if ( state . ended ) return ; if ( state . decoder ) { var chunk = state . decoder . end ( ) ; if ( chunk && chunk . length ) { state . buffer . push ( chunk ) ; state . length += state . objectMode ? 1 : chunk . length } } state . ended = true ; emitReadable ( stream ) } function emitReadable ( stream ) { var state = stream . _readableState ; state . needReadable = false ; if ( ! state . emittedReadable ) { debug ( "emitReadable" , state . flowing ) ; state . emittedReadable = true ; if ( state . sync ) processNextTick ( emitReadable _ , stream ) ; else emitReadable _ ( stream ) } } function emitReadable _ ( stream ) { debug ( "emit readable" ) ; stream . emit ( "readable" ) ; flow ( stream ) } function maybeReadMore ( stream , state ) { if ( ! state . readingMore ) { state . readingMore = true ; processNextTick ( maybeReadMore _ , stream , state ) } } function maybeReadMore _ ( stream , state ) { var len = state . length ; while ( ! state . reading && ! state . flowing && ! state . ended && state . length < state . highWaterMark ) { debug ( "maybeReadMore read 0" ) ; stream . read ( 0 ) ; if ( len === state . length ) break ; else len = state . length } state . readingMore = false } Readable . prototype . _read = function ( n ) { this . emit ( "error" , new Error ( "not implemented" ) ) } ; Readable . prototype . pipe = function ( dest , pipeOpts ) { var src = this ; var state = this . _readableState ; switch ( state . pipesCount ) { case 0 : state . pipes = dest ; break ; case 1 : state . pipes = [ state . pipes , dest ] ; break ; default : state . pipes . push ( dest ) ; break } state . pipesCount += 1 ; debug ( "pipe count=%d opts=%j" , state . pipesCount , pipeOpts ) ; var doEnd = ( ! pipeOpts || pipeOpts . end !== false ) && dest !== process . stdout && dest !== process . stderr ; var endFn = doEnd ? onend : cleanup ; if ( state . endEmit
} } ) ; exports . createScript = function ( code ) { return exports . Script ( code ) } ; exports . createContext = Script . createContext = function ( context ) { var copy = new Context ; if ( typeof context === "object" ) { forEach ( Object _keys ( context ) , function ( key ) { copy [ key ] = context [ key ] } ) } return copy } } , { indexof : 219 } ] , 219 : [ function ( require , module , exports ) { var indexOf = [ ] . indexOf ; module . exports = function ( arr , obj ) { if ( indexOf ) return arr . indexOf ( obj ) ; for ( var i = 0 ; i < arr . length ; ++ i ) { if ( arr [ i ] === obj ) return i } return - 1 } } , { } ] , 220 : [ function ( require , module , exports ) { ( function ( global , factory ) { typeof exports === "object" && typeof module !== "undefined" ? module . exports = factory ( ) : typeof define === "function" && define . amd ? define ( factory ) : global . Immutable = factory ( ) } ) ( this , function ( ) { "use strict" ; var SLICE$0 = Array . prototype . slice ; function createClass ( ctor , superClass ) { if ( superClass ) { ctor . prototype = Object . create ( superClass . prototype ) } ctor . prototype . constructor = ctor } function Iterable ( value ) { return isIterable ( value ) ? value : Seq ( value ) } createClass ( KeyedIterable , Iterable ) ; function KeyedIterable ( value ) { return isKeyed ( value ) ? value : KeyedSeq ( value ) } createClass ( IndexedIterable , Iterable ) ; function IndexedIterable ( value ) { return isIndexed ( value ) ? value : IndexedSeq ( value ) } createClass ( SetIterable , Iterable ) ; function SetIterable ( value ) { return isIterable ( value ) && ! isAssociative ( value ) ? value : SetSeq ( value ) } function isIterable ( maybeIterable ) { return ! ! ( maybeIterable && maybeIterable [ IS _ITERABLE _SENTINEL ] ) } function isKeyed ( maybeKeyed ) { return ! ! ( maybeKeyed && maybeKeyed [ IS _KEYED _SENTINEL ] ) } function isIndexed ( maybeIndexed ) { return ! ! ( maybeIndexed && maybeIndexed [ IS _INDEXED _SENTINEL ] ) } function isAssociative ( maybeAssociative ) { return isKeyed ( maybeAssociative ) || isIndexed ( maybeAssociative ) } function isOrdered ( maybeOrdered ) { return ! ! ( maybeOrdered && maybeOrdered [ IS _ORDERED _SENTINEL ] ) } Iterable . isIterable = isIterable ; Iterable . isKeyed = isKeyed ; Iterable . isIndexed = isIndexed ; Iterable . isAssociative = isAssociative ; Iterable . isOrdered = isOrdered ; Iterable . Keyed = KeyedIterable ; Iterable . Indexed = IndexedIterable ; Iterable . Set = SetIterable ; var IS _ITERABLE _SENTINEL = "@@__IMMUTABLE_ITERABLE__@@" ; var IS _KEYED _SENTINEL = "@@__IMMUTABLE_KEYED__@@" ; var IS _INDEXED _SENTINEL = "@@__IMMUTABLE_INDEXED__@@" ; var IS _ORDERED _SENTINEL = "@@__IMMUTABLE_ORDERED__@@" ; var DELETE = "delete" ; var SHIFT = 5 ; var SIZE = 1 << SHIFT ; var MASK = SIZE - 1 ; var NOT _SET = { } ; var CHANGE _LENGTH = { value : false } ; var DID _ALTER = { value : false } ; function MakeRef ( ref ) { ref . value = false ; return ref } function SetRef ( ref ) { ref && ( ref . value = true ) } function OwnerID ( ) { } function arrCopy ( arr , offset ) { offset = offset || 0 ; var len = Math . max ( 0 , arr . length - offset ) ; var newArr = new Array ( len ) ; for ( var ii = 0 ; ii < len ; ii ++ ) { newArr [ ii ] = arr [ ii + offset ] } return newArr } function ensureSize ( iter ) { if ( iter . size === undefined ) { iter . size = iter . _ _iterate ( returnTrue ) } return iter . size } function wrapIndex ( iter , index ) { if ( typeof index !== "number" ) { var uint32Index = index >>> 0 ; if ( "" + uint32Index !== index || uint32Index === 4294967295 ) { return NaN } index = uint32Index } return index < 0 ? ensureSize ( iter ) + index : index } function returnTrue ( ) { return true } function wholeSlice ( begin , end , size ) { return ( begin === 0 || size !== undefined && begin <= - size ) && ( end === undefined || size !== undefined && end >= size ) } function resolveBegin ( begin , size ) { return resolveIndex ( begin , size , 0 ) } function resolveEnd ( end , size ) { return resolveIndex ( end , size , size ) } function resolveIndex ( index , size , defaultIndex ) { return index === undefined ? defaultIndex : index < 0 ? Math . max ( 0 , size + index ) : size === undefined ? index : Math . min ( size , index ) } var ITERATE _KEYS = 0 ; var ITERATE _VALUES = 1 ; var ITERATE _ENTRIES = 2 ; var REAL _ITERATOR _SYMBOL = typeof Symbol === "function" && Symbol . iterator ; var FAUX _ITERATOR _SYMBOL = "@@iterator" ; var ITERATOR _SYMBOL = REAL _ITERATOR _SYMBOL || FAUX _ITERATOR _SYMBOL ; function Iterator ( next ) { this . next = next } Iterator . prototype . toString = function ( ) { return "[Iterator]" } ; Iterator . KEYS = ITERATE _KEYS ; Iterator . VALUES = ITERATE _VALUES ; Iterator . ENTRIES = ITERATE _ENTRIES ; Iterator . prototype . inspect = Iterator . prototype . toSource = function ( ) { return this . toString ( ) } ; Iterator . prototype [ ITERATOR _SYMBOL ] = function ( ) { return this } ; function iteratorValue ( type , k , v , iteratorResult ) { var value = type === 0 ? k : type === 1 ? v : [ k
if ( index <= maxIndex ) { var subNode = node . nodes [ this . _reverse ? maxIndex - index : index ] ; if ( subNode ) { if ( subNode . entry ) { return mapIteratorValue ( type , subNode . entry ) } stack = this . _stack = mapIteratorFrame ( subNode , stack ) } continue } } stack = this . _stack = this . _stack . _ _prev } return iteratorDone ( ) } ; function mapIteratorValue ( type , entry ) { return iteratorValue ( type , entry [ 0 ] , entry [ 1 ] ) } function mapIteratorFrame ( node , prev ) { return { node : node , index : 0 , _ _prev : prev } } function makeMap ( size , root , ownerID , hash ) { var map = Object . create ( MapPrototype ) ; map . size = size ; map . _root = root ; map . _ _ownerID = ownerID ; map . _ _hash = hash ; map . _ _altered = false ; return map } var EMPTY _MAP ; function emptyMap ( ) { return EMPTY _MAP || ( EMPTY _MAP = makeMap ( 0 ) ) } function updateMap ( map , k , v ) { var newRoot ; var newSize ; if ( ! map . _root ) { if ( v === NOT _SET ) { return map } newSize = 1 ; newRoot = new ArrayMapNode ( map . _ _ownerID , [ [ k , v ] ] ) } else { var didChangeSize = MakeRef ( CHANGE _LENGTH ) ; var didAlter = MakeRef ( DID _ALTER ) ; newRoot = updateNode ( map . _root , map . _ _ownerID , 0 , undefined , k , v , didChangeSize , didAlter ) ; if ( ! didAlter . value ) { return map } newSize = map . size + ( didChangeSize . value ? v === NOT _SET ? - 1 : 1 : 0 ) } if ( map . _ _ownerID ) { map . size = newSize ; map . _root = newRoot ; map . _ _hash = undefined ; map . _ _altered = true ; return map } return newRoot ? makeMap ( newSize , newRoot ) : emptyMap ( ) } function updateNode ( node , ownerID , shift , keyHash , key , value , didChangeSize , didAlter ) { if ( ! node ) { if ( value === NOT _SET ) { return node } SetRef ( didAlter ) ; SetRef ( didChangeSize ) ; return new ValueNode ( ownerID , keyHash , [ key , value ] ) } return node . update ( ownerID , shift , keyHash , key , value , didChangeSize , didAlter ) } function isLeafNode ( node ) { return node . constructor === ValueNode || node . constructor === HashCollisionNode } function mergeIntoNode ( node , ownerID , shift , keyHash , entry ) { if ( node . keyHash === keyHash ) { return new HashCollisionNode ( ownerID , keyHash , [ node . entry , entry ] ) } var idx1 = ( shift === 0 ? node . keyHash : node . keyHash >>> shift ) & MASK ; var idx2 = ( shift === 0 ? keyHash : keyHash >>> shift ) & MASK ; var newNode ; var nodes = idx1 === idx2 ? [ mergeIntoNode ( node , ownerID , shift + SHIFT , keyHash , entry ) ] : ( newNode = new ValueNode ( ownerID , keyHash , entry ) , idx1 < idx2 ? [ node , newNode ] : [ newNode , node ] ) ; return new BitmapIndexedNode ( ownerID , 1 << idx1 | 1 << idx2 , nodes ) } function createNodes ( ownerID , entries , key , value ) { if ( ! ownerID ) { ownerID = new OwnerID } var node = new ValueNode ( ownerID , hash ( key ) , [ key , value ] ) ; for ( var ii = 0 ; ii < entries . length ; ii ++ ) { var entry = entries [ ii ] ; node = node . update ( ownerID , 0 , undefined , entry [ 0 ] , entry [ 1 ] ) } return node } function packNodes ( ownerID , nodes , count , excluding ) { var bitmap = 0 ; var packedII = 0 ; var packedNodes = new Array ( count ) ; for ( var ii = 0 , bit = 1 , len = nodes . length ; ii < len ; ii ++ , bit <<= 1 ) { var node = nodes [ ii ] ; if ( node !== undefined && ii !== excluding ) { bitmap |= bit ; packedNodes [ packedII ++ ] = node } } return new BitmapIndexedNode ( ownerID , bitmap , packedNodes ) } function expandNodes ( ownerID , nodes , bitmap , including , node ) { var count = 0 ; var expandedNodes = new Array ( SIZE ) ; for ( var ii = 0 ; bitmap !== 0 ; ii ++ , bitmap >>>= 1 ) { expandedNodes [ ii ] = bitmap & 1 ? nodes [ count ++ ] : undefined } expandedNodes [ including ] = node ; return new HashArrayMapNode ( ownerID , count + 1 , expandedNodes ) } function mergeIntoMapWith ( map , merger , iterables ) { var iters = [ ] ; for ( var ii = 0 ; ii < iterables . length ; ii ++ ) { var value = iterables [ ii ] ; var iter = KeyedIterable ( value ) ; if ( ! isIterable ( value ) ) { iter = iter . map ( function ( v ) { return fromJS ( v ) } ) } iters . push ( iter ) } return mergeIntoCollectionWith ( map , merger , iters ) } function deepMerger ( existing , value , key ) { return existing && existing . mergeDeep && isIterable ( value ) ? existing . mergeDeep ( value ) : is ( existing , value ) ? existing : value } function deepMergerWith ( merger ) { return function ( existing , value , key ) { if ( existing && existing . mergeDeepWith && isIterable ( value ) ) { return existing . mergeDeepWith ( merger , value ) } var nextValue = merger ( existing , value , key ) ; return is ( existing , nextValue ) ? existing : nextValue } } function mergeIntoCollectionWith ( collection , merger , iters ) { iters = iters . filter ( function ( x ) { return x . size !== 0 } ) ; if ( iters . length === 0 ) { return collection } if ( collection . size === 0 && ! collection . _ _ownerID && iters . length === 1 ) { return collection . constructor ( iters [ 0 ] ) } return collection . withMutations ( function ( collection ) { var mergeIntoMap = merger ? function ( value , key ) { collection . update ( key , NOT _SET , function ( existing ) { r
2016-04-07 07:44:34 +00:00
var step , k , v ; do { step = iterator . next ( ) ; if ( step . done ) { if ( useKeys || type === ITERATE _VALUES ) { return step } else if ( type === ITERATE _KEYS ) { return iteratorValue ( type , iterations ++ , undefined , step ) } else { return iteratorValue ( type , iterations ++ , step . value [ 1 ] , step ) } } var entry = step . value ; k = entry [ 0 ] ; v = entry [ 1 ] ; skipping && ( skipping = predicate . call ( context , v , k , this $0 ) ) } while ( skipping ) ; return type === ITERATE _ENTRIES ? step : iteratorValue ( type , k , v , step ) } ) } ; return skipSequence } function concatFactory ( iterable , values ) { var isKeyedIterable = isKeyed ( iterable ) ; var iters = [ iterable ] . concat ( values ) . map ( function ( v ) { if ( ! isIterable ( v ) ) { v = isKeyedIterable ? keyedSeqFromValue ( v ) : indexedSeqFromValue ( Array . isArray ( v ) ? v : [ v ] ) } else if ( isKeyedIterable ) { v = KeyedIterable ( v ) } return v } ) . filter ( function ( v ) { return v . size !== 0 } ) ; if ( iters . length === 0 ) { return iterable } if ( iters . length === 1 ) { var singleton = iters [ 0 ] ; if ( singleton === iterable || isKeyedIterable && isKeyed ( singleton ) || isIndexed ( iterable ) && isIndexed ( singleton ) ) { return singleton } } var concatSeq = new ArraySeq ( iters ) ; if ( isKeyedIterable ) { concatSeq = concatSeq . toKeyedSeq ( ) } else if ( ! isIndexed ( iterable ) ) { concatSeq = concatSeq . toSetSeq ( ) } concatSeq = concatSeq . flatten ( true ) ; concatSeq . size = iters . reduce ( function ( sum , seq ) { if ( sum !== undefined ) { var size = seq . size ; if ( size !== undefined ) { return sum + size } } } , 0 ) ; return concatSeq } function flattenFactory ( iterable , depth , useKeys ) { var flatSequence = makeSequence ( iterable ) ; flatSequence . _ _iterateUncached = function ( fn , reverse ) { var iterations = 0 ; var stopped = false ; function flatDeep ( iter , currentDepth ) { var this $0 = this ; iter . _ _iterate ( function ( v , k ) { if ( ( ! depth || currentDepth < depth ) && isIterable ( v ) ) { flatDeep ( v , currentDepth + 1 ) } else if ( fn ( v , useKeys ? k : iterations ++ , this $0 ) === false ) { stopped = true } return ! stopped } , reverse ) } flatDeep ( iterable , 0 ) ; return iterations } ; flatSequence . _ _iteratorUncached = function ( type , reverse ) { var iterator = iterable . _ _iterator ( type , reverse ) ; var stack = [ ] ; var iterations = 0 ; return new Iterator ( function ( ) { while ( iterator ) { var step = iterator . next ( ) ; if ( step . done !== false ) { iterator = stack . pop ( ) ; continue } var v = step . value ; if ( type === ITERATE _ENTRIES ) { v = v [ 1 ] } if ( ( ! depth || stack . length < depth ) && isIterable ( v ) ) { stack . push ( iterator ) ; iterator = v . _ _iterator ( type , reverse ) } else { return useKeys ? step : iteratorValue ( type , iterations ++ , v , step ) } } return iteratorDone ( ) } ) } ; return flatSequence } function flatMapFactory ( iterable , mapper , context ) { var coerce = iterableClass ( iterable ) ; return iterable . toSeq ( ) . map ( function ( v , k ) { return coerce ( mapper . call ( context , v , k , iterable ) ) } ) . flatten ( true ) } function interposeFactory ( iterable , separator ) { var interposedSequence = makeSequence ( iterable ) ; interposedSequence . size = iterable . size && iterable . size * 2 - 1 ; interposedSequence . _ _iterateUncached = function ( fn , reverse ) { var this $0 = this ; var iterations = 0 ; iterable . _ _iterate ( function ( v , k ) { return ( ! iterations || fn ( separator , iterations ++ , this $0 ) !== false ) && fn ( v , iterations ++ , this $0 ) !== false } , reverse ) ; return iterations } ; interposedSequence . _ _iteratorUncached = function ( type , reverse ) { var iterator = iterable . _ _iterator ( ITERATE _VALUES , reverse ) ; var iterations = 0 ; var step ; return new Iterator ( function ( ) { if ( ! step || iterations % 2 ) { step = iterator . next ( ) ; if ( step . done ) { return step } } return iterations % 2 ? iteratorValue ( type , iterations ++ , separator ) : iteratorValue ( type , iterations ++ , step . value , step ) } ) } ; return interposedSequence } function sortFactory ( iterable , comparator , mapper ) { if ( ! comparator ) { comparator = defaultComparator } var isKeyedIterable = isKeyed ( iterable ) ; var index = 0 ; var entries = iterable . toSeq ( ) . map ( function ( v , k ) { return [ k , v , index ++ , mapper ? mapper ( v , k , iterable ) : v ] } ) . toArray ( ) ; entries . sort ( function ( a , b ) { return comparator ( a [ 3 ] , b [ 3 ] ) || a [ 2 ] - b [ 2 ] } ) . forEach ( isKeyedIterable ? function ( v , i ) { entries [ i ] . length = 2 } : function ( v , i ) { entries [ i ] = v [ 1 ] } ) ; return isKeyedIterable ? KeyedSeq ( entries ) : isIndexed ( iterable ) ? IndexedSeq ( entries ) : SetSeq ( entries ) } function maxFactory ( iterable , comparator , mapper ) { if ( ! comparator ) { comparator = defaultComparator } if ( mapper ) { var entry = iterable . toSeq ( ) . map ( function ( v , k ) { return [ v , mapper ( v , k , iterable ) ] } ) . reduce ( function ( a , b ) { return maxCompare ( comparator , a [ 1 ] , b [ 1 ] ) ? b : a } ) ; return entry && entry [ 0 ] } else { return iterable . reduce ( function ( a , b ) { r
var $Ack = new Route . $Special ( "ack" ) ; function Ack ( metaLevel , id ) { this . metaLevel = metaLevel || 0 ; this . id = id || RandomID . randomId ( 16 ) ; this . done = false } Ack . prototype . arm = function ( ) { Dataspace . stateChange ( Patch . sub ( [ $Ack , this . id ] , this . metaLevel ) ) ; Dataspace . send ( [ $Ack , this . id ] , this . metaLevel ) } ; Ack . prototype . disarm = function ( ) { Dataspace . stateChange ( Patch . unsub ( [ $Ack , this . id ] , this . metaLevel ) ) } ; Ack . prototype . check = function ( e ) { if ( ! this . done ) { if ( e . type === "message" ) { var m = Patch . stripAtMeta ( e . message , this . metaLevel ) ; if ( m && m [ 0 ] === $Ack && m [ 1 ] === this . id ) { this . disarm ( ) ; this . done = true } } } return this . done } ; module . exports . $Ack = $Ack ; module . exports . Ack = Ack } , { "./dataspace.js" : 223 , "./patch.js" : 230 , "./randomid.js" : 231 , "./route.js" : 233 } ] , 222 : [ function ( require , module , exports ) { "use strict" ; var Immutable = require ( "immutable" ) ; var Dataspace = require ( "./dataspace.js" ) . Dataspace ; var Mux = require ( "./mux.js" ) ; var Patch = require ( "./patch.js" ) ; var Route = require ( "./route.js" ) ; var Util = require ( "./util.js" ) ; function spawnActor ( state , bootFn ) { Dataspace . spawn ( new Actor ( state , bootFn ) ) } function Actor ( state , bootFn ) { this . state = state ; this . facets = Immutable . Set ( ) ; this . mux = new Mux . Mux ; this . boot = function ( ) { bootFn . call ( this . state ) ; this . checkForTermination ( ) } } Actor . prototype . handleEvent = function ( e ) { this . facets . forEach ( function ( f ) { f . handleEvent ( e ) } ) ; this . checkForTermination ( ) } ; Actor . prototype . addFacet = function ( facet ) { this . facets = this . facets . add ( facet ) } ; Actor . prototype . removeFacet = function ( facet ) { this . facets = this . facets . remove ( facet ) } ; Actor . prototype . checkForTermination = function ( ) { if ( this . facets . isEmpty ( ) ) { Dataspace . exit ( ) } } ; function createFacet ( ) { return new Facet ( Dataspace . activeBehavior ( ) ) } function Facet ( actor ) { this . actor = actor ; this . endpoints = Immutable . Map ( ) ; this . initBlocks = Immutable . List ( ) ; this . doneBlocks = Immutable . List ( ) } Facet . prototype . handleEvent = function ( e ) { var facet = this ; this . endpoints . forEach ( function ( endpoint ) { endpoint . handlerFn . call ( facet . actor . state , e ) } ) ; this . refresh ( ) } ; Facet . prototype . addAssertion = function ( assertionFn ) { return this . addEndpoint ( new Endpoint ( assertionFn , function ( e ) { } ) ) } ; Facet . prototype . onEvent = function ( isTerminal , eventType , subscriptionFn , projectionFn , handlerFn ) { var facet = this ; switch ( eventType ) { case "message" : return this . addEndpoint ( new Endpoint ( subscriptionFn , function ( e ) { if ( e . type === "message" ) { var proj = projectionFn . call ( facet . actor . state ) ; var spec = Patch . prependAtMeta ( proj . assertion , proj . metalevel ) ; var match = Route . matchPattern ( e . message , spec ) ; if ( match ) { if ( isTerminal ) { facet . terminate ( ) } Util . kwApply ( handlerFn , facet . actor . state , match ) } } } ) ) ; case "asserted" : case "retracted" : return this . addEndpoint ( new Endpoint ( subscriptionFn , function ( e ) { if ( e . type === "stateChange" ) { var proj = projectionFn . call ( facet . actor . state ) ; var spec = Patch . prependAtMeta ( proj . assertion , proj . metalevel ) ; var compiledSpec = Route . compileProjection ( spec ) ; var objects = Route . projectObjects ( eventType === "asserted" ? e . patch . added : e . patch . removed , compiledSpec ) ; if ( objects && objects . size > 0 ) { if ( isTerminal ) { facet . terminate ( ) } objects . forEach ( function ( o ) { Util . kwApply ( handlerFn , facet . actor . state , o ) } ) } } } ) ) ; case "risingEdge" : var endpoint = new Endpoint ( function ( ) { return Patch . emptyPatch } , function ( e ) { var newValue = subscriptionFn . call ( facet . actor . state ) ; if ( newValue && ! this . currentValue ) { if ( isTerminal ) { facet . terminate ( ) } handlerFn . call ( facet . actor . state ) } this . currentValue = newValue } ) ; endpoint . currentValue = false ; return this . addEndpoint ( endpoint ) ; default : throw new Error ( "Unsupported Facet eventType: " + eventType ) } } ; Facet . prototype . addEndpoint = function ( endpoint ) { var patch = endpoint . subscriptionFn . call ( this . actor . state ) ; var r = this . actor . mux . addStream ( patch ) ; this . endpoints = this . endpoints . set ( r . pid , endpoint ) ; Dataspace . stateChange ( r . deltaAggregate ) ; return this } ; Facet . prototype . addInitBlock = function ( thunk ) { this . initBlocks = this . initBlocks . push ( thunk ) ; return this } ; Facet . prototype . addDoneBlock = function ( thunk ) { this . doneBlocks = this . doneBlocks . push ( thunk ) ; return this } ; Facet . prototype . refresh = function ( ) { var facet = this ; var aggregate = Patch . emptyPatch ; this . endpoints . forEach ( function ( endpoint , eid ) { var patch = Patch . retract ( Syndicate . _ _ ) . andThen ( endpoint . subscript
return [ Route . projectObjects ( this . added , compiledProjection ) , Route . projectObjects ( this . removed , compiledProjection ) ] } ; Patch . prototype . pretty = function ( ) { return "<<<<<<<< Removed:\n" + Route . prettyTrie ( this . removed ) + "\n" + "======== Added:\n" + Route . prettyTrie ( this . added ) + "\n" + ">>>>>>>>" } ; module . exports . Patch = Patch ; module . exports . emptyPatch = emptyPatch ; module . exports . removeEverythingPatch = removeEverythingPatch ; module . exports . $Observe = $Observe ; module . exports . $AtMeta = $AtMeta ; module . exports . $Advertise = $Advertise ; module . exports . observe = observe ; module . exports . atMeta = atMeta ; module . exports . advertise = advertise ; module . exports . isObserve = isObserve ; module . exports . isAtMeta = isAtMeta ; module . exports . isAdvertise = isAdvertise ; module . exports . prependAtMeta = prependAtMeta ; module . exports . stripAtMeta = stripAtMeta ; module . exports . observeAtMeta = observeAtMeta ; module . exports . assert = assert ; module . exports . retract = retract ; module . exports . sub = sub ; module . exports . unsub = unsub ; module . exports . pub = pub ; module . exports . unpub = unpub ; module . exports . patchSeq = patchSeq ; module . exports . computePatch = computePatch ; module . exports . biasedIntersection = biasedIntersection } , { "./route.js" : 233 , immutable : 220 } ] , 231 : [ function ( require , module , exports ) { var randomId ; if ( typeof window !== "undefined" && typeof window . crypto !== "undefined" && typeof window . crypto . getRandomValues !== "undefined" ) { randomId = function ( byteCount ) { var buf = new Uint8Array ( byteCount ) ; window . crypto . getRandomValues ( buf ) ; return btoa ( String . fromCharCode . apply ( null , buf ) ) . replace ( /=/g , "" ) } } else { var crypto ; try { crypto = require ( "crypto" ) } catch ( e ) { } if ( typeof crypto !== "undefined" && typeof crypto . randomBytes !== "undefined" ) { randomId = function ( byteCount ) { return crypto . randomBytes ( byteCount ) . base64Slice ( ) . replace ( /=/g , "" ) } } else { console . warn ( "No suitable implementation for RandomID.randomId available." ) } } module . exports . randomId = randomId } , { crypto : 6 } ] , 232 : [ function ( require , module , exports ) { "use strict" ; var FN _ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m ; var FN _ARG _SPLIT = /,/ ; var STRIP _COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm ; function formalParameters ( fn ) { var result = [ ] ; var fnText = fn . toString ( ) . replace ( STRIP _COMMENTS , "" ) ; var argDecl = fnText . match ( FN _ARGS ) ; var args = argDecl [ 1 ] . split ( FN _ARG _SPLIT ) ; for ( var i = 0 ; i < args . length ; i ++ ) { var trimmed = args [ i ] . trim ( ) ; if ( trimmed ) { result . push ( trimmed ) } } return result } module . exports . formalParameters = formalParameters } , { } ] , 233 : [ function ( require , module , exports ) { "use strict" ; var Immutable = require ( "immutable" ) ; function makeStructureConstructor ( label , argumentNames ) { var $SyndicateMeta$ = { label : label , arguments : argumentNames } ; return function ( ) { var result = { $SyndicateMeta$ : $SyndicateMeta$ } ; for ( var i = 0 ; i < argumentNames . length ; i ++ ) { result [ argumentNames [ i ] ] = arguments [ i ] } return result } } function isStructure ( s ) { return s !== null && typeof s === "object" && "$SyndicateMeta$" in s } function structureToArray ( s ) { var result = [ s . $SyndicateMeta$ . label ] ; var args = s . $SyndicateMeta$ . arguments ; for ( var i = 0 ; i < args . length ; i ++ ) { result . push ( s [ args [ i ] ] ) } return result } function $Special ( name ) { this . name = name } var _ _ = new $Special ( "wildcard" ) ; var SOA = new $Special ( "[" ) ; var EOA = new $Special ( "]" ) ; function die ( message ) { throw new Error ( message ) } function $Embedded ( trie ) { this . trie = trie } function embeddedTrie ( trie ) { return new $Embedded ( trie ) } function $Capture ( name , pattern ) { this . name = name || null ; this . pattern = typeof pattern === "undefined" ? _ _ : pattern } function _$ ( name , pattern ) { return new $Capture ( name , pattern ) } function isCapture ( x ) { return x instanceof $Capture || x === _$ } function captureName ( x ) { return x instanceof $Capture ? x . name : null } function capturePattern ( x ) { return x instanceof $Capture ? x . pattern : _ _ } var SOC = new $Special ( "{" ) ; var EOC = new $Special ( "}" ) ; function $Success ( value ) { this . value = value } $Success . prototype . equals = function ( other ) { if ( ! ( other instanceof $Success ) ) return false ; return Immutable . is ( this . value , other . value ) } ; function $WildcardSequence ( trie ) { this . trie = trie } $WildcardSequence . prototype . equals = function ( other ) { if ( ! ( other instanceof $WildcardSequence ) ) return false ; return Immutable . is ( this . trie , other . trie ) } ; function is _emptyTrie ( m ) { return Immutable . is ( m , emptyTrie ) } var emptyTrie = Immutable . Map ( ) ; fun