!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.kbpgp=e()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&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}for(var i="function"==typeof require&&require,o=0;o_i;_i++)o=_ref1[_i],null==err&&(_ref2=bn.mpi_from_buffer(raw),err=_ref2[0],d[o]=_ref2[1],raw=_ref2[2]);return err?[err,null]:[null,new klass(d),orig_len-raw.length]},BaseKey.prototype.serialize=function(){var e;return Buffer.concat(function(){var _i,_len,_ref1,_results;for(_ref1=this.ORDER,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)e=_ref1[_i],_results.push(this[e].to_mpi_buffer());return _results}.call(this))},BaseKey.prototype.validity_check=function(cb){return cb(null)},BaseKey}(),exports.BaseKeyPair=BaseKeyPair=function(){function BaseKeyPair(_arg){this.priv=_arg.priv,this.pub=_arg.pub,this.pub.parent=this,null!=this.priv&&(this.priv.parent=this)}return BaseKeyPair.prototype.serialize=function(){return this.pub.serialize()},BaseKeyPair.prototype.hash=function(){return SHA256(this.serialize())},BaseKeyPair.prototype.ekid=function(){return Buffer.concat([new Buffer([K.kid.version,this.get_type()]),this.hash(),new Buffer([K.kid.trailer])])},BaseKeyPair.prototype.can_sign=function(){return null!=this.priv},BaseKeyPair.prototype.can_decrypt=function(){return null!=this.priv},BaseKeyPair.prototype.has_private=function(){return null!=this.priv},BaseKeyPair.prototype.fulfills_flags=function(){return!1},BaseKeyPair.prototype.is_toxic=function(){return!1},BaseKeyPair.prototype.nbits=function(){var _ref1;return null!=(_ref1=this.pub)?_ref1.nbits():void 0},BaseKeyPair.prototype.good_for_flags=function(){return C.key_flags.encrypt_comm|C.key_flags.encrypt_storage|C.key_flags.certify_keys|C.key_flags.sign_data},BaseKeyPair.prototype.eq=function(k2){return this.type===k2.type&&bufeq_secure(this.serialize(),k2.serialize())},BaseKeyPair.prototype.can_perform=function(ops_mask){return ops_mask&konst.ops.sign&&!this.can_sign()?!1:ops_mask&konst.ops.decrypt&&!this.can_decrypt()?!1:!0},BaseKeyPair.parse=function(klass,pub_raw){var err,key,len,_ref1;return _ref1=klass.Pub.alloc(pub_raw),err=_ref1[0],key=_ref1[1],len=_ref1[2],null!=key&&(key=new klass({pub:key})),[err,key,len]},BaseKeyPair.parse_kb=function(klass,pub_raw){var err,key,len,_ref1;return _ref1=klass.Pub.alloc_kb(pub_raw),err=_ref1[0],key=_ref1[1],len=_ref1[2],null!=key&&(key=new klass({pub:key})),[err,key,len]},BaseKeyPair.prototype.add_priv=function(priv_raw){var err,len,_ref1;return _ref1=Priv.alloc(priv_raw),err=_ref1[0],this.priv=_ref1[1],len=_ref1[2],[err,len]},BaseKeyPair.alloc=function(klass,_arg){var err,priv,pub,_ref1,_ref2;return pub=_arg.pub,priv=_arg.priv,_ref1=klass.Pub.alloc(pub),err=_ref1[0],pub=_ref1[1],null==err&&null!=priv&&(_ref2=klass.Priv.alloc(priv,pub),err=_ref2[0],priv=_ref2[1]),null!=err?[err,null]:[null,new klass({priv:priv,pub:pub})]},BaseKeyPair.prototype.read_priv=function(raw_priv){var err,_ref1;return _ref1=this.Priv.alloc(raw_priv,this.pub),err=_ref1[0],this.priv=_ref1[1],err},BaseKeyPair.prototype.find=function(i){return i.mod(this.max_value())},BaseKeyPair.prototype.hide=function(_arg,cb){var L,err,i,max,n,r,r_bits,ret,slosh,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),i=_arg.i,max=_arg.max,slosh=_arg.slosh,ret=err=null,n=this.max_value(),function(){return function(__iced_k){return(L=n.bitLength())>max?__iced_k(err=new Error("Can't hide > "+max+" bits; got "+L)):(r_bits=max-L+slosh,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/basekeypair.iced",funcname:"BaseKeyPair.hide"}),SRF().random_nbit(r_bits,__iced_deferrals.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:127})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=r.multiply(n).add(i))}))}}(this)(function(){return function(){return cb(err,ret)}}(this))},BaseKeyPair.prototype.validity_check=function(cb){return this.pub.validity_check(cb)},BaseKeyPair}()}).call(this)}).call(this,require("buffer").Buffer)},{"./bn":4,"./const":5,"./hash":14,"./rand":65,buffer:80,"iced-runtime":118,"pgp-utils":163}],3:[function(require,module,exports){(function(Buffer){(function(){var BaseX,BigInteger,base32,base58,buffer_to_ui8a,nbi,nbs,nbv,_ref;_ref=require("bn"),nbv=_ref.nbv,nbi=_ref.nbi,BigInteger=_ref.BigInteger,nbs=require("./bn").nbs,buffer_to_ui8a=require("./util").buffer_to_ui8a,BaseX=function(){function BaseX(alphabet){var a,i,_i,_len,_ref1;for(this.alphabet=alphabet,this.base=this.alphabet.length,this.basebn=nbv(this.base),this.lookup={},_ref1=this.alphabet,i=_i=0,_len=_ref1.length;_len>_i;i=++_i)a=_ref1[i],this.lookup[a]=i}return BaseX.prototype.encode=function(buffer){var c,chars,num,pad,q,r,_i,_len;for(num=nbi().fromBuffer(buffer),chars=function(){var _ref1,_results;for(_results=[];num.compareTo(BigInteger.ZERO)>0;)_ref1=num.divideAndRemainder(this.basebn),q=_ref1[0],r=_ref1[1],c=this.alphabet[r.intValue()],num=q,_results.push(c);return _results}.call(this),chars.reverse(),pad=[],_i=0,_len=buffer.length;_len>_i&&(c=buffer[_i],0===c);_i++)pad.push(this.alphabet[0]);return pad.concat(chars).join("")},BaseX.prototype.decode=function(str){var base,c,char_index,i,num,pad,start,_i,_j,_len,_ref1;for(num=BigInteger.ZERO,base=BigInteger.ONE,i=0,i=_i=0,_len=str.length;_len>_i&&(c=str[i],c===this.alphabet[0]);i=++_i);for(start=i,pad=new Buffer(function(){var _j,_results;for(_results=[],i=_j=0;start>=0?start>_j:_j>start;i=start>=0?++_j:--_j)_results.push(0);return _results}()),_ref1=str.slice(start),i=_j=_ref1.length-1;_j>=0;i=_j+=-1){if(c=_ref1[i],null==(char_index=this.lookup[c]))throw new Error("Value passed is not a valid BaseX string.");num=num.add(base.multiply(nbv(char_index))),base=base.multiply(this.basebn)}return Buffer.concat([pad,new Buffer(num.toByteArray())])},BaseX}(),exports.base58=base58=new BaseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),exports.base32=base32=new BaseX("abcdefghijkmnpqrstuvwxyz23456789"),exports.base91=new BaseX("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()-_=+{}[]|;:,<>./?")}).call(this)}).call(this,require("buffer").Buffer)},{"./bn":4,"./util":70,bn:71,buffer:80}],4:[function(require,module,exports){(function(Buffer){(function(){var BigInteger,bn_from_left_n_bits,buffer_shift_right,buffer_to_ui8a,mpi_byte_length,mpi_from_buffer,mpi_to_padded_octets,nbi,nbits,nbs,nbv,toMPI,_ref;_ref=require("bn"),nbv=_ref.nbv,nbi=_ref.nbi,BigInteger=_ref.BigInteger,nbits=_ref.nbits,buffer_to_ui8a=require("./util").buffer_to_ui8a,nbs=function(s,base){var r;return null==base&&(base=10),r=nbi(),r.fromString(s,base)},mpi_byte_length=function(bn){return bn.toByteArray().length},toMPI=function(bn){var ba,hdr,size;return ba=bn.toByteArray(),size=8*(ba.length-1)+nbits(ba[0]),hdr=new Buffer(2),hdr.writeUInt16BE(size,0),Buffer.concat([hdr,new Buffer(ba)])},mpi_from_buffer=function(raw){var err,hdr,i,n_bits,n_bytes;return err=i=null,raw.length<2?err=new Error("need at least 2 bytes; got "+raw.length):(hdr=new Buffer(raw.slice(0,2)),raw=raw.slice(2),n_bits=hdr.readUInt16BE(0),n_bytes=Math.ceil(n_bits/8),raw.length=0?diff>_i:_i>diff;i=diff>=0?++_i:--_i)_results.push(0);return _results}()),Buffer.concat([pad,new Buffer(ba)])},buffer_shift_right=function(buf,nbits){var c,i,l,mask,nbytes,nxt,rem,_i,_ref1;for(nbytes=nbits>>3,rem=nbits%8,buf=buf.slice(0,buf.length-nbytes),l=buf.length,mask=(1<=_ref1?0>=_i:_i>=0;i=0>=_ref1?++_i:--_i)c=buf.readUInt8(i)>>rem,i>0&&(nxt=buf.readUInt8(i-1)&mask,c|=nxt<<8-rem),buf.writeUInt8(c,i);return buf},bn_from_left_n_bits=function(raw,bits){var buf,bytes,rem;return rem=bits%8,bytes=(bits>>3)+(rem?1:0),buf=raw.slice(0,bytes),rem>0&&(buf=buffer_shift_right(buf,8-rem)),nbi().fromBuffer(buf)},exports.toMPI=toMPI,exports.nbs=nbs,exports.mpi_from_buffer=mpi_from_buffer,exports.mpi_to_padded_octets=mpi_to_padded_octets,exports.buffer_shift_right=buffer_shift_right,exports.bn_from_left_n_bits=bn_from_left_n_bits,BigInteger.prototype.to_mpi_buffer=function(){return toMPI(this)},BigInteger.prototype.mpi_byte_length=function(){return mpi_byte_length(this)},BigInteger.prototype.to_padded_octets=function(base){return mpi_to_padded_octets(this,base)},exports.BigInteger=BigInteger,exports.nbi=nbi,exports.nbv=nbv,exports.nbits=nbits}).call(this)}).call(this,require("buffer").Buffer)},{"./util":70,bn:71,buffer:80}],5:[function(require,module,exports){(function(){var config,k,openpgp,v;exports.openpgp=openpgp={public_key_algorithms:{RSA:1,RSA_ENCRYPT_ONLY:2,RSA_SIGN_ONLY:3,ELGAMAL:16,DSA:17,ECDH:18,ECDSA:19,ELGAMAL_SIGN_AND_ENCRYPT:20},symmetric_key_algorithms:{CAST5:3,AES128:7,AES192:8,AES256:9},hash_algorithms:{MD5:1,SHA1:2,RIPEMD160:3,SHA256:8,SHA384:9,SHA512:10,SHA224:11},sig_subpacket:{creation_time:2,expiration_time:3,exportable_certificate:4,trust_signature:5,regular_expression:6,revocable:7,key_expiration_time:9,preferred_symmetric_algorithms:11,revocation_key:12,issuer:16,notation_data:20,preferred_hash_algorithms:21,preferred_compression_algorithms:22,key_server_preferences:23,preferred_key_server:24,primary_user_id:25,policy_uri:26,key_flags:27,signers_user_id:28,reason_for_revocation:29,features:30,signature_target:31,embedded_signature:32,experimental_low:101,experimental_high:110},sig_types:{binary_doc:0,canonical_text:1,issuer:16,persona:17,casual:18,positive:19,subkey_binding:24,primary_binding:25,direct:31,key_revocation:32,subkey_revocation:40,certificate_revocation:48},message_types:{generic:0,public_key:4,private_key:5,signature:8,clearsign:9},s2k:{plain:0,salt:1,salt_iter:3,gnu:101,gnu_dummy:1001},s2k_convention:{none:0,checksum:255,sha1:254},ecdh:{param_bytes:3,version:1},packet_tags:{PKESK:1,signature:2,one_pass_sig:4,secret_key:5,public_key:6,secret_subkey:7,compressed:8,literal:11,public_subkey:14,userid:13,user_attribute:17,SEIPD:18,MDC:19},literal_formats:{binary:98,text:116,utf8:117},versions:{PKESK:3,SEIPD:1,one_pass_sig:3,keymaterial:{V4:4},signature:{V2:2,V3:3,V4:4}},signatures:{key:153,userid:180,user_attribute:209},key_flags:{certify_keys:1,sign_data:2,encrypt_comm:4,encrypt_storage:8,private_split:16,auth:32,shared:128},features:{modification_detection:1},key_server_preferences:{no_modify:128},compression:{none:0,zip:1,zlib:2,bzip:3}},exports.kb={key_encryption:{none:0,triplesec_v1:1,triplesec_v2:2,triplesec_v3:3},packet_tags:{p3skb:513,signature:514,encryption:515},public_key_algorithms:{NACL_EDDSA:32,NACL_DH:33},versions:{V1:1},padding:{EMSA_PCKS1_v1_5:3,RSASSA_PSS:4},key_defaults:{primary:{expire_in:0,nbits:{RSA:4096,ECDSA:384,DSA:2048}},sub:{expire_in:252288e3,nbits:{RSA:2048,ECDH:256,ECDSA:256,DSA:2048,ELGAMAL:2048}}},kid:{version:1,trailer:10,algo:8,len:32}},exports.ops={encrypt:1,decrypt:2,verify:4,sign:8},exports.header={version:"Keybase OpenPGP",comment:"https://keybase.io/crypto"},config={default_key_expire_in:126144e3};for(k in config)v=config[k],exports[k]=v}).call(this)},{}],6:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseKey,BaseKeyPair,BigInteger,C,K,MRF,Pair,Priv,Pub,SRF,bn,bufeq_secure,iced,konst,make_esc,nbits,nbv,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},bn=require("./bn"),nbits=bn.nbits,nbv=bn.nbv,BigInteger=bn.BigInteger,_ref=require("./rand"),SRF=_ref.SRF,MRF=_ref.MRF,_ref1=require("./util"),bufeq_secure=_ref1.bufeq_secure,ASP=_ref1.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,_ref2=require("./basekeypair"),BaseKey=_ref2.BaseKey,BaseKeyPair=_ref2.BaseKeyPair,_ref3=require("./rand"),SRF=_ref3.SRF,MRF=_ref3.MRF,Pub=function(_super){function Pub(_arg){this.p=_arg.p,this.q=_arg.q,this.g=_arg.g,this.y=_arg.y}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.DSA,Pub.prototype.type=Pub.type,Pub.ORDER=["p","q","g","y"],Pub.prototype.ORDER=Pub.ORDER,Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.trunc_hash=function(h){return bn.bn_from_left_n_bits(h,this.q.bitLength())},Pub.prototype.nbits=function(){var _ref4;return null!=(_ref4=this.p)?_ref4.bitLength():void 0},Pub.prototype.verify=function(_arg,h,cb){var err,hi,r,s,u1,u2,v,w;return r=_arg[0],s=_arg[1],err=null,hi=this.trunc_hash(h),w=s.modInverse(this.q),u1=hi.multiply(w).mod(this.q),u2=r.multiply(w).mod(this.q),v=this.g.modPow(u1,this.p).multiply(this.y.modPow(u2,this.p)).mod(this.p).mod(this.q),v.equals(r)||(err=new Error("verification failed")),cb(err)},Pub}(BaseKey),Priv=function(_super){function Priv(_arg){this.x=_arg.x,this.pub=_arg.pub}return __extends(Priv,_super),Priv.ORDER=["x"],Priv.prototype.ORDER=Priv.ORDER,Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.sign=function(h,cb){var err,g,hi,k,p,q,r,s,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref4;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,_ref4=this.pub,p=_ref4.p,q=_ref4.q,g=_ref4.g,hi=this.pub.trunc_hash(h),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/dsa.iced",funcname:"Priv.sign"}),SRF().random_zn(q.subtract(bn.nbv(2)),__iced_deferrals.defer({assign_fn:function(){return function(){return k=arguments[0]}}(),lineno:76})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return k=k.add(bn.BigInteger.ONE),r=g.modPow(k,p).mod(q),s=k.modInverse(q).multiply(hi.add(_this.x.multiply(r))).mod(q),cb([r,s])}}(this))},Priv}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=C.public_key_algorithms.DSA,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="DSA",Pair.parse=function(pub_raw){return BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.can_encrypt=function(){return!1},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=this.good_for_flags(),(flags&good_for)===flags},Pair.prototype.good_for_flags=function(){return C.key_flags.certify_keys|C.key_flags.sign_data},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var data,err,hash,hasher,sig,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref4;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,err=null,Buffer.isBuffer(sig)&&(_ref4=Pair.read_sig_from_buf(sig),err=_ref4[0],sig=_ref4[1]),hash||(hash=hasher(data)),function(_this){return function(__iced_k){return 2!==sig.length?__iced_k(err=new Error("Expected 2 Bigints in the signature")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/dsa.iced",funcname:"Pair.verify_unpad_and_check_hash"}),_this.pub.verify(sig,hash,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],v=arguments[1]}}(),lineno:126})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var h,hasher,s,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hasher=_arg.hasher,hasher||(hasher=SHA512),h=hasher(data),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/dsa.iced",funcname:"Pair.pad_and_sign"}),_this.priv.sign(h,__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:135})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,Buffer.concat(function(){var _i,_len,_results;for(_results=[],_i=0,_len=sig.length;_len>_i;_i++)s=sig[_i],_results.push(s.to_mpi_buffer());return _results}()))}}(this))},Pair.parse_sig=function(slice){var buf,err,n,ret,_ref4;if(buf=slice.peek_rest_to_buffer(),_ref4=Pair.read_sig_from_buf(buf),err=_ref4[0],ret=_ref4[1],n=_ref4[2],null!=err)throw err;return slice.advance(n),ret},Pair.read_sig_from_buf=function(buf){var err,n,o,order,orig_len,ret,x;return orig_len=buf.length,order=["r","s"],err=null,ret=function(){var _i,_len,_ref4,_results;for(_results=[],_i=0,_len=order.length;_len>_i;_i++)o=order[_i],null==err&&(_ref4=bn.mpi_from_buffer(buf),err=_ref4[0],x=_ref4[1],buf=_ref4[2],_results.push(x));return _results}(),n=orig_len-buf.length,[err,ret,n]},Pair}(BaseKeyPair),exports.DSA=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"./basekeypair":2,"./bn":4,"./const":5,"./rand":65,"./util":70,buffer:80,"iced-error":115,"iced-runtime":118}],7:[function(require,module,exports){(function(Buffer){(function(){var BaseEccKey,SlicerBuffer,alloc_by_nbits,alloc_by_oid,iced,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},SlicerBuffer=require("../openpgp/buffer").SlicerBuffer,_ref=require("./curves"),alloc_by_nbits=_ref.alloc_by_nbits,alloc_by_oid=_ref.alloc_by_oid,exports.BaseEccKey=BaseEccKey=function(){function BaseEccKey(_arg){this.curve=_arg.curve,this.R=_arg.R}return BaseEccKey.prototype.serialize=function(){var oid;return oid=this.curve.oid,Buffer.concat([new Buffer([oid.length]),oid,this.curve.point_to_mpi_buffer(this.R)])},BaseEccKey._alloc=function(klass,raw){var R,curve,err,l,len,oid,pre,pub,sb,_ref1,_ref2;if(sb=new SlicerBuffer(raw),pre=sb.rem(),l=sb.read_uint8(),oid=sb.read_buffer(l),_ref1=alloc_by_oid(oid),err=_ref1[0],curve=_ref1[1],null!=err)throw err;if(_ref2=curve.mpi_point_from_slicer_buffer(sb),err=_ref2[0],R=_ref2[1],null!=err)throw err;return pub=new klass({curve:curve,R:R}),pub.read_params(sb),len=pre-sb.rem(),[pub,len]},BaseEccKey.alloc=function(klass,raw){var e,err,len,pub,_ref1;pub=len=err=null;try{_ref1=BaseEccKey._alloc(klass,raw),pub=_ref1[0],len=_ref1[1]}catch(_error){e=_error,err=e}return[err,pub,len]},BaseEccKey.prototype.validity_check=function(cb){return cb(null)},BaseEccKey}(),exports.generate=function(_arg,cb){var Pair,R,asp,curve,err,nbits,priv,pub,ret,x,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbits=_arg.nbits,asp=_arg.asp,Pair=_arg.Pair,ret=null,_ref1=alloc_by_nbits(nbits),err=_ref1[0],curve=_ref1[1],function(){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/base.iced",funcname:"generate"}),curve.random_scalar(__iced_deferrals.defer({assign_fn:function(){return function(){return x=arguments[0]}}(),lineno:55})),__iced_deferrals._fulfill()}(function(){return R=curve.G.multiply(x),pub=new Pair.Pub({curve:curve,R:R}),priv=new Pair.Priv({pub:pub,x:x}),__iced_k(ret=new Pair({pub:pub,priv:priv}))})}}(this)(function(){return function(){return cb(err,ret)}}(this))}}).call(this)}).call(this,require("buffer").Buffer)},{"../openpgp/buffer":35,"./curves":8,buffer:80,"iced-runtime":118}],8:[function(require,module,exports){(function(Buffer){(function(){var BigInteger,Curve,H,OIDS,OID_LOOKUP,SRF,SlicerBuffer,base,bn,iced,k,nist_p256,nist_p384,nist_p521,uint_to_buffer,v,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},BigInteger=require("../bn").BigInteger,base=require("keybase-ecurve"),uint_to_buffer=require("../util").uint_to_buffer,SlicerBuffer=require("../openpgp/buffer").SlicerBuffer,SRF=require("../rand").SRF,bn=require("../bn"),exports.H=H=function(x){return BigInteger.fromHex(x.split(/\s+/).join(""))},exports.Curve=Curve=function(_super){function Curve(_arg){var Gx,Gy,a,b,h,n,p;p=_arg.p,a=_arg.a,b=_arg.b,Gx=_arg.Gx,Gy=_arg.Gy,n=_arg.n,h=_arg.h,this.oid=_arg.oid,h||(h=BigInteger.ONE),Curve.__super__.constructor.call(this,p,a,b,Gx,Gy,n,h)}return __extends(Curve,_super),Curve.prototype.mkpoint=function(_arg){var x,y;return x=_arg.x,y=_arg.y,base.Point.fromAffine(this,x,y)},Curve.prototype.nbits=function(){return this.p.bitLength()},Curve.prototype.mpi_bit_size=function(){return 2*this.mpi_coord_bit_size()+3},Curve.prototype.mpi_coord_byte_size=function(){return Math.ceil(this.nbits()/8)},Curve.prototype.mpi_coord_bit_size=function(){return 8*this.mpi_coord_byte_size()},Curve.prototype._mpi_point_from_slicer_buffer=function(sb){var b,n_bits,n_bytes,point,x,y,_ref;if(n_bits=sb.read_uint16(),n_bits!==(b=this.mpi_bit_size()))throw new Error("Need "+b+" bits for this curve; got "+n_bits);if(4!==sb.read_uint8())throw new Error("Can only handle 0x4 prefix for MPI representations");if(n_bytes=this.mpi_coord_byte_size(),_ref=[BigInteger.fromBuffer(sb.read_buffer(n_bytes)),BigInteger.fromBuffer(sb.read_buffer(n_bytes))],x=_ref[0],y=_ref[1],point=this.mkpoint({x:x,y:y}),!this.isOnCurve(point))throw new Error("Given ECC point isn't on the given curve; data corruption detected.");return[null,point]},Curve.prototype.mpi_point_from_buffer=function(b){return this.mpi_point_from_slicer_buffer(new SlicerBuffer(b))},Curve.prototype.mpi_point_from_slicer_buffer=function(sb){var e,err,point,_ref;err=point=null;try{_ref=this._mpi_point_from_slicer_buffer(sb),err=_ref[0],point=_ref[1]}catch(_error){e=_error,err=e}return[err,point]},Curve.prototype.point_to_mpi_buffer_compact=function(p){return p.affineX.toBuffer(this.p.byteLength())},Curve.prototype.point_to_mpi_buffer=function(p){var ret,sz;return sz=this.mpi_coord_byte_size(),ret=Buffer.concat([uint_to_buffer(16,this.mpi_bit_size()),new Buffer([4]),p.affineX.toBuffer(sz),p.affineY.toBuffer(sz)])},Curve.prototype.random_scalar=function(cb){var k,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/ecc/curves.iced",funcname:"Curve.random_scalar"}),SRF().random_zn(_this.n.subtract(bn.nbv(2)),__iced_deferrals.defer({assign_fn:function(){return function(){return k=arguments[0]}}(),lineno:97})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return k=k.add(bn.BigInteger.ONE),cb(k)}}(this))},Curve}(base.Curve),exports.nist_p256=nist_p256=function(){var Gx,Gy,a,b,n,p;return p=H("FFFFFFFF 00000001 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFF"),a=H("FFFFFFFF 00000001 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFC"),b=H("5AC635D8 AA3A93E7 B3EBBD55 769886BC 651D06B0 CC53B0F6 3BCE3C3E 27D2604B"),n=H("FFFFFFFF 00000000 FFFFFFFF FFFFFFFF BCE6FAAD A7179E84 F3B9CAC2 FC632551"),Gx=H("6B17D1F2 E12C4247 F8BCE6E5 63A440F2 77037D81 2DEB33A0 F4A13945 D898C296"),Gy=H("4FE342E2 FE1A7F9B 8EE7EB4A 7C0F9E16 2BCE3357 6B315ECE CBB64068 37BF51F5"),new Curve({p:p,a:a,b:b,Gx:Gx,Gy:Gy,n:n,oid:OIDS.nist_p256})},exports.nist_p384=nist_p384=function(){var Gx,Gy,a,b,n,p;return p=H("ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff"),a=H("ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc"),b=H("b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef"),n=H("ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973"),Gx=H("aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7"),Gy=H("3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"),new Curve({p:p,a:a,b:b,Gx:Gx,Gy:Gy,n:n,oid:OIDS.nist_p384})},exports.nist_p521=nist_p521=function(){var Gx,Gy,a,b,n,p;return p=H("000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff"),a=H("000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc"),b=H("00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00"),n=H("000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409"),Gx=H("000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66"),Gy=H("00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"),new Curve({p:p,a:a,b:b,Gx:Gx,Gy:Gy,n:n,oid:OIDS.nist_p521})},OIDS={nist_p256:new Buffer([42,134,72,206,61,3,1,7]),nist_p384:new Buffer([43,129,4,0,34]),nist_p521:new Buffer([43,129,4,0,35])},OID_LOOKUP={};for(k in OIDS)v=OIDS[k],OID_LOOKUP[v.toString("hex")]=exports[k];exports.alloc_by_oid=function(oid){var curve,err,f;return Buffer.isBuffer(oid)&&(oid=oid.toString("hex")),err=curve=null,null!=(f=OID_LOOKUP[oid.toLowerCase()])?curve=f():err=new Error("Unknown curve OID: "+oid),[err,curve]},exports.alloc_by_nbits=function(nbits){var err,f,ret;return ret=err=null,nbits||(nbits=256),f=function(){switch(nbits){case 256:return nist_p256;case 384:return nist_p384;case 521:return nist_p521;default:return null}}(),null!=f?ret=f():err=new Error("No curve for "+nbits+" bits"),[err,ret]}}).call(this)}).call(this,require("buffer").Buffer)},{"../bn":4,"../openpgp/buffer":35,"../rand":65,"../util":70,buffer:80,"iced-runtime":118,"keybase-ecurve":148}],9:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseEccKey,BaseKey,BaseKeyPair,Const,Output,Pair,Priv,Pub,SlicerBuffer,bufeq_secure,ecc_pkcs5_pad_data,generate,hashmod,iced,konst,make_esc,sym,uint_to_buffer,unwrap,wrap,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},_ref=require("../util"),uint_to_buffer=_ref.uint_to_buffer,bufeq_secure=_ref.bufeq_secure,ASP=_ref.ASP,make_esc=require("iced-error").make_esc,konst=require("../const"),Const=konst.openpgp,_ref1=require("../basekeypair"),BaseKeyPair=_ref1.BaseKeyPair,BaseKey=_ref1.BaseKey,ecc_pkcs5_pad_data=require("../pad").ecc_pkcs5_pad_data,_ref2=require("./base"),generate=_ref2.generate,BaseEccKey=_ref2.BaseEccKey,hashmod=require("../hash"),sym=require("../symmetric"),SlicerBuffer=require("../openpgp/buffer").SlicerBuffer,_ref3=require("../rfc3394"),wrap=_ref3.wrap,unwrap=_ref3.unwrap,Pub=function(_super){function Pub(){return Pub.__super__.constructor.apply(this,arguments)}return __extends(Pub,_super),Pub.type=Const.public_key_algorithms.ECDH,Pub.prototype.type=Pub.type,Pub.prototype.apply_defaults=function(){return this.cipher||(this.cipher=sym.get_cipher()),this.hasher||(this.hasher=hashmod.SHA512)},Pub.prototype.read_params=function(sb){var n,size,v,val;if((size=sb.read_uint8())<(n=Const.ecdh.param_bytes))throw new Error("Need at least "+n+" bytes of params; got "+size);if((val=sb.read_uint8())!==(v=Const.ecdh.version))throw new Error("Cannot deal with future extensions, byte="+val+"; wanted "+v);return this.hasher=hashmod.alloc_or_throw(sb.read_uint8()),this.cipher=sym.get_cipher(sb.read_uint8()),sb.advance(size-3)},Pub.alloc=function(raw){return BaseEccKey.alloc(Pub,raw)},Pub.prototype.serialize_params=function(){return Buffer.concat([uint_to_buffer(8,Const.ecdh.param_bytes),uint_to_buffer(8,Const.ecdh.version),uint_to_buffer(8,this.hasher.type),uint_to_buffer(8,this.cipher.type)])},Pub.prototype.serialize=function(){return Buffer.concat([Pub.__super__.serialize.call(this),this.serialize_params()])},Pub.prototype.format_params=function(_arg){var fingerprint;return fingerprint=_arg.fingerprint,Buffer.concat([uint_to_buffer(8,this.curve.oid.length),this.curve.oid,uint_to_buffer(8,this.type),this.serialize_params(),new Buffer("Anonymous Sender ","utf8"),fingerprint])},Pub.prototype.kdf=function(_arg){var X,X_compact,buf,hash,o_bytes,params;return X=_arg.X,params=_arg.params,o_bytes=this.cipher.key_size,X_compact=this.curve.point_to_mpi_buffer_compact(X),buf=Buffer.concat([new Buffer([0,0,0,1]),X_compact,params]),hash=this.hasher(buf),hash.slice(0,o_bytes)},Pub.prototype.encrypt=function(m,_arg,cb){var C,G,S,V,fingerprint,key,n,params,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref4;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),fingerprint=_arg.fingerprint,_ref4=this.curve,n=_ref4.n,G=_ref4.G,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Pub.encrypt"}),_this.curve.random_scalar(__iced_deferrals.defer({assign_fn:function(){return function(){return v=arguments[0] }}(),lineno:100})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return V=G.multiply(v),S=_this.R.multiply(v),params=_this.format_params({fingerprint:fingerprint}),key=_this.kdf({X:S,params:params}),C=wrap({key:key,plaintext:m,cipher:_this.cipher}),cb({V:V,C:C})}}(this))},Pub}(BaseEccKey),Priv=function(_super){function Priv(_arg){this.x=_arg.x,this.pub=_arg.pub}return __extends(Priv,_super),Priv.ORDER=["x"],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.serialize=function(){return this.x.to_mpi_buffer()},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.decrypt=function(c,_arg,cb){var S,V,curve,err,esc,fingerprint,key,params,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),fingerprint=_arg.fingerprint,esc=make_esc(cb,"Priv::decrypt"),curve=this.pub.curve,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Priv.decrypt"}),c.load_V(curve,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return V=arguments[0]}}(),lineno:141}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _ref4;return S=V.multiply(_this.x),params=_this.pub.format_params({fingerprint:fingerprint}),key=_this.pub.kdf({X:S,params:params}),_ref4=unwrap({key:key,ciphertext:c.C,cipher:_this.pub.cipher}),err=_ref4[0],ret=_ref4[1],cb(err,ret)}}(this))},Priv}(BaseKey),Pair=function(_super){function Pair(){return Pair.__super__.constructor.apply(this,arguments)}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=Const.public_key_algorithms.ECDH,Pair.prototype.type=Pair.type,Pair.klass_name="ECDH",Pair.prototype.get_type=function(){return this.type},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=Const.key_flags.encrypt_comm|Const.key_flags.encrypt_storage,(flags&good_for)===flags},Pair.prototype.can_sign=function(){return!1},Pair.parse=function(pub_raw){var ret;return ret=BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.max_value=function(){return this.pub.p},Pair.prototype.pad_and_encrypt=function(data,_arg,cb){var C,V,err,fingerprint,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref4;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),fingerprint=_arg.fingerprint,err=ret=null,_ref4=ecc_pkcs5_pad_data(data),err=_ref4[0],m=_ref4[1],function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Pair.pad_and_encrypt"}),_this.pub.encrypt(m,{fingerprint:fingerprint},__iced_deferrals.defer({assign_fn:function(){return function(){return C=arguments[0].C,V=arguments[0].V}}(),lineno:196})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=_this.export_output({C:C,V:V,curve:_this.pub.curve}))})}}(this)(function(){return function(){return cb(err,ret)}}(this))},Pair.prototype.decrypt_and_unpad=function(ciphertext,_arg,cb){var err,fingerprint,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),fingerprint=_arg.fingerprint,err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Pair.decrypt_and_unpad"}),_this.priv.decrypt(ciphertext,{fingerprint:fingerprint},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:204})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,m,!0)}}(this))},Pair.parse_output=function(buf){return Output.parse(buf)},Pair.prototype.export_output=function(args){return new Output(args)},Pair.generate=function(_arg,cb){var asp,err,nbits,pair,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbits=_arg.nbits,asp=_arg.asp,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Pair.generate"}),generate({nbits:nbits,asp:asp,Pair:Pair},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],pair=arguments[1]}}(),lineno:215})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return("undefined"==typeof err||null===err)&&pair.pub.apply_defaults(),cb(err,pair)}}(this))},Pair}(BaseKeyPair),Output=function(){function Output(_arg){this.V_buf=_arg.V_buf,this.C=_arg.C,this.V=_arg.V,this.curve=_arg.curve}return Output.prototype.load_V=function(curve,cb){var err,_ref4;return this.curve=curve,_ref4=curve.mpi_point_from_buffer(this.V_buf),err=_ref4[0],this.V=_ref4[1],cb(err,this.V)},Output.parse=function(buf){var C,V_buf,a,n_bits,n_bytes,ret,sb;if(sb=new SlicerBuffer(buf),n_bits=sb.read_uint16(),n_bytes=Math.ceil(n_bits/8),V_buf=Buffer.concat([buf.slice(0,2),sb.read_buffer(n_bytes)]),n_bytes=sb.read_uint8(),C=sb.consume_rest_to_buffer(),(a=C.length)!==n_bytes)throw new Error("bad C input: wanted "+n_bytes+" bytes, but got "+a);return ret=new Output({V_buf:V_buf,C:C})},Output.prototype.get_V_buf=function(){return null==this.V_buf&&(this.V_buf=this.curve.point_to_mpi_buffer(this.V)),this.V_buf},Output.prototype.hide=function(_arg,cb){var key,max,slosh;return key=_arg.key,max=_arg.max,slosh=_arg.slosh,cb(null)},Output.prototype.find=function(_arg){var key;key=_arg.key},Output.prototype.good_for_flags=function(){return C.key_flags.encrypt_comm|C.key_flags.encrypt_storage},Output.prototype.output=function(){return Buffer.concat([this.get_V_buf(),uint_to_buffer(8,this.C.length),this.C])},Output}(),exports.ECDH=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"../basekeypair":2,"../const":5,"../hash":14,"../openpgp/buffer":35,"../pad":62,"../rfc3394":66,"../symmetric":68,"../util":70,"./base":7,buffer:80,"iced-error":115,"iced-runtime":118}],10:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseEccKey,BaseKey,BaseKeyPair,BigInteger,C,ECDH,K,Pair,Priv,Pub,bn,bufeq_secure,generate,iced,konst,make_esc,nbits,nbv,uint_to_buffer,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},bn=require("../bn"),nbits=bn.nbits,nbv=bn.nbv,BigInteger=bn.BigInteger,_ref=require("../util"),uint_to_buffer=_ref.uint_to_buffer,bufeq_secure=_ref.bufeq_secure,ASP=_ref.ASP,make_esc=require("iced-error").make_esc,konst=require("../const"),C=konst.openpgp,K=konst.kb,_ref1=require("../basekeypair"),BaseKeyPair=_ref1.BaseKeyPair,BaseKey=_ref1.BaseKey,_ref2=require("./base"),generate=_ref2.generate,BaseEccKey=_ref2.BaseEccKey,ECDH=require("./ecdh").ECDH,Pub=function(_super){function Pub(){return Pub.__super__.constructor.apply(this,arguments)}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.ECDSA,Pub.prototype.type=Pub.type,Pub.prototype.nbits=function(){return this.curve.nbits()},Pub.prototype.read_params=function(){},Pub.prototype.trunc_hash=function(h){return bn.bn_from_left_n_bits(h,this.nbits())},Pub.alloc=function(raw){return BaseEccKey.alloc(Pub,raw)},Pub.prototype.verify=function(_arg,h,cb){var err,hi,n,p,r,s,u1,u2,v,w;return r=_arg[0],s=_arg[1],err=null,hi=this.trunc_hash(h),r.signum()<=0||r.compareTo(this.curve.p)>0?err=new Error("bad r"):r.signum()<=0||s.compareTo(this.curve.p)>0?err=new Error("bad s"):(n=this.curve.n,w=s.modInverse(n),u1=hi.multiply(w).mod(n),u2=r.multiply(w).mod(n),p=this.curve.G.multiplyTwo(u1,this.R,u2),v=p.affineX.mod(n),v.equals(r)||(err=new Error("verification failed"))),cb(err)},Pub}(BaseEccKey),Priv=function(_super){function Priv(_arg){this.x=_arg.x,this.pub=_arg.pub}return __extends(Priv,_super),Priv.ORDER=["x"],Priv.prototype.ORDER=Priv.ORDER,Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.sign=function(h,cb){var G,Q,err,hi,k,n,r,s,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref3;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,_ref3=this.pub.curve,n=_ref3.n,G=_ref3.G,hi=this.pub.trunc_hash(h),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdsa.iced",funcname:"Priv.sign"}),_this.pub.curve.random_scalar(__iced_deferrals.defer({assign_fn:function(){return function(){return k=arguments[0]}}(),lineno:79})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){if(Q=G.multiply(k),r=Q.affineX.mod(n),0===r.signum())throw new Error("invalid r-value");return s=k.modInverse(n).multiply(hi.add(_this.x.multiply(r))).mod(n),cb([r,s])}}(this))},Priv}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=C.public_key_algorithms.ECDSA,Pair.prototype.type=Pair.type,Pair.klass_name="ECDSA",Pair.prototype.get_type=function(){return this.type},Pair.parse=function(pub_raw){return BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.can_encrypt=function(){return!1},Pair.subkey_algo=function(flags){return flags&(C.key_flags.certify_keys|C.key_flags.sign_data)?Pair:ECDH},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=C.key_flags.certify_keys|C.key_flags.sign_data,(flags&good_for)===flags},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var data,err,hash,hasher,sig,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref3;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,err=null,Buffer.isBuffer(sig)&&(_ref3=Pair.read_sig_from_buf(sig),err=_ref3[0],sig=_ref3[1]),hash||(hash=hasher(data)),function(_this){return function(__iced_k){return 2!==sig.length?__iced_k(err=new Error("Expected 2 Bigints in the signature")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdsa.iced",funcname:"Pair.verify_unpad_and_check_hash"}),_this.pub.verify(sig,hash,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],v=arguments[1]}}(),lineno:132})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var h,hasher,s,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hasher=_arg.hasher,hasher||(hasher=SHA512),h=hasher(data),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdsa.iced",funcname:"Pair.pad_and_sign"}),_this.priv.sign(h,__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:141})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,Buffer.concat(function(){var _i,_len,_results;for(_results=[],_i=0,_len=sig.length;_len>_i;_i++)s=sig[_i],_results.push(s.to_mpi_buffer());return _results}()))}}(this))},Pair.parse_sig=function(slice){var buf,err,n,ret,_ref3;if(buf=slice.peek_rest_to_buffer(),_ref3=Pair.read_sig_from_buf(buf),err=_ref3[0],ret=_ref3[1],n=_ref3[2],null!=err)throw err;return slice.advance(n),ret},Pair.read_sig_from_buf=function(buf){var err,n,o,order,orig_len,ret,x;return orig_len=buf.length,order=["r","s"],err=null,ret=function(){var _i,_len,_ref3,_results;for(_results=[],_i=0,_len=order.length;_len>_i;_i++)o=order[_i],null==err&&(_ref3=bn.mpi_from_buffer(buf),err=_ref3[0],x=_ref3[1],buf=_ref3[2],_results.push(x));return _results}(),n=orig_len-buf.length,[err,ret,n]},Pair.prototype.good_for_flags=function(){return C.key_flags.certify_keys|C.key_flags.sign_data},Pair.generate=function(_arg,cb){var asp,nbits;return nbits=_arg.nbits,asp=_arg.asp,generate({nbits:nbits,asp:asp,Pair:Pair},cb)},Pair}(BaseKeyPair),exports.ECDSA=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"../basekeypair":2,"../bn":4,"../const":5,"../util":70,"./base":7,"./ecdh":9,buffer:80,"iced-error":115,"iced-runtime":118}],11:[function(require,module,exports){(function(){exports.curves=require("./curves"),exports.ECDSA=require("./ecdsa").ECDSA,exports.ECDH=require("./ecdh").ECDH}).call(this)},{"./curves":8,"./ecdh":9,"./ecdsa":10}],12:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseKey,BaseKeyPair,C,K,MRF,Output,Pair,Priv,Pub,SRF,bn,bufeq_secure,eme_pkcs1_decode,eme_pkcs1_encode,iced,konst,make_esc,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},bn=require("./bn"),_ref=require("./util"),bufeq_secure=_ref.bufeq_secure,ASP=_ref.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,_ref1=require("./basekeypair"),BaseKeyPair=_ref1.BaseKeyPair,BaseKey=_ref1.BaseKey,_ref2=require("./rand"),SRF=_ref2.SRF,MRF=_ref2.MRF,_ref3=require("./pad"),eme_pkcs1_encode=_ref3.eme_pkcs1_encode,eme_pkcs1_decode=_ref3.eme_pkcs1_decode,Pub=function(_super){function Pub(_arg){this.p=_arg.p,this.g=_arg.g,this.y=_arg.y}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.ELGAMAL,Pub.prototype.type=Pub.type,Pub.ORDER=["p","g","y"],Pub.prototype.ORDER=Pub.ORDER,Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.encrypt=function(m,cb){var c,k,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Pub.encrypt"}),SRF().random_zn(_this.p.subtract(bn.nbv(2)),__iced_deferrals.defer({assign_fn:function(){return function(){return k=arguments[0]}}(),lineno:35})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return k=k.add(bn.BigInteger.ONE),c=[_this.g.modPow(k,_this.p),_this.y.modPow(k,_this.p).multiply(m).mod(_this.p)],cb(c)}}(this))},Pub}(BaseKey),Priv=function(_super){function Priv(_arg){this.x=_arg.x,this.pub=_arg.pub}return __extends(Priv,_super),Priv.ORDER=["x"],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.serialize=function(){return this.x.to_mpi_buffer()},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.decrypt=function(c,cb){var p,ret;return p=this.pub.p,ret=c[0].modPow(this.x,p).modInverse(p).multiply(c[1]).mod(p),cb(null,ret)},Priv}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=C.public_key_algorithms.ELGAMAL,Pair.klass_name="ELGAMAL",Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=this.good_for_flags(),(flags&good_for)===flags},Pair.prototype.good_for_flags=function(){return C.key_flags.encrypt_comm|C.key_flags.encrypt_storage},Pair.prototype.can_sign=function(){return!1},Pair.parse=function(pub_raw){var ret;return ret=BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.max_value=function(){return this.pub.p},Pair.prototype.pad_and_encrypt=function(data,params,cb){var c_mpis,err,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Pair.pad_and_encrypt"}),eme_pkcs1_encode(data,_this.pub.p.mpi_byte_length(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:112})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Pair.pad_and_encrypt"}),_this.pub.encrypt(m,__iced_deferrals.defer({assign_fn:function(){return function(){return c_mpis=arguments[0]}}(),lineno:114})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=_this.export_output({c_mpis:c_mpis}))})}(function(){return cb(err,ret)})}}(this))},Pair.prototype.decrypt_and_unpad=function(ciphertext,params,cb){var b,err,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Pair.decrypt_and_unpad"}),_this.priv.decrypt(ciphertext.c(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:122})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _ref4;return null==err&&(b=m.to_padded_octets(_this.pub.p),_ref4=eme_pkcs1_decode(b),err=_ref4[0],ret=_ref4[1]),cb(err,ret)}}(this))},Pair.parse_output=function(buf){return Output.parse(buf)},Pair.prototype.export_output=function(args){return new Output(args)},Pair}(BaseKeyPair),Output=function(){function Output(_arg){this.c_mpis=_arg.c_mpis,this.c_bufs=_arg.c_bufs}return Output.parse=function(buf){var c_mpis,err,i,n,ret;if(c_mpis=function(){var _i,_ref4,_results;for(_results=[],i=_i=0;2>_i;i=++_i){if(_ref4=bn.mpi_from_buffer(buf),err=_ref4[0],ret=_ref4[1],buf=_ref4[2],n=_ref4[3],null!=err)throw err;_results.push(ret)}return _results}(),0!==buf.length)throw new Error("junk at the end of input");return new Output({c_mpis:c_mpis})},Output.prototype.c=function(){return this.c_mpis},Output.prototype.hide=function(_arg,cb){var c_mpi,err,key,max,new_c_mpis,slosh,tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,max=_arg.max,slosh=_arg.slosh,max||(max=4096),slosh||(slosh=128),err=null,this.c_bufs=null,new_c_mpis=[],function(_this){return function(__iced_k){var _i,_len,_ref4,_results,_while;_ref4=_this.c_mpis,_len=_ref4.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(c_mpi=_ref4[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Output.hide"}),key.hide({i:c_mpi,max:max,slosh:slosh},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],tmp=arguments[1]}}(),lineno:164})),__iced_deferrals._fulfill()}(function(){new_c_mpis.push(tmp),function(__iced_k){return null==err?__iced_k():void!function(){_break()}(__iced_k)}(_next)})):_break()})(__iced_k)}}(this)(function(_this){return function(){return null==err&&(_this.c_mpis=new_c_mpis),cb(err)}}(this))},Output.prototype.find=function(_arg){var j,key;return key=_arg.key,this.c_mpis=function(){var _i,_len,_ref4,_results;for(_ref4=this.c_mpis,_results=[],_i=0,_len=_ref4.length;_len>_i;_i++)j=_ref4[_i],_results.push(key.find(j));return _results}.call(this)},Output.prototype.get_c_bufs=function(){var i;return null!=this.c_bufs?this.c_bufs:this.c_bufs=function(){var _i,_len,_ref4,_results;for(_ref4=this.c_mpis,_results=[],_i=0,_len=_ref4.length;_len>_i;_i++)i=_ref4[_i],_results.push(i.to_mpi_buffer());return _results}.call(this)},Output.prototype.output=function(){return Buffer.concat(this.get_c_bufs())},Output}(),exports.ElGamal=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"./basekeypair":2,"./bn":4,"./const":5,"./pad":62,"./rand":65,"./util":70,buffer:80,"iced-error":115,"iced-runtime":118}],13:[function(require,module,exports){(function(){var ASP,BaseKey,BaseKeyPair,C,K,MRF,Pair,Priv,Pub,SRF,bn,bufeq_secure,eme_pkcs1_decode,eme_pkcs1_encode,konst,make_esc,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};bn=require("./bn"),_ref=require("./util"),bufeq_secure=_ref.bufeq_secure,ASP=_ref.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,_ref1=require("./basekeypair"),BaseKeyPair=_ref1.BaseKeyPair,BaseKey=_ref1.BaseKey,_ref2=require("./rand"),SRF=_ref2.SRF,MRF=_ref2.MRF,_ref3=require("./pad"),eme_pkcs1_encode=_ref3.eme_pkcs1_encode,eme_pkcs1_decode=_ref3.eme_pkcs1_decode,Pub=function(_super){function Pub(raw){this.raw=raw}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.ELGAMAL_SIGN_AND_ENCRYPT,Pub.prototype.type=Pub.type,Pub.ORDER=[],Pub.prototype.ORDER=Pub.ORDER,Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.encrypt=function(m,cb){return cb(null)},Pub}(BaseKey),Priv=function(_super){function Priv(raw){this.raw=raw}return __extends(Priv,_super),Priv.ORDER=[],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.serialize=function(){return null},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.decrypt=function(c,cb){return cb(null)},Priv}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=C.public_key_algorithms.ELGAMAL_SIGN_AND_ENCRYPT,Pair.prototype.type=Pair.type,Pair.prototype.fulfills_flags=function(){return!1},Pair.prototype.is_toxic=function(){return!0},Pair.prototype.can_sign=function(){return!1},Pair.prototype.can_decrypt=function(){return!1},Pair.prototype.err=function(){return new Error("refusing to use ElGamal Sign+Encrypt")},Pair.parse=function(pub_raw){var ret;return ret=BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.pad_and_encrypt=function(data,cb){return cb(this.err(),null)},Pair.prototype.decrypt_and_unpad=function(ciphertext,params,cb){return cb(this.err(),null)},Pair.parse_output=function(){return null},Pair.prototype.export_output=function(){return null},Pair}(BaseKeyPair),exports.ElGamalSignEncrypt=exports.Pair=Pair}).call(this)},{"./basekeypair":2,"./bn":4,"./const":5,"./pad":62,"./rand":65,"./util":70,"iced-error":115}],14:[function(require,module,exports){(function(){var C,WordArray,algos,alloc,alloc_or_throw,decorate,k,make_hasher,make_streamer,streamers,triplesec,v,_lookup,_ref;C=require("./const").openpgp,triplesec=require("triplesec"),WordArray=triplesec.WordArray,algos=triplesec.hash,decorate=function(f,klass,name,type){return f.type=type,f.algname=name,f.output_length=klass.output_size,f.klass=klass,f},make_hasher=function(klass,name,type){var f;return null!=klass?(f=function(x){return(new klass).bufhash(x)},decorate(f,klass,name,type)):null},make_streamer=function(klass,name,type){return function(){var obj,ret;return obj=new klass,ret=function(buf){return obj.clone().finalize(null!=buf?WordArray.from_buffer(buf):null).to_buffer()},ret.update=function(buf){return null!=buf&&obj.update(WordArray.from_buffer(buf)),this},decorate(ret,klass,name,type)}},_lookup={},exports.streamers=streamers={},_ref=C.hash_algorithms;for(k in _ref)v=_ref[k],_lookup[v]=k,exports[k]=make_hasher(algos[k],k,v),streamers[k]=make_streamer(algos[k],k,v);exports.alloc=alloc=function(typ){var klass,name,ret;return ret=null,name=_lookup[typ],null!=name&&(klass=algos[name]),null!=klass&&(ret=make_hasher(klass,name,typ)),ret},exports.alloc_or_throw=alloc_or_throw=function(typ){var ret;if(ret=alloc(typ),!ret)throw new Error("unknown hash type: "+typ);return ret}}).call(this)},{"./const":5,triplesec:181}],15:[function(require,module,exports){(function(){var C,pjs;C=require("./const"),pjs=require("../package.json"),exports.header={version:C.header.version+(" v"+pjs.version),comment:C.header.comment}}).call(this)},{"../package.json":202,"./const":5}],16:[function(require,module,exports){(function(Buffer){(function(){var K,SHA256,alloc,bufeq_secure,katch,null_hash,obj_extract,pack,purepack,read_base64,seal,unpack,unseal,_ref,_ref1;K=require("../const").kb,_ref=require("../hash"),alloc=_ref.alloc,SHA256=_ref.SHA256,purepack=require("purepack"),_ref1=require("../util"),katch=_ref1.katch,obj_extract=_ref1.obj_extract,bufeq_secure=_ref1.bufeq_secure,null_hash=new Buffer(0),pack=function(x){return purepack.pack(x,{sort_keys:!0})},unpack=function(x){return purepack.unpack(x)},seal=function(_arg){var dohash,hasher,obj,oo,packed;return obj=_arg.obj,dohash=_arg.dohash,hasher=SHA256,oo={version:K.versions.V1,tag:obj.tag,body:obj.body},dohash&&(oo.hash={type:hasher.type,value:null_hash},packed=pack(oo),oo.hash.value=hasher(packed)),pack(oo)},read_base64=function(raw){var parts;return parts=raw.split(/\s+/).join(""),new Buffer(parts,"base64")},unseal=function(buf){var h,hasher,hv,oo,t,_ref2;if(oo=unpack(buf),null!=(hv=null!=oo&&null!=(_ref2=oo.hash)?_ref2.value:void 0)){if(oo.hash.value=null_hash,hasher=alloc(t=oo.hash.type),null==hasher)throw new Error("unknown hash algo: "+t);if(h=hasher(pack(oo)),!bufeq_secure(h,hv))throw new Error("hash mismatch");if(oo.version!==K.versions.V1)throw new Error("unknown version")}return obj_extract(oo,["tag","body"])},exports.seal=seal,exports.pack=pack,exports.unseal=unseal,exports.unpack=unpack,exports.read_base64=read_base64}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,"../util":70,buffer:80,purepack:169}],17:[function(require,module,exports){(function(Buffer){(function(){var C,DH,EdDSA,EncKeyManager,Encryption,K,KeyManager,KeyManagerInterface,Signature,SignatureEngine,akatch,alloc,asyncify,base64u,box,buffer_xor,encode,iced,konst,make_esc,unbox,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},KeyManagerInterface=require("../kmi").KeyManagerInterface,make_esc=require("iced-error").make_esc,encode=require("./encode"),_ref=require("../util"),base64u=_ref.base64u,buffer_xor=_ref.buffer_xor,asyncify=_ref.asyncify,akatch=_ref.akatch,konst=require("../const"),alloc=require("./packet/alloc").alloc,Signature=require("./packet/signature").Signature,Encryption=require("./packet/encryption").Encryption,EdDSA=require("../nacl/eddsa").EdDSA,DH=require("../nacl/dh").DH,K=konst.kb,C=konst.openpgp,KeyManager=function(_super){function KeyManager(_arg){this.key=_arg.key,this.server_half=_arg.server_half}return __extends(KeyManager,_super),KeyManager.generate=function(_arg,cb){var algo,err,key,klass,seed,server_half,split,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),algo=_arg.algo,seed=_arg.seed,split=_arg.split,server_half=_arg.server_half,klass=_arg.klass,algo||(algo=EdDSA),klass||(klass=KeyManager),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced",funcname:"KeyManager.generate"}),algo.generate({split:split,seed:seed,server_half:server_half},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],key=arguments[1],server_half=arguments[2]}}(),lineno:29})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,new klass({key:key,server_half:server_half}))}}(this))},KeyManager.prototype.get_mask=function(){return C.key_flags.sign_data|C.key_flags.certify_keys|C.key_flags.auth},KeyManager.prototype.fetch=function(key_ids,flags,cb){var err,key,mask,s;return s=this.key.ekid().toString("hex"),key=null,mask=this.get_mask(),__indexOf.call(key_ids,s)>=0&&(flags&mask)===flags?key=this.key:err=new Error("Key not found"),cb(err,key)},KeyManager.prototype.get_keypair=function(){return this.key},KeyManager.prototype.get_primary_keypair=function(){return this.key},KeyManager.prototype.can_verify=function(){return!0},KeyManager.prototype.eq=function(km2){return this.key.eq(km2.key)},KeyManager.import_public=function(_arg,cb){var err,hex,key,raw,ret,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hex=_arg.hex,raw=_arg.raw,err=ret=null,null!=hex&&(raw=new Buffer(hex,"hex")),_ref1=EdDSA.parse_kb(raw),err=_ref1[0],key=_ref1[1],function(){return function(__iced_k){return null==err?__iced_k(ret=new KeyManager({key:key})):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced",funcname:"KeyManager.import_public"}),EncKeyManager.import_public({raw:raw},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:66})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))},KeyManager.prototype.check_public_eq=function(km2){return this.eq(km2)},KeyManager.prototype.export_public=function(_arg,cb){var asp,regen,ret;return asp=_arg.asp,regen=_arg.regen,ret=this.key.ekid().toString("hex"),cb(null,ret)},KeyManager.prototype.export_server_half=function(){var _ref1;return null!=(_ref1=this.server_half)?_ref1.toString("hex"):void 0},KeyManager.prototype.get_ekid=function(){return this.get_keypair().ekid()},KeyManager.prototype.get_fp2=function(){return this.get_ekid()},KeyManager.prototype.get_fp2_formatted=function(){return base64u.encode(this.get_fp2())},KeyManager.prototype.get_type=function(){return"kb"},KeyManager.prototype.make_sig_eng=function(){return new SignatureEngine({km:this})},KeyManager}(KeyManagerInterface),EncKeyManager=function(_super){function EncKeyManager(){return EncKeyManager.__super__.constructor.apply(this,arguments)}return __extends(EncKeyManager,_super),EncKeyManager.generate=function(params,cb){return params.algo=DH,params.klass=EncKeyManager,KeyManager.generate(params,cb)},EncKeyManager.prototype.make_sig_eng=function(){return null },EncKeyManager.prototype.can_sign=function(){return!1},EncKeyManager.prototype.can_verify=function(){return!1},EncKeyManager.prototype.get_mask=function(){return C.key_flags.encrypt_comm|C.key_flags.encrypt_storage},EncKeyManager.import_public=function(_arg,cb){var err,hex,key,raw,ret,_ref1;return hex=_arg.hex,raw=_arg.raw,err=ret=null,null!=hex&&(raw=new Buffer(hex,"hex")),_ref1=DH.parse_kb(raw),err=_ref1[0],key=_ref1[1],null==err&&(ret=new EncKeyManager({key:key})),cb(err,ret)},EncKeyManager}(KeyManager),exports.unbox=unbox=function(_arg,cb){var armored,binary,encrypt_for,esc,packet,rawobj,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,binary=_arg.binary,rawobj=_arg.rawobj,encrypt_for=_arg.encrypt_for,esc=make_esc(cb,"unbox"),function(){return function(__iced_k){return null!=armored||null!=rawobj||null!=binary?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),athrow(new Error("need either 'armored' or 'binary' or 'rawobj'"),esc(__iced_deferrals.defer({lineno:134}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){null!=armored&&(binary=new Buffer(armored,"base64")),function(__iced_k){return null==binary?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),akatch(function(){return encode.unseal(binary)},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return rawobj=arguments[0]}}(),lineno:139}))),__iced_deferrals._fulfill()}(__iced_k)}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),asyncify(alloc(rawobj),esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packet=arguments[0]}}(),lineno:141}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),packet.unbox({encrypt_for:encrypt_for},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return res=arguments[0]}}(),lineno:142}))),__iced_deferrals._fulfill()}(function(){return null!=res.keypair&&(res.km=new KeyManager({key:res.keypair})),null!=res.sender_keypair&&(res.sender_km=new KeyManager({key:res.sender_keypair})),null!=res.receiver_keypair&&(res.receiver_km=new KeyManager({key:res.receiver_keypair})),cb(null,res,binary)})})})}}(this))},box=function(_arg,cb){var anonymous,armored,encrypt_for,esc,msg,packed,packet,sealed,sign_with,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,anonymous=_arg.anonymous,esc=make_esc(cb,"box"),function(){return function(__iced_k){null!=encrypt_for?!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),Encryption.box({sign_with:sign_with,encrypt_for:encrypt_for,plaintext:msg,anonymous:anonymous},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packet=arguments[0]}}(),lineno:158}))),__iced_deferrals._fulfill()}(__iced_k):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),Signature.box({km:sign_with,payload:msg},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packet=arguments[0]}}(),lineno:160}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return packed=packet.frame_packet(),sealed=encode.seal({obj:packed,dohash:!1}),armored=sealed.toString("base64"),cb(null,armored,sealed)}}(this))},SignatureEngine=function(){function SignatureEngine(_arg){this.km=_arg.km}return SignatureEngine.prototype.get_km=function(){return this.km},SignatureEngine.prototype.box=function(msg,cb){var armored,esc,out,raw,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"SignatureEngine::box"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced",funcname:"SignatureEngine.box"}),box({msg:msg,sign_with:_this.km},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return armored=arguments[0],raw=arguments[1]}}(),lineno:179}))),__iced_deferrals._fulfill()}}(this)(function(){return function(){return out={type:"kb",armored:armored,kb:armored,raw:raw},cb(null,out)}}(this))},SignatureEngine.prototype.unbox=function(msg,cb){var a,arg,b,binary,err,esc,payload,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"SignatureEngine::unbox"),err=payload=null,arg=Buffer.isBuffer(msg)?{binary:msg}:{armored:msg},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced",funcname:"SignatureEngine.unbox"}),unbox(arg,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return res=arguments[0],binary=arguments[1]}}(),lineno:190}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return res.km.eq(_this.km)?payload=res.payload:(a=res.km.get_ekid().toString("hex"),b=_this.km.get_ekid().toString("hex"),err=new Error("Got wrong signing key: "+a+" != "+b)),cb(err,payload,binary)}}(this))},SignatureEngine}(),module.exports={box:box,unbox:unbox,KeyManager:KeyManager,EncKeyManager:EncKeyManager}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../kmi":27,"../nacl/dh":30,"../nacl/eddsa":31,"../util":70,"./encode":16,"./packet/alloc":18,"./packet/encryption":20,"./packet/signature":22,buffer:80,"iced-error":115,"iced-runtime":118}],18:[function(require,module,exports){(function(){var Encryption,K,P3SKB,Signature;K=require("../../const").kb,P3SKB=require("./p3skb").P3SKB,Signature=require("./signature").Signature,Encryption=require("./encryption").Encryption,exports.alloc=function(_arg){var body,err,ret,tag;return tag=_arg.tag,body=_arg.body,ret=err=null,ret=function(){switch(tag){case K.packet_tags.p3skb:return P3SKB.alloc({tag:tag,body:body});case K.packet_tags.signature:return Signature.alloc({tag:tag,body:body});case K.packet_tags.encryption:return Encryption.alloc({tag:tag,body:body});default:return err=new Error("unknown packet tag: "+tag),null}}(),[err,ret]}}).call(this)},{"../../const":5,"./encryption":20,"./p3skb":21,"./signature":22}],19:[function(require,module,exports){(function(){var K,Packet,seal,util;util=require("../../util"),seal=require("../encode").seal,K=require("../../const").kb,Packet=function(){function Packet(){}return Packet.prototype.frame_packet=function(){return{tag:this.tag(),body:this.get_packet_body()}},Packet.prototype.frame_packet_armored=function(_arg){var dohash,obj;return dohash=_arg.dohash,obj=this.frame_packet(),seal({obj:obj,dohash:dohash}).toString("base64")},Packet.prototype.is_signature=function(){return!1},Packet.prototype.is_p3skb=function(){return!1},Packet.alloc=function(_arg){var P3SKB,Signature,body,err,ret,tag;return tag=_arg.tag,body=_arg.body,ret=err=null,ret=function(){switch(tag){case K.packet_tags.p3skb:return P3SKB=require("./p3skb").P3SKB,P3SKB.alloc({tag:tag,body:body});case K.packet_tags.signature:return Signature=require("./signature").Signature,Signature.alloc({tag:tag,body:body});default:return err=new Error("unknown packet tag: "+tag),null}}(),[err,ret]},Packet.prototype.unbox=function(params,cb){return cb(new Error("unbox() unimplemented for tag="+this.tag))},Packet}(),exports.Packet=Packet}).call(this)},{"../../const":5,"../../util":70,"../encode":16,"./p3skb":21,"./signature":22}],20:[function(require,module,exports){(function(Buffer){(function(){var C,Encryption,K,Packet,dh,iced,konst,make_esc,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},konst=require("../../const"),K=konst.kb,C=konst.openpgp,Packet=require("./base").Packet,make_esc=require("iced-error").make_esc,dh=require("../../nacl/main").dh,Encryption=function(_super){function Encryption(_arg){this.encrypt_for=_arg.encrypt_for,this.sign_with=_arg.sign_with,this.plaintext=_arg.plaintext,this.ciphertext=_arg.ciphertext,this.sender_key=_arg.sender_key,this.nonce=_arg.nonce,this.anonymous=_arg.anonymous,Encryption.__super__.constructor.call(this),this.emphemeral=!1}return __extends(Encryption,_super),Encryption.ENC_TYPE=K.public_key_algorithms.NACL_DH,Encryption.tag=function(){return K.packet_tags.encryption},Encryption.prototype.tag=function(){return Encryption.tag()},Encryption.prototype.get_packet_body=function(){var enc_type;return enc_type=Encryption.ENC_TYPE,{sender_key:this.sender_key,ciphertext:this.ciphertext,nonce:this.nonce,enc_type:enc_type,receiver_key:this.receiver_key}},Encryption.alloc=function(_arg){var a,b,body,err,ret,tag;if(tag=_arg.tag,body=_arg.body,ret=null,err=tag!==Encryption.tag()?new Error("wrong tag found: "+tag):(a=body.enc_type)!==(b=Encryption.ENC_TYPE)?err=new Error("Expected Curve25519 DH (type "+b+"); got "+a):(ret=new Encryption(body),null),null!=err)throw err;return ret},Encryption.prototype.is_signature=function(){return!1},Encryption.prototype.get_sender_keypair=function(_arg,cb){var encrypt,err,ret,sign_with,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sign_with=_arg.sign_with,encrypt=_arg.encrypt,err=ret=null,function(_this){return function(__iced_k){return null!=sign_with?__iced_k(ret=sign_with.get_keypair()):void!function(__iced_k){return null!=_this.sign_with?__iced_k(ret=_this.sign_with.get_keypair()):void!function(__iced_k){return null!=_this.sender_keypair?__iced_k(ret=_this.sender_keypair):void!function(__iced_k){var _ref;return encrypt?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.get_sender_keypair"}),dh.Pair.generate({},__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1.sender_keypair=arguments[1]}}(_this),lineno:56})),__iced_deferrals._fulfill()}(function(){return ret=_this.sender_keypair,__iced_k(_this.emphemeral=!0)}):__iced_k(null!=_this.sender_key?(_ref=dh.Pair.parse_kb(_this.sender_key),err=_ref[0],_this.sender_keypair=_ref[1],_ref,null==err?ret=_this.sender_keypair:void 0):err=new Error("Cannot encrypt without a sender keypair"))}(__iced_k)}(__iced_k)}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))},Encryption.prototype.encrypt=function(params,cb){var esc,plaintext,recvr,sender,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"encrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.encrypt"}),_this.get_sender_keypair({encrypt:!0},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sender=arguments[0]}}(),lineno:71}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){recvr=_this.encrypt_for.get_keypair(),plaintext=Buffer.concat([_this.plaintext,new Buffer([_this.emphemeral?1:0])]),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.encrypt"}),recvr.encrypt_kb({plaintext:plaintext,sender:sender},esc(__iced_deferrals.defer({assign_fn:function(__slot_1,__slot_2){return function(){return __slot_1.ciphertext=arguments[0].ciphertext,__slot_2.nonce=arguments[0].nonce}}(_this,_this),lineno:77}))),__iced_deferrals._fulfill()}(function(){return(!_this.anonymous||_this.emphemeral)&&(_this.sender_key=sender.ekid()),_this.anonymous||(_this.receiver_key=recvr.ekid()),cb(null)})}}(this))},Encryption.prototype.decrypt=function(_arg,cb){var args,encrypt_for,esc,plaintext,recvr,sender,sign_with,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,esc=make_esc(cb,"decrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.decrypt"}),_this.get_sender_keypair({sign_with:sign_with},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sender=arguments[0]}}(),lineno:86}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){args={ciphertext:_this.ciphertext,nonce:_this.nonce,sender:sender},recvr=encrypt_for.get_keypair(),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.decrypt"}),recvr.decrypt_kb(args,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return plaintext=arguments[0]}}(),lineno:89}))),__iced_deferrals._fulfill()}(function(){return _this.plaintext=plaintext.slice(0,-1),_this.emphemeral=plaintext.slice(-1)[0],cb(null,{sender_keypair:sender,plaintext:_this.plaintext,emphemeral:_this.emphemeral,receiver_keypair:recvr})})}}(this))},Encryption.prototype.unbox=function(_arg,cb){var encrypt_for,err,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),encrypt_for=_arg.encrypt_for,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.unbox"}),_this.decrypt({encrypt_for:encrypt_for},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],res=arguments[1]}}(),lineno:97})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,res)}}(this))},Encryption.box=function(_arg,cb){var anonymous,encrypt_for,err,packet,plaintext,sign_with,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,plaintext=_arg.plaintext,anonymous=_arg.anonymous,packet=new Encryption({sign_with:sign_with,encrypt_for:encrypt_for,plaintext:plaintext,anonymous:anonymous}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.box"}),packet.encrypt({},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:104})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return"undefined"!=typeof err&&null!==err&&(packet=null),cb(err,packet)}}(this))},Encryption}(Packet),exports.Encryption=Encryption}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../nacl/main":32,"./base":19,buffer:80,"iced-error":115,"iced-runtime":118}],21:[function(require,module,exports){(function(){var Decryptor,K,P3SKB,Packet,SHA512,box,bufeq_secure,bufferify,iced,make_esc,native_rng,pack,rsa,triplesec,__iced_k,__iced_k_noop,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},K=require("../../const").kb,triplesec=require("triplesec"),SHA512=require("../../hash").SHA512,Decryptor=triplesec.Decryptor,native_rng=triplesec.prng.native_rng,Packet=require("./base").Packet,_ref=require("../encode"),pack=_ref.pack,box=_ref.box,make_esc=require("iced-error").make_esc,rsa=require("../../rsa"),_ref1=require("../../util"),bufeq_secure=_ref1.bufeq_secure,bufferify=_ref1.bufferify,P3SKB=function(_super){function P3SKB(_arg){var priv,priv_clear;this.pub=_arg.pub,priv_clear=_arg.priv_clear,priv=_arg.priv,this.type=_arg.type,P3SKB.__super__.constructor.call(this),this.priv=null!=priv?priv:null!=priv_clear?{data:priv_clear,encryption:K.key_encryption.none}:void 0}return __extends(P3SKB,_super),P3SKB.tag=function(){return K.packet_tags.p3skb},P3SKB.prototype.tag=function(){return P3SKB.tag()},P3SKB.prototype.get_packet_body=function(){var ret;return ret={pub:this.pub,priv:this.priv},null!=this.type&&(ret.type=this.type),ret},P3SKB.prototype.lock=function(_arg,cb){var asp,ct,err,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,tsenc=_arg.tsenc,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/p3skb.iced",funcname:"P3SKB.lock"}),tsenc.run({data:_this.priv.data,progress_hook:null!=asp?asp.progress_hook():void 0},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ct=arguments[1]}}(),lineno:30})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(_this.priv.data=ct,_this.priv.encryption=K.key_encryption.triplesec_v3),cb(err)}}(this))},P3SKB.prototype.unlock=function(_arg,cb){var asp,dec,err,progress_hook,raw,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,tsenc=_arg.tsenc,function(_this){return function(__iced_k){switch(_this.priv.encryption){case K.key_encryption.triplesec_v3:case K.key_encryption.triplesec_v2:case K.key_encryption.triplesec_v1:dec=new Decryptor({enc:tsenc}),progress_hook=null!=asp?asp.progress_hook():void 0,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/p3skb.iced",funcname:"P3SKB.unlock"}),dec.run({data:_this.priv.data,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],raw=arguments[1]}}(),lineno:41})),__iced_deferrals._fulfill()}(function(){return dec.scrub(),__iced_k("undefined"==typeof err||null===err?(_this.priv.data=raw,_this.priv.encryption=K.key_encryption.none):void 0)});break;case K.key_encryption.none:return __iced_k();default:return __iced_k(err=new Error("Unknown key encryption type: "+k.encryption))}}}(this)(function(){return function(){return cb(err)}}(this))},P3SKB.alloc=function(_arg){var body,tag;if(tag=_arg.tag,body=_arg.body,tag===P3SKB.tag())return new P3SKB(body);throw new Error("wrong tag found: "+tag)},P3SKB.prototype.has_private=function(){return null!=this.priv},P3SKB.prototype.is_locked=function(){return this.priv.encryption!==K.key_encryption.none},P3SKB.prototype.get_private_data=function(){var _ref2;return null!=(_ref2=this.priv)?_ref2.data:void 0},P3SKB.prototype.get_public_data=function(){return this.pub},P3SKB.prototype.get_key_type=function(){return this.type},P3SKB.prototype.is_p3skb=function(){return!0},P3SKB}(Packet),exports.P3SKB=P3SKB}).call(this)},{"../../const":5,"../../hash":14,"../../rsa":67,"../../util":70,"../encode":16,"./base":19,"iced-error":115,"iced-runtime":118,triplesec:181}],22:[function(require,module,exports){(function(){var C,K,Packet,Signature,eddsa,iced,konst,make_esc,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},konst=require("../../const"),K=konst.kb,C=konst.openpgp,Packet=require("./base").Packet,make_esc=require("iced-error").make_esc,eddsa=require("../../nacl/main").eddsa,Signature=function(_super){function Signature(_arg){this.key=_arg.key,this.payload=_arg.payload,this.sig=_arg.sig,this.detached=_arg.detached,Signature.__super__.constructor.call(this)}return __extends(Signature,_super),Signature.SIG_TYPE=K.public_key_algorithms.NACL_EDDSA,Signature.HASH_TYPE=C.hash_algorithms.SHA512,Signature.tag=function(){return K.packet_tags.signature},Signature.prototype.tag=function(){return Signature.tag()},Signature.prototype.get_packet_body=function(){var hash_type,sig_type;return sig_type=Signature.SIG_TYPE,hash_type=Signature.HASH_TYPE,{key:this.key,payload:this.payload,sig:this.sig,detached:this.detached,sig_type:sig_type,hash_type:hash_type}},Signature.alloc=function(_arg){var a,b,body,err,ret,tag;if(tag=_arg.tag,body=_arg.body,ret=null,err=tag!==Signature.tag()?new Error("wrong tag found: "+tag):(a=body.hash_type)!==(b=Signature.HASH_TYPE)?new Error("Expected SHA512 (type "+b+"); got "+a):(a=body.sig_type)!==(b=Signature.SIG_TYPE)?err=new Error("Expected EDDSA (type "+b+"); got "+a):(ret=new Signature(body),null),null!=err)throw err;return ret},Signature.prototype.is_signature=function(){return!0},Signature.prototype.verify=function(cb){var err,esc,km,pair,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"verify"),err=km=null,_ref=eddsa.Pair.parse_kb(this.key),err=_ref[0],pair=_ref[1],function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/signature.iced",funcname:"Signature.verify"}),pair.verify_kb(_this,esc(__iced_deferrals.defer({lineno:58}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){return cb(err,{keypair:pair,payload:_this.payload})}}(this))},Signature.prototype.unbox=function(params,cb){var err,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/signature.iced",funcname:"Signature.unbox"}),_this.verify(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],res=arguments[1]}}(),lineno:64})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,res)}}(this))},Signature.box=function(_arg,cb){var detached,esc,km,packet,pair,payload,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),km=_arg.km,payload=_arg.payload,esc=make_esc(cb,"@sign"),pair=km.get_keypair(),detached=!0,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/signature.iced",funcname:"Signature.box"}),pair.sign_kb({payload:payload,detached:detached},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:73}))),__iced_deferrals._fulfill()}}(this)(function(){return function(){return packet=new Signature({key:pair.ekid(),payload:payload,sig:sig,detached:detached}),cb(null,packet)}}(this))},Signature}(Packet),exports.Signature=Signature,exports.sign=Signature.sign}).call(this)},{"../../const":5,"../../nacl/main":32,"./base":19,"iced-error":115,"iced-runtime":118}],23:[function(require,module,exports){(function(Buffer){(function(){var SRF,bufxor,genseed,iced,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},SRF=require("../rand").SRF,exports.bufxor=bufxor=function(b1,b2){var arr,c,i;return arr=function(){var _i,_len,_results;for(_results=[],i=_i=0,_len=b1.length;_len>_i;i=++_i)c=b1[i],_results.push(c^b2[i]);return _results}(),new Buffer(arr)},exports.genseed=genseed=function(_arg,cb){var err,len,rseed,seed,server_half,split,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),seed=_arg.seed,split=_arg.split,len=_arg.len,server_half=_arg.server_half,err=rseed=null,null==server_half&&(server_half=null),function(){return function(__iced_k){return null==seed||split&&null==server_half?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/util.iced"}),SRF().random_bytes(len,__iced_deferrals.defer({assign_fn:function(){return function(){return rseed=arguments[0]}}(),lineno:16})),__iced_deferrals._fulfill()}(__iced_k):__iced_k()}}(this)(function(){return function(){return null!=seed&&seed.length!==len?err=new Error("Wrong seed length; need "+len+" bytes; got "+seed.length):null!=seed&&null!=rseed?(server_half=rseed,seed=bufxor(seed,rseed)):null!=seed&&null!=server_half?seed=bufxor(seed,server_half):null==seed&&(seed=rseed),cb(err,{seed:seed,server_half:server_half})}}(this))}}).call(this)}).call(this,require("buffer").Buffer)},{"../rand":65,buffer:80,"iced-runtime":118}],24:[function(require,module,exports){(function(){var KeyFetcher;KeyFetcher=function(){function KeyFetcher(){}return KeyFetcher.prototype.fetch=function(ids,ops,cb){return cb(new Error("not implemented"))},KeyFetcher}(),exports.KeyFetcher=KeyFetcher}).call(this)},{}],25:[function(require,module,exports){(function(){var KeyFetcher,PgpKeyRing,hexkid,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};KeyFetcher=require("./keyfetch").KeyFetcher,hexkid=function(k){return k.toString("hex")},PgpKeyRing=function(_super){function PgpKeyRing(){this._keys={},this._kms={}}return __extends(PgpKeyRing,_super),PgpKeyRing.prototype.add_key_manager=function(km){var k,keys,kid,_i,_len,_results;for(keys=km.export_pgp_keys_to_keyring(),_results=[],_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],kid=hexkid(k.key_material.get_key_id()),this._keys[kid]=k,_results.push(this._kms[kid]=km);return _results},PgpKeyRing.prototype.fetch=function(key_ids,ops,cb){var err,i,id,k,key_material,km,obj,ret_i,_i,_len,_ref;for(key_material=err=obj=null,key_ids=function(){var _i,_len,_results;for(_results=[],_i=0,_len=key_ids.length;_len>_i;_i++)k=key_ids[_i],_results.push(hexkid(k));return _results}(),km=null,i=_i=0,_len=key_ids.length;_len>_i;i=++_i)if(id=key_ids[i],k=this._keys[id],null!=k&&null!=(_ref=k.key)?_ref.can_perform(ops):void 0){ret_i=i,km=this._kms[id];break}return null==km&&(err=new Error("key not found: "+JSON.stringify(key_ids))),cb(err,km,ret_i)},PgpKeyRing.prototype.find_best_key=function(_arg,cb){var err,flags,key,key_id,kid,km;return key_id=_arg.key_id,flags=_arg.flags,null==(km=this._kms[kid=hexkid(key_id)])?err=new Error("Could not find key for fingerprint "+kid):null==(key=km.find_best_pgp_key(flags))&&(err=new Error("no matching key for flags: "+flags)),cb(err,key)},PgpKeyRing.prototype.lookup=function(key_id){return this._keys[hexkid(key_id)]},PgpKeyRing}(KeyFetcher),exports.PgpKeyRing=PgpKeyRing,exports.KeyRing=PgpKeyRing}).call(this)},{"./keyfetch":24}],26:[function(require,module,exports){(function(){var C,KeyWrapper,Lifespan,Primary,Subkey,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};C=require("./const"),Lifespan=function(){function Lifespan(_arg){this.generated=_arg.generated,this.expire_in=_arg.expire_in,null==this.expire_in&&(this.expire_in=C.default_key_expire_in)}return Lifespan}(),KeyWrapper=function(){function KeyWrapper(_arg){this.key=_arg.key,this.lifespan=_arg.lifespan,this._pgp=_arg._pgp,this._keybase=_arg._keybase,this.flags=_arg.flags}return KeyWrapper.prototype.ekid=function(){return this.key.ekid()},KeyWrapper}(),Subkey=function(_super){function Subkey(_arg){var flags,key,lifespan,_keybase,_pgp;key=_arg.key,flags=_arg.flags,_pgp=_arg._pgp,_keybase=_arg._keybase,this.desc=_arg.desc,lifespan=_arg.lifespan,this.primary=_arg.primary,Subkey.__super__.constructor.call(this,{key:key,lifespan:lifespan,flags:flags,_pgp:_pgp,_keybase:_keybase})}return __extends(Subkey,_super),Subkey}(KeyWrapper),Primary=function(_super){function Primary(_arg){var flags,key,lifespan,_keybase,_pgp;key=_arg.key,lifespan=_arg.lifespan,flags=_arg.flags,_pgp=_arg._pgp,_keybase=_arg._keybase,Primary.__super__.constructor.call(this,{key:key,lifespan:lifespan,flags:flags,_pgp:_pgp,_keybase:_keybase})}return __extends(Primary,_super),Primary}(KeyWrapper),exports.Lifespan=Lifespan,exports.Subkey=Subkey,exports.Primary=Primary}).call(this)},{"./const":5}],27:[function(require,module,exports){(function(){var EUI,KeyFetcher,KeyManagerInterface,SignatureEngineInterface,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};KeyFetcher=require("./keyfetch").KeyFetcher,EUI=new Error("not implemented"),exports.KeyManagerInterface=KeyManagerInterface=function(_super){function KeyManagerInterface(){}return __extends(KeyManagerInterface,_super),KeyManagerInterface.prototype.get_pgp_fingerprint=function(){return null},KeyManagerInterface.prototype.get_ekid=function(){return null},KeyManagerInterface.prototype.get_fp2=function(){return null},KeyManagerInterface.prototype.get_fp2_formatted=function(){return null},KeyManagerInterface.prototype.get_type=function(){return null},KeyManagerInterface.prototype.check_public_eq=function(){return this.EUI},KeyManagerInterface.prototype.get_userids=function(){return[]},KeyManagerInterface.prototype.get_primary_keypair=function(){return null},KeyManagerInterface.prototype.get_all_pgp_key_materials=function(){return[]},KeyManagerInterface.prototype.get_userids_mark_primary=function(){return[]},KeyManagerInterface.prototype.make_sig_eng=function(){return null},KeyManagerInterface.prototype.export_public=function(_arg,cb){var asp,regen;return asp=_arg.asp,regen=_arg.regen,cb(EUI,null)},KeyManagerInterface.prototype.can_verify=function(){return!1},KeyManagerInterface}(KeyFetcher),exports.SignatureEngineInterface=SignatureEngineInterface=function(){function SignatureEngineInterface(_arg){this.km=_arg.km}return SignatureEngineInterface.prototype.get_km=function(){return this.km },SignatureEngineInterface.prototype.box=function(msg,cb){return cb(EUI)},SignatureEngineInterface.prototype.unbox=function(msb,cb){return cb(EUI)},SignatureEngineInterface}()}).call(this)},{"./keyfetch":24}],28:[function(require,module,exports){(function(){var Lock,NamedLock,Table,iced,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Lock=function(){function Lock(){this._open=!0,this._waiters=[]}return Lock.prototype.acquire=function(cb){return this._open?(this._open=!1,cb()):this._waiters.push(cb)},Lock.prototype.release=function(){var w;return this._waiters.length?(w=this._waiters.shift())():this._open=!0},Lock.prototype.open=function(){return this._open},Lock}(),NamedLock=function(_super){function NamedLock(tab,name){this.tab=tab,this.name=name,NamedLock.__super__.constructor.call(this),this.refs=0}return __extends(NamedLock,_super),NamedLock.prototype.incref=function(){return++this.refs},NamedLock.prototype.decref=function(){return--this.refs},NamedLock.prototype.release=function(){return NamedLock.__super__.release.call(this),0===this.decref()?delete this.tab[this.name]:void 0},NamedLock}(Lock),Table=function(){function Table(){this.locks={}}return Table.prototype.create=function(name){var l;return l=new NamedLock(this,name),this.locks[name]=l},Table.prototype.acquire=function(name,cb,wait){var l,was_open,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),l=this.locks[name]||this.create(name),was_open=l._open,l.incref(),function(){return function(__iced_k){return wait||l._open?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/lock.iced",funcname:"Table.acquire"}),l.acquire(__iced_deferrals.defer({lineno:68})),__iced_deferrals._fulfill()}(__iced_k):__iced_k(l=null)}}(this)(function(){return function(){return cb(l,was_open)}}(this))},Table.prototype.lookup=function(name){return this.locks[name]},Table}(),exports.Lock=Lock,exports.Table=Table}).call(this)},{"iced-runtime":118}],29:[function(require,module,exports){(function(Buffer){(function(){var k,m,mods,util,v,_i,_len;for(mods=[require("./openpgp/keymanager"),require("./basex"),require("./openpgp/burner"),require("./openpgp/hilev"),require("./keyfetch"),require("./keyring")],_i=0,_len=mods.length;_len>_i;_i++){m=mods[_i];for(k in m)v=m[k],exports[k]=v}exports.util=util=require("./util"),exports.ASP=util.ASP,exports.rand=require("./rand"),exports["const"]=require("./const"),exports.processor=require("./openpgp/processor"),exports.armor=require("./openpgp/armor"),exports.keyring=require("./keyring"),exports.parser=require("./openpgp/parser"),exports.Buffer=Buffer,exports.triplesec=require("triplesec"),exports.hash=require("./hash"),exports.ecc=require("./ecc/main"),exports.nacl=require("./nacl/main"),exports.kb=require("./keybase/hilev"),exports.ukm=require("./ukm")}).call(this)}).call(this,require("buffer").Buffer)},{"./basex":3,"./const":5,"./ecc/main":11,"./hash":14,"./keybase/hilev":17,"./keyfetch":24,"./keyring":25,"./nacl/main":32,"./openpgp/armor":33,"./openpgp/burner":36,"./openpgp/hilev":41,"./openpgp/keymanager":42,"./openpgp/parser":56,"./openpgp/processor":57,"./rand":65,"./ukm":69,"./util":70,buffer:80,triplesec:181}],30:[function(require,module,exports){(function(Buffer){(function(){var BaseKey,BaseKeyPair,K,NaclEddsa,Pair,Priv,Pub,SRF,TYPE,b2u,box,bufeq_fast,genseed,iced,konst,u2b,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},box=require("tweetnacl").box,SRF=require("../rand").SRF,konst=require("../const"),K=konst.kb,_ref=require("../util"),genseed=_ref.genseed,bufeq_fast=_ref.bufeq_fast,_ref1=require("../basekeypair"),BaseKey=_ref1.BaseKey,BaseKeyPair=_ref1.BaseKeyPair,_ref2=require("./eddsa"),b2u=_ref2.b2u,u2b=_ref2.u2b,NaclEddsa=require("./eddsa").Pair,TYPE=K.public_key_algorithms.NACL_DH,b2u=function(b){return new Uint8Array(b)},u2b=function(u){return new Buffer(u)},Pub=function(){function Pub(key){this.key=key}return Pub.HEADER=new Buffer([K.kid.version,TYPE]),Pub.TRAILER=new Buffer([K.kid.trailer]),Pub.LEN=Pub.HEADER.length+Pub.TRAILER.length+box.publicKeyLength,Pub.alloc_kb=function(kid){var err,key;return err=key=null,err=kid.length!==Pub.LEN?new Error("bad key length"):bufeq_fast(kid.slice(-1),Pub.TRAILER)?bufeq_fast(kid.slice(0,2),Pub.HEADER)?(key=new Pub(kid.slice(2,-1)),null):new Error("bad header"):new Error("bad trailing byte"),[err,key]},Pub.prototype.serialize=function(){return this.key},Pub.prototype.nbits=function(){return 255},Pub.prototype.read_params=function(){},Pub.prototype.encrypt=function(_arg,cb){var nonce,plaintext,res,sender,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),plaintext=_arg.plaintext,sender=_arg.sender,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/dh.iced",funcname:"Pub.encrypt"}),SRF().random_bytes(box.nonceLength,__iced_deferrals.defer({assign_fn:function(){return function(){return nonce=arguments[0]}}(),lineno:49})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return res=box(b2u(plaintext),b2u(nonce),b2u(_this.key),b2u(sender.priv.key)),cb(null,{ciphertext:u2b(res),nonce:nonce})}}(this))},Pub}(),Priv=function(){function Priv(key){this.key=key}return Priv.prototype.alloc=function(raw){var err,key;return err=key=null,raw.length!==box.secretKeyLength?err=new Error("Bad secret key length"):key=new Priv(raw),[err,key]},Priv.prototype.decrypt=function(_arg,cb){var ciphertext,err,nonce,res,sender;return ciphertext=_arg.ciphertext,nonce=_arg.nonce,sender=_arg.sender,err=res=null,res=box.open(b2u(ciphertext),b2u(nonce),b2u(sender.pub.key),b2u(this.key)),res===!1?(err=new Error("decryption failed"),res=null):res=u2b(res),cb(err,res)},Priv}(),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=K.public_key_algorithms.NACL_DH,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="DH",Pair.prototype.can_encrypt=function(){return!0},Pair.prototype.can_sign=function(){return!1},Pair.prototype.hash=function(){return this.serialize()},Pair.prototype.encrypt_kb=function(_arg,cb){var plaintext,sender;return plaintext=_arg.plaintext,sender=_arg.sender,this.pub.encrypt({plaintext:plaintext,sender:sender},cb)},Pair.prototype.decrypt_kb=function(_arg,cb){var ciphertext,err,nonce,plaintex,plaintext,sender,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ciphertext=_arg.ciphertext,nonce=_arg.nonce,sender=_arg.sender,err=plaintex=null,function(_this){return function(__iced_k){return null==_this.priv?__iced_k(err=new Error("no secret key available")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/dh.iced",funcname:"Pair.decrypt_kb"}),_this.priv.decrypt({ciphertext:ciphertext,nonce:nonce,sender:sender},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],plaintext=arguments[1]}}(),lineno:117})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,plaintext)}}(this))},Pair.subkey_algo=function(flags){return flags&(C.key_flags.encrypt_comm|C.key_flags.encrypt_storage)?Pair:NaclEddsa},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=C.key_flags.encrypt_comm|C.key_flags.encrypt_storage,(flags&good_for)===flags},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var data,hash,hasher,sig;return sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,cb(new Error("verify_unpad_and_check_hash unsupported"))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var hasher;return hasher=_arg.hasher,cb(new Error("pad_and_sign unsupported"))},Pair.parse_kb=function(pub_raw){return BaseKeyPair.parse_kb(Pair,pub_raw)},Pair.parse_sig=function(){var err;throw err=new Error("@parse_sig unsupported")},Pair.read_sig_from_buf=function(){var err;return err=new Error("@read_sig_from_buf unsupported"),[err]},Pair.generate=function(_arg,cb){var arg,err,priv,pub,publicKey,secretKey,seed,server_half,split,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),server_half=_arg.server_half,seed=_arg.seed,split=_arg.split,arg={seed:seed,split:split,len:box.secretKeyLength,server_half:server_half},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/dh.iced",funcname:"Pair.generate"}),genseed(arg,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],server_half=arguments[1].server_half,seed=arguments[1].seed}}(),lineno:178})),__iced_deferrals._fulfill()}}(this)(function(){return function(){var _ref3;return("undefined"==typeof err||null===err)&&(_ref3=box.keyPair.fromSecretKey(b2u(seed)),secretKey=_ref3.secretKey,publicKey=_ref3.publicKey,pub=new Pub(u2b(publicKey)),priv=new Priv(u2b(secretKey))),cb(err,new Pair({pub:pub,priv:priv}),server_half)}}(this))},Pair}(BaseKeyPair),exports.DH=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"../basekeypair":2,"../const":5,"../rand":65,"../util":70,"./eddsa":31,buffer:80,"iced-runtime":118,tweetnacl:201}],31:[function(require,module,exports){(function(Buffer){(function(){var BaseKey,BaseKeyPair,K,NaclDh,Pair,Priv,Pub,SRF,TYPE,b2u,bufeq_fast,bufeq_secure,genseed,iced,konst,sign,u2b,__iced_k,__iced_k_noop,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},sign=require("tweetnacl/nacl-fast").sign,SRF=require("../rand").SRF,konst=require("../const"),K=konst.kb,_ref=require("../util"),genseed=_ref.genseed,bufeq_secure=_ref.bufeq_secure,bufeq_fast=_ref.bufeq_fast,_ref1=require("../basekeypair"),BaseKey=_ref1.BaseKey,BaseKeyPair=_ref1.BaseKeyPair,NaclDh=require("./dh").Pair,TYPE=K.public_key_algorithms.NACL_EDDSA,exports.b2u=b2u=function(b){return new Uint8Array(b)},exports.u2b=u2b=function(u){return new Buffer(u)},Pub=function(){function Pub(key){this.key=key}return Pub.HEADER=new Buffer([K.kid.version,TYPE]),Pub.TRAILER=new Buffer([K.kid.trailer]),Pub.LEN=Pub.HEADER.length+Pub.TRAILER.length+sign.publicKeyLength,Pub.alloc_kb=function(kid){var err,key;return err=key=null,err=kid.length!==Pub.LEN?new Error("bad key length"):bufeq_fast(kid.slice(-1),Pub.TRAILER)?bufeq_fast(kid.slice(0,2),Pub.HEADER)?(key=new Pub(kid.slice(2,-1)),null):new Error("bad header"):new Error("bad trailing byte"),[err,key]},Pub.prototype.serialize=function(){return this.key},Pub.prototype.nbits=function(){return 255},Pub.prototype.read_params=function(){},Pub.prototype.verify=function(_arg,cb){var detached,err,payload,r_payload,sig;return payload=_arg.payload,sig=_arg.sig,detached=_arg.detached,detached?(null==payload&&(payload=new Buffer([])),sign.detached.verify(b2u(payload),b2u(sig),b2u(this.key))||(err=new Error("signature didn't verify"))):null==(r_payload=sign.open(b2u(sig),b2u(this.key)))?err=new Error("signature didn't verify"):null==(r_payload=u2b(r_payload))?err=new Error("failed to convert from a Uint8Array to a buffer"):null==payload||bufeq_secure(r_payload,payload)?payload=r_payload:err=new Error("got unexpected payload"),cb(err,payload)},Pub}(),Priv=function(){function Priv(key){this.key=key}return Priv.prototype.alloc=function(raw){var err,key;return err=key=null,raw.length!==sign.secretKeyLength?err=new Error("Bad secret key length"):key=new Priv(raw),[err,key]},Priv.prototype.sign=function(_arg,cb){var detached,f,payload,sig;return payload=_arg.payload,detached=_arg.detached,f=detached?sign.detached:sign,sig=u2b(f(b2u(payload),b2u(this.key))),cb(sig)},Priv}(),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=K.public_key_algorithms.NACL_EDDSA,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="EDDSA",Pair.prototype.can_encrypt=function(){return!1},Pair.prototype.hash=function(){return this.serialize()},Pair.prototype.sign_kb=function(_arg,cb){var detached,err,payload,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),payload=_arg.payload,detached=_arg.detached,err=sig=null,function(_this){return function(__iced_k){return null==_this.priv?__iced_k(err=new Error("no secret key available")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/eddsa.iced",funcname:"Pair.sign_kb"}),_this.priv.sign({payload:payload,detached:detached},__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:119})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,sig)}}(this))},Pair.prototype.verify_kb=function(_arg,cb){var detached,payload,sig;return payload=_arg.payload,sig=_arg.sig,detached=_arg.detached,this.pub.verify({payload:payload,sig:sig,detached:detached},cb)},Pair.subkey_algo=function(flags){return flags&(C.key_flags.certify_keys|C.key_flags.sign_data)?Pair:NaclDh},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=C.key_flags.certify_keys|C.key_flags.sign_data,(flags&good_for)===flags},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var data,hash,hasher,sig;return sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,cb(new Error("verify_unpad_and_check_hash unsupported"))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var hasher;return hasher=_arg.hasher,cb(new Error("pad_and_sign unsupported"))},Pair.parse_kb=function(pub_raw){return BaseKeyPair.parse_kb(Pair,pub_raw)},Pair.parse_sig=function(){var err;throw err=new Error("@parse_sig unsupported")},Pair.read_sig_from_buf=function(){var err;return err=new Error("@read_sig_from_buf unsupported"),[err]},Pair.generate=function(_arg,cb){var arg,err,priv,pub,publicKey,secretKey,seed,server_half,split,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),seed=_arg.seed,split=_arg.split,server_half=_arg.server_half,arg={seed:seed,split:split,len:sign.seedLength,server_half:server_half},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/eddsa.iced",funcname:"Pair.generate"}),genseed(arg,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],server_half=arguments[1].server_half,seed=arguments[1].seed}}(),lineno:185})),__iced_deferrals._fulfill()}}(this)(function(){return function(){var _ref2;return("undefined"==typeof err||null===err)&&(_ref2=sign.keyPair.fromSeed(b2u(seed)),secretKey=_ref2.secretKey,publicKey=_ref2.publicKey,pub=new Pub(u2b(publicKey)),priv=new Priv(u2b(secretKey))),cb(err,new Pair({pub:pub,priv:priv}),server_half)}}(this))},Pair}(BaseKeyPair),exports.EdDSA=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"../basekeypair":2,"../const":5,"../rand":65,"../util":70,"./dh":30,buffer:80,"iced-runtime":118,"tweetnacl/nacl-fast":200}],32:[function(require,module,exports){(function(){exports.eddsa=require("./eddsa"),exports.dh=require("./dh")}).call(this)},{"./dh":30,"./eddsa":31}],33:[function(require,module,exports){(function(){var C,Ch,Parser,armor,bufeq_fast,decode,katch,uint_to_buffer,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("../util"),katch=_ref.katch,bufeq_fast=_ref.bufeq_fast,uint_to_buffer=_ref.uint_to_buffer,C=require("../const"),Ch=require("../header"),armor=require("pgp-utils").armor,exports.encode=function(type,data){var mt;return mt=C.openpgp.message_types,type=function(){switch(type){case mt.public_key:return"PUBLIC KEY BLOCK";case mt.private_key:return"PRIVATE KEY BLOCK";case mt.signature:return"SIGNATURE";case mt.generic:return"MESSAGE";default:throw new Error("Cannot encode tag type "+type)}}(),armor.encode(Ch,type,data)},Parser=function(_super){function Parser(){return Parser.__super__.constructor.apply(this,arguments)}return __extends(Parser,_super),Parser.prototype.parse_type=function(){var mt;return mt=C.openpgp.message_types,this.ret.type=function(){switch(this.type){case"PUBLIC KEY BLOCK":return mt.public_key;case"PRIVATE KEY BLOCK":return mt.private_key;case"SIGNED MESSAGE":if(this.ret.clearsign)return mt.clearsign;throw new Error("Signed message, but not clear-signed");case"SIGNATURE":return mt.signature;case"MESSAGE":return mt.generic;default:throw new Error("Unknown message type: "+this.type)}}.call(this),this.ret.fields.type=this.type},Parser}(armor.Parser),exports.Message=armor.Message,exports.decode=decode=function(data){return katch(function(){return new Parser(data).parse()})},exports.mdecode=decode=function(data){return katch(function(){return new Parser(data).mparse()})}}).call(this)},{"../const":5,"../header":15,"../util":70,"pgp-utils":163}],34:[function(require,module,exports){(function(){var ASP,BaseBurner,iced,make_esc,__iced_k,__iced_k_noop,__slice=[].slice;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,ASP=require("pgp-utils").util.ASP,exports.BaseBurner=BaseBurner=function(){function BaseBurner(_arg){this.sign_with=_arg.sign_with,this.encrypt_for=_arg.encrypt_for,this.signing_key=_arg.signing_key,this.encryption_key=_arg.encryption_key,this.asp=_arg.asp,this.asp=ASP.make(this.asp)}return BaseBurner.prototype._find_keys=function(cb){var esc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"find_keys"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/baseburner.iced",funcname:"BaseBurner._find_keys"}),_this._find_signing_key(esc(__iced_deferrals.defer({lineno:17}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/baseburner.iced",funcname:"BaseBurner._find_keys"}),_this._find_encryption_key(esc(__iced_deferrals.defer({lineno:18}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/baseburner.iced",funcname:"BaseBurner._find_keys"}),_this._assert_one(esc(__iced_deferrals.defer({lineno:19}))),__iced_deferrals._fulfill()}(function(){return cb(null)})})}}(this))},BaseBurner.prototype._assert_one=function(cb){var err;return err=null,null==this.signing_key&&null==this.encryption_keys&&(err=new Error("need either an encryption or signing key, or both")),cb(err)},BaseBurner.prototype._find_signing_key=function(cb){var err;return err=null,null!=this.sign_with&&null!=this.signing_key?err=new Error("specify either `sign_with` or `signing_key` but not both"):null!=this.sign_with&&null==(this.signing_key=this.sign_with.find_signing_pgp_key())&&(err=new Error("cannot sign with the given KeyManager")),cb(err)},BaseBurner.prototype._find_encryption_key=function(cb){var arrayize,count_true,err,f,i,k,_i,_len,_ref;if(err=null,count_true=function(){var e,i,v,_i,_len;for(v=1<=arguments.length?__slice.call(arguments,0):[],i=0,_i=0,_len=v.length;_len>_i;_i++)e=v[_i],e&&i++;return i},arrayize=function(e){return null==e?[]:"object"==typeof e&&Array.isArray(e)?e:[e]},count_true(null!=this.encrypt_for,null!=this.encryption_key,null!=this.encryption_keys)>1)err=new Error("specify only one of `encrypt_for`, `encryption_keys` and `encryption_key`");else if(null!=this.encrypt_for)for(this.encryption_keys=[],_ref=this.encrypt_for=arrayize(this.encrypt_for),i=_i=0,_len=_ref.length;_len>_i;i=++_i){if(f=_ref[i],null==(k=f.find_crypt_pgp_key())){err=new Error("cannot encrypt with the given KeyManager (i="+i+")");break}this.encryption_keys.push(k)}else null!=this.encryption_key?this.encryption_keys=[this.encryption_key]:null!=this.encryption_keys&&(this.encryption_keys=arrayize(this.encryption_keys));return cb(err)},BaseBurner}()}).call(this)},{"iced-error":115,"iced-runtime":118,"pgp-utils":163}],35:[function(require,module,exports){(function(Buffer){(function(){var SlicerBuffer;SlicerBuffer=function(){function SlicerBuffer(buf,start){if(this.buf=buf,this.start=null!=start?start:0,!Buffer.isBuffer(this.buf))throw new Error("need a Buffer!");this.i=this.start,this._end=null}return SlicerBuffer.prototype.clamp=function(len){var ret;return ret=this._end,this._end=this.i+len,ret},SlicerBuffer.prototype.unclamp=function(e){return this.start=this.i,this._end=e},SlicerBuffer.prototype.len=function(){return this.buf.length-this.start},SlicerBuffer.prototype.rem=function(){return this.buf.length-this.i},SlicerBuffer.prototype.offset=function(){return this.i-this.start},SlicerBuffer.prototype.check=function(){if(this._end&&this.i>this._end||this.i>this.buf.length)throw new Error("read off the end of the packet @"+this.i+"/"+this.buf.length+"/"+this._end)},SlicerBuffer.prototype.read_uint8=function(){var ret;return ret=this.buf.readUInt8(this.i++),this.check(),ret},SlicerBuffer.prototype.read_uint16=function(){var ret;return ret=this.buf.readUInt16BE(this.i),this.i+=2,this.check(),ret},SlicerBuffer.prototype.read_uint32=function(){var ret;return ret=this.buf.readUInt32BE(this.i),this.i+=4,this.check(),ret},SlicerBuffer.prototype.read_buffer_at_most=function(l){return this.read_buffer(Math.min(l,this.rem()))},SlicerBuffer.prototype.read_buffer=function(l){var ret;return ret=this.buf.slice(this.i,this.i+l),this.i+=l,this.check(),ret},SlicerBuffer.prototype.end=function(){return this._end||this.buf.length},SlicerBuffer.prototype.peek_rest_to_buffer=function(){return this.buf.slice(this.i,this.end())},SlicerBuffer.prototype.consume_rest_to_buffer=function(){var ret;return ret=this.peek_rest_to_buffer(),this.i=this.end(),ret},SlicerBuffer.prototype.advance=function(i){return null==i&&(i=1),this.i+=i},SlicerBuffer.prototype.peek_to_buffer=function(len){return this.buf.slice(this.i,this.i+len)},SlicerBuffer.prototype.peek_uint8=function(){return this.buf.readUInt8(this.i)},SlicerBuffer.prototype.peek_uint16=function(){return this.buf.readUInt16BE(this.i)},SlicerBuffer.prototype.read_string=function(){return this.read_buffer(this.read_uint8())},SlicerBuffer.prototype.read_v4_length=function(){var five_byte,len,p;return p=this.peek_uint8(),five_byte=!1,len=192>p?(this.advance(1),p):224>p?this.read_uint16()-49152+192:255>p?(this.advance(1),1<<(31&p)):(this.advance(1),five_byte=!0,this.read_uint32()),[len,five_byte]},SlicerBuffer}(),exports.SlicerBuffer=SlicerBuffer}).call(this)}).call(this,require("buffer").Buffer)},{buffer:80}],36:[function(require,module,exports){(function(Buffer){(function(){var BaseBurner,Burner,C,Compressed,CreationTime,Issuer,Literal,OnePassSignature,PKESK,SEIPD,SHA512,SRF,Signature,WordArray,clearsign,detachsign,dummy_key_id,encode,export_key_pgp,get_cipher,iced,make_esc,make_simple_literals,scrub_buffer,triplesec,unix_time,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,OnePassSignature=require("./packet/one_pass_sig").OnePassSignature,_ref=require("./packet/signature"),Signature=_ref.Signature,CreationTime=_ref.CreationTime,Issuer=_ref.Issuer,Compressed=require("./packet/compressed").Compressed,Literal=require("./packet/literal").Literal,unix_time=require("../util").unix_time,SRF=require("../rand").SRF,triplesec=require("triplesec"),_ref1=require("../symmetric"),export_key_pgp=_ref1.export_key_pgp,get_cipher=_ref1.get_cipher,scrub_buffer=triplesec.util.scrub_buffer,WordArray=triplesec.WordArray,_ref2=require("./packet/sess"),SEIPD=_ref2.SEIPD,PKESK=_ref2.PKESK,C=require("../const").openpgp,SHA512=require("../hash").SHA512,encode=require("./armor").encode,clearsign=require("./clearsign"),detachsign=require("./detachsign"),BaseBurner=require("./baseburner").BaseBurner,dummy_key_id=new Buffer(function(){var _i,_results;for(_results=[],_i=0;16>_i;_i++)_results.push(0);return _results}()),Burner=function(_super){function Burner(_arg){var asp,encrypt_for,encryption_key,sign_with,signing_key;this.literals=_arg.literals,this.opts=_arg.opts,sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,signing_key=_arg.signing_key,encryption_key=_arg.encryption_key,asp=_arg.asp,Burner.__super__.constructor.call(this,{sign_with:sign_with,encrypt_for:encrypt_for,signing_key:signing_key,encryption_key:encryption_key,asp:asp}),this.packets=[],this.opts||(this.opts={}),this.signed_payload=null}return __extends(Burner,_super),Burner.prototype._frame_literals=function(cb){var esc,l,p,sp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_frame_literals"),sp=[],function(_this){return function(__iced_k){var _i,_len,_ref3,_results,_while;_ref3=_this.literals,_len=_ref3.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(l=_ref3[_i],sp.push(l.to_signature_payload()),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._frame_literals"}),l.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:51}))),__iced_deferrals._fulfill()}(function(){return _next(_this.packets.push(p))}),void 0):_break()})(__iced_k)}}(this)(function(_this){return function(){return _this.signed_payload=Buffer.concat(sp),cb(null)}}(this))},Burner.prototype._sign=function(cb){var esc,fp,ops,ops_framed,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_sign'"),ops=new OnePassSignature({sig_type:C.sig_types.binary_doc,hasher:SHA512,sig_klass:this.signing_key.get_klass(),key_id:this.signing_key.get_key_id(),is_final:1}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._sign"}),ops.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ops_framed=arguments[0]}}(),lineno:67}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){sig=new Signature({type:C.sig_types.binary_doc,key:_this.signing_key.key,hashed_subpackets:[new CreationTime(unix_time())],unhashed_subpackets:[new Issuer(_this.signing_key.get_key_id())]}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._sign"}),_this.asp.progress({what:"sign",i:0,total:1},esc(__iced_deferrals.defer({lineno:74}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._sign"}),sig.write(_this.signed_payload,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return fp=arguments[0]}}(),lineno:75}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._sign"}),_this.asp.progress({what:"sign",i:1,total:1},esc(__iced_deferrals.defer({lineno:76}))),__iced_deferrals._fulfill()}(function(){return _this.packets.unshift(ops_framed),_this.packets.push(fp),cb(null)})})})}}(this))},Burner.prototype.collect_packets=function(){var ret;return ret=Buffer.concat(this.packets),this.packets=[],ret},Burner.prototype._compress=function(cb){var esc,inflated,opkt,pkt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_compress"),inflated=this.collect_packets(),pkt=new Compressed({algo:C.compression.zlib,inflated:inflated}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._compress"}),_this.asp.progress({what:"compress",i:0,total:1},esc(__iced_deferrals.defer({lineno:94}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._compress"}),pkt.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return opkt=arguments[0]}}(),lineno:95}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._compress"}),_this.asp.progress({what:"compress",i:1,total:1},esc(__iced_deferrals.defer({lineno:96}))),__iced_deferrals._fulfill()}(function(){return _this.packets.push(opkt),cb(null)})})}}(this))},Burner.prototype._make_session_key=function(cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this._cipher_algo=C.symmetric_key_algorithms.AES256,this._cipher_info=get_cipher(this._cipher_algo),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._make_session_key"}),SRF().random_bytes(_this._cipher_info.key_size,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1._session_key=arguments[0] }}(_this),lineno:105})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return _this._cipher=new _this._cipher_info.klass(WordArray.from_buffer(_this._session_key)),cb(null)}}(this))},Burner.prototype.scrub=function(){return null!=this._cipher&&this._cipher.scrub(),null!=this._session_key?scrub_buffer(this._session_key):void 0},Burner.prototype._encrypt_session_key_once=function(encryption_key,cb){var ekey,esc,fingerprint,key_id,payload,pkesk,pkt,pub_k,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"_encrypt_session_key_once"),payload=export_key_pgp(this._cipher_algo,this._session_key),pub_k=encryption_key.key,fingerprint=encryption_key.get_fingerprint(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),_this.asp.progress({what:"session key encrypt",i:0,total:1},esc(__iced_deferrals.defer({lineno:122}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),pub_k.pad_and_encrypt(payload,{fingerprint:fingerprint},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ekey=arguments[0]}}(),lineno:123}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),_this.asp.progress({what:"session key encrypt",i:1,total:1},esc(__iced_deferrals.defer({lineno:124}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return _this.opts.hide?(key_id=dummy_key_id,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),_this.asp.progress({what:"hide encryption",i:0,total:1},esc(__iced_deferrals.defer({lineno:127}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){var _ref3,_ref4;__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),ekey.hide({max:null!=(_ref3=_this.opts.hide)?_ref3.max:void 0,slosh:null!=(_ref4=_this.opts.hide)?_ref4.slosh:void 0,key:pub_k},esc(__iced_deferrals.defer({lineno:128}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),_this.asp.progress({what:"hide encryption",i:1,total:1},esc(__iced_deferrals.defer({lineno:129}))),__iced_deferrals._fulfill()}(__iced_k)})})):__iced_k(key_id=encryption_key.get_key_id())}(function(){pkt=new PKESK({crypto_type:pub_k.type,key_id:key_id,ekey:ekey}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),pkt.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pkesk=arguments[0]}}(),lineno:137}))),__iced_deferrals._fulfill()}(function(){return cb(null,pkesk)})})})})}}(this))},Burner.prototype._encrypt_session_key=function(cb){var esc,k,pkesk,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"_encrypt_session_key"),this._pkesks=[],function(_this){return function(__iced_k){var _i,_len,_ref3,_results,_while;_ref3=_this.encryption_keys,_len=_ref3.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(k=_ref3[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key"}),_this._encrypt_session_key_once(k,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pkesk=arguments[0]}}(),lineno:146}))),__iced_deferrals._fulfill()}(function(){return _next(_this._pkesks.push(pkesk))})):_break()})(__iced_k)}}(this)(function(){return function(){return cb(null)}}(this))},Burner.prototype._encrypt_payload=function(cb){var asp,esc,pkt,plaintext,prefixrandom,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_encrypt_payload"),plaintext=this.collect_packets(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_payload"}),SRF().random_bytes(_this._cipher.blockSize,__iced_deferrals.defer({assign_fn:function(){return function(){return prefixrandom=arguments[0]}}(),lineno:155})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){pkt=new SEIPD({}),asp=_this.asp.section("encrypt payload"),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_payload"}),pkt.encrypt({cipher:_this._cipher,plaintext:plaintext,prefixrandom:prefixrandom,asp:asp},esc(__iced_deferrals.defer({lineno:158}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_payload"}),pkt.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pkt=arguments[0]}}(),lineno:159}))),__iced_deferrals._fulfill()}(function(){return scrub_buffer(plaintext),_this.packets=_this._pkesks.concat([pkt]),cb(null)})})}}(this))},Burner.prototype._encrypt=function(cb){var esc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_encrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt"}),_this._make_session_key(esc(__iced_deferrals.defer({lineno:168}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt"}),_this._encrypt_session_key(esc(__iced_deferrals.defer({lineno:169}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt"}),_this._encrypt_payload(esc(__iced_deferrals.defer({lineno:170}))),__iced_deferrals._fulfill()}(function(){return cb(null)})})}}(this))},Burner.prototype.scrub=function(){},Burner.prototype.burn=function(cb){var esc,output,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::burn"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._find_keys(esc(__iced_deferrals.defer({lineno:181}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._frame_literals(esc(__iced_deferrals.defer({lineno:182}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null==_this.signing_key?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._sign(esc(__iced_deferrals.defer({lineno:184}))),__iced_deferrals._fulfill()}(__iced_k)}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._compress(esc(__iced_deferrals.defer({lineno:185}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null==_this.encryption_keys?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._encrypt(esc(__iced_deferrals.defer({lineno:187}))),__iced_deferrals._fulfill()}(__iced_k)}(function(){return output=Buffer.concat(_this.packets),cb(null,output)})})})})}}(this))},Burner}(BaseBurner),exports.Burner=Burner,exports.make_simple_literals=make_simple_literals=function(msg){return[new Literal({data:new Buffer(msg),format:C.literal_formats.utf8,date:unix_time()})]},exports.clearsign=clearsign.sign,exports.detachsign=detachsign.sign,exports.burn=function(_arg,cb){var aout,asp,b,encrypt_for,encryption_key,err,literals,msg,opts,raw,sign_with,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,literals=_arg.literals,sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,signing_key=_arg.signing_key,encryption_key=_arg.encryption_key,asp=_arg.asp,opts=_arg.opts,null!=msg&&null==literals&&(literals=make_simple_literals(msg)),b=new Burner({literals:literals,sign_with:sign_with,encrypt_for:encrypt_for,signing_key:signing_key,encryption_key:encryption_key,asp:asp,opts:opts}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"burn"}),b.burn(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],raw=arguments[1]}}(),lineno:247})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return b.scrub(),"undefined"==typeof raw||null===raw||"undefined"!=typeof err&&null!==err||(aout=encode(C.message_types.generic,raw)),cb(err,aout,raw)}}(this))}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,"../rand":65,"../symmetric":68,"../util":70,"./armor":33,"./baseburner":34,"./clearsign":39,"./detachsign":40,"./packet/compressed":46,"./packet/literal":49,"./packet/one_pass_sig":50,"./packet/sess":52,"./packet/signature":53,buffer:80,"iced-error":115,"iced-runtime":118,triplesec:181}],37:[function(require,module,exports){(function(){var CAST5,G,Global,WordArray,ui32a_to_ui8a,ui8a_to_ui32a,_ref;WordArray=require("triplesec").WordArray,_ref=require("../util"),ui8a_to_ui32a=_ref.ui8a_to_ui32a,ui32a_to_ui8a=_ref.ui32a_to_ui8a,Global=function(){function Global(){this.init_schedule(),this.init_sbox()}return Global.prototype.init_schedule=function(){var scheduleA,scheduleB;return scheduleA=new Array(4),scheduleA[0]=new Array(4),scheduleA[0][0]=new Uint8Array([4,0,13,15,12,14,8]),scheduleA[0][1]=new Uint8Array([5,2,16,18,17,19,10]),scheduleA[0][2]=new Uint8Array([6,3,23,22,21,20,9]),scheduleA[0][3]=new Uint8Array([7,1,26,25,27,24,11]),scheduleA[1]=new Array(4),scheduleA[1][0]=new Uint8Array([0,6,21,23,20,22,16]),scheduleA[1][1]=new Uint8Array([1,4,0,2,1,3,18]),scheduleA[1][2]=new Uint8Array([2,5,7,6,5,4,17]),scheduleA[1][3]=new Uint8Array([3,7,10,9,11,8,19]),scheduleA[2]=new Array(4),scheduleA[2][0]=new Uint8Array([4,0,13,15,12,14,8]),scheduleA[2][1]=new Uint8Array([5,2,16,18,17,19,10]),scheduleA[2][2]=new Uint8Array([6,3,23,22,21,20,9]),scheduleA[2][3]=new Uint8Array([7,1,26,25,27,24,11]),scheduleA[3]=new Array(4),scheduleA[3][0]=new Uint8Array([0,6,21,23,20,22,16]),scheduleA[3][1]=new Uint8Array([1,4,0,2,1,3,18]),scheduleA[3][2]=new Uint8Array([2,5,7,6,5,4,17]),scheduleA[3][3]=new Uint8Array([3,7,10,9,11,8,19]),scheduleB=new Array(4),scheduleB[0]=new Array(4),scheduleB[0][0]=new Uint8Array([24,25,23,22,18]),scheduleB[0][1]=new Uint8Array([26,27,21,20,22]),scheduleB[0][2]=new Uint8Array([28,29,19,18,25]),scheduleB[0][3]=new Uint8Array([30,31,17,16,28]),scheduleB[1]=new Array(4),scheduleB[1][0]=new Uint8Array([3,2,12,13,8]),scheduleB[1][1]=new Uint8Array([1,0,14,15,13]),scheduleB[1][2]=new Uint8Array([7,6,8,9,3]),scheduleB[1][3]=new Uint8Array([5,4,10,11,7]),scheduleB[2]=new Array(4),scheduleB[2][0]=new Uint8Array([19,18,28,29,25]),scheduleB[2][1]=new Uint8Array([17,16,30,31,28]),scheduleB[2][2]=new Uint8Array([23,22,24,25,18]),scheduleB[2][3]=new Uint8Array([21,20,26,27,22]),scheduleB[3]=new Array(4),scheduleB[3][0]=new Uint8Array([8,9,7,6,3]),scheduleB[3][1]=new Uint8Array([10,11,5,4,7]),scheduleB[3][2]=new Uint8Array([12,13,3,2,8]),scheduleB[3][3]=new Uint8Array([14,15,1,0,13]),this.scheduleA=scheduleA,this.scheduleB=scheduleB},Global.prototype.init_sbox=function(){var sBox;return sBox=new Array(8),sBox[0]=new Uint32Array([821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063]),sBox[1]=new Uint32Array([522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321]),sBox[2]=new Uint32Array([2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027]),sBox[3]=new Uint32Array([2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730]),sBox[4]=new Uint32Array([2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860]),sBox[5]=new Uint32Array([4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975]),sBox[6]=new Uint32Array([2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875]),sBox[7]=new Uint32Array([3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]),this.sBox=sBox },Global}(),G=new Global,CAST5=function(){function CAST5(key){var n;if(this.masking=new Array(16),this.rotate=new Array(16),this.reset(),key.sigBytes!==(n=this.keySize))throw new Error("key must be "+n+" bytes");this.keySchedule(key)}return CAST5.blockSize=8,CAST5.prototype.blockSize=CAST5.blockSize,CAST5.keySize=16,CAST5.prototype.keySize=CAST5.keySize,CAST5.prototype.reset=function(){var i,_i,_results;for(_results=[],i=_i=0;16>_i;i=++_i)this.masking[i]=0,_results.push(this.rotate[i]=0);return _results},CAST5.prototype.encryptBlock=function(words,offset){var bytes,res;return null==offset&&(offset=0),bytes=ui32a_to_ui8a(words),res=this._encrypt_ui8a(bytes),ui8a_to_ui32a(res,words)},CAST5.prototype.decryptBlock=function(words,offset){var bytes,res;return null==offset&&(offset=0),bytes=ui32a_to_ui8a(words),res=this._decrypt_ui8a(bytes),ui8a_to_ui32a(res,words)},CAST5.prototype._encrypt_ui8a=function(src){var dst,i,l,len,r,t,_i;for(len=src.length,dst=new Uint8Array(len),i=_i=0;len>_i;i=_i+=8)l=src[i]<<24|src[i+1]<<16|src[i+2]<<8|src[i+3],r=src[i+4]<<24|src[i+5]<<16|src[i+6]<<8|src[i+7],t=r,r=l^this.f1(r,this.masking[0],this.rotate[0]),l=t,t=r,r=l^this.f2(r,this.masking[1],this.rotate[1]),l=t,t=r,r=l^this.f3(r,this.masking[2],this.rotate[2]),l=t,t=r,r=l^this.f1(r,this.masking[3],this.rotate[3]),l=t,t=r,r=l^this.f2(r,this.masking[4],this.rotate[4]),l=t,t=r,r=l^this.f3(r,this.masking[5],this.rotate[5]),l=t,t=r,r=l^this.f1(r,this.masking[6],this.rotate[6]),l=t,t=r,r=l^this.f2(r,this.masking[7],this.rotate[7]),l=t,t=r,r=l^this.f3(r,this.masking[8],this.rotate[8]),l=t,t=r,r=l^this.f1(r,this.masking[9],this.rotate[9]),l=t,t=r,r=l^this.f2(r,this.masking[10],this.rotate[10]),l=t,t=r,r=l^this.f3(r,this.masking[11],this.rotate[11]),l=t,t=r,r=l^this.f1(r,this.masking[12],this.rotate[12]),l=t,t=r,r=l^this.f2(r,this.masking[13],this.rotate[13]),l=t,t=r,r=l^this.f3(r,this.masking[14],this.rotate[14]),l=t,t=r,r=l^this.f1(r,this.masking[15],this.rotate[15]),l=t,dst[i]=r>>>24&255,dst[i+1]=r>>>16&255,dst[i+2]=r>>>8&255,dst[i+3]=255&r,dst[i+4]=l>>>24&255,dst[i+5]=l>>>16&255,dst[i+6]=l>>>8&255,dst[i+7]=255&l;return dst},CAST5.prototype._decrypt_ui8a=function(src){var dst,i,l,len,r,t,_i;for(len=src.length,dst=new Uint8Array(len),i=_i=0;len>_i;i=_i+=8)l=src[i]<<24|src[i+1]<<16|src[i+2]<<8|src[i+3],r=src[i+4]<<24|src[i+5]<<16|src[i+6]<<8|src[i+7],t=r,r=l^this.f1(r,this.masking[15],this.rotate[15]),l=t,t=r,r=l^this.f3(r,this.masking[14],this.rotate[14]),l=t,t=r,r=l^this.f2(r,this.masking[13],this.rotate[13]),l=t,t=r,r=l^this.f1(r,this.masking[12],this.rotate[12]),l=t,t=r,r=l^this.f3(r,this.masking[11],this.rotate[11]),l=t,t=r,r=l^this.f2(r,this.masking[10],this.rotate[10]),l=t,t=r,r=l^this.f1(r,this.masking[9],this.rotate[9]),l=t,t=r,r=l^this.f3(r,this.masking[8],this.rotate[8]),l=t,t=r,r=l^this.f2(r,this.masking[7],this.rotate[7]),l=t,t=r,r=l^this.f1(r,this.masking[6],this.rotate[6]),l=t,t=r,r=l^this.f3(r,this.masking[5],this.rotate[5]),l=t,t=r,r=l^this.f2(r,this.masking[4],this.rotate[4]),l=t,t=r,r=l^this.f1(r,this.masking[3],this.rotate[3]),l=t,t=r,r=l^this.f3(r,this.masking[2],this.rotate[2]),l=t,t=r,r=l^this.f2(r,this.masking[1],this.rotate[1]),l=t,t=r,r=l^this.f1(r,this.masking[0],this.rotate[0]),l=t,dst[i]=r>>>24&255,dst[i+1]=r>>>16&255,dst[i+2]=r>>>8&255,dst[i+3]=255&r,dst[i+4]=l>>>24&255,dst[i+5]=l>>16&255,dst[i+6]=l>>8&255,dst[i+7]=255&l;return dst},CAST5.prototype.keySchedule=function(key){var a,b,half,i,j,k,ki,kw,round,t,w,x,_i,_j,_k,_l,_m,_results;for(t=function(){var _i,_len,_ref1,_results;for(_ref1=key.words,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)kw=_ref1[_i],_results.push(kw);return _results}(),k=new Array(32),x=[6,7,4,5],ki=0,half=_i=0;2>_i;half=++_i)for(round=_j=0;4>_j;round=++_j){for(j=_k=0;4>_k;j=++_k)a=G.scheduleA[round][j],w=t[a[1]],w^=G.sBox[4][t[a[2]>>>2]>>>24-8*(3&a[2])&255],w^=G.sBox[5][t[a[3]>>>2]>>>24-8*(3&a[3])&255],w^=G.sBox[6][t[a[4]>>>2]>>>24-8*(3&a[4])&255],w^=G.sBox[7][t[a[5]>>>2]>>>24-8*(3&a[5])&255],w^=G.sBox[x[j]][t[a[6]>>>2]>>>24-8*(3&a[6])&255],t[a[0]]=w;for(j=_l=0;4>_l;j=++_l)b=G.scheduleB[round][j],w=G.sBox[4][t[b[0]>>>2]>>>24-8*(3&b[0])&255],w^=G.sBox[5][t[b[1]>>>2]>>>24-8*(3&b[1])&255],w^=G.sBox[6][t[b[2]>>>2]>>>24-8*(3&b[2])&255],w^=G.sBox[7][t[b[3]>>>2]>>>24-8*(3&b[3])&255],w^=G.sBox[4+j][t[b[4]>>>2]>>>24-8*(3&b[4])&255],k[ki]=w,ki++}for(_results=[],i=_m=0;16>_m;i=++_m)this.masking[i]=k[i],_results.push(this.rotate[i]=31&k[16+i]);return _results},CAST5.prototype.f1=function(d,m,r){var I,t;return t=m+d,I=t<>>32-r,(G.sBox[0][I>>>24]^G.sBox[1][I>>>16&255])-G.sBox[2][I>>>8&255]+G.sBox[3][255&I]},CAST5.prototype.f2=function(d,m,r){var I,t;return t=m^d,I=t<>>32-r,G.sBox[0][I>>>24]-G.sBox[1][I>>>16&255]+G.sBox[2][I>>>8&255]^G.sBox[3][255&I]},CAST5.prototype.f3=function(d,m,r){var I,t;return t=m-d,I=t<>>32-r,(G.sBox[0][I>>>24]+G.sBox[1][I>>>16&255]^G.sBox[2][I>>>8&255])-G.sBox[3][255&I]},CAST5}(),exports.CAST5=CAST5}).call(this)},{"../util":70,triplesec:181}],38:[function(require,module,exports){(function(Buffer){(function(){var AES,WordArray,ciphers,decrypt,encrypt,_ref;_ref=require("triplesec"),ciphers=_ref.ciphers,WordArray=_ref.WordArray,AES=ciphers.AES,encrypt=function(_arg){var block_cipher_class,block_size,c,cipher,e,iv,key,list,out,plaintext,pos;return block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,plaintext=_arg.plaintext,iv=_arg.iv,block_cipher_class||(block_cipher_class=AES),cipher||(cipher=new block_cipher_class(WordArray.from_buffer(key))),block_size=cipher.blockSize,c=WordArray.from_buffer(iv.slice(0,block_size)),pos=0,list=function(){var _results;for(_results=[];plaintext.length>pos;)cipher.encryptBlock(c.words,0),e=c,c=WordArray.from_buffer(plaintext.slice(pos,pos+block_size)),e.xor(c,{n_words:c.words.length}),pos+=block_size,c=e,_results.push(e.to_buffer());return _results}(),out=Buffer.concat(list),out.slice(0,plaintext.length)},decrypt=function(_arg){var b,block_cipher_class,block_size,cipher,ciphertext,d,i,iv,key,list,out,pos;return block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,ciphertext=_arg.ciphertext,iv=_arg.iv,block_cipher_class||(block_cipher_class=AES),cipher||(cipher=new block_cipher_class(WordArray.from_buffer(key))),block_size=cipher.blockSize,iv||(iv=new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;block_size>=0?block_size>_i:_i>block_size;i=block_size>=0?++_i:--_i)_results.push(0);return _results}())),b=WordArray.from_buffer(iv.slice(0,block_size)),pos=0,list=function(){var _results;for(_results=[];ciphertext.length>pos;)cipher.encryptBlock(b.words,0),d=b,b=WordArray.from_buffer(ciphertext.slice(pos,pos+block_size)),d.xor(b,{}),pos+=block_size,_results.push(d.to_buffer());return _results}(),out=Buffer.concat(list),out.slice(out,ciphertext.length)},exports.encrypt=encrypt,exports.decrypt=decrypt}).call(this)}).call(this,require("buffer").Buffer)},{buffer:80,triplesec:181}],39:[function(require,module,exports){(function(){var C,Ch,ClearSigner,CreationTime,Issuer,Literal,SHA512,SRF,Signature,Verifier,VerifierBase,WordArray,bufferify,clearsign_header,clearsign_to_sign,dash_escape,dash_unescape_line,dash_unescape_lines,encode,export_key_pgp,get_cipher,hashmod,iced,input_to_cleartext,input_to_cleartext_display,input_to_cleartext_sign,konst,make_esc,scrub_buffer,triplesec,unix_time,whitespace_strip,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,_ref=require("./packet/signature"),Signature=_ref.Signature,CreationTime=_ref.CreationTime,Issuer=_ref.Issuer,_ref1=require("../util"),bufferify=_ref1.bufferify,unix_time=_ref1.unix_time,SRF=require("../rand").SRF,triplesec=require("triplesec"),_ref2=require("../symmetric"),export_key_pgp=_ref2.export_key_pgp,get_cipher=_ref2.get_cipher,scrub_buffer=triplesec.util.scrub_buffer,WordArray=triplesec.WordArray,konst=require("../const"),C=konst.openpgp,Ch=require("../header"),hashmod=require("../hash"),SHA512=hashmod.SHA512,encode=require("./armor").encode,clearsign_header=require("pgp-utils").armor.clearsign_header,Literal=require("./packet/literal").Literal,VerifierBase=require("./verifier").Base,exports.input_to_cleartext=input_to_cleartext=function(raw){var lines,ret;return lines=raw.split(/\n/),ret={show:bufferify(input_to_cleartext_display(lines)),sign:bufferify(input_to_cleartext_sign(lines))}},exports.dash_escape=dash_escape=function(line){return line.length>=1&&"-"===line[0]?"- "+line:line},exports.dash_unescape_line=dash_unescape_line=function(line){var m,out,warn,_ref3;return warn=!1,out=null!=(m=line.match(/^-( )?(.*?)$/))?(1!==(null!=(_ref3=m[1])?_ref3.length:void 0)?warn=!0:void 0,m[2]):line,[out,warn]},exports.dash_unescape_lines=dash_unescape_lines=function(lines,warnings){var i,l,line,ret,warn;return null==warnings&&(warnings=null),ret=function(){var _i,_len,_ref3,_results;for(_results=[],i=_i=0,_len=lines.length;_len>_i;i=++_i)line=lines[i],_ref3=dash_unescape_line(line),l=_ref3[0],warn=_ref3[1],warn&&null!=warnings&&warnings.push("Bad dash-encoding on line "+(i+1)),_results.push(l);return _results}()},exports.input_to_cleartext_display=input_to_cleartext_display=function(lines){var line,out;return out=function(){var _i,_len,_results;for(_results=[],_i=0,_len=lines.length;_len>_i;_i++)line=lines[_i],_results.push(dash_escape(line));return _results}(),(0===lines.length||""!==lines.slice(-1)[0])&&out.push(""),out.join("\n")},exports.clearsign_to_sign=clearsign_to_sign=function(lines,warnings){return lines=dash_unescape_lines(lines,warnings),input_to_cleartext_sign(lines)},exports.input_to_cleartext_sign=input_to_cleartext_sign=function(lines){var line,num_trailing_newlines,t,tmp,_i;for(tmp=function(){var _i,_len,_results;for(_results=[],_i=0,_len=lines.length;_len>_i;_i++)line=lines[_i],_results.push(whitespace_strip(line));return _results}(),num_trailing_newlines=0,_i=tmp.length-1;_i>=0&&(t=tmp[_i],""===t);_i+=-1)num_trailing_newlines++;return num_trailing_newlines>0&&tmp.pop(),tmp.join("\r\n")},exports.whitespace_strip=whitespace_strip=function(line){var m;return line=line.replace(/\r/g,""),(m=line.match(/^(.*?)([ \t]*)$/))?m[1]:line},ClearSigner=function(){function ClearSigner(_arg){this.msg=_arg.msg,this.signing_key=_arg.signing_key}return ClearSigner.prototype._fix_msg=function(cb){return this._cleartext=input_to_cleartext(this.msg.toString("utf8")),cb(null)},ClearSigner.prototype._sign_msg=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this.sig=new Signature({sig_type:C.sig_types.canonical_text,key:this.signing_key.key,hashed_subpackets:[new CreationTime(unix_time())],unhashed_subpackets:[new Issuer(this.signing_key.get_key_id())]}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"ClearSigner._sign_msg"}),_this.sig.write(_this._cleartext.sign,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1._sig_output=arguments[1]}}(_this),lineno:117})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return cb(err,_this._sig_output)}}(this))},ClearSigner.prototype.scrub=function(){},ClearSigner.prototype.hasher_name=function(){return this.sig.hasher.algname},ClearSigner.prototype._encode=function(cb){var body,hdr;return hdr=clearsign_header(Ch,this._cleartext.show,this.hasher_name()),body=encode(C.message_types.signature,this._sig_output),cb(null,hdr+body)},ClearSigner.prototype.run=function(cb){var encoded,esc,signature,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"ClearSigner::run"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"ClearSigner.run"}),_this._fix_msg(esc(__iced_deferrals.defer({lineno:139}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"ClearSigner.run"}),_this._sign_msg(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return signature=arguments[0]}}(),lineno:140}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"ClearSigner.run"}),_this._encode(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return encoded=arguments[0]}}(),lineno:141}))),__iced_deferrals._fulfill()}(function(){return cb(null,encoded,signature)})})}}(this))},ClearSigner}(),Verifier=function(_super){function Verifier(_arg){var keyfetch,packets;packets=_arg.packets,this.clearsign=_arg.clearsign,keyfetch=_arg.keyfetch,Verifier.__super__.constructor.call(this,{packets:packets,keyfetch:keyfetch})}return __extends(Verifier,_super),Verifier.prototype._reformat_text=function(cb){var data;return data=bufferify(clearsign_to_sign(this.clearsign.lines)),this._literal=new Literal({data:data,format:C.literal_formats.utf8,date:unix_time()}),cb(null)},Verifier.prototype._make_hasher=function(cb){var err,h;return err=null,h=this.clearsign.headers.hash||"MD5",null==(this._sig.hasher=hashmod[h])&&(err=new Error("Unknown hash algorithm: "+h)),cb(err)},Verifier.prototype._verify=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier._verify"}),_this._sig.verify([_this._literal],__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:182})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},Verifier.prototype._check_headers=function(cb){var err,k,v,_ref3;err=null,_ref3=this.clearsign.headers;for(k in _ref3)if(v=_ref3[k],"hash"!==k){err=new Error("Unallowed header: "+k);break}return cb(err)},Verifier.prototype.run=function(cb){var esc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Verifier::run"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._check_headers(esc(__iced_deferrals.defer({lineno:199}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._find_signature(esc(__iced_deferrals.defer({lineno:200}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._reformat_text(esc(__iced_deferrals.defer({lineno:201}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._fetch_key(esc(__iced_deferrals.defer({lineno:202}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._make_hasher(esc(__iced_deferrals.defer({lineno:203}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._verify(esc(__iced_deferrals.defer({lineno:204}))),__iced_deferrals._fulfill()}(function(){return cb(null,_this._literal)})})})})})}}(this))},Verifier}(VerifierBase),exports.sign=function(_arg,cb){var b,encoded,err,msg,signature,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,signing_key=_arg.signing_key,b=new ClearSigner({msg:msg,signing_key:signing_key}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"sign"}),b.run(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],encoded=arguments[1],signature=arguments[2]}}(),lineno:215})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return b.scrub(),cb(err,encoded,signature)}}(this))},exports.verify=function(_arg,cb){var clearsign,err,keyfetch,literal,packets,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,clearsign=_arg.clearsign,keyfetch=_arg.keyfetch,v=new Verifier({packets:packets,clearsign:clearsign,keyfetch:keyfetch}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"verify"}),v.run(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literal=arguments[1]}}(),lineno:223})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,literal)}}(this))}}).call(this)},{"../const":5,"../hash":14,"../header":15,"../rand":65,"../symmetric":68,"../util":70,"./armor":33,"./packet/literal":49,"./packet/signature":53,"./verifier":61,"iced-error":115,"iced-runtime":118,"pgp-utils":163,triplesec:181}],40:[function(require,module,exports){(function(Buffer){(function(){var C,Ch,CreationTime,Issuer,Literal,Signature,Signer,Verifier,VerifierBase,WordArray,encode,hash_obj_to_fn,iced,konst,make_esc,packetsigs,streamers,unix_time,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,_ref=require("./packet/signature"),Signature=_ref.Signature,CreationTime=_ref.CreationTime,Issuer=_ref.Issuer,unix_time=require("../util").unix_time,WordArray=require("triplesec").WordArray,konst=require("../const"),C=konst.openpgp,Ch=require("../header"),streamers=require("../hash").streamers,encode=require("./armor").encode,Literal=require("./packet/literal").Literal,VerifierBase=require("./verifier").Base,packetsigs=require("./packet/packetsigs"),hash_obj_to_fn=function(obj){var fn;return fn=function(buf){return obj.finalize(WordArray.from_buffer(buf)).to_buffer()},fn.algname=buf.algname},Signer=function(){function Signer(_arg){this.data=_arg.data,this.hash_streamer=_arg.hash_streamer,this.signing_key=_arg.signing_key}return Signer.prototype.run=function(cb){var encoded,esc,signature,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Signer::run"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Signer.run"}),_this._run_hash(esc(__iced_deferrals.defer({lineno:39}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Signer.run"}),_this._sign(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return signature=arguments[0]}}(),lineno:40}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Signer.run"}),_this._encode(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return encoded=arguments[0]}}(),lineno:41}))),__iced_deferrals._fulfill()}(function(){return cb(null,encoded,signature)})})}}(this))},Signer.prototype.scrub=function(){},Signer.prototype._sign=function(cb){var emptybuf,err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this.sig=new Signature({sig_type:C.sig_types.canonical_text,key:this.signing_key.key,hashed_subpackets:[new CreationTime(unix_time())],unhashed_subpackets:[new Issuer(this.signing_key.get_key_id())],hasher:this.hash_streamer}),emptybuf=new Buffer([]),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Signer._sign"}),_this.sig.write(emptybuf,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1._sig_output=arguments[1]}}(_this),lineno:60})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return cb(err,_this._sig_output)}}(this))},Signer.prototype._encode=function(cb){var err,ret;return err=null,ret=encode(C.message_types.signature,this._sig_output),cb(err,ret)},Signer.prototype._run_hash=function(cb){var err;return err=null,null!=this.hash_streamer||(null!=this.data?(this.hash_streamer=streamers.SHA512(),this.hash_streamer.update(this.data)):err=new Error("Need either a hasher or data")),cb(err)},Signer}(),Verifier=function(_super){function Verifier(_arg){var keyfetch,packets;packets=_arg.packets,this.data=_arg.data,this.data_fn=_arg.data_fn,keyfetch=_arg.keyfetch,Verifier.__super__.constructor.call(this,{packets:packets,keyfetch:keyfetch})}return __extends(Verifier,_super),Verifier.prototype._consume_data=function(cb){var buf_hasher,done,err,go,klass,streamer,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,function(_this){return function(__iced_k){return null==_this.data_fn?__iced_k():(err=null,klass=_this._sig.hasher.klass,streamer=streamers[_this._sig.hasher.algname](),buf_hasher=function(buf){return streamer.update(buf)},go=!0,function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier._consume_data"}),_this.data_fn(buf_hasher,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],done=arguments[1]}}(),lineno:102})),__iced_deferrals._fulfill()}(function(){return _next(null!=err||done?go=!1:void 0)}):_break()})(__iced_k)}(function(){return __iced_k(_this._sig.hasher=streamer)}),void 0)}}(this)(function(){return function(){return cb(err)}}(this))},Verifier.prototype._verify=function(cb){var data,err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=this.data?[new Literal({data:this.data})]:[],this.literals=data,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier._verify"}),_this._sig.verify(data,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:113})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},Verifier.prototype._make_literals=function(cb){return this.literals.length||this.literals.push(new Literal({data:new Buffer([])})),this.literals[0].push_sig(new packetsigs.Data({sig:this._sig})),cb(null)},Verifier.prototype.run=function(cb){var esc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Verifier::run"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._find_signature(esc(__iced_deferrals.defer({lineno:128}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._fetch_key(esc(__iced_deferrals.defer({lineno:129}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._consume_data(esc(__iced_deferrals.defer({lineno:130}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._verify(esc(__iced_deferrals.defer({lineno:131}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._make_literals(esc(__iced_deferrals.defer({lineno:132}))),__iced_deferrals._fulfill()}(function(){return cb(null,_this.literals)})})})})}}(this))},Verifier}(VerifierBase),exports.sign=function(_arg,cb){var data,encoded,err,hash_streamer,s,signature,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,hash_streamer=_arg.hash_streamer,signing_key=_arg.signing_key,s=new Signer({data:data,hash_streamer:hash_streamer,signing_key:signing_key}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"sign"}),s.run(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],encoded=arguments[1],signature=arguments[2]}}(),lineno:139})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return s.scrub(),cb(err,encoded,signature)}}(this))},exports.verify=function(_arg,cb){var data,data_fn,err,keyfetch,literals,packets,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,data_fn=_arg.data_fn,packets=_arg.packets,keyfetch=_arg.keyfetch,v=new Verifier({data:data,data_fn:data_fn,packets:packets,keyfetch:keyfetch}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"verify"}),v.run(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:147})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,literals)}}(this))}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,"../header":15,"../util":70,"./armor":33,"./packet/literal":49,"./packet/packetsigs":51,"./packet/signature":53,"./verifier":61,buffer:80,"iced-error":115,"iced-runtime":118,triplesec:181}],41:[function(require,module,exports){(function(){var SignatureEngine,burn,processor;burn=require("./burner").burn,processor=require("./processor"),SignatureEngine=require("./sigeng").SignatureEngine,exports.box=burn,exports.unbox=processor.do_message}).call(this)},{"./burner":36,"./processor":57,"./sigeng":59}],42:[function(require,module,exports){(function(Buffer){(function(){var ASP,C,ECDSA,Encryptor,Engine,K,KeyBlock,KeyFetched,KeyFetcher,KeyManager,KeyManagerInterface,Lifespan,Message,P3SKB,PgpEngine,Primary,RSA,SignatureEngine,Subkey,assert_no_nulls,athrow,bufeq_secure,bufferify,decode,encode,format_pgp_fingerprint_2,iced,katch,make_esc,opkts,ops_to_keyflags,parse,read_base64,unix_time,unseal,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,_ref4,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},__slice=[].slice;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},RSA=require("../rsa").RSA,ECDSA=require("../ecc/ecdsa").ECDSA,K=require("../const").kb,C=require("../const").openpgp,make_esc=require("iced-error").make_esc,_ref=require("../util"),format_pgp_fingerprint_2=_ref.format_pgp_fingerprint_2,athrow=_ref.athrow,assert_no_nulls=_ref.assert_no_nulls,ASP=_ref.ASP,katch=_ref.katch,bufeq_secure=_ref.bufeq_secure,unix_time=_ref.unix_time,bufferify=_ref.bufferify,ops_to_keyflags=require("./util").ops_to_keyflags,_ref1=require("../keywrapper"),Lifespan=_ref1.Lifespan,Subkey=_ref1.Subkey,Primary=_ref1.Primary,_ref2=require("./armor"),Message=_ref2.Message,encode=_ref2.encode,decode=_ref2.decode,parse=require("./parser").parse,KeyBlock=require("./processor").KeyBlock,opkts=require("./packet/all"),_ref3=require("../keybase/encode"),read_base64=_ref3.read_base64,unseal=_ref3.unseal,P3SKB=require("../keybase/packet/p3skb").P3SKB,_ref4=require("../keyfetch"),KeyFetcher=_ref4.KeyFetcher,KeyFetched=_ref4.KeyFetched,SignatureEngine=require("./sigeng").SignatureEngine,Encryptor=require("triplesec").Encryptor,KeyManagerInterface=require("../kmi").KeyManagerInterface,Engine=function(){function Engine(_arg){var k,_i,_len,_ref5;for(this.primary=_arg.primary,this.subkeys=_arg.subkeys,this.userids=_arg.userids,this.key_manager=_arg.key_manager,this.packets=[],this.messages=[],this._allocate_key_packets(),_ref5=this.subkeys,_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],k.primary=this.primary;this._index_keys()}return Engine.prototype._index_keys=function(){var k,_i,_len,_ref5,_results;for(this._index={},_ref5=this._all_keys(),_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push(this._index[this.ekid(k)]=k);return _results},Engine.prototype.ekid=function(k){return this.key(k).ekid()},Engine.prototype._allocate_key_packets=function(){var key,_i,_len,_ref5,_results;for(this._v_allocate_key_packet(this.primary,{subkey:!1}),_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)key=_ref5[_i],_results.push(this._v_allocate_key_packet(key,{subkey:!0})); return _results},Engine.prototype._all_keys=function(){return[this.primary].concat(this.subkeys)},Engine.prototype.self_sign_primary=function(args,cb){return this._v_self_sign_primary(args,cb)},Engine.prototype.get_all_key_materials=function(){var k;return[[this.key(this.primary),!0]].concat(function(){var _i,_len,_ref5,_results;for(_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push([this.key(k),!1]);return _results}.call(this))},Engine.prototype.sign_subkeys=function(_arg,cb){var asp,err,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,err=null,function(_this){return function(__iced_k){var _i,_len,_ref5,_results,_while;_ref5=_this.subkeys,_len=_ref5.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(subkey=_ref5[_i],null!=err?_continue():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.sign_subkeys"}),_this._v_sign_subkey({asp:asp,subkey:subkey},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:73})),__iced_deferrals._fulfill()}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},Engine.prototype.get_subkey_materials=function(){var k,_i,_len,_ref5,_results;for(_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push(this.key(k));return _results},Engine.prototype.is_locked=function(){var i,k,_i,_len,_ref5;for(_ref5=this._all_keys(),i=_i=0,_len=_ref5.length;_len>_i;i=++_i)if(k=_ref5[i],this.key(k).is_locked())return!0;return!1},Engine.prototype.has_private=function(){var k,_i,_len,_ref5;for(_ref5=this._all_keys(),_i=0,_len=_ref5.length;_len>_i;_i++)if(k=_ref5[_i],this.key(k).has_private())return!0;return!1},Engine.prototype.sign=function(_arg,cb){var asp,err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.sign"}),_this.self_sign_primary({asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:97})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return"undefined"!=typeof err&&null!==err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.sign"}),_this.sign_subkeys({asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:98})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err)})}}(this))},Engine.prototype.check_eq=function(eng2){var err,i,key,_i,_len,_ref5;if(err=null,this.primary.key.eq(eng2.primary.key))if(this.subkeys.length!==eng2.subkeys.length)err=new Error("different # of subkeys");else for(_ref5=this.subkeys,i=_i=0,_len=_ref5.length;_len>_i;i=++_i)key=_ref5[i],null==this.err&&(key.key.eq(eng2.subkeys[i].key)||(err=new Error("subkey "+i+" doesn't match")));else err=new Error("Primary keys don't match");return err},Engine.prototype.merge_private=function(eng2){var err,i,k,_i,_len,_ref5;if(err=this._merge_private_primary(eng2),null==err)for(_ref5=eng2.subkeys,i=_i=0,_len=_ref5.length;_len>_i&&(k=_ref5[i],null==(err=this._merge_private_subkey(k,i)));i=++_i);return err},Engine.prototype._merge_private_primary=function(eng2){var err;return err=this.key(eng2.primary).has_secret_key_material()?this._merge_1_private(this.primary,eng2.primary)?null:new Error("primary public key doesn't match private key"):null},Engine.prototype._merge_private_subkey=function(k2,i){var ekid,err,k;return err=this.key(k2).has_secret_key_material()?null==(ekid=this.ekid(k2))?new Error("Subkey "+i+" is malformed"):null==(k=this._index[ekid])?new Error("Subkey "+i+" wasn't found in public key"):this._merge_1_private(k,k2)?null:new Error("subkey "+i+" can't be merged"):null},Engine.prototype.unlock_keys=function(_arg,cb){var asp,esc,i,passphrase,subkey,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,passphrase=_arg.passphrase,tsenc=_arg.tsenc,esc=make_esc(cb,"Engine::unlock_keys"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.unlock_keys"}),_this.key(_this.primary).unlock({asp:asp,tsenc:tsenc,passphrase:passphrase},esc(__iced_deferrals.defer({lineno:146}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _len,_ref5,_results,_while;_ref5=_this.subkeys,_len=_ref5.length,i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>i?(subkey=_ref5[i],_this.key(subkey).has_private()?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.unlock_keys"}),_this.key(subkey).unlock({asp:asp,tsenc:tsenc,passphrase:passphrase},esc(__iced_deferrals.defer({lineno:148}))),__iced_deferrals._fulfill()}(_next):_continue()):_break()})(__iced_k)}(function(){return cb(null)})}}(this))},Engine.prototype.export_keys_to_keyring=function(km){var k,x;return x=function(_this){return function(key_wrapper,is_primary){return{km:km,is_primary:is_primary,key_wrapper:key_wrapper,key_material:_this.key(key_wrapper),key:_this.key(key_wrapper).key}}}(this),[x(this.primary,!0)].concat(function(){var _i,_len,_ref5,_results;for(_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push(x(k,!1));return _results}.call(this))},Engine.prototype._merge_1_private=function(k1,k2){return bufeq_secure(this.ekid(k1),this.ekid(k2))?(this.key(k1).merge_private(this.key(k2)),!0):!1},Engine}(),PgpEngine=function(_super){function PgpEngine(_arg){var key_manager,primary,subkeys,userids;primary=_arg.primary,subkeys=_arg.subkeys,userids=_arg.userids,this.user_attributes=_arg.user_attributes,key_manager=_arg.key_manager,PgpEngine.__super__.constructor.call(this,{primary:primary,subkeys:subkeys,userids:userids,key_manager:key_manager})}return __extends(PgpEngine,_super),PgpEngine.prototype.key=function(k){return k._pgp},PgpEngine.prototype._v_allocate_key_packet=function(key,opts){return null==key._pgp?key._pgp=new opkts.KeyMaterial({key:key.key,timestamp:key.lifespan.generated,flags:key.flags,opts:opts}):void 0},PgpEngine.prototype._v_self_sign_primary=function(_arg,cb){var asp,err,raw_payload,sigs,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,raw_payload=_arg.raw_payload,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"PgpEngine._v_self_sign_primary"}),_this.key(_this.primary).self_sign_key({lifespan:_this.primary.lifespan,userids:_this.userids,raw_payload:raw_payload},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sigs=arguments[1]}}(),lineno:198})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,sigs)}}(this))},PgpEngine.prototype._v_sign_subkey=function(_arg,cb){var asp,err,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,subkey=_arg.subkey,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"PgpEngine._v_sign_subkey"}),_this.key(_this.primary).sign_subkey({subkey:_this.key(subkey),lifespan:subkey.lifespan},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:204})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},PgpEngine.prototype.set_passphrase=function(pp){var k,_i,_len,_ref5,_results;for(this.primary.passphrase=pp,_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push(k.passphrase=pp);return _results},PgpEngine.prototype._export_keys_to_binary=function(opts){var packets,subkey,userid,_i,_j,_len,_len1,_ref5,_ref6;for(packets=[this.key(this.primary).export_framed(opts)],_ref5=this.userids,_i=0,_len=_ref5.length;_len>_i;_i++)userid=_ref5[_i],packets.push(userid.write(),userid.get_framed_signature_output());for(opts.subkey=!0,_ref6=this.subkeys,_j=0,_len1=_ref6.length;_len1>_j;_j++)subkey=_ref6[_j],packets.push(this.key(subkey).export_framed(opts),this.key(subkey).get_subkey_binding_signature_output());return assert_no_nulls(packets),Buffer.concat(packets)},PgpEngine.prototype.export_keys=function(opts){var msg,mt,type;return mt=C.message_types,type=opts["private"]?mt.private_key:mt.public_key,msg=this._export_keys_to_binary(opts),encode(type,msg)},PgpEngine.prototype.export_to_p3skb=function(){var priv_clear,pub;return pub=this._export_keys_to_binary({"private":!1}),priv_clear=this._export_keys_to_binary({"private":!0}),new P3SKB({pub:pub,priv_clear:priv_clear})},PgpEngine.prototype.find_key=function(key_id){var k,_i,_len,_ref5;for(_ref5=this._all_keys(),_i=0,_len=_ref5.length;_len>_i;_i++)if(k=_ref5[_i],bufeq_secure(this.key(k).get_key_id(),key_id))return k;return null},PgpEngine.prototype.find_key_material=function(key_id){var key;return key=this.find_key(key_id),null!=key?this.key(key):null},PgpEngine.prototype.get_key_id=function(){return this.key(this.primary).get_key_id()},PgpEngine.prototype.get_short_key_id=function(){return this.key(this.primary).get_short_key_id()},PgpEngine.prototype.get_fingerprint=function(){return this.key(this.primary).get_fingerprint()},PgpEngine.prototype.get_ekid=function(){return this.key(this.primary).ekid()},PgpEngine.prototype.validity_check=function(cb){var err,k,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,function(_this){return function(__iced_k){var _i,_len,_ref5,_results,_while;_ref5=_this._all_keys(),_len=_ref5.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(k=_ref5[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"PgpEngine.validity_check"}),_this.key(k).validity_check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:267})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null==err?__iced_k():void!function(){_break()}(__iced_k)}(_next)})):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},PgpEngine.prototype.find_best_key=function(flags,need_priv){var check,k,wrapper,_i,_len,_ref5;for(null==need_priv&&(need_priv=!1),wrapper=null,check=function(_this){return function(k){var km,ok1,ok2;return km=_this.key(k),ok1=km.fulfills_flags(flags)||(k.flags&flags)===flags,ok2=!need_priv||km.has_private(),ok1&&ok2}}(this),_ref5=this.subkeys,_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],null==wrapper&&check(k)&&(wrapper=k);return null==wrapper&&check(this.primary)&&(wrapper=this.primary),null!=wrapper?this.key(wrapper):null},PgpEngine.prototype.fetch=function(key_ids,op_mask,cb){var err,flags,i,key,kid,ret,ret_i,_i,_len;for(flags=ops_to_keyflags(op_mask),err=key=ret=null,key=null,ret_i=null,i=_i=0,_len=key_ids.length;_len>_i;i=++_i)kid=key_ids[i],null==key&&(key=this.find_key(kid),null!=key&&(ret_i=i));return null==key?err=new Error("No keys match the given fingerprint"):this.key(key).fulfills_flags(flags)?ret=this.key(key):err=new Error("We don't have a key for the requested PGP ops"),cb(err,this.key_manager,ret_i)},PgpEngine}(Engine),KeyManager=function(_super){function KeyManager(_arg){this.primary=_arg.primary,this.subkeys=_arg.subkeys,this.userids=_arg.userids,this.armored_pgp_public=_arg.armored_pgp_public,this.armored_pgp_private=_arg.armored_pgp_private,this.user_attributes=_arg.user_attributes,this.pgp=new PgpEngine({primary:this.primary,subkeys:this.subkeys,userids:this.userids,user_attributes:this.user_attributes,key_manager:this}),this.engines=[this.pgp],this._signed=!1,this.p3skb=null}return __extends(KeyManager,_super),KeyManager.generate=function(_arg,cb){var F,KEY_FLAGS_PRIMARY,KEY_FLAGS_STD,asp,bundle,ecc,err,esc,expire_in,flags,gen,generated,i,nbits,nsubs,primary,primary_flags,s,sub_flags,subkey,subkeys,subkeys_out,u,userid,userids,___iced_passed_deferral,__iced_deferrals,__iced_k,_i,_len;for(__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,userid=_arg.userid,userids=_arg.userids,primary=_arg.primary,subkeys=_arg.subkeys,ecc=_arg.ecc,sub_flags=_arg.sub_flags,nsubs=_arg.nsubs,primary_flags=_arg.primary_flags,nbits=_arg.nbits,expire_in=_arg.expire_in,asp=ASP.make(asp),F=C.key_flags,KEY_FLAGS_STD=F.sign_data|F.encrypt_comm|F.encrypt_storage|F.auth,KEY_FLAGS_PRIMARY=KEY_FLAGS_STD|F.certify_keys,primary||(primary={}),primary.flags||(primary.flags=primary_flags||KEY_FLAGS_PRIMARY),primary.expire_in||(primary.expire_in=(null!=expire_in?expire_in.primary:void 0)||K.key_defaults.primary.expire_in),primary.algo||(primary.algo=ecc?ECDSA:RSA),primary.nbits||(primary.nbits=nbits||K.key_defaults.primary.nbits[primary.algo.klass_name]),null!=nsubs&&null==sub_flags&&(sub_flags=function(){var _i,_results;for(_results=[],i=_i=0;nsubs>=0?nsubs>_i:_i>nsubs;i=nsubs>=0?++_i:--_i)_results.push(KEY_FLAGS_STD);return _results}()),subkeys||(subkeys=function(){var _i,_len,_results;for(_results=[],_i=0,_len=sub_flags.length;_len>_i;_i++)flags=sub_flags[_i],_results.push({flags:flags});return _results}()),_i=0,_len=subkeys.length;_len>_i;_i++)subkey=subkeys[_i],subkey.expire_in||(subkey.expire_in=(null!=expire_in?expire_in.subkey:void 0)||K.key_defaults.sub.expire_in),subkey.flags||(subkey.flags=KEY_FLAGS_STD),subkey.algo||(subkey.algo=primary.algo.subkey_algo(subkey.flags)),subkey.nbits||(subkey.nbits=nbits||K.key_defaults.sub.nbits[subkey.algo.klass_name]);generated=unix_time(),esc=make_esc(cb,"KeyManager::generate"),null!=userid&&(userids=[userid]),function(){return function(__iced_k){return null!=userids&&Array.isArray(userids)?__iced_k(userids=function(){var _j,_len1,_results;for(_results=[],_j=0,_len1=userids.length;_len1>_j;_j++)u=userids[_j],_results.push(new opkts.UserID(u));return _results}()):(err=new Error("Need either 'userid' or 'userids' specified as an array"),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.generate"}),athrow(err,esc(__iced_deferrals.defer({lineno:391}))),__iced_deferrals._fulfill()}(__iced_k))}}(this)(function(){return function(){gen=function(_arg1,cb){var err,key,klass,lifespan,params,primary,section,wrapper,___iced_passed_deferral1,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral1=iced.findDeferral(arguments),klass=_arg1.klass,section=_arg1.section,params=_arg1.params,primary=_arg1.primary,asp.section(section),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral1,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced"}),params.algo.generate({asp:asp,nbits:params.nbits},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],key=arguments[1]}}(),lineno:395})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return("undefined"==typeof err||null===err)&&(lifespan=new Lifespan({generated:generated,expire_in:params.expire_in}),wrapper=new klass({key:key,lifespan:lifespan,flags:params.flags,primary:primary})),cb(err,wrapper)}}(this))},function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.generate"}),gen({klass:Primary,section:"primary",params:primary},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return primary=arguments[0]}}(),lineno:401}))),__iced_deferrals._fulfill()}(function(){subkeys_out=[],function(__iced_k){var _len1,_ref5,_results,_while;_ref5=subkeys,_len1=_ref5.length,i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len1>i?(subkey=_ref5[i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.generate"}),gen({klass:Subkey,section:"subkey "+(i+1),params:subkey,primary:primary},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return s=arguments[0]}}(),lineno:404}))),__iced_deferrals._fulfill()}(function(){return _next(subkeys_out.push(s))})):_break()})(__iced_k)}(function(){return bundle=new KeyManager({primary:primary,subkeys:subkeys_out,userids:userids}),cb(null,bundle)})})}}(this))},KeyManager.generate_rsa=function(_arg,cb){var F,asp,primary,subkeys,userid,userids;return asp=_arg.asp,userid=_arg.userid,userids=_arg.userids,F=C.key_flags,primary={flags:F.certify_keys,nbits:4096},subkeys=[{flags:F.encrypt_data|F.encrypt_comm,nbits:2048},{flags:F.sign_data|F.auth,nbits:2048}],KeyManager.generate({asp:asp,userid:userid,userids:userids,primary:primary,subkeys:subkeys},cb)},KeyManager.generate_ecc=function(_arg,cb){var F,asp,primary,subkeys,userid,userids;return asp=_arg.asp,userid=_arg.userid,userids=_arg.userids,F=C.key_flags,primary={flags:F.certify_keys,nbits:384,algo:ECDSA},subkeys=[{flags:F.encrypt_data|F.encrypt_comm,nbits:256},{flags:F.sign_data|F.auth,nbits:256}],KeyManager.generate({asp:asp,userid:userid,userids:userids,primary:primary,subkeys:subkeys},cb)},KeyManager.prototype.set_enc=function(e){return this.tsenc=e},KeyManager.import_from_armored_pgp=function(_arg,cb){var armored,asp,binary,err,msg,opts,raw,ret,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5,_ref6;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,raw=_arg.raw,binary=_arg.binary,asp=_arg.asp,opts=_arg.opts,msg=binary,err=null,null==msg&&(raw||(raw=armored),asp=ASP.make(asp),warnings=null,ret=null,_ref5=decode(raw),err=_ref5[0],msg=_ref5[1],null==err&&(_ref6=msg.type)!==C.message_types.public_key&&_ref6!==C.message_types.private_key&&(err=new Error("Wanted a public or private key; got: "+msg.type))),function(){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_armored_pgp"}),KeyManager.import_from_pgp_message({msg:msg,asp:asp,opts:opts},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1],warnings=arguments[2]}}(),lineno:482})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_armored_pgp"}),ret.simple_unlock({},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:488})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,ret,warnings)})}}(this))},KeyManager.prototype.simple_unlock=function(opts,cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,function(_this){return function(__iced_k){return!_this.has_pgp_private()||_this.is_pgp_locked()?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.simple_unlock"}),_this.unlock_pgp({},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:500})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},KeyManager.import_from_p3skb=function(_arg,cb){var armored,asp,err,km,msg,p3skb,raw,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),raw=_arg.raw,armored=_arg.armored,asp=_arg.asp,armored||(armored=raw),asp=ASP.make(asp),km=null,warnings=null,_ref5=katch(function(){return P3SKB.alloc(unseal(read_base64(armored)))}),err=_ref5[0],p3skb=_ref5[1],function(){return function(__iced_k){return null!=err?__iced_k():(msg=new Message({body:p3skb.pub,type:C.message_types.public_key}),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_p3skb"}),KeyManager.import_from_pgp_message({msg:msg,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],warnings=arguments[2]}}(),lineno:515})),__iced_deferrals._fulfill()}(function(){return __iced_k(null!=km?km.p3skb=p3skb:void 0)}))}}(this)(function(){return function(){return cb(err,km,warnings)}}(this))},KeyManager.prototype.unlock_p3skb=function(_arg,cb){var asp,err,km,msg,passphrase,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,tsenc=_arg.tsenc,passphrase=_arg.passphrase,asp=ASP.make(asp),null==tsenc&&null!=passphrase&&(tsenc=new Encryptor({key:bufferify(passphrase)})),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_p3skb"}),_this.p3skb.unlock({tsenc:tsenc,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:525})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():(msg=new Message({body:_this.p3skb.priv.data,type:C.message_types.private_key}),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_p3skb"}),KeyManager.import_from_pgp_message({msg:msg,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1]}}(),lineno:528})),__iced_deferrals._fulfill()}(__iced_k))}(function(){("undefined"==typeof err||null===err)&&(err=_this.pgp.merge_private(km.pgp)),function(__iced_k){return null!=err?__iced_k():(passphrase=new Buffer([]),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_p3skb"}),_this.unlock_pgp({passphrase:passphrase},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:537})),__iced_deferrals._fulfill()}(__iced_k))}(function(){return cb(err)})})}}(this))},KeyManager.import_from_pgp_message=function(_arg,cb){var asp,bundle,err,k,kb,msg,opts,packets,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,asp=_arg.asp,opts=_arg.opts,asp=ASP.make(asp),bundle=null,warnings=null,("undefined"==typeof err||null===err)&&(_ref5=parse(msg.body),err=_ref5[0],packets=_ref5[1]),function(){return function(__iced_k){return null!=err?__iced_k():(kb=new KeyBlock(packets,opts),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_pgp_message"}),kb.process(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:552})),__iced_deferrals._fulfill()}(function(){return __iced_k(warnings=kb.warnings)}))}}(this)(function(){return function(){null==err&&(bundle=new KeyManager({primary:KeyManager._wrap_pgp(Primary,kb.primary),subkeys:function(){var _i,_len,_ref6,_results;for(_ref6=kb.subkeys,_results=[],_i=0,_len=_ref6.length;_len>_i;_i++)k=_ref6[_i],_results.push(KeyManager._wrap_pgp(Subkey,k));return _results}(),armored_pgp_public:msg.raw(),user_attributes:kb.user_attributes,userids:kb.userids})),function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_pgp_message"}),bundle.check_pgp_validity(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:562})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,bundle,warnings)})}}(this))},KeyManager.prototype.merge_pgp_private=function(_arg,cb){var armored,asp,b2,err,esc,raw,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,raw=_arg.raw,asp=_arg.asp,asp=ASP.make(asp),esc=make_esc(cb,"merge_pgp_private"),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.merge_pgp_private"}),KeyManager.import_from_armored_pgp({armored:armored,raw:raw,asp:asp},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return b2=arguments[0]}}(),lineno:573}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){err=_this.pgp.merge_private(b2.pgp),function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.merge_pgp_private"}),_this.simple_unlock({},esc(__iced_deferrals.defer({lineno:575}))),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err)})}}(this))},KeyManager.prototype.check_pgp_public_eq=function(km2){return this.pgp.check_eq(km2.pgp)},KeyManager.prototype.unlock_pgp=function(_arg,cb){var err,passphrase,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),passphrase=_arg.passphrase,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_pgp"}),_this.pgp.unlock_keys({passphrase:passphrase},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:588})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},KeyManager.prototype.is_pgp_locked=function(){return this.pgp.is_locked()},KeyManager.prototype.is_keybase_locked=function(){return this.keybase.is_locked()},KeyManager.prototype.has_pgp_private=function(){return this.pgp.has_private()},KeyManager.prototype.has_p3skb_private=function(){var _ref5;return null!=(_ref5=this.p3skb)?_ref5.has_private():void 0},KeyManager.prototype.has_keybase_private=function(){return this.keybase.has_private()},KeyManager.prototype.is_p3skb_locked=function(){var _ref5;return null!=(_ref5=this.p3skb)?_ref5.is_locked():void 0},KeyManager.prototype.unlock_keybase=function(_arg,cb){var asp,err,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),tsenc=_arg.tsenc,asp=_arg.asp,asp=ASP.make(asp),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_keybase"}),_this.keybase.unlock_keys({tsenc:tsenc,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:606})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},KeyManager.prototype.export_private_to_server=function(_arg,cb){var asp,err,p3skb,ret,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),tsenc=_arg.tsenc,asp=_arg.asp,asp=ASP.make(asp),err=ret=null,function(_this){return function(__iced_k){return null!=(err=_this._assert_signed())?__iced_k():(p3skb=_this.pgp.export_to_p3skb(),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.export_private_to_server"}),p3skb.lock({tsenc:tsenc,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:619})),__iced_deferrals._fulfill()}(__iced_k))}}(this)(function(){return function(){return null==err&&(ret=p3skb.frame_packet_armored({dohash:!0})),cb(err,ret)}}(this))},KeyManager.prototype.export_pgp_private_to_client=function(_arg,cb){var asp,err,msg,passphrase,regen;return passphrase=_arg.passphrase,asp=_arg.asp,regen=_arg.regen,asp=ASP.make(asp),err=msg=null,null!=passphrase&&(passphrase=bufferify(passphrase)),!regen&&(msg=this.armored_pgp_private)||null==(err=this._assert_signed())&&(msg=this.pgp.export_keys({"private":!0,passphrase:passphrase})),cb(err,msg)},KeyManager.prototype.export_pgp_private=function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],this.export_pgp_private_to_client.apply(this,args)},KeyManager.prototype.export_pgp_public=function(_arg,cb){var asp,err,msg,regen;return asp=_arg.asp,regen=_arg.regen,asp=ASP.make(asp),err=null,null==(err=this._assert_signed())&&(regen||(msg=this.armored_pgp_public),null==msg&&(msg=this.pgp.export_keys({"private":!1}))),cb(err,msg)},KeyManager.prototype.export_public=function(_arg,cb){var asp,err,msg,regen,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,regen=_arg.regen,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.export_public"}),_this.export_pgp_public({asp:asp,regen:regen},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],msg=arguments[1] }}(),lineno:654})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,msg)}}(this))},KeyManager.prototype.export_private=function(_arg,cb){var asp,err,p3skb,passphrase,res,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),passphrase=_arg.passphrase,p3skb=_arg.p3skb,asp=_arg.asp,function(_this){return function(__iced_k){p3skb?(tsenc=new Encryptor({key:bufferify(passphrase)}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.export_private"}),_this.export_private_to_server({tsenc:tsenc,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],res=arguments[1]}}(),lineno:662})),__iced_deferrals._fulfill()}(__iced_k)):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.export_private"}),_this.export_pgp_private_to_client({passphrase:passphrase,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],res=arguments[1]}}(),lineno:664})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,res)}}(this))},KeyManager.prototype.sign_pgp=function(_arg,cb){var asp;return asp=_arg.asp,this.pgp.sign({asp:asp},cb)},KeyManager.prototype.sign=function(_arg,cb){var asp,err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,asp=ASP.make(asp),asp.section("sign"),asp.progress({what:"sign PGP",total:1,i:0}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.sign"}),_this.sign_pgp({asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:677})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return asp.progress({what:"sign PGP",total:1,i:1}),("undefined"==typeof err||null===err)&&(_this._signed=!0),cb(err)}}(this))},KeyManager.prototype.get_userids=function(){return this.userids},KeyManager.prototype.get_userids_mark_primary=function(){var do_insert,i,k,max,max_s,mymax,obj,pair,prev,primary_time,ret,s,tab,userid,_i,_len,_ref5;for(max=null,max_s=null,tab={},mymax=function(a,b){return null==a&&null==b?null:null==a?b:null==b?a:a>b?a:b},_ref5=this.userids,i=_i=0,_len=_ref5.length;_len>_i;i=++_i)userid=_ref5[i],null!=userid&&(s=userid.utf8(),pair=userid.time_primary_pair(),obj={userid:userid,pair:pair,i:i},do_insert=!1,null!=(prev=tab[s])?(primary_time=mymax(prev.pair[1],pair[1]),(null==prev.pair[0]||pair[0]&&prev.pair[0]max)&&(max_s=s,max=primary_time));null!=max_s&&(tab[max_s].userid.primary=!0),ret=[];for(k in tab)obj=tab[k],obj.userid.most_recent_sig=obj.pair[0],ret.push(obj.userid);return ret},KeyManager.prototype.fetch=function(key_ids,flags,cb){return this.pgp.fetch(key_ids,flags,cb)},KeyManager.prototype.find_pgp_key=function(key_id){return this.pgp.find_key(key_id)},KeyManager.prototype.find_pgp_key_material=function(key_id){return this.pgp.find_key_material(key_id)},KeyManager.prototype.find_best_pgp_key=function(flags,need_priv){return this.pgp.find_best_key(flags,need_priv)},KeyManager.prototype.find_signing_pgp_key=function(){return this.find_best_pgp_key(C.key_flags.sign_data,!0)},KeyManager.prototype.find_verifying_pgp_key=function(){return this.find_best_pgp_key(C.key_flags.sign_data,!1)},KeyManager.prototype.find_crypt_pgp_key=function(need_priv){return null==need_priv&&(need_priv=!1),this.find_best_pgp_key(C.key_flags.encrypt_comm,need_priv)},KeyManager.prototype.can_verify=function(){return null!=this.find_verifying_pgp_key()},KeyManager.prototype.get_primary_keypair=function(){return this.primary.key},KeyManager.prototype.get_all_pgp_key_materials=function(){return this.pgp.get_all_key_materials()},KeyManager.prototype.export_pgp_keys_to_keyring=function(){return this.pgp.export_keys_to_keyring(this)},KeyManager.prototype.get_pgp_key_id=function(){return this.pgp.get_key_id()},KeyManager.prototype.get_pgp_short_key_id=function(){return this.pgp.get_short_key_id()},KeyManager.prototype.get_pgp_fingerprint=function(){return this.pgp.get_fingerprint()},KeyManager.prototype.get_pgp_fingerprint_str=function(){var _ref5;return null!=(_ref5=this.get_pgp_fingerprint())?_ref5.toString("hex"):void 0},KeyManager.prototype.get_ekid=function(){return this.pgp.get_ekid()},KeyManager.prototype.get_ekid_b64_str=function(){var k;return null!=(k=this.get_ekid())?base64u.encode(k):null},KeyManager.prototype.get_fp2=function(){return this.get_pgp_fingerprint()},KeyManager.prototype.get_fp2_formatted=function(opts){var p;return null!=(p=this.get_fp2())?format_pgp_fingerprint_2(p,opts):null},KeyManager.prototype.get_type=function(){return"pgp"},KeyManager.prototype.check_pgp_validity=function(cb){return this.pgp.validity_check(cb)},KeyManager.prototype.make_sig_eng=function(){return new SignatureEngine({km:this})},KeyManager.prototype._apply_to_engines=function(_arg,cb){var args,e,err,meth,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),args=_arg.args,meth=_arg.meth,err=null,function(_this){return function(__iced_k){var _i,_len,_ref5,_results,_while;_ref5=_this.engines,_len=_ref5.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(e=_ref5[_i],err?_continue():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager._apply_to_engines"}),meth.call(e,args,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:803})),__iced_deferrals._fulfill()}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},KeyManager.prototype._assert_signed=function(){return this._signed?null:new Error("need to sign before export")},KeyManager._wrap_pgp=function(klass,kmp){return new klass({key:kmp.key,lifespan:new Lifespan({generated:kmp.timestamp}),_pgp:kmp})},KeyManager}(KeyManagerInterface),exports.KeyManager=KeyManager,exports.opkts=opkts}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../ecc/ecdsa":10,"../keybase/encode":16,"../keybase/packet/p3skb":21,"../keyfetch":24,"../keywrapper":26,"../kmi":27,"../rsa":67,"../util":70,"./armor":33,"./packet/all":44,"./parser":56,"./processor":57,"./sigeng":59,"./util":60,buffer:80,"iced-error":115,"iced-runtime":118,triplesec:181}],43:[function(require,module,exports){(function(Buffer){(function(){var AES,ASP,Base,Decryptor,Encryptor,SlicerBuffer,WordArray,decrypt,encrypt,iced,make_esc,repeat,rng,test,triplesec,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},WordArray=require("triplesec").WordArray,SlicerBuffer=require("./buffer").SlicerBuffer,triplesec=require("triplesec"),AES=triplesec.ciphers.AES,ASP=require("pgp-utils").util.ASP,make_esc=require("iced-error").make_esc,repeat=function(b,n){return Buffer.concat([b,b.slice(b.length-n)])},Base=function(){function Base(_arg){var asp,key;this.block_cipher_class=_arg.block_cipher_class,key=_arg.key,this.cipher=_arg.cipher,this.resync=_arg.resync,asp=_arg.asp,this.block_cipher_class||(this.block_cipher_class=AES),this.cipher||(this.cipher=new this.block_cipher_class(WordArray.from_buffer(key))),this.block_size=this.cipher.blockSize,this.out_bufs=[],this.asp=ASP.make(asp)}return Base.prototype.compact=function(){var b;return b=Buffer.concat(this.out_bufs),this.out_bufs=[b],b},Base}(),Encryptor=function(_super){function Encryptor(_arg){var asp,block_cipher_class,cipher,key,prefixrandom,resync;block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,prefixrandom=_arg.prefixrandom,resync=_arg.resync,asp=_arg.asp,Encryptor.__super__.constructor.call(this,{block_cipher_class:block_cipher_class,key:key,cipher:cipher,resync:resync,asp:asp}),this._init(prefixrandom)}return __extends(Encryptor,_super),Encryptor.prototype._enc=function(){return this.FRE=WordArray.from_buffer(this.FR),this.cipher.encryptBlock(this.FRE.words,0)},Encryptor.prototype._emit_sb=function(sb){var buf,deficit,i,pad;return buf=(deficit=this.block_size-sb.rem())>0?(pad=new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;deficit>=0?deficit>_i:_i>deficit;i=deficit>=0?++_i:--_i)_results.push(0);return _results}()),Buffer.concat([sb.consume_rest_to_buffer(),pad])):sb.read_buffer(this.block_size),this._emit_buf(buf)},Encryptor.prototype._emit_buf=function(buf){var wa;return wa=WordArray.from_buffer(buf.slice(0,this.block_size)),wa.xor(this.FRE,{n_words:Math.min(wa.words.length,this.FRE.words.length)}),buf=wa.to_buffer(),this.out_bufs.push(buf),this.FR=new Buffer(buf)},Encryptor.prototype._init=function(prefixrandom){var b,canary,ct,i,offset;return this.FR=new Buffer(function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=this.block_size;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)_results.push(0);return _results}.call(this)),prefixrandom=repeat(prefixrandom,2),this._enc(),this._emit_buf(prefixrandom),this._enc(),b=this.FRE.to_buffer(),canary=new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;2>_i;i=++_i)_results.push(b.readUInt8(i)^prefixrandom.readUInt8(this.block_size+i));return _results}.call(this)),this.out_bufs.push(canary),offset=this.resync?2:0,ct=this.compact(),ct.copy(this.FR,0,offset,offset+this.block_size),this._enc()},Encryptor.prototype.enc=function(plaintext,cb){var buf,ct,esc,j,n_wanted,ret,sb,total,wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sb=new SlicerBuffer(plaintext),esc=make_esc(cb,"Encryptor::enc"),this.resync?this._emit_sb(sb):(buf=Buffer.concat([new Buffer([0,0]),sb.read_buffer(this.block_size-2)]),wa=WordArray.from_buffer(buf),wa.xor(this.FRE,{}),buf=wa.to_buffer().slice(2),this.out_bufs.push(buf),ct=this.compact(),ct.copy(this.FR,0,ct.length-this.block_size,ct.length)),total=sb.rem(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced",funcname:"Encryptor.enc"}),_this.asp.progress({what:"ofcb encryption",i:0,total:total},esc(__iced_deferrals.defer({lineno:168}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_i,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(j=sb.rem()))return _break();for(_i=0;4096>_i&&(_this._enc(),_this._emit_sb(sb),j=sb.rem());_i++);!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced",funcname:"Encryptor.enc"}),_this.asp.progress({what:"ofcb encryption",i:total-j,total:total},esc(__iced_deferrals.defer({lineno:177}))),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){return ret=_this.compact(),n_wanted=plaintext.length+_this.block_size+2,ret=ret.slice(0,n_wanted),cb(null,ret)})}}(this))},Encryptor}(Base),Decryptor=function(_super){function Decryptor(_arg){var asp,block_cipher_class,cipher,key,prefixrandom,resync;block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,prefixrandom=_arg.prefixrandom,resync=_arg.resync,this.ciphertext=_arg.ciphertext,asp=_arg.asp,Decryptor.__super__.constructor.call(this,{block_cipher_class:block_cipher_class,key:key,cipher:cipher,resync:resync,asp:asp}),this._init()}return __extends(Decryptor,_super),Decryptor.prototype._init=function(){return this.reset()},Decryptor.prototype.reset=function(){return this.sb=new SlicerBuffer(this.ciphertext)},Decryptor.prototype.next_block=function(){return WordArray.from_buffer(this.sb.read_buffer_at_most(this.block_size))},Decryptor.prototype.get_prefix=function(){return this._prefix},Decryptor.prototype.check=function(cb){var ablock,err,i,iblock,lhs,rhs;return this.reset(),iblock=new WordArray(function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=this.block_size/4;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)_results.push(0);return _results}.call(this)),this.cipher.encryptBlock(iblock.words,0),ablock=this.next_block(),iblock.xor(ablock,{}),this._prefix=iblock.to_buffer(),this.cipher.encryptBlock(ablock.words,0),lhs=65535&iblock.words.slice(-1)[0],rhs=ablock.words[0]>>>16^this.sb.peek_uint16(),err=lhs===rhs?null:new Error("Canary block mismatch: "+lhs+" != "+rhs),cb(err)},Decryptor.prototype.dec=function(cb){var ablock,esc,iblock,j,out,total,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this.reset(),this.resync&&this.sb.advance(2),iblock=this.next_block(),esc=make_esc(cb,"Decryption::dec"),total=this.sb.rem(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced",funcname:"Decryptor.dec"}),_this.asp.progress({what:"ofcb decrypt",i:0,total:total},esc(__iced_deferrals.defer({lineno:239}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_i,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(j=_this.sb.rem()))return _break();for(_i=0;4096>_i&&(ablock=iblock,_this.cipher.encryptBlock(ablock.words,0),iblock=_this.next_block(),ablock.xor(iblock,{}),_this.out_bufs.push(ablock.to_buffer().slice(0,iblock.sigBytes)),j=_this.sb.rem());_i++);!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced",funcname:"Decryptor.dec"}),_this.asp.progress({what:"ofcb decrypt",i:total-j,total:total},esc(__iced_deferrals.defer({lineno:251}))),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){return out=_this.compact(),_this.resync||(out=out.slice(2)),cb(null,out)})}}(this))},Decryptor}(Base),encrypt=function(_arg,cb){var asp,block_cipher_class,cipher,eng,key,plaintext,prefixrandom,resync;return block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,prefixrandom=_arg.prefixrandom,resync=_arg.resync,plaintext=_arg.plaintext,asp=_arg.asp,eng=new Encryptor({block_cipher_class:block_cipher_class,key:key,cipher:cipher,prefixrandom:prefixrandom,resync:resync,asp:asp}),eng.enc(plaintext,cb)},decrypt=function(_arg,cb){var asp,block_cipher_class,cipher,ciphertext,eng,err,key,pt,resync,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,resync=_arg.resync,ciphertext=_arg.ciphertext,asp=_arg.asp,eng=new Decryptor({block_cipher_class:block_cipher_class,key:key,cipher:cipher,resync:resync,ciphertext:ciphertext,asp:asp}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced"}),eng.check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:267})),__iced_deferrals._fulfill()}}(this)(function(){return function(){!function(__iced_k){return"undefined"!=typeof err&&null!==err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced"}),eng.dec(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],pt=arguments[1]}}(),lineno:268})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,pt)})}}(this))},exports.encrypt=encrypt,exports.decrypt=decrypt,exports.Decryptor=Decryptor,rng=require("crypto").rng,test=function(){var block_cipher_class,ct,key,plaintext,prefixrandom,pt;return plaintext=new Buffer("a man a plan a canal panama. and you know the rest"),key=rng(32),prefixrandom=new Buffer([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),block_cipher_class=AES,ct=encrypt({block_cipher_class:block_cipher_class,key:key,prefixrandom:prefixrandom,plaintext:plaintext}),console.log(ct.toString("hex")),pt=decrypt({block_cipher_class:block_cipher_class,key:key,prefixrandom:prefixrandom,ciphertext:ct}),console.log(pt.toString("utf8"))}}).call(this)}).call(this,require("buffer").Buffer)},{"./buffer":35,buffer:80,crypto:86,"iced-error":115,"iced-runtime":118,"pgp-utils":163,triplesec:181}],44:[function(require,module,exports){(function(){exports.KeyMaterial=require("./keymaterial").KeyMaterial,exports.Signature=require("./signature").Signature,exports.UserID=require("./userid").UserID}).call(this)},{"./keymaterial":48,"./signature":53,"./userid":55}],45:[function(require,module,exports){(function(Buffer){(function(){var C,Packet,packetsigs,util;util=require("../util"),C=require("../../const").openpgp,packetsigs=require("./packetsigs"),Packet=function(){function Packet(){this._psc=new packetsigs.Collection}return Packet.prototype.frame_packet=function(tag,body){var bufs;return bufs=[new Buffer([192|tag]),util.encode_length(body.length),body],Buffer.concat(bufs)},Packet.prototype.set=function(d){var k,v,_results;_results=[];for(k in d)v=d[k],_results.push(this[k]=v);return _results},Packet.prototype.is_signature=function(){return!1},Packet.prototype.is_key_material=function(){return!1},Packet.prototype.is_duplicate_primary=function(){return!1},Packet.prototype.to_userid=function(){return null},Packet.prototype.to_user_attribute=function(){return null},Packet.prototype.to_literal=function(){return null},Packet.prototype.to_esk_packet=function(){return null},Packet.prototype.to_enc_data_packet=function(){return null},Packet.prototype.replay=function(){return this.frame_packet(this.tag,this.raw)},Packet.prototype.inflate=function(cb){return cb(null,null)},Packet.prototype.push_sig=function(packetsig){return this._psc.push(packetsig)},Packet.prototype.get_psc=function(){return this._psc},Packet.prototype.get_data_signer=function(){return this.get_psc().get_data_signer()},Packet.prototype.get_data_signers=function(){return this.get_psc().get_data_signers()},Packet.prototype.get_signed_userids=function(){return[]},Packet.prototype.get_subkey_binding=function(){return null},Packet.prototype.is_self_signed=function(){return!1},Packet}(),exports.Packet=Packet}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../util":60,"./packetsigs":51,buffer:80}],46:[function(require,module,exports){(function(Buffer){(function(){var C,Compressed,CompressionParser,Packet,asymmetric,bzip_inflate,compressjs,fake_zip_inflate,fix_zip_deflate,iced,uint_to_buffer,zlib,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,asymmetric=require("../../asymmetric"),zlib=require("zlib"),uint_to_buffer=require("../../util").uint_to_buffer,compressjs=require("keybase-compressjs"),fake_zip_inflate=function(buf,cb){var bufs,call_end,err,inflater,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),buf=Buffer.concat([new Buffer([120,156]),buf]),inflater=zlib.createInflate({flush:zlib.Z_FULL_FLUSH}),bufs=[],call_end=function(err){var ret,tmp;return null!=(tmp=cb)?(null!=err&&"Z_BUF_ERROR"===err.code&&(err=null),cb=null,ret=null!=err?null:Buffer.concat(bufs),tmp(err,ret)):void 0},inflater.on("readable",function(){var read_buf;return read_buf=inflater.read(),null!=read_buf?bufs.push(read_buf):void 0}),inflater.on("end",function(){return call_end(null)}),inflater.on("error",function(e){return call_end(e)}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced"}),inflater.write(buf,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:53})),__iced_deferrals._fulfill()}}(this)(function(){return function(){!function(__iced_k){return"undefined"!=typeof err&&null!==err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced"}),inflater.end(err),__iced_deferrals._fulfill()}(__iced_k)}(function(){return"undefined"!=typeof err&&null!==err?call_end(err):void 0})}}(this))},fix_zip_deflate=function(buf,cb){var err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced"}),zlib.deflate(buf,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:62})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,ret)}}(this))},bzip_inflate=function(buf,cb){var e,err,ret;err=null;try{ret=compressjs.Bzip2.decompressFile(buf),null!=ret&&(ret=new Buffer(ret))}catch(_error){e=_error,err=e}return cb(err,ret)},Compressed=function(_super){function Compressed(_arg){this.algo=_arg.algo,this.compressed=_arg.compressed,this.inflated=_arg.inflated}return __extends(Compressed,_super),Compressed.parse=function(slice){return new CompressionParser(slice).parse()},Compressed.prototype.inflate=function(cb){var err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){switch(_this.algo){case C.compression.none:return __iced_k(ret=_this.compressed);case C.compression.zlib:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.inflate"}),zlib.inflate(_this.compressed,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:96})),__iced_deferrals._fulfill()}(__iced_k);break;case C.compression.zip:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.inflate"}),fake_zip_inflate(_this.compressed,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:98})),__iced_deferrals._fulfill()}(__iced_k);break;case C.compression.bzip:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.inflate"}),bzip_inflate(_this.compressed,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:100})),__iced_deferrals._fulfill()}(__iced_k);break;default:return __iced_k(err=new Error("no known inflation -- algo: "+_this.algo))}}}(this)(function(){return function(){return cb(err,ret)}}(this))},Compressed.prototype.deflate=function(cb){var err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){switch(_this.algo){case C.compression.none:return __iced_k(ret=_this.inflated);case C.compression.zlib:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.deflate"}),zlib.deflate(_this.inflated,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:112})),__iced_deferrals._fulfill()}(__iced_k);break;case C.compression.zip:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.deflate"}),fake_zip_deflate(_this.inflated,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:114})),__iced_deferrals._fulfill()}(__iced_k);break;default:return __iced_k(err=new Error("no known deflation -- algo: "+_this.algo))}}}(this)(function(){return function(){return cb(err,ret)}}(this))},Compressed.prototype.write_unframed=function(cb){var bufs,err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.write_unframed"}),_this.deflate(__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1.compressed=arguments[1]}}(_this),lineno:123})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return null==err&&(bufs=[uint_to_buffer(8,_this.algo),_this.compressed],ret=Buffer.concat(bufs)),cb(err,ret)}}(this))},Compressed.prototype.write=function(cb){var err,ret,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:133})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return null==err&&(ret=_this.frame_packet(C.packet_tags.compressed,unframed)),cb(err,ret)}}(this))},Compressed}(Packet),CompressionParser=function(){function CompressionParser(slice){this.slice=slice}return CompressionParser.prototype.parse=function(){var algo,compressed;return algo=this.slice.read_uint8(),compressed=this.slice.consume_rest_to_buffer(),new Compressed({algo:algo,compressed:compressed})},CompressionParser}(),exports.Compressed=Compressed}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../util":70,"./base":45,buffer:80,"iced-runtime":118,"keybase-compressjs":120,zlib:79}],47:[function(require,module,exports){(function(){var Generic,Packet,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};Packet=require("./base").Packet,Generic=function(_super){function Generic(type,body){this.type=type,this.body=body}return __extends(Generic,_super),Generic}(Packet),exports.Generic=Generic}).call(this)},{"./base":45}],48:[function(require,module,exports){(function(Buffer){(function(){var AES,C,DSA,ECDH,ECDSA,ElGamal,ElGamalSE,KeyMaterial,Packet,Parser,RSA,S,S2K,SHA1,SHA256,SecretKeyMaterial,Signature,bufeq_secure,bufferify,calc_checksum,decrypt,encode,encrypt,iced,katch,make_time_packet,native_rng,packetsigs,symmetric,triplesec,uint_to_buffer,unix_time,util,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},C=require("../../const").openpgp,triplesec=require("triplesec"),_ref=triplesec.hash,SHA1=_ref.SHA1,SHA256=_ref.SHA256,RSA=require("../../rsa").Pair,DSA=require("../../dsa").Pair,ElGamal=require("../../elgamal").Pair,ElGamalSE=require("../../elgamalse").Pair,ECDSA=require("../../ecc/ecdsa").Pair,ECDH=require("../../ecc/ecdh").Pair,AES=triplesec.ciphers.AES,native_rng=triplesec.prng.native_rng,calc_checksum=require("../util").calc_checksum,_ref1=require("../../util"),bufferify=_ref1.bufferify,unix_time=_ref1.unix_time,bufeq_secure=_ref1.bufeq_secure,katch=_ref1.katch,make_time_packet=_ref1.make_time_packet,uint_to_buffer=_ref1.uint_to_buffer,_ref2=require("../cfb"),decrypt=_ref2.decrypt,encrypt=_ref2.encrypt,Packet=require("./base").Packet,S=require("./signature"),Signature=S.Signature,encode=require("../armor").encode,_ref3=require("../s2k"),S2K=_ref3.S2K,SecretKeyMaterial=_ref3.SecretKeyMaterial,symmetric=require("../../symmetric"),util=require("util"),packetsigs=require("./packetsigs"),KeyMaterial=function(_super){function KeyMaterial(_arg){this.key=_arg.key,this.timestamp=_arg.timestamp,this.passphrase=_arg.passphrase,this.skm=_arg.skm,this.opts=_arg.opts,this.flags=_arg.flags,this.opts||(this.opts={}),this.flags||(this.flags=0),this._is_duplicate_primary=!1,KeyMaterial.__super__.constructor.call(this)}return __extends(KeyMaterial,_super),KeyMaterial.prototype._write_private_enc=function(bufs,priv,pp){var c,ct,iv,ivlen,k,ks,plaintext,salt,sha1hash;return bufs.push(new Buffer([C.s2k_convention.sha1,C.symmetric_key_algorithms.AES256,C.s2k.salt_iter,C.hash_algorithms.SHA256])),sha1hash=(new SHA1).bufhash(priv),salt=native_rng(8),bufs.push(salt),c=96,bufs.push(new Buffer([c])),ks=AES.keySize,k=(new S2K).write(pp,salt,c,ks),ivlen=AES.blockSize,iv=native_rng(ivlen),bufs.push(iv),plaintext=Buffer.concat([priv,sha1hash]),ct=encrypt({block_cipher_class:AES,key:k,plaintext:plaintext,iv:iv}),bufs.push(ct)},KeyMaterial.prototype._write_private_clear=function(bufs,priv){return bufs.push(new Buffer([C.s2k_convention.none]),priv,uint_to_buffer(16,calc_checksum(priv)))},KeyMaterial.prototype._write_public=function(bufs){var pub;return pub=this.key.serialize(),bufs.push(new Buffer([C.versions.keymaterial.V4]),uint_to_buffer(32,this.timestamp),new Buffer([this.key.type]),pub)},KeyMaterial.prototype._write_dummy=function(bufs){return bufs.push(new Buffer([C.s2k_convention.sha1,C.symmetric_key_algorithms.AES256,C.s2k.gnu,2]),new Buffer("GNU","utf8"),new Buffer([1])) },KeyMaterial.prototype.add_flags=function(v){return this.flags|=v},KeyMaterial.prototype.private_body=function(opts){var bufs,p,pp,priv,ret;return bufs=[],this._write_public(bufs),priv=null!=(p=this.key.priv)?p.serialize():null,pp=opts.passphrase||this.passphrase,null==priv?this._write_dummy(bufs):null!=pp?this._write_private_enc(bufs,priv,pp):this._write_private_clear(bufs,priv),ret=Buffer.concat(bufs)},KeyMaterial.prototype.private_framed=function(opts){var T,body,tag;return body=this.private_body(opts),T=C.packet_tags,tag=opts.subkey?T.secret_subkey:T.secret_key,this.frame_packet(tag,body)},KeyMaterial.prototype.public_body=function(){var bufs;return bufs=[],this._write_public(bufs),Buffer.concat(bufs)},KeyMaterial.prototype.get_fingerprint=function(){var data;return data=this.public_body(),(new SHA1).bufhash(Buffer.concat([new Buffer([C.signatures.key]),uint_to_buffer(16,data.length),data]))},KeyMaterial.prototype.get_key_id=function(){return this.get_fingerprint().slice(12,20)},KeyMaterial.prototype.get_short_key_id=function(){return this.get_key_id().slice(-4).toString("hex").toUpperCase()},KeyMaterial.prototype.get_klass=function(){return this.key.constructor},KeyMaterial.prototype.export_framed=function(opts){return null==opts&&(opts={}),opts["private"]?this.private_framed(opts):this.public_framed(opts)},KeyMaterial.prototype.public_framed=function(opts){var T,body,tag;return null==opts&&(opts={}),body=this.public_body(),T=C.packet_tags,tag=opts.subkey?T.public_subkey:T.public_key,this.frame_packet(tag,body)},KeyMaterial.prototype.to_signature_payload=function(){var pk;return pk=this.public_body(),Buffer.concat([new Buffer([C.signatures.key]),uint_to_buffer(16,pk.length),pk])},KeyMaterial.prototype.self_sign_key=function(_arg,cb){var err,lifespan,primary,raw_payload,sig,sigs,userid,userids,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),userids=_arg.userids,lifespan=_arg.lifespan,raw_payload=_arg.raw_payload,err=null,sigs=[],primary=!0,function(_this){return function(__iced_k){var _i,_len,_ref4,_results,_while;_ref4=userids,_len=_ref4.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(userid=_ref4[_i],null!=err?_continue():(sig=null,void function(__iced_k){return _this.key.can_sign()||raw_payload?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial.self_sign_key"}),_this._self_sign_key({userid:userid,lifespan:lifespan,raw_payload:raw_payload,primary:primary},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sig=arguments[1]}}(),lineno:193})),__iced_deferrals._fulfill()}(__iced_k):__iced_k(null==(sig=userid.get_framed_signature_output())?err=new Error("Cannot sign key --- don't have a private key, and can't replay"):void 0)}(function(){return primary=!1,_next(sigs.push(sig))}))):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err,sig)}}(this))},KeyMaterial.prototype._self_sign_key=function(_arg,cb){var err,hsp,lifespan,payload,primary,ps,raw_payload,sig,type,userid,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),userid=_arg.userid,lifespan=_arg.lifespan,raw_payload=_arg.raw_payload,primary=_arg.primary,payload=Buffer.concat([this.to_signature_payload(),userid.to_signature_payload()]),type=C.sig_types.positive,hsp=[new S.CreationTime(lifespan.generated),new S.KeyFlags([this.flags]),new S.PreferredSymmetricAlgorithms([C.symmetric_key_algorithms.AES256,C.symmetric_key_algorithms.AES128]),new S.PreferredHashAlgorithms([C.hash_algorithms.SHA512,C.hash_algorithms.SHA256]),new S.Features([C.features.modification_detection]),new S.KeyServerPreferences([C.key_server_preferences.no_modify])],primary&&hsp.push(new S.PrimaryUserId(1)),lifespan.expire_in&&hsp.push(new S.KeyExpirationTime(lifespan.expire_in)),sig=new Signature({type:type,key:this.key,hashed_subpackets:hsp,unhashed_subpackets:[new S.Issuer(this.get_key_id())]}),function(_this){return function(__iced_k){return raw_payload?__iced_k(sig=payload):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._self_sign_key"}),sig.write(payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:235})),__iced_deferrals._fulfill()}(function(){return ps=new packetsigs.SelfSig({userid:userid,type:type,sig:sig,options:_this.flags}),userid.push_sig(ps),__iced_k(_this.push_sig(ps))})}}(this)(function(){return function(){return cb(err,sig)}}(this))},KeyMaterial.prototype.sign_subkey=function(_arg,cb){var err,lifespan,sig,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),subkey=_arg.subkey,lifespan=_arg.lifespan,err=sig=null,function(_this){return function(__iced_k){var _ref4,_ref5;return _this.key.can_sign()?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial.sign_subkey"}),_this._sign_subkey({subkey:subkey,lifespan:lifespan},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:248})),__iced_deferrals._fulfill()}(__iced_k):__iced_k((null!=(_ref4=subkey.get_subkey_binding())&&null!=(_ref5=_ref4.sig)?_ref5.get_framed_output():void 0)?void 0:err=new Error("Cannot sign with subkey --- don't have private key and can't replay"))}}(this)(function(){return function(){return cb(err)}}(this))},KeyMaterial.prototype._sign_subkey=function(_arg,cb){var SKB,err,lifespan,primary_binding,ps,sig,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),subkey=_arg.subkey,lifespan=_arg.lifespan,sig=err=primary_binding=null,function(_this){return function(__iced_k){return subkey.can_sign()?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._sign_subkey"}),subkey._sign_primary_with_subkey({primary:_this,lifespan:lifespan},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],primary_binding=arguments[1]}}(),lineno:260})),__iced_deferrals._fulfill()}(__iced_k):__iced_k()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._sign_subkey"}),_this._sign_subkey_with_primary({subkey:subkey,lifespan:lifespan,primary_binding:primary_binding},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sig=arguments[1]}}(),lineno:262})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return null==err&&(SKB=packetsigs.SubkeyBinding,ps=new SKB({primary:_this,sig:sig,direction:SKB.DOWN}),subkey.push_sig(ps)),cb(err)})}}(this))},KeyMaterial.prototype._sign_primary_with_subkey=function(_arg,cb){var err,lifespan,payload,primary,sig,sig_unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),primary=_arg.primary,lifespan=_arg.lifespan,payload=Buffer.concat([primary.to_signature_payload(),this.to_signature_payload()]),sig=new Signature({type:C.sig_types.primary_binding,key:this.key,hashed_subpackets:[new S.CreationTime(lifespan.generated)],unhashed_subpackets:[new S.Issuer(this.get_key_id())]}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._sign_primary_with_subkey"}),sig.write_unframed(payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sig_unframed=arguments[1]}}(),lineno:286})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,sig_unframed)}}(this))},KeyMaterial.prototype._sign_subkey_with_primary=function(_arg,cb){var err,lifespan,payload,primary_binding,sig,subkey,unhashed_subpackets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),subkey=_arg.subkey,lifespan=_arg.lifespan,primary_binding=_arg.primary_binding,payload=Buffer.concat([this.to_signature_payload(),subkey.to_signature_payload()]),unhashed_subpackets=[new S.Issuer(this.get_key_id())],null!=primary_binding&&unhashed_subpackets.push(new S.EmbeddedSignature({rawsig:primary_binding})),sig=new Signature({type:C.sig_types.subkey_binding,key:this.key,hashed_subpackets:[new S.CreationTime(lifespan.generated),new S.KeyExpirationTime(lifespan.expire_in),new S.KeyFlags([subkey.flags])],unhashed_subpackets:unhashed_subpackets}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._sign_subkey_with_primary"}),sig.write(payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:310})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,sig)}}(this))},KeyMaterial.prototype.merge_private=function(k2){return this.skm=k2.skm},KeyMaterial.parse_public_key=function(slice,opts){return new Parser(slice).parse_public_key(opts)},KeyMaterial.parse_private_key=function(slice,opts){return new Parser(slice).parse_private_key(opts)},KeyMaterial.prototype.is_key_material=function(){return!0},KeyMaterial.prototype.is_primary=function(){var _ref4;return!(null!=(_ref4=this.opts)?_ref4.subkey:void 0)},KeyMaterial.prototype.is_duplicate_primary=function(){return this._is_duplicate_primary},KeyMaterial.prototype.set_duplicate_primary=function(){return this._is_duplicate_primary=!0},KeyMaterial.prototype.ekid=function(){return this.key.ekid()},KeyMaterial.prototype.can_sign=function(){return this.key.can_sign()},KeyMaterial.prototype.is_locked=function(){return!this.key.has_private()&&null!=this.skm&&this.skm.is_locked()},KeyMaterial.prototype.has_private=function(){return this.has_unlocked_private()||this.has_locked_private()},KeyMaterial.prototype.has_locked_private=function(){return this.skm&&this.skm.has_private()},KeyMaterial.prototype.has_unlocked_private=function(){return this.key.has_private()},KeyMaterial.prototype.has_secret_key_material=function(){return null!=this.skm},KeyMaterial.prototype.validity_check=function(cb){var err,msg,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial.validity_check"}),_this.key.validity_check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:344})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return"undefined"!=typeof err&&null!==err&&(msg="In key "+_this.get_fingerprint().toString("hex")+": "+err.message,err=new Error(err)),cb(err)}}(this))},KeyMaterial.prototype.is_signed_subkey_of=function(primary){return!this.primary_flag&&this.get_psc().is_signed_subkey_of(primary)},KeyMaterial.prototype.get_subkey_binding=function(){return this.opts.subkey?this.get_psc().get_subkey_binding():null},KeyMaterial.prototype.get_subkey_binding_signature_output=function(){var _ref4,_ref5;return null!=(_ref4=this.get_subkey_binding())&&null!=(_ref5=_ref4.sig)?_ref5.get_framed_output():void 0},KeyMaterial.prototype.equal=function(k2){return bufeq_secure(this.ekid(),k2.ekid())},KeyMaterial.prototype.unlock=function(_arg,cb){var c1,c2,end,err,h1,h2,key,passphrase,pt;if(passphrase=_arg.passphrase,null!=passphrase&&(passphrase=bufferify(passphrase)),err=null,null==this.skm)return err=new Error("Cannot unlock secret key -- no material!"),cb(err);if(pt=this.skm.s2k_convention===C.s2k_convention.none?this.skm.payload:this.skm.s2k.type===C.s2k.gnu_dummy?null:null==passphrase?(err=new Error("Key was locked, but no passphrase given"),null):(key=this.skm.s2k.produce_key(passphrase,this.skm.cipher.key_size),decrypt({ciphertext:this.skm.payload,block_cipher_class:this.skm.cipher.klass,iv:this.skm.iv,key:key}))){switch(this.skm.s2k_convention){case C.s2k_convention.sha1:end=pt.length-SHA1.output_size,h1=pt.slice(end),pt=pt.slice(0,end),h2=(new SHA1).bufhash(pt),bufeq_secure(h1,h2)||(err=new Error("bad private key passphrase (hash mismatch)"));break;case C.s2k_convention.checksum:case C.s2k_convention.none:end=pt.length-2,c1=pt.readUInt16BE(end),pt=pt.slice(0,end),c2=calc_checksum(pt),c1!==c2&&(err=new Error("bad private key passphrase (checksum mismatch)"))}null==err&&(err=this.key.read_priv(pt))}return cb(err)},KeyMaterial.prototype.get_all_key_flags=function(){return this._psc.get_all_key_flags()},KeyMaterial.prototype.add_flags=function(v){return this.flags|=v},KeyMaterial.prototype.fulfills_flags=function(flags){var akf,ret;return this.is_revoked()?!1:(akf=this.get_all_key_flags(),ret=(akf&flags)===flags||this.key.fulfills_flags(flags)||this.is_primary()&&0===akf&&(this.key.good_for_flags()&flags)===flags)},KeyMaterial.prototype.get_signed_userids=function(){return this.get_psc().get_signed_userids()},KeyMaterial.prototype.get_signed_user_attributes=function(){return this.get_psc().get_signed_user_attributes()},KeyMaterial.prototype.is_self_signed=function(){return this.get_psc().is_self_signed()},KeyMaterial.prototype.push_sig=function(packetsig){return this.add_flags(packetsig.sig.get_key_flags()),KeyMaterial.__super__.push_sig.call(this,packetsig)},KeyMaterial.prototype.mark_revoked=function(sig){return this.revocation=sig},KeyMaterial.prototype.is_revoked=function(){return null!=this.revocation},KeyMaterial}(Packet),Parser=function(){function Parser(slice){this.slice=slice,this.key=null}return Parser.prototype.parse_public_key_v3=function(){return this.timestamp=this.slice.read_uint32(),this.expiration=this.slice.read_uint16(),this.parse_public_key_mpis()},Parser.prototype.parse_public_key_v4=function(){return this.timestamp=this.slice.read_uint32(),this.parse_public_key_mpis()},Parser.prototype.parse_public_key_mpis=function(){var A,err,key,klass,len,_ref4;if(this.algorithm=this.slice.read_uint8(),A=C.public_key_algorithms,klass=function(){switch(this.algorithm){case A.RSA:case A.RSA_ENCRYPT_ONLY:case A.RSA_SIGN_ONLY:return RSA;case A.DSA:return DSA;case A.ELGAMAL:return ElGamal;case A.ELGAMAL_SIGN_AND_ENCRYPT:return ElGamalSE;case A.ECDSA:return ECDSA;case A.ECDH:return ECDH;default:throw new Error("Unknown key type: "+this.algorithm)}}.call(this),_ref4=klass.parse(this.slice.peek_rest_to_buffer()),err=_ref4[0],key=_ref4[1],len=_ref4[2],null!=err)throw err;return this.slice.advance(len),key},Parser.prototype._parse_public_key=function(){var version;switch(version=this.slice.read_uint8()){case C.versions.keymaterial.V3:return this.parse_public_key_v3();case C.versions.keymaterial.V4:return this.parse_public_key_v4();default:throw new Error("Unknown public key version: "+version)}},Parser.prototype.parse_public_key=function(opts){var key;return key=this._parse_public_key(),new KeyMaterial({key:key,timestamp:this.timestamp,opts:opts})},Parser.prototype.parse_private_key=function(opts){var encrypted_private_key,iv_len,key,skm,sym_enc_alg,_ref4;return skm=new SecretKeyMaterial,key=this._parse_public_key(),encrypted_private_key=!0,sym_enc_alg=null,(skm.s2k_convention=this.slice.read_uint8())===C.s2k_convention.none?encrypted_private_key=!1:(_ref4=skm.s2k_convention)===C.s2k_convention.sha1||_ref4===C.s2k_convention.checksum?(sym_enc_alg=this.slice.read_uint8(),skm.s2k=(new S2K).read(this.slice)):sym_enc_alg=skm.s2k_convention,skm.s2k_convention!==C.s2k_convention.none&&skm.s2k.type===C.s2k.gnu_dummy?skm.payload=null:(sym_enc_alg&&(skm.cipher=symmetric.get_cipher(sym_enc_alg),iv_len=skm.cipher.klass.blockSize,skm.iv=this.slice.read_buffer(iv_len)),skm.payload=this.slice.consume_rest_to_buffer()),new KeyMaterial({key:key,skm:skm,timestamp:this.timestamp,opts:opts})},Parser}(),exports.KeyMaterial=KeyMaterial}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../dsa":6,"../../ecc/ecdh":9,"../../ecc/ecdsa":10,"../../elgamal":12,"../../elgamalse":13,"../../rsa":67,"../../symmetric":68,"../../util":70,"../armor":33,"../cfb":38,"../s2k":58,"../util":60,"./base":45,"./packetsigs":51,"./signature":53,buffer:80,"iced-runtime":118,triplesec:181,util:114}],49:[function(require,module,exports){(function(Buffer){(function(){var C,Literal,LiteralParser,Packet,asymmetric,iced,uint_to_buffer,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,asymmetric=require("../../asymmetric"),uint_to_buffer=require("../../util").uint_to_buffer,Literal=function(_super){function Literal(_arg){this.format=_arg.format,this.filename=_arg.filename,this.date=_arg.date,this.data=_arg.data,Literal.__super__.constructor.call(this)}return __extends(Literal,_super),Literal.parse=function(slice){return new LiteralParser(slice).parse()},Literal.prototype.toString=function(encoding){return null==encoding&&(encoding=null),this.data.toString(encoding||this.buffer_format())},Literal.prototype.toBuffer=function(){return this.data},Literal.prototype.buffer_format=function(){switch(this.format){case C.literal_formats.text:return"ascii";case C.literal_formats.utf8:return"utf8";default:return"binary"}},Literal.prototype.to_signature_payload=function(){return Buffer.concat([this.data])},Literal.prototype.write_unframed=function(cb){var bufs,ret;return this.filename||(this.filename=new Buffer([])),bufs=[new Buffer([this.format]),uint_to_buffer(8,this.filename.length),this.filename,uint_to_buffer(32,this.date),this.data],ret=Buffer.concat(bufs),cb(null,ret)},Literal.prototype.write=function(cb){var err,raw,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/literal.iced",funcname:"Literal.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],raw=arguments[1]}}(),lineno:41})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return null==err&&(ret=_this.frame_packet(C.packet_tags.literal,raw)),cb(err,ret)}}(this))},Literal.prototype.to_literal=function(){return this},Literal}(Packet),LiteralParser=function(){function LiteralParser(slice){this.slice=slice}return LiteralParser.prototype.parse=function(){var data,date,filename,format,k,known_formats,v;if(known_formats=function(){var _ref,_results;_ref=C.literal_formats,_results=[];for(k in _ref)v=_ref[k],_results.push(v);return _results}(),format=this.slice.read_uint8(),__indexOf.call(known_formats,format)<0)throw new Error("unknwon format: "+format);return filename=this.slice.read_string(),date=this.slice.read_uint32(),data=this.slice.consume_rest_to_buffer(),new Literal({format:format,filename:filename,date:date,data:data})},LiteralParser}(),exports.Literal=Literal}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../util":70,"./base":45,buffer:80,"iced-runtime":118}],50:[function(require,module,exports){(function(Buffer){(function(){var C,OPS_Parser,OnePassSignature,Packet,asymmetric,hash,iced,uint_to_buffer,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,asymmetric=require("../../asymmetric"),hash=require("../../hash"),uint_to_buffer=require("../../util").uint_to_buffer,OnePassSignature=function(_super){function OnePassSignature(_arg){this.sig_type=_arg.sig_type,this.hasher=_arg.hasher,this.sig_klass=_arg.sig_klass,this.key_id=_arg.key_id,this.is_final=_arg.is_final}return __extends(OnePassSignature,_super),OnePassSignature.parse=function(slice){return new OPS_Parser(slice).parse()},OnePassSignature.prototype.write_unframed=function(cb){var bufs,unframed,vals,x;return vals=[C.versions.one_pass_sig,this.sig_type,this.hasher.type,this.sig_klass.type],bufs=function(){var _i,_len,_results;for(_results=[],_i=0,_len=vals.length;_len>_i;_i++)x=vals[_i],_results.push(uint_to_buffer(8,x));return _results}(),bufs.push(this.key_id),bufs.push(uint_to_buffer(8,this.is_final)),unframed=Buffer.concat(bufs),cb(null,unframed)},OnePassSignature.prototype.write=function(cb){var err,framed,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/one_pass_sig.iced",funcname:"OnePassSignature.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:38})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return framed=_this.frame_packet(C.packet_tags.one_pass_sig,unframed),cb(err,framed)}}(this))},OnePassSignature}(Packet),OPS_Parser=function(){function OPS_Parser(slice){this.slice=slice}return OPS_Parser.prototype.parse=function(){var hasher,is_final,key_id,sig_klass,sig_type,v;if((v=this.slice.read_uint8())!==C.versions.one_pass_sig)throw new Error("Unknown OnePassSignature version "+v);return sig_type=this.slice.read_uint8(),hasher=hash.alloc_or_throw(this.slice.read_uint8()),sig_klass=asymmetric.get_class(this.slice.read_uint8()),key_id=this.slice.read_buffer(8),is_final=this.slice.read_uint8(),new OnePassSignature({sig_type:sig_type,hasher:hasher,sig_klass:sig_klass,key_id:key_id,is_final:is_final})},OPS_Parser}(),exports.OnePassSignature=OnePassSignature}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../hash":14,"../../util":70,"./base":45,buffer:80,"iced-runtime":118}],51:[function(require,module,exports){(function(){var Base,Collection,Data,SelfSig,SubkeyBinding,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};Base=function(){function Base(_arg){this.sig=_arg.sig}return Base.prototype.typ=function(){return"none"},Base.prototype.get_key_flags=function(){return this.sig.get_key_flags()},Base}(),SelfSig=function(_super){function SelfSig(_arg){var sig;this.userid=_arg.userid,this.user_attribute=_arg.user_attribute,this.type=_arg.type,sig=_arg.sig,this.options=_arg.options,SelfSig.__super__.constructor.call(this,{sig:sig})}return __extends(SelfSig,_super),SelfSig.prototype.typ=function(){return"self_sig"},SelfSig}(Base),SubkeyBinding=function(_super){function SubkeyBinding(_arg){var sig;this.primary=_arg.primary,sig=_arg.sig,this.direction=_arg.direction,SubkeyBinding.__super__.constructor.call(this,{sig:sig})}return __extends(SubkeyBinding,_super),SubkeyBinding.UP=1,SubkeyBinding.DOWN=2,SubkeyBinding.prototype.typ=function(){return"subkey_binding"},SubkeyBinding.prototype.is_down=function(){return this.direction===SubkeyBinding.DOWN},SubkeyBinding}(Base),Data=function(_super){function Data(_arg){var sig;this.key=_arg.key,sig=_arg.sig,Data.__super__.constructor.call(this,{sig:sig})}return __extends(Data,_super),Data.prototype.typ=function(){return"data"},Data.prototype.get_key_manager=function(){var _ref;return null!=(_ref=this.sig)?_ref.key_manager:void 0},Data}(Base),Collection=function(){function Collection(){this.all=[],this.lookup={self_sig:[],subkey_binding:[],data:[]}}return Collection.prototype.push=function(ps){return this.all.push(ps),this.lookup[ps.typ()].push(ps)},Collection.prototype.is_signed_subkey_of=function(primary){var skb,_i,_len,_ref;for(_ref=this.lookup.subkey_binding,_i=0,_len=_ref.length;_len>_i;_i++)if(skb=_ref[_i],skb.primary.equal(primary)&&skb.is_down())return!0;return!1},Collection.prototype.get_all_key_flags=function(){var p,ret,_i,_len,_ref;for(ret=0,_ref=this.all,_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],ret|=p.get_key_flags();return ret},Collection.prototype.get_signed_userids=function(){var p,u,_i,_len,_ref,_results;for(_ref=this.lookup.self_sig,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],null!=(u=p.userid)&&_results.push(u);return _results},Collection.prototype.get_signed_user_attributes=function(){var p,u,_i,_len,_ref,_results;for(_ref=this.lookup.self_sig,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],null!=(u=p.user_attribute)&&_results.push(u);return _results},Collection.prototype.get_self_sig=function(){return this.lookup.self_sig.length?this.lookup.self_sig[0]:null},Collection.prototype.get_self_sigs=function(){return this.lookup.self_sig},Collection.prototype.is_self_signed=function(){return this.get_signed_userids().length>0},Collection.prototype.get_data_signer=function(){return this.lookup.data.length>0?this.lookup.data[0]:null},Collection.prototype.get_data_signers=function(){return this.lookup.data},Collection.prototype.get_subkey_binding=function(){return this.lookup.subkey_binding.length?this.lookup.subkey_binding[0]:null},Collection}(),exports.SelfSig=SelfSig,exports.SubkeyBinding=SubkeyBinding,exports.Data=Data,exports.Collection=Collection}).call(this)},{}],52:[function(require,module,exports){(function(Buffer){(function(){var ASP,C,Decryptor,MDC,MDC_Parser,PKESK,PKESK_Parser,Packet,SEIPD,SEIPD_Parser,SHA1,asymmetric,bufeq_fast,bufeq_secure,encrypt,iced,make_esc,streamers,uint_to_buffer,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,asymmetric=require("../../asymmetric"),_ref=require("../../hash"),SHA1=_ref.SHA1,streamers=_ref.streamers,_ref1=require("../../util"),uint_to_buffer=_ref1.uint_to_buffer,bufeq_secure=_ref1.bufeq_secure,bufeq_fast=_ref1.bufeq_fast,_ref2=require("../ocfb"),encrypt=_ref2.encrypt,Decryptor=_ref2.Decryptor,ASP=require("pgp-utils").util.ASP,make_esc=require("iced-error").make_esc,PKESK=function(_super){function PKESK(_arg){this.crypto_type=_arg.crypto_type,this.key_id=_arg.key_id,this.ekey=_arg.ekey}return __extends(PKESK,_super),PKESK.parse=function(slice){return new PKESK_Parser(slice).parse()},PKESK.prototype.to_esk_packet=function(){return this},PKESK.prototype.get_key_id=function(){return this.key_id},PKESK.prototype.write_unframed=function(cb){var bufs,err,ret;return bufs=[uint_to_buffer(8,C.versions.PKESK),this.key_id,uint_to_buffer(8,this.crypto_type),this.ekey.output()],ret=Buffer.concat(bufs),err=null,cb(err,ret)},PKESK.prototype.write=function(cb){var err,ret,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"PKESK.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:36})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(ret=_this.frame_packet(C.packet_tags.PKESK,unframed)),cb(err,ret)}}(this))},PKESK}(Packet),SEIPD=function(_super){function SEIPD(_arg){this.ciphertext=_arg.ciphertext}return __extends(SEIPD,_super),SEIPD.parse=function(slice){return new SEIPD_Parser(slice).parse()},SEIPD.prototype.to_enc_data_packet=function(){return this},SEIPD.prototype.check=function(){},SEIPD.prototype.decrypt=function(_arg,cb){var asp,cipher,eng,err,esc,mdc,plaintext,prefix,pt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),cipher=_arg.cipher,asp=_arg.asp,eng=new Decryptor({cipher:cipher,ciphertext:this.ciphertext,asp:asp}),esc=make_esc(cb,"SEIPD::decrypt"),asp=ASP.make(asp),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.decrypt"}),eng.check(esc(__iced_deferrals.defer({lineno:63}))),__iced_deferrals._fulfill()}}(this)(function(){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.decrypt"}),eng.dec(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pt=arguments[0]}}(),lineno:64}))),__iced_deferrals._fulfill()}(function(){var _ref3;_ref3=MDC.parse(pt),mdc=_ref3[0],plaintext=_ref3[1],prefix=eng.get_prefix(),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.decrypt"}),mdc.compute({prefix:prefix,plaintext:plaintext,asp:asp},esc(__iced_deferrals.defer({lineno:70}))),__iced_deferrals._fulfill()}(function(){return err=mdc.check()?null:new Error("MDC mismatch"),cb(err,plaintext)})})}}(this))},SEIPD.prototype.encrypt=function(_arg,cb){var asp,cipher,esc,mdc,mdc_buf,plaintext,prefixrandom,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),cipher=_arg.cipher,plaintext=_arg.plaintext,prefixrandom=_arg.prefixrandom,asp=_arg.asp,mdc=new MDC({}),esc=make_esc(cb,"SEIPD::encrypt"),asp=ASP.make(asp),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.encrypt"}),mdc.compute({plaintext:plaintext,prefix:prefixrandom,asp:asp},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return mdc_buf=arguments[0] }}(),lineno:81}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){plaintext=Buffer.concat([plaintext,MDC.header,mdc_buf]),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.encrypt"}),encrypt({cipher:cipher,plaintext:plaintext,prefixrandom:prefixrandom},esc(__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1.ciphertext=arguments[0]}}(_this),lineno:83}))),__iced_deferrals._fulfill()}(function(){return cb(null)})}}(this))},SEIPD.prototype.write_unframed=function(cb){var err,ret;return err=ret=null,ret=Buffer.concat([uint_to_buffer(8,C.versions.SEIPD),this.ciphertext]),cb(err,ret)},SEIPD.prototype.write=function(cb){var err,ret,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=err=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:97})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return null==err&&(ret=_this.frame_packet(C.packet_tags.SEIPD,unframed)),cb(err,ret)}}(this))},SEIPD}(Packet),MDC=function(_super){function MDC(_arg){this.digest=_arg.digest}return __extends(MDC,_super),MDC.header=new Buffer([192|C.packet_tags.MDC,SHA1.output_length]),MDC.prototype.header=MDC.header,MDC.parse=function(buf){return new MDC_Parser(buf).parse()},MDC.prototype.compute=function(_arg,cb){var asp,esc,hasher,i,plaintext,prefix,step,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),plaintext=_arg.plaintext,prefix=_arg.prefix,asp=_arg.asp,asp=ASP.make(asp),hasher=streamers.SHA1(),hasher.update(Buffer.concat([prefix,prefix.slice(-2)])),esc=make_esc(cb,"MDC::compute"),step=1048576,function(){return function(__iced_k){var _results,_while;i=0,_begin=0,_end=plaintext.length,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?i+=step:i-=step,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&i>=plaintext.length||_positive===!1&&i<=plaintext.length?_break():(hasher.update(plaintext.slice(i,i+step)),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"MDC.compute"}),asp.progress({what:"MDC",total:plaintext.length,i:i},esc(__iced_deferrals.defer({lineno:122}))),__iced_deferrals._fulfill()}(_next))})(__iced_k)}}(this)(function(_this){return function(){return hasher.update(_this.header),_this.computed=hasher(),cb(null,_this.computed)}}(this))},MDC.prototype.check=function(){return bufeq_secure(this.digest,this.computed)},MDC}(Packet),MDC_Parser=function(){function MDC_Parser(buf){this.buf=buf}return MDC_Parser.prototype.parse=function(){var chunk,digest,hl,len,rem;if(hl=MDC.header.length,len=SHA1.output_length+hl,rem=this.buf.slice(0,-len),chunk=this.buf.slice(-len),!bufeq_fast(chunk.slice(0,hl),MDC.header))throw new Error("Missing MDC header");return digest=chunk.slice(hl),[new MDC({digest:digest}),rem]},MDC_Parser}(),SEIPD_Parser=function(){function SEIPD_Parser(slice){this.slice=slice}return SEIPD_Parser.prototype.payload_split=function(){},SEIPD_Parser.prototype.parse=function(){var ciphertext,v;if((v=this.slice.read_uint8())!==C.versions.SEIPD)throw new Error("Unknown SEIPD version "+v);return ciphertext=this.slice.consume_rest_to_buffer(),new SEIPD({ciphertext:ciphertext})},SEIPD_Parser}(),PKESK_Parser=function(){function PKESK_Parser(slice){this.slice=slice}return PKESK_Parser.prototype.parse=function(){var crypto_type,ekey,key_id,klass,v;if((v=this.slice.read_uint8())!==C.versions.PKESK)throw new Error("Unknown PKESK version: "+v);return key_id=this.slice.read_buffer(8),crypto_type=this.slice.read_uint8(),klass=asymmetric.get_class(crypto_type),ekey=klass.parse_output(this.slice.consume_rest_to_buffer()),new PKESK({crypto_type:crypto_type,key_id:key_id,ekey:ekey})},PKESK_Parser}(),exports.SEIPD=SEIPD,exports.PKESK=PKESK,exports.MDC=MDC}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../hash":14,"../../util":70,"../ocfb":43,"./base":45,buffer:80,"iced-error":115,"iced-runtime":118,"pgp-utils":163}],53:[function(require,module,exports){(function(Buffer){(function(){var C,CreationTime,EmbeddedSignature,Experimental,ExpirationTime,Exportable,Features,Issuer,KeyExpirationTime,KeyFlags,KeyServerPreferences,NotationData,Packet,Parser,PolicyURI,Preference,PreferredCompressionAlgorithms,PreferredHashAlgorithms,PreferredKeyServer,PreferredSymmetricAlgorithms,PrimaryUserId,ReasonForRevocation,RegularExpression,Revocable,RevocationKey,S,SHA1,SHA512,Signature,SignatureTarget,Signature_v2,Signature_v2_or_v3,Signature_v3,SignersUserID,SlicerBuffer,SubPacket,Time,Trust,alloc_or_throw,assert,asymmetric,encode_length,iced,make_esc,make_time_packet,packetsigs,uint_to_buffer,unix_time,util,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,S=C.sig_subpacket,_ref=require("../util"),encode_length=_ref.encode_length,make_time_packet=_ref.make_time_packet,_ref1=require("../../util"),unix_time=_ref1.unix_time,uint_to_buffer=_ref1.uint_to_buffer,_ref2=require("../../hash"),alloc_or_throw=_ref2.alloc_or_throw,SHA512=_ref2.SHA512,SHA1=_ref2.SHA1,asymmetric=require("../../asymmetric"),util=require("util"),packetsigs=require("./packetsigs"),assert=require("assert"),SlicerBuffer=require("../buffer").SlicerBuffer,make_esc=require("iced-error").make_esc,Signature_v2_or_v3=function(_super){function Signature_v2_or_v3(_arg){this.key=_arg.key,this.hasher=_arg.hasher,this.key_id=_arg.key_id,this.sig_data=_arg.sig_data,this.public_key_class=_arg.public_key_class,this.signed_hash_value_hash=_arg.signed_hash_value_hash,this.time=_arg.time,this.sig=_arg.sig,this.type=_arg.type,this.version=_arg.version,null==this.hasher&&(this.hasher=SHA512),this._framed_output=null}return __extends(Signature_v2_or_v3,_super),Signature_v2_or_v3.prototype.is_signature=function(){return!0},Signature_v2_or_v3.prototype.get_key_id=function(){return this.key_id},Signature_v2_or_v3.prototype.get_issuer_key_id=function(){return this.key_id},Signature_v2_or_v3.prototype.when_generated=function(){return this.time},Signature_v2_or_v3.prototype.time_of_primary_uid_sig=function(){return null},Signature_v2_or_v3.prototype.gen_prefix=function(){return Buffer.concat([new Buffer([C.versions.signature.V3,this.type],uint_to_buffer(32,this.time),this.key_id,new Buffer([this.key.type,this.hasher.type]))])},Signature_v2_or_v3.prototype.prepare_payload=function(data_packets){var bufs,dp;return bufs=function(){var _i,_len,_results;for(_results=[],_i=0,_len=data_packets.length;_len>_i;_i++)dp=data_packets[_i],_results.push(dp.to_signature_payload());return _results}(),bufs.push(new Buffer([this.type]),uint_to_buffer(32,this.time)),Buffer.concat(bufs)},Signature_v2_or_v3.prototype.verify=function(data_packets,cb){var T,b,d,err,hash,payload,s,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),payload=this.prepare_payload(data_packets),hash=this.hasher(payload),s=new SlicerBuffer(hash),v=s.read_uint16(),T=C.sig_types,function(_this){return function(__iced_k){return v!==(b=_this.signed_hash_value_hash)?__iced_k(err=new Error("quick hash check failed: "+v+" != "+b)):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature_v2_or_v3.verify"}),_this.key.verify_unpad_and_check_hash({hash:hash,hasher:_this.hasher,sig:_this.sig},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:76})),__iced_deferrals._fulfill()}(function(){var _i,_len,_ref3;if(null==err&&((_ref3=_this.type)===T.binary_doc||_ref3===T.canonical_text))for(_i=0,_len=data_packets.length;_len>_i;_i++)d=data_packets[_i],d.push_sig(new packetsigs.Data({sig:_this}));return __iced_k()})}}(this)(function(){return function(){return cb(err)}}(this))},Signature_v2_or_v3}(Packet),Signature_v2=function(_super){function Signature_v2(){return Signature_v2.__super__.constructor.apply(this,arguments)}return __extends(Signature_v2,_super),Signature_v2}(Signature_v2_or_v3),Signature_v3=function(_super){function Signature_v3(){return Signature_v3.__super__.constructor.apply(this,arguments)}return __extends(Signature_v3,_super),Signature_v3}(Signature_v2_or_v3),Signature=function(_super){function Signature(_arg){this.key=_arg.key,this.hasher=_arg.hasher,this.key_id=_arg.key_id,this.sig_data=_arg.sig_data,this.public_key_class=_arg.public_key_class,this.signed_hash_value_hash=_arg.signed_hash_value_hash,this.hashed_subpackets=_arg.hashed_subpackets,this.time=_arg.time,this.sig=_arg.sig,this.type=_arg.type,this.unhashed_subpackets=_arg.unhashed_subpackets,this.version=_arg.version,null==this.hasher&&(this.hasher=SHA512),null==this.hashed_subpackets&&(this.hashed_subpackets=[]),null==this.unhashed_subpackets&&(this.unhashed_subpackets=[]),this.subpacket_index=this._make_subpacket_index(),this._framed_output=null}return __extends(Signature,_super),Signature.prototype.get_key_id=function(){var _ref3;return this.key_id?this.key_id:null!=(_ref3=this.subpacket_index.all[S.issuer])?_ref3.id:void 0},Signature.prototype._make_subpacket_index=function(){var p,ret,_i,_j,_len,_len1,_ref3,_ref4;for(ret={hashed:{},unhashed:{},all:{}},_ref3=this.hashed_subpackets,_i=0,_len=_ref3.length;_len>_i;_i++)p=_ref3[_i],ret.hashed[p.type]=p,ret.all[p.type]=p;for(_ref4=this.unhashed_subpackets,_j=0,_len1=_ref4.length;_len1>_j;_j++)p=_ref4[_j],ret.unhashed[p.type]=p,ret.all[p.type]=p;return ret},Signature.prototype.prepare_payload=function(data){var flatsp,hvalue,payload,prefix,s,trailer;return flatsp=Buffer.concat(function(){var _i,_len,_ref3,_results;for(_ref3=this.hashed_subpackets,_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)s=_ref3[_i],_results.push(s.to_buffer());return _results}.call(this)),prefix=Buffer.concat([new Buffer([C.versions.signature.V4,this.type,this.key.type,this.hasher.type]),uint_to_buffer(16,flatsp.length),flatsp]),trailer=Buffer.concat([new Buffer([C.versions.signature.V4,255]),uint_to_buffer(32,prefix.length)]),payload=Buffer.concat([data,prefix,trailer]),hvalue=this.hasher(payload),{prefix:prefix,payload:payload,hvalue:hvalue}},Signature.prototype.write_unframed=function(data,cb){var esc,hvalue,payload,prefix,result2,results,s,sig,uhsp,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref3;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"write_unframed"),uhsp=Buffer.concat(function(){var _i,_len,_ref3,_results;for(_ref3=this.unhashed_subpackets,_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)s=_ref3[_i],_results.push(s.to_buffer());return _results}.call(this)),_ref3=this.prepare_payload(data),prefix=_ref3.prefix,payload=_ref3.payload,hvalue=_ref3.hvalue,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature.write_unframed"}),_this.key.pad_and_sign(payload,{hasher:_this.hasher},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:154}))),__iced_deferrals._fulfill()}}(this)(function(){return function(){return result2=Buffer.concat([uint_to_buffer(16,uhsp.length),uhsp,new Buffer([hvalue.readUInt8(0),hvalue.readUInt8(1)]),sig]),results=Buffer.concat([prefix,result2]),cb(null,results)}}(this))},Signature.prototype.write=function(data,cb){var err,ret,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature.write"}),_this.write_unframed(data,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:167})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(_this._framed_output=ret=_this.frame_packet(C.packet_tags.signature,unframed)),cb(err,ret)}}(this))},Signature.prototype.get_framed_output=function(){return this._framed_output||this.replay()},Signature.parse=function(slice){return new Parser(slice).parse()},Signature.prototype.extract_key=function(data_packets){var p,_i,_len,_results;for(_results=[],_i=0,_len=data_packets.length;_len>_i;_i++){if(p=data_packets[_i],null!=p.key){this.key=p.key;break}_results.push(void 0)}return _results},Signature.prototype.verify=function(data_packets,cb){var err,p,s,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature.verify"}),_this._verify(data_packets,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:196})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _i,_len,_ref3,_results,_while;_ref3=_this.unhashed_subpackets,_len=_ref3.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(p=_ref3[_i],"undefined"!=typeof err&&null!==err||null==(s=p.to_sig())?_continue():void!function(__iced_k){return s.type!==C.sig_types.primary_binding?__iced_k(err=new Error("unknown subpacket signature type: "+s.type)):void!function(__iced_k){return 1!==data_packets.length?__iced_k(err=new Error("Needed 1 data packet for a primary_binding signature")):(subkey=data_packets[0],s.primary=_this.primary,s.key=subkey.key,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature.verify"}),s._verify([subkey],__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:206})),__iced_deferrals._fulfill()}(__iced_k),void 0)}(__iced_k)}(_next)):_break()})(__iced_k)}(function(){return cb(err)})}}(this))},Signature.prototype._verify=function(data_packets,cb){var SKB,T,buffers,d,data,dp,err,hvalue,n,packets,payload,ps,sig,subkey,user_attribute,userid,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,T=C.sig_types,subkey=null,this.data_packets=function(){switch(this.type){case T.binary_doc:case T.canonical_text:return data_packets;case T.issuer:case T.personal:case T.casual:case T.positive:case T.certificate_revocation:return 1!==(n=data_packets.length)?(err=new Error("Only expecting one UserID-style packet in a self-sig (got "+n+")"),[]):[this.primary].concat(data_packets);case T.subkey_binding:case T.primary_binding:case T.subkey_revocation:return packets=[],1!==data_packets.length?err=new Error("Wrong number of data packets; expected only 1"):null==this.primary?err=new Error("Need a primary key for subkey signature"):(subkey=data_packets[0],packets=[this.primary,subkey]),packets;case T.direct:return[this.primary].concat(data_packets);default:return err=new Error("cannot verify sigtype "+this.type),[]}}.call(this),function(_this){return function(__iced_k){var _ref3;return null!=err?__iced_k():(buffers=function(){var _i,_len,_ref3,_results;for(_ref3=this.data_packets,_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)dp=_ref3[_i],_results.push(dp.to_signature_payload());return _results}.call(_this),data=Buffer.concat(buffers),_ref3=_this.prepare_payload(data),payload=_ref3.payload,hvalue=_ref3.hvalue,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature._verify"}),_this.key.verify_unpad_and_check_hash({sig:_this.sig,hash:hvalue,hasher:_this.hasher},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:256})),__iced_deferrals._fulfill()}(__iced_k),void 0)}}(this)(function(_this){return function(){var _i,_len,_ref3;if(null==err&&(err=_this._check_key_sig_expiration()),sig=_this,null==err)switch(SKB=packetsigs.SubkeyBinding,_this.type){case T.binary_doc:case T.canonical_text:for(_ref3=_this.data_packets,_i=0,_len=_ref3.length;_len>_i;_i++)d=_ref3[_i],d.push_sig(new packetsigs.Data({sig:sig}));break;case T.issuer:case T.personal:case T.casual:case T.positive:ps=null,null!=(userid=_this.data_packets[1].to_userid())?(ps=new packetsigs.SelfSig({type:_this.type,userid:userid,sig:sig}),userid.push_sig(ps)):null!=(user_attribute=_this.data_packets[1].to_user_attribute())&&(ps=new packetsigs.SelfSig({type:_this.type,user_attribute:user_attribute,sig:sig}),user_attribute.push_sig(ps)),ps&&_this.primary.push_sig(ps);break;case T.subkey_binding:subkey.push_sig(new SKB({primary:_this.primary,sig:sig,direction:SKB.DOWN}));break;case T.primary_binding:subkey.push_sig(new SKB({primary:_this.primary,sig:sig,direction:SKB.UP}));break;case T.subkey_revocation:subkey.mark_revoked(sig)}return cb(err)}}(this))},Signature.prototype.is_signature=function(){return!0},Signature.prototype.when_generated=function(){var _ref3;return null!=(_ref3=this.subpacket_index.hashed[S.creation_time])?_ref3.time:void 0},Signature.prototype.time_primary_pair=function(){var T,_ref3,_ref4;return T=C.sig_types,(_ref3=this.type)===T.issuer||_ref3===T.personal||_ref3===T.casual||_ref3===T.positive?[this.when_generated(),!!(null!=(_ref4=this.subpacket_index.hashed[S.primary_user_id])?_ref4.flag:void 0)]:null},Signature.prototype._check_key_sig_expiration=function(){var T,creation,err,expiration,now,_ref3;return err=null,T=C.sig_types,((_ref3=this.type)===T.issuer||_ref3===T.personal||_ref3===T.casual||_ref3===T.positive||_ref3===T.subkey_binding||_ref3===T.primary_binding)&&(creation=this.subpacket_index.hashed[S.creation_time],expiration=this.subpacket_index.hashed[S.key_expiration_time],now=unix_time(),null!=creation&&null!=expiration&&(expiration=creation.time+expiration.time,now>expiration&&0!==expiration&&(err=new Error("Key expired "+(now-expiration)+"s ago"))),null==err&&null!=(expiration=this.subpacket_index.hashed[S.expiration_time])&&now>expiration.time&&0!==expiration.time&&(err=new Error("Signature expired "+(now-expiration.time)+"s ago"))),err},Signature.prototype.get_key_flags=function(){var _ref3,_ref4,_ref5;return(null!=(_ref3=this.subpacket_index)&&null!=(_ref4=_ref3.hashed)&&null!=(_ref5=_ref4[C.sig_subpacket.key_flags])?_ref5.all_flags():void 0)||0},Signature.prototype.get_issuer_key_id=function(){var _ref3,_ref4;return null!=(_ref3=this.subpacket_index)&&null!=(_ref4=_ref3.all[C.sig_subpacket.issuer])?_ref4.id:void 0},Signature}(Packet),SubPacket=function(){function SubPacket(type){this.type=type,this.critical=!1,this.five_byte_len=!1}return SubPacket.prototype.set_opts=function(d){var k,v;for(k in d)v=d[k],this[k]=v;return!0},SubPacket.prototype.to_buffer=function(){var inner;return inner=this._v_to_buffer(),Buffer.concat([encode_length(inner.length+1,this.five_byte_len),uint_to_buffer(8,this.type|(this.critical?128:0)),inner])},SubPacket.prototype.to_sig=function(){return null},SubPacket.prototype.export_to_option=function(){return null},SubPacket}(),Experimental=function(_super){function Experimental(buf,type){this.buf=buf,this.type=type}return __extends(Experimental,_super),Experimental.parse=function(slice,type){return new Experimental(slice.consume_rest_to_buffer(),type)},Experimental.prototype._v_to_buffer=function(){return this.buf},Experimental}(SubPacket),Time=function(_super){function Time(type,time){this.time=time,this.never_expires=0===this.time,Time.__super__.constructor.call(this,type)}return __extends(Time,_super),Time.parse=function(slice,klass){return new klass(slice.read_uint32())},Time.prototype._v_to_buffer=function(){return uint_to_buffer(32,this.time)},Time}(SubPacket),Preference=function(_super){function Preference(type,v){var e,_i,_len,_ref3;for(this.v=v,Preference.__super__.constructor.call(this,type),_ref3=this.v,_i=0,_len=_ref3.length;_len>_i;_i++)e=_ref3[_i],assert(null!=e)}return __extends(Preference,_super),Preference.parse=function(slice,klass){var c,v;return v=function(){var _i,_len,_ref3,_results;for(_ref3=slice.consume_rest_to_buffer(),_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)c=_ref3[_i],_results.push(c);return _results}(),new klass(v)},Preference.prototype._v_to_buffer=function(){var e;return new Buffer(function(){var _i,_len,_ref3,_results;for(_ref3=this.v,_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)e=_ref3[_i],_results.push(e);return _results}.call(this))},Preference}(SubPacket),CreationTime=function(_super){function CreationTime(t){CreationTime.__super__.constructor.call(this,S.creation_time,t)}return __extends(CreationTime,_super),CreationTime.parse=function(slice){return Time.parse(slice,CreationTime)},CreationTime}(Time),ExpirationTime=function(_super){function ExpirationTime(t){ExpirationTime.__super__.constructor.call(this,S.expiration_time,t)}return __extends(ExpirationTime,_super),ExpirationTime.parse=function(slice){return Time.parse(slice,ExpirationTime)},ExpirationTime}(Time),Exportable=function(_super){function Exportable(flag){this.flag=flag,Exportable.__super__.constructor.call(this,S.exportable_certificate)}return __extends(Exportable,_super),Exportable.parse=function(slice){return new Exportable(slice.read_uint8())},Exportable.prototype._v_to_buffer=function(){return uint_to_buffer(8,this.flag)},Exportable}(SubPacket),Trust=function(_super){function Trust(level,amount){this.level=level,this.amount=amount,Trust.__super__.constructor.call(this,S.trust_signature)}return __extends(Trust,_super),Trust.parse=function(slice){return new Trust(slice.read_uint8(),slice.read_uint8())},Trust.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(8,this.level),uint_to_buffer(8,this.amount)])},Trust}(SubPacket),RegularExpression=function(_super){function RegularExpression(re){this.re=re,RegularExpression.__super__.constructor.call(this,S.regular_expression)}return __extends(RegularExpression,_super),RegularExpression.parse=function(slice){var ret;return ret=new RegularExpression(slice.consume_rest_to_buffer().toString("utf8"))},RegularExpression.prototype._v_to_buffer=function(){return new Buffer(this.re,"utf8")},RegularExpression}(SubPacket),Revocable=function(_super){function Revocable(flag){this.flag=flag,Revocable.__super__.constructor.call(this,S.revocable)}return __extends(Revocable,_super),Revocable.parse=function(slice){return new Revocable(slice.read_uint8())},Revocable.prototype._v_to_buffer=function(){return uint_to_buffer(8,this.flag)},Revocable}(SubPacket),KeyExpirationTime=function(_super){function KeyExpirationTime(t){KeyExpirationTime.__super__.constructor.call(this,S.key_expiration_time,t)}return __extends(KeyExpirationTime,_super),KeyExpirationTime.parse=function(slice){return Time.parse(slice,KeyExpirationTime)},KeyExpirationTime}(Time),PreferredSymmetricAlgorithms=function(_super){function PreferredSymmetricAlgorithms(v){PreferredSymmetricAlgorithms.__super__.constructor.call(this,S.preferred_symmetric_algorithms,v)}return __extends(PreferredSymmetricAlgorithms,_super),PreferredSymmetricAlgorithms.parse=function(slice){return Preference.parse(slice,PreferredSymmetricAlgorithms)},PreferredSymmetricAlgorithms}(Preference),RevocationKey=function(_super){function RevocationKey(key_class,alg,fingerprint){this.key_class=key_class,this.alg=alg,this.fingerprint=fingerprint,RevocationKey.__super__.constructor.call(this,S.revocation_key)}return __extends(RevocationKey,_super),RevocationKey.parse=function(slice){var fp,ka,kc;return kc=slice.read_uint8(),ka=slice.read_uint8(),fp=slice.read_buffer(SHA1.output_length),new RevocationKey(kc,ka,fp)},RevocationKey.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(8,this.key_class),uint_to_buffer(8,this.alg),new Buffer(this.fingerprint)])},RevocationKey}(SubPacket),Issuer=function(_super){function Issuer(id){this.id=id,Issuer.__super__.constructor.call(this,S.issuer)}return __extends(Issuer,_super),Issuer.parse=function(slice){return new Issuer(slice.read_buffer(8))},Issuer.prototype._v_to_buffer=function(){return new Buffer(this.id)},Issuer}(SubPacket),NotationData=function(_super){function NotationData(flags,name,value){this.flags=flags,this.name=name,this.value=value,NotationData.__super__.constructor.call(this,S.notation_data)}return __extends(NotationData,_super),NotationData.parse=function(slice){var flags,name,nl,value,vl;return flags=slice.read_uint32(),nl=slice.read_uint16(),vl=slice.read_uint16(),name=slice.read_buffer(nl),value=slice.read_buffer(vl),new NotationData(flags,name,value)},NotationData.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(32,this.flags),uint_to_buffer(16,this.name.length),uint_to_buffer(16,this.value.length),new Buffer(this.name),new Buffer(this.value)])},NotationData}(SubPacket),PreferredHashAlgorithms=function(_super){function PreferredHashAlgorithms(v){PreferredHashAlgorithms.__super__.constructor.call(this,S.preferred_hash_algorithms,v)}return __extends(PreferredHashAlgorithms,_super),PreferredHashAlgorithms.parse=function(slice){return Preference.parse(slice,PreferredHashAlgorithms)},PreferredHashAlgorithms}(Preference),PreferredCompressionAlgorithms=function(_super){function PreferredCompressionAlgorithms(v){PreferredCompressionAlgorithms.__super__.constructor.call(this,S.preferred_compression_algorithms,v)}return __extends(PreferredCompressionAlgorithms,_super),PreferredCompressionAlgorithms.parse=function(slice){return Preference.parse(slice,PreferredCompressionAlgorithms)},PreferredCompressionAlgorithms}(Preference),KeyServerPreferences=function(_super){function KeyServerPreferences(v){KeyServerPreferences.__super__.constructor.call(this,S.key_server_preferences,v)}return __extends(KeyServerPreferences,_super),KeyServerPreferences.parse=function(slice){return Preference.parse(slice,KeyServerPreferences)},KeyServerPreferences}(Preference),Features=function(_super){function Features(v){Features.__super__.constructor.call(this,S.features,v)}return __extends(Features,_super),Features.parse=function(slice){return Preference.parse(slice,Features)},Features}(Preference),PreferredKeyServer=function(_super){function PreferredKeyServer(server){this.server=server,PreferredKeyServer.__super__.constructor.call(this,S.preferred_key_server)}return __extends(PreferredKeyServer,_super),PreferredKeyServer.parse=function(slice){return new PreferredKeyServer(slice.consume_rest_to_buffer())},PreferredKeyServer.prototype._v_to_buffer=function(){return this.server},PreferredKeyServer}(SubPacket),PrimaryUserId=function(_super){function PrimaryUserId(flag){this.flag=flag,PrimaryUserId.__super__.constructor.call(this,S.primary_user_id)}return __extends(PrimaryUserId,_super),PrimaryUserId.parse=function(slice){return new PrimaryUserId(slice.read_uint8())},PrimaryUserId.prototype._v_to_buffer=function(){return uint_to_buffer(8,this.flag)},PrimaryUserId}(SubPacket),PolicyURI=function(_super){function PolicyURI(flag){this.flag=flag,PolicyURI.__super__.constructor.call(this,S.policy_uri)}return __extends(PolicyURI,_super),PolicyURI.parse=function(slice){return new PolicyURI(slice.consume_rest_to_buffer())},PolicyURI.prototype._v_to_buffer=function(){return this.flag},PolicyURI}(SubPacket),KeyFlags=function(_super){function KeyFlags(v){KeyFlags.__super__.constructor.call(this,S.key_flags,v)}return __extends(KeyFlags,_super),KeyFlags.parse=function(slice){return Preference.parse(slice,KeyFlags)},KeyFlags.prototype.all_flags=function(){var e,ret,_i,_len,_ref3;for(ret=0,_ref3=this.v,_i=0,_len=_ref3.length;_len>_i;_i++)e=_ref3[_i],ret|=e;return ret},KeyFlags}(Preference),SignersUserID=function(_super){function SignersUserID(uid){this.uid=uid,SignersUserID.__super__.constructor.call(this,S.signers_user_id)}return __extends(SignersUserID,_super),SignersUserID.parse=function(slice){return new SignersUserID(slice.consume_rest_to_buffer())},SignersUserID.prototype._v_to_buffer=function(){return this.uid},SignersUserID}(SubPacket),ReasonForRevocation=function(_super){function ReasonForRevocation(flag,reason){this.flag=flag,this.reason=reason,ReasonForRevocation.__super__.constructor.call(this,S.reason_for_revocation)}return __extends(ReasonForRevocation,_super),ReasonForRevocation.parse=function(slice){var flag,reason;return flag=slice.read_uint8(),reason=slice.consume_rest_to_buffer(),new ReasonForRevocation(flag,reason)},ReasonForRevocation.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(8,this.flag),this.reason])},ReasonForRevocation}(SubPacket),SignatureTarget=function(_super){function SignatureTarget(pub_key_alg,hasher,hval){this.pub_key_alg=pub_key_alg,this.hasher=hasher,this.hval=hval,SignatureTarget.__super__.constructor.call(this,S.signature_target)}return __extends(SignatureTarget,_super),SignatureTarget.parse=function(slice){var hasher,hval,pka;return pka=slice.read_uint8(),hasher=alloc_or_throw(slice.read_uint8()),hval=slice.read_buffer(hasher.output_length),new SignatureTarget(pka,hasher,hval)},SignatureTarget.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(8,this.pub_key_alg),uint_to_buffer(8,this.hasher.type),this.hval])},SignatureTarget}(SubPacket),EmbeddedSignature=function(_super){function EmbeddedSignature(_arg){this.sig=_arg.sig,this.rawsig=_arg.rawsig,EmbeddedSignature.__super__.constructor.call(this,S.embedded_signature)}return __extends(EmbeddedSignature,_super),EmbeddedSignature.prototype._v_to_buffer=function(){return this.rawsig},EmbeddedSignature.prototype.to_sig=function(){return this.sig},EmbeddedSignature.parse=function(slice){var rawsig,sig;return rawsig=slice.peek_rest_to_buffer(),sig=Signature.parse(slice),new EmbeddedSignature({sig:sig,rawsig:rawsig})},EmbeddedSignature}(SubPacket),exports.Signature=Signature,Parser=function(){function Parser(slice){this.slice=slice}return Parser.prototype.parse_v2_or_v3=function(v,klass){var o;if(5!==this.slice.read_uint8())throw new error("Bad one-octet length");return o={},o.type=this.slice.read_uint8(),o.time=this.slice.read_uint32(),o.sig_data=this.slice.peek_rest_to_buffer(),o.key_id=this.slice.read_buffer(8),o.public_key_class=asymmetric.get_class(this.slice.read_uint8()),o.hasher=alloc_or_throw(this.slice.read_uint8()),o.signed_hash_value_hash=this.slice.read_uint16(),o.sig=o.public_key_class.parse_sig(this.slice),o.version=v,new klass(o) },Parser.prototype.parse_v4=function(){var end,hashed_subpacket_count,o,unhashed_subpacket_count;return o={},o.type=this.slice.read_uint8(),o.public_key_class=asymmetric.get_class(this.slice.read_uint8()),o.hasher=alloc_or_throw(this.slice.read_uint8()),hashed_subpacket_count=this.slice.read_uint16(),end=this.slice.i+hashed_subpacket_count,o.sig_data=this.slice.peek_to_buffer(hashed_subpacket_count),o.hashed_subpackets=function(){var _results;for(_results=[];this.slice.i=S.experimental_low&&type<=S.experimental_high)return Experimental;throw new Error("Unknown signature subpacket: "+type)}}(),ret=klass.parse(this.slice,type),ret.set_opts({critical:critical,five_byte_len:five_byte_len}),this.slice.unclamp(end),ret},Parser.prototype.parse=function(){var version;switch(version=this.slice.read_uint8()){case C.versions.signature.V2:return this.parse_v2_or_v3(version,Signature_v2);case C.versions.signature.V3:return this.parse_v2_or_v3(version,Signature_v3);case C.versions.signature.V4:return this.parse_v4();default:throw new Error("Unknown signature version: "+version)}},Parser}(),exports.CreationTime=CreationTime,exports.KeyFlags=KeyFlags,exports.KeyExpirationTime=KeyExpirationTime,exports.PreferredSymmetricAlgorithms=PreferredSymmetricAlgorithms,exports.PreferredHashAlgorithms=PreferredHashAlgorithms,exports.Features=Features,exports.KeyServerPreferences=KeyServerPreferences,exports.Issuer=Issuer,exports.EmbeddedSignature=EmbeddedSignature,exports.PrimaryUserId=PrimaryUserId}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../hash":14,"../../util":70,"../buffer":35,"../util":60,"./base":45,"./packetsigs":51,assert:75,buffer:80,"iced-error":115,"iced-runtime":118,util:114}],54:[function(require,module,exports){(function(Buffer){(function(){var AES,C,Packet,SHA1,SHA256,UserAttribute,bufferify,encrypt,native_rng,parse,triplesec,uint_to_buffer,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};C=require("../../const").openpgp,triplesec=require("triplesec"),_ref=triplesec.hash,SHA1=_ref.SHA1,SHA256=_ref.SHA256,AES=triplesec.ciphers.AES,native_rng=triplesec.prng.native_rng,_ref1=require("../../util"),bufferify=_ref1.bufferify,uint_to_buffer=_ref1.uint_to_buffer,encrypt=require("../cfb").encrypt,Packet=require("./base").Packet,parse=require("pgp-utils").userid.parse,UserAttribute=function(_super){function UserAttribute(data){this.data=data,UserAttribute.__super__.constructor.call(this)}return __extends(UserAttribute,_super),UserAttribute.prototype.write=function(){return this.frame_packet(C.packet_tags.user_attribute,this.data)},UserAttribute.parse=function(slice){return new UserAttribute(slice.consume_rest_to_buffer())},UserAttribute.prototype.to_user_attribute=function(){return this},UserAttribute.prototype.to_signature_payload=function(){return Buffer.concat([new Buffer([C.signatures.user_attribute]),uint_to_buffer(32,this.data.length),this.data])},UserAttribute}(Packet),exports.UserAttribute=UserAttribute}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../util":70,"../cfb":38,"./base":45,buffer:80,"pgp-utils":163,triplesec:181}],55:[function(require,module,exports){(function(Buffer){(function(){var AES,C,Packet,SHA1,SHA256,UserID,bufferify,encrypt,native_rng,parse,triplesec,uint_to_buffer,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};C=require("../../const").openpgp,triplesec=require("triplesec"),_ref=triplesec.hash,SHA1=_ref.SHA1,SHA256=_ref.SHA256,AES=triplesec.ciphers.AES,native_rng=triplesec.prng.native_rng,_ref1=require("../../util"),bufferify=_ref1.bufferify,uint_to_buffer=_ref1.uint_to_buffer,encrypt=require("../cfb").encrypt,Packet=require("./base").Packet,parse=require("pgp-utils").userid.parse,UserID=function(_super){function UserID(userid,components){this.components=null!=components?components:null,this.userid=bufferify(userid),null==this.compontents&&this._parse(),UserID.__super__.constructor.call(this),this._time_primary_pair=null,this.primary=!1,this.most_recent_sig=null}return __extends(UserID,_super),UserID.prototype.utf8=function(){return this.userid.toString("utf8")},UserID.prototype.write=function(){return this.frame_packet(C.packet_tags.userid,this.userid)},UserID.parse=function(slice){return new UserID(slice.consume_rest_to_buffer())},UserID.prototype.to_userid=function(){return this},UserID.prototype.cmp=function(b){var x,y;return x=this.utf8(),y=b.utf8(),y>x?-1:x===y?0:1},UserID.prototype.to_signature_payload=function(){return Buffer.concat([new Buffer([C.signatures.userid]),uint_to_buffer(32,this.userid.length),this.userid])},UserID.prototype._parse=function(){var c;return null!=(c=parse(this.utf8()))?this.components=c:void 0},UserID.prototype.get_username=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.username:void 0},UserID.prototype.get_comment=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.comment:void 0},UserID.prototype.get_email=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.email:void 0},UserID.prototype.time_primary_pair=function(){var max,p,pairs,ret,s,_i,_len;if(null==this._time_primary_pair){for(pairs=function(){var _i,_len,_ref2,_ref3,_results;for(_ref2=this.get_psc().get_self_sigs(),_results=[],_i=0,_len=_ref2.length;_len>_i;_i++)s=_ref2[_i],_results.push(null!=s&&null!=(_ref3=s.sig)?_ref3.time_primary_pair():void 0);return _results}.call(this),max=null,ret=[null,null],_i=0,_len=pairs.length;_len>_i;_i++)p=pairs[_i],null!=p&&(p[0]&&(null==ret[0]||ret[0]",new UserID(userid,components)},UserID.prototype.get_framed_signature_output=function(){var _ref2,_ref3,_ref4;return null!=(_ref2=this.get_psc())&&null!=(_ref3=_ref2.get_self_sig())&&null!=(_ref4=_ref3.sig)?_ref4.get_framed_output():void 0},UserID}(Packet),exports.UserID=UserID}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../util":70,"../cfb":38,"./base":45,buffer:80,"pgp-utils":163,triplesec:181}],56:[function(require,module,exports){(function(Buffer){(function(){var C,Compressed,Generic,KeyMaterial,Literal,MessageParser,OnePassSignature,PKESK,PacketParser,SEIPD,Signature,SlicerBuffer,UserAttribute,UserID,inspect,parse,util,_ref;util=require("../util"),SlicerBuffer=require("./buffer").SlicerBuffer,C=require("../const").openpgp,KeyMaterial=require("./packet/keymaterial").KeyMaterial,Signature=require("./packet/signature").Signature,_ref=require("./packet/sess"),SEIPD=_ref.SEIPD,PKESK=_ref.PKESK,UserID=require("./packet/userid").UserID,UserAttribute=require("./packet/user_attribute").UserAttribute,Compressed=require("./packet/compressed").Compressed,Generic=require("./packet/generic").Generic,OnePassSignature=require("./packet/one_pass_sig").OnePassSignature,Literal=require("./packet/literal").Literal,inspect=require("util").inspect,MessageParser=function(){function MessageParser(slice){this.slice=slice}return MessageParser.prototype.parse=function(){var _results;for(_results=[];this.slice.rem();)_results.push(this.parse_packet());return _results},MessageParser.prototype.parse_packet=function(){return new PacketParser(this.slice).parse()},MessageParser}(),PacketParser=function(){function PacketParser(slice){this.slice=slice,this.body=null,this.real_packet_len=null,this.tag=null,this.len=null,this.header_len=null}return PacketParser.prototype.parse_header=function(){return this.parse_tag_and_len(),this.header_len||(this.header_len=this.slice.offset()),this.body||(this.body=new SlicerBuffer(this.slice.read_buffer(this.len))),this.real_packet_len||(this.real_packet_len=this.len),this.slice.unclamp()},PacketParser.prototype.parse=function(){var ret;return this.parse_header(),ret=this.parse_body()},PacketParser.prototype.parse_body=function(){var packet,pt,raw,sb;return pt=C.packet_tags,sb=this.body,raw=sb.peek_rest_to_buffer(),packet=function(){switch(this.tag){case pt.PKESK:return PKESK.parse(sb);case pt.one_pass_sig:return OnePassSignature.parse(sb);case pt.secret_key:return KeyMaterial.parse_private_key(sb,{subkey:!1});case pt.secret_subkey:return KeyMaterial.parse_private_key(sb,{subkey:!0});case pt.public_key:return KeyMaterial.parse_public_key(sb,{subkey:!1});case pt.public_subkey:return KeyMaterial.parse_public_key(sb,{subkey:!0});case pt.signature:return Signature.parse(sb);case pt.userid:return UserID.parse(sb);case pt.user_attribute:return UserAttribute.parse(sb);case pt.SEIPD:return SEIPD.parse(sb);case pt.literal:return Literal.parse(sb);case pt.compressed:return Compressed.parse(sb);default:return new Generic(this.tag,sb)}}.call(this),packet.set({tag:this.tag,real_packet_len:this.real_packet_len,header_len:this.header_len,raw:raw}),packet},PacketParser.prototype.parse_tag_and_len=function(){var c;if(this.slice.len()<2||0===(128&(c=this.slice.read_uint8())))throw new Error("This doesn't look like a binary PGP packet (c="+c+")");return 0===(64&c)?this.parse_tag_and_len_old(c):this.parse_tag_and_len_new(c)},PacketParser.prototype.parse_tag_and_len_old=function(c){return this.tag=(63&c)>>2,this.len=function(){switch(3&c){case 0:return this.slice.read_uint8();case 1:return this.slice.read_uint16();case 2:return this.slice.read_uint32();case 3:return this.slice.rem()}}.call(this)},PacketParser.prototype.parse_tag_and_len_new=function(c){var ret;return this.tag=63&c,ret=this.parse_tag_len_new()},PacketParser.prototype.parse_tag_len_new=function(){var c,d,go,lastlen,packet_length,segments;for(go=!0,segments=[],this.len=0,lastlen=0;go;)go=!1,c=this.slice.read_uint8(),lastlen=192>c?c:255===c?this.slice.read_uint32():224>c?(d=this.slice.read_uint8(),(c-192<<8)+(d+192)):(this.header_len||(this.header_len=this.slice.offset()),packet_length=1<<(31&c),segments.push(this.slice.read_buffer(packet_length)),go=!0,packet_length),this.len+=lastlen;return segments.length?(segments.push(this.slice.read_buffer(lastlen)),this.body=new SlicerBuffer(Buffer.concat(segments)),this.len=this.body.length,this.real_packet_len=this.slice.offset()):void 0},PacketParser}(),exports.parse=parse=function(buf){return util.katch(function(){return new MessageParser(new SlicerBuffer(buf)).parse()})}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../util":70,"./buffer":35,"./packet/compressed":46,"./packet/generic":47,"./packet/keymaterial":48,"./packet/literal":49,"./packet/one_pass_sig":50,"./packet/sess":52,"./packet/signature":53,"./packet/user_attribute":54,"./packet/userid":55,buffer:80,util:114}],57:[function(require,module,exports){(function(){var C,KeyBlock,Message,OPS,Warnings,armor,athrow,bufeq_secure,do_message,hashmod,iced,import_key_pgp,katch,konst,make_esc,parse,unix_time,util,verify_clearsign,verify_detached,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,OPS=require("../keyfetch").OPS,konst=require("../const"),C=konst.openpgp,_ref=require("../util"),katch=_ref.katch,unix_time=_ref.unix_time,athrow=_ref.athrow,Warnings=_ref.Warnings,bufeq_secure=_ref.bufeq_secure,parse=require("./parser").parse,import_key_pgp=require("../symmetric").import_key_pgp,util=require("util"),armor=require("./armor"),hashmod=require("../hash"),verify_clearsign=require("./clearsign").verify,verify_detached=require("./detachsign").verify,KeyBlock=function(){function KeyBlock(packets,opts){this.packets=packets,this.verified_signatures=[],this.subkeys=[],this.primary=null,this.userids=[],this.user_attributes=[],this.warnings=new Warnings,this.opts=opts||{}}return KeyBlock.prototype.to_obj=function(){return{subkeys:this.subkeys,primary:this.primary,userids:this.userids}},KeyBlock.prototype._extract_keys=function(){var err,i,p,_i,_len,_ref1;if(err=null,this.packets.length)if((this.primary=this.packets[0]).is_primary())for(_ref1=this.packets.slice(1),i=_i=0,_len=_ref1.length;_len>_i;i=++_i)p=_ref1[i],p.is_key_material()&&null==err&&(p.key.is_toxic()?this.warnings.push("Ignoring toxic subkey (ElGamal Encrypt+Sign)"):p.is_primary()?bufeq_secure(p.get_fingerprint(),this.primary.get_fingerprint())?p.set_duplicate_primary():err=new Error("cannot have 2 primary keys"):this.subkeys.push(p));else err=new Error("First packet must be the primary key");else err=new Error("No packets; cannot extract a key");return err},KeyBlock.prototype._check_keys=function(){return this._check_primary()||this._check_subkeys()},KeyBlock.prototype._check_primary=function(){var err;return err=this.primary.is_self_signed()?0===(this.userids=this.primary.get_signed_userids()).length?new Error("no valid Userid signed into key"):(this.user_attributes=this.primary.get_signed_user_attributes(),null):new Error("no valid primary key self-signature")},KeyBlock.prototype._check_subkeys=function(){var err,i,k,msg,subkeys,_i,_len;for(subkeys=this.subkeys,err=null,this.subkeys=[],i=_i=0,_len=subkeys.length;_len>_i;i=++_i)k=subkeys[i],null==err&&(k.is_signed_subkey_of(this.primary)?this.subkeys.push(k):(msg="Subkey "+i+" was invalid; discarding",this.warnings.push(msg)));return err},KeyBlock.prototype.process=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=this._extract_keys(),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"KeyBlock.process"}),_this._verify_sigs(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:86})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){var _ref1;return null!=err||(null!=(_ref1=_this.opts)?_ref1.no_check_keys:0)||(err=_this._check_keys()),cb(err)}}(this))},KeyBlock.prototype._verify_sigs=function(cb){var err,i,iid,msg,n_sigs,p,pid,tmp,working_set,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,working_set=[],n_sigs=0,function(_this){return function(__iced_k){var _len,_ref1,_results,_while;_ref1=_this.packets.slice(1),_len=_ref1.length,i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>i?(p=_ref1[i],null!=err?_continue():void!function(__iced_k){return p.is_signature()?void!function(__iced_k){return bufeq_secure(iid=p.get_issuer_key_id(),pid=_this.primary.get_key_id())?(n_sigs++,p.key=_this.primary.key,p.primary=_this.primary,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"KeyBlock._verify_sigs"}),p.verify(working_set,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:110})),__iced_deferrals._fulfill()}(function(){return __iced_k("undefined"!=typeof tmp&&null!==tmp?(msg="Signature failure in packet "+i+": "+tmp.message,_this.warnings.push(msg)):_this.verified_signatures.push(p))}),void 0):(n_sigs++,__iced_k(_this.warnings.push("Skipping signature by another issuer: "+(null!=iid?iid.toString("hex"):void 0)+" != "+(null!=pid?pid.toString("hex"):void 0))))}(__iced_k):(n_sigs>0&&(n_sigs=0,working_set=[]),__iced_k(p.is_duplicate_primary()?void 0:working_set.push(p)))}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},KeyBlock}(),Message=function(){function Message(_arg){this.keyfetch=_arg.keyfetch,this.data_fn=_arg.data_fn,this.data=_arg.data,this.strict=_arg.strict,this.literals=[],this.enc_data_packet=null,this.warnings=new Warnings}return Message.prototype._get_session_key=function(cb){var enc,err,esk_packets,fingerprint,index,key_ids,key_material,km,p,packet,pkcs5,privk,sesskey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key_ids=[],esk_packets=[],err=null,pkcs5=!1,key_ids=function(){var _results;for(_results=[];this.packets.length&&(p=this.packets[0].to_esk_packet());)esk_packets.push(p),this.packets.shift(),_results.push(p.get_key_id());return _results}.call(this),function(_this){return function(__iced_k){return key_ids.length?(enc=!0,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._get_session_key"}),_this.keyfetch.fetch(key_ids,konst.ops.decrypt,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],index=arguments[2]}}(),lineno:151})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null!=err?__iced_k():(packet=esk_packets[index],key_material=km.find_pgp_key_material(key_ids[index]),fingerprint=key_material.get_fingerprint(),privk=key_material.key,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._get_session_key"}),privk.decrypt_and_unpad(packet.ekey,{fingerprint:fingerprint},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sesskey=arguments[1],pkcs5=arguments[2]}}(),lineno:157})),__iced_deferrals._fulfill()}(function(){return __iced_k(null==err?_this.encryption_subkey=key_material:void 0)}),void 0)}(__iced_k)})):__iced_k(enc=!1)}}(this)(function(){return function(){return cb(err,enc,sesskey,pkcs5)}}(this))},Message.prototype._find_encrypted_data=function(cb){var err,ret;return err=ret=null,this.packets.length&&(ret=this.packets[0].to_enc_data_packet())?this.packets.pop():err=new Error("Could not find encrypted data packet"),cb(err,ret)},Message.prototype._decrypt_with_session_key=function(sesskey,edat,pkcs5,cb){var cipher,err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),_ref1=katch(function(){return import_key_pgp(sesskey,pkcs5)}),err=_ref1[0],cipher=_ref1[1],function(){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt_with_session_key"}),edat.decrypt({cipher:cipher},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:179})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))},Message.prototype._parse=function(raw,cb){var err,packets,_ref1;return _ref1=parse(raw),err=_ref1[0],packets=_ref1[1],cb(err,packets)},Message.prototype._decrypt=function(cb){var edat,err,esc,is_enc,packets,pkcs5,plaintext,sesskey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,esc=make_esc(cb,"Message::decrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._get_session_key(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return is_enc=arguments[0],sesskey=arguments[1],pkcs5=arguments[2]}}(),lineno:193}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return is_enc?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._find_encrypted_data(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return edat=arguments[0]}}(),lineno:195}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._decrypt_with_session_key(sesskey,edat,pkcs5,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return plaintext=arguments[0]}}(),lineno:196}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._parse(plaintext,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packets=arguments[0]}}(),lineno:197}))),__iced_deferrals._fulfill()}(function(){return __iced_k(_this.packets=packets.concat(_this.packets))})})}):__iced_k()}(function(){return cb(err)})}}(this))},Message.prototype._inflate=function(cb){var esc,inflated,p,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=[],esc=make_esc(cb,"Message::_inflate"),function(_this){return function(__iced_k){var _i,_len,_ref1,_results,_while;_ref1=_this.packets,_len=_ref1.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(p=_ref1[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._inflate"}),p.inflate(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return inflated=arguments[0]}}(),lineno:207}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return"undefined"==typeof inflated||null===inflated?__iced_k(packets.push(p)):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._inflate"}),_this._parse(inflated,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:209}))),__iced_deferrals._fulfill()}(function(){return __iced_k(packets.push.apply(packets,p))})}(_next)})):_break()})(__iced_k)}}(this)(function(_this){return function(){return _this.packets=packets,cb(null)}}(this))},Message.prototype._frame_signatures=function(){var o,p,payload,ret,stack,_i,_j,_len,_len1,_ref1;for(ret=[],stack=[],payload=[],_ref1=this.packets,_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],p.tag===C.packet_tags.one_pass_sig?stack.push({open:p}):stack.length&&(p.tag===C.packet_tags.signature?(o=stack.pop(),o.close=p,ret.push(o)):payload.push(p));for(_j=0,_len1=ret.length;_len1>_j;_j++)o=ret[_j],o.payload=payload;return ret},Message.prototype._verify_sig=function(sig,cb){var a,b,err,i,key_material,km,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,bufeq_secure(a=sig.open.key_id,b=sig.close.get_key_id())||(err=new Error("signature mismatch open v close: "+(null!=a?a.toString("hex"):void 0)+" != "+(null!=b?b.toString("hex"):void 0))),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_sig"}),_this.keyfetch.fetch([a],konst.ops.verify,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],i=arguments[2]}}(),lineno:247})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k(_this.strict?void 0:(_this.warnings.push("Problem fetching key "+a.toString("hex")+": "+err.toString()),err=null)):(key_material=km.find_pgp_key_material(a),sig.close.key=key_material.key,sig.close.key_manager=km,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_sig"}),sig.close.verify(sig.payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:259})),__iced_deferrals._fulfill()}(__iced_k),void 0)}(function(){return cb(err)})}}(this))},Message.prototype._verify=function(cb){var esc,sig,sigs,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Message::_verify_sigs"),sigs=this._frame_signatures(),function(_this){return function(__iced_k){var _i,_len,_ref1,_results,_while;_ref1=sigs,_len=_ref1.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(sig=_ref1[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify"}),_this._verify_sig(sig,esc(__iced_deferrals.defer({lineno:273}))),__iced_deferrals._fulfill()}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(null)}}(this))},Message.prototype.collect_literals=function(){var p,_i,_len,_ref1,_results;for(_ref1=this.packets,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],p.tag===C.packet_tags.literal&&_results.push(p);return _results},Message.prototype._process_generic=function(_arg,cb){var esc,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,this.packets=packets,esc=make_esc(cb,"Message:process"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._decrypt(esc(__iced_deferrals.defer({lineno:286}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._inflate(esc(__iced_deferrals.defer({lineno:287}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._verify(esc(__iced_deferrals.defer({lineno:288}))),__iced_deferrals._fulfill()}(function(){return cb(null,_this.collect_literals())})})}}(this))},Message.prototype._verify_clearsign=function(_arg,cb){var clearsign,err,literal,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,clearsign=_arg.clearsign,function(_this){return function(__iced_k){return null==clearsign?__iced_k(err=new Error("no clearsign data found")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_clearsign"}),verify_clearsign({packets:packets,clearsign:clearsign,keyfetch:_this.keyfetch},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literal=arguments[1]}}(),lineno:297})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,[literal])}}(this))},Message.prototype.parse_and_process=function(msg,cb){var esc,literals,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Message::parse_and_process"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message.parse_and_process"}),_this._parse(msg.body,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packets=arguments[0]}}(),lineno:304}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message.parse_and_process"}),_this._process({msg:msg,packets:packets},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return literals=arguments[0]}}(),lineno:305}))),__iced_deferrals._fulfill()}(function(){return cb(null,literals)})}}(this))},Message.prototype._verify_signature=function(_arg,cb){var err,literals,packets,___iced_passed_deferral,__iced_deferrals,__iced_k; __iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,function(_this){return function(__iced_k){return null==_this.data&&null==_this.data_fn?__iced_k(err=new Error("Cannot verify detached signature without data input")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_signature"}),verify_detached({packets:packets,data:_this.data,data_fn:_this.data_fn,keyfetch:_this.keyfetch},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:314})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,literals)}}(this))},Message.prototype._process=function(_arg,cb){var err,literals,msg,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,packets=_arg.packets,msg.type||(msg.type=C.message_types.generic),function(_this){return function(__iced_k){switch(msg.type){case C.message_types.generic:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._process_generic({packets:packets},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:323})),__iced_deferrals._fulfill()}(__iced_k);break;case C.message_types.clearsign:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._verify_clearsign({packets:packets,clearsign:msg.clearsign},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:325})),__iced_deferrals._fulfill()}(__iced_k);break;case C.message_types.signature:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._verify_signature({packets:packets},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:327})),__iced_deferrals._fulfill()}(__iced_k);break;default:return __iced_k(err=new Error("Needed a 'generic', 'clearsign', or 'signature' PGP message, got "+msg.type))}}}(this)(function(){return function(){return cb(err,literals)}}(this))},Message}(),exports.KeyBlock=KeyBlock,exports.Message=Message,exports.do_message=do_message=function(_arg,cb){var armored,data,data_fn,err,esk,keyfetch,literals,msg,msg_type,proc,raw,strict,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,raw=_arg.raw,msg_type=_arg.msg_type,keyfetch=_arg.keyfetch,data_fn=_arg.data_fn,data=_arg.data,strict=_arg.strict,literals=null,err=msg=warnings=esk=null,null!=armored?(_ref1=armor.decode(armored),err=_ref1[0],msg=_ref1[1]):null!=raw?(msg_type||(msg_type=C.message_types.generic),msg={body:raw,type:msg_type}):err=new Error("No input to do_message; need either 'armored' or 'raw' input"),function(){return function(__iced_k){return null!=err?__iced_k():(null==strict&&(strict=!0),proc=new Message({keyfetch:keyfetch,data_fn:data_fn,data:data,strict:strict}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced"}),proc.parse_and_process(msg,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:373})),__iced_deferrals._fulfill()}(function(){return warnings=proc.warnings,__iced_k(esk=proc.encryption_subkey)}),void 0)}}(this)(function(){return function(){return cb(err,literals,warnings,esk)}}(this))}}).call(this)},{"../const":5,"../hash":14,"../keyfetch":24,"../symmetric":68,"../util":70,"./armor":33,"./clearsign":39,"./detachsign":40,"./parser":56,"iced-error":115,"iced-runtime":118,util:114}],58:[function(require,module,exports){(function(Buffer){(function(){var C,S2K,SHA256,SecretKeyMaterial,alloc,iterated_s2k,streamers,triplesec,_iterated_s2k_cache,_ref;triplesec=require("triplesec"),C=require("../const").openpgp,_ref=require("../hash"),alloc=_ref.alloc,SHA256=_ref.SHA256,streamers=_ref.streamers,S2K=function(){function S2K(){this.hash=SHA256,this.streamer=streamers.SHA256()}return S2K.prototype._count=function(c,bias){return 16+(15&c)<<(c>>4)+bias},S2K.prototype.set_hash_algorithm=function(which){return null!=(this.hash=alloc(which))?this.streamer=streamers[this.hash.algname]():(console.warn("No such hash: "+which+"; defaulting to SHA-256"),this.hash=SHA256,this.streamer=streamers.SHA256())},S2K.prototype.read=function(slice){var c;switch(this.type=slice.read_uint8(),this.type){case C.s2k.plain:this.set_hash_algorithm(slice.read_uint8());break;case C.s2k.salt:this.set_hash_algorithm(slice.read_uint8()),this.salt=slice.read_buffer(8);break;case C.s2k.salt_iter:this.set_hash_algorithm(slice.read_uint8()),this.salt=slice.read_buffer(8),this.EXPBIAS=6,c=slice.read_uint8(),this.count=this._count(c,this.EXPBIAS);break;case C.s2k.gnu:this.read_gnu_extensions(slice);break;default:throw new Error("unknown s2k type! "+this.type)}return this},S2K.prototype.read_gnu_extensions=function(slice){var buf,gnu_ext_type,id,version;if(version=slice.read_uint8(),"GNU"!==(id=(buf=slice.read_buffer(3)).toString("utf8")))throw new Error("Malformed GNU-extension: "+ext);switch(gnu_ext_type=slice.read_uint8()+1e3){case 1001:return this.type=C.s2k.gnu_dummy;default:throw new("unknown s2k gnu protection mode: "+gnu_ext_type)}},S2K.prototype.write=function(passphrase,salt,c,keysize){var type;return this.type=type=3,this.salt=salt,this.count=this._count(c,6),this.s2kLength=10,this.produce_key(passphrase,keysize)},S2K.prototype.is_dummy=function(){return this.type===C.s2k.gnu_dummy},S2K.prototype.produce_key=function(passphrase,numBytes){var key,key2,prefix,ret,seed;return null==numBytes&&(numBytes=16),ret=function(){switch(this.type){case C.s2k.plain:return this.hash(passphrase);case C.s2k.salt:return this.hash(Buffer.concat([this.salt,passphrase]));case C.s2k.salt_iter:return seed=Buffer.concat([this.salt,passphrase]),key=iterated_s2k({alg:this.hash.algname,seed:seed,count:this.count}),null==numBytes||24!==numBytes&&32!==numBytes?key:(prefix=new Buffer([0]),key2=iterated_s2k({alg:this.hash.algname,seed:seed,count:this.count,prefix:prefix}),Buffer.concat([key,key2]));default:return null}}.call(this),ret.slice(0,numBytes)},S2K}(),_iterated_s2k_cache={},iterated_s2k=function(_arg){var alg,bigbuf,count,i,k,n,prefix,rem,rembuf,ret,seed,streamer,tot,val;if(alg=_arg.alg,seed=_arg.seed,count=_arg.count,prefix=_arg.prefix,k=""+alg+"-"+seed.toString("base64")+"-"+count,null!=prefix&&(k+="-"+prefix.toString("base64")),null!=(val=_iterated_s2k_cache[k]))return val;for(streamer=streamers[alg](),null!=prefix&&streamer.update(prefix),bigbuf=Buffer.concat(function(){var _i,_results;for(_results=[],i=_i=0;4096>_i;i=++_i)_results.push(seed);return _results}()),tot=0;tot+bigbuf.length<=count;)streamer.update(bigbuf),tot+=bigbuf.length;return rem=count-tot,n=Math.ceil(rem/seed.length),rembuf=Buffer.concat(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(seed);return _results}()),ret=streamer(rembuf.slice(0,rem)),_iterated_s2k_cache[k]=ret,ret},SecretKeyMaterial=function(){function SecretKeyMaterial(){this.s2k_convention=null,this.s2k=null,this.iv=null,this.cipher=null,this.payload=null}return SecretKeyMaterial.prototype.is_dummy=function(){return null!=this.s2k&&this.s2k.is_dummy()},SecretKeyMaterial.prototype.has_private=function(){return!this.is_dummy()},SecretKeyMaterial.prototype.is_locked=function(){return this.s2k_convention!==C.s2k_convention.none&&!this.is_dummy()},SecretKeyMaterial}(),exports.S2K=S2K,exports.SecretKeyMaterial=SecretKeyMaterial}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,buffer:80,triplesec:181}],59:[function(require,module,exports){(function(){var C,SignatureEngine,burn,decode,iced,make_esc,processor,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,burn=require("./burner").burn,processor=require("./processor"),decode=require("./armor").decode,C=require("../const"),exports.SignatureEngine=SignatureEngine=function(){function SignatureEngine(_arg){this.km=_arg.km}return SignatureEngine.prototype.get_km=function(){return this.km},SignatureEngine.prototype.box=function(msg,cb){var err,out,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),out={type:"pgp"},function(_this){return function(__iced_k){return null==(signing_key=_this.km.find_signing_pgp_key())?__iced_k(err=new Error("No signing key found")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.box"}),burn({msg:msg,signing_key:signing_key},__iced_deferrals.defer({assign_fn:function(__slot_1,__slot_2){return function(){return err=arguments[0],__slot_1.pgp=arguments[1],__slot_2.raw=arguments[2]}}(out,out),lineno:21})),__iced_deferrals._fulfill()}(function(){return __iced_k("undefined"==typeof err||null===err?out.armored=out.pgp:void 0)})}}(this)(function(){return function(){return cb(err,out)}}(this))},SignatureEngine.prototype.decode=function(armored,cb){var err,msg,mt,_ref;return _ref=decode(armored),err=_ref[0],msg=_ref[1],mt=C.openpgp.message_types,null==err&&msg.type!==mt.generic&&(err=new Error("wrong message type; expected a generic message; got "+msg.type)),cb(err,msg)},SignatureEngine.prototype.unbox=function(msg,cb){var eng,esc,literals,msg,payload,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"SignatureEngine::unbox"),function(_this){return function(__iced_k){return"string"!=typeof msg?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),_this.decode(msg,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return msg=arguments[0]}}(),lineno:40}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){eng=new processor.Message({keyfetch:_this.km}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),eng.parse_and_process({body:msg.body},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return literals=arguments[0]}}(),lineno:42}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),_this._check_result(literals,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return payload=arguments[0]}}(),lineno:43}))),__iced_deferrals._fulfill()}(function(){return cb(null,payload,msg.body)})})}}(this))},SignatureEngine.prototype._check_result=function(literals,cb){var b,err,l,n,payload,sw,_ref;return err=payload=null,1!==(n=literals.length)||null==(l=literals[0])?err=new Error("Expected only one pgp literal; got "+n):null==(sw=null!=(_ref=l.get_data_signer())?_ref.sig:void 0)?err=new Error("Expected a signature on the payload message"):null==this.km.find_pgp_key(b=sw.get_key_id())?err=new Error("Failed sanity check; didn't have a key for '"+b.toString("hex")+"'"):payload=l.data,cb(err,payload)},SignatureEngine}()}).call(this)},{"../const":5,"./armor":33,"./burner":36,"./processor":57,"iced-error":115,"iced-runtime":118}],60:[function(require,module,exports){(function(Buffer){(function(){var C,calc_checksum,encode_length,ops_to_keyflags;C=require("../const"),exports.make_time_packet=function(d){var b;return d||(d=Math.floor(Date.now()/1e3)),b=new Buffer(4),b.writeUInt32BE(d,0),b},exports.calc_checksum=calc_checksum=function(text){var i,ret,_i,_ref;for(ret=0,i=_i=0,_ref=text.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)ret=(ret+text.readUInt8(i))%65536;return ret},exports.encode_length=encode_length=function(l,five_byte){var ret;return null==five_byte&&(five_byte=!1),ret=null,l>=8384||five_byte?(ret=new Buffer(5),ret.writeUInt8(255,0),ret.writeUInt32BE(l,1)):192>l?(ret=new Buffer(1),ret.writeUInt8(l,0)):l>=192&&8384>l&&(ret=new Buffer(2),ret.writeUInt16BE(l-192+49152,0)),ret},exports.ops_to_keyflags=ops_to_keyflags=function(ops){var out;return out=0,ops&C.ops.encrypt&&(out|=C.openpgp.key_flags.encrypt_comm),ops&C.ops.decrypt&&(out|=C.openpgp.key_flags.encrypt_comm),ops&C.ops.verify&&(out|=C.openpgp.key_flags.sign_data),ops&C.ops.sign&&(out|=C.openpgp.key_flags.sign_data),out}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,buffer:80}],61:[function(require,module,exports){(function(){var Base,C,iced,konst,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},konst=require("../const"),C=konst.openpgp,exports.Base=Base=function(){function Base(_arg){this.packets=_arg.packets,this.keyfetch=_arg.keyfetch,this._sig=null}return Base.prototype._find_signature=function(cb){var err,n;return err=1!==(n=this.packets.length)?new Error("Expected one signature packet; got "+n):(this._sig=this.packets[0]).tag!==C.packet_tags.signature?new Error("Expected a signature packet; but got type="+this.packets[0].tag):null,cb(err)},Base.prototype._fetch_key=function(cb){var err,i,key_id,keymat,km,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key_id=this._sig.get_key_id(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/verifier.iced",funcname:"Base._fetch_key"}),_this.keyfetch.fetch([key_id],konst.ops.verify,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],i=arguments[2]}}(),lineno:28})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(keymat=km.find_pgp_key_material(key_id),_this._sig.key=keymat.key,_this._sig.key_manager=km),cb(err)}}(this))},Base}()}).call(this)},{"../const":5,"iced-runtime":118}],62:[function(require,module,exports){(function(Buffer){(function(){var C,SHA512,SRF,bufeq_secure,buffer_to_ui8a,eme_random,emsa_pkcs1_decode,emsa_pkcs1_encode,hash_headers,iced,nbs,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},SHA512=require("./hash").SHA512,C=require("./const").openpgp,nbs=require("./bn").nbs,_ref=require("./util"),buffer_to_ui8a=_ref.buffer_to_ui8a,bufeq_secure=_ref.bufeq_secure,SRF=require("./rand").SRF,hash_headers={MD5:[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],SHA1:[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],SHA224:[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28],SHA256:[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],SHA384:[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],SHA512:[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64]},exports.emsa_pkcs1_encode=emsa_pkcs1_encode=function(hashed_data,len,opts){var buf,hasher,headers,i,n;return null==opts&&(opts={}),hasher=opts.hasher||SHA512,headers=hash_headers[hasher.algname],n=len-headers.length-3-hasher.output_length,buf=Buffer.concat([new Buffer([0,1]),new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(255);return _results}()),new Buffer([0]),new Buffer(headers),hashed_data]),nbs(buffer_to_ui8a(buf),256)},exports.emsa_pkcs1_decode=emsa_pkcs1_decode=function(v,hasher){var err,h,header,i,ret;if(err=ret=null,i=0,v.length<2)err=new Error("signature was way too short: < 2 bytes");else if(1!==v.readUInt16BE(0))err=new Error("Sig verify error: Didn't get two-byte header 0x00 0x01");else{for(i=2;i=v.length||0!==v.readUInt8(i)?err=new Error("Sig verify error: Missed the 0x0 separator"):(i++,header=hash_headers[hasher.algname],bufeq_secure(new Buffer(header),v.slice(i,header.length+i))?(i+=header.length,h=v.slice(i),h.length!==hasher.output_length?err=new Error("Sig verify error: trailing garbage in signature"):ret=h):err=new Error("Sig verify error: missing ASN header for "+hasher.algname))}return[err,ret]},eme_random=function(n,cb){var b,bytes,c,diff,i,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),bytes=[],function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},bytes.length=0?diff>_i:_i>diff;i=diff>=0?++_i:--_i)c=b.readUInt8(i),0!==c&&bytes.push(c);return _next()})):_break()})(__iced_k)}}(this)(function(){return function(){return cb(new Buffer(bytes))}}(this))},exports.eme_pkcs1_encode=function(v,len,cb){var PS,buf,err,n_randos,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=err=null,function(){return function(__iced_k){return v.length>len-11?__iced_k(err=new Error("cannot encrypt message -- it's too long!")):(n_randos=len-3-v.length,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/pad.iced",funcname:"eme_pkcs1_encode"}),eme_random(n_randos,__iced_deferrals.defer({assign_fn:function(){return function(){return PS=arguments[0]}}(),lineno:93})),__iced_deferrals._fulfill()}(function(){return buf=Buffer.concat([new Buffer([0,2]),PS,new Buffer([0]),v]),__iced_k(ret=nbs(buffer_to_ui8a(buf),256))}))}}(this)(function(){return function(){return cb(err,ret)}}(this))},exports.eme_pkcs1_decode=function(v){var err,i,ret;if(err=ret=null,v.length<12)err=new Error("Ciphertext too short, needs to be >= 12 bytes");else if(2!==v.readUInt16BE(0))err=new Error("Failed to find expected header: 0x00 0x02");else{for(i=2;i=v.length?err=new Error("didn't get 0x00 seperator octet"):(i++,ret=v.slice(i))}return[err,ret]},exports.ecc_pkcs5_pad_data=function(d){var err,pad_len,ret,v;return err=ret=null,pad_len=40-d.length,0>pad_len?err=new Error("Pad underrun"):(v=function(){var _i,_results;for(_results=[],_i=0;pad_len>=0?pad_len>_i:_i>pad_len;pad_len>=0?_i++:_i--)_results.push(pad_len);return _results}(),ret=Buffer.concat([d,new Buffer(v)])),[err,ret]},exports.ecc_pkcs5_unpad_data=function(buf,data_len){var c,err,i,pad_len,_i,_ref1;if(err=null,pad_len=buf.length-data_len,0>pad_len)err=new Error("Pad length was < 0; pad underrun");else if(buf.length%8!==0)err=new Error("Padded data must be a multiple of 8 bytes long");else for(i=_i=data_len,_ref1=buf.length;_ref1>=data_len?_ref1>_i:_i>_ref1;i=_ref1>=data_len?++_i:--_i)if((c=buf.readUInt8(i))!==pad_len){err=new Error("Got bad PKCS#5 pad character "+c+" at position "+i+"; wanted "+pad_len);break}return err}}).call(this)}).call(this,require("buffer").Buffer)},{"./bn":4,"./const":5,"./hash":14,"./rand":65,"./util":70,buffer:80,"iced-runtime":118}],63:[function(require,module,exports){(function(){var ASP,Avg,BigInteger,MRF,PrimeFinder,SRF,Timer,fermat2_test,fta,iced,make_esc,miller_rabin,naive_is_prime,native_rng,nbi,nbs,nbv,prime_search,prng,quickmod,random_prime,small_primes,_MR_inner,_MR_small_check,__iced_k,__iced_k_noop,_ref,_ref1;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},_ref=require("bn"),nbv=_ref.nbv,nbi=_ref.nbi,BigInteger=_ref.BigInteger,prng=require("triplesec").prng,native_rng=prng.native_rng,small_primes=require("./primes").small_primes,make_esc=require("iced-error").make_esc,ASP=require("./util").ASP,nbs=require("./bn").nbs,_ref1=require("./rand"),MRF=_ref1.MRF,SRF=_ref1.SRF,Timer=function(){function Timer(){this.start=Date.now()}return Timer.prototype.stop=function(){return Date.now()-this.start},Timer}(),Avg=function(){function Avg(){this.tot=0,this.n=0}return Avg.prototype.start=function(){return this._t=Date.now()},Avg.prototype.stop=function(){var s;return s=Date.now()-this._t,console.log("ran in "+s),this.tot+=s,this.n++},Avg.prototype.avg=function(){return this.tot/this.n},Avg}(),quickmod=function(p,d){return p.modInt(d)},fta=new Avg,fermat2_test=function(n){var Bl,bl,i,ret,t,_i;for(t=nbv(1),bl=n.bitLength(),bl--,Bl=n.byteLength(),i=_i=bl;0>=bl?0>=_i:_i>=0;i=0>=bl?++_i:--_i)t=t.square(),t.byteLength()>Bl&&(t=t.mod(n)),n.testBit(i)&&(t=t.shiftLeft(1));return t.compareTo(n)>0&&(t=t.mod(n)),ret=0===t.compareTo(nbv(2))},_MR_inner=function(_arg){var a,j,p,p1,r,s,y,_i,_ref2;if(s=_arg.s,r=_arg.r,p=_arg.p,p1=_arg.p1,a=MRF().random_zn(p),y=a.modPow(r,p),0!==y.compareTo(BigInteger.ONE))for(j=_i=_ref2=s-1;0>=_ref2?0>=_i:_i>=0;j=0>=_ref2?++_i:--_i)if(0!==y.compareTo(p1)){if(0===j)return!1;if(y=y.square().mod(p),0===y.compareTo(BigInteger.ONE))return!1}return!0},_MR_small_check=function(_arg){var p,_ref2;return p=_arg.p,p.compareTo(BigInteger.ZERO)<=0?!1:p.compareTo(nbv(7))<=0?2===(_ref2=p.intValue())||3===_ref2||5===_ref2||7===_ref2:p.testBit(0)?!0:!1},miller_rabin=function(_arg,cb){var asp,esc,i,iter,p,p1,r,ret,s,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),p=_arg.p,iter=_arg.iter,asp=_arg.asp,asp||(asp=new ASP({})),iter||(iter=10),esc=make_esc(cb,"miller_rabin"),ret=_MR_small_check({p:p}),function(){return function(__iced_k){return ret?(p1=p.subtract(BigInteger.ONE),s=p1.getLowestSetBit(),r=p1.shiftRight(s),ret=!0,function(__iced_k){var _results,_while;i=0,_begin=0,_end=iter,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?i+=1:i-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&i>=iter||_positive===!1&&iter>=i?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"mr",i:i,total:iter,p:p},esc(__iced_deferrals.defer({lineno:122}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return _MR_inner({s:s,r:r,p:p,p1:p1})?__iced_k():(ret=!1,void function(){_break()}(__iced_k))}(_next)})})(__iced_k)}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"mr",i:iter,total:iter,p:p},esc(__iced_deferrals.defer({lineno:127}))),__iced_deferrals._fulfill()}(__iced_k)}),void 0):__iced_k()}}(this)(function(){return function(){return cb(null,ret)}}(this))},PrimeFinder=function(){function PrimeFinder(p,sieve){this.p=p,this.sieve=sieve,this.inc=0,this.maxinc=-1,this.sievepos=quickmod(this.p,this.sieve.length),this.calcmods()}return PrimeFinder.prototype.getp=function(){return this.p},PrimeFinder.prototype.setmax=function(i){if(-1!==this.maxinc)throw new Error("can only setmax() once");return this.maxinc=i},PrimeFinder.prototype.calcmods=function(){var sp;return this.p=this.p.add(nbv(this.inc)),-1!==this.maxinc&&(this.maxinc-=this.inc),this.inc=0,this.mods=function(){var _i,_len,_results;for(_results=[],_i=0,_len=small_primes.length;_len>_i;_i++)sp=small_primes[_i],_results.push(quickmod(this.p,sp));return _results}.call(this)},PrimeFinder.prototype.decrement_mods_find_divisor=function(){var i,sp,_i,_len;for(i=_i=0,_len=small_primes.length;_len>_i;i=++_i)for(sp=small_primes[i];this.mods[i]+this.inc>=sp;)if(this.mods[i]-=sp,this.mods[i]+this.inc===0)return!0;return!1},PrimeFinder.prototype.next_weak=function(){for(var step;;){if(step=this.sieve[this.sievepos],this.sievepos=(this.sievepos+step)%this.sieve.length,this.inc+=step,this.inc>this.maxinc&&this.maxinc>0)return this.tmp=nbv(0),this.tmp;if(this.inc<0&&this.calcmods(),!this.decrement_mods_find_divisor())return this.tmp=this.p.add(nbv(this.inc)),this.tmp}},PrimeFinder.prototype.next_fermat=function(){for(;;)if(this.next_weak(),!this.tmp||fermat2_test(this.tmp))return this.tmp},PrimeFinder.prototype.next_strong=function(iter){for(null==iter&&(iter=32);;)if(this.next_weak(),!this.tmp||fermat2_test(this.tmp)&&probab_prime(this.tmp,iter))return this.tmp},PrimeFinder}(),prime_search=function(_arg,cb){var asp,esc,i,is_prime,iters,p,pf,pp,pvec,range,ret,sieve,start,tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),start=_arg.start,range=_arg.range,sieve=_arg.sieve,asp=_arg.asp,iters=_arg.iters,iters||(iters=20),pf=new PrimeFinder(start,sieve),pf.setmax(range),pvec=function(){var _results;for(_results=[];(pp=pf.next_weak()).compareTo(BigInteger.ZERO)>0;)_results.push(pp);return _results}(),esc=make_esc(cb,"prime_search"),ret=null,function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},pvec.length&&null==ret?(i=MRF().random_word()%pvec.length,p=pvec[i],function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"fermat",p:p},esc(__iced_deferrals.defer({lineno:226}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return fermat2_test(p)?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),miller_rabin({p:p,iters:iters,asp:asp},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return is_prime=arguments[0]}}(),lineno:229}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"passed_mr",p:p},esc(__iced_deferrals.defer({lineno:230}))),__iced_deferrals._fulfill()}(function(){return __iced_k(is_prime?ret=p:asp.progress({what:"failed_mr",p:p}))})}):__iced_k()}(function(){return tmp=pvec.pop(),_next(i_i;_i++){if(p=small_primes[_i],p>biggest)return!0;if(n%p===0)return!1}return!1},exports.fermat2_test=fermat2_test,exports.nbs=nbs,exports.small_primes=small_primes,exports.miller_rabin=miller_rabin,exports.random_prime=random_prime}).call(this)},{"./bn":4,"./primes":64,"./rand":65,"./util":70,bn:71,"iced-error":115,"iced-runtime":118,triplesec:181}],64:[function(require,module,exports){(function(){exports.small_primes=[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,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973,10007,10009,10037,10039,10061,10067,10069,10079,10091,10093,10099,10103,10111,10133,10139,10141,10151,10159,10163,10169,10177,10181,10193,10211,10223,10243,10247,10253,10259,10267,10271,10273,10289,10301,10303,10313,10321,10331,10333,10337,10343,10357,10369,10391,10399,10427,10429,10433,10453,10457,10459,10463,10477,10487,10499,10501,10513,10529,10531,10559,10567,10589,10597,10601,10607,10613,10627,10631,10639,10651,10657,10663,10667,10687,10691,10709,10711,10723,10729,10733,10739,10753,10771,10781,10789,10799,10831,10837,10847,10853,10859,10861,10867,10883,10889,10891,10903,10909,10937,10939,10949,10957,10973,10979,10987,10993,11003,11027,11047,11057,11059,11069,11071,11083,11087,11093,11113,11117,11119,11131,11149,11159,11161,11171,11173,11177,11197,11213,11239,11243,11251,11257,11261,11273,11279,11287,11299,11311,11317,11321,11329,11351,11353,11369,11383,11393,11399,11411,11423,11437,11443,11447,11467,11471,11483,11489,11491,11497,11503,11519,11527,11549,11551,11579,11587,11593,11597,11617,11621,11633,11657,11677,11681,11689,11699,11701,11717,11719,11731,11743,11777,11779,11783,11789,11801,11807,11813,11821,11827,11831,11833,11839,11863,11867,11887,11897,11903,11909,11923,11927,11933,11939,11941,11953,11959,11969,11971,11981,11987,12007,12011,12037,12041,12043,12049,12071,12073,12097,12101,12107,12109,12113,12119,12143,12149,12157,12161,12163,12197,12203,12211,12227,12239,12241,12251,12253,12263,12269,12277,12281,12289,12301,12323,12329,12343,12347,12373,12377,12379,12391,12401,12409,12413,12421,12433,12437,12451,12457,12473,12479,12487,12491,12497,12503,12511,12517,12527,12539,12541,12547,12553,12569,12577,12583,12589,12601,12611,12613,12619,12637,12641,12647,12653,12659,12671,12689,12697,12703,12713,12721,12739,12743,12757,12763,12781,12791,12799,12809,12821,12823,12829,12841,12853,12889,12893,12899,12907,12911,12917,12919,12923,12941,12953,12959,12967,12973,12979,12983,13001,13003,13007,13009,13033,13037,13043,13049,13063,13093,13099,13103,13109,13121,13127,13147,13151,13159,13163,13171,13177,13183,13187,13217,13219,13229,13241,13249,13259,13267,13291,13297,13309,13313,13327,13331,13337,13339,13367,13381,13397,13399,13411,13417,13421,13441,13451,13457,13463,13469,13477,13487,13499,13513,13523,13537,13553,13567,13577,13591,13597,13613,13619,13627,13633,13649,13669,13679,13681,13687,13691,13693,13697,13709,13711,13721,13723,13729,13751,13757,13759,13763,13781,13789,13799,13807,13829,13831,13841,13859,13873,13877,13879,13883,13901,13903,13907,13913,13921,13931,13933,13963,13967,13997,13999,14009,14011,14029,14033,14051,14057,14071,14081,14083,14087,14107,14143,14149,14153,14159,14173,14177,14197,14207,14221,14243,14249,14251,14281,14293,14303,14321,14323,14327,14341,14347,14369,14387,14389,14401,14407,14411,14419,14423,14431,14437,14447,14449,14461,14479,14489,14503,14519,14533,14537,14543,14549,14551,14557,14561,14563,14591,14593,14621,14627,14629,14633,14639,14653,14657,14669,14683,14699,14713,14717,14723,14731,14737,14741,14747,14753,14759,14767,14771,14779,14783,14797,14813,14821,14827,14831,14843,14851,14867,14869,14879,14887,14891,14897,14923,14929,14939,14947,14951,14957,14969,14983,15013,15017,15031,15053,15061,15073,15077,15083,15091,15101,15107,15121,15131,15137,15139,15149,15161,15173,15187,15193,15199,15217,15227,15233,15241,15259,15263,15269,15271,15277,15287,15289,15299,15307,15313,15319,15329,15331,15349,15359,15361,15373,15377,15383,15391,15401,15413,15427,15439,15443,15451,15461,15467,15473,15493,15497,15511,15527,15541,15551,15559,15569,15581,15583,15601,15607,15619,15629,15641,15643,15647,15649,15661,15667,15671,15679,15683,15727,15731,15733,15737,15739,15749,15761,15767,15773,15787,15791,15797,15803,15809,15817,15823,15859,15877,15881,15887,15889,15901,15907,15913,15919,15923,15937,15959,15971,15973,15991,16001,16007,16033,16057,16061,16063,16067,16069,16073,16087,16091,16097,16103,16111,16127,16139,16141,16183,16187,16189,16193,16217,16223,16229,16231,16249,16253,16267,16273,16301,16319,16333,16339,16349,16361,16363,16369,16381,16411,16417,16421,16427,16433,16447,16451,16453,16477,16481,16487,16493,16519,16529,16547,16553,16561,16567,16573,16603,16607,16619,16631,16633,16649,16651,16657,16661,16673,16691,16693,16699,16703,16729,16741,16747,16759,16763,16787,16811,16823,16829,16831,16843,16871,16879,16883,16889,16901,16903,16921,16927,16931,16937,16943,16963,16979,16981,16987,16993,17011,17021,17027,17029,17033,17041,17047,17053,17077,17093,17099,17107,17117,17123,17137,17159,17167,17183,17189,17191,17203,17207,17209,17231,17239,17257,17291,17293,17299,17317,17321,17327,17333,17341,17351,17359,17377,17383,17387,17389,17393,17401,17417,17419,17431,17443,17449,17467,17471,17477,17483,17489,17491,17497,17509,17519,17539,17551,17569,17573,17579,17581,17597,17599,17609,17623,17627,17657,17659,17669,17681,17683,17707,17713,17729,17737,17747,17749,17761,17783,17789,17791,17807,17827,17837,17839,17851,17863,17881,17891,17903,17909,17911,17921,17923,17929,17939,17957,17959,17971,17977,17981,17987,17989,18013,18041,18043,18047,18049,18059,18061,18077,18089,18097,18119,18121,18127,18131,18133,18143,18149,18169,18181,18191,18199,18211,18217,18223,18229,18233,18251,18253,18257,18269,18287,18289,18301,18307,18311,18313,18329,18341,18353,18367,18371,18379,18397,18401,18413,18427,18433,18439,18443,18451,18457,18461,18481,18493,18503,18517,18521,18523,18539,18541,18553,18583,18587,18593,18617,18637,18661,18671,18679,18691,18701,18713,18719,18731,18743,18749,18757,18773,18787,18793,18797,18803,18839,18859,18869,18899,18911,18913,18917,18919,18947,18959,18973,18979,19001,19009,19013,19031,19037,19051,19069,19073,19079,19081,19087,19121,19139,19141,19157,19163,19181,19183,19207,19211,19213,19219,19231,19237,19249,19259,19267,19273,19289,19301,19309,19319,19333,19373,19379,19381,19387,19391,19403,19417,19421,19423,19427,19429,19433,19441,19447,19457,19463,19469,19471,19477,19483,19489,19501,19507,19531,19541,19543,19553,19559,19571,19577,19583,19597,19603,19609,19661,19681,19687,19697,19699,19709,19717,19727,19739,19751,19753,19759,19763,19777,19793,19801,19813,19819,19841,19843,19853,19861,19867,19889,19891,19913,19919,19927,19937,19949,19961,19963,19973,19979,19991,19993,19997,20011,20021,20023,20029,20047,20051,20063,20071,20089,20101,20107,20113,20117,20123,20129,20143,20147,20149,20161,20173,20177,20183,20201,20219,20231,20233,20249,20261,20269,20287,20297,20323,20327,20333,20341,20347,20353,20357,20359,20369,20389,20393,20399,20407,20411,20431,20441,20443,20477,20479,20483,20507,20509,20521,20533,20543,20549,20551,20563,20593,20599,20611,20627,20639,20641,20663,20681,20693,20707,20717,20719,20731,20743,20747,20749,20753,20759,20771,20773,20789,20807,20809,20849,20857,20873,20879,20887,20897,20899,20903,20921,20929,20939,20947,20959,20963,20981,20983,21001,21011,21013,21017,21019,21023,21031,21059,21061,21067,21089,21101,21107,21121,21139,21143,21149,21157,21163,21169,21179,21187,21191,21193,21211,21221,21227,21247,21269,21277,21283,21313,21317,21319,21323,21341,21347,21377,21379,21383,21391,21397,21401,21407,21419,21433,21467,21481,21487,21491,21493,21499,21503,21517,21521,21523,21529,21557,21559,21563,21569,21577,21587,21589,21599,21601,21611,21613,21617,21647,21649,21661,21673,21683,21701,21713,21727,21737,21739,21751,21757,21767,21773,21787,21799,21803,21817,21821,21839,21841,21851,21859,21863,21871,21881,21893,21911,21929,21937,21943,21961,21977,21991,21997,22003,22013,22027,22031,22037,22039,22051,22063,22067,22073,22079,22091,22093,22109,22111,22123,22129,22133,22147,22153,22157,22159,22171,22189,22193,22229,22247,22259,22271,22273,22277,22279,22283,22291,22303,22307,22343,22349,22367,22369,22381,22391,22397,22409,22433,22441,22447,22453,22469,22481,22483,22501,22511,22531,22541,22543,22549,22567,22571,22573,22613,22619,22621,22637,22639,22643,22651,22669,22679,22691,22697,22699,22709,22717,22721,22727,22739,22741,22751,22769,22777,22783,22787,22807,22811,22817,22853,22859,22861,22871,22877,22901,22907,22921,22937,22943,22961,22963,22973,22993,23003,23011,23017,23021,23027,23029,23039,23041,23053,23057,23059,23063,23071,23081,23087,23099,23117,23131,23143,23159,23167,23173,23189,23197,23201,23203,23209,23227,23251,23269,23279,23291,23293,23297,23311,23321,23327,23333,23339,23357,23369,23371,23399,23417,23431,23447,23459,23473,23497,23509,23531,23537,23539,23549,23557,23561,23563,23567,23581,23593,23599,23603,23609,23623,23627,23629,23633,23663,23669,23671,23677,23687,23689,23719,23741,23743,23747,23753,23761,23767,23773,23789,23801,23813,23819,23827,23831,23833,23857,23869,23873,23879,23887,23893,23899,23909,23911,23917,23929,23957,23971,23977,23981,23993,24001,24007,24019,24023,24029,24043,24049,24061,24071,24077,24083,24091,24097,24103,24107,24109,24113,24121,24133,24137,24151,24169,24179,24181,24197,24203,24223,24229,24239,24247,24251,24281,24317,24329,24337,24359,24371,24373,24379,24391,24407,24413,24419,24421,24439,24443,24469,24473,24481,24499,24509,24517,24527,24533,24547,24551,24571,24593,24611,24623,24631,24659,24671,24677,24683,24691,24697,24709,24733,24749,24763,24767,24781,24793,24799,24809,24821,24841,24847,24851,24859,24877,24889,24907,24917,24919,24923,24943,24953,24967,24971,24977,24979,24989,25013,25031,25033,25037,25057,25073,25087,25097,25111,25117,25121,25127,25147,25153,25163,25169,25171,25183,25189,25219,25229,25237,25243,25247,25253,25261,25301,25303,25307,25309,25321,25339,25343,25349,25357,25367,25373,25391,25409,25411,25423,25439,25447,25453,25457,25463,25469,25471,25523,25537,25541,25561,25577,25579,25583,25589,25601,25603,25609,25621,25633,25639,25643,25657,25667,25673,25679,25693,25703,25717,25733,25741,25747,25759,25763,25771,25793,25799,25801,25819,25841,25847,25849,25867,25873,25889,25903,25913,25919,25931,25933,25939,25943,25951,25969,25981,25997,25999,26003,26017,26021,26029,26041,26053,26083,26099,26107,26111,26113,26119,26141,26153,26161,26171,26177,26183,26189,26203,26209,26227,26237,26249,26251,26261,26263,26267,26293,26297,26309,26317,26321,26339,26347,26357,26371,26387,26393,26399,26407,26417,26423,26431,26437,26449,26459,26479,26489,26497,26501,26513,26539,26557,26561,26573,26591,26597,26627,26633,26641,26647,26669,26681,26683,26687,26693,26699,26701,26711,26713,26717,26723,26729,26731,26737,26759,26777,26783,26801,26813,26821,26833,26839,26849,26861,26863,26879,26881,26891,26893,26903,26921,26927,26947,26951,26953,26959,26981,26987,26993,27011,27017,27031,27043,27059,27061,27067,27073,27077,27091,27103,27107,27109,27127,27143,27179,27191,27197,27211,27239,27241,27253,27259,27271,27277,27281,27283,27299,27329,27337,27361,27367,27397,27407,27409,27427,27431,27437,27449,27457,27479,27481,27487,27509,27527,27529,27539,27541,27551,27581,27583,27611,27617,27631,27647,27653,27673,27689,27691,27697,27701,27733,27737,27739,27743,27749,27751,27763,27767,27773,27779,27791,27793,27799,27803,27809,27817,27823,27827,27847,27851,27883,27893,27901,27917,27919,27941,27943,27947,27953,27961,27967,27983,27997,28001,28019,28027,28031,28051,28057,28069,28081,28087,28097,28099,28109,28111,28123,28151,28163,28181,28183,28201,28211,28219,28229,28277,28279,28283,28289,28297,28307,28309,28319,28349,28351,28387,28393,28403,28409,28411,28429,28433,28439,28447,28463,28477,28493,28499,28513,28517,28537,28541,28547,28549,28559,28571,28573,28579,28591,28597,28603,28607,28619,28621,28627,28631,28643,28649,28657,28661,28663,28669,28687,28697,28703,28711,28723,28729,28751,28753,28759,28771,28789,28793,28807,28813,28817,28837,28843,28859,28867,28871,28879,28901,28909,28921,28927,28933,28949,28961,28979,29009,29017,29021,29023,29027,29033,29059,29063,29077,29101,29123,29129,29131,29137,29147,29153,29167,29173,29179,29191,29201,29207,29209,29221,29231,29243,29251,29269,29287,29297,29303,29311,29327,29333,29339,29347,29363,29383,29387,29389,29399,29401,29411,29423,29429,29437,29443,29453,29473,29483,29501,29527,29531,29537,29567,29569,29573,29581,29587,29599,29611,29629,29633,29641,29663,29669,29671,29683,29717,29723,29741,29753,29759,29761,29789,29803,29819,29833,29837,29851,29863,29867,29873,29879,29881,29917,29921,29927,29947,29959,29983,29989,30011,30013,30029,30047,30059,30071,30089,30091,30097,30103,30109,30113,30119,30133,30137,30139,30161,30169,30181,30187,30197,30203,30211,30223,30241,30253,30259,30269,30271,30293,30307,30313,30319,30323,30341,30347,30367,30389,30391,30403,30427,30431,30449,30467,30469,30491,30493,30497,30509,30517,30529,30539,30553,30557,30559,30577,30593,30631,30637,30643,30649,30661,30671,30677,30689,30697,30703,30707,30713,30727,30757,30763,30773,30781,30803,30809,30817,30829,30839,30841,30851,30853,30859,30869,30871,30881,30893,30911,30931,30937,30941,30949,30971,30977,30983,31013,31019,31033,31039,31051,31063,31069,31079,31081,31091,31121,31123,31139,31147,31151,31153,31159,31177,31181,31183,31189,31193,31219,31223,31231,31237,31247,31249,31253,31259,31267,31271,31277,31307,31319,31321,31327,31333,31337,31357,31379,31387,31391,31393,31397,31469,31477,31481,31489,31511,31513,31517,31531,31541,31543,31547,31567,31573,31583,31601,31607,31627,31643,31649,31657,31663,31667,31687,31699,31721,31723,31727,31729,31741,31751,31769,31771,31793,31799,31817,31847,31849,31859,31873,31883,31891,31907,31957,31963,31973,31981,31991,32003,32009,32027,32029,32051,32057,32059,32063,32069,32077,32083,32089,32099,32117,32119,32141,32143,32159,32173,32183,32189,32191,32203,32213,32233,32237,32251,32257,32261,32297,32299,32303,32309,32321,32323,32327,32341,32353,32359,32363,32369,32371,32377,32381,32401,32411,32413,32423,32429,32441,32443,32467,32479,32491,32497,32503,32507,32531,32533,32537,32561,32563,32569,32573,32579,32587,32603,32609,32611,32621,32633,32647,32653,32687,32693,32707,32713,32717,32719,32749,32771,32779,32783,32789,32797,32801,32803,32831,32833,32839,32843,32869,32887,32909,32911,32917,32933,32939,32941,32957,32969,32971,32983,32987,32993,32999,33013,33023,33029,33037,33049,33053,33071,33073,33083,33091,33107,33113,33119,33149,33151,33161,33179,33181,33191,33199,33203,33211,33223,33247,33287,33289,33301,33311,33317,33329,33331,33343,33347,33349,33353,33359,33377,33391,33403,33409,33413,33427,33457,33461,33469,33479,33487,33493,33503,33521,33529,33533,33547,33563,33569,33577,33581,33587,33589,33599,33601,33613,33617,33619,33623,33629,33637,33641,33647,33679,33703,33713,33721,33739,33749,33751,33757,33767,33769,33773,33791,33797,33809,33811,33827,33829,33851,33857,33863,33871,33889,33893,33911,33923,33931,33937,33941,33961,33967,33997,34019,34031,34033,34039,34057,34061,34123,34127,34129,34141,34147,34157,34159,34171,34183,34211,34213,34217,34231,34253,34259,34261,34267,34273,34283,34297,34301,34303,34313,34319,34327,34337,34351,34361,34367,34369,34381,34403,34421,34429,34439,34457,34469,34471,34483,34487,34499,34501,34511,34513,34519,34537,34543,34549,34583,34589,34591,34603,34607,34613,34631,34649,34651,34667,34673,34679,34687,34693,34703,34721,34729,34739,34747,34757,34759,34763,34781,34807,34819,34841,34843,34847,34849,34871,34877,34883,34897,34913,34919,34939,34949,34961,34963,34981,35023,35027,35051,35053,35059,35069,35081,35083,35089,35099,35107,35111,35117,35129,35141,35149,35153,35159,35171,35201,35221,35227,35251,35257,35267,35279,35281,35291,35311,35317,35323,35327,35339,35353,35363,35381,35393,35401,35407,35419,35423,35437,35447,35449,35461,35491,35507,35509,35521,35527,35531,35533,35537,35543,35569,35573,35591,35593,35597,35603,35617,35671,35677,35729,35731,35747,35753,35759,35771,35797,35801,35803,35809,35831,35837,35839,35851,35863,35869,35879,35897,35899,35911,35923,35933,35951,35963,35969,35977,35983,35993,35999,36007,36011,36013,36017,36037,36061,36067,36073,36083,36097,36107,36109,36131,36137,36151,36161,36187,36191,36209,36217,36229,36241,36251,36263,36269,36277,36293,36299,36307,36313,36319,36341,36343,36353,36373,36383,36389,36433,36451,36457,36467,36469,36473,36479,36493,36497,36523,36527,36529,36541,36551,36559,36563,36571,36583,36587,36599,36607,36629,36637,36643,36653,36671,36677,36683,36691,36697,36709,36713,36721,36739,36749,36761,36767,36779,36781,36787,36791,36793,36809,36821,36833,36847,36857,36871,36877,36887,36899,36901,36913,36919,36923,36929,36931,36943,36947,36973,36979,36997,37003,37013,37019,37021,37039,37049,37057,37061,37087,37097,37117,37123,37139,37159,37171,37181,37189,37199,37201,37217,37223,37243,37253,37273,37277,37307,37309,37313,37321,37337,37339,37357,37361,37363,37369,37379,37397,37409,37423,37441,37447,37463,37483,37489,37493,37501,37507,37511,37517,37529,37537,37547,37549,37561,37567,37571,37573,37579,37589,37591,37607,37619,37633,37643,37649,37657,37663,37691,37693,37699,37717,37747,37781,37783,37799,37811,37813,37831,37847,37853,37861,37871,37879,37889,37897,37907,37951,37957,37963,37967,37987,37991,37993,37997,38011,38039,38047,38053,38069,38083,38113,38119,38149,38153,38167,38177,38183,38189,38197,38201,38219,38231,38237,38239,38261,38273,38281,38287,38299,38303,38317,38321,38327,38329,38333,38351,38371,38377,38393,38431,38447,38449,38453,38459,38461,38501,38543,38557,38561,38567,38569,38593,38603,38609,38611,38629,38639,38651,38653,38669,38671,38677,38693,38699,38707,38711,38713,38723,38729,38737,38747,38749,38767,38783,38791,38803,38821,38833,38839,38851,38861,38867,38873,38891,38903,38917,38921,38923,38933,38953,38959,38971,38977,38993,39019,39023,39041,39043,39047,39079,39089,39097,39103,39107,39113,39119,39133,39139,39157,39161,39163,39181,39191,39199,39209,39217,39227,39229,39233,39239,39241,39251,39293,39301,39313,39317,39323,39341,39343,39359,39367,39371,39373,39383,39397,39409,39419,39439,39443,39451,39461,39499,39503,39509,39511,39521,39541,39551,39563,39569,39581,39607,39619,39623,39631,39659,39667,39671,39679,39703,39709,39719,39727,39733,39749,39761,39769,39779,39791,39799,39821,39827,39829,39839,39841,39847,39857,39863,39869,39877,39883,39887,39901,39929,39937,39953,39971,39979,39983,39989,40009,40013,40031,40037,40039,40063,40087,40093,40099,40111,40123,40127,40129,40151,40153,40163,40169,40177,40189,40193,40213,40231,40237,40241,40253,40277,40283,40289,40343,40351,40357,40361,40387,40423,40427,40429,40433,40459,40471,40483,40487,40493,40499,40507,40519,40529,40531,40543,40559,40577,40583,40591,40597,40609,40627,40637,40639,40693,40697,40699,40709,40739,40751,40759,40763,40771,40787,40801,40813,40819,40823,40829,40841,40847,40849,40853,40867,40879,40883,40897,40903,40927,40933,40939,40949,40961,40973,40993,41011,41017,41023,41039,41047,41051,41057,41077,41081,41113,41117,41131,41141,41143,41149,41161,41177,41179,41183,41189,41201,41203,41213,41221,41227,41231,41233,41243,41257,41263,41269,41281,41299,41333,41341,41351,41357,41381,41387,41389,41399,41411,41413,41443,41453,41467,41479,41491,41507,41513,41519,41521,41539,41543,41549,41579,41593,41597,41603,41609,41611,41617,41621,41627,41641,41647,41651,41659,41669,41681,41687,41719,41729,41737,41759,41761,41771,41777,41801,41809,41813,41843,41849,41851,41863,41879,41887,41893,41897,41903,41911,41927,41941,41947,41953,41957,41959,41969,41981,41983,41999,42013,42017,42019,42023,42043,42061,42071,42073,42083,42089,42101,42131,42139,42157,42169,42179,42181,42187,42193,42197,42209,42221,42223,42227,42239,42257,42281,42283,42293,42299,42307,42323,42331,42337,42349,42359,42373,42379,42391,42397,42403,42407,42409,42433,42437,42443,42451,42457,42461,42463,42467,42473,42487,42491,42499,42509,42533,42557,42569,42571,42577,42589,42611,42641,42643,42649,42667,42677,42683,42689,42697,42701,42703,42709,42719,42727,42737,42743,42751,42767,42773,42787,42793,42797,42821,42829,42839,42841,42853,42859,42863,42899,42901,42923,42929,42937,42943,42953,42961,42967,42979,42989,43003,43013,43019,43037,43049,43051,43063,43067,43093,43103,43117,43133,43151,43159,43177,43189,43201,43207,43223,43237,43261,43271,43283,43291,43313,43319,43321,43331,43391,43397,43399,43403,43411,43427,43441,43451,43457,43481,43487,43499,43517,43541,43543,43573,43577,43579,43591,43597,43607,43609,43613,43627,43633,43649,43651,43661,43669,43691,43711,43717,43721,43753,43759,43777,43781,43783,43787,43789,43793,43801,43853,43867,43889,43891,43913,43933,43943,43951,43961,43963,43969,43973,43987,43991,43997,44017,44021,44027,44029,44041,44053,44059,44071,44087,44089,44101,44111,44119,44123,44129,44131,44159,44171,44179,44189,44201,44203,44207,44221,44249,44257,44263,44267,44269,44273,44279,44281,44293,44351,44357,44371,44381,44383,44389,44417,44449,44453,44483,44491,44497,44501,44507,44519,44531,44533,44537,44543,44549,44563,44579,44587,44617,44621,44623,44633,44641,44647,44651,44657,44683,44687,44699,44701,44711,44729,44741,44753,44771,44773,44777,44789,44797,44809,44819,44839,44843,44851,44867,44879,44887,44893,44909,44917,44927,44939,44953,44959,44963,44971,44983,44987,45007,45013,45053,45061,45077,45083,45119,45121,45127,45131,45137,45139,45161,45179,45181,45191,45197,45233,45247,45259,45263,45281,45289,45293,45307,45317,45319,45329,45337,45341,45343,45361,45377,45389,45403,45413,45427,45433,45439,45481,45491,45497,45503,45523,45533,45541,45553,45557,45569,45587,45589,45599,45613,45631,45641,45659,45667,45673,45677,45691,45697,45707,45737,45751,45757,45763,45767,45779,45817,45821,45823,45827,45833,45841,45853,45863,45869,45887,45893,45943,45949,45953,45959,45971,45979,45989,46021,46027,46049,46051,46061,46073,46091,46093,46099,46103,46133,46141,46147,46153,46171,46181,46183,46187,46199,46219,46229,46237,46261,46271,46273,46279,46301,46307,46309,46327,46337,46349,46351,46381,46399,46411,46439,46441,46447,46451,46457,46471,46477,46489,46499,46507,46511,46523,46549,46559,46567,46573,46589,46591,46601,46619,46633,46639,46643,46649,46663,46679,46681,46687,46691,46703,46723,46727,46747,46751,46757,46769,46771,46807,46811,46817,46819,46829,46831,46853,46861,46867,46877,46889,46901,46919,46933,46957,46993,46997,47017,47041,47051,47057,47059,47087,47093,47111,47119,47123,47129,47137,47143,47147,47149,47161,47189,47207,47221,47237,47251,47269,47279,47287,47293,47297,47303,47309,47317,47339,47351,47353,47363,47381,47387,47389,47407,47417,47419,47431,47441,47459,47491,47497,47501,47507,47513,47521,47527,47533,47543,47563,47569,47581,47591,47599,47609,47623,47629,47639,47653,47657,47659,47681,47699,47701,47711,47713,47717,47737,47741,47743,47777,47779,47791,47797,47807,47809,47819,47837,47843,47857,47869,47881,47903,47911,47917,47933,47939,47947,47951,47963,47969,47977,47981,48017,48023,48029,48049,48073,48079,48091,48109,48119,48121,48131,48157,48163,48179,48187,48193,48197,48221,48239,48247,48259,48271,48281,48299,48311,48313,48337,48341,48353,48371,48383,48397,48407,48409,48413,48437,48449,48463,48473,48479,48481,48487,48491,48497,48523,48527,48533,48539,48541,48563,48571,48589,48593,48611,48619,48623,48647,48649,48661,48673,48677,48679,48731,48733,48751,48757,48761,48767,48779,48781,48787,48799,48809,48817,48821,48823,48847,48857,48859,48869,48871,48883,48889,48907,48947,48953,48973,48989,48991,49003,49009,49019,49031,49033,49037,49043,49057,49069,49081,49103,49109,49117,49121,49123,49139,49157,49169,49171,49177,49193,49199,49201,49207,49211,49223,49253,49261,49277,49279,49297,49307,49331,49333,49339,49363,49367,49369,49391,49393,49409,49411,49417,49429,49433,49451,49459,49463,49477,49481,49499,49523,49529,49531,49537,49547,49549,49559,49597,49603,49613,49627,49633,49639,49663,49667,49669,49681,49697,49711,49727,49739,49741,49747,49757,49783,49787,49789,49801,49807,49811,49823,49831,49843,49853,49871,49877,49891,49919,49921,49927,49937,49939,49943,49957,49991,49993,49999,50021,50023,50033,50047,50051,50053,50069,50077,50087,50093,50101,50111,50119,50123,50129,50131,50147,50153,50159,50177,50207,50221,50227,50231,50261,50263,50273,50287,50291,50311,50321,50329,50333,50341,50359,50363,50377,50383,50387,50411,50417,50423,50441,50459,50461,50497,50503,50513,50527,50539,50543,50549,50551,50581,50587,50591,50593,50599,50627,50647,50651,50671,50683,50707,50723,50741,50753,50767,50773,50777,50789,50821,50833,50839,50849,50857,50867,50873,50891,50893,50909,50923,50929,50951,50957,50969,50971,50989,50993,51001,51031,51043,51047,51059,51061,51071,51109,51131,51133,51137,51151,51157,51169,51193,51197,51199,51203,51217,51229,51239,51241,51257,51263,51283,51287,51307,51329,51341,51343,51347,51349,51361,51383,51407,51413,51419,51421,51427,51431,51437,51439,51449,51461,51473,51479,51481,51487,51503,51511,51517,51521,51539,51551,51563,51577,51581,51593,51599,51607,51613,51631,51637,51647,51659,51673,51679,51683,51691,51713,51719,51721,51749,51767,51769,51787,51797,51803,51817,51827,51829,51839,51853,51859,51869,51871,51893,51899,51907,51913,51929,51941,51949,51971,51973,51977,51991,52009,52021,52027,52051,52057,52067,52069,52081,52103,52121,52127,52147,52153,52163,52177,52181,52183,52189,52201,52223,52237,52249,52253,52259,52267,52289,52291,52301,52313,52321,52361,52363,52369,52379,52387,52391,52433,52453,52457,52489,52501,52511,52517,52529,52541,52543,52553,52561,52567,52571,52579,52583,52609,52627,52631,52639,52667,52673,52691,52697,52709,52711,52721,52727,52733,52747,52757,52769,52783,52807,52813,52817,52837,52859,52861,52879,52883,52889,52901,52903,52919,52937,52951,52957,52963,52967,52973,52981,52999,53003,53017,53047,53051,53069,53077,53087,53089,53093,53101,53113,53117,53129,53147,53149,53161,53171,53173,53189,53197,53201,53231,53233,53239,53267,53269,53279,53281,53299,53309,53323,53327,53353,53359,53377,53381,53401,53407,53411,53419,53437,53441,53453,53479,53503,53507,53527,53549,53551,53569,53591,53593,53597,53609,53611,53617,53623,53629,53633,53639,53653,53657,53681,53693,53699,53717,53719,53731,53759,53773,53777,53783,53791,53813,53819,53831,53849,53857,53861,53881,53887,53891,53897,53899,53917,53923,53927,53939,53951,53959,53987,53993,54001,54011,54013,54037,54049,54059,54083,54091,54101,54121,54133,54139,54151,54163,54167,54181,54193,54217,54251,54269,54277,54287,54293,54311,54319,54323,54331,54347,54361,54367,54371,54377,54401,54403,54409,54413,54419,54421,54437,54443,54449,54469,54493,54497,54499,54503,54517,54521,54539,54541,54547,54559,54563,54577,54581,54583,54601,54617,54623,54629,54631,54647,54667,54673,54679,54709,54713,54721,54727,54751,54767,54773,54779,54787,54799,54829,54833,54851,54869,54877,54881,54907,54917,54919,54941,54949,54959,54973,54979,54983,55001,55009,55021,55049,55051,55057,55061,55073,55079,55103,55109,55117,55127,55147,55163,55171,55201,55207,55213,55217,55219,55229,55243,55249,55259,55291,55313,55331,55333,55337,55339,55343,55351,55373,55381,55399,55411,55439,55441,55457,55469,55487,55501,55511,55529,55541,55547,55579,55589,55603,55609,55619,55621,55631,55633,55639,55661,55663,55667,55673,55681,55691,55697,55711,55717,55721,55733,55763,55787,55793,55799,55807,55813,55817,55819,55823,55829,55837,55843,55849,55871,55889,55897,55901,55903,55921,55927,55931,55933,55949,55967,55987,55997,56003,56009,56039,56041,56053,56081,56087,56093,56099,56101,56113,56123,56131,56149,56167,56171,56179,56197,56207,56209,56237,56239,56249,56263,56267,56269,56299,56311,56333,56359,56369,56377,56383,56393,56401,56417,56431,56437,56443,56453,56467,56473,56477,56479,56489,56501,56503,56509,56519,56527,56531,56533,56543,56569,56591,56597,56599,56611,56629,56633,56659,56663,56671,56681,56687,56701,56711,56713,56731,56737,56747,56767,56773,56779,56783,56807,56809,56813,56821,56827,56843,56857,56873,56891,56893,56897,56909,56911,56921,56923,56929,56941,56951,56957,56963,56983,56989,56993,56999,57037,57041,57047,57059,57073,57077,57089,57097,57107,57119,57131,57139,57143,57149,57163,57173,57179,57191,57193,57203,57221,57223,57241,57251,57259,57269,57271,57283,57287,57301,57329,57331,57347,57349,57367,57373,57383,57389,57397,57413,57427,57457,57467,57487,57493,57503,57527,57529,57557,57559,57571,57587,57593,57601,57637,57641,57649,57653,57667,57679,57689,57697,57709,57713,57719,57727,57731,57737,57751,57773,57781,57787,57791,57793,57803,57809,57829,57839,57847,57853,57859,57881,57899,57901,57917,57923,57943,57947,57973,57977,57991,58013,58027,58031,58043,58049,58057,58061,58067,58073,58099,58109,58111,58129,58147,58151,58153,58169,58171,58189,58193,58199,58207,58211,58217,58229,58231,58237,58243,58271,58309,58313,58321,58337,58363,58367,58369,58379,58391,58393,58403,58411,58417,58427,58439,58441,58451,58453,58477,58481,58511,58537,58543,58549,58567,58573,58579,58601,58603,58613,58631,58657,58661,58679,58687,58693,58699,58711,58727,58733,58741,58757,58763,58771,58787,58789,58831,58889,58897,58901,58907,58909,58913,58921,58937,58943,58963,58967,58979,58991,58997,59009,59011,59021,59023,59029,59051,59053,59063,59069,59077,59083,59093,59107,59113,59119,59123,59141,59149,59159,59167,59183,59197,59207,59209,59219,59221,59233,59239,59243,59263,59273,59281,59333,59341,59351,59357,59359,59369,59377,59387,59393,59399,59407,59417,59419,59441,59443,59447,59453,59467,59471,59473,59497,59509,59513,59539,59557,59561,59567,59581,59611,59617,59621,59627,59629,59651,59659,59663,59669,59671,59693,59699,59707,59723,59729,59743,59747,59753,59771,59779,59791,59797,59809,59833,59863,59879,59887,59921,59929,59951,59957,59971,59981,59999,60013,60017,60029,60037,60041,60077,60083,60089,60091,60101,60103,60107,60127,60133,60139,60149,60161,60167,60169,60209,60217,60223,60251,60257,60259,60271,60289,60293,60317,60331,60337,60343,60353,60373,60383,60397,60413,60427,60443,60449,60457,60493,60497,60509,60521,60527,60539,60589,60601,60607,60611,60617,60623,60631,60637,60647,60649,60659,60661,60679,60689,60703,60719,60727,60733,60737,60757,60761,60763,60773,60779,60793,60811,60821,60859,60869,60887,60889,60899,60901,60913,60917,60919,60923,60937,60943,60953,60961,61001,61007,61027,61031,61043,61051,61057,61091,61099,61121,61129,61141,61151,61153,61169,61211,61223,61231,61253,61261,61283,61291,61297,61331,61333,61339,61343,61357,61363,61379,61381,61403,61409,61417,61441,61463,61469,61471,61483,61487,61493,61507,61511,61519,61543,61547,61553,61559,61561,61583,61603,61609,61613,61627,61631,61637,61643,61651,61657,61667,61673,61681,61687,61703,61717,61723,61729,61751,61757,61781,61813,61819,61837,61843,61861,61871,61879,61909,61927,61933,61949,61961,61967,61979,61981,61987,61991,62003,62011,62017,62039,62047,62053,62057,62071,62081,62099,62119,62129,62131,62137,62141,62143,62171,62189,62191,62201,62207,62213,62219,62233,62273,62297,62299,62303,62311,62323,62327,62347,62351,62383,62401,62417,62423,62459,62467,62473,62477,62483,62497,62501,62507,62533,62539,62549,62563,62581,62591,62597,62603,62617,62627,62633,62639,62653,62659,62683,62687,62701,62723,62731,62743,62753,62761,62773,62791,62801,62819,62827,62851,62861,62869,62873,62897,62903,62921,62927,62929,62939,62969,62971,62981,62983,62987,62989,63029,63031,63059,63067,63073,63079,63097,63103,63113,63127,63131,63149,63179,63197,63199,63211,63241,63247,63277,63281,63299,63311,63313,63317,63331,63337,63347,63353,63361,63367,63377,63389,63391,63397,63409,63419,63421,63439,63443,63463,63467,63473,63487,63493,63499,63521,63527,63533,63541,63559,63577,63587,63589,63599,63601,63607,63611,63617,63629,63647,63649,63659,63667,63671,63689,63691,63697,63703,63709,63719,63727,63737,63743,63761,63773,63781,63793,63799,63803,63809,63823,63839,63841,63853,63857,63863,63901,63907,63913,63929,63949,63977,63997,64007,64013,64019,64033,64037,64063,64067,64081,64091,64109,64123,64151,64153,64157,64171,64187,64189,64217,64223,64231,64237,64271,64279,64283,64301,64303,64319,64327,64333,64373,64381,64399,64403,64433,64439,64451,64453,64483,64489,64499,64513,64553,64567,64577,64579,64591,64601,64609,64613,64621,64627,64633,64661,64663,64667,64679,64693,64709,64717,64747,64763,64781,64783,64793,64811,64817,64849,64853,64871,64877,64879,64891,64901,64919,64921,64927,64937,64951,64969,64997,65003,65011,65027,65029,65033,65053,65063,65071,65089,65099,65101,65111,65119,65123,65129,65141,65147,65167,65171,65173,65179,65183,65203,65213,65239,65257,65267,65269,65287,65293,65309,65323,65327,65353,65357,65371,65381,65393,65407,65413,65419,65423,65437,65447,65449,65479,65497,65519,65521,65537,65539,65543,65551,65557,65563,65579,65581,65587,65599,65609,65617,65629,65633,65647,65651,65657,65677,65687,65699,65701,65707,65713,65717,65719,65729,65731,65761,65777,65789,65809,65827,65831,65837,65839,65843,65851,65867,65881,65899,65921,65927,65929,65951,65957,65963,65981,65983,65993,66029,66037,66041,66047,66067,66071,66083,66089,66103,66107,66109,66137,66161,66169,66173,66179,66191,66221,66239,66271,66293,66301,66337,66343,66347,66359,66361,66373,66377,66383,66403,66413,66431,66449,66457,66463,66467,66491,66499,66509,66523,66529,66533,66541,66553,66569,66571,66587,66593,66601,66617,66629,66643,66653,66683,66697,66701,66713,66721,66733,66739,66749,66751,66763,66791,66797,66809,66821,66841,66851,66853,66863,66877,66883,66889,66919,66923,66931,66943,66947,66949,66959,66973,66977,67003,67021,67033,67043,67049,67057,67061,67073,67079,67103,67121,67129,67139,67141,67153,67157,67169,67181,67187,67189,67211,67213,67217,67219,67231,67247,67261,67271,67273,67289,67307,67339,67343,67349,67369,67391,67399,67409,67411,67421,67427,67429,67433,67447,67453,67477,67481,67489,67493,67499,67511,67523,67531,67537,67547,67559,67567,67577,67579,67589,67601,67607,67619,67631,67651,67679,67699,67709,67723,67733,67741,67751,67757,67759,67763,67777,67783,67789,67801,67807,67819,67829,67843,67853,67867,67883,67891,67901,67927,67931,67933,67939,67943,67957,67961,67967,67979,67987,67993,68023,68041,68053,68059,68071,68087,68099,68111,68113,68141,68147,68161,68171,68207,68209,68213,68219,68227,68239,68261,68279,68281,68311,68329,68351,68371,68389,68399,68437,68443,68447,68449,68473,68477,68483,68489,68491,68501,68507,68521,68531,68539,68543,68567,68581,68597,68611,68633,68639,68659,68669,68683,68687,68699,68711,68713,68729,68737,68743,68749,68767,68771,68777,68791,68813,68819,68821,68863,68879,68881,68891,68897,68899,68903,68909,68917,68927,68947,68963,68993,69001,69011,69019,69029,69031,69061,69067,69073,69109,69119,69127,69143,69149,69151,69163,69191,69193,69197,69203,69221,69233,69239,69247,69257,69259,69263,69313,69317,69337,69341,69371,69379,69383,69389,69401,69403,69427,69431,69439,69457,69463,69467,69473,69481,69491,69493,69497,69499,69539,69557,69593,69623,69653,69661,69677,69691,69697,69709,69737,69739,69761,69763,69767,69779,69809,69821,69827,69829,69833,69847,69857,69859,69877,69899,69911,69929,69931,69941,69959,69991,69997,70001,70003,70009,70019,70039,70051,70061,70067,70079,70099,70111,70117,70121,70123,70139,70141,70157,70163,70177,70181,70183,70199,70201,70207,70223,70229,70237,70241,70249,70271,70289,70297,70309,70313,70321,70327,70351,70373,70379,70381,70393,70423,70429,70439,70451,70457,70459,70481,70487,70489,70501,70507,70529,70537,70549,70571,70573,70583,70589,70607,70619,70621,70627,70639,70657,70663,70667,70687,70709,70717,70729,70753,70769,70783,70793,70823,70841,70843,70849,70853,70867,70877,70879,70891,70901,70913,70919,70921,70937,70949,70951,70957,70969,70979,70981,70991,70997,70999,71011,71023,71039,71059,71069,71081,71089,71119,71129,71143,71147,71153,71161,71167,71171,71191,71209,71233,71237,71249,71257,71261,71263,71287,71293,71317,71327,71329,71333,71339,71341,71347,71353,71359,71363,71387,71389,71399,71411,71413,71419,71429,71437,71443,71453,71471,71473,71479,71483,71503,71527,71537,71549,71551,71563,71569,71593,71597,71633,71647,71663,71671,71693,71699,71707,71711,71713,71719,71741,71761,71777,71789,71807,71809,71821,71837,71843,71849,71861,71867,71879,71881,71887,71899,71909,71917,71933,71941,71947,71963,71971,71983,71987,71993,71999,72019,72031,72043,72047,72053,72073,72077,72089,72091,72101,72103,72109,72139,72161,72167,72169,72173,72211,72221,72223,72227,72229,72251,72253,72269,72271,72277,72287,72307,72313,72337,72341,72353,72367,72379,72383,72421,72431,72461,72467,72469,72481,72493,72497,72503,72533,72547,72551,72559,72577,72613,72617,72623,72643,72647,72649,72661,72671,72673,72679,72689,72701,72707,72719,72727,72733,72739,72763,72767,72797,72817,72823,72859,72869,72871,72883,72889,72893,72901,72907,72911,72923,72931,72937,72949,72953,72959,72973,72977,72997,73009,73013,73019,73037,73039,73043,73061,73063,73079,73091,73121,73127,73133,73141,73181,73189,73237,73243,73259,73277,73291,73303,73309,73327,73331,73351,73361,73363,73369,73379,73387,73417,73421,73433,73453,73459,73471,73477,73483,73517,73523,73529,73547,73553,73561,73571,73583,73589,73597,73607,73609,73613,73637,73643,73651,73673,73679,73681,73693,73699,73709,73721,73727,73751,73757,73771,73783,73819,73823,73847,73849,73859,73867,73877,73883,73897,73907,73939,73943,73951,73961,73973,73999,74017,74021,74027,74047,74051,74071,74077,74093,74099,74101,74131,74143,74149,74159,74161,74167,74177,74189,74197,74201,74203,74209,74219,74231,74257,74279,74287,74293,74297,74311,74317,74323,74353,74357,74363,74377,74381,74383,74411,74413,74419,74441,74449,74453,74471,74489,74507,74509,74521,74527,74531,74551,74561,74567,74573,74587,74597,74609,74611,74623,74653,74687,74699,74707,74713,74717,74719,74729,74731,74747,74759,74761,74771,74779,74797,74821,74827,74831,74843,74857,74861,74869,74873,74887,74891,74897,74903,74923,74929,74933,74941,74959,75011,75013,75017,75029,75037,75041,75079,75083,75109,75133,75149,75161,75167,75169,75181,75193,75209,75211,75217,75223,75227,75239,75253,75269,75277,75289,75307,75323,75329,75337,75347,75353,75367,75377,75389,75391,75401,75403,75407,75431,75437,75479,75503,75511,75521,75527,75533,75539,75541,75553,75557,75571,75577,75583,75611,75617,75619,75629,75641,75653,75659,75679,75683,75689,75703,75707,75709,75721,75731,75743,75767,75773,75781,75787,75793,75797,75821,75833,75853,75869,75883,75913,75931,75937,75941,75967,75979,75983,75989,75991,75997,76001,76003,76031,76039,76079,76081,76091,76099,76103,76123,76129,76147,76157,76159,76163,76207,76213,76231,76243,76249,76253,76259,76261,76283,76289,76303,76333,76343,76367,76369,76379,76387,76403,76421,76423,76441,76463,76471,76481,76487,76493,76507,76511,76519,76537,76541,76543,76561,76579,76597,76603,76607,76631,76649,76651,76667,76673,76679,76697,76717,76733,76753,76757,76771,76777,76781,76801,76819,76829,76831,76837,76847,76871,76873,76883,76907,76913,76919,76943,76949,76961,76963,76991,77003,77017,77023,77029,77041,77047,77069,77081,77093,77101,77137,77141,77153,77167,77171,77191,77201,77213,77237,77239,77243,77249,77261,77263,77267,77269,77279,77291,77317,77323,77339,77347,77351,77359,77369,77377,77383,77417,77419,77431,77447,77471,77477,77479,77489,77491,77509,77513,77521,77527,77543,77549,77551,77557,77563,77569,77573,77587,77591,77611,77617,77621,77641,77647,77659,77681,77687,77689,77699,77711,77713,77719,77723,77731,77743,77747,77761,77773,77783,77797,77801,77813,77839,77849,77863,77867,77893,77899,77929,77933,77951,77969,77977,77983,77999,78007,78017,78031,78041,78049,78059,78079,78101,78121,78137,78139,78157,78163,78167,78173,78179,78191,78193,78203,78229,78233,78241,78259,78277,78283,78301,78307,78311,78317,78341,78347,78367,78401,78427,78437,78439,78467,78479,78487,78497,78509,78511,78517,78539,78541,78553,78569,78571,78577,78583,78593,78607,78623,78643,78649,78653,78691,78697,78707,78713,78721,78737,78779,78781,78787,78791,78797,78803,78809,78823,78839,78853,78857,78877,78887,78889,78893,78901,78919,78929,78941,78977,78979,78989,79031,79039,79043,79063,79087,79103,79111,79133,79139,79147,79151,79153,79159,79181,79187,79193,79201,79229,79231,79241,79259,79273,79279,79283,79301,79309,79319,79333,79337,79349,79357,79367,79379,79393,79397,79399,79411,79423,79427,79433,79451,79481,79493,79531,79537,79549,79559,79561,79579,79589,79601,79609,79613,79621,79627,79631,79633,79657,79669,79687,79691,79693,79697,79699,79757,79769,79777,79801,79811,79813,79817,79823,79829,79841,79843,79847,79861,79867,79873,79889,79901,79903,79907,79939,79943,79967,79973,79979,79987,79997,79999,80021,80039,80051,80071,80077,80107,80111,80141,80147,80149,80153,80167,80173,80177,80191,80207,80209,80221,80231,80233,80239,80251,80263,80273,80279,80287,80309,80317,80329,80341,80347,80363,80369,80387,80407,80429,80447,80449,80471,80473,80489,80491,80513,80527,80537,80557,80567,80599,80603,80611,80621,80627,80629,80651,80657,80669,80671,80677,80681,80683,80687,80701,80713,80737,80747,80749,80761,80777,80779,80783,80789,80803,80809,80819,80831,80833,80849,80863,80897,80909,80911,80917,80923,80929,80933,80953,80963,80989,81001,81013,81017,81019,81023,81031,81041,81043,81047,81049,81071,81077,81083,81097,81101,81119,81131,81157,81163,81173,81181,81197,81199,81203,81223,81233,81239,81281,81283,81293,81299,81307,81331,81343,81349,81353,81359,81371,81373,81401,81409,81421,81439,81457,81463,81509,81517,81527,81533,81547,81551,81553,81559,81563,81569,81611,81619,81629,81637,81647,81649,81667,81671,81677,81689,81701,81703,81707,81727,81737,81749,81761,81769,81773,81799,81817,81839,81847,81853,81869,81883,81899,81901,81919,81929,81931,81937,81943,81953,81967,81971,81973,82003,82007,82009,82013,82021,82031,82037,82039,82051,82067,82073,82129,82139,82141,82153,82163,82171,82183,82189,82193,82207,82217,82219,82223,82231,82237,82241,82261,82267,82279,82301,82307,82339,82349,82351,82361,82373,82387,82393,82421,82457,82463,82469,82471,82483,82487,82493,82499,82507,82529,82531,82549,82559,82561,82567,82571,82591,82601,82609,82613,82619,82633,82651,82657,82699,82721,82723,82727,82729,82757,82759,82763,82781,82787,82793,82799,82811,82813,82837,82847,82883,82889,82891,82903,82913,82939,82963,82981,82997,83003,83009,83023,83047,83059,83063,83071,83077,83089,83093,83101,83117,83137,83177,83203,83207,83219,83221,83227,83231,83233,83243,83257,83267,83269,83273,83299,83311,83339,83341,83357,83383,83389,83399,83401,83407,83417,83423,83431,83437,83443,83449,83459,83471,83477,83497,83537,83557,83561,83563,83579,83591,83597,83609,83617,83621,83639,83641,83653,83663,83689,83701,83717,83719,83737,83761,83773,83777,83791,83813,83833,83843,83857,83869,83873,83891,83903,83911,83921,83933,83939,83969,83983,83987,84011,84017,84047,84053,84059,84061,84067,84089,84121,84127,84131,84137,84143,84163,84179,84181,84191,84199,84211,84221,84223,84229,84239,84247,84263,84299,84307,84313,84317,84319,84347,84349,84377,84389,84391,84401,84407,84421,84431,84437,84443,84449,84457,84463,84467,84481,84499,84503,84509,84521,84523,84533,84551,84559,84589,84629,84631,84649,84653,84659,84673,84691,84697,84701,84713,84719,84731,84737,84751,84761,84787,84793,84809,84811,84827,84857,84859,84869,84871,84913,84919,84947,84961,84967,84977,84979,84991,85009,85021,85027,85037,85049,85061,85081,85087,85091,85093,85103,85109,85121,85133,85147,85159,85193,85199,85201,85213,85223,85229,85237,85243,85247,85259,85297,85303,85313,85331,85333,85361,85363,85369,85381,85411,85427,85429,85439,85447,85451,85453,85469,85487,85513,85517,85523,85531,85549,85571,85577,85597,85601,85607,85619,85621,85627,85639,85643,85661,85667,85669,85691,85703,85711,85717,85733,85751,85781,85793,85817,85819,85829,85831,85837,85843,85847,85853,85889,85903,85909,85931,85933,85991,85999,86011,86017,86027,86029,86069,86077,86083,86111,86113,86117,86131,86137,86143,86161,86171,86179,86183,86197,86201,86209,86239,86243,86249,86257,86263,86269,86287,86291,86293,86297,86311,86323,86341,86351,86353,86357,86369,86371,86381,86389,86399,86413,86423,86441,86453,86461,86467,86477,86491,86501,86509,86531,86533,86539,86561,86573,86579,86587,86599,86627,86629,86677,86689,86693,86711,86719,86729,86743,86753,86767,86771,86783,86813,86837,86843,86851,86857,86861,86869,86923,86927,86929,86939,86951,86959,86969,86981,86993,87011,87013,87037,87041,87049,87071,87083,87103,87107,87119,87121,87133,87149,87151,87179,87181,87187,87211,87221,87223,87251,87253,87257,87277,87281,87293,87299,87313,87317,87323,87337,87359,87383,87403,87407,87421,87427,87433,87443,87473,87481,87491,87509,87511,87517,87523,87539,87541,87547,87553,87557,87559,87583,87587,87589,87613,87623,87629,87631,87641,87643,87649,87671,87679,87683,87691,87697,87701,87719,87721,87739,87743,87751,87767,87793,87797,87803,87811,87833,87853,87869,87877,87881,87887,87911,87917,87931,87943,87959,87961,87973,87977,87991,88001,88003,88007,88019,88037,88069,88079,88093,88117,88129,88169,88177,88211,88223,88237,88241,88259,88261,88289,88301,88321,88327,88337,88339,88379,88397,88411,88423,88427,88463,88469,88471,88493,88499,88513,88523,88547,88589,88591,88607,88609,88643,88651,88657,88661,88663,88667,88681,88721,88729,88741,88747,88771,88789,88793,88799,88801,88807,88811,88813,88817,88819,88843,88853,88861,88867,88873,88883,88897,88903,88919,88937,88951,88969,88993,88997,89003,89009,89017,89021,89041,89051,89057,89069,89071,89083,89087,89101,89107,89113,89119,89123,89137,89153,89189,89203,89209,89213,89227,89231,89237,89261,89269,89273,89293,89303,89317,89329,89363,89371,89381,89387,89393,89399,89413,89417,89431,89443,89449,89459,89477,89491,89501,89513,89519,89521,89527,89533,89561,89563,89567,89591,89597,89599,89603,89611,89627,89633,89653,89657,89659,89669,89671,89681,89689,89753,89759,89767,89779,89783,89797,89809,89819,89821,89833,89839,89849,89867,89891,89897,89899,89909,89917,89923,89939,89959,89963,89977,89983,89989,90001,90007,90011,90017,90019,90023,90031,90053,90059,90067,90071,90073,90089,90107,90121,90127,90149,90163,90173,90187,90191,90197,90199,90203,90217,90227,90239,90247,90263,90271,90281,90289,90313,90353,90359,90371,90373,90379,90397,90401,90403,90407,90437,90439,90469,90473,90481,90499,90511,90523,90527,90529,90533,90547,90583,90599,90617,90619,90631,90641,90647,90659,90677,90679,90697,90703,90709,90731,90749,90787,90793,90803,90821,90823,90833,90841,90847,90863,90887,90901,90907,90911,90917,90931,90947,90971,90977,90989,90997,91009,91019,91033,91079,91081,91097,91099,91121,91127,91129,91139,91141,91151,91153,91159,91163,91183,91193,91199,91229,91237,91243,91249,91253,91283,91291,91297,91303,91309,91331,91367,91369,91373,91381,91387,91393,91397,91411,91423,91433,91453,91457,91459,91463,91493,91499,91513,91529,91541,91571,91573,91577,91583,91591,91621,91631,91639,91673,91691,91703,91711,91733,91753,91757,91771,91781,91801,91807,91811,91813,91823,91837,91841,91867,91873,91909,91921,91939,91943,91951,91957,91961,91967,91969,91997,92003,92009,92033,92041,92051,92077,92083,92107,92111,92119,92143,92153,92173,92177,92179,92189,92203,92219,92221,92227,92233,92237,92243,92251,92269,92297,92311,92317,92333,92347,92353,92357,92363,92369,92377,92381,92383,92387,92399,92401,92413,92419,92431,92459,92461,92467,92479,92489,92503,92507,92551,92557,92567,92569,92581,92593,92623,92627,92639,92641,92647,92657,92669,92671,92681,92683,92693,92699,92707,92717,92723,92737,92753,92761,92767,92779,92789,92791,92801,92809,92821,92831,92849,92857,92861,92863,92867,92893,92899,92921,92927,92941,92951,92957,92959,92987,92993,93001,93047,93053,93059,93077,93083,93089,93097,93103,93113,93131,93133,93139,93151,93169,93179,93187,93199,93229,93239,93241,93251,93253,93257,93263,93281,93283,93287,93307,93319,93323,93329,93337,93371,93377,93383,93407,93419,93427,93463,93479,93481,93487,93491,93493,93497,93503,93523,93529,93553,93557,93559,93563,93581,93601,93607,93629,93637,93683,93701,93703,93719,93739,93761,93763,93787,93809,93811,93827,93851,93871,93887,93889,93893,93901,93911,93913,93923,93937,93941,93949,93967,93971,93979,93983,93997,94007,94009,94033,94049,94057,94063,94079,94099,94109,94111,94117,94121,94151,94153,94169,94201,94207,94219,94229,94253,94261,94273,94291,94307,94309,94321,94327,94331,94343,94349,94351,94379,94397,94399,94421,94427,94433,94439,94441,94447,94463,94477,94483,94513,94529,94531,94541,94543,94547,94559,94561,94573,94583,94597,94603,94613,94621,94649,94651,94687,94693,94709,94723,94727,94747,94771,94777,94781,94789,94793,94811,94819,94823,94837,94841,94847,94849,94873,94889,94903,94907,94933,94949,94951,94961,94993,94999,95003,95009,95021,95027,95063,95071,95083,95087,95089,95093,95101,95107,95111,95131,95143,95153,95177,95189,95191,95203,95213,95219,95231,95233,95239,95257,95261,95267,95273,95279,95287,95311,95317,95327,95339,95369,95383,95393,95401,95413,95419,95429,95441,95443,95461,95467,95471,95479,95483,95507,95527,95531,95539,95549,95561,95569,95581,95597,95603,95617,95621,95629,95633,95651,95701,95707,95713,95717,95723,95731,95737,95747,95773,95783,95789,95791,95801,95803,95813,95819,95857,95869,95873,95881,95891,95911,95917,95923,95929,95947,95957,95959,95971,95987,95989,96001,96013,96017,96043,96053,96059,96079,96097,96137,96149,96157,96167,96179,96181,96199,96211,96221,96223,96233,96259,96263,96269,96281,96289,96293,96323,96329,96331,96337,96353,96377,96401,96419,96431,96443,96451,96457,96461,96469,96479,96487,96493,96497,96517,96527,96553,96557,96581,96587,96589,96601,96643,96661,96667,96671,96697,96703,96731,96737,96739,96749,96757,96763,96769,96779,96787,96797,96799,96821,96823,96827,96847,96851,96857,96893,96907,96911,96931,96953,96959,96973,96979,96989,96997,97001,97003,97007,97021,97039,97073,97081,97103,97117,97127,97151,97157,97159,97169,97171,97177,97187,97213,97231,97241,97259,97283,97301,97303,97327,97367,97369,97373,97379,97381,97387,97397,97423,97429,97441,97453,97459,97463,97499,97501,97511,97523,97547,97549,97553,97561,97571,97577,97579,97583,97607,97609,97613,97649,97651,97673,97687,97711,97729,97771,97777,97787,97789,97813,97829,97841,97843,97847,97849,97859,97861,97871,97879,97883,97919,97927,97931,97943,97961,97967,97973,97987,98009,98011,98017,98041,98047,98057,98081,98101,98123,98129,98143,98179,98207,98213,98221,98227,98251,98257,98269,98297,98299,98317,98321,98323,98327,98347,98369,98377,98387,98389,98407,98411,98419,98429,98443,98453,98459,98467,98473,98479,98491,98507,98519,98533,98543,98561,98563,98573,98597,98621,98627,98639,98641,98663,98669,98689,98711,98713,98717,98729,98731,98737,98773,98779,98801,98807,98809,98837,98849,98867,98869,98873,98887,98893,98897,98899,98909,98911,98927,98929,98939,98947,98953,98963,98981,98993,98999,99013,99017,99023,99041,99053,99079,99083,99089,99103,99109,99119,99131,99133,99137,99139,99149,99173,99181,99191,99223,99233,99241,99251,99257,99259,99277,99289,99317,99347,99349,99367,99371,99377,99391,99397,99401,99409,99431,99439,99469,99487,99497,99523,99527,99529,99551,99559,99563,99571,99577,99581,99607,99611,99623,99643,99661,99667,99679,99689,99707,99709,99713,99719,99721,99733,99761,99767,99787,99793,99809,99817,99823,99829,99833,99839,99859,99871,99877,99881,99901,99907,99923,99929,99961,99971,99989,99991,100003,100019,100043,100049,100057,100069,100103,100109,100129,100151,100153,100169,100183,100189,100193,100207,100213,100237,100267,100271,100279,100291,100297,100313,100333,100343,100357,100361,100363,100379,100391,100393,100403,100411,100417,100447,100459,100469,100483,100493,100501,100511,100517,100519,100523,100537,100547,100549,100559,100591,100609,100613,100621,100649,100669,100673,100693,100699,100703,100733,100741,100747,100769,100787,100799,100801,100811,100823,100829,100847,100853,100907,100913,100927,100931,100937,100943,100957,100981,100987,100999,101009,101021,101027,101051,101063,101081,101089,101107,101111,101113,101117,101119,101141,101149,101159,101161,101173,101183,101197,101203,101207,101209,101221,101267,101273,101279,101281,101287,101293,101323,101333,101341,101347,101359,101363,101377,101383,101399,101411,101419,101429,101449,101467,101477,101483,101489,101501,101503,101513,101527,101531,101533,101537,101561,101573,101581,101599,101603,101611,101627,101641,101653,101663,101681,101693,101701,101719,101723,101737,101741,101747,101749,101771,101789,101797,101807,101833,101837,101839,101863,101869,101873,101879,101891,101917,101921,101929,101939,101957,101963,101977,101987,101999,102001,102013,102019,102023,102031,102043,102059,102061,102071,102077,102079,102101,102103,102107,102121,102139,102149,102161,102181,102191,102197,102199,102203,102217,102229,102233,102241,102251,102253,102259,102293,102299,102301,102317,102329,102337,102359,102367,102397,102407,102409,102433,102437,102451,102461,102481,102497,102499,102503,102523,102533,102539,102547,102551,102559,102563,102587,102593,102607,102611,102643,102647,102653,102667,102673,102677,102679,102701,102761,102763,102769,102793,102797,102811,102829,102841,102859,102871,102877,102881,102911,102913,102929,102931,102953,102967,102983,103001,103007,103043,103049,103067,103069,103079,103087,103091,103093,103099,103123,103141,103171,103177,103183,103217,103231,103237,103289,103291,103307,103319,103333,103349,103357,103387,103391,103393,103399,103409,103421,103423,103451,103457,103471,103483,103511,103529,103549,103553,103561,103567,103573,103577,103583,103591,103613,103619,103643,103651,103657,103669,103681,103687,103699,103703,103723,103769,103787,103801,103811,103813,103837,103841,103843,103867,103889,103903,103913,103919,103951,103963,103967,103969,103979,103981,103991,103993,103997,104003,104009,104021,104033,104047,104053,104059,104087,104089,104107,104113,104119,104123,104147,104149,104161,104173,104179,104183,104207,104231,104233,104239,104243,104281,104287,104297,104309,104311,104323,104327,104347,104369,104381,104383,104393,104399,104417,104459,104471,104473,104479,104491,104513,104527,104537,104543,104549,104551,104561,104579,104593,104597,104623,104639,104651,104659,104677,104681,104683,104693,104701,104707,104711,104717,104723,104729] }).call(this)},{}],65:[function(require,module,exports){(function(){var BigInteger,Lock,MRF,MediumRandomFountain,SRF,StrongRandomFountain,WordArray,iced,native_rng,prng,__iced_k,__iced_k_noop,_mrf,_ref,_srf;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},BigInteger=require("bn").BigInteger,_ref=require("triplesec"),WordArray=_ref.WordArray,prng=_ref.prng,native_rng=prng.native_rng,Lock=require("./lock").Lock,MediumRandomFountain=function(){function MediumRandomFountain(){}return MediumRandomFountain.prototype.nextBytes=function(v){var b,c,i,_i,_len,_results;for(b=native_rng(v.length),_results=[],i=_i=0,_len=b.length;_len>_i;i=++_i)c=b[i],_results.push(v[i]=c);return _results},MediumRandomFountain.prototype.random_word=function(){return native_rng(4).readUInt32BE(0)},MediumRandomFountain.prototype.random_zn=function(n){for(var i;;)if(i=BigInteger.random_nbit(n.bitLength(),this),i.compareTo(BigInteger.ONE)>0&&i.compareTo(n)<0)return i},MediumRandomFountain}(),_mrf=null,MRF=function(){return null==_mrf&&(_mrf=new MediumRandomFountain),_mrf},StrongRandomFountain=function(){function StrongRandomFountain(){this.buf=null,this.lock=new Lock}return StrongRandomFountain.prototype.random_word=function(cb){var wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word"}),prng.generate(4,__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:49})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa.to_buffer().readUInt32BE(0))}}(this))},StrongRandomFountain.prototype.random_double=function(cb){var wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_double"}),prng.generate(8,__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:55})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa.to_buffer().readDoubleBE(0))}}(this))},StrongRandomFountain.prototype.rand_0_1=function(cb){var ret,w1,w2,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.rand_0_1"}),_this.random_word(__iced_deferrals.defer({assign_fn:function(){return function(){return w1=arguments[0]}}(),lineno:61})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.rand_0_1"}),_this.random_word(__iced_deferrals.defer({assign_fn:function(){return function(){return w2=arguments[0]}}(),lineno:62})),__iced_deferrals._fulfill()}(function(){return ret=w1*Math.pow(2,-32)+w2*Math.pow(2,-64),cb(ret)})}}(this))},StrongRandomFountain.prototype.random_zn=function(n,cb){var go,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),go=!0,ret=!1,function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_zn"}),_this.random_nbit(n.bitLength(),__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:72})),__iced_deferrals._fulfill()}(function(){return _next(go=ret.compareTo(BigInteger.ONE)<=0||ret.compareTo(n)>=0)}):_break()})(__iced_k)}}(this)(function(){return function(){return cb(ret)}}(this))},StrongRandomFountain.prototype.nextBytes=function(v){var i,_i,_ref1,_results;for(_results=[],i=_i=0,_ref1=v.length;_ref1>=0?_ref1>_i:_i>_ref1;i=_ref1>=0?++_i:--_i)_results.push(v[i]=this.buf[i]);return _results},StrongRandomFountain.prototype.random_word_array=function(nbytes,cb){var b,d,max_pull,n,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=new WordArray,max_pull=512,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word_array"}),_this.lock.acquire(__iced_deferrals.defer({lineno:88})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},(d=nbytes-ret.sigBytes)>0?(n=Math.min(max_pull,d),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word_array"}),prng.generate(n,__iced_deferrals.defer({assign_fn:function(){return function(){return b=arguments[0]}}(),lineno:91})),__iced_deferrals._fulfill()}(function(){return _next(ret=ret.concat(b))})):_break()})(__iced_k)}(function(){return _this.lock.release(),cb(ret)})}}(this))},StrongRandomFountain.prototype.random_bytes=function(nbytes,cb){var tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_bytes"}),_this.random_word_array(nbytes,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:99})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(tmp.to_buffer())}}(this))},StrongRandomFountain.prototype.random_nbit=function(nbits,cb){var nbytes,ret,tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbytes=(nbits>>3)+1,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_nbit"}),_this.random_bytes(nbytes,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:106})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_nbit"}),_this.lock.acquire(__iced_deferrals.defer({lineno:107})),__iced_deferrals._fulfill()}(function(){return _this.buf=tmp,ret=BigInteger.random_nbit(nbits,_this),_this.lock.release(),cb(ret)})}}(this))},StrongRandomFountain}(),_srf=null,SRF=function(){return null==_srf&&(_srf=new StrongRandomFountain),_srf},exports.MRF=MRF,exports.SRF=SRF}).call(this)},{"./lock":28,bn:71,"iced-runtime":118,triplesec:181}],66:[function(require,module,exports){(function(){var IV,WordArray,bufeq_secure,setup,split64,unwrap,wrap;WordArray=require("triplesec").WordArray,bufeq_secure=require("./util").bufeq_secure,IV=WordArray.from_hex("A6A6A6A6A6A6A6A6"),split64=function(wa){return wa.split(wa.words.length>>1)},exports.wrap=wrap=function(_arg){var A,AES,B,C,P,R,cipher,err,i,j,key,plaintext,r,t,_i,_j,_k,_len,_len1,_ref;if(plaintext=_arg.plaintext,key=_arg.key,cipher=_arg.cipher,_ref=setup({input:plaintext,key:key,cipher:cipher}),err=_ref[0],P=_ref[1],AES=_ref[2],null!=err)throw err;for(A=IV,R=P,t=new WordArray([0,0]),j=_i=0;6>_i;j=++_i)for(i=_j=0,_len=R.length;_len>_j;i=++_j)r=R[i],t.words[1]++,B=A.clone().concat(r),AES.encryptBlock(B.words),A=B.slice(0,2),R[i]=B.slice(2,4),A.xor(t,{});for(C=A,_k=0,_len1=R.length;_len1>_k;_k++)r=R[_k],C.concat(r);return C.to_buffer()},setup=function(_arg){var AES,K,P,a,b,cipher,err,input,key,klass;return input=_arg.input,key=_arg.key,cipher=_arg.cipher,P=split64(WordArray.from_buffer(input)),K=WordArray.from_buffer(key),klass=cipher.klass,AES=new klass(K),err=null,(a=cipher.key_size)!==(b=key.length)&&(err=new Error("Bad key, needed "+a+" bytes, but got "+b)),[err,P,AES]},exports.unwrap=unwrap=function(_arg){var A,AES,B,C,P,R,cipher,ciphertext,err,i,j,key,n,r,t,_i,_j,_k,_len,_ref;if(ciphertext=_arg.ciphertext,key=_arg.key,cipher=_arg.cipher,_ref=setup({input:ciphertext,key:key,cipher:cipher}),err=_ref[0],C=_ref[1],AES=_ref[2],n=_ref[3],null!=err)return[err,null];for(A=C[0],R=C.slice(1),t=new WordArray([0,6*R.length]),j=_i=0;6>_i;j=++_i)for(i=_j=R.length-1;_j>=0;i=_j+=-1)r=R[i],A.xor(t,{}),B=A.clone().concat(r),AES.decryptBlock(B.words),A=B.slice(0,2),R[i]=B.slice(2,4),t.words[1]--;if(A.equal(IV)){for(P=new WordArray([]),_k=0,_len=R.length;_len>_k;_k++)r=R[_k],P.concat(r);return[null,P.to_buffer()]}return[new Error("integrity check failure; got bad IV in decryption"),null]}}).call(this)},{"./util":70,triplesec:181}],67:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseKey,BaseKeyPair,BigInteger,C,K,MRF,Output,Pair,Priv,Pub,SHA512,SRF,bn,bufeq_secure,eme_pkcs1_decode,eme_pkcs1_encode,emsa_pkcs1_decode,emsa_pkcs1_encode,iced,konst,make_esc,naive_is_prime,nbi,nbits,nbv,random_prime,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,_ref4,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},_ref=require("./primegen"),naive_is_prime=_ref.naive_is_prime,random_prime=_ref.random_prime,bn=require("./bn"),nbits=bn.nbits,nbv=bn.nbv,nbs=bn.nbs,nbi=bn.nbi,BigInteger=bn.BigInteger,_ref1=require("./util"),bufeq_secure=_ref1.bufeq_secure,ASP=_ref1.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,SHA512=require("./hash").SHA512,_ref2=require("./pad"),eme_pkcs1_encode=_ref2.eme_pkcs1_encode,eme_pkcs1_decode=_ref2.eme_pkcs1_decode,emsa_pkcs1_decode=_ref2.emsa_pkcs1_decode,emsa_pkcs1_encode=_ref2.emsa_pkcs1_encode,_ref3=require("./rand"),SRF=_ref3.SRF,MRF=_ref3.MRF,_ref4=require("./basekeypair"),BaseKey=_ref4.BaseKey,BaseKeyPair=_ref4.BaseKeyPair,Priv=function(_super){function Priv(_arg){this.p=_arg.p,this.q=_arg.q,this.d=_arg.d,this.dmp1=_arg.dmp1,this.dmq1=_arg.dmq1,this.u=_arg.u,this.pub=_arg.pub}return __extends(Priv,_super),Priv.prototype.decrypt=function(c,cb){var x,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Priv.decrypt"}),_this.mod_pow_d_crt(c,__iced_deferrals.defer({assign_fn:function(){return function(){return x=arguments[0]}}(),lineno:22})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,x)}}(this))},Priv.prototype.sign=function(m,cb){return this.mod_pow_d_crt(m,cb)},Priv.ORDER=["d","p","q","u"],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.n=function(){return this.p.multiply(this.q)},Priv.prototype.phi=function(){return this.p.subtract(BigInteger.ONE).multiply(this.q.subtract(BigInteger.ONE))},Priv.prototype.lambda=function(){return this.phi.divide(this.p.subtract(BigInteger.ONE).gcd(this.q.subtract(BigInteger.ONE)))},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.mod_pow_d_crt=function(x,cb){var n,r,r_e,r_inv,x_1,xp,xq,y,y_0,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),null==this.dP&&(this.dP=this.d.mod(this.p.subtract(BigInteger.ONE))),null==this.dQ&&(this.dQ=this.d.mod(this.q.subtract(BigInteger.ONE))),null==this.qInv&&(this.qInv=this.q.modInverse(this.p)),n=this.pub.n,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Priv.mod_pow_d_crt"}),SRF().random_zn(n,__iced_deferrals.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:141})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){for(r_inv=r.modInverse(n),r_e=r.modPow(_this.pub.e,n),x_1=x.multiply(r_e).mod(n),xp=x_1.mod(_this.p).modPow(_this.dP,_this.p),xq=x_1.mod(_this.q).modPow(_this.dQ,_this.q);xp.compareTo(xq)<0;)xp=xp.add(_this.p);return y_0=xp.subtract(xq).multiply(_this.qInv).mod(_this.p).multiply(_this.q).add(xq),y=y_0.multiply(r_inv).mod(n),cb(y)}}(this))},Priv}(BaseKey),Pub=function(_super){function Pub(_arg){this.n=_arg.n,this.e=_arg.e}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.RSA,Pub.prototype.type=Pub.type,Pub.ORDER=["n","e"],Pub.prototype.ORDER=Pub.ORDER,Pub.prototype.encrypt=function(p,cb){return this.mod_pow(p,this.e,cb)},Pub.prototype.verify=function(s,cb){return this.mod_pow(s,this.e,cb)},Pub.prototype.nbits=function(){var _ref5;return null!=(_ref5=this.n)?_ref5.bitLength():void 0},Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.mod_pow=function(x,d,cb){return cb(x.modPow(d,this.n))},Pub.prototype.validity_check=function(cb){var err;return err=this.n.gcd(this.e).equals(BigInteger.ONE)?this.n.mod(nbv(2)).equals(BigInteger.ONE)?this.e.compareTo(BigInteger.ONE)<=0?new Error("e <= 1"):this.e.bitLength()>32?new Error("e="+this.e+" > 2^32"):null:new Error("n % 2 != 1"):new Error("gcd(n,e) != 1"),cb(err)},Pub}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;priv=_arg.priv,pub=_arg.pub,Pair.__super__.constructor.call(this,{priv:priv,pub:pub})}return __extends(Pair,_super),Pair.type=C.public_key_algorithms.RSA,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="RSA",Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.parse=function(pub_raw){return BaseKeyPair.parse(Pair,pub_raw)},Pair.alloc=function(_arg){var priv,pub;return pub=_arg.pub,priv=_arg.priv,BaseKeyPair.alloc({pub:pub,priv:priv})},Pair.subkey_algo=function(){return Pair},Pair.prototype.sanity_check=function(cb){var err,x0,x1,x2,y0,y1,y2,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=0===this.priv.n().compareTo(this.pub.n)?null:new Error("pq != n"),function(_this){return function(__iced_k){return null!=err?__iced_k():(x0=MRF().random_zn(_this.pub.n),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.encrypt(x0,__iced_deferrals.defer({assign_fn:function(){return function(){return x1=arguments[0]}}(),lineno:240})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.decrypt(x1,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],x2=arguments[1]}}(),lineno:241})),__iced_deferrals._fulfill()}(function(){return __iced_k(null==err&&0!==x0.compareTo(x2)?err=new Error("Decrypt/encrypt failed"):void 0)})}))}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():(y0=MRF().random_zn(_this.pub.n),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.sign(y0,__iced_deferrals.defer({assign_fn:function(){return function(){return y1=arguments[0]}}(),lineno:246})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.verify(y1,__iced_deferrals.defer({assign_fn:function(){return function(){return y2=arguments[0]}}(),lineno:247})),__iced_deferrals._fulfill()}(function(){return __iced_k(0!==y0.compareTo(y2)?err=new Error("Sign/verify failed"):void 0)})}))}(function(){return cb(err)})}}(this))},Pair.parse_sig=function(slice){var err,n,raw,ret,_ref5;if(_ref5=bn.mpi_from_buffer(slice.peek_rest_to_buffer()),err=_ref5[0],ret=_ref5[1],raw=_ref5[2],n=_ref5[3],null!=err)throw err;return slice.advance(n),ret},Pair.prototype.encrypt=function(p,cb){return this.pub.encrypt(p,cb)},Pair.prototype.decrypt=function(c,cb){return this.priv.decrypt(c,cb)},Pair.prototype.max_value=function(){return this.pub.n},Pair.make=function(_arg){var d,dmp1,dmq1,e,lambda,n,p,p1,phi,priv,pub,q,q1,u;return p=_arg.p,q=_arg.q,e=_arg.e,phi=_arg.phi,p1=_arg.p1,q1=_arg.q1,lambda=_arg.lambda,n=p.multiply(q),d=e.modInverse(lambda),dmp1=d.mod(p1),dmq1=d.mod(q1),u=p.modInverse(q),pub=new Pub({n:n,e:e}),priv=new Priv({p:p,q:q,d:d,dmp1:dmp1,dmq1:dmq1,u:u,pub:pub}),new Pair({priv:priv,pub:pub})},Pair.prototype.to_openpgp=function(){var key;return key=new((new RSA).keyObject),key.n=this.pub.n,key.e=this.pub.e.intValue(),key.ee=this.pub.e,key.d=this.priv.d,key.p=this.priv.p,key.q=this.priv.q,key.dmp1=this.priv.dmp1,key.dmq1=this.priv.dmq1,key.u=this.priv.u,key},Pair.prototype.sign=function(m,cb){return this.priv.sign(m,cb)},Pair.prototype.verify=function(s,cb){return this.pub.verify(s,cb)},Pair.prototype.pad_and_encrypt=function(data,params,cb){var ct,err,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_encrypt"}),eme_pkcs1_encode(data,_this.pub.n.mpi_byte_length(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:306})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_encrypt"}),_this.encrypt(m,__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:308})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=_this.export_output({y_mpi:ct}))})}(function(){return cb(err,ret)})}}(this))},Pair.prototype.decrypt_and_unpad=function(ciphertext,params,cb){var b,err,p,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.decrypt_and_unpad"}),_this.decrypt(ciphertext.y(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],p=arguments[1]}}(),lineno:318})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _ref5;return null==err&&(b=p.to_padded_octets(_this.pub.n),_ref5=eme_pkcs1_decode(b),err=_ref5[0],ret=_ref5[1]),cb(err,ret)}}(this))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var hashed_data,hasher,m,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hasher=_arg.hasher,hasher||(hasher=SHA512),hashed_data=hasher(data),m=emsa_pkcs1_encode(hashed_data,this.pub.n.mpi_byte_length(),{hasher:hasher}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_sign"}),_this.sign(m,__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:330})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,sig.to_mpi_buffer())}}(this))},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var b,data,err,hash,hasher,hd1,sig,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,err=null,Buffer.isBuffer(sig)&&(_ref5=bn.mpi_from_buffer(sig),err=_ref5[0],sig=_ref5[1]),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.verify_unpad_and_check_hash"}),_this.verify(sig,__iced_deferrals.defer({assign_fn:function(){return function(){return v=arguments[0]}}(),lineno:339})),__iced_deferrals._fulfill()}(function(){var _ref6;return b=v.to_padded_octets(_this.pub.n),_ref6=emsa_pkcs1_decode(b,hasher),err=_ref6[0],hd1=_ref6[1],__iced_k(null==err?(hash||(hash=hasher(data)),bufeq_secure(hd1,hash)?void 0:err=new Error("hash mismatch")):void 0)})}}(this)(function(){return function(){return cb(err)}}(this))},Pair.generate=function(_arg,cb){var asp,e,e_orig,esc,go,iters,key,lambda,nbits,p,p1,phi,q,q1,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbits=_arg.nbits,iters=_arg.iters,e=_arg.e,asp=_arg.asp,e||(e=65537),e_orig=e,nbits||(nbits=4096),iters||(iters=10),asp||(asp=new ASP({})),e=nbv(e_orig),esc=make_esc(cb,"generate_rsa_keypair"),go=!0,nbits>>=1,function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),random_prime({asp:asp.section("p"),e:e,nbits:nbits,iters:iters},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:363}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),asp.progress({what:"found",p:p},esc(__iced_deferrals.defer({lineno:364}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),random_prime({asp:asp.section("q"),e:e,nbits:nbits,iters:iters},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return q=arguments[0]}}(),lineno:365}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),asp.progress({what:"found",q:q},esc(__iced_deferrals.defer({lineno:366}))),__iced_deferrals._fulfill()}(function(){var _ref5;return p.compareTo(q)<=0&&(_ref5=[q,p],p=_ref5[0],q=_ref5[1]),q1=q.subtract(BigInteger.ONE),p1=p.subtract(BigInteger.ONE),phi=p1.multiply(q1),lambda=phi.divide(q1.gcd(p1)),_next(0!==phi.gcd(e).compareTo(BigInteger.ONE)?("function"==typeof progress_hook?progress_hook({what:"unlucky_phi"}):void 0,go=!0):go=!1)})})})}):_break()})(__iced_k)}}(this)(function(){return function(){return key=Pair.make({p:p,q:q,e:e,phi:phi,p1:p1,q1:q1,lambda:lambda}),cb(null,key)}}(this))},Pair.parse_output=function(buf){return Output.parse(buf)},Pair.prototype.export_output=function(args){return new Output(args)},Pair.prototype.validity_check=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.validity_check"}),_this.pub.validity_check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:391})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},Pair}(BaseKeyPair),Output=function(){function Output(_arg){this.y_mpi=_arg.y_mpi,this.y_buf=_arg.y_buf}return Output.parse=function(buf){var err,n,raw,ret,_ref5;if(_ref5=bn.mpi_from_buffer(buf),err=_ref5[0],ret=_ref5[1],raw=_ref5[2],n=_ref5[3],null!=err)throw err;if(0!==raw.length)throw new Error("junk at the end of input");return new Output({y_mpi:ret})},Output.prototype.y=function(){return this.y_mpi},Output.prototype.hide=function(_arg,cb){var err,i,key,max,slosh,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,max=_arg.max,slosh=_arg.slosh,max||(max=8192),slosh||(slosh=128),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Output.hide"}),key.hide({i:_this.y(),max:max,slosh:slosh},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],i=arguments[1]}}(),lineno:417})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(_this.y_mpi=i,_this.y_buf=null),cb(err)}}(this))},Output.prototype.find=function(_arg){var key;return key=_arg.key,this.y_mpi=key.find(this.y_mpi)},Output.prototype.output=function(){return this.y_buf||this.y_mpi.to_mpi_buffer()},Output}(),exports.RSA=exports.Pair=Pair,exports.Output=Output}).call(this)}).call(this,require("buffer").Buffer)},{"./basekeypair":2,"./bn":4,"./const":5,"./hash":14,"./pad":62,"./primegen":63,"./rand":65,"./util":70,buffer:80,"iced-error":115,"iced-runtime":118}],68:[function(require,module,exports){(function(Buffer){(function(){var AES,C,CAST5,SlicerBuffer,WordArray,checksum2,ecc_pkcs5_unpad_data,export_key_pgp,get_cipher,import_key_pgp,triplesec,uint_to_buffer;C=require("./const").openpgp.symmetric_key_algorithms,triplesec=require("triplesec"),AES=triplesec.ciphers.AES,CAST5=require("./openpgp/cast5").CAST5,SlicerBuffer=require("./openpgp/buffer").SlicerBuffer,WordArray=triplesec.WordArray,uint_to_buffer=require("./util").uint_to_buffer,ecc_pkcs5_unpad_data=require("./pad").ecc_pkcs5_unpad_data,exports.get_cipher=get_cipher=function(n){var ret;return n||(n=C.AES256),ret=function(){switch(n){case C.AES128:return{klass:AES,key_size:16};case C.AES192:return{klass:AES,key_size:24};case C.AES256:return{klass:AES,key_size:32};case C.CAST5:return{klass:CAST5,key_size:CAST5.keySize};default:throw new Error("unknown cipher: "+n)}}(),ret.type=n,ret},exports.checksum2=checksum2=function(buf){var i,res,_i,_ref;for(res=0,i=_i=0,_ref=buf.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)res=res+buf.readUInt8(i)&65535;return res},exports.import_key_pgp=import_key_pgp=function(msg,pkcs5_padding){var checksum,cipher,err,key,ret,sb;if(null==pkcs5_padding&&(pkcs5_padding=!1),sb=new SlicerBuffer(msg),ret=err=null,cipher=get_cipher(sb.read_uint8()),key=sb.read_buffer(cipher.key_size),checksum=sb.read_uint16(),err=checksum2(key)!==checksum?new Error("Checksum mismatch"):pkcs5_padding?ecc_pkcs5_unpad_data(msg,sb.offset()):sb.rem()?new Error("Junk at the end of input"):null,null!=err)throw err;return new cipher.klass(WordArray.from_buffer(key))},exports.export_key_pgp=export_key_pgp=function(algo_id,key){var csum;return csum=checksum2(key),Buffer.concat([new Buffer([algo_id]),key,uint_to_buffer(16,csum)])}}).call(this)}).call(this,require("buffer").Buffer)},{"./const":5,"./openpgp/buffer":35,"./openpgp/cast5":37,"./pad":62,"./util":70,buffer:80,triplesec:181}],69:[function(require,module,exports){(function(){var iced,kb,pgp,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},pgp=require("./openpgp/keymanager"),kb=require("./keybase/hilev"),exports.import_armored_public=function(_arg,cb){var armored,asp,err,ret,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,asp=_arg.asp,function(){return function(__iced_k){armored.match(/^-{5}BEGIN PGP PUBLIC KEY BLOCK-{5}/)?!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ukm.iced",funcname:"import_armored_public"}),pgp.KeyManager.import_from_armored_pgp({armored:armored,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1],warnings=arguments[2]}}(),lineno:10})),__iced_deferrals._fulfill()}(__iced_k):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ukm.iced",funcname:"import_armored_public"}),kb.KeyManager.import_public({hex:armored},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:12})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))}}).call(this)},{"./keybase/hilev":17,"./openpgp/keymanager":42,"iced-runtime":118}],70:[function(require,module,exports){(function(){var k,m,mods,v,_i,_len;for(mods=[require("pgp-utils").util,require("./openpgp/util"),require("./keybase/util")],_i=0,_len=mods.length;_len>_i;_i++){m=mods[_i];for(k in m)v=m[k],exports[k]=v}}).call(this)},{"./keybase/util":23,"./openpgp/util":60,"pgp-utils":163}],71:[function(require,module,exports){var engine=require("./lib/wrap").engine;syms=require(engine?"./lib/fast":"./lib/pure");for(var k in syms)exports[k]=syms[k]},{"./lib/fast":72,"./lib/pure":73,"./lib/wrap":74}],72:[function(require,module){(function(Buffer){!function(){function BigInteger(a,b){if(!(this instanceof BigInteger))return new BigInteger(a,b);if("string"==typeof a)a=a.replace(/\s+/g,""),b||(b=10),this._v=bigint(a,b);else if("number"==typeof a)this._v=bigint(a);else if("object"==typeof a&&Array.isArray(a))this._v=bigint.fromBuffer(new Buffer(a));else{if(a.constructor!=zed.constructor)throw new Error("failed to get valid inner object in constructor");this._v=a}}function nbi(){return new BigInteger(bigint(0)) }function nbv(i){return new BigInteger(bigint(i))}function bigint_or_number(x){return"number"==typeof x?nbv(x):x}function buffer_to_array(b){for(var ret=new Array,i=0;i>>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}var bigint=require("./wrap").engine,zed=bigint(0),one=bigint(1);BigInteger.prototype.bitLength=function(){var ret;return ret=0==this.signum()?0:this._v.bitLength()},BigInteger.prototype.byteLength=function(){return this.bitLength()>>3},BigInteger.prototype.modPowInt=function(i,n){return new BigInteger(this._v.powm(bigint(i),n._v))},BigInteger.prototype.modInt=function(i){return this._v.mod(bigint(i)).toNumber()},BigInteger.prototype.testBit=function(i){var bi=one.shiftLeft(i),tmp=this._v.and(bi),ret=tmp.eq(zed)?0:1;return ret},BigInteger.prototype.setBit=function(i){var mask=bigint(1).shiftLeft(i);return new BigInteger(this._v.or(mask))},BigInteger.prototype.shiftLeft=function(i){return new BigInteger(this._v.shiftLeft(i))},BigInteger.prototype.shiftRight=function(i){return new BigInteger(this._v.shiftRight(i))},BigInteger.prototype.compareTo=function(b){return this._v.cmp(b._v)},BigInteger.prototype.modPow=function(e,n){return new BigInteger(this._v.powm(e._v,n._v))},BigInteger.prototype.square=function(){return new BigInteger(this._v.mul(this._v))},BigInteger.prototype.mod=function(m){var x=this._v.mod(m._v);return x.cmp(zed)<0&&(x=x.add(m._v)),new BigInteger(x)},BigInteger.prototype.abs=function(){return new BigInteger(this._v.abs())},BigInteger.prototype.pow=function(e){return new BigInteger(this._v.pow(bigint_or_number(e)._v))},BigInteger.prototype.intValue=function(){return this._v.toNumber()},BigInteger.prototype.signum=function(){var cmp=this._v.cmp(zed);return ret=cmp>0?1:0===cmp?0:-1},BigInteger.prototype.negate=function(){return new BigInteger(this._v.neg())},BigInteger.prototype.equals=function(b){return this._v.eq(b._v)},BigInteger.prototype.subtract=function(x){return new BigInteger(this._v.sub(x._v))},BigInteger.prototype.add=function(x){return new BigInteger(this._v.add(x._v))},BigInteger.prototype.multiply=function(x){return new BigInteger(this._v.mul(x._v))},BigInteger.prototype.divide=function(x){if(this._v.ge(zed)&&x._v.ge(zed))i=this._v.div(x._v);else{var sign=this.signum()*x.signum();i=this._v.abs().div(x._v.abs()),0>sign&&(i=i.neg())}return new BigInteger(i)},BigInteger.prototype.gcd=function(x){return new BigInteger(this._v.gcd(x._v))},BigInteger.prototype.fromBuffer=function(x){return new BigInteger(bigint.fromBuffer(x))},BigInteger.fromByteArrayUnsigned=function(b){return BigInteger.fromBuffer(new Buffer(b))},BigInteger.fromBuffer=function(x){return new BigInteger(bigint.fromBuffer(x))},BigInteger.fromDERInteger=function(buf){var ret;if(0==buf.length)ret=BigInteger.ZERO;else if(0==buf[0])ret=BigInteger.fromBuffer(buf);else if(ret=BigInteger.fromBuffer(buf),128&buf[0]){var z=BigInteger.ONE.shiftLeft(ret.bitLength());ret=ret.subtract(z)}return ret},BigInteger.prototype.compute_twos_complement=function(){var l=this.add(BigInteger.ONE).bitLength(),bytes=Math.floor(l/8)+1,y=BigInteger.ONE.shiftLeft(8*bytes);return y.add(this)},BigInteger.prototype.toDERInteger=function(){var ret=null,s=this.signum();if(0==s)ret=new Buffer([0]);else if(0>s){var z=this.compute_twos_complement();ret=z.toBuffer()}else{var ret=this.toBuffer();this.bitLength()%8==0&&(pad=new Buffer([0]),ret=Buffer.concat([pad,ret]))}return buffer_to_array(ret)},BigInteger.prototype.divideAndRemainder=function(m){var q=new BigInteger(this._v.div(m._v)),r=new BigInteger(this._v.mod(m._v));return[q,r]},BigInteger.fromString=function(s,base){var bi;return bi=256===base?bigint.fromBuffer(s):bigint(s,base),new BigInteger(bi)},BigInteger.prototype.fromString=function(s,base){return BigInteger.fromString(s,base)},BigInteger.prototype.toByteArray=function(){for(var b=this.toBuffer(),l=b.length,ret=new Array(l),i=0;l>i;i++)ret[i]=b[i];return ret},BigInteger.prototype.toByteArrayUnsigned=function(){return new Uint8Array(this.toBuffer())},BigInteger.prototype.toBuffer=function(size){var ret=null;if(size||(size=0),ret=0==this.signum()?new Buffer([]):this._v.toBuffer(),(diff=size-ret.length)>0){var pad=new Buffer(diff);pad.fill(0),ret=Buffer.concat([pad,ret])}return ret},BigInteger.prototype.toHex=function(size){var x=this;return this.signum()<0&&(x=this.compute_twos_complement()),x.toBuffer(size).toString("hex")},BigInteger.prototype.clone=function(){return new BigInteger(bigint(this._v))},BigInteger.prototype.getLowestSetBit=function(){for(var bl=this._v.bitLength(),ret=-1,mask=bigint(1),i=0;bl>i&&0>ret;i++)mask.and(this._v).eq(zed)?mask=mask.shiftLeft(1):ret=i;return ret},BigInteger.prototype.modInverse=function(n){return new BigInteger(this._v.invertm(n._v))},BigInteger.prototype.isEven=function(){var mask=bigint(1),res=mask.and(this._v);return res.eq(zed)},BigInteger.random_nbit=function(nbits,rf){var nbytes=Math.ceil(nbits/8),buf=new Buffer(nbytes);rf.nextBytes(buf);var ret=bigint.fromBuffer(buf),mask=bigint(1).shiftLeft(nbits).sub(bigint(1));return ret=ret.and(mask),new BigInteger(ret)},BigInteger.fromHex=function(s){if(!s.match(/^[a-fA-F0-9]*$/))throw new Error("hex string invalid: "+s);if(s.length%2!=0)throw new Error("got an odd-length hex-string");return new BigInteger(s,16)},BigInteger.prototype.inspect=function(){return""},BigInteger.prototype.toString=function(base){base||(base=10);var raw=this._v.toString(base);return 0==raw.length?raw="0":16==base&&raw.length>1&&("0"==raw[0]?raw=raw.slice(1):"-0"==raw.slice(0,2)&&(raw="-"+raw.slice(2))),raw},BigInteger.valueOf=function(x){return bigint_or_number(x)},BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),module.exports={BigInteger:BigInteger,nbi:nbi,nbv:nbv,nbits:nbits}}(this)}).call(this,require("buffer").Buffer)},{"./wrap":74,buffer:80}],73:[function(require,module){(function(Buffer){!function(){function BigInteger(a,b,c){return this instanceof BigInteger?void(null!=a&&("number"==typeof a?this.fromNumber(a,b,c):null==b&&"string"!=typeof a?this.fromString(a,256):this.fromString(a,b))):new BigInteger(a,b,c)}function nbi(){return new BigInteger(null)}function am3(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;l=xl*l+((16383&m)<<14)+w[j]+c,c=(l>>28)+(m>>14)+xh*h,w[j++]=268435455&l}return c}function int2char(n){return BI_RM.charAt(n)}function intAt(s,i){var c=BI_RC[s.charCodeAt(i)];return null==c?-1:c}function bnpCopyTo(r){for(var i=this.t-1;i>=0;--i)r[i]=this[i];r.t=this.t,r.s=this.s}function bnpFromInt(x){this.t=1,this.s=0>x?-1:0,x>0?this[0]=x:-1>x?this[0]=x+this.DV:this.t=0}function nbv(i){var r=nbi();return r.fromInt(i),r}function bnpFromString(s,b,unsigned){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 this.fromRadix(s,b),this;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);0>x?"-"==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):this[this.t-1]|=x<=this.DB&&(sh-=this.DB))}return unsigned||8!=k||0==(128&s[0])||(this.s=-1,sh>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==c;)--this.t}function bnToString(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<0)for(p>p)>0&&(m=!0,r=int2char(d));i>=0;)k>p?(d=(this[i]&(1<>(p+=this.DB-k)):(d=this[i]>>(p-=k)&km,0>=p&&(p+=this.DB,--i)),d>0&&(m=!0),m&&(r+=int2char(d));return m?r:"0"}function bnNegate(){var r=nbi();return BigInteger.ZERO.subTo(this,r),r}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(a){var r=this.s-a.s;if(0!=r)return r;var i=this.t;if(r=i-a.t,0!=r)return r;for(;--i>=0;)if(0!=(r=this[i]-a[i]))return r;return 0}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 bnBitLength(){return this.t<=0?0:this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(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}function bnpDRShiftTo(n,r){for(var i=n;i=0;--i)r[i+ds+1]=this[i]>>cbs|c,c=(this[i]&bm)<=0;--i)r[i]=0;r[ds]=c,r.t=this.t+ds+1,r.s=this.s,r.clamp()}function bnpRShiftTo(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t)return void(r.t=0);var bs=n%this.DB,cbs=this.DB-bs,bm=(1<>bs;for(var i=ds+1;i>bs;bs>0&&(r[this.t-ds-1]|=(this.s&bm)<i;)c+=this[i]-a[i],r[i++]=c&this.DM,c>>=this.DB;if(a.t>=this.DB;c+=this.s}else{for(c+=this.s;i>=this.DB;c-=a.s}r.s=0>c?-1:0,-1>c?r[i++]=this.DV+c:c>0&&(r[i++]=c),r.t=i,r.clamp()}function bnpMultiplyTo(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=0;)r[i]=0;for(i=0;i=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()}function bnpDivRemTo(m,q,r){var pm=m.abs();if(!(pm.t<=0)){var pt=this.abs();if(pt.t0?(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<1?y[ys-2]>>this.F2:0),d1=this.FV/yt,d2=(1<=0&&(r[r.t++]=1,r.subTo(t,r)),BigInteger.ONE.dlShiftTo(ys,t),t.subTo(y,y);y.t=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))0&&r.rShiftTo(nsh,r),0>ts&&BigInteger.ZERO.subTo(r,r)}}}function bnMod(a){var r=nbi();return this.abs().divRemTo(a,null,r),this.s<0&&r.compareTo(BigInteger.ZERO)>0&&a.subTo(r,r),r}function Classic(m){this.m=m}function cConvert(x){return x.s<0||x.compareTo(this.m)>=0?x.mod(this.m):x}function cRevert(x){return x}function cReduce(x){x.divRemTo(this.m,null,x)}function cMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function cSqrTo(x,r){x.squareTo(r),this.reduce(r)}function bnpInvDigit(){if(this.t<1)return 0;var x=this[0];if(0==(1&x))return 0;var y=3&x;return y=y*(2-(15&x)*y)&15,y=y*(2-(255&x)*y)&255,y=y*(2-((65535&x)*y&65535))&65535,y=y*(2-x*y%this.DV)%this.DV,y>0?this.DV-y:-y}function Montgomery(m){this.m=m,this.mp=m.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(r,r),r}function montRevert(x){var r=nbi();return x.copyTo(r),this.reduce(r),r}function montReduce(x){for(;x.t<=this.mt2;)x[x.t++]=0;for(var i=0;i>15)*this.mpl&this.um)<<15)&x.DM;for(j=i+this.m.t,x[j]+=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)}function montSqrTo(x,r){x.squareTo(r),this.reduce(r)}function montMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function bnpIsEven(){return 0==(this.t>0?1&this[0]:this.s)}function bnpExp(e,z){if(e>4294967295||1>e)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<0)z.mulTo(r2,g,r);else{var t=r;r=r2,r2=t}return z.revert(r)}function bnModPowInt(e,m){var z;return z=256>e||m.isEven()?new Classic(m):new Montgomery(m),this.exp(e,z)}function bnClone(){var r=nbi();return this.copyTo(r),r}function bnIntValue(){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)<>24}function bnShortValue(){return 0==this.t?this.s:this[0]<<16>>16}function bnpChunkSize(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function bnSigNum(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1}function bnpToRadix(b){if(null==b&&(b=10),0==this.signum()||2>b||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}function bnpFromRadix(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;ix?"-"==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)}function bnpFromNumber(a,b,c){if("number"==typeof b)if(2>a)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=(a>>3)+1,b.nextBytes(x),t>0?x[0]&=(1<0)for(p>p)!=(this.s&this.DM)>>p&&(r[k++]=d|this.s<=0;)8>p?(d=(this[i]&(1<>(p+=this.DB-8)):(d=this[i]>>(p-=8)&255,0>=p&&(p+=this.DB,--i)),encode_sign_bit&&(0!=(128&d)&&(d|=-256),0==k&&(128&this.s)!=(128&d)&&++k),(k>0||d!=this.s)&&(r[k++]=d);return r}function bnEquals(a){return 0==this.compareTo(a)}function bnMin(a){return this.compareTo(a)<0?this:a}function bnMax(a){return this.compareTo(a)>0?this:a}function bnpBitwiseTo(a,op,r){var i,f,m=Math.min(a.t,this.t);for(i=0;m>i;++i)r[i]=op(this[i],a[i]);if(a.tn?this.rShiftTo(-n,r):this.lShiftTo(n,r),r}function bnShiftRight(n){var r=nbi();return 0>n?this.lShiftTo(-n,r):this.rShiftTo(n,r),r}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 bnGetLowestSetBit(){for(var i=0;i=this.t?0!=this.s:0!=(this[j]&1<i;)c+=this[i]+a[i],r[i++]=c&this.DM,c>>=this.DB;if(a.t>=this.DB;c+=this.s}else{for(c+=this.s;i>=this.DB;c+=a.s}r.s=0>c?-1:0,c>0?r[i++]=c:-1>c&&(r[i++]=this.DV+c),r.t=i,r.clamp()}function bnAdd(a){var r=nbi();return this.addTo(a,r),r}function bnSubtract(a){var r=nbi();return this.subTo(a,r),r}function bnMultiply(a){var r=nbi();return this.multiplyTo(a,r),r}function bnSquare(){var r=nbi();return this.squareTo(r),r}function bnDivide(a){var r=nbi();return this.divRemTo(a,r,null),r}function bnRemainder(a){var r=nbi();return this.divRemTo(a,null,r),r}function bnDivideAndRemainder(a){var q=nbi(),r=nbi();return this.divRemTo(a,q,r),new Array(q,r)}function bnpDMultiply(n){this[this.t]=this.am(0,n-1,this,0,0,this.t),++this.t,this.clamp()}function bnpDAddOffset(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]}}function NullExp(){}function nNop(x){return x}function nMulTo(x,y,r){x.multiplyTo(y,r)}function nSqrTo(x,r){x.squareTo(r)}function bnPow(e){return this.exp(e,new NullExp)}function bnpMultiplyLowerTo(a,n,r){var i=Math.min(this.t+a.t,n);for(r.s=0,r.t=i;i>0;)r[--i]=0;var j;for(j=r.t-this.t;j>i;++i)r[i+this.t]=this.am(0,a[i],r,i,0,this.t);for(j=Math.min(a.t,n);j>i;++i)this.am(0,a[i],r,i,0,n-i);r.clamp()}function bnpMultiplyUpperTo(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);i2*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}function barrettRevert(x){return x}function barrettReduce(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)}function barrettSqrTo(x,r){x.squareTo(r),this.reduce(r)}function barrettMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function bnModPow(e,m){var k,z,i=e.bitLength(),r=nbv(1);if(0>=i)return r;k=18>i?1:48>i?3:144>i?4:768>i?5:6,z=8>i?new Classic(m):m.isEven()?new Barrett(m):new Montgomery(m);var g=new Array,n=3,k1=k-1,km=(1<1){var g2=nbi();for(z.sqrTo(g[1],g2);km>=n;)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<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<g)return x;for(g>i&&(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}function bnpModInt(n){if(0>=n)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}function bnModInverse(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}function bnIsProbablePrime(t){var i,x=this.abs();if(1==x.t&&x[0]<=lowprimes[lowprimes.length-1]){for(i=0;im;)m*=lowprimes[j++];for(m=x.modInt(m);j>i;)if(m%lowprimes[i++]==0)return!1}return x.millerRabin(t)}function nbits(x){var t,n=1;return 0!=(t=x>>>16)&&(x=t,n+=16),0!=(t=x>>8)&&(x=t,n+=8),0!=(t=x>>4)&&(x=t,n+=4),0!=(t=x>>2)&&(x=t,n+=2),0!=(t=x>>1)&&(x=t,n+=1),n}function bnToMPI(){var ba=this.toByteArray(),size=8*(ba.length-1)+nbits(ba[0]),result="";return result+=String.fromCharCode((65280&size)>>8),result+=String.fromCharCode(255&size),result+=util.bin2str(ba)}function bnpMillerRabin(t){var n1=this.subtract(BigInteger.ONE),k=n1.getLowestSetBit();if(0>=k)return!1;var r=n1.shiftRight(k);t=t+1>>1,t>lowprimes.length&&(t=lowprimes.length);for(var a=nbi(),i=0;t>i;++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++i;i++)ret[i]=b.readUInt8(i);return ret}var dbits;BigInteger.prototype.am=am3,dbits=28,BigInteger.prototype.DB=dbits,BigInteger.prototype.DM=(1<=vv;++vv)BI_RC[rr++]=vv;for(rr="a".charCodeAt(0),vv=10;36>vv;++vv)BI_RC[rr++]=vv;for(rr="A".charCodeAt(0),vv=10;36>vv;++vv)BI_RC[rr++]=vv;Classic.prototype.convert=cConvert,Classic.prototype.revert=cRevert,Classic.prototype.reduce=cReduce,Classic.prototype.mulTo=cMulTo,Classic.prototype.sqrTo=cSqrTo,Montgomery.prototype.convert=montConvert,Montgomery.prototype.revert=montRevert,Montgomery.prototype.reduce=montReduce,Montgomery.prototype.mulTo=montMulTo,Montgomery.prototype.sqrTo=montSqrTo,BigInteger.prototype.copyTo=bnpCopyTo,BigInteger.prototype.fromInt=bnpFromInt,BigInteger.prototype.fromString=bnpFromString,BigInteger.prototype.clamp=bnpClamp,BigInteger.prototype.dlShiftTo=bnpDLShiftTo,BigInteger.prototype.drShiftTo=bnpDRShiftTo,BigInteger.prototype.lShiftTo=bnpLShiftTo,BigInteger.prototype.rShiftTo=bnpRShiftTo,BigInteger.prototype.subTo=bnpSubTo,BigInteger.prototype.multiplyTo=bnpMultiplyTo,BigInteger.prototype.squareTo=bnpSquareTo,BigInteger.prototype.divRemTo=bnpDivRemTo,BigInteger.prototype.invDigit=bnpInvDigit,BigInteger.prototype.isEven=bnpIsEven,BigInteger.prototype.exp=bnpExp,BigInteger.prototype.toString=bnToString,BigInteger.prototype.negate=bnNegate,BigInteger.prototype.abs=bnAbs,BigInteger.prototype.compareTo=bnCompareTo,BigInteger.prototype.bitLength=bnBitLength,BigInteger.prototype.mod=bnMod,BigInteger.prototype.modPowInt=bnModPowInt,BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),NullExp.prototype.convert=nNop,NullExp.prototype.revert=nNop,NullExp.prototype.mulTo=nMulTo,NullExp.prototype.sqrTo=nSqrTo,Barrett.prototype.convert=barrettConvert,Barrett.prototype.revert=barrettRevert,Barrett.prototype.reduce=barrettReduce,Barrett.prototype.mulTo=barrettMulTo,Barrett.prototype.sqrTo=barrettSqrTo;var 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];BigInteger.prototype.chunkSize=bnpChunkSize,BigInteger.prototype.toRadix=bnpToRadix,BigInteger.prototype.fromRadix=bnpFromRadix,BigInteger.prototype.fromNumber=bnpFromNumber,BigInteger.prototype.bitwiseTo=bnpBitwiseTo,BigInteger.prototype.changeBit=bnpChangeBit,BigInteger.prototype.addTo=bnpAddTo,BigInteger.prototype.dMultiply=bnpDMultiply,BigInteger.prototype.dAddOffset=bnpDAddOffset,BigInteger.prototype.multiplyLowerTo=bnpMultiplyLowerTo,BigInteger.prototype.multiplyUpperTo=bnpMultiplyUpperTo,BigInteger.prototype.modInt=bnpModInt,BigInteger.prototype.millerRabin=bnpMillerRabin,BigInteger.prototype.clone=bnClone,BigInteger.prototype.intValue=bnIntValue,BigInteger.prototype.byteValue=bnByteValue,BigInteger.prototype.shortValue=bnShortValue,BigInteger.prototype.signum=bnSigNum,BigInteger.prototype.toByteArray=bnToByteArray,BigInteger.prototype.equals=bnEquals,BigInteger.prototype.min=bnMin,BigInteger.prototype.max=bnMax,BigInteger.prototype.and=bnAnd,BigInteger.prototype.or=bnOr,BigInteger.prototype.xor=bnXor,BigInteger.prototype.andNot=bnAndNot,BigInteger.prototype.not=bnNot,BigInteger.prototype.shiftLeft=bnShiftLeft,BigInteger.prototype.shiftRight=bnShiftRight,BigInteger.prototype.getLowestSetBit=bnGetLowestSetBit,BigInteger.prototype.bitCount=bnBitCount,BigInteger.prototype.testBit=bnTestBit,BigInteger.prototype.setBit=bnSetBit,BigInteger.prototype.clearBit=bnClearBit,BigInteger.prototype.flipBit=bnFlipBit,BigInteger.prototype.add=bnAdd,BigInteger.prototype.subtract=bnSubtract,BigInteger.prototype.multiply=bnMultiply,BigInteger.prototype.divide=bnDivide,BigInteger.prototype.remainder=bnRemainder,BigInteger.prototype.divideAndRemainder=bnDivideAndRemainder,BigInteger.prototype.modPow=bnModPow,BigInteger.prototype.modInverse=bnModInverse,BigInteger.prototype.pow=bnPow,BigInteger.prototype.gcd=bnGCD,BigInteger.prototype.isProbablePrime=bnIsProbablePrime,BigInteger.prototype.toMPI=bnToMPI,BigInteger.prototype.square=bnSquare,BigInteger.prototype.fromBuffer=function(buf){return this.fromString(buffer_to_ui8a(buf),256,!0),this},BigInteger.fromBuffer=function(buf){var ret=nbi();return ret.fromBuffer(buf),ret},BigInteger.random_nbit=function(nbits,rf){return new BigInteger(nbits,rf)},BigInteger.prototype.inspect=function(){return""},BigInteger.fromHex=function(s){if(!s.match(/^[a-fA-F0-9]*$/))throw new Error("hex string invalid: "+s);if(s.length%2!=0)throw new Error("got an odd-length hex-string");return new BigInteger(s,16)},BigInteger.valueOf=function(x){return bigint_or_number(x)},BigInteger.prototype.toBuffer=function(size){var x;size||(size=0);var s=this.signum();x=0==s?[]:this.toByteArray(0>s);var ret=new Buffer(x);if((diff=size-x.length)>0){var pad=new Buffer(diff);pad.fill(0),ret=Buffer.concat([pad,ret])}return ret},BigInteger.prototype.byteLength=function(){return this.t},BigInteger.prototype.toDERInteger=function(){return this.toByteArray(!0)},BigInteger.fromDERInteger=function(buf){var x=nbi();return x.fromString(buf,256,!1),x},BigInteger.prototype.toByteArrayUnsigned=function(){return new Uint8Array(this.toBuffer())},BigInteger.fromByteArrayUnsigned=function(b){return BigInteger.fromBuffer(new Buffer(b))},BigInteger.prototype.toHex=function(size){return this.toBuffer(size).toString("hex")},module.exports={BigInteger:BigInteger,nbi:nbi,nbv:nbv,Montgomery:Montgomery,Classic:Classic,nbits:nbits}}(this)}).call(this,require("buffer").Buffer)},{buffer:80}],74:[function(require,module,exports){var engine=null,modules=["bigint","bignum"];for(var i in modules)try{engine=require(modules[i]);break}catch(e){}exports.engine=engine},{}],75:[function(require,module){function replacer(key,value){return util.isUndefined(value)?""+value:!util.isNumber(value)||!isNaN(value)&&isFinite(value)?util.isFunction(value)||util.isRegExp(value)?value.toString():value:value.toString()}function truncate(s,n){return util.isString(s)?s.length=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?"[object RegExp]"==Object.prototype.toString.call(expected)?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;util.isString(expected)&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:"."),shouldThrow&&!actual&&fail(actual,expected,"Missing expected exception"+message),!shouldThrow&&expectedException(actual,expected)&&fail(actual,expected,"Got unwanted exception"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require("util/"),pSlice=Array.prototype.slice,hasOwn=Object.prototype.hasOwnProperty,assert=module.exports=ok;assert.AssertionError=function(options){this.name="AssertionError",this.actual=options.actual,this.expected=options.expected,this.operator=options.operator,options.message?(this.message=options.message,this.generatedMessage=!1):(this.message=getMessage(this),this.generatedMessage=!0); var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace)Error.captureStackTrace(this,stackStartFunction);else{var err=new Error;if(err.stack){var out=err.stack,fn_name=stackStartFunction.name,idx=out.indexOf("\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}},util.inherits(assert.AssertionError,Error),assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,"==",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,"!=",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,"deepEqual",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,"===",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,"!==",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)hasOwn.call(obj,key)&&keys.push(key);return keys}},{"util/":77}],76:[function(require,module){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],77:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str){return str}function arrayToHash(array){var hash={};return array.forEach(function(val){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;l>i;++i)output.push(hasOwnProperty(value,String(i))?formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0):"");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return 10>n?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];len>i;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":76,_process:99,inherits:97}],78:[function(require,module,exports){(function(process,Buffer){function Zlib(mode){if(modeexports.UNZIP)throw new TypeError("Bad argument");this.mode=mode,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function bufferSet(data,offset){for(var i=0;iexports.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+opts.chunkSize);if(opts.windowBits&&(opts.windowBitsexports.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+opts.windowBits);if(opts.level&&(opts.levelexports.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+opts.level);if(opts.memLevel&&(opts.memLevelexports.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+opts.memLevel);if(opts.strategy&&opts.strategy!=exports.Z_FILTERED&&opts.strategy!=exports.Z_HUFFMAN_ONLY&&opts.strategy!=exports.Z_RLE&&opts.strategy!=exports.Z_FIXED&&opts.strategy!=exports.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+opts.strategy);if(opts.dictionary&&!Buffer.isBuffer(opts.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new binding.Zlib(mode);var self=this;this._hadError=!1,this._binding.onerror=function(message,errno){self._binding=null,self._hadError=!0;var error=new Error(message);error.errno=errno,error.code=exports.codes[errno],self.emit("error",error)};var level=exports.Z_DEFAULT_COMPRESSION;"number"==typeof opts.level&&(level=opts.level);var strategy=exports.Z_DEFAULT_STRATEGY;"number"==typeof opts.strategy&&(strategy=opts.strategy),this._binding.init(opts.windowBits||exports.Z_DEFAULT_WINDOWBITS,level,opts.memLevel||exports.Z_DEFAULT_MEMLEVEL,strategy,opts.dictionary),this._buffer=new Buffer(this._chunkSize),this._offset=0,this._closed=!1,this._level=level,this._strategy=strategy,this.once("end",this.close)}var Transform=require("_stream_transform"),binding=require("./binding"),util=require("util"),assert=require("assert").ok;binding.Z_MIN_WINDOWBITS=8,binding.Z_MAX_WINDOWBITS=15,binding.Z_DEFAULT_WINDOWBITS=15,binding.Z_MIN_CHUNK=64,binding.Z_MAX_CHUNK=1/0,binding.Z_DEFAULT_CHUNK=16384,binding.Z_MIN_MEMLEVEL=1,binding.Z_MAX_MEMLEVEL=9,binding.Z_DEFAULT_MEMLEVEL=8,binding.Z_MIN_LEVEL=-1,binding.Z_MAX_LEVEL=9,binding.Z_DEFAULT_LEVEL=binding.Z_DEFAULT_COMPRESSION,Object.keys(binding).forEach(function(k){k.match(/^Z/)&&(exports[k]=binding[k])}),exports.codes={Z_OK:binding.Z_OK,Z_STREAM_END:binding.Z_STREAM_END,Z_NEED_DICT:binding.Z_NEED_DICT,Z_ERRNO:binding.Z_ERRNO,Z_STREAM_ERROR:binding.Z_STREAM_ERROR,Z_DATA_ERROR:binding.Z_DATA_ERROR,Z_MEM_ERROR:binding.Z_MEM_ERROR,Z_BUF_ERROR:binding.Z_BUF_ERROR,Z_VERSION_ERROR:binding.Z_VERSION_ERROR},Object.keys(exports.codes).forEach(function(k){exports.codes[exports.codes[k]]=k}),exports.Deflate=Deflate,exports.Inflate=Inflate,exports.Gzip=Gzip,exports.Gunzip=Gunzip,exports.DeflateRaw=DeflateRaw,exports.InflateRaw=InflateRaw,exports.Unzip=Unzip,exports.createDeflate=function(o){return new Deflate(o)},exports.createInflate=function(o){return new Inflate(o)},exports.createDeflateRaw=function(o){return new DeflateRaw(o)},exports.createInflateRaw=function(o){return new InflateRaw(o)},exports.createGzip=function(o){return new Gzip(o)},exports.createGunzip=function(o){return new Gunzip(o)},exports.createUnzip=function(o){return new Unzip(o)},exports.deflate=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Deflate(opts),buffer,callback)},exports.deflateSync=function(buffer,opts){return zlibBufferSync(new Deflate(opts),buffer)},exports.gzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Gzip(opts),buffer,callback)},exports.gzipSync=function(buffer,opts){return zlibBufferSync(new Gzip(opts),buffer)},exports.deflateRaw=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new DeflateRaw(opts),buffer,callback)},exports.deflateRawSync=function(buffer,opts){return zlibBufferSync(new DeflateRaw(opts),buffer)},exports.unzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Unzip(opts),buffer,callback)},exports.unzipSync=function(buffer,opts){return zlibBufferSync(new Unzip(opts),buffer)},exports.inflate=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Inflate(opts),buffer,callback)},exports.inflateSync=function(buffer,opts){return zlibBufferSync(new Inflate(opts),buffer)},exports.gunzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Gunzip(opts),buffer,callback)},exports.gunzipSync=function(buffer,opts){return zlibBufferSync(new Gunzip(opts),buffer)},exports.inflateRaw=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new InflateRaw(opts),buffer,callback)},exports.inflateRawSync=function(buffer,opts){return zlibBufferSync(new InflateRaw(opts),buffer)},util.inherits(Zlib,Transform),Zlib.prototype.params=function(level,strategy,callback){if(levelexports.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+level);if(strategy!=exports.Z_FILTERED&&strategy!=exports.Z_HUFFMAN_ONLY&&strategy!=exports.Z_RLE&&strategy!=exports.Z_FIXED&&strategy!=exports.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+strategy);if(this._level!==level||this._strategy!==strategy){var self=this;this.flush(binding.Z_SYNC_FLUSH,function(){self._binding.params(level,strategy),self._hadError||(self._level=level,self._strategy=strategy,callback&&callback())})}else process.nextTick(callback)},Zlib.prototype.reset=function(){return this._binding.reset()},Zlib.prototype._flush=function(callback){this._transform(new Buffer(0),"",callback)},Zlib.prototype.flush=function(kind,callback){var ws=this._writableState;if(("function"==typeof kind||void 0===kind&&!callback)&&(callback=kind,kind=binding.Z_FULL_FLUSH),ws.ended)callback&&process.nextTick(callback);else if(ws.ending)callback&&this.once("end",callback);else if(ws.needDrain){var self=this;this.once("drain",function(){self.flush(callback)})}else this._flushFlag=kind,this.write(new Buffer(0),"",callback)},Zlib.prototype.close=function(callback){if(callback&&process.nextTick(callback),!this._closed){this._closed=!0,this._binding.close();var self=this;process.nextTick(function(){self.emit("close")})}},Zlib.prototype._transform=function(chunk,encoding,cb){var flushFlag,ws=this._writableState,ending=ws.ending||ws.ended,last=ending&&(!chunk||ws.length===chunk.length);if(null===!chunk&&!Buffer.isBuffer(chunk))return cb(new Error("invalid input"));last?flushFlag=binding.Z_FINISH:(flushFlag=this._flushFlag,chunk.length>=ws.length&&(this._flushFlag=this._opts.flush||binding.Z_NO_FLUSH));this._processChunk(chunk,flushFlag,cb)},Zlib.prototype._processChunk=function(chunk,flushFlag,cb){function callback(availInAfter,availOutAfter){if(!self._hadError){var have=availOutBefore-availOutAfter;if(assert(have>=0,"have should not go down"),have>0){var out=self._buffer.slice(self._offset,self._offset+have);self._offset+=have,async?self.push(out):(buffers.push(out),nread+=out.length)}if((0===availOutAfter||self._offset>=self._chunkSize)&&(availOutBefore=self._chunkSize,self._offset=0,self._buffer=new Buffer(self._chunkSize)),0===availOutAfter){if(inOff+=availInBefore-availInAfter,availInBefore=availInAfter,!async)return!0;var newReq=self._binding.write(flushFlag,chunk,inOff,availInBefore,self._buffer,self._offset,self._chunkSize);return newReq.callback=callback,void(newReq.buffer=chunk)}return async?void cb():!1}}var availInBefore=chunk&&chunk.length,availOutBefore=this._chunkSize-this._offset,inOff=0,self=this,async="function"==typeof cb;if(!async){var error,buffers=[],nread=0;this.on("error",function(er){error=er});do var res=this._binding.writeSync(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore);while(!this._hadError&&callback(res[0],res[1]));if(this._hadError)throw error;var buf=Buffer.concat(buffers,nread);return this.close(),buf}var req=this._binding.write(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore);req.buffer=chunk,req.callback=callback},util.inherits(Deflate,Zlib),util.inherits(Inflate,Zlib),util.inherits(Gzip,Zlib),util.inherits(Gunzip,Zlib),util.inherits(DeflateRaw,Zlib),util.inherits(InflateRaw,Zlib),util.inherits(Unzip,Zlib)}).call(this,require("_process"),require("buffer").Buffer)},{"./binding":78,_process:99,_stream_transform:110,assert:75,buffer:80,util:114}],80:[function(require,module,exports){function Buffer(subject,encoding,noZero){if(!(this instanceof Buffer))return new Buffer(subject,encoding,noZero);var length,type=typeof subject;if("number"===type)length=subject>0?subject>>>0:0;else if("string"===type)"base64"===encoding&&(subject=base64clean(subject)),length=Buffer.byteLength(subject,encoding);else{if("object"!==type||null===subject)throw new Error("First argument needs to be a number, array or string.");"Buffer"===subject.type&&isArray(subject.data)&&(subject=subject.data),length=+subject.length>0?Math.floor(+subject.length):0}var buf;TYPED_ARRAY_SUPPORT?buf=Buffer._augment(new Uint8Array(length)):(buf=this,buf.length=length,buf._isBuffer=!0);var i;if(TYPED_ARRAY_SUPPORT&&"number"==typeof subject.byteLength)buf._set(subject);else if(isArrayish(subject))if(Buffer.isBuffer(subject))for(i=0;length>i;i++)buf[i]=subject.readUInt8(i);else for(i=0;length>i;i++)buf[i]=(subject[i]%256+256)%256;else if("string"===type)buf.write(subject,0,encoding);else if("number"===type&&!TYPED_ARRAY_SUPPORT&&!noZero)for(i=0;length>i;i++)buf[i]=0;return buf}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;assert(strLen%2===0,"Invalid hex string"),length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);assert(!isNaN(byte),"Invalid hex string"),buf[offset+i]=byte}return i}function utf8Write(buf,string,offset,length){var charsWritten=blitBuffer(utf8ToBytes(string),buf,offset,length);return charsWritten}function asciiWrite(buf,string,offset,length){var charsWritten=blitBuffer(asciiToBytes(string),buf,offset,length);return charsWritten}function binaryWrite(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){var charsWritten=blitBuffer(base64ToBytes(string),buf,offset,length);return charsWritten}function utf16leWrite(buf,string,offset,length){var charsWritten=blitBuffer(utf16leToBytes(string),buf,offset,length);return charsWritten}function base64Slice(buf,start,end){return base64.fromByteArray(0===start&&end===buf.length?buf:buf.slice(start,end))}function utf8Slice(buf,start,end){var res="",tmp="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)buf[i]<=127?(res+=decodeUtf8Char(tmp)+String.fromCharCode(buf[i]),tmp=""):tmp+="%"+buf[i].toString(16);return res+decodeUtf8Char(tmp)}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)ret+=String.fromCharCode(buf[i]);return ret}function binarySlice(buf,start,end){return asciiSlice(buf,start,end)}function hexSlice(buf,start,end){var len=buf.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out="",i=start;end>i;i++)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i=len)){var val;return littleEndian?(val=buf[offset],len>offset+1&&(val|=buf[offset+1]<<8)):(val=buf[offset]<<8,len>offset+1&&(val|=buf[offset+1])),val}}function readUInt32(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len)){var val;return littleEndian?(len>offset+2&&(val=buf[offset+2]<<16),len>offset+1&&(val|=buf[offset+1]<<8),val|=buf[offset],len>offset+3&&(val+=buf[offset+3]<<24>>>0)):(len>offset+1&&(val=buf[offset+1]<<16),len>offset+2&&(val|=buf[offset+2]<<8),len>offset+3&&(val|=buf[offset+3]),val+=buf[offset]<<24>>>0),val}}function readInt16(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+1=len)){var val=readUInt16(buf,offset,littleEndian,!0),neg=32768&val;return neg?-1*(65535-val+1):val}}function readInt32(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len)){var val=readUInt32(buf,offset,littleEndian,!0),neg=2147483648&val;return neg?-1*(4294967295-val+1):val}}function readFloat(buf,offset,littleEndian,noAssert){return noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(offset+3=len)){for(var i=0,j=Math.min(len-offset,2);j>i;i++)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i);return offset+2}}function writeUInt32(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len)){for(var i=0,j=Math.min(len-offset,4);j>i;i++)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255;return offset+4}}function writeInt16(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+1=len))return value>=0?writeUInt16(buf,value,offset,littleEndian,noAssert):writeUInt16(buf,65535+value+1,offset,littleEndian,noAssert),offset+2}function writeInt32(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len))return value>=0?writeUInt32(buf,value,offset,littleEndian,noAssert):writeUInt32(buf,4294967295+value+1,offset,littleEndian,noAssert),offset+4}function writeFloat(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len))return ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+7=len))return ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){for(str=stringtrim(str).replace(INVALID_BASE64_RE,"");str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function isArray(subject){return(Array.isArray||function(subject){return"[object Array]"===Object.prototype.toString.call(subject)})(subject)}function isArrayish(subject){return isArray(subject)||Buffer.isBuffer(subject)||subject&&"object"==typeof subject&&"number"==typeof subject.length}function toHex(n){return 16>n?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;i=b)byteArray.push(b);else{var start=i;b>=55296&&57343>=b&&i++;for(var h=encodeURIComponent(str.slice(start,i+1)).substr(1).split("%"),j=0;j>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);i++)dst[i+offset]=src[i];return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function verifuint(value,max){assert("number"==typeof value,"cannot write a non-number as a number"),assert(value>=0,"specified a negative value for writing an unsigned value"),assert(max>=value,"value is larger than maximum value for type"),assert(Math.floor(value)===value,"value has a fractional component")}function verifsint(value,max,min){assert("number"==typeof value,"cannot write a non-number as a number"),assert(max>=value,"value larger than maximum allowed value"),assert(value>=min,"value smaller than minimum allowed value"),assert(Math.floor(value)===value,"value has a fractional component")}function verifIEEE754(value,max,min){assert("number"==typeof value,"cannot write a non-number as a number"),assert(max>=value,"value larger than maximum allowed value"),assert(value>=min,"value smaller than minimum allowed value")}function assert(test,message){if(!test)throw new Error(message||"Failed assertion")}var base64=require("base64-js"),ieee754=require("ieee754");exports.Buffer=Buffer,exports.SlowBuffer=Buffer,exports.INSPECT_MAX_BYTES=50,Buffer.poolSize=8192;var TYPED_ARRAY_SUPPORT=function(){try{var buf=new ArrayBuffer(0),arr=new Uint8Array(buf);return arr.foo=function(){return 42},42===arr.foo()&&"function"==typeof arr.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(e){return!1}}();Buffer.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.byteLength=function(str,encoding){var ret;switch(str=str.toString(),encoding||"utf8"){case"hex":ret=str.length/2;break;case"utf8":case"utf-8":ret=utf8ToBytes(str).length;break;case"ascii":case"binary":case"raw":ret=str.length;break;case"base64":ret=base64ToBytes(str).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=2*str.length;break;default:throw new Error("Unknown encoding")}return ret},Buffer.concat=function(list,totalLength){if(assert(isArray(list),"Usage: Buffer.concat(list[, length])"),0===list.length)return new Buffer(0);if(1===list.length)return list[0];var i;if(void 0===totalLength)for(totalLength=0,i=0;ii&&a[i]===b[i];i++);return i!==len&&(x=a[i],y=b[i]),y>x?-1:x>y?1:0},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=Number(offset)||0;var remaining=this.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining,encoding=String(encoding||"utf8").toLowerCase();var ret;switch(encoding){case"hex":ret=hexWrite(this,string,offset,length);break;case"utf8":case"utf-8":ret=utf8Write(this,string,offset,length);break;case"ascii":ret=asciiWrite(this,string,offset,length);break;case"binary":ret=binaryWrite(this,string,offset,length);break;case"base64":ret=base64Write(this,string,offset,length);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=utf16leWrite(this,string,offset,length);break;default:throw new Error("Unknown encoding")}return ret},Buffer.prototype.toString=function(encoding,start,end){var self=this;if(encoding=String(encoding||"utf8").toLowerCase(),start=Number(start)||0,end=void 0===end?self.length:Number(end),end===start)return"";var ret;switch(encoding){case"hex":ret=hexSlice(self,start,end);break;case"utf8":case"utf-8":ret=utf8Slice(self,start,end);break;case"ascii":ret=asciiSlice(self,start,end);break;case"binary":ret=binarySlice(self,start,end);break;case"base64":ret=base64Slice(self,start,end);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=utf16leSlice(self,start,end);break;default:throw new Error("Unknown encoding")}return ret},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Buffer.prototype.equals=function(b){return assert(Buffer.isBuffer(b),"Argument must be a Buffer"),0===Buffer.compare(this,b)},Buffer.prototype.compare=function(b){return assert(Buffer.isBuffer(b),"Argument must be a Buffer"),Buffer.compare(this,b)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||0===end||(end=this.length),target_start||(target_start=0),end!==start&&0!==target.length&&0!==source.length){assert(end>=start,"sourceEnd < sourceStart"),assert(target_start>=0&&target_start=0&&start=0&&end<=source.length,"sourceEnd out of bounds"),end>this.length&&(end=this.length),target.length-target_startlen||!TYPED_ARRAY_SUPPORT)for(var i=0;len>i;i++)target[i+target_start]=this[i+start];else target._set(this.subarray(start,start+len),target_start)}},Buffer.prototype.slice=function(start,end){var len=this.length;if(start=~~start,end=void 0===end?len:~~end,0>start?(start+=len,0>start&&(start=0)):start>len&&(start=len),0>end?(end+=len,0>end&&(end=0)):end>len&&(end=len),start>end&&(end=start),TYPED_ARRAY_SUPPORT)return Buffer._augment(this.subarray(start,end));for(var sliceLen=end-start,newBuf=new Buffer(sliceLen,void 0,!0),i=0;sliceLen>i;i++)newBuf[i]=this[i+start];return newBuf},Buffer.prototype.get=function(offset){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(offset)},Buffer.prototype.set=function(v,offset){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(v,offset)},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||(assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset=this.length?void 0:this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){if(noAssert||(assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset=this.length)){var neg=128&this[offset];return neg?-1*(255-this[offset]+1):this[offset]}},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset=this.length?void 0:(this[offset]=value,offset+1)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){return noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset=this.length?void 0:(value>=0?this.writeUInt8(value,offset,noAssert):this.writeUInt8(255+value+1,offset,noAssert),offset+1)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),assert(end>=start,"end < start"),end!==start&&0!==this.length){assert(start>=0&&start=0&&end<=this.length,"end out of bounds");var i;if("number"==typeof value)for(i=start;end>i;i++)this[i]=value;else{var bytes=utf8ToBytes(value.toString()),len=bytes.length;for(i=start;end>i;i++)this[i]=bytes[i%len]}return this}},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i===exports.INSPECT_MAX_BYTES){out[i+1]="...";break}return""},Buffer.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(TYPED_ARRAY_SUPPORT)return new Buffer(this).buffer;for(var buf=new Uint8Array(this.length),i=0,len=buf.length;len>i;i+=1)buf[i]=this[i];return buf.buffer}throw new Error("Buffer.toArrayBuffer not supported in this browser")};var BP=Buffer.prototype;Buffer._augment=function(arr){return arr._isBuffer=!0,arr._get=arr.get,arr._set=arr.set,arr.get=BP.get,arr.set=BP.set,arr.write=BP.write,arr.toString=BP.toString,arr.toLocaleString=BP.toString,arr.toJSON=BP.toJSON,arr.equals=BP.equals,arr.compare=BP.compare,arr.copy=BP.copy,arr.slice=BP.slice,arr.readUInt8=BP.readUInt8,arr.readUInt16LE=BP.readUInt16LE,arr.readUInt16BE=BP.readUInt16BE,arr.readUInt32LE=BP.readUInt32LE,arr.readUInt32BE=BP.readUInt32BE,arr.readInt8=BP.readInt8,arr.readInt16LE=BP.readInt16LE,arr.readInt16BE=BP.readInt16BE,arr.readInt32LE=BP.readInt32LE,arr.readInt32BE=BP.readInt32BE,arr.readFloatLE=BP.readFloatLE,arr.readFloatBE=BP.readFloatBE,arr.readDoubleLE=BP.readDoubleLE,arr.readDoubleBE=BP.readDoubleBE,arr.writeUInt8=BP.writeUInt8,arr.writeUInt16LE=BP.writeUInt16LE,arr.writeUInt16BE=BP.writeUInt16BE,arr.writeUInt32LE=BP.writeUInt32LE,arr.writeUInt32BE=BP.writeUInt32BE,arr.writeInt8=BP.writeInt8,arr.writeInt16LE=BP.writeInt16LE,arr.writeInt16BE=BP.writeInt16BE,arr.writeInt32LE=BP.writeInt32LE,arr.writeInt32BE=BP.writeInt32BE,arr.writeFloatLE=BP.writeFloatLE,arr.writeFloatBE=BP.writeFloatBE,arr.writeDoubleLE=BP.writeDoubleLE,arr.writeDoubleBE=BP.writeDoubleBE,arr.fill=BP.fill,arr.inspect=BP.inspect,arr.toArrayBuffer=BP.toArrayBuffer,arr};var INVALID_BASE64_RE=/[^+\/0-9A-z]/g},{"base64-js":81,ieee754:82}],81:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(exports){"use strict";function decode(elt){var code=elt.charCodeAt(0);return code===PLUS?62:code===SLASH?63:NUMBER>code?-1:NUMBER+10>code?code-NUMBER+26+26:UPPER+26>code?code-UPPER:LOWER+26>code?code-LOWER+26:void 0}function b64ToByteArray(b64){function push(v){arr[L++]=v}var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0,arr=new Arr(3*b64.length/4-placeHolders),l=placeHolders>0?b64.length-4:b64.length;var L=0;for(i=0,j=0;l>i;i+=4,j+=3)tmp=decode(b64.charAt(i))<<18|decode(b64.charAt(i+1))<<12|decode(b64.charAt(i+2))<<6|decode(b64.charAt(i+3)),push((16711680&tmp)>>16),push((65280&tmp)>>8),push(255&tmp);return 2===placeHolders?(tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4,push(255&tmp)):1===placeHolders&&(tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2,push(tmp>>8&255),push(255&tmp)),arr}function uint8ToBase64(uint8){function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(63&num)}var i,temp,length,extraBytes=uint8.length%3,output="";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=encode(temp>>2),output+=encode(temp<<4&63),output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1],output+=encode(temp>>10),output+=encode(temp>>4&63),output+=encode(temp<<2&63),output+="="}return output}var Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,PLUS="+".charCodeAt(0),SLASH="/".charCodeAt(0),NUMBER="0".charCodeAt(0),LOWER="a".charCodeAt(0),UPPER="A".charCodeAt(0);exports.toByteArray=b64ToByteArray,exports.fromByteArray=uint8ToBase64}("undefined"==typeof exports?this.base64js={}:exports)},{}],82:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],83:[function(require,module){(function(Buffer){function toConstructor(fn){return function(){var buffers=[],m={update:function(data,enc){return Buffer.isBuffer(data)||(data=new Buffer(data,enc)),buffers.push(data),this},digest:function(enc){var buf=Buffer.concat(buffers),r=fn(buf);return buffers=null,enc?r.toString(enc):r}};return m}}var createHash=require("sha.js"),md5=toConstructor(require("./md5")),rmd160=toConstructor(require("ripemd160"));module.exports=function(alg){return"md5"===alg?new md5:"rmd160"===alg?new rmd160:createHash(alg)}}).call(this,require("buffer").Buffer)},{"./md5":87,buffer:80,ripemd160:88,"sha.js":90}],84:[function(require,module){(function(Buffer){function Hmac(alg,key){if(!(this instanceof Hmac))return new Hmac(alg,key);this._opad=opad,this._alg=alg,key=this._key=Buffer.isBuffer(key)?key:new Buffer(key),key.length>blocksize?key=createHash(alg).update(key).digest():key.lengthi;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=createHash(alg).update(ipad)}var createHash=require("./create-hash"),blocksize=64,zeroBuffer=new Buffer(blocksize);zeroBuffer.fill(0),module.exports=Hmac,Hmac.prototype.update=function(data,enc){return this._hash.update(data,enc),this},Hmac.prototype.digest=function(enc){var h=this._hash.digest();return createHash(this._alg).update(this._opad).update(h).digest(enc)}}).call(this,require("buffer").Buffer)},{"./create-hash":83,buffer:80}],85:[function(require,module){(function(Buffer){function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}for(var arr=[],fn=bigEndian?buf.readInt32BE:buf.readInt32LE,i=0;i>5]|=128<>>9<<4)+14]=len;for(var a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function bit_rol(num,cnt){return num<>>32-cnt}var helpers=require("./helpers");module.exports=function(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":85}],88:[function(require,module){(function(Buffer){function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof message&&(message=new Buffer(message,"utf8"));var m=bytesToWords(message),nBitsLeft=8*message.length,nBitsTotal=8*message.length;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,m[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8);for(var i=0;ii;i++){var H_i=H[i];H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8)}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}module.exports=ripemd160;var zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0],bytesToWords=function(bytes){for(var words=[],i=0,b=0;i>>5]|=bytes[i]<<24-b%32;return words},wordsToBytes=function(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes},processBlock=function(H,M,offset){for(var i=0;16>i;i++){var offset_i=offset+i,M_offset_i=M[offset_i];M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8)}var al,bl,cl,dl,el,ar,br,cr,dr,er;ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4];for(var t,i=0;80>i;i+=1)t=al+M[offset+zl[i]]|0,t+=16>i?f1(bl,cl,dl)+hl[0]:32>i?f2(bl,cl,dl)+hl[1]:48>i?f3(bl,cl,dl)+hl[2]:64>i?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=16>i?f5(br,cr,dr)+hr[0]:32>i?f4(br,cr,dr)+hr[1]:48>i?f3(br,cr,dr)+hr[2]:64>i?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t}}).call(this,require("buffer").Buffer)},{buffer:80}],89:[function(require,module){var u=require("./util"),write=u.write,fill=u.zeroFill;module.exports=function(Buffer){function Hash(blockSize,finalSize){this._block=new Buffer(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0,this._s=0}function lengthOf(data,enc){return null==enc?data.byteLength||data.length:"ascii"==enc||"binary"==enc?data.length:"hex"==enc?data.length/2:"base64"==enc?data.length/3:void 0}return Hash.prototype.init=function(){this._s=0,this._len=0},Hash.prototype.update=function(data,enc){var length,bl=this._blockSize;enc||"string"!=typeof data||(enc="utf8"),enc?("utf-8"===enc&&(enc="utf8"),("base64"===enc||"utf8"===enc)&&(data=new Buffer(data,enc),enc=null),length=lengthOf(data,enc)):length=data.byteLength||data.length;for(var l=this._len+=length,s=this._s=this._s||0,f=0,buffer=this._block;l>s;){var t=Math.min(length,f+bl-s%bl);write(buffer,data,enc,s%bl,f,t);var ch=t-f;s+=ch,f+=ch,s%bl||this._update(buffer)}return this._s=s,this},Hash.prototype.digest=function(enc){var bl=this._blockSize,fl=this._finalSize,len=8*this._len,x=this._block,bits=len%(8*bl);x[this._len%bl]=128,fill(this._block,this._len%bl+1),bits>=8*fl&&(this._update(this._block),u.zeroFill(this._block,0)),x.writeInt32BE(len,fl+4);var hash=this._update(this._block)||this._hash();return null==enc?hash:hash.toString(enc)},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},Hash}},{"./util":93}],90:[function(require,module,exports){var exports=module.exports=function(alg){var Alg=exports[alg];if(!Alg)throw new Error(alg+" is not supported (we accept pull requests)");return new Alg},Buffer=require("buffer").Buffer,Hash=require("./hash")(Buffer);exports.sha=exports.sha1=require("./sha1")(Buffer,Hash),exports.sha256=require("./sha256")(Buffer,Hash)},{"./hash":89,"./sha1":91,"./sha256":92,buffer:80}],91:[function(require,module){module.exports=function(Buffer,Hash){function Sha1(){return POOL.length?POOL.pop().init():this instanceof Sha1?(this._w=W,Hash.call(this,64,56),this._h=null,void this.init()):new Sha1}function sha1_ft(t,b,c,d){return 20>t?b&c|~b&d:40>t?b^c^d:60>t?b&c|b&d|c&d:b^c^d}function sha1_kt(t){return 20>t?1518500249:40>t?1859775393:60>t?-1894007588:-899497514}function add(x,y){return x+y|0}function rol(num,cnt){return num<>>32-cnt}var inherits=require("util").inherits;inherits(Sha1,Hash);var A=0,B=4,C=8,D=12,E=16,W=new Int32Array(80),POOL=[];Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,Hash.prototype.init.call(this),this},Sha1.prototype._POOL=POOL;new Buffer(1)instanceof DataView;return Sha1.prototype._update=function(){{var a,b,c,d,e,_a,_b,_c,_d,_e,X=this._block;this._h}a=_a=this._a,b=_b=this._b,c=_c=this._c,d=_d=this._d,e=_e=this._e;for(var w=this._w,j=0;80>j;j++){var W=w[j]=16>j?X.readInt32BE(4*j):rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1),t=add(add(rol(a,5),sha1_ft(j,b,c,d)),add(add(e,W),sha1_kt(j)));e=d,d=c,c=rol(b,30),b=a,a=t}this._a=add(a,_a),this._b=add(b,_b),this._c=add(c,_c),this._d=add(d,_d),this._e=add(e,_e) },Sha1.prototype._hash=function(){POOL.length<100&&POOL.push(this);var H=new Buffer(20);return H.writeInt32BE(0|this._a,A),H.writeInt32BE(0|this._b,B),H.writeInt32BE(0|this._c,C),H.writeInt32BE(0|this._d,D),H.writeInt32BE(0|this._e,E),H},Sha1}},{util:114}],92:[function(require,module){{var inherits=require("util").inherits;require("./util")}module.exports=function(Buffer,Hash){function Sha256(){POOL.length,this.init(),this._w=W,Hash.call(this,64,56)}function S(X,n){return X>>>n|X<<32-n}function R(X,n){return X>>>n}function Ch(x,y,z){return x&y^~x&z}function Maj(x,y,z){return x&y^x&z^y&z}function Sigma0256(x){return S(x,2)^S(x,13)^S(x,22)}function Sigma1256(x){return S(x,6)^S(x,11)^S(x,25)}function Gamma0256(x){return S(x,7)^S(x,18)^R(x,3)}function Gamma1256(x){return S(x,17)^S(x,19)^R(x,10)}var K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];inherits(Sha256,Hash);var W=new Array(64),POOL=[];Sha256.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this._len=this._s=0,this};return Sha256.prototype._update=function(){var a,b,c,d,e,f,g,h,T1,T2,M=this._block,W=this._w;a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h;for(var j=0;64>j;j++){var w=W[j]=16>j?M.readInt32BE(4*j):Gamma1256(W[j-2])+W[j-7]+Gamma0256(W[j-15])+W[j-16];T1=h+Sigma1256(e)+Ch(e,f,g)+K[j]+w,T2=Sigma0256(a)+Maj(a,b,c),h=g,g=f,f=e,e=d+T1,d=c,c=b,b=a,a=T1+T2}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){POOL.length<10&&POOL.push(this);var H=new Buffer(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},Sha256}},{"./util":93,util:114}],93:[function(require,module,exports){function write(buffer,string,enc,start,from,to){var l=to-from;if("ascii"===enc||"binary"===enc)for(var i=0;l>i;i++)buffer[start+i]=string.charCodeAt(i+from);else if(null==enc)for(var i=0;l>i;i++)buffer[start+i]=string[i+from];else{if("hex"!==enc)throw new Error("base64"===enc?"base64 encoding not yet supported":enc+" encoding not yet supported");for(var i=0;l>i;i++){var j=from+i;buffer[start+i]=parseInt(string[2*j]+string[2*j+1],16)}}}function zeroFill(buf,from){for(var i=from;iiterations)throw new TypeError("Bad iterations");if("number"!=typeof keylen)throw new TypeError("Key length not a number");if(0>keylen)throw new TypeError("Bad key length");var key=Buffer.isBuffer(key)?key:new Buffer(key);key.length>blocksize?key=createHash(alg).update(key).digest():key.length20?20:keylen,itmp[0]=i>>24&255,itmp[1]=i>>16&255,itmp[2]=i>>8&255,itmp[3]=255&i,HMAC=createHmac("sha1",key),HMAC.update(salt),HMAC.update(itmp),digtmp=HMAC.digest(),digtmp.copy(out,p,0,cplen);for(var j=1;iterations>j;j++){HMAC=createHmac("sha1",key),HMAC.update(digtmp),digtmp=HMAC.digest();for(var k=0;cplen>k;k++)out[k]^=digtmp[k]}keylen-=cplen,i++,p+=cplen}return out},exports}}).call(this,require("buffer").Buffer)},{buffer:80}],95:[function(require,module){(function(Buffer){!function(){module.exports=function(size){var bytes=new Buffer(size);return crypto.getRandomValues(bytes),bytes}}()}).call(this,require("buffer").Buffer)},{buffer:80}],96:[function(require,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length))throw er=arguments[1],er instanceof Error?er:TypeError('Uncaught, unspecified "error" event.');if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],97:[function(require,module){module.exports="function"==typeof Object.create?function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],98:[function(require,module){module.exports=Array.isArray||function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}},{}],99:[function(require,module){function noop(){}var process=module.exports={};process.nextTick=function(){var canSetImmediate="undefined"!=typeof window&&window.setImmediate,canPost="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener("message",function(ev){var source=ev.source;if((source===window||null===source)&&"process-tick"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage("process-tick","*")}}return function(fn){setTimeout(fn,0)}}(),process.title="browser",process.browser=!0,process.env={},process.argv=[],process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(){throw new Error("process.chdir is not supported")}},{}],100:[function(require,module){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":101}],101:[function(require,module){(function(process){function Duplex(options){return this instanceof Duplex?(Readable.call(this,options),Writable.call(this,options),options&&options.readable===!1&&(this.readable=!1),options&&options.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,options&&options.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",onend)):new Duplex(options)}function onend(){this.allowHalfOpen||this._writableState.ended||process.nextTick(this.end.bind(this))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}module.exports=Duplex;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys},util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");util.inherits(Duplex,Readable),forEach(objectKeys(Writable.prototype),function(method){Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])})}).call(this,require("_process"))},{"./_stream_readable":103,"./_stream_writable":105,_process:99,"core-util-is":106,inherits:97}],102:[function(require,module){function PassThrough(options){return this instanceof PassThrough?void Transform.call(this,options):new PassThrough(options)}module.exports=PassThrough;var Transform=require("./_stream_transform"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(PassThrough,Transform),PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":104,"core-util-is":106,inherits:97}],103:[function(require,module){(function(process){function ReadableState(options){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||0===hwm?hwm:16384,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=!1,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.calledRead=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!options.objectMode,this.defaultEncoding=options.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){return this instanceof Readable?(this._readableState=new ReadableState(options,this),this.readable=!0,void Stream.call(this)):new Readable(options)}function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er)stream.emit("error",er);else if(null===chunk||void 0===chunk)state.reading=!1,state.ended||onEofChunk(stream,state);else if(state.objectMode||chunk&&chunk.length>0)if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else!state.decoder||addToFront||encoding||(chunk=state.decoder.write(chunk)),state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):(state.reading=!1,state.buffer.push(chunk)),state.needReadable&&emitReadable(stream),maybeReadMore(stream,state);else addToFront||(state.reading=!1);return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length=MAX_HWM)n=MAX_HWM;else{n--;for(var p=1;32>p;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){return 0===state.length&&state.ended?0:state.objectMode?0===n?0:1:isNaN(n)||null===n?state.flowing&&state.buffer.length?state.buffer[0].length:state.length:0>=n?0:(n>state.highWaterMark&&(state.highWaterMark=roundUpToNextPowerOf2(n)),n>state.length?state.ended?state.length:(state.needReadable=!0,0):n)}function chunkInvalid(state,chunk){var er=null;return Buffer.isBuffer(chunk)||"string"==typeof chunk||null===chunk||void 0===chunk||state.objectMode||er||(er=new TypeError("Invalid non-string/buffer chunk")),er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,state.length>0?emitReadable(stream):endReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=!1,state.emittedReadable||(state.emittedReadable=!0,state.sync?process.nextTick(function(){emitReadable_(stream)}):emitReadable_(stream))}function emitReadable_(stream){stream.emit("readable")}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(function(){maybeReadMore_(stream,state)}))}function maybeReadMore_(stream,state){for(var len=state.length;!state.reading&&!state.flowing&&!state.ended&&state.length0)return;return 0===state.pipesCount?(state.flowing=!1,void(EE.listenerCount(src,"data")>0&&emitDataEvents(src))):void(state.ranOut=!0)}function pipeOnReadable(){this._readableState.ranOut&&(this._readableState.ranOut=!1,flow(this))}function emitDataEvents(stream,startPaused){var state=stream._readableState;if(state.flowing)throw new Error("Cannot switch to old mode now.");var paused=startPaused||!1,readable=!1;stream.readable=!0,stream.pipe=Stream.prototype.pipe,stream.on=stream.addListener=Stream.prototype.on,stream.on("readable",function(){readable=!0;for(var c;!paused&&null!==(c=stream.read());)stream.emit("data",c);null===c&&(readable=!1,stream._readableState.needReadable=!0)}),stream.pause=function(){paused=!0,this.emit("pause")},stream.resume=function(){paused=!1,readable?process.nextTick(function(){stream.emit("readable")}):this.read(0),this.emit("resume")},stream.emit("readable")}function fromList(n,state){var ret,list=state.buffer,length=state.length,stringMode=!!state.decoder,objectMode=!!state.objectMode;if(0===list.length)return null;if(0===length)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length)ret=stringMode?list.join(""):Buffer.concat(list,length),list.length=0;else if(ni&&n>c;i++){var buf=list[0],cpy=Math.min(n-c,buf.length);stringMode?ret+=buf.slice(0,cpy):buf.copy(ret,c,0,cpy),cpy0)throw new Error("endReadable called on non-empty stream");!state.endEmitted&&state.calledRead&&(state.ended=!0,process.nextTick(function(){state.endEmitted||0!==state.length||(state.endEmitted=!0,stream.readable=!1,stream.emit("end"))}))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}function indexOf(xs,x){for(var i=0,l=xs.length;l>i;i++)if(xs[i]===x)return i;return-1}module.exports=Readable;var isArray=require("isarray"),Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;EE.listenerCount||(EE.listenerCount=function(emitter,type){return emitter.listeners(type).length});var Stream=require("stream"),util=require("core-util-is");util.inherits=require("inherits");var StringDecoder;util.inherits(Readable,Stream),Readable.prototype.push=function(chunk,encoding){var state=this._readableState;return"string"!=typeof chunk||state.objectMode||(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=new Buffer(chunk,encoding),encoding="")),readableAddChunk(this,state,chunk,encoding,!1)},Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",!0)},Readable.prototype.setEncoding=function(enc){StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this._readableState.decoder=new StringDecoder(enc),this._readableState.encoding=enc};var MAX_HWM=8388608;Readable.prototype.read=function(n){var state=this._readableState;state.calledRead=!0;var nOrig=n;if(("number"!=typeof n||n>0)&&(state.emittedReadable=!1),0===n&&state.needReadable&&(state.length>=state.highWaterMark||state.ended))return emitReadable(this),null;if(n=howMuchToRead(n,state),0===n&&state.ended)return 0===state.length&&endReadable(this),null;var doRead=state.needReadable;state.length-n<=state.highWaterMark&&(doRead=!0),(state.ended||state.reading)&&(doRead=!1),doRead&&(state.reading=!0,state.sync=!0,0===state.length&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1),doRead&&!state.reading&&(n=howMuchToRead(nOrig,state));var ret;return ret=n>0?fromList(n,state):null,null===ret&&(state.needReadable=!0,n=0),state.length-=n,0!==state.length||state.ended||(state.needReadable=!0),state.ended&&!state.endEmitted&&0===state.length&&endReadable(this),ret},Readable.prototype._read=function(){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(dest,pipeOpts){function onunpipe(readable){readable===src&&cleanup()}function onend(){dest.end()}function cleanup(){dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",cleanup),(!dest._writableState||dest._writableState.needDrain)&&ondrain()}function onerror(er){unpipe(),dest.removeListener("error",onerror),0===EE.listenerCount(dest,"error")&&dest.emit("error",er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){dest.removeListener("close",onclose),unpipe()}function unpipe(){src.unpipe(dest)}var src=this,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)}state.pipesCount+=1;var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:cleanup;state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=pipeOnDrain(src);return dest.on("drain",ondrain),dest._events&&dest._events.error?isArray(dest._events.error)?dest._events.error.unshift(onerror):dest._events.error=[onerror,dest._events.error]:dest.on("error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(this.on("readable",pipeOnReadable),state.flowing=!0,process.nextTick(function(){flow(src)})),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState;if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,this.removeListener("readable",pipeOnReadable),state.flowing=!1,dest&&dest.emit("unpipe",this),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,this.removeListener("readable",pipeOnReadable),state.flowing=!1;for(var i=0;len>i;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);return-1===i?this:(state.pipes.splice(i,1),state.pipesCount-=1,1===state.pipesCount&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this),this)},Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if("data"!==ev||this._readableState.flowing||emitDataEvents(this),"readable"===ev&&this.readable){var state=this._readableState;state.readableListening||(state.readableListening=!0,state.emittedReadable=!1,state.needReadable=!0,state.reading?state.length&&emitReadable(this,state):this.read(0))}return res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.resume=function(){emitDataEvents(this),this.read(0),this.emit("resume")},Readable.prototype.pause=function(){emitDataEvents(this,!0),this.emit("pause")},Readable.prototype.wrap=function(stream){var state=this._readableState,paused=!1,self=this;stream.on("end",function(){if(state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&self.push(chunk)}self.push(null)}),stream.on("data",function(chunk){if(state.decoder&&(chunk=state.decoder.write(chunk)),chunk&&(state.objectMode||chunk.length)){var ret=self.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)"function"==typeof stream[i]&&"undefined"==typeof this[i]&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));var events=["error","close","destroy","pause","resume"];return forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))}),self._read=function(){paused&&(paused=!1,stream.resume())},self},Readable._fromList=fromList}).call(this,require("_process"))},{_process:99,buffer:80,"core-util-is":106,events:96,inherits:97,isarray:98,stream:112,"string_decoder/":107}],104:[function(require,module){function TransformState(options,stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=!1;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null,ts.writecb=null,null!==data&&void 0!==data&&stream.push(data),cb&&cb(er);var rs=stream._readableState;rs.reading=!1,(rs.needReadable||rs.length=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;if(buffer.copy(this.charBuffer,this.charReceived,offset,i),this.charReceived+=i-offset,offset=i,this.charReceived=55296&&56319>=charCode)){if(this.charReceived=this.charLength=0,i==buffer.length)return charStr;buffer=buffer.slice(i,buffer.length);break}this.charLength+=this.surrogateSize,charStr=""}var lenIncomplete=this.detectIncompleteChar(buffer),end=buffer.length;this.charLength&&(buffer.copy(this.charBuffer,0,buffer.length-lenIncomplete,end),this.charReceived=lenIncomplete,end-=lenIncomplete),charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1,charCode=charStr.charCodeAt(end);if(charCode>=55296&&56319>=charCode){var size=this.surrogateSize;return this.charLength+=size,this.charReceived+=size,this.charBuffer.copy(this.charBuffer,size,0,size),this.charBuffer.write(charStr.charAt(charStr.length-1),this.encoding),charStr.substring(0,end)}return charStr},StringDecoder.prototype.detectIncompleteChar=function(buffer){for(var i=buffer.length>=3?3:buffer.length;i>0;i--){var c=buffer[buffer.length-i];if(1==i&&c>>5==6){this.charLength=2;break}if(2>=i&&c>>4==14){this.charLength=3;break}if(3>=i&&c>>3==30){this.charLength=4;break}}return i},StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length&&(res=this.write(buffer)),this.charReceived){var cr=this.charReceived,buf=this.charBuffer,enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res}},{buffer:80}],108:[function(require,module){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":102}],109:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js"),exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":101,"./lib/_stream_passthrough.js":102,"./lib/_stream_readable.js":103,"./lib/_stream_transform.js":104,"./lib/_stream_writable.js":105}],110:[function(require,module){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":104}],111:[function(require,module){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":105}],112:[function(require,module){function Stream(){EE.call(this)}module.exports=Stream;var EE=require("events").EventEmitter,inherits=require("inherits");inherits(Stream,EE),Stream.Readable=require("readable-stream/readable.js"),Stream.Writable=require("readable-stream/writable.js"),Stream.Duplex=require("readable-stream/duplex.js"),Stream.Transform=require("readable-stream/transform.js"),Stream.PassThrough=require("readable-stream/passthrough.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}var source=this;source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&options.end===!1||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:96,inherits:97,"readable-stream/duplex.js":100,"readable-stream/passthrough.js":108,"readable-stream/readable.js":109,"readable-stream/transform.js":110,"readable-stream/writable.js":111}],113:[function(require,module){module.exports=require(76)},{}],114:[function(require,module){module.exports=require(77)},{"./support/isBuffer":113,_process:99,inherits:97}],115:[function(require,module,exports){(function(){var BaseError,Canceler,EscErr,EscOk,c_to_camel,ipush,make_error_klass,make_errors,make_esc,to_lower,util,__slice=[].slice;util=require("util"),exports.BaseError=BaseError=function(msg){return Error.captureStackTrace(this,this.constructor),this.message=msg||"Error"},util.inherits(BaseError,Error),BaseError.prototype.name="BaseError",to_lower=function(s){return s[0].toUpperCase()+s.slice(1).toLowerCase()},c_to_camel=function(s){var p;return function(){var _i,_len,_ref,_results;for(_ref=s.split(/_/),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],_results.push(to_lower(p));return _results}().join("")},make_error_klass=function(k,code,default_msg){var ctor;return ctor=function(msg){return BaseError.call(this,msg||default_msg,this.constructor),this.istack=[],this.code=code,this},util.inherits(ctor,BaseError),ctor.prototype.name=k,ctor.prototype.inspect=function(){return"["+k+": "+this.message+" (code "+this.code+")]"},ctor},exports.make_errors=make_errors=function(d){var enam,errno,k,msg,out,val;out={msg:{},name:{},code:{}},d.OK="Success",errno=100;for(k in d)msg=d[k],"OK"!==k?(enam=c_to_camel(k)+"Error",val=errno++,out[enam]=make_error_klass(enam,val,msg)):val=0,out[k]=val,out.msg[k]=out.msg[val]=msg,out.name[k]=out.name[val]=k,out.code[k]=val;return out},ipush=function(e,msg){return null!=msg?(null==e.istack&&(e.istack=[]),e.istack.push(msg)):void 0},exports.make_esc=make_esc=function(gcb,where){return function(lcb){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null==err?lcb.apply(null,args):gcb.__esc?void 0:(gcb.__esc=!0,ipush(err,where),gcb(err))}}},exports.EscOk=EscOk=function(){function EscOk(gcb,where){this.gcb=gcb,this.where=where}return EscOk.prototype.bailout=function(){var t;return this.gcb?(t=this.gcb,this.gcb=null,t(!1)):void 0},EscOk.prototype.check_ok=function(cb){return function(_this){return function(){var args,ok;return ok=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],ok?cb.apply(null,args):_this.bailout()}}(this)},EscOk.prototype.check_err=function(cb){return function(_this){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null!=err?(ipush(err,_this.where),_this.bailout()):cb.apply(null,args)}}(this)},EscOk.prototype.check_non_null=function(cb){return function(_this){return function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],null==args[0]?_this.bailout():cb.apply(null,args)}}(this)},EscOk}(),exports.EscErr=EscErr=function(){function EscErr(gcb,where){this.gcb=gcb,this.where=where}return EscErr.prototype.finish=function(err){var t;return this.gcb?(t=this.gcb,this.gcb=null,t(err)):void 0},EscErr.prototype.check_ok=function(cb,eclass,emsg){return null==eclass&&(eclass=Error),null==emsg&&(emsg=null),function(){var args,err,ok;return ok=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],ok?cb.apply(null,args):(err=new eclass(emsg),ipush(err,this.where),this.finish(err))}},EscErr.prototype.check_err=function(cb){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null!=err?(ipush(err,this.where),this.finish(err)):cb.apply(null,args)}},EscErr}(),exports.Canceler=Canceler=function(){function Canceler(klass){this.klass=null!=klass?klass:Error,this._canceled=!1}return Canceler.prototype.is_canceled=function(){return this._canceled},Canceler.prototype.is_ok=function(){return!this._canceled},Canceler.prototype.cancel=function(){return this._canceled=!0},Canceler.prototype.err=function(){return this._canceled?new this.klass("Aborted"):null},Canceler}(),exports.chain=function(cb,f){return function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],f(function(){return cb.apply(null,args)})}},exports.chain_err=function(cb,f){return function(){var args0;return args0=1<=arguments.length?__slice.call(arguments,0):[],f(function(){var args1;return args1=1<=arguments.length?__slice.call(arguments,0):[],cb.apply(null,null!=args1[0]&&null==args0[0]?args1:args0)})}}}).call(this)},{util:114}],116:[function(require,module){(function(){module.exports={k:"__iced_k",k_noop:"__iced_k_noop",param:"__iced_p_",ns:"iced",runtime:"runtime",Deferrals:"Deferrals",deferrals:"__iced_deferrals",fulfill:"_fulfill",b_while:"_break",t_while:"_while",c_while:"_continue",n_while:"_next",n_arg:"__iced_next_arg",defer_method:"defer",slot:"__slot",assign_fn:"assign_fn",autocb:"autocb",retslot:"ret",trace:"__iced_trace",passed_deferral:"__iced_passed_deferral",findDeferral:"findDeferral",lineno:"lineno",parent:"parent",filename:"filename",funcname:"funcname",catchExceptions:"catchExceptions",runtime_modes:["node","inline","window","none","browserify","interp"],trampoline:"trampoline",context:"context"}}).call(this)},{}],117:[function(require,module,exports){(function(){var C,Pipeliner,iced,__iced_k,__iced_k_noop,_iand,_ior,_timeout,__slice=[].slice;__iced_k=__iced_k_noop=function(){},C=require("./const"),exports.iced=iced=require("./runtime"),_timeout=function(cb,t,res,tmp){var arr,rv,which,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),rv=new iced.Rendezvous,tmp[0]=rv.id(!0).defer({assign_fn:function(){return function(){return function(){return arr=__slice.call(arguments,0)}}}(this)(),lineno:20,context:__iced_deferrals}),setTimeout(rv.id(!1).defer({lineno:21,context:__iced_deferrals}),t),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),rv.wait(__iced_deferrals.defer({assign_fn:function(){return function(){return which=arguments[0]}}(),lineno:22})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return res&&(res[0]=which),cb.apply(null,arr)}}(this))},exports.timeout=function(cb,t,res){var tmp;return tmp=[],_timeout(cb,t,res,tmp),tmp[0]},_iand=function(cb,res,tmp){var ok,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),tmp[0]=__iced_deferrals.defer({assign_fn:function(){return function(){return ok=arguments[0]}}(),lineno:39}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return ok||(res[0]=!1),cb()}}(this))},exports.iand=function(cb,res){var tmp;return tmp=[],_iand(cb,res,tmp),tmp[0]},_ior=function(cb,res,tmp){var ok,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),tmp[0]=__iced_deferrals.defer({assign_fn:function(){return function(){return ok=arguments[0]}}(),lineno:58}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return ok&&(res[0]=!0),cb()}}(this))},exports.ior=function(cb,res){var tmp;return tmp=[],_ior(cb,res,tmp),tmp[0]},exports.Pipeliner=Pipeliner=function(){function Pipeliner(window,delay){this.window=window||1,this.delay=delay||0,this.queue=[],this.n_out=0,this.cb=null,this[C.deferrals]=this,this.defer=this._defer}return Pipeliner.prototype.waitInQueue=function(cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_this.n_out>=_this.window?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),_this.cb=__iced_deferrals.defer({lineno:100}),__iced_deferrals._fulfill()}(_next):_break()})(__iced_k)}}(this)(function(_this){return function(){_this.n_out++,function(__iced_k){return _this.delay?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),setTimeout(__iced_deferrals.defer({lineno:108}),_this.delay),__iced_deferrals._fulfill()}(__iced_k):__iced_k()}(function(){return cb()})}}(this))},Pipeliner.prototype.__defer=function(out,deferArgs){var tmp,voidCb,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.__defer"}),voidCb=__iced_deferrals.defer({lineno:122}),out[0]=function(){var args,_ref;return args=1<=arguments.length?__slice.call(arguments,0):[],null!=(_ref=deferArgs.assign_fn)&&_ref.apply(null,args),voidCb()},__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return _this.n_out--,_this.cb?(tmp=_this.cb,_this.cb=null,tmp()):void 0}}(this))},Pipeliner.prototype._defer=function(deferArgs){var tmp;return tmp=[],this.__defer(tmp,deferArgs),tmp[0]},Pipeliner.prototype.flush=function(autocb){var ___iced_passed_deferral,__iced_k,_results,_while;__iced_k=autocb,___iced_passed_deferral=iced.findDeferral(arguments),_results=[],(_while=function(_this){var __iced_deferrals;return function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_this.n_out?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.flush"}),_this.cb=__iced_deferrals.defer({lineno:151}),__iced_deferrals._fulfill()}(_next):_break()}}(this))(__iced_k)},Pipeliner}()}).call(this)},{"./const":116,"./runtime":119}],118:[function(require,module,exports){(function(){var k,mod,mods,v,_i,_len;for(exports["const"]=require("./const"),mods=[require("./runtime"),require("./library")],_i=0,_len=mods.length;_len>_i;_i++){mod=mods[_i];for(k in mod)v=mod[k],exports[k]=v}}).call(this)},{"./const":116,"./library":117,"./runtime":119}],119:[function(require,module,exports){(function(process){(function(){var C,Deferrals,Rendezvous,exceptionHandler,findDeferral,make_defer_return,stackWalk,tick_counter,trampoline,warn,__active_trace,__c,_trace_to_string,__slice=[].slice;C=require("./const"),make_defer_return=function(obj,defer_args,id,trace_template,multi){var k,ret,trace,v;trace={};for(k in trace_template)v=trace_template[k],trace[k]=v;return trace[C.lineno]=null!=defer_args?defer_args[C.lineno]:void 0,ret=function(){var inner_args,o,_ref;return inner_args=1<=arguments.length?__slice.call(arguments,0):[],null!=defer_args&&null!=(_ref=defer_args.assign_fn)&&_ref.apply(null,inner_args),obj?(o=obj,multi||(obj=null),o._fulfill(id,trace)):warn("overused deferral at "+_trace_to_string(trace))},ret[C.trace]=trace,ret},__c=0,tick_counter=function(mod){return __c++,__c%mod===0?(__c=0,!0):!1},__active_trace=null,_trace_to_string=function(tr){var fn;return fn=tr[C.funcname]||"",""+fn+" ("+tr[C.filename]+":"+(tr[C.lineno]+1)+")"},warn=function(m){return"undefined"!=typeof console&&null!==console?console.error("ICED warning: "+m):void 0},exports.trampoline=trampoline=function(fn){return tick_counter(500)?"undefined"!=typeof process&&null!==process?process.nextTick(fn):setTimeout(fn):fn()},exports.Deferrals=Deferrals=function(){function Deferrals(k,trace){this.trace=trace,this.continuation=k,this.count=1,this.ret=null}return Deferrals.prototype._call=function(trace){var c;return this.continuation?(__active_trace=trace,c=this.continuation,this.continuation=null,c(this.ret)):warn("Entered dead await at "+_trace_to_string(trace))},Deferrals.prototype._fulfill=function(id,trace){return--this.count>0?void 0:trampoline(function(_this){return function(){return _this._call(trace)}}(this))},Deferrals.prototype.defer=function(args){var self;return this.count++,self=this,make_defer_return(self,args,null,this.trace)},Deferrals}(),exports.findDeferral=findDeferral=function(args){var a,_i,_len;for(_i=0,_len=args.length;_len>_i;_i++)if(a=args[_i],null!=a?a[C.trace]:void 0)return a;return null},exports.Rendezvous=Rendezvous=function(){function Rendezvous(){this.completed=[],this.waiters=[],this.defer_id=0}var RvId;return RvId=function(){function RvId(rv,id,multi){this.rv=rv,this.id=id,this.multi=multi}return RvId.prototype.defer=function(defer_args){return this.rv._defer_with_id(this.id,defer_args,this.multi)},RvId}(),Rendezvous.prototype.wait=function(cb){var x;return this.completed.length?(x=this.completed.shift(),cb(x)):this.waiters.push(cb)},Rendezvous.prototype.defer=function(defer_args){var id;return id=this.defer_id++,this._defer_with_id(id,defer_args)},Rendezvous.prototype.id=function(i,multi){return multi=!!multi,new RvId(this,i,multi)},Rendezvous.prototype._fulfill=function(id){var cb;return this.waiters.length?(cb=this.waiters.shift())(id):this.completed.push(id)},Rendezvous.prototype._defer_with_id=function(id,defer_args,multi){return this.count++,make_defer_return(this,defer_args,id,{},multi)},Rendezvous}(),exports.stackWalk=stackWalk=function(cb){var line,ret,tr,_ref;for(ret=[],tr=cb?cb[C.trace]:__active_trace;tr;)line=" at "+_trace_to_string(tr),ret.push(line),tr=null!=tr&&null!=(_ref=tr[C.parent])?_ref[C.trace]:void 0;return ret},exports.exceptionHandler=exceptionHandler=function(err,logger){var stack;return logger||(logger=console.error),logger(err.stack),stack=stackWalk(),stack.length?(logger("Iced 'stack' trace (w/ real line numbers):"),logger(stack.join("\n"))):void 0},exports.catchExceptions=function(logger){return"undefined"!=typeof process&&null!==process?process.on("uncaughtException",function(err){return exceptionHandler(err,logger),process.exit(1)}):void 0}}).call(this)}).call(this,require("_process"))},{"./const":116,_process:99}],120:[function(require,module,exports){"function"!=typeof console.assert&&(console.assert=function(){}),exports.BWT=require("./outlib/BWT"),exports.BWTC=require("./outlib/BWTC"),exports.BitStream=require("./outlib/BitStream"),exports.Bzip2=require("./outlib/Bzip2"),exports.CRC32=require("./outlib/CRC32"),exports.Context1Model=require("./outlib/Context1Model"),exports.DefSumModel=require("./outlib/DefSumModel"),exports.DeflateDistanceModel=require("./outlib/DeflateDistanceModel"),exports.Dmc=require("./outlib/Dmc"),exports.DummyRangeCoder=require("./outlib/DummyRangeCoder"),exports.FenwickModel=require("./outlib/FenwickModel"),exports.Huffman=require("./outlib/Huffman"),exports.HuffmanAllocator=require("./outlib/HuffmanAllocator"),exports.LogDistanceModel=require("./outlib/LogDistanceModel"),exports.Lzjb=require("./outlib/Lzjb"),exports.LzjbR=require("./outlib/LzjbR"),exports.Lzp3=require("./outlib/Lzp3"),exports.MTFModel=require("./outlib/MTFModel"),exports.NoModel=require("./outlib/NoModel"),exports.PPM=require("./outlib/PPM"),exports.RangeCoder=require("./outlib/RangeCoder"),exports.Simple=require("./outlib/Simple"),exports.Stream=require("./outlib/Stream"),exports.Util=require("./outlib/Util"),exports.freeze=require("./outlib/freeze")},{"./outlib/BWT":121,"./outlib/BWTC":122,"./outlib/BitStream":123,"./outlib/Bzip2":124,"./outlib/CRC32":125,"./outlib/Context1Model":126,"./outlib/DefSumModel":127,"./outlib/DeflateDistanceModel":128,"./outlib/Dmc":129,"./outlib/DummyRangeCoder":130,"./outlib/FenwickModel":131,"./outlib/Huffman":132,"./outlib/HuffmanAllocator":133,"./outlib/LogDistanceModel":134,"./outlib/Lzjb":135,"./outlib/LzjbR":136,"./outlib/Lzp3":137,"./outlib/MTFModel":138,"./outlib/NoModel":139,"./outlib/PPM":140,"./outlib/RangeCoder":141,"./outlib/Simple":142,"./outlib/Stream":143,"./outlib/Util":144,"./outlib/freeze":145}],121:[function(require,module){var libs=[require("./freeze"),require("./Util")],body_fn=function(freeze,Util){var ASSERT=console.assert.bind(console),getCounts=function(T,C,n,k){var i;for(i=0;k>i;i++)C[i]=0;for(i=0;n>i;i++)C[T[i]]++},getBuckets=function(C,B,k,end){var i,sum=0;if(end)for(i=0;k>i;i++)sum+=C[i],B[i]=sum;else for(i=0;k>i;i++)sum+=C[i],B[i]=sum-C[i]},LMSsort=function(T,SA,C,B,n,k){var b,i,j,c0,c1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],j--,SA[b++]=T[j]i;i++)(j=SA[i])>0?(ASSERT(T[j]>=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),j--,SA[b++]=T[j]j&&(SA[i]=~j);for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,1),i=n-1,b=B[c1=0];i>=0;i--)(j=SA[i])>0&&(ASSERT(T[j]<=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),j--,SA[--b]=T[j]>c1?~(j+1):j,SA[i]=0)},LMSpostproc=function(T,SA,n,m){var i,j,p,q,plen,qlen,name,c0,c1,diff;for(ASSERT(n>0),i=0;(p=SA[i])<0;i++)SA[i]=~p,ASSERT(n>i+1);if(m>i)for(j=i,i++;ASSERT(n>i),!((p=SA[i])<0&&(SA[j++]=~p,SA[i]=0,j===m));i++);c0=T[i=j=n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){SA[m+(i+1>>>1)]=j-i,j=i+1;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}for(i=0,name=0,q=n,qlen=0;m>i;i++){if(p=SA[i],plen=SA[m+(p>>>1)],diff=!0,plen===qlen&&n>q+plen){for(j=0;plen>j&&T[p+j]===T[q+j];)j++;j===plen&&(diff=!1)}diff&&(name++,q=p,qlen=plen),SA[m+(p>>>1)]=name}return name},induceSA=function(T,SA,C,B,n,k){var b,i,j,c0,c1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],SA[b++]=j>0&&T[j-1]i;i++)j=SA[i],SA[i]=~j,j>0&&(j--,ASSERT(T[j]>=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),SA[b++]=j>0&&T[j-1]=0;i--)(j=SA[i])>0?(j--,ASSERT(T[j]<=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),SA[--b]=0===j||T[j-1]>c1?~j:j):SA[i]=~j},computeBWT=function(T,SA,C,B,n,k){var b,i,j,c0,c1,pidx=-1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],SA[b++]=j>0&&T[j-1]i;i++)(j=SA[i])>0?(j--,ASSERT(T[j]>=T[j+1]),SA[i]=~(c0=T[j]),c0!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),SA[b++]=j>0&&T[j-1]=0;i--)(j=SA[i])>0?(j--,ASSERT(T[j]<=T[j+1]),SA[i]=c0=T[j],c0!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),SA[--b]=j>0&&T[j-1]>c1?~T[j-1]:j):0!==j?SA[i]=~j:pidx=i;return pidx},SA_IS=function(T,SA,fs,n,k,isbwt){var C,B,RA,i,j,b,m,p,q,name,newfs,c0,c1,pidx=0,flags=0;for(256>=k?(C=Util.makeS32Buffer(k),fs>=k?(B=SA.subarray(n+fs-k),flags=1):(B=Util.makeS32Buffer(k),flags=3)):fs>=k?(C=SA.subarray(n+fs-k),fs-k>=k?(B=SA.subarray(n+fs-2*k),flags=0):1024>=k?(B=Util.makeS32Buffer(k),flags=2):(B=C,flags=8)):(C=B=Util.makeS32Buffer(k),flags=12),getCounts(T,C,n,k),getBuckets(C,B,k,!0),i=0;n>i;i++)SA[i]=0;b=-1,i=n-1,j=n,m=0,c0=T[n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){b>=0&&(SA[b]=j),b=--B[c1],j=i,++m;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}if(m>1?(LMSsort(T,SA,C,B,n,k),name=LMSpostproc(T,SA,n,m)):1===m?(SA[b]=j+1,name=1):name=0,m>name){for(0!==(4&flags)&&(C=null,B=null),0!==(2&flags)&&(B=null),newfs=n+fs-2*m,0===(13&flags)&&(newfs>=k+name?newfs-=k:flags|=8),ASSERT(newfs+m>=n>>>1),i=m+(n>>>1)-1,j=2*m+newfs-1;i>=m;i--)0!==SA[i]&&(SA[j--]=SA[i]-1);RA=SA.subarray(m+newfs),SA_IS(RA,SA,newfs,m,name,!1),RA=null,i=n-1,j=2*m-1,c0=T[n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){SA[j--]=i+1;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}for(i=0;m>i;i++)SA[i]=SA[m+SA[i]];0!==(4&flags)&&(C=B=Util.makeS32Buffer(k)),0!==(2&flags)&&(B=Util.makeS32Buffer(k))}if(0!==(8&flags)&&getCounts(T,C,n,k),m>1){getBuckets(C,B,k,!0),i=m-1,j=n,p=SA[m-1],c1=T[p];do{for(q=B[c0=c1];j>q;)SA[--j]=0;do{if(SA[--j]=p,--i<0)break;p=SA[i]}while((c1=T[p])===c0)}while(i>=0);for(;j>0;)SA[--j]=0}return isbwt?pidx=computeBWT(T,SA,C,B,n,k):induceSA(T,SA,C,B,n,k),C=null,B=null,pidx},BWT=Object.create(null);return BWT.suffixsort=function(T,SA,n,alphabetSize){if(ASSERT(T&&SA&&T.length>=n&&SA.length>=n),1>=n)return 1===n&&(SA[0]=0),0;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}return ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT),SA_IS(T,SA,0,n,alphabetSize,!1)},BWT.bwtransform=function(T,U,A,n,alphabetSize){var i,pidx;if(ASSERT(T&&U&&A),ASSERT(T.length>=n&&U.length>=n&&A.length>=n),1>=n)return 1===n&&(U[0]=T[0]),n;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}for(ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT),pidx=SA_IS(T,A,0,n,alphabetSize,!0),U[0]=T[n-1],i=0;pidx>i;i++)U[i+1]=A[i];for(i+=1;n>i;i++)U[i]=A[i];return pidx+1},BWT.unbwtransform=function(T,U,LF,n,pidx){var i,t,C=Util.makeU32Buffer(256);for(i=0;256>i;i++)C[i]=0;for(i=0;n>i;i++)LF[i]=C[T[i]]++;for(i=0,t=0;256>i;i++)t+=C[i],C[i]=t-C[i];for(i=n-1,t=0;i>=0;i--)t=LF[t]+C[U[i]=T[t]],t+=pidx>t?1:0;C=null},BWT.bwtransform2=function(T,U,n,alphabetSize){var i,j,pidx=0;if(ASSERT(T&&U),ASSERT(T.length>=n&&U.length>=n),1>=n)return 1===n&&(U[0]=T[0]),0;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT);var TT;if(TT=T.length>=2*n?T:256>=alphabetSize?Util.makeU8Buffer(2*n):65536>=alphabetSize?Util.makeU16Buffer(2*n):Util.makeU32Buffer(2*n),TT!==T)for(i=0;n>i;i++)TT[i]=T[i];for(i=0;n>i;i++)TT[n+i]=TT[i];var A=Util.makeS32Buffer(2*n);for(SA_IS(TT,A,0,2*n,alphabetSize,!1),i=0,j=0;2*n>i;i++){var s=A[i];n>s&&(0===s&&(pidx=j),--s<0&&(s=n-1),U[j++]=T[s])}return ASSERT(j===n),pidx},freeze(BWT)};module.exports=body_fn.apply(null,libs)},{"./Util":144,"./freeze":145}],122:[function(require,module){var libs=[require("./freeze"),require("./BWT"),require("./DefSumModel"),require("./FenwickModel"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(freeze,BWT,DefSumModel,FenwickModel,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var F_PROB_MAX=(Stream.EOF,65280),F_PROB_INCR=256;return BWTC=Object.create(null),BWTC.MAGIC="bwtc",BWTC.compressFile=Util.compressFileHelper(BWTC.MAGIC,function(input,output,size,props,finalByte){var encoder=new RangeCoder(output);encoder.encodeStart(finalByte,1);var blockSize=9;"number"==typeof props&&props>=1&&9>=props&&(blockSize=props),encoder.encodeByte(blockSize);var fast=5>=blockSize;blockSize*=1e5;var length,b,c,pidx,i,j,block=Util.makeU8Buffer(blockSize),readBlock=function(){var pos;for(pos=0;blockSize>pos;){var ch=input.readByte();if(0>ch)break;block[pos++]=ch}return pos},U=Util.makeU8Buffer(blockSize),A=Util.makeS32Buffer(blockSize),M=Util.makeU8Buffer(256),bitModelFactory=NoModel.factory(encoder),lenModel=new LogDistanceModel(blockSize,0,bitModelFactory,bitModelFactory);do{if(length=readBlock(),0===length)break;length===block.length?(encoder.encodeFreq(1,0,3),b=block):(encoder.encodeFreq(1,1,3),lenModel.encode(length),b=block.subarray(0,length)),pidx=BWT.bwtransform(b,U,A,length,256),lenModel.encode(pidx);var useTree=Util.makeU16Buffer(512);for(i=0;length>i;i++)c=U[i],useTree[256+c]=1;for(i=255;i>0;i--)useTree[i]=useTree[2*i]+useTree[2*i+1];for(useTree[0]=1,i=1;512>i;i++){var parent=i>>>1,full=1<<9-Util.fls(i);if(0===useTree[parent]||useTree[parent]===2*full);else if(i>=256)encoder.encodeBit(useTree[i]);else{var v=useTree[i];v=0===v?0:v===full?2:1,encoder.encodeFreq(1,v,3)}}var alphabetSize=0;for(i=0;256>i;i++)useTree[256+i]&&(M[alphabetSize++]=i);for(useTree=null,i=0;length>i;i++){for(c=U[i],j=0;alphabetSize>j&&M[j]!==c;j++);for(console.assert(alphabetSize>j),U[i]=j;j>0;j--)M[j]=M[j-1];M[0]=c}var model=new FenwickModel(encoder,alphabetSize+1,F_PROB_MAX,F_PROB_INCR); fast&&(model=new DefSumModel(encoder,alphabetSize+1));var runLength=0,emitLastRun=function(){for(;0!==runLength;)1&runLength?(model.encode(0),runLength-=1):(model.encode(1),runLength-=2),runLength>>>=1};for(i=0;length>i;i++)c=U[i],0===c?runLength++:(emitLastRun(),model.encode(c+1),runLength=0);emitLastRun()}while(length===block.length);encoder.encodeFreq(1,2,3),encoder.encodeFinish()},!0),BWTC.decompressFile=Util.decompressFileHelper(BWTC.MAGIC,function(input,output){var decoder=new RangeCoder(input);decoder.decodeStart(!0);var blockSize=decoder.decodeByte();console.assert(blockSize>=1&&9>=blockSize);var fast=5>=blockSize;blockSize*=1e5;for(var b,length,i,j,c,block=Util.makeU8Buffer(blockSize),U=Util.makeU8Buffer(blockSize),A=Util.makeS32Buffer(blockSize),M=Util.makeU8Buffer(256),bitModelFactory=NoModel.factory(decoder),lenModel=new LogDistanceModel(blockSize,0,bitModelFactory,bitModelFactory);;){var blockIndicator=decoder.decodeCulFreq(3);if(decoder.decodeUpdate(1,blockIndicator,3),0===blockIndicator)length=blockSize,b=block;else if(1===blockIndicator)length=lenModel.decode(),b=block.subarray(0,length);else if(2===blockIndicator)break;var pidx=lenModel.decode(),useTree=Util.makeU16Buffer(512);for(useTree[0]=1,i=1;512>i;i++){var parent=i>>>1,full=1<<9-Util.fls(i);if(0===useTree[parent]||useTree[parent]===2*full)useTree[i]=useTree[parent]>>>1;else if(i>=256)useTree[i]=decoder.decodeBit();else{var v=decoder.decodeCulFreq(3);decoder.decodeUpdate(1,v,3),useTree[i]=2===v?full:v}}var alphabetSize=0;for(i=0;256>i;i++)useTree[256+i]&&(M[alphabetSize++]=i);useTree=null;var model=new FenwickModel(decoder,alphabetSize+1,F_PROB_MAX,F_PROB_INCR);fast&&(model=new DefSumModel(decoder,alphabetSize+1,!0));var val=1;for(i=0;length>i;)if(c=model.decode(),0===c){for(j=0;val>j;j++)b[i++]=0;val*=2}else if(1===c){for(j=0;val>j;j++)b[i++]=0,b[i++]=0;val*=2}else val=1,b[i++]=c-1;for(i=0;length>i;i++){for(j=b[i],b[i]=c=M[j];j>0;j--)M[j]=M[j-1];M[0]=c}BWT.unbwtransform(block,U,A,length,pidx),output.write(U,0,length)}decoder.decodeFinish()}),BWTC};module.exports=body_fn.apply(null,libs)},{"./BWT":121,"./DefSumModel":127,"./FenwickModel":131,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144,"./freeze":145}],123:[function(require,module){var libs=[require("./Stream")],body_fn=function(Stream){var BitStream=function(stream){(function(){var bufferByte=256;this.readBit=function(){if(0===(255&bufferByte)){var ch=stream.readByte();if(ch===Stream.EOF)return this._eof=!0,ch;bufferByte=ch<<1|1}var bit=256&bufferByte?1:0;return bufferByte<<=1,bit},this.seekBit=function(pos){var n_byte=pos>>>3,n_bit=pos-8*n_byte;this.seek(n_byte),this._eof=!1,this.readBits(n_bit)},this.tellBit=function(){for(var pos=8*stream.tell(),b=bufferByte;0!==(255&b);)pos--,b<<=1;return pos},this.readByte=function(){return 0===(255&bufferByte)?stream.readByte():this.readBits(8)},this.seek=function(pos){stream.seek(pos),bufferByte=256}}).call(this),function(){var bufferByte=1;this.writeBit=function(b){bufferByte<<=1,b&&(bufferByte|=1),256&bufferByte&&(stream.writeByte(255&bufferByte),bufferByte=1)},this.writeByte=function(_byte){1===bufferByte?stream.writeByte(_byte):stream.writeBits(8,_byte)},this.flush=function(){for(;1!==bufferByte;)this.writeBit(0);stream.flush&&stream.flush()}}.call(this)};return BitStream.EOF=Stream.EOF,BitStream.prototype=Object.create(Stream.prototype),BitStream.prototype.readBits=function(n){var i,r=0;if(n>31)return r=65536*this.readBits(n-16),r+this.readBits(16);for(i=0;n>i;i++)r<<=1,this.readBit()>0&&r++;return r},BitStream.prototype.writeBits=function(n,value){if(n>32){var low=65535&value,high=(value-low)/65536;return this.writeBits(n-16,high),void this.writeBits(16,low)}var i;for(i=n-1;i>=0;i--)this.writeBit(value>>>i&1)},BitStream};module.exports=body_fn.apply(null,libs)},{"./Stream":143}],124:[function(require,module){var libs=[require("./freeze"),require("./BitStream"),require("./BWT"),require("./CRC32"),require("./HuffmanAllocator"),require("./Stream"),require("./Util")],body_fn=function(freeze,BitStream,BWT,CRC32,HuffmanAllocator,Stream,Util){var MAX_HUFCODE_BITS=20,MAX_SYMBOLS=258,SYMBOL_RUNA=0,SYMBOL_RUNB=1,MIN_GROUPS=2,MAX_GROUPS=6,GROUP_SIZE=50,WHOLEPI=54156738319193,SQRTPI=25779555029136,EOF=Stream.EOF,mtf=function(array,index){var i,src=array[index];for(i=index;i>0;i--)array[i]=array[i-1];return array[0]=src,src},Err={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},ErrorMessages={};ErrorMessages[Err.LAST_BLOCK]="Bad file checksum",ErrorMessages[Err.NOT_BZIP_DATA]="Not bzip data",ErrorMessages[Err.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",ErrorMessages[Err.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",ErrorMessages[Err.DATA_ERROR]="Data error",ErrorMessages[Err.OUT_OF_MEMORY]="Out of memory",ErrorMessages[Err.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";var _throw=function(status,optDetail){var msg=ErrorMessages[status]||"unknown error";optDetail&&(msg+=": "+optDetail);var e=new TypeError(msg);throw e.errorCode=status,e},Bunzip=function(inputStream,outputStream){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(inputStream,outputStream)};Bunzip.prototype._init_block=function(){var moreBlocks=this._get_next_block();return moreBlocks?(this.blockCRC=new CRC32,!0):(this.writeCount=-1,!1)},Bunzip.prototype._start_bunzip=function(inputStream,outputStream){var buf=Util.makeU8Buffer(4);(4!==inputStream.read(buf,0,4)||"BZh"!==String.fromCharCode(buf[0],buf[1],buf[2]))&&_throw(Err.NOT_BZIP_DATA,"bad magic");var level=buf[3]-48;(1>level||level>9)&&_throw(Err.NOT_BZIP_DATA,"level out of range"),this.reader=new BitStream(inputStream),this.dbufSize=1e5*level,this.nextoutput=0,this.outputStream=outputStream,this.streamCRC=0},Bunzip.prototype._get_next_block=function(){var i,j,k,reader=this.reader,h=reader.readBits(48);if(h===SQRTPI)return!1;h!==WHOLEPI&&_throw(Err.NOT_BZIP_DATA),this.targetBlockCRC=reader.readBits(32),this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,reader.readBits(1)&&_throw(Err.OBSOLETE_INPUT);var origPointer=reader.readBits(24);origPointer>this.dbufSize&&_throw(Err.DATA_ERROR,"initial position out of bounds");var t=reader.readBits(16),symToByte=Util.makeU8Buffer(256),symTotal=0;for(i=0;16>i;i++)if(t&1<<15-i){var o=16*i;for(k=reader.readBits(16),j=0;16>j;j++)k&1<<15-j&&(symToByte[symTotal++]=o+j)}var groupCount=reader.readBits(3);(MIN_GROUPS>groupCount||groupCount>MAX_GROUPS)&&_throw(Err.DATA_ERROR);var nSelectors=reader.readBits(15);0===nSelectors&&_throw(Err.DATA_ERROR);var mtfSymbol=Util.makeU8Buffer(256);for(i=0;groupCount>i;i++)mtfSymbol[i]=i;var selectors=Util.makeU8Buffer(nSelectors);for(i=0;nSelectors>i;i++){for(j=0;reader.readBits(1);j++)j>=groupCount&&_throw(Err.DATA_ERROR);selectors[i]=mtf(mtfSymbol,j)}var hufGroup,symCount=symTotal+2,groups=[];for(j=0;groupCount>j;j++){var length=Util.makeU8Buffer(symCount),temp=Util.makeU8Buffer(MAX_HUFCODE_BITS+1);for(t=reader.readBits(5),i=0;symCount>i;i++){for(;(1>t||t>MAX_HUFCODE_BITS)&&_throw(Err.DATA_ERROR),reader.readBits(1);)reader.readBits(1)?t--:t++;length[i]=t}var minLen,maxLen;for(minLen=maxLen=length[0],i=1;symCount>i;i++)length[i]>maxLen?maxLen=length[i]:length[i]=i;i++)for(temp[i]=hufGroup.limit[i]=0,t=0;symCount>t;t++)length[t]===i&&(hufGroup.permute[pp++]=t);for(i=0;symCount>i;i++)temp[length[i]]++;for(pp=t=0,i=minLen;maxLen>i;i++)pp+=temp[i],hufGroup.limit[i]=pp-1,pp<<=1,t+=temp[i],hufGroup.base[i+1]=pp-t;hufGroup.limit[maxLen+1]=Number.MAX_VALUE,hufGroup.limit[maxLen]=pp+temp[maxLen]-1,hufGroup.base[minLen]=0}var byteCount=Util.makeU32Buffer(256);for(i=0;256>i;i++)mtfSymbol[i]=i;var uc,runPos=0,dbufCount=0,selector=0,dbuf=this.dbuf=Util.makeU32Buffer(this.dbufSize);for(symCount=0;;){for(symCount--||(symCount=GROUP_SIZE-1,selector>=nSelectors&&_throw(Err.DATA_ERROR),hufGroup=groups[selectors[selector++]]),i=hufGroup.minLen,j=reader.readBits(i);i>hufGroup.maxLen&&_throw(Err.DATA_ERROR),!(j<=hufGroup.limit[i]);i++)j=j<<1|reader.readBits(1);j-=hufGroup.base[i],(0>j||j>=MAX_SYMBOLS)&&_throw(Err.DATA_ERROR);var nextSym=hufGroup.permute[j];if(nextSym!==SYMBOL_RUNA&&nextSym!==SYMBOL_RUNB){if(runPos)for(runPos=0,dbufCount+t>=this.dbufSize&&_throw(Err.DATA_ERROR),uc=symToByte[mtfSymbol[0]],byteCount[uc]+=t;t--;)dbuf[dbufCount++]=uc;if(nextSym>symTotal)break;dbufCount>=this.dbufSize&&_throw(Err.DATA_ERROR),i=nextSym-1,uc=mtf(mtfSymbol,i),uc=symToByte[uc],byteCount[uc]++,dbuf[dbufCount++]=uc}else runPos||(runPos=1,t=0),t+=nextSym===SYMBOL_RUNA?runPos:2*runPos,runPos<<=1}for((0>origPointer||origPointer>=dbufCount)&&_throw(Err.DATA_ERROR),j=0,i=0;256>i;i++)k=j+byteCount[i],byteCount[i]=j,j=k;for(i=0;dbufCount>i;i++)uc=255&dbuf[i],dbuf[byteCount[uc]]|=i<<8,byteCount[uc]++;var pos=0,current=0,run=0;return dbufCount&&(pos=dbuf[origPointer],current=255&pos,pos>>=8,run=-1),this.writePos=pos,this.writeCurrent=current,this.writeCount=dbufCount,this.writeRun=run,!0},Bunzip.prototype._read_bunzip=function(){var copies,previous,outbyte;if(this.writeCount<0)return 0;for(var dbuf=this.dbuf,pos=this.writePos,current=this.writeCurrent,dbufCount=this.writeCount,run=(this.outputsize,this.writeRun);dbufCount;){for(dbufCount--,previous=current,pos=dbuf[pos],current=255&pos,pos>>=8,3===run++?(copies=current,outbyte=previous,current=-1):(copies=1,outbyte=current),this.blockCRC.updateCRCRun(outbyte,copies);copies--;)this.outputStream.writeByte(outbyte),this.nextoutput++;current!=previous&&(run=0)}return this.writeCount=dbufCount,this.blockCRC.getCRC()!==this.targetBlockCRC&&_throw(Err.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput},Bunzip.Err=Err,Bunzip.decode=function(input,output,multistream){for(var inputStream=Util.coerceInputStream(input),o=Util.coerceOutputStream(output,output),outputStream=o.stream,bz=new Bunzip(inputStream,outputStream);;){if("eof"in inputStream&&inputStream.eof())break;if(bz._init_block())bz._read_bunzip();else{var targetStreamCRC=bz.reader.readBits(32);if(targetStreamCRC!==bz.streamCRC&&_throw(Err.DATA_ERROR,"Bad stream CRC (got "+bz.streamCRC.toString(16)+" expected "+targetStreamCRC.toString(16)+")"),!(multistream&&"eof"in inputStream)||inputStream.eof())break;bz._start_bunzip(inputStream,outputStream)}}return o.retval},Bunzip.decodeBlock=function(input,pos,output){var inputStream=Util.coerceInputStream(input),o=Util.coerceOutputStream(output,output),outputStream=o.stream,bz=new Bunzip(inputStream,outputStream);bz.reader.seekBit(pos);var moreBlocks=bz._get_next_block();return moreBlocks&&(bz.blockCRC=new CRC32,bz.writeCopies=0,bz._read_bunzip()),o.retval},Bunzip.table=function(input,callback,multistream){var inputStream=new Stream;inputStream.delegate=Util.coerceInputStream(input),inputStream.pos=0,inputStream.readByte=function(){return this.pos++,this.delegate.readByte()},inputStream.tell=function(){return this.pos},inputStream.delegate.eof&&(inputStream.eof=inputStream.delegate.eof.bind(inputStream.delegate));var outputStream=new Stream;outputStream.pos=0,outputStream.writeByte=function(){this.pos++};for(var bz=new Bunzip(inputStream,outputStream),blockSize=bz.dbufSize;;){if("eof"in inputStream&&inputStream.eof())break;var position=bz.reader.tellBit();if(bz._init_block()){var start=outputStream.pos;bz._read_bunzip(),callback(position,outputStream.pos-start)}else{{bz.reader.readBits(32)}if(!(multistream&&"eof"in inputStream)||inputStream.eof())break;bz._start_bunzip(inputStream,outputStream),console.assert(bz.dbufSize===blockSize,"shouldn't change block size within multistream file")}}};var StaticHuffman=function(freq,alphabetSize){var i,mergedFreq=[];for(i=0;alphabetSize>i;i++)mergedFreq[i]=freq[i]<<9|i;mergedFreq.sort(function(a,b){return a-b});var sortedFreq=mergedFreq.map(function(v){return v>>>9});for(HuffmanAllocator.allocateHuffmanCodeLengths(sortedFreq,MAX_HUFCODE_BITS),this.codeLengths=Util.makeU8Buffer(alphabetSize),i=0;alphabetSize>i;i++){var sym=511&mergedFreq[i];this.codeLengths[sym]=sortedFreq[i]}};StaticHuffman.prototype.computeCanonical=function(){var i,alphabetSize=this.codeLengths.length,merged=[];for(i=0;alphabetSize>i;i++)merged[i]=this.codeLengths[i]<<9|i;merged.sort(function(a,b){return a-b}),this.code=Util.makeU32Buffer(alphabetSize);var code=0,prevLen=0;for(i=0;alphabetSize>i;i++){var curLen=merged[i]>>>9,sym=511&merged[i];console.assert(curLen>=prevLen),code<<=curLen-prevLen,this.code[sym]=code++,prevLen=curLen}},StaticHuffman.prototype.cost=function(array,offset,length){var i,cost=0;for(i=0;length>i;i++)cost+=this.codeLengths[array[offset+i]];return cost},StaticHuffman.prototype.emit=function(outStream){var i,currentLength=this.codeLengths[0];for(outStream.writeBits(5,currentLength),i=0;i0&&MAX_HUFCODE_BITS>=codeLength),codeLength>currentLength?(value=2,delta=codeLength-currentLength):(value=3,delta=currentLength-codeLength);delta-->0;)outStream.writeBits(2,value);outStream.writeBit(0),currentLength=codeLength}},StaticHuffman.prototype.encode=function(outStream,symbol){outStream.writeBits(this.codeLengths[symbol],this.code[symbol])};var readBlock=function(inStream,block,length,crc){for(var pos=0,lastChar=-1,runLength=0;length>pos&&!(4===runLength&&(block[pos++]=0,pos>=length));){var ch=inStream.readByte();if(ch===EOF)break;if(crc.updateCRC(ch),ch!==lastChar)lastChar=ch,runLength=1;else if(runLength++,runLength>4){if(256>runLength){block[pos-1]++;continue}runLength=1}block[pos++]=ch}return pos},assignSelectors=function(selectors,groups,input){var i,j,k;for(i=0,k=0;igroupCost&&(best=j,bestCost=groupCost)}selectors[k++]=best}},optimizeHuffmanGroups=function(groups,targetGroups,input,selectors,alphabetSize){for(var i,j,k,groupCounts=[];groups.length>>1;ij;j++)f[j]=0;for(i=0,j=0;ik&&ii;i++)c=block[i],used[c]=!0,compact[c>>>4]=!0;for(i=0;16>i;i++)outStream.writeBit(!!compact[i]);for(i=0;16>i;i++)if(compact[i])for(j=0;16>j;j++)outStream.writeBit(!!used[i<<4|j]);var alphabetSize=0;for(i=0;256>i;i++)used[i]&&alphabetSize++;var A=Util.makeU16Buffer(length+1),endOfBlock=alphabetSize+1,freq=[];for(i=0;endOfBlock>=i;i++)freq[i]=0;var M=Util.makeU8Buffer(alphabetSize);for(i=0,j=0;256>i;i++)used[i]&&(M[j++]=i);used=null,compact=null;var pos=0,runLength=0,emit=function(c){A[pos++]=c,freq[c]++},emitLastRun=function(){for(;0!==runLength;)1&runLength?(emit(0),runLength-=1):(emit(1),runLength-=2),runLength>>>=1};for(i=0;ij&&M[j]!==c;j++);console.assert(j!==alphabetSize),mtf(M,j),0===j?runLength++:(emitLastRun(),emit(j+1),runLength=0)}emitLastRun(),emit(endOfBlock),A=A.subarray(0,pos);var targetGroups,groups=[];for(targetGroups=pos>=2400?6:pos>=1200?5:pos>=600?4:pos>=200?3:2,groups.push(new StaticHuffman(freq,endOfBlock+1)),i=0;endOfBlock>=i;i++)freq[i]=1;groups.push(new StaticHuffman(freq,endOfBlock+1)),freq=null;var selectors=Util.makeU8Buffer(Math.ceil(pos/GROUP_SIZE));for(optimizeHuffmanGroups(groups,targetGroups,A,selectors,endOfBlock+1),assignSelectors(selectors,groups,A),console.assert(groups.length>=MIN_GROUPS&&groups.length<=MAX_GROUPS),outStream.writeBits(3,groups.length),outStream.writeBits(15,selectors.length),i=0;i0;j--)outStream.writeBit(1);outStream.writeBit(0)}for(i=0;ii;){var huff=groups[selectors[k++]];for(j=0;GROUP_SIZE>j&&pos>i;j++)huff.encode(outStream,A[i++])}},Bzip2=Object.create(null);return Bzip2.compressFile=function(inStream,outStream,props){inStream=Util.coerceInputStream(inStream);var o=Util.coerceOutputStream(outStream,outStream);outStream=new BitStream(o.stream);var blockSizeMultiplier=9;if("number"==typeof props&&(blockSizeMultiplier=props),1>blockSizeMultiplier||blockSizeMultiplier>9)throw new Error("Invalid block size multiplier");var blockSize=1e5*blockSizeMultiplier;blockSize-=19,outStream.writeByte("B".charCodeAt(0)),outStream.writeByte("Z".charCodeAt(0)),outStream.writeByte("h".charCodeAt(0)),outStream.writeByte("0".charCodeAt(0)+blockSizeMultiplier);var length,block=Util.makeU8Buffer(blockSize),streamCRC=0;do{var crc=new CRC32;length=readBlock(inStream,block,blockSize,crc),length>0&&(streamCRC=((streamCRC<<1|streamCRC>>>31)^crc.getCRC())>>>0,outStream.writeBits(48,WHOLEPI),outStream.writeBits(32,crc.getCRC()),compressBlock(block,length,outStream))}while(length===blockSize);return outStream.writeBits(48,SQRTPI),outStream.writeBits(32,streamCRC),outStream.flush(),o.retval},Bzip2.decompressFile=Bunzip.decode,Bzip2.decompressBlock=Bunzip.decodeBlock,Bzip2.table=Bunzip.table,Bzip2};module.exports=body_fn.apply(null,libs)},{"./BWT":121,"./BitStream":123,"./CRC32":125,"./HuffmanAllocator":133,"./Stream":143,"./Util":144,"./freeze":145}],125:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var crc32Lookup=Util.arraycopy(Util.makeU32Buffer(256),[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]),CRC32=function(){var crc=4294967295;this.getCRC=function(){return~crc>>>0},this.updateCRC=function(value){crc=crc<<8^crc32Lookup[255&(crc>>>24^value)]},this.updateCRCRun=function(value,count){for(;count-->0;)crc=crc<<8^crc32Lookup[255&(crc>>>24^value)]}};return CRC32};module.exports=body_fn.apply(null,libs)},{"./Util":144}],126:[function(require,module){var libs=[require("./BitStream"),require("./Huffman"),require("./Util")],body_fn=function(BitStream,Huffman,Util){var Context1Model=function(modelFactory,contextSize,alphabetSize){var i;for(this.literalModel=[],i=0;contextSize>i;i++)this.literalModel[i]=modelFactory(alphabetSize)};return Context1Model.prototype.encode=function(ch,context){this.literalModel[context].encode(ch)},Context1Model.prototype.decode=function(context){return this.literalModel[context].decode()},Context1Model.MAGIC="ctx1",Context1Model.compressFile=Util.compressFileHelper(Context1Model.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(outStream),alphabetSize=256;0>fileSize&&alphabetSize++;var coder=Huffman.factory(bitstream,8191),model=new Context1Model(coder,256,alphabetSize),lastchar=32,modelp={encode:function(symbol){model.encode(symbol,lastchar),lastchar=symbol}};Util.compressWithModel(inStream,fileSize,modelp),bitstream.flush()}),Context1Model.decompressFile=Util.decompressFileHelper(Context1Model.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(inStream),alphabetSize=256;0>fileSize&&alphabetSize++;var coder=Huffman.factory(bitstream,8191),model=new Context1Model(coder,256,alphabetSize),lastchar=32,modelp={decode:function(){var symbol=model.decode(lastchar);return lastchar=symbol,symbol}};Util.decompressWithModel(outStream,fileSize,modelp)}),Context1Model};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Huffman":132,"./Util":144}],127:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var LOG_PROB_TOTAL=8,PROB_TOTAL=1<size);var ESCAPE=this.numSyms=size;for(this.coder=coder,this.prob=Util.makeU16Buffer(size+2),this.escape=Util.makeU16Buffer(size+1),this.update=Util.makeU16Buffer(size+1),this.prob[ESCAPE+1]=PROB_TOTAL,i=0;i<=this.numSyms;i++)this.escape[i]=i;if(this.updateCount=0,this.updateThresh=PROB_TOTAL-Math.floor(PROB_TOTAL/2),isDecoder){for(this.probToSym=Util.makeU16Buffer(PROB_TOTAL),this.escProbToSym=Util.makeU16Buffer(this.numSyms),i=0;PROB_TOTAL>i;i++)this.probToSym[i]=ESCAPE;for(i=0;i=MAX_ESCAPE_COUNT)return;if(this.updateCount>=this.updateThresh-1)return}if(this.update[symbol]++,this.updateCount++,!(this.updateCount>>1)+this.update[i];newProb?(this.prob[i]=cumProb,cumProb+=newProb,1&newProb&&odd++,this.escape[i]=cumEscProb):(this.prob[i]=cumProb,this.escape[i]=cumEscProb,cumEscProb++)}for(this.prob[i]=cumProb,console.assert(cumProb===PROB_TOTAL),this.updateThresh=PROB_TOTAL-Math.floor((cumProb-odd)/2),i=0;ij;j++)this.probToSym[j]=i;for(var escProbLimit=this.escape[i+1];escProbLimit>k;k++)this.escProbToSym[k]=i}}},DefSumModel.prototype.encode=function(symbol){var lt_f=this.prob[symbol],sy_f=this.prob[symbol+1]-lt_f;if(console.assert(this.prob[this.numSyms+1]===PROB_TOTAL),sy_f)return this.coder.encodeShift(sy_f,lt_f,LOG_PROB_TOTAL),this._update(symbol);console.assert(symbol!==this.numSyms),this.encode(this.numSyms),lt_f=this.escape[symbol],sy_f=this.escape[symbol+1]-lt_f;var tot_f=this.escape[this.numSyms];return this.coder.encodeFreq(sy_f,lt_f,tot_f),this._update(symbol)},DefSumModel.prototype.decode=function(){var prob=this.coder.decodeCulShift(LOG_PROB_TOTAL),symbol=this.probToSym[prob],lt_f=this.prob[symbol],sy_f=this.prob[symbol+1]-lt_f;if(this.coder.decodeUpdate(sy_f,lt_f,PROB_TOTAL),this._update(symbol,!0),symbol!==this.numSyms)return symbol;var tot_f=this.escape[this.numSyms];return prob=this.coder.decodeCulFreq(tot_f),symbol=this.escProbToSym[prob],lt_f=this.escape[symbol],sy_f=this.escape[symbol+1]-lt_f,this.coder.decodeUpdate(sy_f,lt_f,tot_f),this._update(symbol,!0),symbol},DefSumModel.MAGIC="dfsm",DefSumModel.compressFile=Util.compressFileHelper(DefSumModel.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new DefSumModel(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),DefSumModel.decompressFile=Util.decompressFileHelper(DefSumModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new DefSumModel(range,0>fileSize?257:256,!0);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),DefSumModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],128:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var DeflateDistanceModel=function(size,extraStates,lgDistanceModelFactory,lengthBitsModelFactory){var i,bits=Util.fls(size-1);for(this.extraStates=+extraStates||0,this.lgDistanceModel=lgDistanceModelFactory(2*bits+extraStates),this.distanceModel=[],i=3;bits>=i;i++){var numBits=i-2;this.distanceModel[i]=lengthBitsModelFactory(1<distance)return void this.lgDistanceModel.encode(distance+this.extraStates);var lgDistance=Util.fls(distance);console.assert(distance&1<=3);var nextBit=distance&1<l)return l;var nextBit=1&l,lgDistance=(l-4>>>1)+3,rest=this.distanceModel[lgDistance].decode();return(2+nextBit<i;i++)newNode.out[i]=this.out[i];return newNode};var MarkovModel=function(coder,size,MIN_CNT1,MIN_CNT2){var i,j;for(this.coder=coder,this.size=size,this.MIN_CNT1=MIN_CNT1||DEFAULT_MIN_CNT1,this.MIN_CNT2=MIN_CNT2||DEFAULT_MIN_CNT2,this.nodes=[],i=0;size>i;i++)this.nodes[i]=new MarkovNode(coder,size);for(i=0;size>i;i++)for(j=0;size>j;j++)this.nodes[i].out[j]=this.nodes[j];this.current=this.nodes[0]};return MarkovModel.prototype.maybeSplit=function(from,symbol,to){var i,trans_cnt=from.count[symbol],next_cnt=to.sum;if(trans_cnt<=this.MIN_CNT1||next_cnt-trans_cnt<=this.MIN_CNT2)return to;var newNode=to.clone(this.coder,this.size);for(this.nodes.push(newNode),from.out[symbol]=newNode,newNode.sum=to.sum=0,i=0;ifileSize?257:256,MIN_CNT1,MIN_CNT2),inSize=0;inSize!==fileSize;){var ch=inStream.readByte();if(ch===Stream.EOF){mm.encode(256);break}mm.encode(ch),inSize++}var outSize=range.encodeFinish();PRINT_STATS&&console.log("M1",mm.MIN_CNT1,"M2",mm.MIN_CNT2,"states",mm.nodes.length,"size",outSize)}),Dmc.decompressFile=Util.decompressFileHelper(Dmc.MAGIC,function(inStream,outStream,fileSize){var MIN_CNT1=Util.readUnsignedNumber(inStream),MIN_CNT2=Util.readUnsignedNumber(inStream),range=new RangeCoder(inStream);range.decodeStart();for(var mm=new MarkovModel(range,0>fileSize?257:256,MIN_CNT1,MIN_CNT2),outSize=0;outSize!==fileSize;){var ch=mm.decode();if(256===ch)break;outStream.writeByte(ch),outSize++}range.decodeFinish()}),Dmc};module.exports=body_fn.apply(null,libs)},{"./MTFModel":138,"./RangeCoder":141,"./Stream":143,"./Util":144}],130:[function(require,module){var libs=[require("./RangeCoder"),require("./Util")],body_fn=function(RangeCoder,Util){var Dummy=function(stream){RangeCoder.call(this,stream)};return Dummy.prototype=Object.create(RangeCoder.prototype),Dummy.prototype._write8=function(b){Util.writeUnsignedNumber(this.stream,b),this.stream.writeByte(b)},Dummy.prototype._write16=function(s){this.stream.writeByte(s>>>8&255),this.stream.writeByte(255&s)},Dummy.prototype._read8=function(){return this.stream.readByte() },Dummy.prototype._read16=function(){var hi=this.stream.readByte(),lo=this.stream.readByte();return hi<<8|lo},Dummy.prototype.encodeStart=function(c){this.stream.writeByte(c)},Dummy.prototype.encodeFreq=function(sy_f,lt_f,tot_f){console.assert(sy_f>0),console.assert(tot_f>0),console.assert(1<<23>=tot_f),sy_f+lt_f>tot_f&&console.error("dummy coder: lt_f + sy_f > tot_f",sy_f,lt_f,tot_f),Util.writeUnsignedNumber(this.stream,sy_f),Util.writeUnsignedNumber(this.stream,lt_f),Util.writeUnsignedNumber(this.stream,tot_f)},Dummy.prototype.encodeShift=function(sy_f,lt_f,shift){this.encodeFreq(sy_f,lt_f,1<0),this.sy_f=Util.readUnsignedNumber(this.stream),this.lt_f=Util.readUnsignedNumber(this.stream),this.tot_f=Util.readUnsignedNumber(this.stream),tot_f!==this.tot_f&&console.error("decodeCul* wrong total: got",tot_f,"expected",this.tot_f),(this.sy_f>>>1)+this.lt_f},Dummy.prototype.decodeCulShift=function(shift){return this.decodeCulFreq(1<0),console.assert(tot_f>0),(sy_f!==this.sy_f||lt_f!==this.lt_f||tot_f!==this.tot_f)&&console.error("decodeUpdate wrong parameters; got",sy_f,lt_f,tot_f,"expected",this.sy_f,this.lt_f,this.tot_f)},Dummy.prototype.decodeFinish=function(){},Dummy};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Util":144}],131:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var DEFAULT_MAX_PROB=65280,DEFAULT_INCREMENT=256,ESC_MASK=65535,ESC_SHIFT=0,SYM_MASK=4294901760,SYM_SHIFT=16,SCALE_MASK=4294901758,FenwickModel=function(coder,size,max_prob,increment){this.coder=coder,this.numSyms=size+1,this.tree=Util.makeU32Buffer(2*this.numSyms),this.increment=+increment||DEFAULT_INCREMENT,this.max_prob=+max_prob||DEFAULT_MAX_PROB,console.assert(this.max_prob+(this.increment-1)<=65535),console.assert(65535>=size);var i;for(i=0;size>i;i++)this.tree[this.numSyms+i]=1<>>ESC_SHIFT===1&&(update=-this.tree[i]);for(var lt_f=0;i>1;){var isRight=1&i,parent=i>>>1;isRight&&(lt_f+=this.tree[2*parent]),this.tree[i]+=update,i=parent}var tot_f=this.tree[1];this.tree[1]+=update,sy_f=(sy_f&mask)>>>shift,lt_f=(lt_f&mask)>>>shift,tot_f=(tot_f&mask)>>>shift,this.coder.encodeFreq(sy_f,lt_f,tot_f),(this.tree[1]&SYM_MASK)>>>SYM_SHIFT>=this.max_prob&&this._rescale()},FenwickModel.prototype._decode=function(isEscape){var mask=SYM_MASK,shift=SYM_SHIFT,update=this.increment<>>shift,prob=this.coder.decodeCulFreq(tot_f),i=1,lt_f=0;i>>shift;i*=2,prob-lt_f>=leftProb&&(lt_f+=leftProb,i++)}var symbol=i-this.numSyms,sy_f=(this.tree[i]&mask)>>>shift;if(this.tree[i]+=update,this.coder.decodeUpdate(sy_f,lt_f,tot_f),symbol===this.numSyms-1&&(this.tree[1]&ESC_MASK)>>>ESC_SHIFT===1)for(update=-this.tree[i];i>=1;)this.tree[i]+=update,i>>>=1;return(this.tree[1]&SYM_MASK)>>>SYM_SHIFT>=this.max_prob&&this._rescale(),symbol},FenwickModel.prototype.decode=function(){var symbol=this._decode(!1);return symbol===this.numSyms-1&&(symbol=this._decode(!0)),symbol},FenwickModel.prototype._rescale=function(){var i,prob,noEscape=!0;for(i=0;i>>1,0===prob&&(prob=1<>>1,noEscape?prob=0:0===prob&&(prob=1<0;i--)this.tree[i]=this.tree[2*i]+this.tree[2*i+1]},FenwickModel.MAGIC="fenw",FenwickModel.compressFile=Util.compressFileHelper(FenwickModel.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new FenwickModel(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),FenwickModel.decompressFile=Util.decompressFileHelper(FenwickModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new FenwickModel(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),FenwickModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],132:[function(require,module){var libs=[require("./BitStream"),require("./Util")],body_fn=function(BitStream,Util){var HTable=function(up,down,symbol,weight){this.up=up,this.down=down,this.symbol=symbol,this.weight=weight};HTable.prototype.clone=function(){return new HTable(this.up,this.down,this.symbol,this.weight)},HTable.prototype.set=function(htable){this.up=htable.up,this.down=htable.down,this.symbol=htable.symbol,this.weight=htable.weight};var Huffman=function(size,root,bitstream,max_weight){var i;for(console.assert(size&&"number"==typeof size),(!root||root>size)&&(root=size),(root<<=1)&&root--,this.table=[],i=0;root>=i;i++)this.table[i]=new HTable(0,0,0,0);if(this.map=[],this.size=size)for(i=0;size>i;i++)this.map[i]=0;this.esc=this.root=root,bitstream&&(this.readBit=bitstream.readBit.bind(bitstream),this.writeBit=bitstream.writeBit.bind(bitstream)),this.max_weight=max_weight};return Huffman.factory=function(bitstream,max_weight){return function(size){return new Huffman(size,size,bitstream,max_weight)}},Huffman.prototype.split=function(symbol){var pair,node;return(pair=this.esc)?(this.esc--,(node=this.esc)?(this.table[pair].down=node,this.table[pair].weight=1,this.table[node].up=pair,this.esc--):(pair=0,node=1),this.table[node].symbol=symbol,this.table[node].weight=0,this.table[node].down=0,this.map[symbol]=node,this.table[this.esc].weight=0,this.table[this.esc].down=0,this.table[this.esc].up=pair,node):(console.assert(!1),0)},Huffman.prototype.leader=function(node){for(var prev,symbol,weight=this.table[node].weight,leader=node;weight===this.table[leader+1].weight;)leader++;return leader===node?node:(symbol=this.table[node].symbol,prev=this.table[leader].symbol,this.table[leader].symbol=symbol,this.table[node].symbol=prev,this.map[symbol]=leader,this.map[prev]=node,leader)},Huffman.prototype.slide=function(node){var swap,next=node;if(swap=this.table[next++].clone(),1&swap.weight)for(;swap.weight>this.table[next+1].weight;)next++;return this.table[node].set(this.table[next]),this.table[next].set(swap),this.table[next].up=this.table[node].up,this.table[node].up=swap.up,1&swap.weight?(this.table[swap.down].up=next,this.table[swap.down-1].up=next,this.map[this.table[node].symbol]=node):(this.table[this.table[node].down-1].up=node,this.table[this.table[node].down].up=node,this.map[swap.symbol]=next),next},Huffman.prototype.increment=function(node){var up;for(this.table[node].up===node+1?(this.table[node].weight+=2,node++):node=this.leader(node);this.table[node].weight+=2,up=this.table[node].up;){for(;this.table[node].weight>this.table[node+1].weight;)node=this.slide(node);node=1&this.table[node].weight?up:this.table[node].up}this.max_weight&&this.table[this.root].weight>=this.max_weight&&this.scale(1)},Huffman.prototype.scale=function(bits){for(var weight,prev,node=this.esc;++node<=this.root;)for(1&this.table[node].weight?(weight=-2&this.table[this.table[node].down].weight)&&(weight+=1|this.table[this.table[node].down-1].weight):(weight=this.table[node].weight>>bits&-2)||(this.map[this.table[node].symbol]=0,this.esc++&&this.esc++),this.table[node].weight=weight,prev=node;weight>=1;while(max>>=1)},Huffman.prototype.encode=function(symbol){var bit,up,idx,node,emit=1;if(!(symbol>=1;)this.writeBit(bit);node||(this.sendid(symbol),node=this.split(symbol)),this.increment(node)}},Huffman.prototype.readid=function(){var max,symbol,empty=0,bit=1;if(max=this.size-Math.floor((this.root-this.esc)/2)-1)do empty|=this.readBit()?bit:0,bit<<=1;while(max>>=1);for(symbol=0;symbolsize&&alphabetSize++;var huff=new Huffman(257,alphabetSize,bitstream,8191);Util.compressWithModel(input,size,huff),bitstream.flush()}),Huffman.decompressFile=Util.decompressFileHelper(Huffman.MAGIC,function(input,output,size){var bitstream=new BitStream(input),alphabetSize=256;0>size&&alphabetSize++;var huff=new Huffman(257,alphabetSize,bitstream,8191);Util.decompressWithModel(output,size,huff)}),Huffman};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Util":144}],133:[function(require,module){var libs=[require("./freeze"),require("./Util")],body_fn=function(freeze,Util){var first=function(array,i,nodesToMove){for(var length=array.length,limit=i,k=array.length-2;i>=nodesToMove&&array[i]%length>limit;)k=i,i-=limit-i+1;for(i=Math.max(nodesToMove-1,i);k>i+1;){var temp=i+k>>1;array[temp]%length>limit?k=temp:i=temp}return k},setExtendedParentPointers=function(array){var length=array.length;array[0]+=array[1];var headNode,tailNode,topNode,temp;for(headNode=0,tailNode=1,topNode=2;length-1>tailNode;tailNode++)topNode>=length||array[headNode]=length||tailNode>headNode&&array[headNode]currentDepth&¤tNode>1;currentDepth++)currentNode=first(array,currentNode-1,0);return currentNode},allocateNodeLengths=function(array){var currentDepth,availableNodes,lastNode,i,firstNode=array.length-2,nextNode=array.length-1;for(currentDepth=1,availableNodes=2;availableNodes>0;currentDepth++){for(lastNode=firstNode,firstNode=first(array,lastNode-1,0),i=availableNodes-(lastNode-firstNode);i>0;i--)array[nextNode--]=currentDepth;availableNodes=lastNode-firstNode<<1}},allocateNodeLengthsWithRelocation=function(array,nodesToMove,insertDepth){var availableNodes,lastNode,offset,i,firstNode=array.length-2,nextNode=array.length-1,currentDepth=1==insertDepth?2:1,nodesLeftToMove=1==insertDepth?nodesToMove-2:nodesToMove;for(availableNodes=currentDepth<<1;availableNodes>0;currentDepth++){for(lastNode=firstNode,firstNode=nodesToMove>=firstNode?firstNode:first(array,lastNode-1,nodesToMove),offset=0,currentDepth>=insertDepth?offset=Math.min(nodesLeftToMove,1<0;i--)array[nextNode--]=currentDepth;nodesLeftToMove-=offset,availableNodes=lastNode-firstNode+offset<<1}},allocateHuffmanCodeLengths=function(array,maximumLength){switch(array.length){case 2:array[1]=1;case 1:return void(array[0]=1)}setExtendedParentPointers(array);var nodesToRelocate=findNodesToRelocate(array,maximumLength);if(array[0]%array.length>=nodesToRelocate)allocateNodeLengths(array);else{var insertDepth=maximumLength-Util.fls(nodesToRelocate-1);allocateNodeLengthsWithRelocation(array,nodesToRelocate,insertDepth)}};return freeze({allocateHuffmanCodeLengths:allocateHuffmanCodeLengths})};module.exports=body_fn.apply(null,libs)},{"./Util":144,"./freeze":145}],134:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var LogDistanceModel=function(size,extraStates,lgDistanceModelFactory,lengthBitsModelFactory){var i,bits=Util.fls(size-1);for(this.extraStates=+extraStates||0,this.lgDistanceModel=lgDistanceModelFactory(1+bits+extraStates),this.distanceModel=[],i=2;bits>=i;i++){var numBits=i-1;this.distanceModel[i]=lengthBitsModelFactory(1<distance)return void this.lgDistanceModel.encode(distance+this.extraStates);var lgDistance=Util.fls(distance);console.assert(distance&1<=2),this.lgDistanceModel.encode(lgDistance+this.extraStates);var rest=distance&(1<lgDistance)return lgDistance;var rest=this.distanceModel[lgDistance].decode();return(1<=2&&4>=props&&EXPAND++),lempel=Util.makeU16Buffer(LEMPEL_SIZE*EXPAND);for(var window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,winput=function(_byte){return window[windowpos++]=_byte,windowpos>=window.length&&(windowpos=0),_byte},outwindow=Util.makeU8Buffer(17),outpos=0,dumpout=function(){var i;for(i=0;outpos>i;i++)outStream.writeByte(outwindow[i]);outpos=0},unbuffer=[],get=function(){return unbuffer.length?unbuffer.pop():inStream.readByte()},unget=function(_byte){unbuffer.push(_byte)},copymask=1<>9,hash+=hash>>5,hash^=c1,hp=(hash&LEMPEL_SIZE-1)*EXPAND,matchpossibility.length=0,j=0;EXPAND>j;j++){offset=windowpos-lempel[hp+j]&OFFSET_MASK,cpy=window.length+windowpos-offset;var w1=window[cpy&OFFSET_MASK],w2=window[cpy+1&OFFSET_MASK],w3=window[cpy+2&OFFSET_MASK];C_COMPAT&&0===offset?w1=1^c1:1==offset?(w2=c1,w3=c2):2==offset&&(w3=c1),c1===w1&&c2===w2&&c3===w3&&matchpossibility.push(offset)}for(j=EXPAND-1;j>0;j--)lempel[hp+j]=lempel[hp+j-1];if(lempel[hp]=windowpos,0===matchpossibility.length)outwindow[outpos++]=winput(c1),unget(c3),unget(c2);else{outwindow[0]|=copymask,winput(c1),winput(c2),winput(c3);var c4=get(),last=matchpossibility[0],base=window.length+windowpos;for(mlen=MATCH_MIN;MATCH_MAX>mlen&&c4!==EOF;mlen++,base++){for(j=0;j>NBBY,outwindow[outpos++]=255&last}}else outwindow[outpos++]=winput(c1),unget(c2)}dumpout()}),Lzjb.decompressFile=Util.decompressFileHelper(Lzjb.MAGIC,function(inStream,outStream,outSize){for(var cpy,copymap,mlen,offset,c,window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,copymask=1<>NBBY-MATCH_BITS)+MATCH_MIN,offset=(c<cpy&&(cpy+=window.length),outSize>=0&&(outSize-=mlen);--mlen>=0;)c=window[windowpos++]=window[cpy++],outStream.writeByte(c),windowpos>=window.length&&(windowpos=0),cpy>=window.length&&(cpy=0);else outStream.writeByte(c),window[windowpos++]=c,windowpos>=window.length&&(windowpos=0),outSize>=0&&outSize--}),Lzjb};module.exports=body_fn.apply(null,libs)},{"./Stream":143,"./Util":144}],136:[function(require,module){var libs=[require("./Context1Model"),require("./FenwickModel"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(Context1Model,FenwickModel,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var LzjbR=Object.create(null);LzjbR.MAGIC="lzjR";var MATCH_BITS=6,MATCH_MIN=3,MATCH_MAX=(1<=2&&4>=props&&EXPAND++);var encoder=new RangeCoder(outStream);encoder.encodeStart(finalByte,1),lempel=Util.makeU16Buffer(LEMPEL_SIZE*EXPAND);for(var window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,winput=function(_byte){return window[windowpos++]=_byte,windowpos>=window.length&&(windowpos=0),_byte},unbuffer=[],get=function(){return unbuffer.length?unbuffer.pop():inStream.readByte()},unget=function(_byte){unbuffer.push(_byte)},matchpossibility=[],MATCH=256,EOF_SYM=257,noModelFactory=NoModel.factory(encoder),modelFactory=FenwickModel.factory(encoder,65280,256),literalModel=new Context1Model(modelFactory,256,(0>fileSize?EOF_SYM:MATCH)+1),sparseModelFactory=function(size){return LENGTH_MODEL_CUTOFF>=size?modelFactory(size):noModelFactory(size)},lenModel=new LogDistanceModel(MATCH_MAX-MATCH_MIN+1,0,modelFactory,sparseModelFactory),posModel=new LogDistanceModel(OFFSET_MASK+1,1,modelFactory,sparseModelFactory),lastChar=32,lastOffset=0;;){var initialPos=windowpos,c1=get();if(c1===Stream.EOF)break;var c2=get();if(c2===Stream.EOF){literalModel.encode(winput(c1),lastChar);break}var c3=get();if(c3!==Stream.EOF){for(hash=(c1<<16)+(c2<<8)+c3,hash^=hash>>9,hash+=hash>>5,hash^=c1,hp=(hash&LEMPEL_SIZE-1)*EXPAND,matchpossibility.length=0,j=0;EXPAND>j;j++){offset=windowpos-lempel[hp+j]&OFFSET_MASK,cpy=window.length+windowpos-offset;var w1=window[cpy&OFFSET_MASK],w2=window[cpy+1&OFFSET_MASK],w3=window[cpy+2&OFFSET_MASK];1==offset?(w2=c1,w3=c2):2==offset&&(w3=c1),c1===w1&&c2===w2&&c3===w3&&matchpossibility.push(offset)}for(j=EXPAND-1;j>0;j--)lempel[hp+j]=lempel[hp+j-1];if(lempel[hp]=windowpos,0===matchpossibility.length)literalModel.encode(winput(c1),lastChar),unget(c3),unget(c2),lastChar=c1;else{literalModel.encode(MATCH,lastChar),winput(c1),winput(c2),winput(c3),lastChar=c3;var c4=get(),last=matchpossibility[0],base=window.length+windowpos;for(mlen=MATCH_MIN;MATCH_MAX>mlen&&c4!==Stream.EOF;mlen++,base++){for(j=0;jfileSize&&literalModel.encode(EOF_SYM,lastChar),encoder.encodeFinish()},!0),LzjbR.decompressFile=Util.decompressFileHelper(LzjbR.MAGIC,function(inStream,outStream,outSize){var cpy,mlen,c,window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,decoder=new RangeCoder(inStream);decoder.decodeStart(!0);for(var MATCH=256,EOF_SYM=257,noModelFactory=NoModel.factory(decoder),modelFactory=FenwickModel.factory(decoder,65280,256),literalModel=new Context1Model(modelFactory,256,(0>outSize?EOF_SYM:MATCH)+1),sparseModelFactory=function(size){return LENGTH_MODEL_CUTOFF>=size?modelFactory(size):noModelFactory(size)},lenModel=new LogDistanceModel(MATCH_MAX-MATCH_MIN+1,0,modelFactory,sparseModelFactory),posModel=new LogDistanceModel(OFFSET_MASK+1,1,modelFactory,sparseModelFactory),lastChar=32,lastOffset=0;0!==outSize&&(c=literalModel.decode(lastChar),c!==EOF_SYM);)if(c===MATCH)for(mlen=lenModel.decode()+MATCH_MIN,cpy=posModel.decode(),0>cpy?cpy=lastOffset:lastOffset=cpy,outSize>=0&&(outSize-=mlen);--mlen>=0;)c=lastChar=window[windowpos++]=window[cpy++],outStream.writeByte(c),windowpos>=window.length&&(windowpos=0),cpy>=window.length&&(cpy=0);else outStream.writeByte(c),window[windowpos++]=lastChar=c,windowpos>=window.length&&(windowpos=0),outSize>=0&&outSize--;decoder.decodeFinish()}),LzjbR};module.exports=body_fn.apply(null,libs)},{"./Context1Model":126,"./FenwickModel":131,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144}],137:[function(require,module){var libs=[require("./BitStream"),require("./Context1Model"),require("./DefSumModel"),require("./FenwickModel"),require("./Huffman"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(BitStream,Context1Model,DefSumModel,FenwickModel,Huffman,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var Lzp3=Object.create(null);Lzp3.MAGIC="lzp3";var USE_HUFFMAN_CODE=!1,USE_DEFSUM=!1,LENGTH_MODEL_CUTOFF=256,MODEL_MAX_PROB=65280,MODEL_INCREMENT=256,CTXT4_TABLE_SIZE=65536,CTXT3_TABLE_SIZE=4096,CTXT2_TABLE_SIZE=65536,LOG_WINDOW_SIZE=20,WINDOW_SIZE=1<=WINDOW_SIZE&&(this.pos=0),_byte},Window.prototype.get=function(pos){return this.buffer[pos&WINDOW_SIZE-1]},Window.prototype.context=function(pos,n){var i,c=0;for(pos=pos-n&WINDOW_SIZE-1,i=0;n>i;i++)c=c<<8|this.buffer[pos++],pos>=WINDOW_SIZE&&(pos=0);return c},Window.prototype.getIndex=function(s,matchLen){var c=this.context(s,4),h4=(c>>>15^c)&CTXT4_TABLE_SIZE-1,h3=(c>>>11^c)&CTXT3_TABLE_SIZE-1,h2=c&MAX16,p=0;return 0===matchLen&&(p=this.ctxt4[h4],0!==p&&c!==this.context(p-1,4)&&(p=0),0===p&&(p=this.ctxt3[h3],0!==p&&(c&MAX24)!==this.context(p-1,3)&&(p=0),0===p&&(p=this.ctxt2[h2],0!==p&&(c&&MAX16)!==this.context(p-1,2)&&(p=0)))),matchLen&&matchLen--,this.ctxt4[h4]=this.ctxt3[h3]=this.ctxt2[h2]=(s|matchLen<=0?fileSize:WINDOW_SIZE);if(USE_HUFFMAN_CODE){outStream.writeByte(128);var bitstream=new BitStream(outStream);flush=bitstream.flush.bind(bitstream),coderFactory=Huffman.factory(bitstream,MAX16),sparseCoderFactory=NoModel.factory(bitstream)}else{var range=new RangeCoder(outStream);range.encodeStart(0,0),coderFactory=FenwickModel.factory(range,MODEL_MAX_PROB,MODEL_INCREMENT),USE_DEFSUM&&(coderFactory=DefSumModel.factory(range,!1));var noCoderFactory=NoModel.factory(range);sparseCoderFactory=function(size){return size>LENGTH_MODEL_CUTOFF?noCoderFactory(size):coderFactory(size)},flush=function(){range.encodeFinish()}}var i,huffLiteral=new Context1Model(coderFactory,256,0>fileSize?257:256),huffLen=[];for(i=0;MATCH_LEN_CONTEXTS>i;i++)huffLen[i]=new LogDistanceModel(MAX_MATCH_LEN+1,1,coderFactory,sparseCoderFactory);for(var s,inSize=0,matchContext=0;inSize!==fileSize;){var ch=inStream.readByte();s=window.pos;var p=window.getIndex(s,0);if(0!==p){p--;for(var prevMatchLen=(p>>>LOG_WINDOW_SIZE)+1,matchLen=0;window.get(p+matchLen)===ch&&MAX_MATCH_LEN>matchLen;)matchLen++,window.put(ch),ch=inStream.readByte();huffLen[matchContext&MATCH_LEN_CONTEXTS-1].encode(prevMatchLen===matchLen?-1:matchLen),window.getIndex(s,matchLen),inSize+=matchLen,matchContext<<=1,matchLen>0&&(matchContext|=1)}var context1=window.get(window.pos-1);if(ch===Stream.EOF){0>fileSize&&huffLiteral.encode(256,context1);break}huffLiteral.encode(ch,context1),window.put(ch),inSize++}flush&&flush()}),Lzp3.decompressFile=Util.decompressFileHelper(Lzp3.MAGIC,function(inStream,outStream,fileSize){var coderFactory,sparseCoderFactory,finish,flags=inStream.readByte(),use_huffman_code=!!(128&flags),window=new Window(fileSize>=0?fileSize:WINDOW_SIZE);if(use_huffman_code){var bitstream=new BitStream(inStream);coderFactory=Huffman.factory(bitstream,MAX16),sparseCoderFactory=NoModel.factory(bitstream)}else{var range=new RangeCoder(inStream);range.decodeStart(!0),coderFactory=FenwickModel.factory(range,MODEL_MAX_PROB,MODEL_INCREMENT),USE_DEFSUM&&(coderFactory=DefSumModel.factory(range,!0));var noCoderFactory=NoModel.factory(range);sparseCoderFactory=function(size){return size>LENGTH_MODEL_CUTOFF?noCoderFactory(size):coderFactory(size)},finish=function(){range.decodeFinish()}}var i,huffLiteral=new Context1Model(coderFactory,256,0>fileSize?257:256),huffLen=[];for(i=0;MATCH_LEN_CONTEXTS>i;i++)huffLen[i]=new LogDistanceModel(MAX_MATCH_LEN+1,1,coderFactory,sparseCoderFactory);for(var s,ch,outSize=0,matchContext=0;outSize!==fileSize;){s=window.pos;var p=window.getIndex(s,0);if(0!==p){p--;var prevMatchLen=(p>>>LOG_WINDOW_SIZE)+1,matchLen=huffLen[matchContext&MATCH_LEN_CONTEXTS-1].decode();for(0>matchLen&&(matchLen=prevMatchLen),i=0;matchLen>i;i++)ch=window.get(p+i),outStream.writeByte(window.put(ch));window.getIndex(s,matchLen),outSize+=matchLen,matchContext<<=1,matchLen>0&&(matchContext|=1)}if(outSize===fileSize)break;var context1=window.get(window.pos-1);if(ch=huffLiteral.decode(context1),256===ch)break;outStream.writeByte(window.put(ch)),outSize++}finish&&finish()}),Lzp3};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Context1Model":126,"./DefSumModel":127,"./FenwickModel":131,"./Huffman":132,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144}],138:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var DEFAULT_MAX_PROB=65280,DEFAULT_INCREMENT=256,NUMERIC_SORT=function(a,b){return a-b},MTFModel=function(coder,size,max_prob,increment,betterEscape){this.coder=coder,this.increment=+increment||DEFAULT_INCREMENT,this.max_prob=+max_prob||DEFAULT_MAX_PROB,console.assert(this.max_prob+(this.increment-1)<=65535),this.sym=Util.makeU16Buffer(size+1),this.prob=Util.makeU16Buffer(size+2),this.sym[0]=size,this.prob[0]=0,this.seenSyms=1,this.prob[this.seenSyms]=this.increment,this.numSyms=size,betterEscape&&(this.sortedSeen=[size])};return MTFModel.factory=function(coder,max_prob,increment,betterEscape){return function(size){return new MTFModel(coder,size,max_prob,increment,betterEscape)}},MTFModel.prototype.clone=function(){var i,newModel=new MTFModel(this.coder,this.numSyms,this.max_prob,this.increment,!!this.sortedSeen);for(i=0;i=this.numSyms&&(tot_f=this.prob[--this.seenSyms],this.sortedSeen&&this.sortedSeen.length--)):(tot_f=this.prob[this.seenSyms],this.sym[index]=symbol,this.prob[index]=tot_f,tot_f+=this.increment,this.prob[++this.seenSyms]=tot_f,this.sortedSeen&&(this.sortedSeen.push(symbol),this.sortedSeen.sort(NUMERIC_SORT))),tot_f>=this.max_prob&&this._rescale()},MTFModel.prototype._rescale=function(){var i,j,total=0,noEscape=!0;for(this.sortedSeen&&(this.sortedSeen.length=0),i=0,j=0;i>>=1,sy_f>0&&(sym===this.numSyms&&(noEscape=!1),this.sym[j]=sym,this.prob[j++]=total,total+=sy_f,this.sortedSeen&&this.sortedSeen.push(sym))}this.prob[j]=total,this.seenSyms=j,this.sortedSeen&&this.sortedSeen.sort(NUMERIC_SORT),noEscape&&this.seenSyms=0&&!(this.prob[i]<=prob);i--);console.assert(i>=0);var symbol=this.sym[i],lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f;if(this.coder.decodeUpdate(sy_f,lt_f,tot_f),this._update(symbol,i,sy_f),symbol===this.numSyms){if(sy_f=1,tot_f=this.numSyms,this.sortedSeen){var seen=this.sortedSeen;for(tot_f=this.numSyms-this.seenSyms,seen[seen.length-1]===this.numSyms&&tot_f++,symbol=lt_f=this.coder.decodeCulFreq(tot_f),i=0;i=0;i--)if(symbol===this.sym[i])return lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f,tot_f=this.prob[this.seenSyms],this.coder.encodeFreq(sy_f,lt_f,tot_f),this._update(symbol,i,sy_f);if(console.assert(symbol!==this.numSyms),this.encode(this.numSyms),sy_f=1,lt_f=symbol,tot_f=this.numSyms,this.sortedSeen){var seen=this.sortedSeen;for(tot_f-=this.seenSyms,seen[seen.length-1]===this.numSyms&&tot_f++,i=0;ifileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),MTFModel.decompressFile=Util.decompressFileHelper(MTFModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream); range.decodeStart(!0);var model=new MTFModel(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),MTFModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],139:[function(require,module){var libs=[require("./BitStream"),require("./Util")],body_fn=function(BitStream,Util){var NoModel=function(bitstream,size){this.bitstream=bitstream,this.bits=Util.fls(size-1)};return NoModel.factory=function(bitstream){return function(size){return new NoModel(bitstream,size)}},NoModel.prototype.encode=function(symbol){var i;for(i=this.bits-1;i>=0;i--){var b=symbol>>>i&1;this.bitstream.writeBit(b)}},NoModel.prototype.decode=function(){var i,r=0;for(i=this.bits-1;i>=0;i--)r<<=1,this.bitstream.readBit()&&r++;return r},NoModel.MAGIC="nomo",NoModel.compressFile=Util.compressFileHelper(NoModel.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(outStream),model=new NoModel(bitstream,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),bitstream.flush()}),NoModel.decompressFile=Util.decompressFileHelper(NoModel.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(inStream),model=new NoModel(bitstream,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model)}),NoModel};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Util":144}],140:[function(require,module){var libs=[require("./RangeCoder"),require("./Util")],body_fn=function(RangeCoder,Util){var MAX_CONTEXT=5,LOG_WINDOW_SIZE=18,WINDOW_SIZE=1<i;i++)this.put("cSaCsA".charCodeAt(i%6))};Window.prototype.put=function(_byte){return this.buffer[this.pos++]=_byte,this.pos>=WINDOW_SIZE&&(this.pos=0,this.firstPass=!1),_byte},Window.prototype.get=function(pos){return this.buffer[pos&WINDOW_SIZE-1]},Window.prototype.context=function(pos,n){var i,c=[];for(pos=pos-n&WINDOW_SIZE-1,i=0;n>i;i++)c.push(this.buffer[pos++]),pos>=WINDOW_SIZE&&(pos=0);return String.fromCharCode.apply(String,c)};var DMM_INCREMENT=256,DMM_MAX_PROB=65280,PPM=function(coder,size){this.window=new Window,this.contexts=Object.create(null);var Cm1Context=function(){};Cm1Context.prototype.encode=function(symbol,exclude){var i,lt_f=0;for(i=0;symbol>i;i++)exclude[i]||lt_f++;var tot_f=size-exclude.total;coder.encodeFreq(1,lt_f,tot_f)},Cm1Context.prototype.decode=function(exclude){var i,symbol,lt_f,tot_f=size-exclude.total;for(symbol=lt_f=coder.decodeCulFreq(tot_f),i=0;symbol>=i;i++)exclude[i]&&symbol++;return coder.decodeUpdate(1,lt_f,tot_f),symbol},this.cm1coder=new Cm1Context;var DenseMTFModel=function(){this.sym=[size],this.prob=[0,DMM_INCREMENT],this.refcount=0};DenseMTFModel.prototype._rescale=function(){var i,j,seenSyms=this.sym.length,total=0,noEscape=!0;for(i=0,j=0;seenSyms>i;i++){var sym=this.sym[i],sy_f=this.prob[i+1]-this.prob[i];sy_f>>>=1,sy_f>0&&(sym===size&&(noEscape=!1),this.sym[j]=sym,this.prob[j++]=total,total+=sy_f)}return this.prob[j]=total,seenSyms=this.sym.length=j,this.prob.length=seenSyms+1,noEscape&&size>seenSyms&&(total=this._update(size,seenSyms,0,1)),total},DenseMTFModel.prototype.update=function(symbol,incr){var i=0;for(i=0;ij;j++)this.sym[j]=this.sym[j+1],this.prob[j]=this.prob[j+1]-sy_f;if(seenSyms>index)this.sym[j]=symbol,this.prob[j]=this.prob[j+1]-sy_f,this.prob[seenSyms]=tot_f=this.prob[seenSyms]+incr;else if(tot_f=this.prob[seenSyms],this.sym[index]=symbol,this.prob[index]=tot_f,tot_f+=incr,this.prob[++seenSyms]=tot_f,this.sym.length>size)for(i=0;seenSyms>i;i++)size===this.sym[i]&&(this._update(size,i,this.prob[i+1]-this.prob[i],-1),this.sym.length--,this.prob.length--,tot_f=this.prob[this.prob.length-1]);return tot_f>=DMM_MAX_PROB&&(tot_f=this._rescale()),tot_f},DenseMTFModel.prototype.encode=function(symbol,exclude){var i,j,sy_f,lt_f,tot_f,ex_sy_f,seenSyms=this.sym.length,ex_seen=0,ex_lt_f=0,ex_tot_f=0;for(i=seenSyms-1;i>=0;i--){if(lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f,symbol===this.sym[i]){for(j=i-1;j>=0&&ex_seen=0&&ex_seen=0;i--)if(exclude[this.sym[i]])ex_sy_f=this.prob[i+1]-this.prob[i],ex_lt_f-=ex_sy_f,prob-=ex_sy_f;else if(this.prob[i]<=prob)break;console.assert(i>=0);var symbol=this.sym[i],lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f;if(coder.decodeUpdate(sy_f,lt_f-ex_lt_f,tot_f-ex_tot_f),size>symbol)return symbol;for(this._update(symbol,i,sy_f,DMM_INCREMENT/2),console.assert(this.sym[this.sym.length-1]===size),i=0;ii;i++)for(j=0;i>=j;j++){var cc=this.window.context(j+(MAX_CONTEXT-1-i),j);this.contexts[cc]||(this.contexts[cc]=this.newContext()),this.contexts[cc].refcount++}}.call(this)};return PPM.prototype.update=function(symbol,contextString,matchLevel){var model,c,cc;for(c=0;MAX_CONTEXT>=c;c++)cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc],model||(model=this.contexts[cc]=this.newContext()),c>=matchLevel&&model.update(symbol,DMM_INCREMENT/2),model.refcount++;contextString=this.window.context(this.window.pos+MAX_CONTEXT,MAX_CONTEXT);var firstPass=this.window.firstPass;for(c=MAX_CONTEXT;c>=0&&!firstPass;c--)cc=contextString.slice(0,c),model=this.contexts[cc],console.assert(model),--model.refcount<=0&&(console.assert(""!==cc),delete this.contexts[cc]);this.window.put(symbol)},PPM.prototype.decode=function(){var model,c,cc,symbol,contextString=this.window.context(this.window.pos,MAX_CONTEXT),exclude=this.newExclude();for(c=MAX_CONTEXT;c>=0;c--)if(cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc],model&&(symbol=model.decode(exclude),symbol>=0))return this.update(symbol,contextString,c),symbol;return symbol=this.cm1coder.decode(exclude),this.update(symbol,contextString,c),symbol},PPM.prototype.encode=function(symbol){var c,contextString=this.window.context(this.window.pos,MAX_CONTEXT),exclude=this.newExclude();for(c=MAX_CONTEXT;c>=0;c--){var cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc];if(model){var success=model.encode(symbol,exclude);if(success)return void this.update(symbol,contextString,c)}}this.cm1coder.encode(symbol,exclude),this.update(symbol,contextString,c)},PPM.MAGIC="ppm2",PPM.compressFile=Util.compressFileHelper(PPM.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new PPM(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),PPM.decompressFile=Util.decompressFileHelper(PPM.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new PPM(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),PPM};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Util":144}],141:[function(require,module){var libs=[],body_fn=function(){var CODE_BITS=32,Top_value=Math.pow(2,CODE_BITS-1),SHIFT_BITS=CODE_BITS-9,EXTRA_BITS=(CODE_BITS-2)%8+1,Bottom_value=Top_value>>>8,MAX_INT=Math.pow(2,CODE_BITS)-1,RangeCoder=function(stream){this.low=0,this.range=Top_value,this.buffer=0,this.help=0,this.bytecount=0,this.stream=stream},enc_normalize=function(rc,outputStream){for(;rc.range<=Bottom_value;){if(rc.low<255<>>SHIFT_BITS&255}else if(rc.low&Top_value){for(outputStream.writeByte(rc.buffer+1);rc.help;rc.help--)outputStream.writeByte(0);rc.buffer=rc.low>>>SHIFT_BITS&255}else if(rc.help++,rc.help>MAX_INT)throw new Error("Too many bytes outstanding, file too large!");rc.range=rc.range<<8>>>0,rc.low=(rc.low<<8&Top_value-1)>>>0,rc.bytecount++}};RangeCoder.prototype.encodeStart=function(c,initlength){this.low=0,this.range=Top_value,this.buffer=c,this.help=0,this.bytecount=initlength},RangeCoder.prototype.encodeFreq=function(sy_f,lt_f,tot_f){enc_normalize(this,this.stream);var r=this.range/tot_f>>>0,tmp=r*lt_f;this.low+=tmp,tot_f>lt_f+sy_f?this.range=r*sy_f:this.range-=tmp},RangeCoder.prototype.encodeShift=function(sy_f,lt_f,shift){enc_normalize(this,this.stream);var r=this.range>>>shift,tmp=r*lt_f;this.low+=tmp,lt_f+sy_f>>>shift?this.range-=tmp:this.range=r*sy_f},RangeCoder.prototype.encodeBit=function(b){this.encodeShift(1,b?1:0,1)},RangeCoder.prototype.encodeByte=function(b){this.encodeShift(1,b,8)},RangeCoder.prototype.encodeShort=function(s){this.encodeShift(1,s,16)},RangeCoder.prototype.encodeFinish=function(){var outputStream=this.stream;enc_normalize(this,outputStream),this.bytecount+=5;var tmp=this.low>>>SHIFT_BITS;if((this.low&Bottom_value-1)>=(16777215&this.bytecount)>>>1&&tmp++,tmp>255)for(outputStream.writeByte(this.buffer+1);this.help;this.help--)outputStream.writeByte(0);else for(outputStream.writeByte(this.buffer);this.help;this.help--)outputStream.writeByte(255);return outputStream.writeByte(255&tmp),outputStream.writeByte(this.bytecount>>>16&255),outputStream.writeByte(this.bytecount>>>8&255),outputStream.writeByte(255&this.bytecount),this.bytecount},RangeCoder.prototype.decodeStart=function(skipInitialRead){var c=skipInitialRead?0:this.stream.readByte();return"number"!=typeof c||0>c?c:(this.buffer=this.stream.readByte(),this.low=this.buffer>>>8-EXTRA_BITS,this.range=1<>>8-EXTRA_BITS,rc.low=rc.low>>>0,rc.range=rc.range<<8>>>0};return RangeCoder.prototype.decodeCulFreq=function(tot_f){dec_normalize(this,this.stream),this.help=this.range/tot_f>>>0;var tmp=this.low/this.help>>>0;return tmp>=tot_f?tot_f-1:tmp},RangeCoder.prototype.decodeCulShift=function(shift){dec_normalize(this,this.stream),this.help=this.range>>>shift;var tmp=this.low/this.help>>>0;return tmp>>>shift?(1<lt_f+sy_f?this.range=this.help*sy_f:this.range-=tmp},RangeCoder.prototype.decodeBit=function(){var tmp=this.decodeCulShift(1);return this.decodeUpdate(1,tmp,2),tmp},RangeCoder.prototype.decodeByte=function(){var tmp=this.decodeCulShift(8);return this.decodeUpdate(1,tmp,256),tmp},RangeCoder.prototype.decodeShort=function(){var tmp=this.decodeCulShift(16);return this.decodeUpdate(1,tmp,65536),tmp},RangeCoder.prototype.decodeFinish=function(){dec_normalize(this,this.stream)},RangeCoder.prototype.writeBit=RangeCoder.prototype.encodeBit,RangeCoder.prototype.readBit=RangeCoder.prototype.decodeBit,RangeCoder.prototype.writeByte=RangeCoder.prototype.encodeByte,RangeCoder.prototype.readByte=RangeCoder.prototype.decodeByte,RangeCoder};module.exports=body_fn.apply(null,libs)},{}],142:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var MAX_BLOCK_SIZE=1<<17,Simple=Object.create(null);return Simple.MAGIC="smpl",Simple.compressFile=Util.compressFileHelper(Simple.MAGIC,function(input,output,size,props,finalByte){var encoder=new RangeCoder(output);encoder.encodeStart(finalByte,1);for(var block=Util.makeU8Buffer(MAX_BLOCK_SIZE),counts=[],blockLength=0,sawEOF=!1,readBlock=function(){var pos=0;for(pos=0;256>pos;pos++)counts[pos]=0;if(sawEOF)return void(blockLength=0);for(pos=0;MAX_BLOCK_SIZE>pos;){var c=input.readByte();if(c===Stream.EOF){sawEOF=!0;break}if(block[pos++]=c,counts[c]++,65535===counts[c])break}blockLength=pos};;){var i;if(readBlock(),sawEOF&&0===blockLength)break;for(encoder.encodeBit(!0),i=0;256>i;i++)encoder.encodeShort(counts[i]);for(counts[256]=blockLength,i=256;i;i--)counts[i-1]=counts[i]-counts[i-1];for(i=0;blockLength>i;i++){var ch=block[i];encoder.encodeFreq(counts[ch+1]-counts[ch],counts[ch],counts[256])}}encoder.encodeBit(!1),encoder.encodeFinish()},!0),Simple.decompressFile=Util.decompressFileHelper(Simple.MAGIC,function(input,output){var decoder=new RangeCoder(input);for(decoder.decodeStart(!0);decoder.decodeBit();){var i,counts=[];for(i=0;256>i;i++)counts[i]=decoder.decodeShort();var blocksize=0;for(i=0;256>i;i++){var tmp=counts[i];counts[i]=blocksize,blocksize+=tmp}for(counts[256]=blocksize,i=0;blocksize>i;i++){var symbol,cf=decoder.decodeCulFreq(blocksize);for(symbol=0;256>symbol&&!(counts[symbol]<=cf&&cfbytesRead;){if(ch=this.readByte(),ch===EOF){this._eof=!0;break}buf[bufOffset+bytesRead++]=ch}return bytesRead},Stream.prototype.eof=function(){return!!this._eof},Stream.prototype.seek=function(){throw new Error("Stream is not seekable.")},Stream.prototype.tell=function(){throw new Error("Stream is not seekable.")},Stream.prototype.writeByte=function(_byte){var buf=[_byte];this.write(buf,0,1)},Stream.prototype.write=function(buf,bufOffset,length){var i;for(i=0;length>i;i++)this.writeByte(buf[bufOffset+i]);return length},Stream.prototype.flush=function(){},Stream.EOF=EOF,freeze(Stream)};module.exports=body_fn.apply(null,libs)},{"./freeze":145}],144:[function(require,module){(function(process,Buffer){var libs=[require("./freeze"),require("./Stream")],body_fn=function(freeze,Stream){var Util=Object.create(null),EOF=Stream.EOF;Util.coerceInputStream=function(input,forceRead){if("readByte"in input){if(forceRead&&!("read"in input)){var s=input;input=new Stream,input.readByte=function(){var ch=s.readByte();return ch===EOF&&(this._eof=!0),ch},"size"in s&&(input.size=s.size),"seek"in s&&(input.seek=function(pos){s.seek(pos),this._eof=!1}),"tell"in s&&(input.tell=s.tell.bind(s))}}else{var buffer=input;input=new Stream,input.size=buffer.length,input.pos=0,input.readByte=function(){return this.pos>=this.size?EOF:buffer[this.pos++]},input.read=function(buf,bufOffset,length){for(var bytesRead=0;length>bytesRead&&this.pos=buffer.length}}return input};var BufferStream=function(buffer,resizeOk){this.buffer=buffer,this.resizeOk=resizeOk,this.pos=0};BufferStream.prototype=Object.create(Stream.prototype),BufferStream.prototype.writeByte=function(_byte){if(this.resizeOk&&this.pos>=this.buffer.length){var newBuffer=Util.makeU8Buffer(2*this.buffer.length);newBuffer.set(this.buffer),this.buffer=newBuffer}this.buffer[this.pos++]=_byte},BufferStream.prototype.getBuffer=function(){if(this.pos!==this.buffer.length){if(!this.resizeOk)throw new TypeError("outputsize does not match decoded input");var newBuffer=Util.makeU8Buffer(this.pos);newBuffer.set(this.buffer.subarray(0,this.pos)),this.buffer=newBuffer}return this.buffer},Util.coerceOutputStream=function(output,size){var r={stream:output,retval:output};if(output){if("object"==typeof output&&"writeByte"in output)return r;"number"==typeof size?(console.assert(size>=0),r.stream=new BufferStream(Util.makeU8Buffer(size),!1)):r.stream=new BufferStream(output,!1)}else r.stream=new BufferStream(Util.makeU8Buffer(16384),!0);return Object.defineProperty(r,"retval",{get:r.stream.getBuffer.bind(r.stream)}),r},Util.compressFileHelper=function(magic,guts,suppressFinalByte){return function(inStream,outStream,props){inStream=Util.coerceInputStream(inStream);var o=Util.coerceOutputStream(outStream,outStream);outStream=o.stream;var i;for(i=0;i=0?inStream.size:-1,suppressFinalByte){var tmpOutput=Util.coerceOutputStream([]);for(Util.writeUnsignedNumber(tmpOutput.stream,fileSize+1),tmpOutput=tmpOutput.retval,i=0;i=0);var i,bytes=[];do bytes.push(127&n),n=Math.floor(n/128);while(0!==n);for(bytes[0]|=128,i=bytes.length-1;i>=0;i--)output.writeByte(bytes[i]);return output},Util.readUnsignedNumber=function(input){for(var c,n=0;;){if(c=input.readByte(),128&c){n+=127&c;break}n=128*(n+c)}return n};var zerofill=function(a){for(var i=0,len=a.length;len>i;i++)a[i]=0;return a},fallbackarray=function(size){return zerofill(new Array(size))},ensureZeroed=function(a){return a};"undefined"!=typeof process&&Array.prototype.some.call(new Uint32Array(128),function(x){return 0!==x})&&(ensureZeroed=zerofill),Util.makeU8Buffer="undefined"!=typeof Uint8Array?function(size){return ensureZeroed(new Uint8Array(size))}:"undefined"!=typeof Buffer?function(size){var b=new Buffer(size);return b.fill(0),b}:fallbackarray,Util.makeU16Buffer="undefined"!=typeof Uint16Array?function(size){return ensureZeroed(new Uint16Array(size))}:fallbackarray,Util.makeU32Buffer="undefined"!=typeof Uint32Array?function(size){return ensureZeroed(new Uint32Array(size))}:fallbackarray,Util.makeS32Buffer="undefined"!=typeof Int32Array?function(size){return ensureZeroed(new Int32Array(size))}:fallbackarray,Util.arraycopy=function(dst,src){console.assert(dst.length>=src.length);for(var i=0,len=src.length;len>i;i++)dst[i]=src[i];return dst};var bytemsb=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];console.assert(256===bytemsb.length);var fls=Util.fls=function(v){return console.assert(v>=0),v>4294967295?32+fls(Math.floor(v/4294967296)):0!==(4294901760&v)?0!==(4278190080&v)?24+bytemsb[v>>>24&255]:16+bytemsb[v>>>16]:0!==(65280&v)?8+bytemsb[v>>>8]:bytemsb[v]};return Util.log2c=function(v){return 0===v?-1:fls(v-1)},freeze(Util)};module.exports=body_fn.apply(null,libs)}).call(this,require("_process"),require("buffer").Buffer)},{"./Stream":143,"./freeze":145,_process:99,buffer:80}],145:[function(require,module){var libs=[],body_fn=function(){"use strict";return Object.freeze?Object.freeze:function(o){return o}};module.exports=body_fn.apply(null,libs)},{}],146:[function(require,module){function Curve(p,a,b,Gx,Gy,n,h){this.p=p,this.a=a,this.b=b,this.G=Point.fromAffine(this,Gx,Gy),this.n=n,this.h=h,this.infinity=new Point(this,null,null,BigInteger.ZERO),this.pOverFour=p.add(BigInteger.ONE).shiftRight(2)}var assert=require("assert"),BigInteger=require("bn").BigInteger,Point=require("./point");Curve.prototype.pointFromX=function(isOdd,x){var alpha=x.pow(3).add(this.a.multiply(x)).add(this.b).mod(this.p),beta=alpha.modPow(this.pOverFour,this.p),y=beta;return beta.isEven()^!isOdd&&(y=this.p.subtract(y)),Point.fromAffine(this,x,y)},Curve.prototype.isInfinity=function(Q){return Q===this.infinity?!0:0===Q.z.signum()&&0!==Q.y.signum()},Curve.prototype.isOnCurve=function(Q){if(this.isInfinity(Q))return!0;var x=Q.affineX,y=Q.affineY,a=this.a,b=this.b,p=this.p;if(x.signum()<0||x.compareTo(p)>=0)return!1;if(y.signum()<0||y.compareTo(p)>=0)return!1;var lhs=y.square().mod(p),rhs=x.pow(3).add(a.multiply(x)).add(b).mod(p);return lhs.equals(rhs)},Curve.prototype.validate=function(Q){assert(!this.isInfinity(Q),"Point is at infinity"),assert(this.isOnCurve(Q),"Point is not on the curve");var nQ=Q.multiply(this.n);return assert(this.isInfinity(nQ),"Point is not a scalar multiple of G"),!0},module.exports=Curve},{"./point":150,assert:75,bn:71}],147:[function(require,module){module.exports={secp128r1:{p:"fffffffdffffffffffffffffffffffff",a:"fffffffdfffffffffffffffffffffffc",b:"e87579c11079f43dd824993c2cee5ed3",n:"fffffffe0000000075a30d1b9038a115",h:"01",Gx:"161ff7528b899b2d0c28607ca52c5b86",Gy:"cf5ac8395bafeb13c02da292dded7a83"},secp160k1:{p:"fffffffffffffffffffffffffffffffeffffac73",a:"00",b:"07",n:"0100000000000000000001b8fa16dfab9aca16b6b3",h:"01",Gx:"3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",Gy:"938cf935318fdced6bc28286531733c3f03c4fee"},secp160r1:{p:"ffffffffffffffffffffffffffffffff7fffffff",a:"ffffffffffffffffffffffffffffffff7ffffffc",b:"1c97befc54bd7a8b65acf89f81d4d4adc565fa45",n:"0100000000000000000001f4c8f927aed3ca752257",h:"01",Gx:"4a96b5688ef573284664698968c38bb913cbfc82",Gy:"23a628553168947d59dcc912042351377ac5fb32"},secp192k1:{p:"fffffffffffffffffffffffffffffffffffffffeffffee37",a:"00",b:"03",n:"fffffffffffffffffffffffe26f2fc170f69466a74defd8d",h:"01",Gx:"db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",Gy:"9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"},secp192r1:{p:"fffffffffffffffffffffffffffffffeffffffffffffffff",a:"fffffffffffffffffffffffffffffffefffffffffffffffc",b:"64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",n:"ffffffffffffffffffffffff99def836146bc9b1b4d22831",h:"01",Gx:"188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",Gy:"07192b95ffc8da78631011ed6b24cdd573f977a11e794811"},secp256k1:{p:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",a:"00",b:"07",n:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",h:"01",Gx:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",Gy:"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"},secp256r1:{p:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",a:"ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",b:"5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",n:"ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",h:"01",Gx:"6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",Gy:"4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"}}},{}],148:[function(require,module){var Point=require("./point"),Curve=require("./curve"),getCurveByName=require("./names");module.exports={Curve:Curve,Point:Point,getCurveByName:getCurveByName}},{"./curve":146,"./names":149,"./point":150}],149:[function(require,module){function getCurveByName(name){var curve=curves[name];if(!curve)return null;var p=new BigInteger(curve.p,16),a=new BigInteger(curve.a,16),b=new BigInteger(curve.b,16),n=new BigInteger(curve.n,16),h=new BigInteger(curve.h,16),Gx=new BigInteger(curve.Gx,16),Gy=new BigInteger(curve.Gy,16);return new Curve(p,a,b,Gx,Gy,n,h)}var BigInteger=require("bn").BigInteger,curves=require("./curves"),Curve=require("./curve");module.exports=getCurveByName},{"./curve":146,"./curves":147,bn:71}],150:[function(require,module){(function(Buffer){function Point(curve,x,y,z){assert.notStrictEqual(z,void 0,"Missing Z coordinate"),this.curve=curve,this.x=x,this.y=y,this.z=z,this._zInv=null,this.compressed=!0}var assert=require("assert"),BigInteger=require("bn").BigInteger,THREE=BigInteger.valueOf(3);Object.defineProperty(Point.prototype,"zInv",{get:function(){return null===this._zInv&&(this._zInv=this.z.modInverse(this.curve.p)),this._zInv}}),Object.defineProperty(Point.prototype,"affineX",{get:function(){return this.x.multiply(this.zInv).mod(this.curve.p)}}),Object.defineProperty(Point.prototype,"affineY",{get:function(){return this.y.multiply(this.zInv).mod(this.curve.p)}}),Point.fromAffine=function(curve,x,y){return new Point(curve,x,y,BigInteger.ONE)},Point.prototype.equals=function(other){if(other===this)return!0;if(this.curve.isInfinity(this))return this.curve.isInfinity(other);if(this.curve.isInfinity(other))return this.curve.isInfinity(this);var u=other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p);if(0!==u.signum())return!1;var v=other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p);return 0===v.signum()},Point.prototype.negate=function(){var y=this.curve.p.subtract(this.y);return new Point(this.curve,this.x,y,this.z)},Point.prototype.add=function(b){if(this.curve.isInfinity(this))return b;if(this.curve.isInfinity(b))return this;var x1=this.x,y1=this.y,x2=b.x,y2=b.y,u=y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p),v=x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p);if(0===v.signum())return 0===u.signum()?this.twice():this.curve.infinity;var v2=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.p),y3=x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p),z3=v3.multiply(this.z).multiply(b.z).mod(this.curve.p);return new Point(this.curve,x3,y3,z3)},Point.prototype.twice=function(){if(this.curve.isInfinity(this))return this;if(0===this.y.signum())return this.curve.infinity;var x1=this.x,y1=this.y,y1z1=y1.multiply(this.z),y1sqz1=y1z1.multiply(y1).mod(this.curve.p),a=this.curve.a,w=x1.square().multiply(THREE);0!==a.signum()&&(w=w.add(this.z.square().multiply(a))),w=w.mod(this.curve.p);var x3=w.square().subtract(x1.shiftLeft(3).multiply(y1sqz1)).shiftLeft(1).multiply(y1z1).mod(this.curve.p),y3=w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(1)).shiftLeft(2).multiply(y1sqz1).subtract(w.pow(3)).mod(this.curve.p),z3=y1z1.pow(3).shiftLeft(3).mod(this.curve.p);return new Point(this.curve,x3,y3,z3)},Point.prototype.multiply=function(k){if(this.curve.isInfinity(this))return this;if(0===k.signum())return this.curve.infinity;for(var e=k,h=e.multiply(THREE),neg=this.negate(),R=this,i=h.bitLength()-2;i>0;--i){R=R.twice();var hBit=h.testBit(i),eBit=e.testBit(i);hBit!=eBit&&(R=R.add(hBit?this:neg))}return R},Point.prototype.multiplyTwo=function(j,x,k){var i;i=j.bitLength()>k.bitLength()?j.bitLength()-1:k.bitLength()-1;for(var R=this.curve.infinity,both=this.add(x);i>=0;){R=R.twice();var jBit=j.testBit(i),kBit=k.testBit(i);jBit?R=R.add(kBit?both:this):kBit&&(R=R.add(x)),--i}return R},Point.prototype.getEncoded=function(compressed){if(void 0==compressed&&(compressed=this.compressed),this.curve.isInfinity(this))return new Buffer("00","hex");var buffer,x=this.affineX,y=this.affineY,byteLength=Math.floor((this.curve.p.bitLength()+7)/8);return compressed?(buffer=new Buffer(1+byteLength),buffer.writeUInt8(y.isEven()?2:3,0)):(buffer=new Buffer(1+byteLength+byteLength),buffer.writeUInt8(4,0),y.toBuffer(byteLength).copy(buffer,1+byteLength)),x.toBuffer(byteLength).copy(buffer,1),buffer},Point.decodeFrom=function(curve,buffer){var Q,type=buffer.readUInt8(0),compressed=4!==type,x=BigInteger.fromBuffer(buffer.slice(1,33)),byteLength=Math.floor((curve.p.bitLength()+7)/8);if(compressed){assert.equal(buffer.length,byteLength+1,"Invalid sequence length"),assert(2===type||3===type,"Invalid sequence tag");var isOdd=3===type;Q=curve.pointFromX(isOdd,x)}else{assert.equal(buffer.length,1+byteLength+byteLength,"Invalid sequence length");var y=BigInteger.fromBuffer(buffer.slice(1+byteLength));Q=Point.fromAffine(curve,x,y)}return Q.compressed=compressed,Q},Point.prototype.toString=function(){return this.curve.isInfinity(this)?"(INFINITY)":"("+this.affineX.toString()+","+this.affineY.toString()+")"},module.exports=Point}).call(this,require("buffer").Buffer)},{assert:75,bn:71,buffer:80}],151:[function(require,module,exports){"use strict";var TYPED_OK="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;exports.assign=function(obj){for(var sources=Array.prototype.slice.call(arguments,1);sources.length;){var source=sources.shift();if(source){if("object"!=typeof source)throw new TypeError(source+"must be non-object");for(var p in source)source.hasOwnProperty(p)&&(obj[p]=source[p])}}return obj},exports.shrinkBuf=function(buf,size){return buf.length===size?buf:buf.subarray?buf.subarray(0,size):(buf.length=size,buf)};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray)return void dest.set(src.subarray(src_offs,src_offs+len),dest_offs);for(var i=0;len>i;i++)dest[dest_offs+i]=src[src_offs+i]},flattenChunks:function(chunks){var i,l,len,pos,chunk,result;for(len=0,i=0,l=chunks.length;l>i;i++)len+=chunks[i].length;for(result=new Uint8Array(len),pos=0,i=0,l=chunks.length;l>i;i++)chunk=chunks[i],result.set(chunk,pos),pos+=chunk.length;return result}},fnUntyped={arraySet:function(dest,src,src_offs,len,dest_offs){for(var i=0;len>i;i++)dest[dest_offs+i]=src[src_offs+i]},flattenChunks:function(chunks){return[].concat.apply([],chunks)}};exports.setTyped=function(on){on?(exports.Buf8=Uint8Array,exports.Buf16=Uint16Array,exports.Buf32=Int32Array,exports.assign(exports,fnTyped)):(exports.Buf8=Array,exports.Buf16=Array,exports.Buf32=Array,exports.assign(exports,fnUntyped))},exports.setTyped(TYPED_OK)},{}],152:[function(require,module){"use strict";function adler32(adler,buf,len,pos){for(var s1=65535&adler|0,s2=adler>>>16&65535|0,n=0;0!==len;){n=len>2e3?2e3:len,len-=n;do s1=s1+buf[pos++]|0,s2=s2+s1|0;while(--n);s1%=65521,s2%=65521}return s1|s2<<16|0}module.exports=adler32},{}],153:[function(require,module){module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8} },{}],154:[function(require,module){"use strict";function makeTable(){for(var c,table=[],n=0;256>n;n++){c=n;for(var k=0;8>k;k++)c=1&c?3988292384^c>>>1:c>>>1;table[n]=c}return table}function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc=-1^crc;for(var i=pos;end>i;i++)crc=crc>>>8^t[255&(crc^buf[i])];return-1^crc}var crcTable=makeTable();module.exports=crc32},{}],155:[function(require,module,exports){"use strict";function err(strm,errorCode){return strm.msg=msg[errorCode],errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){for(var len=buf.length;--len>=0;)buf[len]=0}function flush_pending(strm){var s=strm.state,len=s.pending;len>strm.avail_out&&(len=strm.avail_out),0!==len&&(utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out),strm.next_out+=len,s.pending_out+=len,strm.total_out+=len,strm.avail_out-=len,s.pending-=len,0===s.pending&&(s.pending_out=0))}function flush_block_only(s,last){trees._tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last),s.block_start=s.strstart,flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255,s.pending_buf[s.pending++]=255&b}function read_buf(strm,buf,start,size){var len=strm.avail_in;return len>size&&(len=size),0===len?0:(strm.avail_in-=len,utils.arraySet(buf,strm.input,strm.next_in,len,start),1===strm.state.wrap?strm.adler=adler32(strm.adler,buf,len,start):2===strm.state.wrap&&(strm.adler=crc32(strm.adler,buf,len,start)),strm.next_in+=len,strm.total_in+=len,len)}function longest_match(s,cur_match){var match,len,chain_length=s.max_chain_length,scan=s.strstart,best_len=s.prev_length,nice_match=s.nice_match,limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0,_win=s.window,wmask=s.w_mask,prev=s.prev,strend=s.strstart+MAX_MATCH,scan_end1=_win[scan+best_len-1],scan_end=_win[scan+best_len];s.prev_length>=s.good_match&&(chain_length>>=2),nice_match>s.lookahead&&(nice_match=s.lookahead);do if(match=cur_match,_win[match+best_len]===scan_end&&_win[match+best_len-1]===scan_end1&&_win[match]===_win[scan]&&_win[++match]===_win[scan+1]){scan+=2,match++;do;while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&strend>scan);if(len=MAX_MATCH-(strend-scan),scan=strend-MAX_MATCH,len>best_len){if(s.match_start=cur_match,best_len=len,len>=nice_match)break;scan_end1=_win[scan+best_len-1],scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&0!==--chain_length);return best_len<=s.lookahead?best_len:s.lookahead}function fill_window(s){var p,n,m,more,str,_w_size=s.w_size;do{if(more=s.window_size-s.lookahead-s.strstart,s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window,s.window,_w_size,_w_size,0),s.match_start-=_w_size,s.strstart-=_w_size,s.block_start-=_w_size,n=s.hash_size,p=n;do m=s.head[--p],s.head[p]=m>=_w_size?m-_w_size:0;while(--n);n=_w_size,p=n;do m=s.prev[--p],s.prev[p]=m>=_w_size?m-_w_size:0;while(--n);more+=_w_size}if(0===s.strm.avail_in)break;if(n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more),s.lookahead+=n,s.lookahead+s.insert>=MIN_MATCH)for(str=s.strstart-s.insert,s.ins_h=s.window[str],s.ins_h=(s.ins_h<s.pending_buf_size-5&&(max_block_size=s.pending_buf_size-5);;){if(s.lookahead<=1){if(fill_window(s),0===s.lookahead&&flush===Z_NO_FLUSH)return BS_NEED_MORE;if(0===s.lookahead)break}s.strstart+=s.lookahead,s.lookahead=0;var max_start=s.block_start+max_block_size;if((0===s.strstart||s.strstart>=max_start)&&(s.lookahead=s.strstart-max_start,s.strstart=max_start,flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE;if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.strstart>s.block_start&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_NEED_MORE}function deflate_fast(s,flush){for(var hash_head,bflush;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=(s.ins_h<=MIN_MATCH)if(bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do s.strstart++,s.ins_h=(s.ins_h<=MIN_MATCH&&(s.ins_h=(s.ins_h<4096)&&(s.match_length=MIN_MATCH-1)),s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH,bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH),s.lookahead-=s.prev_length-1,s.prev_length-=2;do++s.strstart<=max_insert&&(s.ins_h=(s.ins_h<=MIN_MATCH&&s.strstart>0&&(scan=s.strstart-1,prev=_win[scan],prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan])){strend=s.strstart+MAX_MATCH;do;while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&strend>scan);s.match_length=MAX_MATCH-(strend-scan),s.match_length>s.lookahead&&(s.match_length=s.lookahead)}if(s.match_length>=MIN_MATCH?(bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.strstart+=s.match_length,s.match_length=0):(bflush=trees._tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++),bflush&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.last_lit&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_huff(s,flush){for(var bflush;;){if(0===s.lookahead&&(fill_window(s),0===s.lookahead)){if(flush===Z_NO_FLUSH)return BS_NEED_MORE;break}if(s.match_length=0,bflush=trees._tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++,bflush&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.last_lit&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_BLOCK_DONE}function lm_init(s){s.window_size=2*s.w_size,zero(s.head),s.max_lazy_match=configuration_table[s.level].max_lazy,s.good_match=configuration_table[s.level].good_length,s.nice_match=configuration_table[s.level].nice_length,s.max_chain_length=configuration_table[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=MIN_MATCH-1,s.match_available=0,s.ins_h=0}function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new utils.Buf16(2*HEAP_SIZE),this.dyn_dtree=new utils.Buf16(2*(2*D_CODES+1)),this.bl_tree=new utils.Buf16(2*(2*BL_CODES+1)),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new utils.Buf16(MAX_BITS+1),this.heap=new utils.Buf16(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new utils.Buf16(2*L_CODES+1),zero(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function deflateResetKeep(strm){var s;return strm&&strm.state?(strm.total_in=strm.total_out=0,strm.data_type=Z_UNKNOWN,s=strm.state,s.pending=0,s.pending_out=0,s.wrap<0&&(s.wrap=-s.wrap),s.status=s.wrap?INIT_STATE:BUSY_STATE,strm.adler=2===s.wrap?0:1,s.last_flush=Z_NO_FLUSH,trees._tr_init(s),Z_OK):err(strm,Z_STREAM_ERROR)}function deflateReset(strm){var ret=deflateResetKeep(strm);return ret===Z_OK&&lm_init(strm.state),ret}function deflateSetHeader(strm,head){return strm&&strm.state?2!==strm.state.wrap?Z_STREAM_ERROR:(strm.state.gzhead=head,Z_OK):Z_STREAM_ERROR}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm)return Z_STREAM_ERROR;var wrap=1;if(level===Z_DEFAULT_COMPRESSION&&(level=6),0>windowBits?(wrap=0,windowBits=-windowBits):windowBits>15&&(wrap=2,windowBits-=16),1>memLevel||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||8>windowBits||windowBits>15||0>level||level>9||0>strategy||strategy>Z_FIXED)return err(strm,Z_STREAM_ERROR);8===windowBits&&(windowBits=9);var s=new DeflateState;return strm.state=s,s.strm=strm,s.wrap=wrap,s.gzhead=null,s.w_bits=windowBits,s.w_size=1<>1,s.l_buf=3*s.lit_bufsize,s.level=level,s.strategy=strategy,s.method=method,deflateReset(strm)}function deflateInit(strm,level){return deflateInit2(strm,level,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(strm,flush){var old_flush,s,beg,val;if(!strm||!strm.state||flush>Z_BLOCK||0>flush)return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR;if(s=strm.state,!strm.output||!strm.input&&0!==strm.avail_in||s.status===FINISH_STATE&&flush!==Z_FINISH)return err(strm,0===strm.avail_out?Z_BUF_ERROR:Z_STREAM_ERROR);if(s.strm=strm,old_flush=s.last_flush,s.last_flush=flush,s.status===INIT_STATE)if(2===s.wrap)strm.adler=0,put_byte(s,31),put_byte(s,139),put_byte(s,8),s.gzhead?(put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),put_byte(s,255&s.gzhead.time),put_byte(s,s.gzhead.time>>8&255),put_byte(s,s.gzhead.time>>16&255),put_byte(s,s.gzhead.time>>24&255),put_byte(s,9===s.level?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0),put_byte(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(put_byte(s,255&s.gzhead.extra.length),put_byte(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=EXTRA_STATE):(put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,9===s.level?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0),put_byte(s,OS_CODE),s.status=BUSY_STATE);else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8,level_flags=-1;level_flags=s.strategy>=Z_HUFFMAN_ONLY||s.level<2?0:s.level<6?1:6===s.level?2:3,header|=level_flags<<6,0!==s.strstart&&(header|=PRESET_DICT),header+=31-header%31,s.status=BUSY_STATE,putShortMSB(s,header),0!==s.strstart&&(putShortMSB(s,strm.adler>>>16),putShortMSB(s,65535&strm.adler)),strm.adler=1}if(s.status===EXTRA_STATE)if(s.gzhead.extra){for(beg=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending!==s.pending_buf_size));)put_byte(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=NAME_STATE)}else s.status=NAME_STATE;if(s.status===NAME_STATE)if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending===s.pending_buf_size)){val=1;break}val=s.gzindexbeg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),0===val&&(s.gzindex=0,s.status=COMMENT_STATE)}else s.status=COMMENT_STATE;if(s.status===COMMENT_STATE)if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending===s.pending_buf_size)){val=1;break}val=s.gzindexbeg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),0===val&&(s.status=HCRC_STATE)}else s.status=HCRC_STATE;if(s.status===HCRC_STATE&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&flush_pending(strm),s.pending+2<=s.pending_buf_size&&(put_byte(s,255&strm.adler),put_byte(s,strm.adler>>8&255),strm.adler=0,s.status=BUSY_STATE)):s.status=BUSY_STATE),0!==s.pending){if(flush_pending(strm),0===strm.avail_out)return s.last_flush=-1,Z_OK}else if(0===strm.avail_in&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH)return err(strm,Z_BUF_ERROR);if(s.status===FINISH_STATE&&0!==strm.avail_in)return err(strm,Z_BUF_ERROR);if(0!==strm.avail_in||0!==s.lookahead||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if((bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE)&&(s.status=FINISH_STATE),bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED)return 0===strm.avail_out&&(s.last_flush=-1),Z_OK;if(bstate===BS_BLOCK_DONE&&(flush===Z_PARTIAL_FLUSH?trees._tr_align(s):flush!==Z_BLOCK&&(trees._tr_stored_block(s,0,0,!1),flush===Z_FULL_FLUSH&&(zero(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),flush_pending(strm),0===strm.avail_out))return s.last_flush=-1,Z_OK}return flush!==Z_FINISH?Z_OK:s.wrap<=0?Z_STREAM_END:(2===s.wrap?(put_byte(s,255&strm.adler),put_byte(s,strm.adler>>8&255),put_byte(s,strm.adler>>16&255),put_byte(s,strm.adler>>24&255),put_byte(s,255&strm.total_in),put_byte(s,strm.total_in>>8&255),put_byte(s,strm.total_in>>16&255),put_byte(s,strm.total_in>>24&255)):(putShortMSB(s,strm.adler>>>16),putShortMSB(s,65535&strm.adler)),flush_pending(strm),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?Z_OK:Z_STREAM_END)}function deflateEnd(strm){var status;return strm&&strm.state?(status=strm.state.status,status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE?err(strm,Z_STREAM_ERROR):(strm.state=null,status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK)):Z_STREAM_ERROR}var configuration_table,utils=require("../utils/common"),trees=require("./trees"),adler32=require("./adler32"),crc32=require("./crc32"),msg=require("./messages"),Z_NO_FLUSH=0,Z_PARTIAL_FLUSH=1,Z_FULL_FLUSH=3,Z_FINISH=4,Z_BLOCK=5,Z_OK=0,Z_STREAM_END=1,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_BUF_ERROR=-5,Z_DEFAULT_COMPRESSION=-1,Z_FILTERED=1,Z_HUFFMAN_ONLY=2,Z_RLE=3,Z_FIXED=4,Z_DEFAULT_STRATEGY=0,Z_UNKNOWN=2,Z_DEFLATED=8,MAX_MEM_LEVEL=9,MAX_WBITS=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,Config=function(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length,this.max_lazy=max_lazy,this.nice_length=nice_length,this.max_chain=max_chain,this.func=func};configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],exports.deflateInit=deflateInit,exports.deflateInit2=deflateInit2,exports.deflateReset=deflateReset,exports.deflateResetKeep=deflateResetKeep,exports.deflateSetHeader=deflateSetHeader,exports.deflate=deflate,exports.deflateEnd=deflateEnd,exports.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":151,"./adler32":152,"./crc32":154,"./messages":159,"./trees":160}],156:[function(require,module){"use strict";var BAD=30,TYPE=12;module.exports=function(strm,start){var state,_in,last,_out,beg,end,dmax,wsize,whave,wnext,window,hold,bits,lcode,dcode,lmask,dmask,here,op,len,dist,from,from_source,input,output;state=strm.state,_in=strm.next_in,input=strm.input,last=_in+(strm.avail_in-5),_out=strm.next_out,output=strm.output,beg=_out-(start-strm.avail_out),end=_out+(strm.avail_out-257),dmax=state.dmax,wsize=state.wsize,whave=state.whave,wnext=state.wnext,window=state.window,hold=state.hold,bits=state.bits,lcode=state.lencode,dcode=state.distcode,lmask=(1<bits&&(hold+=input[_in++]<>>24,hold>>>=op,bits-=op,op=here>>>16&255,0===op)output[_out++]=65535&here;else{if(!(16&op)){if(0===(64&op)){here=lcode[(65535&here)+(hold&(1<bits&&(hold+=input[_in++]<>>=op,bits-=op),15>bits&&(hold+=input[_in++]<>>24,hold>>>=op,bits-=op,op=here>>>16&255,!(16&op)){if(0===(64&op)){here=dcode[(65535&here)+(hold&(1<bits&&(hold+=input[_in++]<bits&&(hold+=input[_in++]<dmax){strm.msg="invalid distance too far back",state.mode=BAD;break top}if(hold>>>=op,bits-=op,op=_out-beg,dist>op){if(op=dist-op,op>whave&&state.sane){strm.msg="invalid distance too far back",state.mode=BAD;break top}if(from=0,from_source=window,0===wnext){if(from+=wsize-op,len>op){len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}}else if(op>wnext){if(from+=wsize+wnext-op,op-=wnext,len>op){len-=op;do output[_out++]=window[from++];while(--op);if(from=0,len>wnext){op=wnext,len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}}}else if(from+=wnext-op,len>op){len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}for(;len>2;)output[_out++]=from_source[from++],output[_out++]=from_source[from++],output[_out++]=from_source[from++],len-=3;len&&(output[_out++]=from_source[from++],len>1&&(output[_out++]=from_source[from++]))}else{from=_out-dist;do output[_out++]=output[from++],output[_out++]=output[from++],output[_out++]=output[from++],len-=3;while(len>2);len&&(output[_out++]=output[from++],len>1&&(output[_out++]=output[from++]))}break}}break}}while(last>_in&&end>_out);len=bits>>3,_in-=len,bits-=len<<3,hold&=(1<_in?5+(last-_in):5-(_in-last),strm.avail_out=end>_out?257+(end-_out):257-(_out-end),state.hold=hold,state.bits=bits}},{}],157:[function(require,module,exports){"use strict";function ZSWAP32(q){return(q>>>24&255)+(q>>>8&65280)+((65280&q)<<8)+((255&q)<<24)}function InflateState(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new utils.Buf16(320),this.work=new utils.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function inflateResetKeep(strm){var state;return strm&&strm.state?(state=strm.state,strm.total_in=strm.total_out=state.total=0,strm.msg="",state.wrap&&(strm.adler=1&state.wrap),state.mode=HEAD,state.last=0,state.havedict=0,state.dmax=32768,state.head=null,state.hold=0,state.bits=0,state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS),state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS),state.sane=1,state.back=-1,Z_OK):Z_STREAM_ERROR}function inflateReset(strm){var state;return strm&&strm.state?(state=strm.state,state.wsize=0,state.whave=0,state.wnext=0,inflateResetKeep(strm)):Z_STREAM_ERROR}function inflateReset2(strm,windowBits){var wrap,state;return strm&&strm.state?(state=strm.state,0>windowBits?(wrap=0,windowBits=-windowBits):(wrap=(windowBits>>4)+1,48>windowBits&&(windowBits&=15)),windowBits&&(8>windowBits||windowBits>15)?Z_STREAM_ERROR:(null!==state.window&&state.wbits!==windowBits&&(state.window=null),state.wrap=wrap,state.wbits=windowBits,inflateReset(strm))):Z_STREAM_ERROR}function inflateInit2(strm,windowBits){var ret,state;return strm?(state=new InflateState,strm.state=state,state.window=null,ret=inflateReset2(strm,windowBits),ret!==Z_OK&&(strm.state=null),ret):Z_STREAM_ERROR}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}function fixedtables(state){if(virgin){var sym;for(lenfix=new utils.Buf32(512),distfix=new utils.Buf32(32),sym=0;144>sym;)state.lens[sym++]=8;for(;256>sym;)state.lens[sym++]=9;for(;280>sym;)state.lens[sym++]=7;for(;288>sym;)state.lens[sym++]=8;for(inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9}),sym=0;32>sym;)state.lens[sym++]=5;inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5}),virgin=!1}state.lencode=lenfix,state.lenbits=9,state.distcode=distfix,state.distbits=5}function updatewindow(strm,src,end,copy){var dist,state=strm.state;return null===state.window&&(state.wsize=1<=state.wsize?(utils.arraySet(state.window,src,end-state.wsize,state.wsize,0),state.wnext=0,state.whave=state.wsize):(dist=state.wsize-state.wnext,dist>copy&&(dist=copy),utils.arraySet(state.window,src,end-copy,dist,state.wnext),copy-=dist,copy?(utils.arraySet(state.window,src,end-copy,copy,0),state.wnext=copy,state.whave=state.wsize):(state.wnext+=dist,state.wnext===state.wsize&&(state.wnext=0),state.whavebits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>8&255,state.check=crc32(state.check,hbuf,2,0),hold=0,bits=0,state.mode=FLAGS;break}if(state.flags=0,state.head&&(state.head.done=!1),!(1&state.wrap)||(((255&hold)<<8)+(hold>>8))%31){strm.msg="incorrect header check",state.mode=BAD;break}if((15&hold)!==Z_DEFLATED){strm.msg="unknown compression method",state.mode=BAD;break}if(hold>>>=4,bits-=4,len=(15&hold)+8,0===state.wbits)state.wbits=len;else if(len>state.wbits){strm.msg="invalid window size",state.mode=BAD;break}state.dmax=1<bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>8&1),512&state.flags&&(hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0,state.mode=TIME;case TIME:for(;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>8&255,hbuf[2]=hold>>>16&255,hbuf[3]=hold>>>24&255,state.check=crc32(state.check,hbuf,4,0)),hold=0,bits=0,state.mode=OS;case OS:for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>8),512&state.flags&&(hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0,state.mode=EXLEN;case EXLEN:if(1024&state.flags){for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0}else state.head&&(state.head.extra=null);state.mode=EXTRA;case EXTRA:if(1024&state.flags&&(copy=state.length,copy>have&&(copy=have),copy&&(state.head&&(len=state.head.extra_len-state.length,state.head.extra||(state.head.extra=new Array(state.head.extra_len)),utils.arraySet(state.head.extra,input,next,copy,len)),512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,state.length-=copy),state.length))break inf_leave;state.length=0,state.mode=NAME;case NAME:if(2048&state.flags){if(0===have)break inf_leave;copy=0;do len=input[next+copy++],state.head&&len&&state.length<65536&&(state.head.name+=String.fromCharCode(len));while(len&&have>copy);if(512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,len)break inf_leave}else state.head&&(state.head.name=null);state.length=0,state.mode=COMMENT;case COMMENT:if(4096&state.flags){if(0===have)break inf_leave;copy=0;do len=input[next+copy++],state.head&&len&&state.length<65536&&(state.head.comment+=String.fromCharCode(len));while(len&&have>copy);if(512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,len)break inf_leave}else state.head&&(state.head.comment=null);state.mode=HCRC;case HCRC:if(512&state.flags){for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>9&1,state.head.done=!0),strm.adler=state.check=0,state.mode=TYPE;break;case DICTID:for(;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=7&bits,bits-=7&bits,state.mode=CHECK;break}for(;3>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=1,bits-=1,3&hold){case 0:state.mode=STORED;break;case 1:if(fixedtables(state),state.mode=LEN_,flush===Z_TREES){hold>>>=2,bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type",state.mode=BAD}hold>>>=2,bits-=2;break;case STORED:for(hold>>>=7&bits,bits-=7&bits;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>16^65535)){strm.msg="invalid stored block lengths",state.mode=BAD;break}if(state.length=65535&hold,hold=0,bits=0,state.mode=COPY_,flush===Z_TREES)break inf_leave;case COPY_:state.mode=COPY;case COPY:if(copy=state.length){if(copy>have&&(copy=have),copy>left&&(copy=left),0===copy)break inf_leave;utils.arraySet(output,input,next,copy,put),have-=copy,next+=copy,left-=copy,put+=copy,state.length-=copy;break}state.mode=TYPE;break;case TABLE:for(;14>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=5,bits-=5,state.ndist=(31&hold)+1,hold>>>=5,bits-=5,state.ncode=(15&hold)+4,hold>>>=4,bits-=4,state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols",state.mode=BAD; break}state.have=0,state.mode=LENLENS;case LENLENS:for(;state.havebits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=3,bits-=3}for(;state.have<19;)state.lens[order[state.have++]]=0;if(state.lencode=state.lendyn,state.lenbits=7,opts={bits:state.lenbits},ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts),state.lenbits=opts.bits,ret){strm.msg="invalid code lengths set",state.mode=BAD;break}state.have=0,state.mode=CODELENS;case CODELENS:for(;state.have>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<here_val)hold>>>=here_bits,bits-=here_bits,state.lens[state.have++]=here_val;else{if(16===here_val){for(n=here_bits+2;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=here_bits,bits-=here_bits,0===state.have){strm.msg="invalid bit length repeat",state.mode=BAD;break}len=state.lens[state.have-1],copy=3+(3&hold),hold>>>=2,bits-=2}else if(17===here_val){for(n=here_bits+3;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=here_bits,bits-=here_bits,len=0,copy=3+(7&hold),hold>>>=3,bits-=3}else{for(n=here_bits+7;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=here_bits,bits-=here_bits,len=0,copy=11+(127&hold),hold>>>=7,bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat",state.mode=BAD;break}for(;copy--;)state.lens[state.have++]=len}}if(state.mode===BAD)break;if(0===state.lens[256]){strm.msg="invalid code -- missing end-of-block",state.mode=BAD;break}if(state.lenbits=9,opts={bits:state.lenbits},ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts),state.lenbits=opts.bits,ret){strm.msg="invalid literal/lengths set",state.mode=BAD;break}if(state.distbits=6,state.distcode=state.distdyn,opts={bits:state.distbits},ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts),state.distbits=opts.bits,ret){strm.msg="invalid distances set",state.mode=BAD;break}if(state.mode=LEN_,flush===Z_TREES)break inf_leave;case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put,strm.avail_out=left,strm.next_in=next,strm.avail_in=have,state.hold=hold,state.bits=bits,inflate_fast(strm,_out),put=strm.next_out,output=strm.output,left=strm.avail_out,next=strm.next_in,input=strm.input,have=strm.avail_in,hold=state.hold,bits=state.bits,state.mode===TYPE&&(state.back=-1);break}for(state.back=0;here=state.lencode[hold&(1<>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<>last_bits)],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=last_bits+here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=last_bits,bits-=last_bits,state.back+=last_bits}if(hold>>>=here_bits,bits-=here_bits,state.back+=here_bits,state.length=here_val,0===here_op){state.mode=LIT;break}if(32&here_op){state.back=-1,state.mode=TYPE;break}if(64&here_op){strm.msg="invalid literal/length code",state.mode=BAD;break}state.extra=15&here_op,state.mode=LENEXT;case LENEXT:if(state.extra){for(n=state.extra;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=state.extra,bits-=state.extra,state.back+=state.extra}state.was=state.length,state.mode=DIST;case DIST:for(;here=state.distcode[hold&(1<>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<>last_bits)],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=last_bits+here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=last_bits,bits-=last_bits,state.back+=last_bits}if(hold>>>=here_bits,bits-=here_bits,state.back+=here_bits,64&here_op){strm.msg="invalid distance code",state.mode=BAD;break}state.offset=here_val,state.extra=15&here_op,state.mode=DISTEXT;case DISTEXT:if(state.extra){for(n=state.extra;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=state.extra,bits-=state.extra,state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back",state.mode=BAD;break}state.mode=MATCH;case MATCH:if(0===left)break inf_leave;if(copy=_out-left,state.offset>copy){if(copy=state.offset-copy,copy>state.whave&&state.sane){strm.msg="invalid distance too far back",state.mode=BAD;break}copy>state.wnext?(copy-=state.wnext,from=state.wsize-copy):from=state.wnext-copy,copy>state.length&&(copy=state.length),from_source=state.window}else from_source=output,from=put-state.offset,copy=state.length;copy>left&&(copy=left),left-=copy,state.length-=copy;do output[put++]=from_source[from++];while(--copy);0===state.length&&(state.mode=LEN);break;case LIT:if(0===left)break inf_leave;output[put++]=state.length,left--,state.mode=LEN;break;case CHECK:if(state.wrap){for(;32>bits;){if(0===have)break inf_leave;have--,hold|=input[next++]<bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<=len;len++)count[len]=0;for(sym=0;codes>sym;sym++)count[lens[lens_index+sym]]++;for(root=bits,max=MAXBITS;max>=1&&0===count[max];max--);if(root>max&&(root=max),0===max)return table[table_index++]=20971520,table[table_index++]=20971520,opts.bits=1,0;for(min=1;max>min&&0===count[min];min++);for(min>root&&(root=min),left=1,len=1;MAXBITS>=len;len++)if(left<<=1,left-=count[len],0>left)return-1;if(left>0&&(type===CODES||1!==max))return-1;for(offs[1]=0,len=1;MAXBITS>len;len++)offs[len+1]=offs[len]+count[len];for(sym=0;codes>sym;sym++)0!==lens[lens_index+sym]&&(work[offs[lens[lens_index+sym]]++]=sym);if(type===CODES?(base=extra=work,end=19):type===LENS?(base=lbase,base_index-=257,extra=lext,extra_index-=257,end=256):(base=dbase,extra=dext,end=-1),huff=0,sym=0,len=min,next=table_index,curr=root,drop=0,low=-1,used=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;for(var i=0;;){i++,here_bits=len-drop,work[sym]end?(here_op=extra[extra_index+work[sym]],here_val=base[base_index+work[sym]]):(here_op=96,here_val=0),incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0;while(0!==fill);for(incr=1<>=1;if(0!==incr?(huff&=incr-1,huff+=incr):huff=0,sym++,0===--count[len]){if(len===max)break;len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){for(0===drop&&(drop=root),next+=min,curr=len-drop,left=1<curr+drop&&(left-=count[curr+drop],!(0>=left));)curr++,left<<=1;if(used+=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;low=huff&mask,table[low]=root<<24|curr<<16|next-table_index|0}}return 0!==huff&&(table[next+huff]=len-drop<<24|64<<16|0),opts.bits=root,0}},{"../utils/common":151}],159:[function(require,module){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],160:[function(require,module,exports){"use strict";function zero(buf){for(var len=buf.length;--len>=0;)buf[len]=0}function d_code(dist){return 256>dist?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=255&w,s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){s.bi_valid>Buf_size-length?(s.bi_buf|=value<>Buf_size-s.bi_valid,s.bi_valid+=length-Buf_size):(s.bi_buf|=value<>>=1,res<<=1;while(--len>0);return res>>>1}function bi_flush(s){16===s.bi_valid?(put_short(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=255&s.bi_buf,s.bi_buf>>=8,s.bi_valid-=8)}function gen_bitlen(s,desc){var h,n,m,bits,xbits,f,tree=desc.dyn_tree,max_code=desc.max_code,stree=desc.stat_desc.static_tree,has_stree=desc.stat_desc.has_stree,extra=desc.stat_desc.extra_bits,base=desc.stat_desc.extra_base,max_length=desc.stat_desc.max_length,overflow=0;for(bits=0;MAX_BITS>=bits;bits++)s.bl_count[bits]=0;for(tree[2*s.heap[s.heap_max]+1]=0,h=s.heap_max+1;HEAP_SIZE>h;h++)n=s.heap[h],bits=tree[2*tree[2*n+1]+1]+1,bits>max_length&&(bits=max_length,overflow++),tree[2*n+1]=bits,n>max_code||(s.bl_count[bits]++,xbits=0,n>=base&&(xbits=extra[n-base]),f=tree[2*n],s.opt_len+=f*(bits+xbits),has_stree&&(s.static_len+=f*(stree[2*n+1]+xbits)));if(0!==overflow){do{for(bits=max_length-1;0===s.bl_count[bits];)bits--;s.bl_count[bits]--,s.bl_count[bits+1]+=2,s.bl_count[max_length]--,overflow-=2}while(overflow>0);for(bits=max_length;0!==bits;bits--)for(n=s.bl_count[bits];0!==n;)m=s.heap[--h],m>max_code||(tree[2*m+1]!==bits&&(s.opt_len+=(bits-tree[2*m+1])*tree[2*m],tree[2*m+1]=bits),n--)}}function gen_codes(tree,max_code,bl_count){var bits,n,next_code=new Array(MAX_BITS+1),code=0;for(bits=1;MAX_BITS>=bits;bits++)next_code[bits]=code=code+bl_count[bits-1]<<1;for(n=0;max_code>=n;n++){var len=tree[2*n+1];0!==len&&(tree[2*n]=bi_reverse(next_code[len]++,len))}}function tr_static_init(){var n,bits,length,code,dist,bl_count=new Array(MAX_BITS+1);for(length=0,code=0;LENGTH_CODES-1>code;code++)for(base_length[code]=length,n=0;n<1<code;code++)for(base_dist[code]=dist,n=0;n<1<>=7;D_CODES>code;code++)for(base_dist[code]=dist<<7,n=0;n<1<=bits;bits++)bl_count[bits]=0;for(n=0;143>=n;)static_ltree[2*n+1]=8,n++,bl_count[8]++;for(;255>=n;)static_ltree[2*n+1]=9,n++,bl_count[9]++;for(;279>=n;)static_ltree[2*n+1]=7,n++,bl_count[7]++;for(;287>=n;)static_ltree[2*n+1]=8,n++,bl_count[8]++;for(gen_codes(static_ltree,L_CODES+1,bl_count),n=0;D_CODES>n;n++)static_dtree[2*n+1]=5,static_dtree[2*n]=bi_reverse(n,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS+1,L_CODES,MAX_BITS),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES,MAX_BITS),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES,MAX_BL_BITS)}function init_block(s){var n;for(n=0;L_CODES>n;n++)s.dyn_ltree[2*n]=0;for(n=0;D_CODES>n;n++)s.dyn_dtree[2*n]=0;for(n=0;BL_CODES>n;n++)s.bl_tree[2*n]=0;s.dyn_ltree[2*END_BLOCK]=1,s.opt_len=s.static_len=0,s.last_lit=s.matches=0}function bi_windup(s){s.bi_valid>8?put_short(s,s.bi_buf):s.bi_valid>0&&(s.pending_buf[s.pending++]=s.bi_buf),s.bi_buf=0,s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s),header&&(put_short(s,len),put_short(s,~len)),utils.arraySet(s.pending_buf,s.window,buf,len,s.pending),s.pending+=len}function smaller(tree,n,m,depth){var _n2=2*n,_m2=2*m;return tree[_n2]n;n++)0!==tree[2*n]?(s.heap[++s.heap_len]=max_code=n,s.depth[n]=0):tree[2*n+1]=0;for(;s.heap_len<2;)node=s.heap[++s.heap_len]=2>max_code?++max_code:0,tree[2*node]=1,s.depth[node]=0,s.opt_len--,has_stree&&(s.static_len-=stree[2*node+1]);for(desc.max_code=max_code,n=s.heap_len>>1;n>=1;n--)pqdownheap(s,tree,n);node=elems;do n=s.heap[1],s.heap[1]=s.heap[s.heap_len--],pqdownheap(s,tree,1),m=s.heap[1],s.heap[--s.heap_max]=n,s.heap[--s.heap_max]=m,tree[2*node]=tree[2*n]+tree[2*m],s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1,tree[2*n+1]=tree[2*m+1]=node,s.heap[1]=node++,pqdownheap(s,tree,1);while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],gen_bitlen(s,desc),gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n,curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;for(0===nextlen&&(max_count=138,min_count=3),tree[2*(max_code+1)+1]=65535,n=0;max_code>=n;n++)curlen=nextlen,nextlen=tree[2*(n+1)+1],++countcount?s.bl_tree[2*curlen]+=count:0!==curlen?(curlen!==prevlen&&s.bl_tree[2*curlen]++,s.bl_tree[2*REP_3_6]++):10>=count?s.bl_tree[2*REPZ_3_10]++:s.bl_tree[2*REPZ_11_138]++,count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen===nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4))}function send_tree(s,tree,max_code){var n,curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;for(0===nextlen&&(max_count=138,min_count=3),n=0;max_code>=n;n++)if(curlen=nextlen,nextlen=tree[2*(n+1)+1],!(++countcount){do send_code(s,curlen,s.bl_tree);while(0!==--count)}else 0!==curlen?(curlen!==prevlen&&(send_code(s,curlen,s.bl_tree),count--),send_code(s,REP_3_6,s.bl_tree),send_bits(s,count-3,2)):10>=count?(send_code(s,REPZ_3_10,s.bl_tree),send_bits(s,count-3,3)):(send_code(s,REPZ_11_138,s.bl_tree),send_bits(s,count-11,7));count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen===nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4)}}function build_bl_tree(s){var max_blindex;for(scan_tree(s,s.dyn_ltree,s.l_desc.max_code),scan_tree(s,s.dyn_dtree,s.d_desc.max_code),build_tree(s,s.bl_desc),max_blindex=BL_CODES-1;max_blindex>=3&&0===s.bl_tree[2*bl_order[max_blindex]+1];max_blindex--);return s.opt_len+=3*(max_blindex+1)+5+5+4,max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;for(send_bits(s,lcodes-257,5),send_bits(s,dcodes-1,5),send_bits(s,blcodes-4,4),rank=0;blcodes>rank;rank++)send_bits(s,s.bl_tree[2*bl_order[rank]+1],3);send_tree(s,s.dyn_ltree,lcodes-1),send_tree(s,s.dyn_dtree,dcodes-1)}function detect_data_type(s){var n,black_mask=4093624447;for(n=0;31>=n;n++,black_mask>>>=1)if(1&black_mask&&0!==s.dyn_ltree[2*n])return Z_BINARY;if(0!==s.dyn_ltree[18]||0!==s.dyn_ltree[20]||0!==s.dyn_ltree[26])return Z_TEXT;for(n=32;LITERALS>n;n++)if(0!==s.dyn_ltree[2*n])return Z_TEXT;return Z_BINARY}function _tr_init(s){static_init_done||(tr_static_init(),static_init_done=!0),s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc),s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc),s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc),s.bi_buf=0,s.bi_valid=0,init_block(s)}function _tr_stored_block(s,buf,stored_len,last){send_bits(s,(STORED_BLOCK<<1)+(last?1:0),3),copy_block(s,buf,stored_len,!0)}function _tr_align(s){send_bits(s,STATIC_TREES<<1,3),send_code(s,END_BLOCK,static_ltree),bi_flush(s)}function _tr_flush_block(s,buf,stored_len,last){var opt_lenb,static_lenb,max_blindex=0;s.level>0?(s.strm.data_type===Z_UNKNOWN&&(s.strm.data_type=detect_data_type(s)),build_tree(s,s.l_desc),build_tree(s,s.d_desc),max_blindex=build_bl_tree(s),opt_lenb=s.opt_len+3+7>>>3,static_lenb=s.static_len+3+7>>>3,opt_lenb>=static_lenb&&(opt_lenb=static_lenb)):opt_lenb=static_lenb=stored_len+5,opt_lenb>=stored_len+4&&-1!==buf?_tr_stored_block(s,buf,stored_len,last):s.strategy===Z_FIXED||static_lenb===opt_lenb?(send_bits(s,(STATIC_TREES<<1)+(last?1:0),3),compress_block(s,static_ltree,static_dtree)):(send_bits(s,(DYN_TREES<<1)+(last?1:0),3),send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1),compress_block(s,s.dyn_ltree,s.dyn_dtree)),init_block(s),last&&bi_windup(s)}function _tr_tally(s,dist,lc){return s.pending_buf[s.d_buf+2*s.last_lit]=dist>>>8&255,s.pending_buf[s.d_buf+2*s.last_lit+1]=255&dist,s.pending_buf[s.l_buf+s.last_lit]=255&lc,s.last_lit++,0===dist?s.dyn_ltree[2*lc]++:(s.matches++,dist--,s.dyn_ltree[2*(_length_code[lc]+LITERALS+1)]++,s.dyn_dtree[2*d_code(dist)]++),s.last_lit===s.lit_bufsize-1}var utils=require("../utils/common"),Z_FIXED=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN=2,STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH=3,MAX_MATCH=258,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=[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],extra_dbits=[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],extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DIST_CODE_LEN=512,static_ltree=new Array(2*(L_CODES+2));zero(static_ltree);var static_dtree=new Array(2*D_CODES);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);var static_l_desc,static_d_desc,static_bl_desc,StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree,this.extra_bits=extra_bits,this.extra_base=extra_base,this.elems=elems,this.max_length=max_length,this.has_stree=static_tree&&static_tree.length},TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree,this.max_code=0,this.stat_desc=stat_desc},static_init_done=!1;exports._tr_init=_tr_init,exports._tr_stored_block=_tr_stored_block,exports._tr_flush_block=_tr_flush_block,exports._tr_tally=_tr_tally,exports._tr_align=_tr_align},{"../utils/common":151}],161:[function(require,module){"use strict";function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}module.exports=ZStream},{}],162:[function(require,module,exports){(function(Buffer){(function(){var Encoder,Message,Parser,bufeq_fast,clearsign,compute_crc24,crc24_to_base64,crc_table,decode,encode,formatCheckSum,getCheckSum,katch,make_line,strip,trim,uint_to_buffer,verifyCheckSum,_ref;_ref=require("./util"),trim=_ref.trim,strip=_ref.strip,katch=_ref.katch,bufeq_fast=_ref.bufeq_fast,uint_to_buffer=_ref.uint_to_buffer,make_line=function(x){return null==x&&(x=""),""+x+"\n"},exports.Encoder=Encoder=function(){function Encoder(C){this.C=C}return Encoder.prototype.frame=function(t){var dash,i;return dash=function(){var _i,_results;for(_results=[],i=_i=0;5>_i;i=++_i)_results.push("-");return _results}().join(""),{begin:make_line(dash+("BEGIN PGP "+t)+dash),end:make_line(dash+("END PGP "+t)+dash)}},Encoder.prototype.b64e=function(d){var end,i,parts,raw,w;return raw=d.toString("base64"),w=64,parts=function(){var _i,_ref1,_results;for(_results=[],i=_i=0,_ref1=raw.length;w>0?_ref1>_i:_i>_ref1;i=_i+=w)end=Math.min(i+w,raw.length),_results.push(raw.slice(i,end));return _results}(),make_line(parts.join("\n"))},Encoder.prototype.header=function(){var x;return function(){var _i,_len,_ref1,_results;for(_ref1=["Version: "+this.C.header.version,"Comment: "+this.C.header.comment],_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)x=_ref1[_i],_results.push(make_line(x));return _results}.call(this).join("")},Encoder.prototype.encode=function(type,data){var f;return f=this.frame(type),f.begin.concat(this.header(),make_line(),this.b64e(data),formatCheckSum(data),f.end)},Encoder}(),exports.clearsign_header=clearsign=function(C,data,hasher_name){var enc,f;return enc=new Encoder(C),f=enc.frame("SIGNED MESSAGE").begin,f.concat(make_line("Hash: "+hasher_name),make_line(),data)},exports.encode=encode=function(C,type,data){return new Encoder(C).encode(type,data)},crc_table=[0,8801531,25875725,17603062,60024545,51751450,35206124,44007191,128024889,120049090,103502900,112007375,70412248,78916387,95990485,88014382,264588937,256049778,240098180,248108927,207005800,215016595,232553829,224014750,140824496,149062475,166599357,157832774,200747345,191980970,176028764,184266919,520933865,529177874,512099556,503334943,480196360,471432179,487973381,496217854,414011600,405478443,422020573,430033190,457094705,465107658,448029500,439496647,281648992,273666971,289622637,298124950,324696449,333198714,315665548,307683447,392699481,401494690,383961940,375687087,352057528,343782467,359738805,368533838,1041867730,1050668841,1066628831,1058355748,1032471859,1024199112,1006669886,1015471301,968368875,960392720,942864358,951368477,975946762,984451313,1000411399,992435708,836562267,828023200,810956886,818967725,844041146,852051777,868605623,860066380,914189410,922427545,938981743,930215316,904825475,896059e3,878993294,887231349,555053627,563297984,547333942,538569677,579245274,570480673,588005847,596249900,649392898,640860153,658384399,666397428,623318499,631331096,615366894,606833685,785398962,777416777,794487231,802989380,759421523,767923880,751374174,743392165,695319947,704115056,687564934,679289981,719477610,711202705,728272487,737067676,2083735460,2092239711,2109313705,2101337682,2141233477,2133257662,2116711496,2125215923,2073216669,2064943718,2048398224,2057199467,2013339772,2022141063,2039215473,2030942602,1945504045,1936737750,1920785440,1929023707,1885728716,1893966647,1911503553,1902736954,1951893524,1959904495,1977441561,1968902626,2009362165,2000822798,1984871416,1992881923,1665111629,1673124534,1656046400,1647513531,1621913772,1613380695,1629922721,1637935450,1688082292,1679317903,1695859321,1704103554,1728967061,1737211246,1720132760,1711368291,1828378820,1820103743,1836060105,1844855090,1869168165,1877963486,1860430632,1852155859,1801148925,1809650950,1792118e3,1784135691,1757986588,1750004711,1765960209,1774462698,1110107254,1118611597,1134571899,1126595968,1102643863,1094667884,1077139354,1085643617,1166763343,1158490548,1140961346,1149762745,1176011694,1184812885,1200772771,1192499800,1307552511,1298785796,1281720306,1289958153,1316768798,1325007077,1341561107,1332794856,1246636998,1254647613,1271201483,1262662192,1239272743,1230733788,1213667370,1221678289,1562785183,1570797924,1554833554,1546300521,1588974462,1580441477,1597965939,1605978760,1518843046,1510078557,1527603627,1535847760,1494504007,1502748348,1486784330,1478020017,1390639894,1382365165,1399434779,1408230112,1366334967,1375129868,1358579962,1350304769,1430452783,1438955220,1422405410,1414423513,1456544974,1448562741,1465633219,1474135352],compute_crc24=function(input,initval){var crc,index,j,_i,_ref1;for(null==initval&&(initval=11994318),crc=initval,index=0;input.length-index>16;)crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+0))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+1))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+2))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+3))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+4))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+5))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+6))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+7))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+8))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+9))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+10))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+11))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+12))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+13))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+14))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+15))],index+=16;for(j=_i=index,_ref1=input.length;_ref1>=index?_ref1>_i:_i>_ref1;j=_ref1>=index?++_i:--_i)crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index++))];return 16777215&crc},getCheckSum=function(data,pad){var ret;return ret=crc24_to_base64(compute_crc24(data),pad)},exports.crc24_to_base64=crc24_to_base64=function(c,pad){return null==pad&&(pad=!0),(pad?"=":"")+uint_to_buffer(32,c).slice(1,4).toString("base64")},formatCheckSum=function(data){return make_line(getCheckSum(data,!0))},verifyCheckSum=function(data,checksum){return getCheckSum(data,!1)===checksum},exports.Message=Message=function(){function Message(_arg){this.body=_arg.body,this.type=_arg.type,this.comment=_arg.comment,this.version=_arg.version,this.pre=_arg.pre,this.post=_arg.post,this.lines=[],this.fields={},this.payload=null}return Message.prototype.unsplit=function(lines){return lines.join("\n")},Message.prototype.raw=function(){return this.unsplit(this.lines)},Message.prototype.finish_unframe=function(_arg){var post,pre;return pre=_arg.pre,post=_arg.post,this.pre=this.unsplit(pre),this.post=this.unsplit(post),null!=this.clearsign?this.clearsign.body=this.unsplit(this.clearsign.lines):void 0},Message.prototype.make_clearsign=function(){return this.clearsign={headers:{},lines:[],body:null}},Message}(),exports.Parser=Parser=function(){function Parser(data){this.init(data)}return Parser.prototype.init=function(data){return this.data=Buffer.isBuffer(data)?data.toString("utf8"):data,this.lines=this.data.split(/\r?\n/),this.checksum=null,this.body=null,this.type=null,this.ret=null,this.last_type=null},Parser.prototype.parse=function(){return this.ret=new Message({}),this.unframe(),this.pop_headers(),this.parse_type(),this.strip_empties_in_footer(),this.trim_lines(),this.find_checksum(),this.read_body(),this.check_checksum(),this.ret},Parser.prototype.parse_type=function(){return this.ret.type=this.ret.fields.type=this.type},Parser.prototype.last_line=function(){return this.payload.slice(-1)[0]},Parser.prototype.mparse=function(){var go,obj,out;for(out=[],go=!0;go;)this.skip(),this.lines.length?(obj=this.parse(),out.push(obj),this.init(obj.post)):go=!1;return out},Parser.prototype.skip=function(){var _results;for(_results=[];this.lines.length&&!this.lines[0].match(/\S+/);)_results.push(this.lines.shift());return _results},Parser.prototype.read_body=function(){var dat;return this.ret.payload=this.payload.join("\n"),dat=this.payload.join(""),this.ret.body=new Buffer(dat,"base64")},Parser.prototype.check_checksum=function(){if(this.ret.fields.checksum=this.checksum,null!=this.checksum&&!verifyCheckSum(this.ret.body,this.checksum))throw new Error("checksum mismatch")},Parser.prototype.pop_headers=function(){var l,m,_results;for(_results=[];this.payload.length;)if(l=this.payload.shift(),m=l.match(/Version: (.*)/))_results.push(this.ret.version=m[1]);else if(null!=(m=l.match(/Comment: (.*)/)))_results.push(this.ret.comment=m[1]);else{if(null==l||0===l.length||l.match(/^\s+$/))break;_results.push(void 0)}return _results},Parser.prototype.strip_empties_in_footer=function(){var _ref1,_results;for(_results=[];null!=(_ref1=this.last_line())?_ref1.match(/^\s*$/):void 0;)_results.push(this.payload.pop());return _results},Parser.prototype.trim_lines=function(){var p;return this.payload=function(){var _i,_len,_ref1,_results;for(_ref1=this.payload,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],_results.push(trim(p));return _results}.call(this)},Parser.prototype.find_checksum=function(){var l;return null!=(l=this.last_line())&&"="===l[0]?this.checksum=this.payload.pop().slice(1):void 0 },Parser.prototype.v_unframe=function(){return!0},Parser.prototype.unframe=function(){var found_pre,found_pre_clearsign,found_pre_std,go,line,m,payload,post,pre,ret,rxx,rxx_b,rxx_e,stage,type;for(rxx_b=/^(-{5}BEGIN PGP (.*?)-{5}.*$)/,rxx_e=/^(-{5}END PGP (.*?)-{5})(.*)$/m,rxx=rxx_b,payload=[],stage=0,type=null,ret=null,go=!0,pre=[],post=[],found_pre_std=function(l){return pre.push(l)},found_pre_clearsign=function(_this){return function(l){return _this.ret.clearsign.lines.push(l)}}(this),found_pre=found_pre_std;this.lines.length&&go;)switch(line=this.lines.shift(),stage){case-1:if(m=line.match(/^([^:]+): (.*)$/))this.ret.clearsign.headers[m[1].toLowerCase()]=m[2];else{if(!line.match(/^\s*$/))throw new Error("Bad line in clearsign header");stage++,found_pre=found_pre_clearsign}this.ret.lines.push(line);break;case 0:null!=(m=line.match(rxx_b))?(found_pre("",!0),this.ret.lines.push(this.ret.clearsign?line:m[1]),null==this.type&&(this.type=m[2]),this.last_type=m[2],"SIGNED MESSAGE"===m[2]?(stage--,this.ret.make_clearsign()):stage++):(this.ret.clearsign&&this.ret.lines.push(line),found_pre(line,!1));break;case 1:if(m=line.match(rxx_e)){if(this.ret.lines.push(m[1]),m[2]!==this.last_type)throw new Error("type mismatch -- begin "+this.last_type+" w/ end "+m[1]);stage++,post=[m[3]].concat(this.lines),this.lines=[],go=!1}else this.ret.lines.push(line),payload.push(line)}if(0===stage)throw new Error("no header found");if(1===stage)throw new Error("no tailer found");return this.payload=payload,this.ret.finish_unframe({pre:pre,post:post})},Parser}(),exports.decode=decode=function(data){return katch(function(){return new Parser(data).parse()})},exports.mdecode=decode=function(data){return katch(function(){return new Parser(data).mparse()})},exports.compute_crc24=compute_crc24}).call(this)}).call(this,require("buffer").Buffer)},{"./util":165,buffer:80}],163:[function(require,module,exports){(function(){exports.armor=require("./armor"),exports.util=require("./util"),exports.userid=require("./userid")}).call(this)},{"./armor":162,"./userid":164,"./util":165}],164:[function(require,module,exports){(function(){exports.parse=function(input){var components,m,x;return components=null,x=/^([^(<]*?)(?:\s*\((.*?)\))?(?:\s*<(.*?)>)?$/,null!=(m=input.match(x))&&(components={username:m[1],comment:m[2],email:m[3]}),components},exports.format=function(d){var parts,_ref,_ref1,_ref2;return parts=[],(null!=(_ref=d.username)?_ref.length:void 0)&&parts.push(d.username),(null!=(_ref1=d.comment)?_ref1.length:void 0)&&parts.push("("+d.comment+")"),(null!=(_ref2=d.email)?_ref2.length:void 0)&&parts.push("<"+d.email+">"),parts.join(" ")}}).call(this)},{}],165:[function(require,module,exports){(function(Buffer){(function(){var ASP,Canceler,Warnings,assert,assert_no_nulls,asyncify,bufeq_secure,buffer_to_ui8a,bufferify,iced,katch,obj_extract,strip,trim,ui32a_to_ui8a,ui8Ga_to_ui32a,xxd,__iced_k,__iced_k_noop,__slice=[].slice;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},Canceler=require("iced-error").Canceler,assert=require("assert"),exports.uint_to_buffer=function(nbits,i){var ret;switch(ret=null,nbits){case 16:ret=new Buffer(2),ret.writeUInt16BE(i,0);break;case 32:ret=new Buffer(4),ret.writeUInt32BE(i,0);break;case 8:ret=new Buffer(1),ret.writeUInt8(i,0);break;default:throw new Error("Bit types not found: "+nbit)}return ret},exports.ASP=ASP=function(){function ASP(_arg){var canceler,delay,progress_hook;progress_hook=_arg.progress_hook,delay=_arg.delay,canceler=_arg.canceler,this._delay=null!=delay?delay:2,this._canceler=canceler||new Canceler,this._progress_hook=progress_hook||function(){},this._section=null}return ASP.prototype.section=function(s){return this._section=s,this},ASP.prototype.progress=function(o,cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;return __iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this._section&&(o.section=this._section),this._progress_hook(o),null==cb?__iced_k():void!function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/pgp-utils/src/util.iced",funcname:"ASP.progress"}),_this.delay(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:43})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return __iced_k(cb(err))}}(this))},ASP.prototype.delay=function(cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/pgp-utils/src/util.iced",funcname:"ASP.delay"}),setTimeout(__iced_deferrals.defer({lineno:47}),_this.delay),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return cb(_this._canceler.err())}}(this))},ASP.prototype.canceler=function(){return this._canceler},ASP.prototype.progress_hook=function(){return this._progress_hook},ASP.make=function(asp){return asp||new ASP({})},ASP}(),exports.Warnings=Warnings=function(){function Warnings(){this._w=[]}return Warnings.prototype.push=function(){var args,_ref;return args=1<=arguments.length?__slice.call(arguments,0):[],(_ref=this._w).push.apply(_ref,args)},Warnings.prototype.warnings=function(){return this._w},Warnings}(),exports.bufeq_fast=function(x,y){var i,_i,_ref;if(null==x&&null==y)return!0;if(null==x||null==y)return!1;if(x.length!==y.length)return!1;for(i=_i=0,_ref=x.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)if(x.readUInt8(i)!==y.readUInt8(i))return!1;return!0},exports.bufeq_secure=bufeq_secure=function(x,y){var check,i,ret;return ret=function(){var _i,_ref;if(null==x&&null==y)return!0;if(null==x||null==y)return!1;if(x.length!==y.length)return!1;for(check=0,i=_i=0,_ref=x.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)check|=x.readUInt8(i)^y.readUInt8(i);return 0===check}()},exports.streq_secure=function(x,y){var B;return B=function(x){return null!=x?bufferify(x):null},bufeq_secure(B(x),B(y))},exports.bufferify=bufferify=function(s){if(Buffer.isBuffer(s))return s;if("string"==typeof s)return new Buffer(s,"utf8");throw new Error("Cannot convert to buffer: "+s)},exports.katch=katch=function(fn){var e,err,ret;ret=err=null;try{ret=fn()}catch(_error){e=_error,err=e}return[err,ret]},exports.akatch=function(fn,cb){return asyncify(katch(fn),cb)},exports.buffer_to_ui8a=buffer_to_ui8a=function(b){var i,l,ret,_i;for(l=b.length,ret=new Uint8Array(l),i=_i=0;l>=0?l>_i:_i>l;i=l>=0?++_i:--_i)ret[i]=b.readUInt8(i);return ret},exports.ui32a_to_ui8a=ui32a_to_ui8a=function(v,out){var k,w,_i,_len;for(null==out&&(out=null),out||(out=new Uint8Array(4*v.length)),k=0,_i=0,_len=v.length;_len>_i;_i++)w=v[_i],out[k++]=w>>24&255,out[k++]=w>>16&255,out[k++]=w>>8&255,out[k++]=255&w;return out},exports.ui8a_to_ui32a=ui8Ga_to_ui32a=function(v,out){var b,i,k,tmp,_i,_len;for(null==out&&(out=null),out||(out=new Uint32Array(v.length>>2)),k=0,i=_i=0,_len=v.length;_len>_i;i=_i+=4)b=v[i],tmp=(b<<24)+(v[i+1]<<16)+(v[i+2]<<8)+v[i+3],out[k++]=tmp;return out},exports.unix_time=function(){return Math.floor(Date.now()/1e3)},exports.json_stringify_sorted=function(o,opts){var i,json_safe,lb,o2,sort_fn,space_it,spaces,str;return opts=opts||{},sort_fn=opts.sort_fn||null,spaces=opts.spaces||null,lb=null!=opts.spaces?"\n":"","number"==typeof spaces&&(spaces=function(){var _i,_results;for(_results=[],i=_i=0;spaces>=0?spaces>_i:_i>spaces;i=spaces>=0?++_i:--_i)_results.push(" ");return _results}().join("")),space_it=function(depth){return null==spaces?"":"\n"+function(){var _i,_results;for(_results=[],i=_i=0;depth>=0?depth>_i:_i>depth;i=depth>=0?++_i:--_i)_results.push(spaces);return _results}().join("")},json_safe=function(os,depth){var k,keys,s,sp,spp,v;return Array.isArray(os)?s="["+function(){var _i,_len,_results;for(_results=[],_i=0,_len=os.length;_len>_i;_i++)v=os[_i],_results.push(json_safe(v,depth+1));return _results}().join(",")+"]":"object"==typeof os&&os?(sp=space_it(depth),spp=space_it(depth+1),keys=function(){var _results;_results=[];for(k in os)_results.push(k);return _results}(),sort_fn?keys.sort(sort_fn):keys.sort(),s="{"+function(){var _i,_len,_results;for(_results=[],_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],_results.push(spp+JSON.stringify(k)+":"+json_safe(os[k],depth+1));return _results}().join(",")+sp+"}"):s=JSON.stringify(os),s},str=JSON.stringify(o),void 0===str?str:(o2=JSON.parse(str),json_safe(o2,0))},exports.obj_extract=obj_extract=function(o,keys){var k,ret,_i,_len;for(ret={},_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],ret[k]=o[k];return ret},exports.base64u={encode:function(b){return b.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},decode:function(b){return b=(b+Array(5-b.length%4).join("=")).replace(/\-/g,"+").replace(/\_/g,"/"),new Buffer(b,"base64")},verify:function(b){return/^[A-Za-z0-9\-_]+$/.test(b)}},exports.assert_no_nulls=assert_no_nulls=function(v){var e,ok,_i,_len;for(ok=!0,_i=0,_len=v.length;_len>_i;_i++)e=v[_i],null==e&&(ok=!1);return ok?void 0:(console.error("Found 1 or more nulls in vector: "),console.error(v),assert(!1))},exports.athrow=function(err,cb){return cb(err)},exports.asyncify=asyncify=function(args,cb){return cb.apply(null,args)},exports.format_fingerprint=function(raw){var hex,i,parts;return hex=raw.toString("hex").toUpperCase(),parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts.join(" ")},exports.format_pgp_fingerprint_2=function(buf,opts){var hex,i,length,parts,spc;return null==opts&&(opts={}),hex=buf.toString("hex"),length=(null!=opts?opts.length:void 0)||40,spc=(null!=opts?opts.space:void 0)||" ",hex=hex.toUpperCase().slice(-length),40===hex.length?(parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=parts.length;_ref>_i;i=_i+=5)_results.push(parts.slice(i,i+5).join(spc));return _results}(),parts.join(spc+spc)):hex.length>8?(parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts.join(spc)):hex},exports.fingerprint_to_key_id_64=function(fp){return fp.slice(-16)},exports.strip=strip=function(x){return x.split(/\s+/).join("")},exports.trim=trim=function(x){var m;return(m=null!=x?x.match(/^\s+(.*?)$/):void 0)&&(x=m[1]),(m=null!=x?x.match(/^(.*?)\s+$/):void 0)&&(x=m[1]),x},exports.fpeq=function(fp1,fp2){return strip(fp1).toLowerCase()===strip(fp2).toLowerCase()},exports.xxd=xxd=function(buf,opts){var i,line,lines,p,pad,q,quartets,v;return null==opts&&(opts={}),q=opts.q||8,p=opts.p||7,buf=buf.toString("hex"),quartets=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=buf.length;_ref>_i;i=_i+=4)_results.push(buf.slice(i,i+4));return _results}(),lines=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=quartets.length;q>0?_ref>_i:_i>_ref;i=_i+=q)_results.push(quartets.slice(i,i+q).join(" "));return _results}(),pad=function(s,n){return function(){var _i,_ref,_results;for(_results=[],_i=0,_ref=n-s.length;_ref>=0?_ref>_i:_i>_ref;_ref>=0?_i++:_i--)_results.push("0");return _results}().join("")+s},v=function(){var _i,_len,_results;for(_results=[],i=_i=0,_len=lines.length;_len>_i;i=++_i)line=lines[i],_results.push(pad((2*i*q).toString(16),p)+": "+line);return _results}(),v.join("\n")}}).call(this)}).call(this,require("buffer").Buffer)},{assert:75,buffer:80,"iced-error":115,"iced-runtime":118}],166:[function(require,module,exports){(function(Buffer){(function(){var NativeBuffer,PpBuffer,twos_compl_inv;twos_compl_inv=require("./util").twos_compl_inv,NativeBuffer=Buffer,exports.PpBuffer=PpBuffer=function(){function PpBuffer(buf){null==buf?(this._frozen_buf=null,this._sub_buffers=[],this._limits=[],this._sz=1024,this._small_buf_sz=256,this._logsz=10,this._i=0,this._tot=0):this._freeze_to(buf)}return PpBuffer.prototype._nb=function(){return this._sub_buffers.length},PpBuffer.prototype._ab=function(){return this._sub_buffers[this._nb()-1]},PpBuffer.prototype._lib=function(){return 0},PpBuffer.prototype._finish_sub_buffer=function(){return this._limits.push(this._i),this._i=0},PpBuffer.prototype._push_sub_buffer=function(b){return this._sub_buffers.length&&this._finish_sub_buffer(),this._lib=function(){return b.length-this._i},this._sub_buffers.push(b),b},PpBuffer.prototype._make_room=function(){return this._push_sub_buffer(new NativeBuffer(this._sz))},PpBuffer.prototype._make_room_for_n_bytes=function(n){return this._lib()this._small_buf_sz?(this._push_sub_buffer(b),this._i=b.length,this._tot+=b.length):(n=Math.min(b.length,this._lib()),n>0&&(b.copy(this._ab(),this._i,0,n),this._i+=n,this._tot+=n),n_i;i=++_i)b=_ref[i],(l=this._limits[i])===b.length?lst.push(b):l>0&&lst.push(b.slice(0,l));this._sub_buffers=[],this._frozen_buf=NativeBuffer.concat(lst,this._tot)}return this._frozen_buf},PpBuffer.prototype._freeze_to=function(b){return this._frozen_buf=b,this._tot=b.length,this._sub_buffers=[],this._cp=0,this},PpBuffer.prototype.bytes_left=function(){return this._tot-this._cp},PpBuffer.prototype._get=function(i){return ibl)throw new Error("Corruption: asked for "+n+" bytes, but only "+bl+" available");return e=this._cp+n,ret=this._frozen_buf.slice(this._cp,e),this._cp=e,ret},PpBuffer.isBuffer=function(b){return NativeBuffer.isBuffer(b)},PpBuffer}()}).call(this)}).call(this,require("buffer").Buffer)},{"./util":172,buffer:80}],167:[function(require,module,exports){(function(){exports.C={"null":192,"false":194,"true":195,bin8:196,bin16:197,bin32:198,ext8:199,ext16:200,ext32:201,"float":202,"double":203,uint8:204,uint16:205,uint32:206,uint64:207,int8:208,int16:209,int32:210,int64:211,fix_ext1:212,fix_ext2:213,fix_ext4:214,fix_ext8:215,fix_ext16:216,str8:217,str16:218,str32:219,array16:220,array32:221,map16:222,map32:223,fix_str_min:160,fix_str_max:191,fix_array_min:144,fix_array_max:159,fix_map_min:128,fix_map_max:143,fix_array_count_mask:15,fix_map_count_mask:15,fix_str_count_mask:31,negative_fix_min:224,negative_fix_max:255,negative_fix_mask:31,negative_fix_offset:32,positive_fix_max:127,rpc_request:0,rpc_response:1,rpc_notify:2}}).call(this)},{}],168:[function(require,module,exports){(function(Buffer){(function(){var C,frame_len,pack,unpack;pack=require("./pack").pack,unpack=require("./unpack").unpack,C=require("./const").C,exports.pack=function(x,opts){var b1,b2;return null==opts&&(opts={}),b2=pack(x,opts),b1=pack(b2.length),Buffer.concat([b1,b2])},exports.frame_len=frame_len=function(c){return c<=C.positive_fix_max?1:c===C.uint8?2:c===C.uint16?3:c===C.uint32?5:0},exports.unpack=function(x,opts){var buf,c,flen,plen,rem,ret;if(null==opts&&(opts={}),x.length<1)throw new Error("need a buffer > 1 bytes");if(c=x.readUInt8(0),flen=frame_len(c),0===flen)throw new Error("no data frame found");if(x.length0?1:0),b=0===y?0:U32MAX-y,[a,b]},exports.Packer=Packer=function(){function Packer(_opts){this._opts=null!=_opts?_opts:{},this._buffer=new PpBuffer}return Packer.prototype.output=function(){return this._buffer.freeze()},Packer.prototype.p=function(o){switch(typeof o){case"number":return this.p_number(o);case"string":return this.p_str(o);case"boolean":return this.p_boolean(o);case"undefined":return this.p_null();case"object":if(null==o)return this.p_null();if(is_array(o))return this.p_array(o);if(PpBuffer.isBuffer(o))return this.p_bin(o);if(!this.p_ext(o))return this.p_obj(o)}},Packer.prototype.p_number=function(n){return is_int(n)?n>=0?this.p_positive_int(n):this.p_negative_int(n):this.p_pack_double(n)},Packer.prototype.p_pack_double=function(d){return null!=this._opts.floats?(this.p_uint8(C.float),this._buffer.push_float32(d)):(this.p_uint8(C.double),this._buffer.push_float64(d))},Packer.prototype.p_uint8=function(b){return this._buffer.push_uint8(b)},Packer.prototype.p_uint16=function(s){return this._buffer.push_uint16(s)},Packer.prototype.p_uint32=function(w){return this._buffer.push_uint32(w)},Packer.prototype.p_int8=function(b){return this._buffer.push_int8(b)},Packer.prototype.p_int16=function(s){return this._buffer.push_int16(s)},Packer.prototype.p_int32=function(w){return this._buffer.push_int32(w)},Packer.prototype.p_neg_int64=function(i){var a,abs_i,b,_ref;return abs_i=0-i,_ref=u64max_minus_i(abs_i),a=_ref[0],b=_ref[1],this.p_uint32(a),this.p_uint32(b)},Packer.prototype.p_boolean=function(b){return this.p_uint8(b?C["true"]:C["false"])},Packer.prototype.p_null=function(){return this.p_uint8(C["null"])},Packer.prototype.p_array=function(a){var e,_i,_len,_results;for(this.p_len(a.length,C.fix_array_min,C.fix_array_max,C.array16,C.array32),_results=[],_i=0,_len=a.length;_len>_i;_i++)e=a[_i],_results.push(this.p(e));return _results},Packer.prototype.p_obj=function(o){var k,keys,n,_i,_len,_results;for(keys=Object.keys(o),n=keys.length,this.p_len(n,C.fix_map_min,C.fix_map_max,C.map16,C.map32),this._opts.sort_keys&&keys.sort(),_results=[],_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],this.p(k),_results.push(this.p(o[k]));return _results},Packer.prototype.p_positive_int=function(i){return 127>=i?this.p_uint8(i):255>=i?(this.p_uint8(C.uint8),this.p_uint8(i)):65535>=i?(this.p_uint8(C.uint16),this.p_uint16(i)):U32MAX>i?(this.p_uint8(C.uint32),this.p_uint32(i)):(this.p_uint8(C.uint64),this.p_uint32(Math.floor(i/U32MAX)),this.p_uint32(i%U32MAX))},Packer.prototype.p_negative_int=function(i){return i>=-32?this.p_int8(i):i>=-128?(this.p_uint8(C.int8),this.p_int8(i)):i>=-32768?(this.p_uint8(C.int16),this.p_int16(i)):i>=-2147483648?(this.p_uint8(C.int32),this.p_int32(i)):(this.p_uint8(C.int64),this.p_neg_int64(i))},Packer.prototype.p_buffer=function(b){return this._buffer.push_buffer(b)},Packer.prototype.p_bin=function(r){return this.p_len(r.length,null,null,C.bin16,C.bin32,C.bin8),this.p_buffer(r)},Packer.prototype.p_str=function(s){var b,str8;return b=this._buffer.prepare_utf8(s),str8=this._opts.no_str8?null:C.str8,this.p_len(b.length,C.fix_str_min,C.fix_str_max,C.str16,C.str32,str8),this.p_buffer(b)},Packer.prototype.p_len=function(l,fixmin,fixmax,m,b,s){return null==s&&(s=null),null!=fixmin&&null!=fixmax&&fixmax-fixmin>=l?this.p_uint8(l|fixmin):null!=s&&255>=l?(this.p_uint8(s),this.p_uint8(l)):65535>=l?(this.p_uint8(m),this.p_uint16(l)):(this.p_uint8(b),this.p_uint32(l))},Packer.prototype.p_ext=function(o){var buf,l,ret,type;if(null==this._opts.ext)return!1;if(ret=this._opts.ext(o)){switch(type=ret[0],buf=ret[1],l=buf.length){case 1:this.p_uint8(C.fix_ext1);break;case 2:this.p_uint8(C.fix_ext2);break;case 4:this.p_uint8(C.fix_ext4);break;case 8:this.p_uint8(C.fix_ext8);break;case 16:this.p_uint8(C.fix_ext16);break;default:255>=l?(this.p_uint8(C.ext8),this.p_uint8(l)):65535>=l?(this.p_uint8(C.ext16),this.p_uint16(l)):(this.p_uint8(C.ext32),this.p_uint32(l))}return this.p_uint8(type),this.p_buffer(buf),!0}return!1},Packer}(),exports.pack=function(x,opts){var packer;return null==opts&&(opts={}),packer=new Packer(opts),packer.p(x),packer.output()}}).call(this)},{"./buffer":166,"./const":167,"./util":172}],171:[function(require,module,exports){(function(){var C,PpBuffer,U32MAX,Unpacker,default_ext,modes,pow2,twos_compl_inv,_ref;C=require("./const").C,PpBuffer=require("./buffer").PpBuffer,_ref=require("./util"),pow2=_ref.pow2,twos_compl_inv=_ref.twos_compl_inv,U32MAX=_ref.U32MAX,modes={NONE:0,BINARY:1,START:2},default_ext=function(type,raw){return{type:type,raw:raw}},exports.Unpacker=Unpacker=function(){function Unpacker(b,_opts){this._opts=null!=_opts?_opts:{},this._buffer=new PpBuffer(b),this._ext=this._opts.ext||(this._opts.no_ext?null:default_ext)}return Unpacker.prototype.u_buf=function(n){return this._buffer.read_buffer(n)},Unpacker.prototype.u_str=function(n){return this.u_buf(n).toString("utf8")},Unpacker.prototype.u_bin=function(n){return this.u_buf(n)},Unpacker.prototype.u_ext=function(n){var buf,typ;if(typ=this.u_uint8(),buf=this.u_buf(n),null!=this._opts.ext)return this._opts.ext(typ,buf);throw new Error("No ext hook but got message type: "+typ)},Unpacker.prototype.u_array=function(n){var i,_i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(this.u());return _results},Unpacker.prototype.u_map=function(n){var i,ret,_i;for(ret={},i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)ret[this.u()]=this.u();return ret},Unpacker.prototype.u_uint8=function(){return this._buffer.read_uint8()},Unpacker.prototype.u_uint16=function(){return this._buffer.read_uint16()},Unpacker.prototype.u_uint32=function(){return this._buffer.read_uint32()},Unpacker.prototype.u_int8=function(){return this._buffer.read_int8()},Unpacker.prototype.u_int16=function(){return this._buffer.read_int16()},Unpacker.prototype.u_int32=function(){return this._buffer.read_int32()},Unpacker.prototype.u_uint64=function(){return this.u_uint32()*U32MAX+this.u_uint32()},Unpacker.prototype.u_double=function(){return this._buffer.read_float64()},Unpacker.prototype.u_float=function(){return this._buffer.read_float32()},Unpacker.prototype.u_int64=function(){var a,b,i,_ref1;return _ref1=function(){var _i,_results;for(_results=[],i=_i=0;2>_i;i=++_i)_results.push(this.u_uint32());return _results}.call(this),a=_ref1[0],b=_ref1[1],U32MAX*(a-U32MAX)+b},Unpacker.prototype.u=function(){var b,l;if((b=this.u_uint8())<=C.positive_fix_max)return b;if(b>=C.negative_fix_min&&b<=C.negative_fix_max)return twos_compl_inv(b,8);if(b>=C.fix_str_min&&b<=C.fix_str_max)return l=b&C.fix_str_count_mask,this.u_str(l);if(b>=C.fix_array_min&&b<=C.fix_array_max)return l=b&C.fix_array_count_mask,this.u_array(l);if(b>=C.fix_map_min&&b<=C.fix_map_max)return l=b&C.fix_map_count_mask,this.u_map(l);switch(b){case C["null"]:return null;case C["true"]:return!0;case C["false"]:return!1;case C.uint8:return this.u_uint8();case C.uint16:return this.u_uint16();case C.uint32:return this.u_uint32();case C.uint64:return this.u_uint64();case C.int8:return this.u_int8();case C.int16:return this.u_int16();case C.int32:return this.u_int32();case C.int64:return this.u_int64();case C.double:return this.u_double();case C.float:return this.u_float();case C.str8:return this.u_str(this.u_uint8());case C.str16:return this.u_str(this.u_uint16());case C.str32:return this.u_str(this.u_uint32());case C.bin8:return this.u_bin(this.u_uint8());case C.bin16:return this.u_bin(this.u_uint16());case C.bin32:return this.u_bin(this.u_uint32());case C.array16:return this.u_array(this.u_uint16());case C.array32:return this.u_array(this.u_uint32());case C.map16:return this.u_map(this.u_uint16());case C.map32:return this.u_map(this.u_uint32());case C.fix_ext1:return this.u_ext(1);case C.fix_ext2:return this.u_ext(2);case C.fix_ext4:return this.u_ext(4);case C.fix_ext8:return this.u_ext(8);case C.fix_ext16:return this.u_ext(16);case C.ext8:return this.u_ext(this.u_uint8());case C.ext16:return this.u_ext(this.u_uint16());case C.ext32:return this.u_ext(this.u_uint32());default:throw new Error("unhandled type "+b)}},Unpacker}(),exports.unpack=function(x,opts){var unpacker;return null==opts&&(opts={}),unpacker=new Unpacker(x,opts),unpacker.u()}}).call(this)},{"./buffer":166,"./const":167,"./util":172}],172:[function(require,module,exports){(function(){var U32MAX,pow2;exports.pow2=pow2=function(n){return 31>n?1<n?b>>n:Math.floor(b/Math.pow(2,n))},exports.twos_compl=function(x,n){return 0>x?pow2(n)-Math.abs(x):x},exports.twos_compl_inv=function(x,n){return x-pow2(n)}}).call(this)},{}],173:[function(require,module,exports){(function(){var AES,BlockCipher,G,Global,scrub_vec,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};BlockCipher=require("./algbase").BlockCipher,scrub_vec=require("./util").scrub_vec,Global=function(){function Global(){var i;this.SBOX=[],this.INV_SBOX=[],this.SUB_MIX=function(){var _i,_results;for(_results=[],i=_i=0;4>_i;i=++_i)_results.push([]);return _results}(),this.INV_SUB_MIX=function(){var _i,_results;for(_results=[],i=_i=0;4>_i;i=++_i)_results.push([]);return _results}(),this.init(),this.RCON=[0,1,2,4,8,16,32,64,128,27,54]}return Global.prototype.init=function(){var d,i,sx,t,x,x2,x4,x8,xi,_i;for(d=function(){var _i,_results;for(_results=[],i=_i=0;256>_i;i=++_i)_results.push(128>i?i<<1:i<<1^283);return _results}(),x=0,xi=0,i=_i=0;256>_i;i=++_i)sx=xi^xi<<1^xi<<2^xi<<3^xi<<4,sx=sx>>>8^255&sx^99,this.SBOX[x]=sx,this.INV_SBOX[sx]=x,x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx,this.SUB_MIX[0][x]=t<<24|t>>>8,this.SUB_MIX[1][x]=t<<16|t>>>16,this.SUB_MIX[2][x]=t<<8|t>>>24,this.SUB_MIX[3][x]=t,t=16843009*x8^65537*x4^257*x2^16843008*x,this.INV_SUB_MIX[0][sx]=t<<24|t>>>8,this.INV_SUB_MIX[1][sx]=t<<16|t>>>16,this.INV_SUB_MIX[2][sx]=t<<8|t>>>24,this.INV_SUB_MIX[3][sx]=t,0===x?x=xi=1:(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]);return!0},Global}(),G=new Global,AES=function(_super){function AES(key){this._key=key.clone(),this._doReset()}return __extends(AES,_super),AES.blockSize=16,AES.prototype.blockSize=AES.blockSize,AES.keySize=32,AES.prototype.keySize=AES.keySize,AES.ivSize=AES.blockSize,AES.prototype.ivSize=AES.ivSize,AES.prototype._doReset=function(){var invKsRow,keySize,keyWords,ksRow,ksRows,t,_i,_j;for(keyWords=this._key.words,keySize=this._key.sigBytes/4,this._nRounds=keySize+6,ksRows=4*(this._nRounds+1),this._keySchedule=[],ksRow=_i=0;ksRows>=0?ksRows>_i:_i>ksRows;ksRow=ksRows>=0?++_i:--_i)this._keySchedule[ksRow]=keySize>ksRow?keyWords[ksRow]:(t=this._keySchedule[ksRow-1],ksRow%keySize===0?(t=t<<8|t>>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t],t^=G.RCON[ksRow/keySize|0]<<24):keySize>6&&ksRow%keySize===4?t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t]:void 0,this._keySchedule[ksRow-keySize]^t);for(this._invKeySchedule=[],invKsRow=_j=0;ksRows>=0?ksRows>_j:_j>ksRows;invKsRow=ksRows>=0?++_j:--_j)ksRow=ksRows-invKsRow,t=this._keySchedule[ksRow-(invKsRow%4?0:4)],this._invKeySchedule[invKsRow]=4>invKsRow||4>=ksRow?t:G.INV_SUB_MIX[0][G.SBOX[t>>>24]]^G.INV_SUB_MIX[1][G.SBOX[t>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[t>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[255&t]];return!0},AES.prototype.encryptBlock=function(M,offset){return null==offset&&(offset=0),this._doCryptBlock(M,offset,this._keySchedule,G.SUB_MIX,G.SBOX)},AES.prototype.decryptBlock=function(M,offset){var _ref,_ref1;return null==offset&&(offset=0),_ref=[M[offset+3],M[offset+1]],M[offset+1]=_ref[0],M[offset+3]=_ref[1],this._doCryptBlock(M,offset,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX),_ref1=[M[offset+3],M[offset+1]],M[offset+1]=_ref1[0],M[offset+3]=_ref1[1],_ref1},AES.prototype.scrub=function(){return scrub_vec(this._keySchedule),scrub_vec(this._invKeySchedule),this._key.scrub()},AES.prototype._doCryptBlock=function(M,offset,keySchedule,SUB_MIX,SBOX){var ksRow,round,s0,s1,s2,s3,t0,t1,t2,t3,_i,_ref;for(s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=_i=1,_ref=this._nRounds;_ref>=1?_ref>_i:_i>_ref;round=_ref>=1?++_i:--_i)t0=SUB_MIX[0][s0>>>24]^SUB_MIX[1][s1>>>16&255]^SUB_MIX[2][s2>>>8&255]^SUB_MIX[3][255&s3]^keySchedule[ksRow++],t1=SUB_MIX[0][s1>>>24]^SUB_MIX[1][s2>>>16&255]^SUB_MIX[2][s3>>>8&255]^SUB_MIX[3][255&s0]^keySchedule[ksRow++],t2=SUB_MIX[0][s2>>>24]^SUB_MIX[1][s3>>>16&255]^SUB_MIX[2][s0>>>8&255]^SUB_MIX[3][255&s1]^keySchedule[ksRow++],t3=SUB_MIX[0][s3>>>24]^SUB_MIX[1][s0>>>16&255]^SUB_MIX[2][s1>>>8&255]^SUB_MIX[3][255&s2]^keySchedule[ksRow++],s0=t0,s1=t1,s2=t2,s3=t3;return t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++],M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3 },AES}(BlockCipher),exports.AES=AES}).call(this)},{"./algbase":174,"./util":195}],174:[function(require,module,exports){(function(){var BlockCipher,BufferedBlockAlgorithm,Hasher,StreamCipher,WordArray,util,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,util=require("./util"),BufferedBlockAlgorithm=function(){function BufferedBlockAlgorithm(){this.reset()}return BufferedBlockAlgorithm.prototype._minBufferSize=0,BufferedBlockAlgorithm.prototype.reset=function(){return this._data=new WordArray,this._nDataBytes=0},BufferedBlockAlgorithm.prototype._append=function(data){return this._data.concat(data),this._nDataBytes+=data.sigBytes},BufferedBlockAlgorithm.prototype._process=function(doFlush){var blockSizeBytes,data,dataSigBytes,dataWords,nBlocksReady,nBytesReady,nWordsReady,offset,processedWords,_i,_ref;if(data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSizeBytes=4*this.blockSize,nBlocksReady=dataSigBytes/blockSizeBytes,nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0),nWordsReady=nBlocksReady*this.blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes),nWordsReady){for(offset=_i=0,_ref=this.blockSize;_ref>0?nWordsReady>_i:_i>nWordsReady;offset=_i+=_ref)this._doProcessBlock(dataWords,offset);processedWords=dataWords.splice(0,nWordsReady),data.sigBytes-=nBytesReady}return new WordArray(processedWords,nBytesReady)},BufferedBlockAlgorithm.prototype.copy_to=function(out){return out._data=this._data.clone(),out._nDataBytes=this._nDataBytes},BufferedBlockAlgorithm.prototype.clone=function(){var obj;return obj=new BufferedBlockAlgorithm,this.copy_to(obj),obj},BufferedBlockAlgorithm}(),Hasher=function(_super){function Hasher(){Hasher.__super__.constructor.call(this)}return __extends(Hasher,_super),Hasher.prototype.reset=function(){return Hasher.__super__.reset.call(this),this._doReset(),this},Hasher.prototype.update=function(messageUpdate){return this._append(messageUpdate),this._process(),this},Hasher.prototype.finalize=function(messageUpdate){return messageUpdate&&this._append(messageUpdate),this._doFinalize()},Hasher.prototype.bufhash=function(input){var out,wa_in,wa_out;return wa_in=WordArray.from_buffer(input),wa_out=this.finalize(wa_in),out=wa_out.to_buffer(),wa_in.scrub(),wa_out.scrub(),out},Hasher}(BufferedBlockAlgorithm),exports.BlockCipher=BlockCipher=function(){function BlockCipher(){}return BlockCipher.prototype.encryptBlock=function(){},BlockCipher}(),StreamCipher=function(){function StreamCipher(){}return StreamCipher.prototype.encryptBlock=function(word_array,dst_offset){var n_words,pad;return null==dst_offset&&(dst_offset=0),pad=this.get_pad(),n_words=Math.min(word_array.words.length-dst_offset,this.bsiw),word_array.xor(pad,{dst_offset:dst_offset,n_words:n_words}),pad.scrub(),this.bsiw},StreamCipher.prototype.encrypt=function(word_array){var i,_i,_ref,_ref1;for(i=_i=0,_ref=word_array.words.length,_ref1=this.bsiw;_ref1>0?_ref>_i:_i>_ref;i=_i+=_ref1)this.encryptBlock(word_array,i);return word_array},StreamCipher.prototype.bulk_encrypt=function(_arg,cb){var async_args,input,progress_hook,slice_args,what;return input=_arg.input,progress_hook=_arg.progress_hook,what=_arg.what,slice_args={update:function(_this){return function(lo,hi){var i,_i,_ref,_results;for(_results=[],i=_i=lo,_ref=_this.bsiw;_ref>0?hi>_i:_i>hi;i=_i+=_ref)_results.push(_this.encryptBlock(input,i));return _results}}(this),finalize:function(){return input},default_n:1024*this.bsiw},async_args={progress_hook:progress_hook,cb:cb,what:what},util.bulk(input.sigBytes,slice_args,async_args)},StreamCipher}(),exports.BlockCipher=BlockCipher,exports.Hasher=Hasher,exports.BufferedBlockAlgorithm=BufferedBlockAlgorithm,exports.StreamCipher=StreamCipher}).call(this)},{"./util":195,"./wordarray":196}],175:[function(require,module,exports){(function(){var CombineBase,Concat,HMAC,SHA3,SHA512,WordArray,XOR,bulk_sign,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./hmac"),HMAC=_ref.HMAC,bulk_sign=_ref.bulk_sign,SHA512=require("./sha512").SHA512,SHA3=require("./sha3").SHA3,WordArray=require("./wordarray").WordArray,CombineBase=function(){function CombineBase(){this.hasherBlockSize=this.hashers[0].hasherBlockSize,this.hasherBlockSizeBytes=4*this.hasherBlockSize,this.reset()}return CombineBase.prototype.reset=function(){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.reset();return this},CombineBase.prototype.update=function(w){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.update(w);return this},CombineBase.prototype.scrub=function(){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.scrub();return this},CombineBase.prototype.finalize=function(w){var h,hashes,out,_i,_len,_ref1;for(hashes=function(){var _i,_len,_ref1,_results;for(_ref1=this.hashers,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],_results.push(h.finalize(w));return _results}.call(this),out=hashes[0],_ref1=hashes.slice(1),_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],this._coalesce(out,h),h.scrub();return out},CombineBase}(),Concat=function(_super){function Concat(key,klasses){var hm,i,klass,subkey,subkeys;null==klasses&&(klasses=[SHA512,SHA3]),subkeys=key.split(klasses.length),this.hashers=function(){var _i,_len,_results;for(_results=[],i=_i=0,_len=klasses.length;_len>_i;i=++_i)klass=klasses[i],subkey=subkeys[i],hm=new HMAC(subkey,klass),subkey.scrub(),_results.push(hm);return _results}(),Concat.__super__.constructor.call(this)}return __extends(Concat,_super),Concat.get_output_size=function(){return SHA512.output_size+SHA3.output_size},Concat.prototype._coalesce=function(out,h){return out.concat(h)},Concat.prototype.get_output_size=function(){var h,tot,_i,_len,_ref1;for(tot=0,_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],tot+=h.get_output_size();return tot},Concat.sign=function(_arg){var input,key;return key=_arg.key,input=_arg.input,new Concat(key).finalize(input)},Concat.bulk_sign=function(args,cb){return args.klass=Concat,args.what="HMAC-SHA512-SHA3",bulk_sign(args,cb)},Concat}(CombineBase),XOR=function(_super){function XOR(key,klasses){var klass;null==klasses&&(klasses=[SHA512,SHA3]),this.hashers=function(){var _i,_len,_results;for(_results=[],_i=0,_len=klasses.length;_len>_i;_i++)klass=klasses[_i],_results.push(new HMAC(key,klass));return _results}(),XOR.__super__.constructor.call(this)}return __extends(XOR,_super),XOR.prototype.reset=function(){var h,i,_i,_len,_ref1;for(XOR.__super__.reset.call(this),_ref1=this.hashers,i=_i=0,_len=_ref1.length;_len>_i;i=++_i)h=_ref1[i],h.update(new WordArray([i]));return this},XOR.get_output_size=function(){return Math.max(SHA512.output_size,SHA3.output_size)},XOR.prototype._coalesce=function(out,h){return out.xor(h,{})},XOR.prototype.get_output_size=function(){var h;return Math.max.apply(Math,function(){var _i,_len,_ref1,_results;for(_ref1=this.hashers,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],_results.push(h.get_output_size());return _results}.call(this))},XOR.sign=function(_arg){var input,key;return key=_arg.key,input=_arg.input,new XOR(key).finalize(input)},XOR.bulk_sign=function(arg,cb){return arg.klass=XOR,arg.what="HMAC-SHA512-XOR-SHA3",bulk_sign(arg,cb)},XOR}(CombineBase),exports.Concat=Concat,exports.XOR=XOR}).call(this)},{"./hmac":180,"./sha3":191,"./sha512":193,"./wordarray":196}],176:[function(require,module,exports){(function(){var Cipher,Counter,StreamCipher,WordArray,bulk_encrypt,encrypt,iced,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,StreamCipher=require("./algbase").StreamCipher,Counter=function(){function Counter(_arg){var i,len,value;value=_arg.value,len=_arg.len,this._value=null!=value?value.clone():(null==len?len=2:void 0,new WordArray(function(){var _i,_results;for(_results=[],i=_i=0;len>=0?len>_i:_i>len;i=len>=0?++_i:--_i)_results.push(0);return _results}()))}return Counter.prototype.WORD_MAX=4294967295,Counter.prototype.inc=function(){var go,i;for(go=!0,i=this._value.words.length-1;go&&i>=0;)++this._value.words[i]>Counter.WORD_MAX?this._value.words[i]=0:go=!1,i--;return this},Counter.prototype.inc_le=function(){var go,i;for(go=!0,i=0;go&&iCounter.WORD_MAX?this._value.words[i]=0:go=!1,i++;return this},Counter.prototype.get=function(){return this._value},Counter.prototype.copy=function(){return this._value.clone()},Counter}(),Cipher=function(_super){function Cipher(_arg){if(this.block_cipher=_arg.block_cipher,this.iv=_arg.iv,Cipher.__super__.constructor.call(this),this.bsiw=this.block_cipher.blockSize/4,this.iv.sigBytes!==this.block_cipher.blockSize)throw new Error("IV is wrong length ("+this.iv.sigBytes+")");this.ctr=new Counter({value:this.iv})}return __extends(Cipher,_super),Cipher.prototype.scrub=function(){return this.block_cipher.scrub()},Cipher.prototype.get_pad=function(){var pad;return pad=this.ctr.copy(),this.ctr.inc(),this.block_cipher.encryptBlock(pad.words),pad},Cipher}(StreamCipher),encrypt=function(_arg){var block_cipher,cipher,input,iv,ret;return block_cipher=_arg.block_cipher,iv=_arg.iv,input=_arg.input,cipher=new Cipher({block_cipher:block_cipher,iv:iv}),ret=cipher.encrypt(input),cipher.scrub(),ret},bulk_encrypt=function(_arg,cb){var block_cipher,cipher,input,iv,progress_hook,ret,what,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),block_cipher=_arg.block_cipher,iv=_arg.iv,input=_arg.input,progress_hook=_arg.progress_hook,what=_arg.what,cipher=new Cipher({block_cipher:block_cipher,iv:iv}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/ctr.iced"}),cipher.bulk_encrypt({input:input,progress_hook:progress_hook,what:what},__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:121})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(ret)}}(this))},exports.Counter=Counter,exports.Cipher=Cipher,exports.encrypt=encrypt,exports.bulk_encrypt=bulk_encrypt}).call(this)},{"./algbase":174,"./wordarray":196,"iced-runtime":118}],177:[function(require,module,exports){(function(){var AES,Base,Concat,Decryptor,SHA512,Salsa20,TwoFish,V,WordArray,ctr,decrypt,iced,make_esc,salsa20,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,salsa20=require("./salsa20"),AES=require("./aes").AES,TwoFish=require("./twofish").TwoFish,ctr=require("./ctr"),Concat=require("./combine").Concat,SHA512=require("./sha512").SHA512,Salsa20=require("./salsa20").Salsa20,_ref=require("./enc"),Base=_ref.Base,V=_ref.V,make_esc=require("iced-error").make_esc,Decryptor=function(_super){function Decryptor(_arg){var enc,key;key=_arg.key,enc=_arg.enc,Decryptor.__super__.constructor.call(this,{key:key}),null!=enc&&(this.key=enc.key,this.derived_keys=enc.derived_keys)}return __extends(Decryptor,_super),Decryptor.prototype.read_header=function(cb){var err,wa;return err=null==(wa=this.ct.unshift(2))?new Error("Ciphertext underrun in header"):null==(this.version=V[wa.words[1]])?new Error("bad header; couldn't find a good version (got "+wa.words[1]+")"):wa.words[0]!==this.version.header[0]?new Error("Bad header: unrecognized magic value"):null,cb(err)},Decryptor.prototype.verify_sig=function(key,cb){var computed,err,received,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){return null==(received=_this.ct.unshift(Concat.get_output_size()/4))?__iced_k(err=new Error("Ciphertext underrun in signature")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.verify_sig"}),_this.sign({input:_this.ct,key:key,salt:_this.salt},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],computed=arguments[1]}}(),lineno:63})),__iced_deferrals._fulfill()}(function(){return __iced_k(err=null!=err?err:received.equal(computed)?null:new Error("Signature mismatch or bad decryption key"))})}}(this)(function(){return function(){return cb(err)}}(this))},Decryptor.prototype.unshift_iv=function(n_bytes,which,cb){var err,iv;return err=null!=(iv=this.ct.unshift(n_bytes/4))?null:new Error("Ciphertext underrun in "+which),cb(err,iv)},Decryptor.prototype.read_salt=function(cb){var err;return err=null==(this.salt=this.ct.unshift(this.version.salt_size/4))?new Error("Ciphertext underrrun in read_salt"):null,cb(err)},Decryptor.prototype.generate_keys=function(_arg,cb){var err,keys,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.generate_keys"}),_this.kdf({salt:_this.salt,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],keys=arguments[1]}}(),lineno:114})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,keys)}}(this))},Decryptor.prototype.run=function(_arg,cb){var ct1,ct2,data,esc,iv,progress_hook,pt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,progress_hook=_arg.progress_hook,esc=make_esc(cb,"Decryptor::run"),this.ct=WordArray.from_buffer(data),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.read_header(esc(__iced_deferrals.defer({lineno:141}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.read_salt(esc(__iced_deferrals.defer({lineno:142}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.generate_keys({progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1.keys=arguments[0]}}(_this),lineno:143}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.verify_sig(_this.keys.hmac,esc(__iced_deferrals.defer({lineno:144}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(AES.ivSize,"AES",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:145}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_aes({iv:iv,input:_this.ct,key:_this.keys.aes,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct2=arguments[0]}}(),lineno:146}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(TwoFish.ivSize,"2fish",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:147}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_twofish({iv:iv,input:_this.ct,key:_this.keys.twofish,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct1=arguments[0]}}(),lineno:148}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(Salsa20.ivSize,"Salsa",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:149}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_salsa20({iv:iv,input:_this.ct,key:_this.keys.salsa20,output_iv:!1,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pt=arguments[0]}}(),lineno:150}))),__iced_deferrals._fulfill()}(function(){return cb(null,pt.to_buffer())})})})})})})})})})}}(this))},Decryptor}(Base),decrypt=function(_arg,cb){var data,dec,err,key,progress_hook,pt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,data=_arg.data,progress_hook=_arg.progress_hook,dec=new Decryptor({key:key}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced"}),dec.run({data:data,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],pt=arguments[1]}}(),lineno:168})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return dec.scrub(),cb(err,pt)}}(this))},exports.Decryptor=Decryptor,exports.decrypt=decrypt}).call(this)},{"./aes":173,"./combine":175,"./ctr":176,"./enc":179,"./salsa20":186,"./sha512":193,"./twofish":194,"./wordarray":196,"iced-error":115,"iced-runtime":118}],178:[function(require,module,exports){(function(Buffer){(function(){var ADRBG,DRBG,Lock,WordArray,XOR,hmac,iced,sha3,sha512,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},hmac=require("./hmac"),XOR=require("./combine").XOR,sha512=require("./sha512"),sha3=require("./sha3"),WordArray=require("./wordarray").WordArray,Lock=require("iced-lock").Lock,DRBG=function(){function DRBG(entropy,personalization_string,hmac_func){this.hmac=hmac_func||hmac.sign,this.security_strength=256,entropy=this.check_entropy(entropy),personalization_string||(personalization_string=new WordArray([])),this._instantiate(entropy,personalization_string)}return DRBG.prototype.check_entropy=function(entropy,reseed){if(null==reseed&&(reseed=!1),8*entropy.sigBytes*2<(reseed?2:3)*this.security_strength)throw new Error("entropy must be at least "+1.5*this.security_strength+" bits.");return entropy},DRBG.prototype._hmac=function(key,input){return this.hmac({key:key,input:input})},DRBG.prototype._update=function(provided_data){var V,V_in;return V=new WordArray([0],1),null!=provided_data&&(V=V.concat(provided_data)),V_in=this.V.clone().concat(V),this.K=this._hmac(this.K,V_in),V_in.scrub(),V.scrub(),this.V=this._hmac(this.K,this.V),null!=provided_data&&(V_in=this.V.clone().concat(new WordArray([1<<24],1)).concat(provided_data),this.K=this._hmac(this.K,V_in),V_in.scrub(),this.V=this._hmac(this.K,this.V)),null!=provided_data?provided_data.scrub():void 0},DRBG.prototype._instantiate=function(entropy,personalization_string){var i,n,seed_material;return seed_material=entropy.concat(personalization_string),n=64,this.K=WordArray.from_buffer(new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(0);return _results}())),this.V=WordArray.from_buffer(new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(1);return _results}())),this._update(seed_material),entropy.scrub(),this.reseed_counter=1},DRBG.prototype.reseed=function(entropy){return this._update(this.check_entropy(entropy,!0)),this.reseed_counter=1},DRBG.prototype.generate=function(num_bytes){var i,tmp,_ref;if(8*num_bytes>7500)throw new Error("generate cannot generate > 7500 bits in 1 call.");if(this.reseed_counter>=1e4)throw new Error("Need a reseed!");for(tmp=[],i=0;0===tmp.length||tmp.length*tmp[0].length*4100?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/drbg.iced",funcname:"ADRBG.generate"}),_this.gen_seed(256,__iced_deferrals.defer({assign_fn:function(){return function(){return seed=arguments[0]}}(),lineno:153})),__iced_deferrals._fulfill()}(function(){return __iced_k(_this.drbg.reseed(seed))}):__iced_k()}(function(){return ret=_this.drbg.generate(n),_this.lock.release(),cb(ret)})})}}(this))},ADRBG}(),exports.DRBG=DRBG,exports.ADRBG=ADRBG}).call(this)}).call(this,require("buffer").Buffer)},{"./combine":175,"./hmac":180,"./sha3":191,"./sha512":193,"./wordarray":196,buffer:80,"iced-lock":197,"iced-runtime":118}],179:[function(require,module,exports){(function(){var AES,Base,CURRENT_VERSION,Concat,Encryptor,HMAC_SHA256,PBKDF2,SHA512,Scrypt,TwoFish,V,WordArray,XOR,ctr,encrypt,iced,make_esc,prng,salsa20,util,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,salsa20=require("./salsa20"),AES=require("./aes").AES,TwoFish=require("./twofish").TwoFish,ctr=require("./ctr"),_ref=require("./combine"),XOR=_ref.XOR,Concat=_ref.Concat,SHA512=require("./sha512").SHA512,PBKDF2=require("./pbkdf2").PBKDF2,Scrypt=require("./scrypt").Scrypt,util=require("./util"),prng=require("./prng"),make_esc=require("iced-error").make_esc,HMAC_SHA256=require("./hmac").HMAC_SHA256,V={1:{header:[479516638,1],salt_size:8,xsalsa20_rev:!0,kdf:{klass:PBKDF2,opts:{c:1024,klass:XOR}},hmac_key_size:96},2:{header:[479516638,2],salt_size:16,xsalsa20_rev:!0,kdf:{klass:Scrypt,opts:{c:64,klass:XOR,N:12,r:8,p:1}},hmac_key_size:96},3:{header:[479516638,3],salt_size:16,xsalsa20_rev:!1,kdf:{klass:Scrypt,opts:{c:1,klass:HMAC_SHA256,N:15,r:8,p:1}},hmac_key_size:96}},exports.CURRENT_VERSION=CURRENT_VERSION=3,Base=function(){function Base(_arg){var key,version;if(key=_arg.key,version=_arg.version,this.version=V[null!=version?version:CURRENT_VERSION],null==this.version)throw new Error("unknown version: "+version);this.set_key(key),this.derived_keys={}}return Base.prototype.kdf=function(_arg,cb){var args,dkLen,end,extra_keymaterial,i,k,key,keys,len,lens,order,progress_hook,raw,salt,salt_hex,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._check_scrubbed(_this.key,"in KDF",cb,__iced_deferrals.defer({lineno:94})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){salt_hex=salt.to_hex(),key=_this.key.clone(),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._check_scrubbed(key,"KDF",cb,__iced_deferrals.defer({lineno:102})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){if(null!=(keys=_this.derived_keys[salt_hex]))return __iced_k();_this._kdf=new _this.version.kdf.klass(_this.version.kdf.opts),lens={hmac:_this.version.hmac_key_size,aes:AES.keySize,twofish:TwoFish.keySize,salsa20:salsa20.Salsa20.keySize},order=["hmac","aes","twofish","salsa20"],dkLen=extra_keymaterial||0;for(k in lens)v=lens[k],dkLen+=v;args={dkLen:dkLen,key:key,progress_hook:progress_hook,salt:salt},function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._kdf.run(args,__iced_deferrals.defer({assign_fn:function(){return function(){return raw=arguments[0]}}(),lineno:121})),__iced_deferrals._fulfill()}(function(){var _i,_len;for(keys={},i=0,_i=0,_len=order.length;_len>_i;_i++)k=order[_i],v=lens[k],len=v/4,end=i+len,keys[k]=new WordArray(raw.words.slice(i,end)),i=end;return keys.extra=new WordArray(raw.words.slice(end)).to_buffer(),__iced_k(_this.derived_keys[salt_hex]=keys)})}(function(){return cb(null,keys)})})}}(this))},Base.prototype.set_key=function(key){var wakey;return null==key?this.scrub():(wakey=WordArray.from_buffer(key),this.key&&this.key.equal(wakey)?void 0:(this.scrub(),this.key=wakey))},Base.prototype._check_scrubbed=function(key,where,ecb,okcb){return null==key||key.is_scrubbed()?ecb(new Error(""+where+": Failed due to scrubbed key!"),null):okcb()},Base.prototype.sign=function(_arg,cb){var input,key,out,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,salt=_arg.salt,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.sign"}),_this._check_scrubbed(key,"HMAC",cb,__iced_deferrals.defer({lineno:179})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){input=new WordArray(_this.version.header).concat(salt).concat(input),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.sign"}),Concat.bulk_sign({key:key,input:input,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:181})),__iced_deferrals._fulfill()}(function(){return input.scrub(),cb(null,out)})}}(this))},Base.prototype.run_salsa20=function(_arg,cb){var args,ct,input,iv,key,output_iv,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,output_iv=_arg.output_iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_salsa20"}),_this._check_scrubbed(key,"Salsa20",cb,__iced_deferrals.defer({lineno:197})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){args={input:input,progress_hook:progress_hook,key:key,iv:iv},_this.version.xsalsa20_rev&&(args.key=key.clone().endian_reverse(),args.iv=iv.clone().endian_reverse()),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_salsa20"}),salsa20.bulk_encrypt(args,__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:209})),__iced_deferrals._fulfill()}(function(){return output_iv&&(ct=iv.clone().concat(ct)),_this.version.xsalsa20_rev&&(args.key.scrub(),args.iv.scrub()),cb(null,ct)})}}(this))},Base.prototype.run_twofish=function(_arg,cb){var block_cipher,ct,input,iv,key,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_twofish"}),_this._check_scrubbed(key,"TwoFish",cb,__iced_deferrals.defer({lineno:232})),__iced_deferrals._fulfill()}}(this)(function(){return function(){block_cipher=new TwoFish(key),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_twofish"}),ctr.bulk_encrypt({block_cipher:block_cipher,iv:iv,input:input,progress_hook:progress_hook,what:"twofish"},__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:234})),__iced_deferrals._fulfill()}(function(){return block_cipher.scrub(),cb(null,iv.clone().concat(ct))})}}(this))},Base.prototype.run_aes=function(_arg,cb){var block_cipher,ct,input,iv,key,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k; __iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_aes"}),_this._check_scrubbed(key,"AES",cb,__iced_deferrals.defer({lineno:249})),__iced_deferrals._fulfill()}}(this)(function(){return function(){block_cipher=new AES(key),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_aes"}),ctr.bulk_encrypt({block_cipher:block_cipher,iv:iv,input:input,progress_hook:progress_hook,what:"aes"},__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:251})),__iced_deferrals._fulfill()}(function(){return block_cipher.scrub(),cb(null,iv.clone().concat(ct))})}}(this))},Base.prototype.scrub=function(){var key,key_ring,salt,_i,_len,_ref1;if(null!=this.key&&this.key.scrub(),null!=this.derived_keys){_ref1=this.derived_keys;for(salt in _ref1)for(key_ring=_ref1[salt],_i=0,_len=key_ring.length;_len>_i;_i++)key=key_ring[_i],key.scrub()}return this.derived_keys={},null!=this.salt&&this.salt.scrub(),this.salt=null,this.key=null},Base}(),Encryptor=function(_super){function Encryptor(_arg){var key,rng,version;key=_arg.key,rng=_arg.rng,version=_arg.version,Encryptor.__super__.constructor.call(this,{key:key,version:version}),this.rng=rng||prng.generate}return __extends(Encryptor,_super),Encryptor.prototype.pick_random_ivs=function(_arg,cb){var iv_lens,ivs,k,progress_hook,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),progress_hook=_arg.progress_hook,iv_lens={aes:AES.ivSize,twofish:TwoFish.ivSize,salsa20:salsa20.Salsa20.ivSize},ivs={},function(_this){return function(__iced_k){var _i,_k,_keys,_ref1,_results,_while;_ref1=iv_lens,_keys=function(){var _results1;_results1=[];for(_k in _ref1)_results1.push(_k);return _results1}(),_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_i<_keys.length?(k=_keys[_i],v=_ref1[k],function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.pick_random_ivs"}),_this.rng(v,__iced_deferrals.defer({assign_fn:function(__slot_1,__slot_2){return function(){return __slot_1[__slot_2]=arguments[0]}}(ivs,k),lineno:353})),__iced_deferrals._fulfill()}(_next),void 0):_break()})(__iced_k)}}(this)(function(){return function(){return cb(ivs)}}(this))},Encryptor.prototype.resalt=function(_arg,cb){var err,extra_keymaterial,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,err=null,function(_this){return function(__iced_k){return null!=salt?__iced_k(salt.length!==_this.version.salt_size?err=new Error("Need a salt of exactly "+_this.version.salt_size+" bytes (got "+salt.length+")"):_this.salt=WordArray.alloc(salt)):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.resalt"}),_this.rng(_this.version.salt_size,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1.salt=arguments[0]}}(_this),lineno:369})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.resalt"}),_this.kdf({extra_keymaterial:extra_keymaterial,progress_hook:progress_hook,salt:_this.salt},__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1.keys=arguments[1]}}(_this),lineno:375})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,_this.keys)})}}(this))},Encryptor.prototype.run=function(_arg,cb){var ct1,ct2,ct3,data,esc,extra_keymaterial,ivs,progress_hook,pt,ret,salt,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,esc=make_esc(cb,"Encryptor::run"),function(_this){return function(__iced_k){return null==salt&&null!=_this.salt?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.resalt({salt:salt,extra_keymaterial:extra_keymaterial,progress_hook:progress_hook},esc(__iced_deferrals.defer({lineno:406}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.pick_random_ivs({progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return ivs=arguments[0]}}(),lineno:407})),__iced_deferrals._fulfill()}(function(){pt=WordArray.from_buffer(data),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_salsa20({input:pt,key:_this.keys.salsa20,progress_hook:progress_hook,iv:ivs.salsa20,output_iv:!0},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct1=arguments[0]}}(),lineno:409}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_twofish({input:ct1,key:_this.keys.twofish,progress_hook:progress_hook,iv:ivs.twofish},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct2=arguments[0]}}(),lineno:410}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_aes({input:ct2,key:_this.keys.aes,progress_hook:progress_hook,iv:ivs.aes},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct3=arguments[0]}}(),lineno:411}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.sign({input:ct3,key:_this.keys.hmac,progress_hook:progress_hook,salt:_this.salt},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:412}))),__iced_deferrals._fulfill()}(function(){return ret=new WordArray(_this.version.header).concat(_this.salt).concat(sig).concat(ct3).to_buffer(),util.scrub_buffer(data),cb(null,ret)})})})})})}}(this))},Encryptor}(Base),encrypt=function(_arg,cb){var data,enc,err,key,progress_hook,ret,rng,version,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,data=_arg.data,rng=_arg.rng,progress_hook=_arg.progress_hook,version=_arg.version,enc=new Encryptor({key:key,rng:rng,version:version}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced"}),enc.run({data:data,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:440})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return enc.scrub(),cb(err,ret)}}(this))},exports.V=V,exports.encrypt=encrypt,exports.Base=Base,exports.Encryptor=Encryptor}).call(this)},{"./aes":173,"./combine":175,"./ctr":176,"./hmac":180,"./pbkdf2":183,"./prng":184,"./salsa20":186,"./scrypt":187,"./sha512":193,"./twofish":194,"./util":195,"./wordarray":196,"iced-error":115,"iced-runtime":118}],180:[function(require,module,exports){(function(){var HMAC,HMAC_SHA256,SHA256,SHA512,bulk_sign,iced,sign,util,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},SHA512=require("./sha512").SHA512,SHA256=require("./sha256").SHA256,util=require("./util"),HMAC=function(){function HMAC(key,klass){var i,_i,_ref;for(null==klass&&(klass=SHA512),this.key=key.clone(),this.hasher=new klass,this.hasherBlockSize=this.hasher.blockSize,this.hasherBlockSizeBytes=4*this.hasherBlockSize,this.key.sigBytes>this.hasherBlockSizeBytes&&(this.key=this.hasher.finalize(this.key)),this.key.clamp(),this._oKey=this.key.clone(),this._iKey=this.key.clone(),i=_i=0,_ref=this.hasherBlockSize;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)this._oKey.words[i]^=1549556828,this._iKey.words[i]^=909522486;this._oKey.sigBytes=this._iKey.sigBytes=this.hasherBlockSizeBytes,this.reset()}return HMAC.outputSize=64,HMAC.prototype.outputSize=HMAC.outputSize,HMAC.prototype.get_output_size=function(){return this.hasher.output_size},HMAC.prototype.reset=function(){return this.hasher.reset().update(this._iKey)},HMAC.prototype.update=function(wa){return this.hasher.update(wa),this},HMAC.prototype.finalize=function(wa){var innerHash,innerHash2,out;return innerHash=this.hasher.finalize(wa),this.hasher.reset(),innerHash2=this._oKey.clone().concat(innerHash),out=this.hasher.finalize(innerHash2),innerHash.scrub(),innerHash2.scrub(),out},HMAC.prototype.scrub=function(){return this.key.scrub(),this._iKey.scrub(),this._oKey.scrub()},HMAC}(),sign=function(_arg){var eng,hash_class,input,key,out;return key=_arg.key,input=_arg.input,hash_class=_arg.hash_class,eng=new HMAC(key,hash_class),out=eng.finalize(input.clamp()),eng.scrub(),out},bulk_sign=function(_arg,cb){var eng,input,key,klass,progress_hook,res,slice_args,what,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,input=_arg.input,progress_hook=_arg.progress_hook,klass=_arg.klass,what=_arg.what,klass||(klass=HMAC),what||(what="hmac_sha512"),eng=new klass(key),input.clamp(),slice_args={update:function(lo,hi){return eng.update(input.slice(lo,hi))},finalize:function(){return eng.finalize()},default_n:1e3*eng.hasherBlockSize},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/hmac.iced"}),util.bulk(input.sigBytes,slice_args,{what:what,progress_hook:progress_hook,cb:__iced_deferrals.defer({assign_fn:function(){return function(){return res=arguments[0]}}(),lineno:137})}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return eng.scrub(),cb(res)}}(this))},exports.HMAC_SHA256=HMAC_SHA256=function(_super){function HMAC_SHA256(key){HMAC_SHA256.__super__.constructor.call(this,key,SHA256)}return __extends(HMAC_SHA256,_super),HMAC_SHA256}(HMAC),exports.HMAC=HMAC,exports.sign=sign,exports.bulk_sign=bulk_sign}).call(this)},{"./sha256":190,"./sha512":193,"./util":195,"iced-runtime":118}],181:[function(require,module,exports){(function(Buffer){(function(){var hmac,k,v,_ref,_ref1;_ref=require("./enc");for(k in _ref)v=_ref[k],exports[k]=v;_ref1=require("./dec");for(k in _ref1)v=_ref1[k],exports[k]=v;exports.prng=require("./prng"),exports.Buffer=Buffer,exports.WordArray=require("./wordarray").WordArray,exports.util=require("./util"),exports.ciphers={AES:require("./aes").AES,TwoFish:require("./twofish").TwoFish,Salsa20:require("./salsa20").Salsa20},exports.hash={SHA1:require("./sha1").SHA1,SHA224:require("./sha224").SHA224,SHA256:require("./sha256").SHA256,SHA384:require("./sha384").SHA384,SHA512:require("./sha512").SHA512,SHA3:require("./sha3").SHA3,MD5:require("./md5").MD5,RIPEMD160:require("./ripemd160").RIPEMD160},exports.modes={CTR:require("./ctr")},exports.scrypt=require("./scrypt").scrypt,exports.pbkdf2=require("./pbkdf2").pbkdf2,exports.hmac=hmac=require("./hmac"),exports.HMAC_SHA256=hmac.HMAC_SHA256,exports.HMAC=hmac.HMAC}).call(this)}).call(this,require("buffer").Buffer)},{"./aes":173,"./ctr":176,"./dec":177,"./enc":179,"./hmac":180,"./md5":182,"./pbkdf2":183,"./prng":184,"./ripemd160":185,"./salsa20":186,"./scrypt":187,"./sha1":188,"./sha224":189,"./sha256":190,"./sha3":191,"./sha384":192,"./sha512":193,"./twofish":194,"./util":195,"./wordarray":196,buffer:80}],182:[function(require,module,exports){(function(){var FF,GG,Global,HH,Hasher,II,MD5,WordArray,glbl,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){var i;this.T=function(){var _i,_results;for(_results=[],i=_i=0;64>_i;i=++_i)_results.push(4294967296*Math.abs(Math.sin(i+1))|0);return _results}()}return Global}(),glbl=new Global,exports.MD5=MD5=function(_super){function MD5(){return MD5.__super__.constructor.apply(this,arguments)}return __extends(MD5,_super),MD5.blockSize=16,MD5.prototype.blockSize=MD5.blockSize,MD5.output_size=16,MD5.prototype.output_size=MD5.output_size,MD5.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878])},MD5.prototype._doProcessBlock=function(M,offset){var H,M_offset_0,M_offset_1,M_offset_10,M_offset_11,M_offset_12,M_offset_13,M_offset_14,M_offset_15,M_offset_2,M_offset_3,M_offset_4,M_offset_5,M_offset_6,M_offset_7,M_offset_8,M_offset_9,M_offset_i,a,b,c,d,i,offset_i,_i;for(i=_i=0;16>_i;i=++_i)offset_i=offset+i,M_offset_i=M[offset_i],M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8);return H=this._hash.words,M_offset_0=M[offset+0],M_offset_1=M[offset+1],M_offset_2=M[offset+2],M_offset_3=M[offset+3],M_offset_4=M[offset+4],M_offset_5=M[offset+5],M_offset_6=M[offset+6],M_offset_7=M[offset+7],M_offset_8=M[offset+8],M_offset_9=M[offset+9],M_offset_10=M[offset+10],M_offset_11=M[offset+11],M_offset_12=M[offset+12],M_offset_13=M[offset+13],M_offset_14=M[offset+14],M_offset_15=M[offset+15],a=H[0],b=H[1],c=H[2],d=H[3],a=FF(a,b,c,d,M_offset_0,7,glbl.T[0]),d=FF(d,a,b,c,M_offset_1,12,glbl.T[1]),c=FF(c,d,a,b,M_offset_2,17,glbl.T[2]),b=FF(b,c,d,a,M_offset_3,22,glbl.T[3]),a=FF(a,b,c,d,M_offset_4,7,glbl.T[4]),d=FF(d,a,b,c,M_offset_5,12,glbl.T[5]),c=FF(c,d,a,b,M_offset_6,17,glbl.T[6]),b=FF(b,c,d,a,M_offset_7,22,glbl.T[7]),a=FF(a,b,c,d,M_offset_8,7,glbl.T[8]),d=FF(d,a,b,c,M_offset_9,12,glbl.T[9]),c=FF(c,d,a,b,M_offset_10,17,glbl.T[10]),b=FF(b,c,d,a,M_offset_11,22,glbl.T[11]),a=FF(a,b,c,d,M_offset_12,7,glbl.T[12]),d=FF(d,a,b,c,M_offset_13,12,glbl.T[13]),c=FF(c,d,a,b,M_offset_14,17,glbl.T[14]),b=FF(b,c,d,a,M_offset_15,22,glbl.T[15]),a=GG(a,b,c,d,M_offset_1,5,glbl.T[16]),d=GG(d,a,b,c,M_offset_6,9,glbl.T[17]),c=GG(c,d,a,b,M_offset_11,14,glbl.T[18]),b=GG(b,c,d,a,M_offset_0,20,glbl.T[19]),a=GG(a,b,c,d,M_offset_5,5,glbl.T[20]),d=GG(d,a,b,c,M_offset_10,9,glbl.T[21]),c=GG(c,d,a,b,M_offset_15,14,glbl.T[22]),b=GG(b,c,d,a,M_offset_4,20,glbl.T[23]),a=GG(a,b,c,d,M_offset_9,5,glbl.T[24]),d=GG(d,a,b,c,M_offset_14,9,glbl.T[25]),c=GG(c,d,a,b,M_offset_3,14,glbl.T[26]),b=GG(b,c,d,a,M_offset_8,20,glbl.T[27]),a=GG(a,b,c,d,M_offset_13,5,glbl.T[28]),d=GG(d,a,b,c,M_offset_2,9,glbl.T[29]),c=GG(c,d,a,b,M_offset_7,14,glbl.T[30]),b=GG(b,c,d,a,M_offset_12,20,glbl.T[31]),a=HH(a,b,c,d,M_offset_5,4,glbl.T[32]),d=HH(d,a,b,c,M_offset_8,11,glbl.T[33]),c=HH(c,d,a,b,M_offset_11,16,glbl.T[34]),b=HH(b,c,d,a,M_offset_14,23,glbl.T[35]),a=HH(a,b,c,d,M_offset_1,4,glbl.T[36]),d=HH(d,a,b,c,M_offset_4,11,glbl.T[37]),c=HH(c,d,a,b,M_offset_7,16,glbl.T[38]),b=HH(b,c,d,a,M_offset_10,23,glbl.T[39]),a=HH(a,b,c,d,M_offset_13,4,glbl.T[40]),d=HH(d,a,b,c,M_offset_0,11,glbl.T[41]),c=HH(c,d,a,b,M_offset_3,16,glbl.T[42]),b=HH(b,c,d,a,M_offset_6,23,glbl.T[43]),a=HH(a,b,c,d,M_offset_9,4,glbl.T[44]),d=HH(d,a,b,c,M_offset_12,11,glbl.T[45]),c=HH(c,d,a,b,M_offset_15,16,glbl.T[46]),b=HH(b,c,d,a,M_offset_2,23,glbl.T[47]),a=II(a,b,c,d,M_offset_0,6,glbl.T[48]),d=II(d,a,b,c,M_offset_7,10,glbl.T[49]),c=II(c,d,a,b,M_offset_14,15,glbl.T[50]),b=II(b,c,d,a,M_offset_5,21,glbl.T[51]),a=II(a,b,c,d,M_offset_12,6,glbl.T[52]),d=II(d,a,b,c,M_offset_3,10,glbl.T[53]),c=II(c,d,a,b,M_offset_10,15,glbl.T[54]),b=II(b,c,d,a,M_offset_1,21,glbl.T[55]),a=II(a,b,c,d,M_offset_8,6,glbl.T[56]),d=II(d,a,b,c,M_offset_15,10,glbl.T[57]),c=II(c,d,a,b,M_offset_6,15,glbl.T[58]),b=II(b,c,d,a,M_offset_13,21,glbl.T[59]),a=II(a,b,c,d,M_offset_4,6,glbl.T[60]),d=II(d,a,b,c,M_offset_11,10,glbl.T[61]),c=II(c,d,a,b,M_offset_2,15,glbl.T[62]),b=II(b,c,d,a,M_offset_9,21,glbl.T[63]),H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0},MD5.prototype._doFinalize=function(){var H,H_i,data,dataWords,hash,i,nBitsLeft,nBitsTotal,nBitsTotalH,nBitsTotalL,_i;for(data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,nBitsTotalH=Math.floor(nBitsTotal/4294967296),nBitsTotalL=nBitsTotal,dataWords[(nBitsLeft+64>>>9<<4)+15]=16711935&(nBitsTotalH<<8|nBitsTotalH>>>24)|4278255360&(nBitsTotalH<<24|nBitsTotalH>>>8),dataWords[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotalL<<8|nBitsTotalL>>>24)|4278255360&(nBitsTotalL<<24|nBitsTotalL>>>8),data.sigBytes=4*(dataWords.length+1),this._process(),hash=this._hash,H=hash.words,i=_i=0;4>_i;i=++_i)H_i=H[i],H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8);return hash},MD5.prototype.copy_to=function(obj){return MD5.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},MD5.prototype.clone=function(){var out;return out=new MD5,this.copy_to(out),out},MD5}(Hasher),FF=function(a,b,c,d,x,s,t){var n;return n=a+(b&c|~b&d)+x+t,(n<>>32-s)+b},GG=function(a,b,c,d,x,s,t){var n;return n=a+(b&d|c&~d)+x+t,(n<>>32-s)+b},HH=function(a,b,c,d,x,s,t){var n;return n=a+(b^c^d)+x+t,(n<>>32-s)+b},II=function(a,b,c,d,x,s,t){var n;return n=a+(c^(b|~d))+x+t,(n<>>32-s)+b},exports.transform=function(x){var out;return out=(new MD5).finalize(x),x.scrub(),out}}).call(this)},{"./algbase":174,"./wordarray":196}],183:[function(require,module,exports){(function(){var HMAC,PBKDF2,WordArray,iced,pbkdf2,util,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},HMAC=require("./hmac").HMAC,WordArray=require("./wordarray").WordArray,util=require("./util"),PBKDF2=function(){function PBKDF2(_arg){this.klass=_arg.klass,this.c=_arg.c,this.c||(this.c=1024),this.klass||(this.klass=HMAC)}return PBKDF2.prototype._PRF=function(input){return this.prf.reset(),this.prf.finalize(input)},PBKDF2.prototype._gen_T_i=function(_arg,cb){var U,i,progress_hook,ret,salt,seed,stop,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,i=_arg.i,progress_hook=_arg.progress_hook,progress_hook(0),seed=salt.clone().concat(new WordArray([i])),U=this._PRF(seed),ret=U.clone(),i=1,function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(i<_this.c))return _break();for(stop=Math.min(_this.c,i+128);stop>i;)U=_this._PRF(U),ret.xor(U,{}),i++;progress_hook(i),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced",funcname:"PBKDF2._gen_T_i"}),util.default_delay(0,0,__iced_deferrals.defer({lineno:57})),__iced_deferrals._fulfill()}(function(){return _next(null)})})(__iced_k)}}(this)(function(){return function(){return progress_hook(i),cb(ret)}}(this))},PBKDF2.prototype.run=function(_arg,cb){var bs,dkLen,flat,i,key,n,ph,progress_hook,salt,tmp,tph,words,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,this.prf=new this.klass(key),bs=this.prf.get_output_size(),n=Math.ceil(dkLen/bs),words=[],tph=null,ph=function(_this){return function(block){return function(iter){return"function"==typeof progress_hook?progress_hook({what:"pbkdf2",total:n*_this.c,i:block*_this.c+iter}):void 0}}}(this),ph(0)(0),function(_this){return function(__iced_k){var _results,_while;i=1,_begin=1,_end=n,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?i+=1:i-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&i>n||_positive===!1&&n>i?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced",funcname:"PBKDF2.run"}),_this._gen_T_i({salt:salt,i:i,progress_hook:ph(i-1)},__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:80})),__iced_deferrals._fulfill()}(function(){return _next(words.push(tmp.words))})})(__iced_k)}}(this)(function(_this){return function(){var _ref;return ph(n)(0),flat=(_ref=[]).concat.apply(_ref,words),key.scrub(),_this.prf.scrub(),_this.prf=null,cb(new WordArray(flat,dkLen))}}(this))},PBKDF2}(),pbkdf2=function(_arg,cb){var c,dkLen,eng,key,klass,out,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,klass=_arg.klass,c=_arg.c,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,eng=new PBKDF2({klass:klass,c:c}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced"}),eng.run({key:key,salt:salt,dkLen:dkLen,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:106})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(out)}}(this))},exports.pbkdf2=pbkdf2,exports.PBKDF2=PBKDF2}).call(this)},{"./hmac":180,"./util":195,"./wordarray":196,"iced-runtime":118}],184:[function(require,module,exports){(function(Buffer){(function(){var ADRBG,PRNG,WordArray,XOR,browser_rng,e,generate,iced,m,more_entropy,native_rng,rng,util,__iced_k,__iced_k_noop,_browser_rng_primitive,_native_rng,_prng,_ref,_ref1;if(iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},more_entropy=require("more-entropy"),ADRBG=require("./drbg").ADRBG,WordArray=require("./wordarray").WordArray,XOR=require("./combine").XOR,util=require("./util"),_browser_rng_primitive=null,browser_rng=function(n){var v;return v=new Uint8Array(n),_browser_rng_primitive(v),new Buffer(v)},_browser_rng_primitive=null!=(m="undefined"!=typeof window&&null!==window&&null!=(_ref=window.crypto)?_ref.getRandomValues:void 0)?m.bind(window.crypto):null!=(m="undefined"!=typeof window&&null!==window&&null!=(_ref1=window.msCrypto)?_ref1.getRandomValues:void 0)?m.bind(window.msCrypto):null,null!=_browser_rng_primitive)_native_rng=browser_rng;else try{rng=require("crypto").rng,null!=rng&&(_native_rng=rng)}catch(_error){e=_error}native_rng=function(x){if(null==_native_rng)throw new Error('No rng found; tried requiring "crypto" and window.crypto');return _native_rng(x)},PRNG=function(){function PRNG(){this.meg=new more_entropy.Generator,this.adrbg=new ADRBG(function(_this){return function(n,cb){return _this.gen_seed(n,cb)}}(this),XOR.sign)}return PRNG.prototype.now_to_buffer=function(){var buf,d,ms,s;return d=Date.now(),ms=d%1e3,s=Math.floor(d/1e3),buf=new Buffer(8),buf.writeUInt32BE(s,0),buf.writeUInt32BE(ms,4),buf},PRNG.prototype.gen_seed=function(nbits,cb){var b,bufs,cat,nbytes,wa,words,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbytes=nbits/8,bufs=[],bufs.push(this.now_to_buffer()),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/keybase/triplesec/src/prng.iced",funcname:"PRNG.gen_seed"}),_this.meg.generate(nbits,__iced_deferrals.defer({assign_fn:function(){return function(){return words=arguments[0]}}(),lineno:83})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _i,_len;for(bufs.push(_this.now_to_buffer()),bufs.push(new Buffer(words)),bufs.push(native_rng(nbytes)),bufs.push(_this.now_to_buffer()),cat=Buffer.concat(bufs),wa=WordArray.from_buffer(cat),util.scrub_buffer(cat),_i=0,_len=bufs.length;_len>_i;_i++)b=bufs[_i],util.scrub_buffer(b);return cb(wa)}}(this))},PRNG.prototype.generate=function(n,cb){return this.adrbg.generate(n,cb)},PRNG}(),_prng=null,generate=function(n,cb){return null==_prng&&(_prng=new PRNG),_prng.generate(n,cb)},exports.PRNG=PRNG,exports.generate=generate,exports.native_rng=native_rng}).call(this)}).call(this,require("buffer").Buffer)},{"./combine":175,"./drbg":178,"./util":195,"./wordarray":196,buffer:80,"iced-runtime":118,"more-entropy":199}],185:[function(require,module,exports){(function(){var G,Global,Hasher,RIPEMD160,WordArray,X64Word,X64WordArray,f1,f2,f3,f4,f5,rotl,transform,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),WordArray=_ref.WordArray,X64Word=_ref.X64Word,X64WordArray=_ref.X64WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this._zl=new WordArray([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),this._zr=new WordArray([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),this._sl=new WordArray([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),this._sr=new WordArray([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),this._hl=new WordArray([0,1518500249,1859775393,2400959708,2840853838]),this._hr=new WordArray([1352829926,1548603684,1836072691,2053994217,0])}return Global}(),G=new Global,RIPEMD160=function(_super){function RIPEMD160(){return RIPEMD160.__super__.constructor.apply(this,arguments)}return __extends(RIPEMD160,_super),RIPEMD160.blockSize=16,RIPEMD160.prototype.blockSize=RIPEMD160.blockSize,RIPEMD160.output_size=20,RIPEMD160.prototype.output_size=RIPEMD160.output_size,RIPEMD160.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878,3285377520])},RIPEMD160.prototype.get_output_size=function(){return this.output_size},RIPEMD160.prototype._doProcessBlock=function(M,offset){var H,M_offset_i,al,ar,bl,br,cl,cr,dl,dr,el,er,hl,hr,i,offset_i,sl,sr,t,zl,zr,_i,_j;for(i=_i=0;16>_i;i=++_i)offset_i=offset+i,M_offset_i=M[offset_i],M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8);for(H=this._hash.words,hl=G._hl.words,hr=G._hr.words,zl=G._zl.words,zr=G._zr.words,sl=G._sl.words,sr=G._sr.words,ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4],i=_j=0;80>_j;i=++_j)t=al+M[offset+zl[i]]|0,t+=16>i?f1(bl,cl,dl)+hl[0]:32>i?f2(bl,cl,dl)+hl[1]:48>i?f3(bl,cl,dl)+hl[2]:64>i?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=16>i?f5(br,cr,dr)+hr[0]:32>i?f4(br,cr,dr)+hr[1]:48>i?f3(br,cr,dr)+hr[2]:64>i?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;return t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t},RIPEMD160.prototype._doFinalize=function(){var H,H_i,data,dataWords,hash,i,nBitsLeft,nBitsTotal,_i;for(data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8),data.sigBytes=4*(dataWords.length+1),this._process(),hash=this._hash,H=hash.words,i=_i=0;5>_i;i=++_i)H_i=H[i],H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8);return hash},RIPEMD160.prototype.scrub=function(){return this._hash.scrub()},RIPEMD160.prototype.copy_to=function(obj){return RIPEMD160.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},RIPEMD160.prototype.clone=function(){var out;return out=new RIPEMD160,this.copy_to(out),out},RIPEMD160}(Hasher),f1=function(x,y,z){return x^y^z},f2=function(x,y,z){return x&y|~x&z},f3=function(x,y,z){return(x|~y)^z},f4=function(x,y,z){return x&z|y&~z},f5=function(x,y,z){return x^(y|~z)},rotl=function(x,n){return x<>>32-n},transform=function(x){var out;return out=(new RIPEMD160).finalize(x),x.scrub(),out},exports.RIPEMD160=RIPEMD160,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],186:[function(require,module,exports){(function(Buffer){(function(){var Cipher,Counter,Salsa20,Salsa20Core,Salsa20InnerCore,Salsa20WordStream,StreamCipher,WordArray,asum,bulk_encrypt,encrypt,endian_reverse,fixup_uint32,iced,util,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},_ref=require("./wordarray"),endian_reverse=_ref.endian_reverse,WordArray=_ref.WordArray,Counter=require("./ctr").Counter,fixup_uint32=require("./util").fixup_uint32,StreamCipher=require("./algbase").StreamCipher,util=require("./util"),asum=function(out,v){var e,i,_i,_len;for(i=_i=0,_len=v.length;_len>_i;i=++_i)e=v[i],out[i]+=e;return!1},Salsa20InnerCore=function(){function Salsa20InnerCore(rounds){this.rounds=rounds}return Salsa20InnerCore.prototype._core=function(v){"use asm";var i,u,x0,x1,x10,x11,x12,x13,x14,x15,x2,x3,x4,x5,x6,x7,x8,x9,_i,_ref1; for(x0=v[0],x1=v[1],x2=v[2],x3=v[3],x4=v[4],x5=v[5],x6=v[6],x7=v[7],x8=v[8],x9=v[9],x10=v[10],x11=v[11],x12=v[12],x13=v[13],x14=v[14],x15=v[15],i=_i=0,_ref1=this.rounds;_i<_ref1;i=_i+=2)u=x0+x12|0,x4^=u<<7|u>>>25,u=x4+x0|0,x8^=u<<9|u>>>23,u=x8+x4|0,x12^=u<<13|u>>>19,u=x12+x8|0,x0^=u<<18|u>>>14,u=x5+x1|0,x9^=u<<7|u>>>25,u=x9+x5|0,x13^=u<<9|u>>>23,u=x13+x9|0,x1^=u<<13|u>>>19,u=x1+x13|0,x5^=u<<18|u>>>14,u=x10+x6|0,x14^=u<<7|u>>>25,u=x14+x10|0,x2^=u<<9|u>>>23,u=x2+x14|0,x6^=u<<13|u>>>19,u=x6+x2|0,x10^=u<<18|u>>>14,u=x15+x11|0,x3^=u<<7|u>>>25,u=x3+x15|0,x7^=u<<9|u>>>23,u=x7+x3|0,x11^=u<<13|u>>>19,u=x11+x7|0,x15^=u<<18|u>>>14,u=x0+x3|0,x1^=u<<7|u>>>25,u=x1+x0|0,x2^=u<<9|u>>>23,u=x2+x1|0,x3^=u<<13|u>>>19,u=x3+x2|0,x0^=u<<18|u>>>14,u=x5+x4|0,x6^=u<<7|u>>>25,u=x6+x5|0,x7^=u<<9|u>>>23,u=x7+x6|0,x4^=u<<13|u>>>19,u=x4+x7|0,x5^=u<<18|u>>>14,u=x10+x9|0,x11^=u<<7|u>>>25,u=x11+x10|0,x8^=u<<9|u>>>23,u=x8+x11|0,x9^=u<<13|u>>>19,u=x9+x8|0,x10^=u<<18|u>>>14,u=x15+x14|0,x12^=u<<7|u>>>25,u=x12+x15|0,x13^=u<<9|u>>>23,u=x13+x12|0,x14^=u<<13|u>>>19,u=x14+x13|0,x15^=u<<18|u>>>14;return[x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15]},Salsa20InnerCore}(),Salsa20Core=function(_super){function Salsa20Core(key,nonce){var _ref1;if(Salsa20Core.__super__.constructor.call(this,20),this.key=key.clone().endian_reverse(),this.nonce=nonce.clone().endian_reverse(),(16!==this.key.sigBytes||8!==this.nonce.sigBytes)&&(32!==this.key.sigBytes||8!==(_ref1=this.nonce.sigBytes)&&24!==_ref1))throw new Error("Bad key/nonce lengths");24===this.nonce.sigBytes&&this.xsalsa_setup(),this.input=this.key_iv_setup(this.nonce,this.key),this._reset()}return __extends(Salsa20Core,_super),Salsa20Core.prototype.sigma=WordArray.from_buffer_le(new Buffer("expand 32-byte k")),Salsa20Core.prototype.tau=WordArray.from_buffer_le(new Buffer("expand 16-byte k")),Salsa20Core.blockSize=64,Salsa20Core.prototype.blockSize=Salsa20Core.blockSize,Salsa20Core.keySize=32,Salsa20Core.prototype.keySize=Salsa20Core.keySize,Salsa20Core.ivSize=24,Salsa20Core.prototype.ivSize=Salsa20Core.ivSize,Salsa20Core.prototype.scrub=function(){return this.key.scrub(),this.nonce.scrub(),util.scrub_vec(this.input)},Salsa20Core.prototype.xsalsa_setup=function(){var n0,n1;return n0=new WordArray(this.nonce.words.slice(0,4)),this.nonce=n1=new WordArray(this.nonce.words.slice(4)),this.key=this.hsalsa20(n0,this.key)},Salsa20Core.prototype.hsalsa20=function(nonce,key){var i,indexes,input,v;return input=this.key_iv_setup(nonce,key),input[8]=nonce.words[2],input[9]=nonce.words[3],v=this._core(input),indexes=[0,5,10,15,6,7,8,9],v=function(){var _i,_len,_results;for(_results=[],_i=0,_len=indexes.length;_len>_i;_i++)i=indexes[_i],_results.push(fixup_uint32(v[i]));return _results}(),util.scrub_vec(input),new WordArray(v)},Salsa20Core.prototype.key_iv_setup=function(nonce,key){var A,C,i,out,_i,_j,_k,_ref1;for(out=[],i=_i=0;4>_i;i=++_i)out[i+1]=key.words[i];for(_ref1=32===key.sigBytes?[this.sigma,key.words.slice(4)]:[this.tau,key.words],C=_ref1[0],A=_ref1[1],i=_j=0;4>_j;i=++_j)out[i+11]=A[i];for(i=_k=0;4>_k;i=++_k)out[5*i]=C.words[i];return out[6]=nonce.words[0],out[7]=nonce.words[1],out},Salsa20Core.prototype.counter_setup=function(){return this.input[8]=this.counter.get().words[0],this.input[9]=this.counter.get().words[1]},Salsa20Core.prototype._reset=function(){return this.counter=new Counter({len:2})},Salsa20Core.prototype._generateBlock=function(){var v;return this.counter_setup(),v=this._core(this.input),asum(v,this.input),this.counter.inc_le(),v},Salsa20Core}(Salsa20InnerCore),exports.Salsa20WordStream=Salsa20WordStream=function(_super){function Salsa20WordStream(){return Salsa20WordStream.__super__.constructor.apply(this,arguments)}return __extends(Salsa20WordStream,_super),Salsa20WordStream.prototype._reset=function(){return Salsa20WordStream.__super__._reset.call(this)},Salsa20WordStream.prototype.getWordArray=function(nbytes){var blocks,i,nblocks,w,words,_i,_len,_ref1;for(null==nbytes||nbytes===this.blockSize?words=this._generateBlock():(nblocks=Math.ceil(nbytes/this.blockSize),blocks=function(){var _i,_results;for(_results=[],i=_i=0;nblocks>=0?nblocks>_i:_i>nblocks;i=nblocks>=0?++_i:--_i)_results.push(this._generateBlock());return _results}.call(this),words=(_ref1=[]).concat.apply(_ref1,blocks)),i=_i=0,_len=words.length;_len>_i;i=++_i)w=words[i],words[i]=endian_reverse(w);return new WordArray(words,nbytes)},Salsa20WordStream}(Salsa20Core),exports.Salsa20=Salsa20=function(_super){function Salsa20(){return Salsa20.__super__.constructor.apply(this,arguments)}return __extends(Salsa20,_super),Salsa20.prototype._reset=function(){return Salsa20.__super__._reset.call(this),this._i=this.blockSize},Salsa20.prototype.getBytes=function(needed){var bsz,n,v;if(null==needed&&(needed=this.blockSize),v=[],bsz=this.blockSize,this._i===bsz&&needed===bsz)return this._generateBlockBuffer();for(;needed>0;)this._i===bsz&&(this._generateBlockBuffer(),this._i=0),n=Math.min(needed,bsz-this._i),v.push(n===bsz?this._buf:this._buf.slice(this._i,this._i+n)),this._i+=n,needed-=n;return Buffer.concat(v)},Salsa20.prototype._generateBlockBuffer=function(){var e,i,v,_i,_len;for(this._buf=new Buffer(this.blockSize),v=this._generateBlock(),i=_i=0,_len=v.length;_len>_i;i=++_i)e=v[i],this._buf.writeUInt32LE(fixup_uint32(e),4*i);return this._buf},Salsa20}(Salsa20Core),exports.Cipher=Cipher=function(_super){function Cipher(_arg){var iv,key;key=_arg.key,iv=_arg.iv,Cipher.__super__.constructor.call(this),this.salsa=new Salsa20WordStream(key,iv),this.bsiw=this.salsa.blockSize/4}return __extends(Cipher,_super),Cipher.prototype.scrub=function(){return this.salsa.scrub()},Cipher.prototype.get_pad=function(){var pad;return pad=this.salsa.getWordArray()},Cipher}(StreamCipher),exports.encrypt=encrypt=function(_arg){var cipher,input,iv,key,ret;return key=_arg.key,iv=_arg.iv,input=_arg.input,cipher=new Cipher({key:key,iv:iv}),ret=cipher.encrypt(input),cipher.scrub(),ret},exports.bulk_encrypt=bulk_encrypt=function(_arg,cb){var cipher,input,iv,key,progress_hook,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,iv=_arg.iv,input=_arg.input,progress_hook=_arg.progress_hook,cipher=new Cipher({key:key,iv:iv}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/salsa20.iced"}),cipher.bulk_encrypt({input:input,progress_hook:progress_hook,what:"salsa20"},__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:257})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cipher.scrub(),cb(ret)}}(this))},exports.Salsa20InnerCore=Salsa20InnerCore,exports.endian_reverse=endian_reverse,exports.asum=asum}).call(this)}).call(this,require("buffer").Buffer)},{"./algbase":174,"./ctr":176,"./util":195,"./wordarray":196,buffer:80,"iced-runtime":118}],187:[function(require,module,exports){(function(){var HMAC_SHA256,Salsa20InnerCore,Scrypt,Timer,WordArray,blkcpy,blkxor,default_delay,endian_reverse,fixup_uint32,iced,pbkdf2,scrub_vec,scrypt,timer,ui8a_to_buffer,v_endian_reverse,__iced_k,__iced_k_noop,_ref,_ref1,_ref2;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},HMAC_SHA256=require("./hmac").HMAC_SHA256,pbkdf2=require("./pbkdf2").pbkdf2,_ref=require("./salsa20"),endian_reverse=_ref.endian_reverse,Salsa20InnerCore=_ref.Salsa20InnerCore,_ref1=require("./wordarray"),ui8a_to_buffer=_ref1.ui8a_to_buffer,WordArray=_ref1.WordArray,_ref2=require("./util"),fixup_uint32=_ref2.fixup_uint32,default_delay=_ref2.default_delay,scrub_vec=_ref2.scrub_vec,Timer=function(){function Timer(){this.tot=0}return Timer.prototype.start=function(){return this._t=Date.now()},Timer.prototype.stop=function(){return this.tot+=Date.now()-this._t},Timer}(),timer=new Timer,blkcpy=function(D,S,d_offset,s_offset,len){"use asm";var end,i,j;for(j=d_offset<<4|0,i=s_offset<<4|0,end=i+(len<<4)|0;i_i;i=++_i)e=v[i],v[i]=endian_reverse(e);return!0},Scrypt=function(){function Scrypt(_arg){var N,c,c0,c1;N=_arg.N,this.r=_arg.r,this.p=_arg.p,c=_arg.c,c0=_arg.c0,c1=_arg.c1,this.klass=_arg.klass,this.N||(this.N=1<<(N||15)),this.r||(this.r=8),this.p||(this.p=1),this.c0=c0||c||1,this.c1=c1||c||1,this.klass||(this.klass=HMAC_SHA256),this.X16_tmp=new Int32Array(16),this.s20ic=new Salsa20InnerCore(8)}return Scrypt.prototype.salsa20_8=function(B){var X,i,x,_i,_len;for(X=this.s20ic._core(B),i=_i=0,_len=X.length;_len>_i;i=++_i)x=X[i],B[i]+=x;return!0},Scrypt.prototype.pbkdf2=function(_arg,cb){var c,dkLen,key,progress_hook,salt,wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,c=_arg.c,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.pbkdf2"}),pbkdf2({key:key,salt:salt,c:c,dkLen:dkLen,klass:_this.klass,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:113})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa)}}(this))},Scrypt.prototype.blockmix_salsa8=function(B,Y){var X,i,_i,_ref3;for(X=this.X16_tmp,blkcpy(X,B,0,2*this.r-1,1),i=_i=0,_ref3=2*this.r;_ref3>=0?_ref3>_i:_i>_ref3;i=_ref3>=0?++_i:--_i)blkxor(X,B,i,1),this.salsa20_8(X),blkcpy(Y,X,i,0,1);for(i=0;ii;)blkcpy(V,X,lim*i,0,lim),_this.blockmix_salsa8(X,Y),i++;"function"==typeof progress_hook&&progress_hook(i),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.smix"}),default_delay(0,0,__iced_deferrals.defer({lineno:170})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}}(this)(function(_this){return function(){i=0,function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(i<_this.N))return _break();for(stop=Math.min(_this.N,i+256);stop>i;)j=fixup_uint32(X[16*(lim-1)])&_this.N-1,blkxor(X,V,j*lim,lim),_this.blockmix_salsa8(X,Y),i++;"function"==typeof progress_hook&&progress_hook(i+_this.N),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.smix"}),default_delay(0,0,__iced_deferrals.defer({lineno:187})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){return blkcpy(B,X,0,0,lim),cb()})}}(this))},Scrypt.prototype.run=function(_arg,cb){var B,MAX,V,XY,dkLen,err,j,key,lph,out,progress_hook,ret,salt,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,MAX=4294967295,err=ret=null,err=dkLen>MAX?err=new Error("asked for too much data"):this.r*this.p>=1<<30?new Error("r & p are too big"):this.r>MAX/128/this.p||this.r>MAX/256||this.N>MAX/128/this.r?new Error("N is too big"):null,XY=new Int32Array(64*this.r),V=new Int32Array(32*this.r*this.N),lph=function(o){return o.what+=" (pass 1)","function"==typeof progress_hook?progress_hook(o):void 0},function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.pbkdf2({key:key.clone(),salt:salt,dkLen:128*_this.r*_this.p,c:_this.c0,progress_hook:lph},__iced_deferrals.defer({assign_fn:function(){return function(){return B=arguments[0]}}(),lineno:218})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){B=new Int32Array(B.words),v_endian_reverse(B),lph=function(j){return function(i){return"function"==typeof progress_hook?progress_hook({i:i+j*_this.N*2,what:"scrypt",total:_this.p*_this.N*2}):void 0}},function(__iced_k){var _results,_while;j=0,_begin=0,_end=_this.p,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?j+=1:j-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&j>=_this.p||_positive===!1&&j<=_this.p?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.smix({B:B.subarray(32*_this.r*j),V:V,XY:XY,progress_hook:lph(j)},__iced_deferrals.defer({lineno:225})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){v_endian_reverse(B),lph=function(o){return o.what+=" (pass 2)","function"==typeof progress_hook?progress_hook(o):void 0},function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.pbkdf2({key:key,salt:WordArray.from_i32a(B),dkLen:dkLen,c:_this.c1,progress_hook:lph},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:233})),__iced_deferrals._fulfill()}(function(){return scrub_vec(XY),scrub_vec(V),scrub_vec(B),key.scrub(),cb(out)})})}}(this))},Scrypt}(),scrypt=function(_arg,cb){var N,c,c0,c1,dkLen,eng,key,klass,p,progress_hook,r,salt,wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,r=_arg.r,N=_arg.N,p=_arg.p,c0=_arg.c0,c1=_arg.c1,c=_arg.c,klass=_arg.klass,progress_hook=_arg.progress_hook,dkLen=_arg.dkLen,eng=new Scrypt({r:r,N:N,p:p,c:c,c0:c0,c1:c1,klass:klass}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced"}),eng.run({key:key,salt:salt,progress_hook:progress_hook,dkLen:dkLen},__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:263})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa)}}(this))},exports.Scrypt=Scrypt,exports.scrypt=scrypt,exports.v_endian_reverse=v_endian_reverse}).call(this)},{"./hmac":180,"./pbkdf2":183,"./salsa20":186,"./util":195,"./wordarray":196,"iced-runtime":118}],188:[function(require,module,exports){(function(){var Hasher,SHA1,W,WordArray,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,W=[],SHA1=function(_super){function SHA1(){return SHA1.__super__.constructor.apply(this,arguments)}return __extends(SHA1,_super),SHA1.blockSize=16,SHA1.prototype.blockSize=SHA1.blockSize,SHA1.output_size=20,SHA1.prototype.output_size=SHA1.output_size,SHA1.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878,3285377520])},SHA1.prototype._doProcessBlock=function(M,offset){var H,a,b,c,d,e,i,n,t,_i;for(H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=_i=0;80>_i;i=++_i)16>i?W[i]=0|M[offset+i]:(n=W[i-3]^W[i-8]^W[i-14]^W[i-16],W[i]=n<<1|n>>>31),t=(a<<5|a>>>27)+e+W[i],t+=20>i?(b&c|~b&d)+1518500249:40>i?(b^c^d)+1859775393:60>i?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t;return H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},SHA1.prototype._doFinalize=function(){var data,dataWords,nBitsLeft,nBitsTotal;return data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},SHA1.prototype.copy_to=function(obj){return SHA1.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},SHA1.prototype.clone=function(){var out;return out=new SHA1,this.copy_to(out),out},SHA1}(Hasher),transform=transform=function(x){var out;return out=(new SHA1).finalize(x),x.scrub(),out},exports.SHA1=SHA1,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],189:[function(require,module,exports){(function(){var SHA224,SHA256,WordArray,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,SHA256=require("./sha256").SHA256,SHA224=function(_super){function SHA224(){return SHA224.__super__.constructor.apply(this,arguments)}return __extends(SHA224,_super),SHA224.output_size=28,SHA224.prototype.output_size=SHA224.output_size,SHA224.prototype._doReset=function(){return this._hash=new WordArray([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},SHA224.prototype._doFinalize=function(){var hash;return hash=SHA224.__super__._doFinalize.call(this),hash.sigBytes-=4,hash},SHA224.prototype.clone=function(){var out;return out=new SHA224,this.copy_to(out),out},SHA224}(SHA256),transform=function(x){var out;return out=(new SHA224).finalize(x),x.scrub(),out},exports.SHA224=SHA224,exports.transform=transform}).call(this)},{"./sha256":190,"./wordarray":196}],190:[function(require,module,exports){(function(){var Global,Hasher,SHA256,WordArray,glbl,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this.H=[],this.K=[],this.W=[],this.init()}return Global.prototype.isPrime=function(n){var f,sqn,_i;if(2===n||3===n||5===n||7===n)return!0;if(1===n||4===n||6===n||8===n||9===n)return!1;for(sqn=Math.ceil(Math.sqrt(n)),f=_i=2;sqn>=2?sqn>=_i:_i>=sqn;f=sqn>=2?++_i:--_i)if(n%f===0)return!1;return!0},Global.prototype.getFractionalBits=function(n){return 4294967296*(n-(0|n))|0},Global.prototype.init=function(){var n,nPrime,_results;for(n=2,nPrime=0,_results=[];64>nPrime;)this.isPrime(n)&&(8>nPrime&&(this.H[nPrime]=this.getFractionalBits(Math.pow(n,.5))),this.K[nPrime]=this.getFractionalBits(Math.pow(n,1/3)),nPrime++),_results.push(n++);return _results},Global}(),glbl=new Global,SHA256=function(_super){function SHA256(){return SHA256.__super__.constructor.apply(this,arguments)}return __extends(SHA256,_super),SHA256.blockSize=16,SHA256.prototype.blockSize=SHA256.blockSize,SHA256.output_size=32,SHA256.prototype.output_size=SHA256.output_size,SHA256.prototype._doReset=function(){return this._hash=new WordArray(glbl.H.slice(0))},SHA256.prototype.get_output_size=function(){return this.output_size},SHA256.prototype._doProcessBlock=function(M,offset){var H,K,W,a,b,c,ch,d,e,f,g,gamma0,gamma0x,gamma1,gamma1x,h,i,maj,sigma0,sigma1,t1,t2,_i;for(H=this._hash.words,W=glbl.W,K=glbl.K,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=_i=0;64>_i;i=++_i)16>i?W[i]=0|M[offset+i]:(gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10,W[i]=gamma0+W[i-7]+gamma1+W[i-16]),ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj,h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0;return H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},SHA256.prototype._doFinalize=function(){var data,dataWords,nBitsLeft,nBitsTotal;return data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},SHA256.prototype.scrub=function(){return this._hash.scrub()},SHA256.prototype.copy_to=function(obj){return SHA256.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},SHA256.prototype.clone=function(){var out;return out=new SHA256,this.copy_to(out),out},SHA256}(Hasher),transform=function(x){var out;return out=(new SHA256).finalize(x),x.scrub(),out},exports.SHA256=SHA256,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],191:[function(require,module,exports){(function(){var Global,Hasher,SHA3,WordArray,X64Word,X64WordArray,glbl,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),WordArray=_ref.WordArray,X64Word=_ref.X64Word,X64WordArray=_ref.X64WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this.RHO_OFFSETS=[],this.PI_INDEXES=[],this.ROUND_CONSTANTS=[],this.T=[],this.compute_rho_offsets(),this.compute_pi_indexes(),this.compute_round_constants(),this.make_reusables()}return Global.prototype.compute_rho_offsets=function(){var newX,newY,t,x,y,_i,_results;for(x=1,y=0,_results=[],t=_i=0;24>_i;t=++_i)this.RHO_OFFSETS[x+5*y]=(t+1)*(t+2)/2%64,newX=y%5,newY=(2*x+3*y)%5,x=newX,_results.push(y=newY);return _results},Global.prototype.compute_pi_indexes=function(){var x,y,_i,_results;for(_results=[],x=_i=0;5>_i;x=++_i)_results.push(function(){var _j,_results1;for(_results1=[],y=_j=0;5>_j;y=++_j)_results1.push(this.PI_INDEXES[x+5*y]=y+(2*x+3*y)%5*5);return _results1}.call(this));return _results},Global.prototype.compute_round_constants=function(){var LFSR,bitPosition,i,j,roundConstantLsw,roundConstantMsw,_i,_j,_results;for(LFSR=1,_results=[],i=_i=0;24>_i;i=++_i){for(roundConstantMsw=0,roundConstantLsw=0,j=_j=0;7>_j;j=++_j)1&LFSR&&(bitPosition=(1<bitPosition?roundConstantLsw^=1<_i;i=++_i)_results.push(new X64Word(0,0));return _results}()},Global}(),glbl=new Global,exports.SHA3=SHA3=function(_super){function SHA3(){return SHA3.__super__.constructor.apply(this,arguments)}return __extends(SHA3,_super),SHA3.outputLength=512,SHA3.prototype.outputLength=SHA3.outputLength,SHA3.blockSize=(1600-2*SHA3.outputLength)/32,SHA3.prototype.blockSize=SHA3.blockSize,SHA3.output_size=SHA3.outputLength/8,SHA3.prototype.output_size=SHA3.output_size,SHA3.prototype._doReset=function(){var i;return this._state=function(){var _i,_results;for(_results=[],i=_i=0;25>_i;i=++_i)_results.push(new X64Word(0,0));return _results}()},SHA3.prototype._doProcessBlock=function(M,offset){var G,M2i,M2i1,T0,TLane,TPiLane,Tx,Tx1,Tx1Lane,Tx1Lsw,Tx1Msw,Tx2Lane,Tx4,i,lane,laneIndex,laneLsw,laneMsw,nBlockSizeLanes,rhoOffset,round,roundConstant,state,state0,tLsw,tMsw,x,y,_i,_j,_k,_l,_m,_n,_o,_p,_q,_results;for(G=glbl,state=this._state,nBlockSizeLanes=this.blockSize/2,i=_i=0;nBlockSizeLanes>=0?nBlockSizeLanes>_i:_i>nBlockSizeLanes;i=nBlockSizeLanes>=0?++_i:--_i)M2i=M[offset+2*i],M2i1=M[offset+2*i+1],M2i=16711935&(M2i<<8|M2i>>>24)|4278255360&(M2i<<24|M2i>>>8),M2i1=16711935&(M2i1<<8|M2i1>>>24)|4278255360&(M2i1<<24|M2i1>>>8),lane=state[i],lane.high^=M2i1,lane.low^=M2i;for(_results=[],round=_j=0;24>_j;round=++_j){for(x=_k=0;5>_k;x=++_k){for(tMsw=tLsw=0,y=_l=0;5>_l;y=++_l)lane=state[x+5*y],tMsw^=lane.high,tLsw^=lane.low;Tx=G.T[x],Tx.high=tMsw,Tx.low=tLsw}for(x=_m=0;5>_m;x=++_m)for(Tx4=G.T[(x+4)%5],Tx1=G.T[(x+1)%5],Tx1Msw=Tx1.high,Tx1Lsw=Tx1.low,tMsw=Tx4.high^(Tx1Msw<<1|Tx1Lsw>>>31),tLsw=Tx4.low^(Tx1Lsw<<1|Tx1Msw>>>31),y=_n=0;5>_n;y=++_n)lane=state[x+5*y],lane.high^=tMsw,lane.low^=tLsw;for(laneIndex=_o=1;25>_o;laneIndex=++_o)lane=state[laneIndex],laneMsw=lane.high,laneLsw=lane.low,rhoOffset=G.RHO_OFFSETS[laneIndex],32>rhoOffset?(tMsw=laneMsw<>>32-rhoOffset,tLsw=laneLsw<>>32-rhoOffset):(tMsw=laneLsw<>>64-rhoOffset,tLsw=laneMsw<>>64-rhoOffset),TPiLane=G.T[G.PI_INDEXES[laneIndex]],TPiLane.high=tMsw,TPiLane.low=tLsw;for(T0=G.T[0],state0=state[0],T0.high=state0.high,T0.low=state0.low,x=_p=0;5>_p;x=++_p)for(y=_q=0;5>_q;y=++_q)laneIndex=x+5*y,lane=state[laneIndex],TLane=G.T[laneIndex],Tx1Lane=G.T[(x+1)%5+5*y],Tx2Lane=G.T[(x+2)%5+5*y],lane.high=TLane.high^~Tx1Lane.high&Tx2Lane.high,lane.low=TLane.low^~Tx1Lane.low&Tx2Lane.low;lane=state[0],roundConstant=G.ROUND_CONSTANTS[round],lane.high^=roundConstant.high,_results.push(lane.low^=roundConstant.low)}return _results},SHA3.prototype._doFinalize=function(){var blockSizeBits,data,dataWords,hashWords,i,lane,laneLsw,laneMsw,nBitsLeft,nBitsTotal,outputLengthBytes,outputLengthLanes,state,_i;for(data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,blockSizeBits=32*this.blockSize,dataWords[nBitsLeft>>>5]|=1<<24-nBitsLeft%32,dataWords[(Math.ceil((nBitsLeft+1)/blockSizeBits)*blockSizeBits>>>5)-1]|=128,data.sigBytes=4*dataWords.length,this._process(),state=this._state,outputLengthBytes=this.outputLength/8,outputLengthLanes=outputLengthBytes/8,hashWords=[],i=_i=0;outputLengthLanes>=0?outputLengthLanes>_i:_i>outputLengthLanes;i=outputLengthLanes>=0?++_i:--_i)lane=state[i],laneMsw=lane.high,laneLsw=lane.low,laneMsw=16711935&(laneMsw<<8|laneMsw>>>24)|4278255360&(laneMsw<<24|laneMsw>>>8),laneLsw=16711935&(laneLsw<<8|laneLsw>>>24)|4278255360&(laneLsw<<24|laneLsw>>>8),hashWords.push(laneLsw),hashWords.push(laneMsw);return new WordArray(hashWords,outputLengthBytes)},SHA3.prototype.copy_to=function(obj){var s;return SHA3.__super__.copy_to.call(this,obj),obj._state=function(){var _i,_len,_ref1,_results;for(_ref1=this._state,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)s=_ref1[_i],_results.push(s.clone());return _results}.call(this)},SHA3.prototype.scrub=function(){},SHA3.prototype.clone=function(){var out;return out=new SHA3,this.copy_to(out),out},SHA3}(Hasher),exports.transform=function(x){var out;return out=(new SHA3).finalize(x),x.scrub(),out}}).call(this)},{"./algbase":174,"./wordarray":196}],192:[function(require,module,exports){(function(){var Global,SHA384,SHA512,WordArray,X64WordArray,transform,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),X64WordArray=_ref.X64WordArray,WordArray=_ref.WordArray,_ref1=require("./sha512"),SHA512=_ref1.SHA512,Global=_ref1.Global,SHA384=function(_super){function SHA384(){return SHA384.__super__.constructor.apply(this,arguments)}return __extends(SHA384,_super),SHA384.output_size=48,SHA384.prototype.output_size=SHA384.output_size,SHA384.prototype._doReset=function(){return this._hash=new X64WordArray(Global.convert([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]))},SHA384.prototype._doFinalize=function(){var hash;return hash=SHA384.__super__._doFinalize.call(this),hash.sigBytes-=16,hash},SHA384.prototype.clone=function(){var out;return out=new SHA384,this.copy_to(out),out},SHA384}(SHA512),transform=function(x){var out;return out=(new SHA384).finalize(x),x.scrub(),out},exports.SHA384=SHA384,exports.transform=transform}).call(this)},{"./sha512":193,"./wordarray":196}],193:[function(require,module,exports){(function(){var Global,Hasher,SHA512,X64Word,X64WordArray,glbl,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),X64Word=_ref.X64Word,X64WordArray=_ref.X64WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){var i;this.K=this.convert([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]),this.I=new X64WordArray(this.convert([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])),this.W=function(){var _i,_results; for(_results=[],i=_i=0;80>_i;i=++_i)_results.push(new X64Word(0,0));return _results}()}return Global.convert=function(raw){var i,_i,_ref1,_results;for(_results=[],i=_i=0,_ref1=raw.length;_ref1>_i;i=_i+=2)_results.push(new X64Word(raw[i],raw[i+1]));return _results},Global.prototype.convert=function(raw){return Global.convert(raw)},Global}(),exports.Global=Global,glbl=new Global,exports.SHA512=SHA512=function(_super){function SHA512(){return SHA512.__super__.constructor.apply(this,arguments)}return __extends(SHA512,_super),SHA512.blockSize=32,SHA512.prototype.blockSize=SHA512.blockSize,SHA512.output_size=64,SHA512.prototype.output_size=SHA512.output_size,SHA512.prototype._doReset=function(){return this._hash=glbl.I.clone()},SHA512.prototype._doProcessBlock=function(M,offset){var H,H0,H0h,H0l,H1,H1h,H1l,H2,H2h,H2l,H3,H3h,H3l,H4,H4h,H4l,H5,H5h,H5l,H6,H6h,H6l,H7,H7h,H7l,Ki,Kih,Kil,W,Wi,Wi16,Wi16h,Wi16l,Wi7,Wi7h,Wi7l,Wih,Wil,ah,al,bh,bl,ch,chh,chl,cl,dh,dl,eh,el,fh,fl,gamma0h,gamma0l,gamma0x,gamma0xh,gamma0xl,gamma1h,gamma1l,gamma1x,gamma1xh,gamma1xl,gh,gl,hh,hl,i,majh,majl,sigma0h,sigma0l,sigma1h,sigma1l,t1h,t1l,t2h,t2l,_i;for(H=this._hash.words,W=glbl.W,H0=H[0],H1=H[1],H2=H[2],H3=H[3],H4=H[4],H5=H[5],H6=H[6],H7=H[7],H0h=H0.high,H0l=H0.low,H1h=H1.high,H1l=H1.low,H2h=H2.high,H2l=H2.low,H3h=H3.high,H3l=H3.low,H4h=H4.high,H4l=H4.low,H5h=H5.high,H5l=H5.low,H6h=H6.high,H6l=H6.low,H7h=H7.high,H7l=H7.low,ah=H0h,al=H0l,bh=H1h,bl=H1l,ch=H2h,cl=H2l,dh=H3h,dl=H3l,eh=H4h,el=H4l,fh=H5h,fl=H5l,gh=H6h,gl=H6l,hh=H7h,hl=H7l,i=_i=0;80>_i;i=++_i)Wi=W[i],16>i?(Wih=Wi.high=0|M[offset+2*i],Wil=Wi.low=0|M[offset+2*i+1]):(gamma0x=W[i-15],gamma0xh=gamma0x.high,gamma0xl=gamma0x.low,gamma0h=(gamma0xh>>>1|gamma0xl<<31)^(gamma0xh>>>8|gamma0xl<<24)^gamma0xh>>>7,gamma0l=(gamma0xl>>>1|gamma0xh<<31)^(gamma0xl>>>8|gamma0xh<<24)^(gamma0xl>>>7|gamma0xh<<25),gamma1x=W[i-2],gamma1xh=gamma1x.high,gamma1xl=gamma1x.low,gamma1h=(gamma1xh>>>19|gamma1xl<<13)^(gamma1xh<<3|gamma1xl>>>29)^gamma1xh>>>6,gamma1l=(gamma1xl>>>19|gamma1xh<<13)^(gamma1xl<<3|gamma1xh>>>29)^(gamma1xl>>>6|gamma1xh<<26),Wi7=W[i-7],Wi7h=Wi7.high,Wi7l=Wi7.low,Wi16=W[i-16],Wi16h=Wi16.high,Wi16l=Wi16.low,Wil=gamma0l+Wi7l,Wih=gamma0h+Wi7h+(gamma0l>>>0>Wil>>>0?1:0),Wil+=gamma1l,Wih=Wih+gamma1h+(gamma1l>>>0>Wil>>>0?1:0),Wil+=Wi16l,Wih=Wih+Wi16h+(Wi16l>>>0>Wil>>>0?1:0),Wi.high=Wih,Wi.low=Wil),chh=eh&fh^~eh&gh,chl=el&fl^~el&gl,majh=ah&bh^ah&ch^bh&ch,majl=al&bl^al&cl^bl&cl,sigma0h=(ah>>>28|al<<4)^(ah<<30|al>>>2)^(ah<<25|al>>>7),sigma0l=(al>>>28|ah<<4)^(al<<30|ah>>>2)^(al<<25|ah>>>7),sigma1h=(eh>>>14|el<<18)^(eh>>>18|el<<14)^(eh<<23|el>>>9),sigma1l=(el>>>14|eh<<18)^(el>>>18|eh<<14)^(el<<23|eh>>>9),Ki=glbl.K[i],Kih=Ki.high,Kil=Ki.low,t1l=hl+sigma1l,t1h=hh+sigma1h+(hl>>>0>t1l>>>0?1:0),t1l+=chl,t1h=t1h+chh+(chl>>>0>t1l>>>0?1:0),t1l+=Kil,t1h=t1h+Kih+(Kil>>>0>t1l>>>0?1:0),t1l+=Wil,t1h=t1h+Wih+(Wil>>>0>t1l>>>0?1:0),t2l=sigma0l+majl,t2h=sigma0h+majh+(sigma0l>>>0>t2l>>>0?1:0),hh=gh,hl=gl,gh=fh,gl=fl,fh=eh,fl=el,el=dl+t1l|0,eh=dh+t1h+(dl>>>0>el>>>0?1:0)|0,dh=ch,dl=cl,ch=bh,cl=bl,bh=ah,bl=al,al=t1l+t2l|0,ah=t1h+t2h+(t1l>>>0>al>>>0?1:0)|0;return H0l=H0.low=H0l+al,H0.high=H0h+ah+(al>>>0>H0l>>>0?1:0),H1l=H1.low=H1l+bl,H1.high=H1h+bh+(bl>>>0>H1l>>>0?1:0),H2l=H2.low=H2l+cl,H2.high=H2h+ch+(cl>>>0>H2l>>>0?1:0),H3l=H3.low=H3l+dl,H3.high=H3h+dh+(dl>>>0>H3l>>>0?1:0),H4l=H4.low=H4l+el,H4.high=H4h+eh+(el>>>0>H4l>>>0?1:0),H5l=H5.low=H5l+fl,H5.high=H5h+fh+(fl>>>0>H5l>>>0?1:0),H6l=H6.low=H6l+gl,H6.high=H6h+gh+(gl>>>0>H6l>>>0?1:0),H7l=H7.low=H7l+hl,H7.high=H7h+hh+(hl>>>0>H7l>>>0?1:0)},SHA512.prototype._doFinalize=function(){var dataWords,nBitsLeft,nBitsTotal;return dataWords=this._data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*this._data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+128>>>10<<5)+30]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+128>>>10<<5)+31]=nBitsTotal,this._data.sigBytes=4*dataWords.length,this._process(),this._hash.toX32()},SHA512.prototype.copy_to=function(obj){return SHA512.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},SHA512.prototype.clone=function(){var out;return out=new SHA512,this.copy_to(out),out},SHA512}(Hasher),exports.transform=function(x){var out;return out=(new SHA512).finalize(x),x.scrub(),out}}).call(this)},{"./algbase":174,"./wordarray":196}],194:[function(require,module,exports){(function(){var BlockCipher,G,Global,TwoFish,scrub_vec,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};BlockCipher=require("./algbase").BlockCipher,scrub_vec=require("./util").scrub_vec,Global=function(){function Global(){this.P=[[169,103,179,232,4,253,163,118,154,146,128,120,228,221,209,56,13,198,53,152,24,247,236,108,67,117,55,38,250,19,148,72,242,208,139,48,132,84,223,35,25,91,61,89,243,174,162,130,99,1,131,46,217,81,155,124,166,235,165,190,22,12,227,97,192,140,58,245,115,44,37,11,187,78,137,107,83,106,180,241,225,230,189,69,226,244,182,102,204,149,3,86,212,28,30,215,251,195,142,181,233,207,191,186,234,119,57,175,51,201,98,113,129,121,9,173,36,205,249,216,229,197,185,77,68,8,134,231,161,29,170,237,6,112,178,210,65,123,160,17,49,194,39,144,32,246,96,255,150,92,177,171,158,156,82,27,95,147,10,239,145,133,73,238,45,79,143,59,71,135,109,70,214,62,105,100,42,206,203,47,252,151,5,122,172,127,213,26,75,14,167,90,40,20,63,41,136,60,76,2,184,218,176,23,85,31,138,125,87,199,141,116,183,196,159,114,126,21,34,18,88,7,153,52,110,80,222,104,101,188,219,248,200,168,43,64,220,254,50,164,202,16,33,240,211,93,15,0,111,157,54,66,74,94,193,224],[117,243,198,244,219,123,251,200,74,211,230,107,69,125,232,75,214,50,216,253,55,113,241,225,48,15,248,27,135,250,6,63,94,186,174,91,138,0,188,157,109,193,177,14,128,93,210,213,160,132,7,20,181,144,44,163,178,115,76,84,146,116,54,81,56,176,189,90,252,96,98,150,108,66,247,16,124,40,39,140,19,149,156,199,36,70,59,112,202,227,133,203,17,208,147,184,166,131,32,255,159,119,195,204,3,111,8,191,64,231,43,226,121,12,170,130,65,58,234,185,228,154,164,151,126,218,122,23,102,148,161,29,61,240,222,179,11,114,167,28,239,209,83,62,143,51,38,95,236,118,42,73,129,136,238,33,196,26,235,217,197,57,153,205,173,49,139,1,24,35,221,31,78,45,249,72,79,242,101,142,120,92,88,25,141,229,152,87,103,127,5,100,175,99,182,254,245,183,60,165,206,233,104,68,224,77,67,105,41,46,172,21,89,168,10,158,110,71,223,52,53,106,207,220,34,201,192,155,137,212,237,171,18,162,13,82,187,2,47,169,215,97,30,180,80,4,246,194,22,37,134,86,85,9,190,145]],this.P_00=1,this.P_01=0,this.P_02=0,this.P_03=1,this.P_04=1,this.P_10=0,this.P_11=0,this.P_12=1,this.P_13=1,this.P_14=0,this.P_20=1,this.P_21=1,this.P_22=0,this.P_23=0,this.P_24=0,this.P_30=0,this.P_31=1,this.P_32=1,this.P_33=0,this.P_34=1,this.GF256_FDBK=361,this.GF256_FDBK_2=this.GF256_FDBK/2,this.GF256_FDBK_4=this.GF256_FDBK/4,this.RS_GF_FDBK=333,this.SK_STEP=33686018,this.SK_BUMP=16843009,this.SK_ROTL=9}return Global}(),G=new Global,exports.TwoFish=TwoFish=function(_super){function TwoFish(key){this._key=key.clone(),this.gMDS0=[],this.gMDS1=[],this.gMDS2=[],this.gMDS3=[],this.gSubKeys=[],this.gSBox=[],this.k64Cnt=0,this._doReset()}return __extends(TwoFish,_super),TwoFish.blockSize=16,TwoFish.prototype.blockSize=TwoFish.blockSize,TwoFish.keySize=32,TwoFish.prototype.keySize=TwoFish.keySize,TwoFish.ivSize=TwoFish.blockSize,TwoFish.prototype.ivSize=TwoFish.ivSize,TwoFish.prototype.getByte=function(x,n){return x>>>8*n&255},TwoFish.prototype.switchEndianness=function(word){return(255&word)<<24|(word>>8&255)<<16|(word>>16&255)<<8|word>>24&255},TwoFish.prototype.LFSR1=function(x){return x>>1^(0!==(1&x)?G.GF256_FDBK_2:0)},TwoFish.prototype.LFSR2=function(x){return x>>2^(0!==(2&x)?G.GF256_FDBK_2:0)^(0!==(1&x)?G.GF256_FDBK_4:0)},TwoFish.prototype.Mx_X=function(x){return x^this.LFSR2(x)},TwoFish.prototype.Mx_Y=function(x){return x^this.LFSR1(x)^this.LFSR2(x)},TwoFish.prototype.RS_rem=function(x){var b,g2,g3;return b=x>>>24&255,g2=255&(b<<1^(0!==(128&b)?G.RS_GF_FDBK:0)),g3=b>>>1^(0!==(1&b)?G.RS_GF_FDBK>>>1:0)^g2,x<<8^g3<<24^g2<<16^g3<<8^b},TwoFish.prototype.RS_MDS_Encode=function(k0,k1){var i,r,_i,_j;for(r=k1,i=_i=0;4>_i;i=++_i)r=this.RS_rem(r);for(r^=k0,i=_j=0;4>_j;i=++_j)r=this.RS_rem(r);return r},TwoFish.prototype.F32=function(x,k32){var b0,b1,b2,b3,k0,k1,k2,k3,m,res;return b0=this.getByte(x,0),b1=this.getByte(x,1),b2=this.getByte(x,2),b3=this.getByte(x,3),k0=k32[0],k1=k32[1],k2=k32[2],k3=k32[3],m=3&this.k64Cnt,res=1===m?this.gMDS0[255&G.P[G.P_01][b0]^this.getByte(k0,0)]^this.gMDS1[255&G.P[G.P_11][b1]^this.getByte(k0,1)]^this.gMDS2[255&G.P[G.P_21][b2]^this.getByte(k0,2)]^this.gMDS3[255&G.P[G.P_31][b3]^this.getByte(k0,3)]:(0===m?(b0=255&G.P[G.P_04][b0]^this.getByte(k3,0),b1=255&G.P[G.P_14][b1]^this.getByte(k3,1),b2=255&G.P[G.P_24][b2]^this.getByte(k3,2),b3=255&G.P[G.P_34][b3]^this.getByte(k3,3)):void 0,0===m||3===m?(b0=255&G.P[G.P_03][b0]^this.getByte(k2,0),b1=255&G.P[G.P_13][b1]^this.getByte(k2,1),b2=255&G.P[G.P_23][b2]^this.getByte(k2,2),b3=255&G.P[G.P_33][b3]^this.getByte(k2,3)):void 0,this.gMDS0[255&G.P[G.P_01][255&G.P[G.P_02][b0]^this.getByte(k1,0)]^this.getByte(k0,0)]^this.gMDS1[255&G.P[G.P_11][255&G.P[G.P_12][b1]^this.getByte(k1,1)]^this.getByte(k0,1)]^this.gMDS2[255&G.P[G.P_21][255&G.P[G.P_22][b2]^this.getByte(k1,2)]^this.getByte(k0,2)]^this.gMDS3[255&G.P[G.P_31][255&G.P[G.P_32][b3]^this.getByte(k1,3)]^this.getByte(k0,3)])},TwoFish.prototype.Fe32_0=function(x){return this.gSBox[0+2*(255&x)]^this.gSBox[1+2*(x>>>8&255)]^this.gSBox[512+2*(x>>>16&255)]^this.gSBox[513+2*(x>>>24&255)]},TwoFish.prototype.Fe32_3=function(x){return this.gSBox[0+2*(x>>>24&255)]^this.gSBox[1+2*(255&x)]^this.gSBox[512+2*(x>>>8&255)]^this.gSBox[513+2*(x>>>16&255)]},TwoFish.prototype._doReset=function(){var A,B,b0,b1,b2,b3,i,j,k0,k1,k2,k3,k32e,k32o,m,m1,mX,mY,p,q,sBoxKeys,_i,_j,_k,_l,_ref,_ref1,_results;if(k32e=[],k32o=[],sBoxKeys=[],m1=[],mX=[],mY=[],this.k64Cnt=this._key.words.length/2,this.k64Cnt<1)throw"Key size less than 64 bits";if(this.k64Cnt>4)throw"Key size larger than 256 bits";for(i=_i=0;256>_i;i=++_i)j=255&G.P[0][i],m1[0]=j,mX[0]=255&this.Mx_X(j),mY[0]=255&this.Mx_Y(j),j=255&G.P[1][i],m1[1]=j,mX[1]=255&this.Mx_X(j),mY[1]=255&this.Mx_Y(j),this.gMDS0[i]=m1[G.P_00]|mX[G.P_00]<<8|mY[G.P_00]<<16|mY[G.P_00]<<24,this.gMDS1[i]=mY[G.P_10]|mY[G.P_10]<<8|mX[G.P_10]<<16|m1[G.P_10]<<24,this.gMDS2[i]=mX[G.P_20]|mY[G.P_20]<<8|m1[G.P_20]<<16|mY[G.P_20]<<24,this.gMDS3[i]=mX[G.P_30]|m1[G.P_30]<<8|mY[G.P_30]<<16|mX[G.P_30]<<24;for(i=_j=0,_ref=this.k64Cnt;_ref>=0?_ref>_j:_j>_ref;i=_ref>=0?++_j:--_j)p=2*i,k32e[i]=this.switchEndianness(this._key.words[p]),k32o[i]=this.switchEndianness(this._key.words[p+1]),sBoxKeys[this.k64Cnt-1-i]=this.RS_MDS_Encode(k32e[i],k32o[i]);for(i=_k=0,_ref1=20;_ref1>=0?_ref1>_k:_k>_ref1;i=_ref1>=0?++_k:--_k)q=i*G.SK_STEP,A=this.F32(q,k32e),B=this.F32(q+G.SK_BUMP,k32o),B=B<<8|B>>>24,A+=B,this.gSubKeys[2*i]=A,A+=B,this.gSubKeys[2*i+1]=A<>>32-G.SK_ROTL;for(k0=sBoxKeys[0],k1=sBoxKeys[1],k2=sBoxKeys[2],k3=sBoxKeys[3],this.gSBox=[],_results=[],i=_l=0;256>_l;i=++_l)b0=b1=b2=b3=i,m=3&this.k64Cnt,1===m?(this.gSBox[2*i]=this.gMDS0[255&G.P[G.P_01][b0]^this.getByte(k0,0)],this.gSBox[2*i+1]=this.gMDS1[255&G.P[G.P_11][b1]^this.getByte(k0,1)],this.gSBox[2*i+512]=this.gMDS2[255&G.P[G.P_21][b2]^this.getByte(k0,2)],_results.push(this.gSBox[2*i+513]=this.gMDS3[255&G.P[G.P_31][b3]^this.getByte(k0,3)])):(0===m&&(b0=255&G.P[G.P_04][b0]^this.getByte(k3,0),b1=255&G.P[G.P_14][b1]^this.getByte(k3,1),b2=255&G.P[G.P_24][b2]^this.getByte(k3,2),b3=255&G.P[G.P_34][b3]^this.getByte(k3,3)),(0===m||3===m)&&(b0=255&G.P[G.P_03][b0]^this.getByte(k2,0),b1=255&G.P[G.P_13][b1]^this.getByte(k2,1),b2=255&G.P[G.P_23][b2]^this.getByte(k2,2),b3=255&G.P[G.P_33][b3]^this.getByte(k2,3)),this.gSBox[2*i]=this.gMDS0[255&G.P[G.P_01][255&G.P[G.P_02][b0]^this.getByte(k1,0)]^this.getByte(k0,0)],this.gSBox[2*i+1]=this.gMDS1[255&G.P[G.P_11][255&G.P[G.P_12][b1]^this.getByte(k1,1)]^this.getByte(k0,1)],this.gSBox[2*i+512]=this.gMDS2[255&G.P[G.P_21][255&G.P[G.P_22][b2]^this.getByte(k1,2)]^this.getByte(k0,2)],_results.push(this.gSBox[2*i+513]=this.gMDS3[255&G.P[G.P_31][255&G.P[G.P_32][b3]^this.getByte(k1,3)]^this.getByte(k0,3)]));return _results},TwoFish.prototype.scrub=function(){return scrub_vec(this.gSubKeys),scrub_vec(this.gSBox),this._key.scrub()},TwoFish.prototype.decryptBlock=function(M,offset){var k,r,t0,t1,x0,x1,x2,x3,_i;for(null==offset&&(offset=0),x2=this.switchEndianness(M[offset])^this.gSubKeys[4],x3=this.switchEndianness(M[offset+1])^this.gSubKeys[5],x0=this.switchEndianness(M[offset+2])^this.gSubKeys[6],x1=this.switchEndianness(M[offset+3])^this.gSubKeys[7],k=39,r=_i=0;16>_i;r=_i+=2)t0=this.Fe32_0(x2),t1=this.Fe32_3(x3),x1^=t0+2*t1+this.gSubKeys[k--],x0=(x0<<1|x0>>>31)^t0+t1+this.gSubKeys[k--],x1=x1>>>1|x1<<31,t0=this.Fe32_0(x0),t1=this.Fe32_3(x1),x3^=t0+2*t1+this.gSubKeys[k--],x2=(x2<<1|x2>>>31)^t0+t1+this.gSubKeys[k--],x3=x3>>>1|x3<<31;return M[offset]=this.switchEndianness(x0^this.gSubKeys[0]),M[offset+1]=this.switchEndianness(x1^this.gSubKeys[1]),M[offset+2]=this.switchEndianness(x2^this.gSubKeys[2]),M[offset+3]=this.switchEndianness(x3^this.gSubKeys[3])},TwoFish.prototype.encryptBlock=function(M,offset){var k,r,t0,t1,x0,x1,x2,x3,_i;for(null==offset&&(offset=0),x0=this.switchEndianness(M[offset])^this.gSubKeys[0],x1=this.switchEndianness(M[offset+1])^this.gSubKeys[1],x2=this.switchEndianness(M[offset+2])^this.gSubKeys[2],x3=this.switchEndianness(M[offset+3])^this.gSubKeys[3],k=8,r=_i=0;16>_i;r=_i+=2)t0=this.Fe32_0(x0),t1=this.Fe32_3(x1),x2^=t0+t1+this.gSubKeys[k++],x2=x2>>>1|x2<<31,x3=(x3<<1|x3>>>31)^t0+2*t1+this.gSubKeys[k++],t0=this.Fe32_0(x2),t1=this.Fe32_3(x3),x0^=t0+t1+this.gSubKeys[k++],x0=x0>>>1|x0<<31,x1=(x1<<1|x1>>>31)^t0+2*t1+this.gSubKeys[k++];return M[offset]=this.switchEndianness(x2^this.gSubKeys[4]),M[offset+1]=this.switchEndianness(x3^this.gSubKeys[5]),M[offset+2]=this.switchEndianness(x0^this.gSubKeys[6]),M[offset+3]=this.switchEndianness(x1^this.gSubKeys[7])},TwoFish}(BlockCipher)}).call(this)},{"./algbase":174,"./util":195}],195:[function(require,module,exports){(function(){var default_delay,iced,uint_max,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},uint_max=Math.pow(2,32),exports.fixup_uint32=function(x){var ret,x_pos;return ret=x>uint_max||0>x?(x_pos=Math.abs(x)%uint_max,0>x?uint_max-x_pos:x_pos):x},exports.scrub_buffer=function(b){var i,n_full_words;for(n_full_words=b.length>>2,i=0;n_full_words>i;)b.writeUInt32LE(0,i),i+=4;for(;i=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)v[i]=0;return!1},exports.default_delay=default_delay=function(i,n,cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){"undefined"!=typeof setImmediate&&null!==setImmediate?!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/util.iced"}),setImmediate(__iced_deferrals.defer({lineno:37})),__iced_deferrals._fulfill()}(__iced_k):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/util.iced"}),setTimeout(__iced_deferrals.defer({lineno:39}),1),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb()}}(this))},exports.buffer_cmp_ule=function(b1,b2){var I,J,i,j,x,y;for(i=j=0,I=b1.length,J=b2.length;I>i&&0===b1.readUInt8(i);)i++;for(;J>j&&0===b2.readUInt8(j);)j++;if(I-i>J-j)return 1;if(J-j>I-i)return-1;for(;I>i;){if((x=b1.readUInt8(i))<(y=b2.readUInt8(j)))return-1;if(x>y)return 1;i++,j++}return 0},exports.bulk=function(n_input_bytes,_arg,_arg1){var call_ph,cb,default_n,delay,finalize,i,left,n,n_words,progress_hook,ret,total_words,update,what,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),update=_arg.update,finalize=_arg.finalize,default_n=_arg.default_n,delay=_arg1.delay,n=_arg1.n,cb=_arg1.cb,what=_arg1.what,progress_hook=_arg1.progress_hook,i=0,left=0,total_words=Math.ceil(n_input_bytes/4),delay||(delay=default_delay),n||(n=default_n),call_ph=function(i){return"function"==typeof progress_hook?progress_hook({what:what,i:i,total:total_words}):void 0},call_ph(0),function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},(left=total_words-i)>0?(n_words=Math.min(n,left),update(i,i+n_words),call_ph(i),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/util.iced",funcname:"bulk"}),delay(i,total_words,__iced_deferrals.defer({lineno:97})),__iced_deferrals._fulfill()}(function(){return _next(i+=n_words)}),void 0):_break()})(__iced_k)}}(this)(function(){return function(){return call_ph(total_words),ret=finalize(),cb(ret)}}(this))}}).call(this)},{"iced-runtime":118}],196:[function(require,module,exports){(function(Buffer){(function(){var WordArray,X64Word,X64WordArray,buffer_to_ui8a,endian_reverse,ui8a_to_buffer,util;util=require("./util"),buffer_to_ui8a=function(b){var i,ret,_i,_ref;for(ret=new Uint8Array(b.length),i=_i=0,_ref=b.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)ret[i]=b.readUInt8(i);return ret},ui8a_to_buffer=function(v){var i,ret,_i,_ref;for(ret=new Buffer(v.length),i=_i=0,_ref=v.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)ret.writeUInt8(v[i],i);return ret},endian_reverse=function(x){return x>>>24&255|(x>>>16&255)<<8|(x>>>8&255)<<16|(255&x)<<24},exports.WordArray=WordArray=function(){function WordArray(words,sigBytes){this.words=words||[],this.sigBytes=null!=sigBytes?sigBytes:4*this.words.length}return WordArray.prototype.concat=function(wordArray){var i,thatByte,thatSigBytes,thatWords,_i;if(thatWords=wordArray.words,thatSigBytes=wordArray.sigBytes,this.clamp(),this.sigBytes%4)for(i=_i=0;thatSigBytes>=0?thatSigBytes>_i:_i>thatSigBytes;i=thatSigBytes>=0?++_i:--_i)thatByte=thatWords[i>>>2]>>>24-i%4*8&255,this.words[this.sigBytes+i>>>2]|=thatByte<<24-(this.sigBytes+i)%4*8;else this.words=this.words.concat(thatWords);return this.sigBytes+=thatSigBytes,this},WordArray.prototype.clamp=function(){return this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this},WordArray.prototype.clone=function(){return new WordArray(this.words.slice(0),this.sigBytes)},WordArray.prototype.to_buffer=function(){var ch,out,p,w,_i,_len,_ref;for(out=new Buffer(this.sigBytes),p=0,_ref=this.words,_i=0,_len=_ref.length;_len>_i;_i++)w=_ref[_i],this.sigBytes-p>=4&&(w=util.fixup_uint32(w),out.writeUInt32BE(w,p),p+=4);for(;p>>2]>>>24-p%4*8&255,out.writeUInt8(ch,p),p++;return out},WordArray.prototype.endian_reverse=function(){var i,w,_i,_len,_ref;for(_ref=this.words,i=_i=0,_len=_ref.length;_len>_i;i=++_i)w=_ref[i],this.words[i]=endian_reverse(w);return this},WordArray.prototype.split=function(n){var i,out,sz;if(this.sigBytes%4!==0||this.words.length%n!==0)throw new Error("bad key alignment");return sz=this.words.length/n,out=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=this.words.length;sz>0?_ref>_i:_i>_ref;i=_i+=sz)_results.push(new WordArray(this.words.slice(i,i+sz)));return _results}.call(this)},WordArray.prototype.to_utf8=function(){return this.to_buffer().toString("utf8")},WordArray.prototype.to_hex=function(){return this.to_buffer().toString("hex")},WordArray.prototype.to_ui8a=function(){return buffer_to_ui8a(this.to_buffer())},WordArray.alloc=function(b){return Buffer.isBuffer(b)?WordArray.from_buffer(b):"object"==typeof b&&b instanceof WordArray?b:"string"==typeof b?WordArray.from_hex(b):null},WordArray.from_buffer=function(b){var ch,last,p,words;for(words=[],p=0;b.length-p>=4;)words.push(b.readUInt32BE(p)),p+=4;if(p=4;)words.push(b.readUInt32LE(p)),p+=4;if(p_i;i=++_i)w=_ref[i],util.fixup_uint32(w)!==util.fixup_uint32(wa.words[i])&&(ret=!1);return ret},WordArray.prototype.xor=function(wa2,_arg){var dst_offset,i,n_words,src_offset,tmp,_i;if(dst_offset=_arg.dst_offset,src_offset=_arg.src_offset,n_words=_arg.n_words,dst_offset||(dst_offset=0),src_offset||(src_offset=0),null==n_words&&(n_words=wa2.words.length-src_offset),this.words.length=0?n_words>_i:_i>n_words;i=n_words>=0?++_i:--_i)tmp=this.words[dst_offset+i]^wa2.words[src_offset+i],this.words[dst_offset+i]=util.fixup_uint32(tmp);return this},WordArray.prototype.truncate=function(n_bytes){var n_words;if(!(n_bytes<=this.sigBytes))throw new Error("Cannot truncate: "+n_bytes+" > "+this.sigBytes);return n_words=Math.ceil(n_bytes/4),new WordArray(this.words.slice(0,n_words),n_bytes)},WordArray.prototype.unshift=function(n_words){var ret;return this.words.length>=n_words?(ret=this.words.splice(0,n_words),this.sigBytes-=4*n_words,new WordArray(ret)):null},WordArray.prototype.is_scrubbed=function(){var w,_i,_len,_ref;for(_ref=this.words,_i=0,_len=_ref.length;_len>_i;_i++)if(w=_ref[_i],0!==w)return!1;return!0},WordArray.prototype.scrub=function(){return util.scrub_vec(this.words)},WordArray.prototype.cmp_ule=function(wa2){return util.buffer_cmp_ule(this.to_buffer(),wa2.to_buffer())},WordArray.prototype.slice=function(low,hi){var n,sb;if(n=this.words.length,!(hi>low&&n>=hi))throw new Error("Bad WordArray slice ["+low+","+hi+")] when only "+n+" avail");return sb=4*(hi-low),hi===n&&(sb-=4*n-this.sigBytes),new WordArray(this.words.slice(low,hi),sb)},WordArray}(),exports.X64Word=X64Word=function(){function X64Word(high,low){this.high=high,this.low=low}return X64Word.prototype.clone=function(){return new X64Word(this.high,this.low)},X64Word}(),exports.X64WordArray=X64WordArray=function(){function X64WordArray(words,sigBytes){this.sigBytes=sigBytes,this.words=words||[],this.sigBytes||(this.sigBytes=8*this.words.length)}return X64WordArray.prototype.toX32=function(){var v,w,_i,_len,_ref;for(v=[],_ref=this.words,_i=0,_len=_ref.length;_len>_i;_i++)w=_ref[_i],v.push(w.high),v.push(w.low);return new WordArray(v,this.sigBytes)},X64WordArray.prototype.clone=function(){var w;return new X64WordArray(function(){var _i,_len,_ref,_results;for(_ref=this.words,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)w=_ref[_i],_results.push(w.clone());return _results}.call(this),this.sigBytes)},X64WordArray}(),exports.buffer_to_ui8a=buffer_to_ui8a,exports.ui8a_to_buffer=ui8a_to_buffer,exports.endian_reverse=endian_reverse}).call(this)}).call(this,require("buffer").Buffer)},{"./util":195,buffer:80}],197:[function(require,module,exports){(function(){var Lock,NamedLock,Table,iced,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},exports.Lock=Lock=function(){function Lock(){this._open=!0,this._waiters=[]}return Lock.prototype.acquire=function(cb){return this._open?(this._open=!1,cb()):this._waiters.push(cb)},Lock.prototype.release=function(){var w;return this._waiters.length?(w=this._waiters.shift())():this._open=!0},Lock.prototype.open=function(){return this._open},Lock}(),NamedLock=function(_super){function NamedLock(tab,name){this.tab=tab,this.name=name,NamedLock.__super__.constructor.call(this),this.refs=0}return __extends(NamedLock,_super),NamedLock.prototype.incref=function(){return++this.refs},NamedLock.prototype.decref=function(){return--this.refs},NamedLock.prototype.release=function(){return NamedLock.__super__.release.call(this),0===this.decref()?delete this.tab.locks[this.name]:void 0},NamedLock}(Lock),exports.Table=Table=function(){function Table(){this.locks={}}return Table.prototype.create=function(name){var l;return l=new NamedLock(this,name),this.locks[name]=l},Table.prototype.acquire=function(name,cb,wait){var l,was_open,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),l=this.locks[name]||this.create(name),was_open=l._open,l.incref(),function(){return function(__iced_k){return wait||l._open?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/iced/iced-lock/index.iced",funcname:"Table.acquire"}),l.acquire(__iced_deferrals.defer({lineno:47})),__iced_deferrals._fulfill()}(__iced_k):__iced_k(l=null)}}(this)(function(){return function(){return cb(l,was_open)}}(this))},Table.prototype.lookup=function(name){return this.locks[name]},Table}()}).call(this)},{"iced-runtime":118}],198:[function(require,module,exports){(function(){var Generator,iced,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},Generator=Generator=function(){function Generator(opts){opts=opts||{},this.lazy_loop_delay=opts.lazy_loop_delay||30,this.loop_delay=opts.loop_delay||5,this.work_min=opts.work_min||1,this.auto_stop_bits=opts.auto_stop_bits||4096,this.max_bits_per_delta=opts.max_bits_per_delta||4,this.auto_stop=opts.auto_stop?opts.auto_stop:!0,this.entropies=[],this.running=!0,this.is_generating=!1,this.timer_race_loop()}return Generator.prototype.generate=function(bits_wanted,cb){var e,harvested_bits,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this.is_generating=!0,this.running||this.resume(),harvested_bits=0,res=[],function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},bits_wanted>harvested_bits?void!function(__iced_k){return _this.entropies.length?(e=_this.entropies.splice(0,1)[0],harvested_bits+=e[1],__iced_k(res.push(e[0]))):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/more-entropy/src/generator.iced",funcname:"Generator.generate"}),_this.delay(__iced_deferrals.defer({lineno:28})),__iced_deferrals._fulfill()}(__iced_k)}(_next):_break()})(__iced_k)}}(this)(function(_this){return function(){return _this.auto_stop&&_this.stop(),_this.is_generating=!1,cb(res)}}(this))},Generator.prototype.stop=function(){return this.running=!1},Generator.prototype.resume=function(){return this.running=!0,this.timer_race_loop()},Generator.prototype.reset=function(){return this.entropies=[],this.total_bits=0},Generator.prototype.count_unused_bits=function(){var bits,e,_i,_len,_ref;for(bits=0,_ref=this.entropies,_i=0,_len=_ref.length;_len>_i;_i++)e=_ref[_i],bits+=e[1];return bits},Generator.prototype.delay=function(cb){var delay,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),delay=this.is_generating?this.loop_delay:this.lazy_loop_delay,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/more-entropy/src/generator.iced",funcname:"Generator.delay"}),setTimeout(__iced_deferrals.defer({lineno:50}),delay),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb()}}(this))},Generator.prototype.timer_race_loop=function(){var ___iced_passed_deferral,__iced_k,_results,_while;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this._last_count=null,_results=[],(_while=function(_this){var count,delta,entropy,v,__iced_deferrals;return function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_this.running?(_this.count_unused_bits()<_this.auto_stop_bits&&(count=_this.millisecond_count(),null!=_this._last_count&&(delta=count-_this._last_count)&&(entropy=Math.floor(_this.log_2(Math.abs(delta))),entropy=Math.min(_this.max_bits_per_delta,entropy),v=[delta,entropy],_this.entropies.push(v)),_this._last_count=count),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/more-entropy/src/generator.iced",funcname:"Generator.timer_race_loop"}),_this.delay(__iced_deferrals.defer({lineno:64})),__iced_deferrals._fulfill()}(_next)):_break()}}(this))(__iced_k)},Generator.prototype.log_2=function(x){return Math.log(x)/Math.LN2},Generator.prototype.millisecond_count=function(){var d,i,x;for(d=Date.now(),i=x=0;Date.now()>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;n>i;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 core_salsa20(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;20>i;i+=2)u=x0+x12|0,x4^=u<<7|u>>>25,u=x4+x0|0,x8^=u<<9|u>>>23,u=x8+x4|0,x12^=u<<13|u>>>19,u=x12+x8|0,x0^=u<<18|u>>>14,u=x5+x1|0,x9^=u<<7|u>>>25,u=x9+x5|0,x13^=u<<9|u>>>23,u=x13+x9|0,x1^=u<<13|u>>>19,u=x1+x13|0,x5^=u<<18|u>>>14,u=x10+x6|0,x14^=u<<7|u>>>25,u=x14+x10|0,x2^=u<<9|u>>>23,u=x2+x14|0,x6^=u<<13|u>>>19,u=x6+x2|0,x10^=u<<18|u>>>14,u=x15+x11|0,x3^=u<<7|u>>>25,u=x3+x15|0,x7^=u<<9|u>>>23,u=x7+x3|0,x11^=u<<13|u>>>19,u=x11+x7|0,x15^=u<<18|u>>>14,u=x0+x3|0,x1^=u<<7|u>>>25,u=x1+x0|0,x2^=u<<9|u>>>23,u=x2+x1|0,x3^=u<<13|u>>>19,u=x3+x2|0,x0^=u<<18|u>>>14,u=x5+x4|0,x6^=u<<7|u>>>25,u=x6+x5|0,x7^=u<<9|u>>>23,u=x7+x6|0,x4^=u<<13|u>>>19,u=x4+x7|0,x5^=u<<18|u>>>14,u=x10+x9|0,x11^=u<<7|u>>>25,u=x11+x10|0,x8^=u<<9|u>>>23,u=x8+x11|0,x9^=u<<13|u>>>19,u=x9+x8|0,x10^=u<<18|u>>>14,u=x15+x14|0,x12^=u<<7|u>>>25,u=x12+x15|0,x13^=u<<9|u>>>23,u=x13+x12|0,x14^=u<<13|u>>>19,u=x14+x13|0,x15^=u<<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}function core_hsalsa20(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;20>i;i+=2)u=x0+x12|0,x4^=u<<7|u>>>25,u=x4+x0|0,x8^=u<<9|u>>>23,u=x8+x4|0,x12^=u<<13|u>>>19,u=x12+x8|0,x0^=u<<18|u>>>14,u=x5+x1|0,x9^=u<<7|u>>>25,u=x9+x5|0,x13^=u<<9|u>>>23,u=x13+x9|0,x1^=u<<13|u>>>19,u=x1+x13|0,x5^=u<<18|u>>>14,u=x10+x6|0,x14^=u<<7|u>>>25,u=x14+x10|0,x2^=u<<9|u>>>23,u=x2+x14|0,x6^=u<<13|u>>>19,u=x6+x2|0,x10^=u<<18|u>>>14,u=x15+x11|0,x3^=u<<7|u>>>25,u=x3+x15|0,x7^=u<<9|u>>>23,u=x7+x3|0,x11^=u<<13|u>>>19,u=x11+x7|0,x15^=u<<18|u>>>14,u=x0+x3|0,x1^=u<<7|u>>>25,u=x1+x0|0,x2^=u<<9|u>>>23,u=x2+x1|0,x3^=u<<13|u>>>19,u=x3+x2|0,x0^=u<<18|u>>>14,u=x5+x4|0,x6^=u<<7|u>>>25,u=x6+x5|0,x7^=u<<9|u>>>23,u=x7+x6|0,x4^=u<<13|u>>>19,u=x4+x7|0,x5^=u<<18|u>>>14,u=x10+x9|0,x11^=u<<7|u>>>25,u=x11+x10|0,x8^=u<<9|u>>>23,u=x8+x11|0,x9^=u<<13|u>>>19,u=x9+x8|0,x10^=u<<18|u>>>14,u=x15+x14|0,x12^=u<<7|u>>>25,u=x12+x15|0,x13^=u<<9|u>>>23,u=x13+x12|0,x14^=u<<13|u>>>19,u=x14+x13|0,x15^=u<<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}function crypto_core_salsa20(out,inp,k,c){core_salsa20(out,inp,k,c)}function crypto_core_hsalsa20(out,inp,k,c){core_hsalsa20(out,inp,k,c)}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;16>i;i++)z[i]=0;for(i=0;8>i;i++)z[i]=n[i];for(;b>=64;){for(crypto_core_salsa20(x,z,k,sigma),i=0;64>i;i++)c[cpos+i]=m[mpos+i]^x[i];for(u=1,i=8;16>i;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;b>i;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;16>i;i++)z[i]=0;for(i=0;8>i;i++)z[i]=n[i];for(;b>=64;){for(crypto_core_salsa20(x,z,k,sigma),i=0;64>i;i++)c[cpos+i]=x[i];for(u=1,i=8;16>i;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;b>i;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;8>i;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;8>i;i++)sn[i]=n[i+16];return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s)}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(32>d)return-1;for(crypto_stream_xor(c,0,m,0,d,n,k),crypto_onetimeauth(c,16,c,32,d-32,c),i=0;16>i;i++)c[i]=0;return 0}function crypto_secretbox_open(m,c,d,n,k){var i,x=new Uint8Array(32);if(32>d)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;32>i;i++)m[i]=0;return 0}function set25519(r,a){var i;for(i=0;16>i;i++)r[i]=0|a[i]}function car25519(o){var i,v,c=1;for(i=0;16>i;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;16>i;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;16>i;i++)t[i]=n[i];for(car25519(t),car25519(t),car25519(t),j=0;2>j;j++){for(m[0]=t[0]-65517,i=1;15>i;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;16>i;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;16>i;i++)o[i]=n[2*i]+(n[2*i+1]<<8);o[15]&=32767}function A(o,a,b){for(var i=0;16>i;i++)o[i]=a[i]+b[i]}function Z(o,a,b){for(var i=0;16>i;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];v=a[0],t0+=v*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,v=a[1],t1+=v*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,v=a[2],t2+=v*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,v=a[3],t3+=v*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,v=a[4],t4+=v*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,v=a[5],t5+=v*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,v=a[6],t6+=v*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,v=a[7],t7+=v*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,v=a[8],t8+=v*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,v=a[9],t9+=v*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,v=a[10],t10+=v*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,v=a[11],t11+=v*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,v=a[12],t12+=v*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,v=a[13],t13+=v*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,v=a[14],t14+=v*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,v=a[15],t15+=v*b0,t16+=v*b1,t17+=v*b2,t18+=v*b3,t19+=v*b4,t20+=v*b5,t21+=v*b6,t22+=v*b7,t23+=v*b8,t24+=v*b9,t25+=v*b10,t26+=v*b11,t27+=v*b12,t28+=v*b13,t29+=v*b14,t30+=v*b15,t0+=38*t16,t1+=38*t17,t2+=38*t18,t3+=38*t19,t4+=38*t20,t5+=38*t21,t6+=38*t22,t7+=38*t23,t8+=38*t24,t9+=38*t25,t10+=38*t26,t11+=38*t27,t12+=38*t28,t13+=38*t29,t14+=38*t30,c=1,v=t0+c+65535,c=Math.floor(v/65536),t0=v-65536*c,v=t1+c+65535,c=Math.floor(v/65536),t1=v-65536*c,v=t2+c+65535,c=Math.floor(v/65536),t2=v-65536*c,v=t3+c+65535,c=Math.floor(v/65536),t3=v-65536*c,v=t4+c+65535,c=Math.floor(v/65536),t4=v-65536*c,v=t5+c+65535,c=Math.floor(v/65536),t5=v-65536*c,v=t6+c+65535,c=Math.floor(v/65536),t6=v-65536*c,v=t7+c+65535,c=Math.floor(v/65536),t7=v-65536*c,v=t8+c+65535,c=Math.floor(v/65536),t8=v-65536*c,v=t9+c+65535,c=Math.floor(v/65536),t9=v-65536*c,v=t10+c+65535,c=Math.floor(v/65536),t10=v-65536*c,v=t11+c+65535,c=Math.floor(v/65536),t11=v-65536*c,v=t12+c+65535,c=Math.floor(v/65536),t12=v-65536*c,v=t13+c+65535,c=Math.floor(v/65536),t13=v-65536*c,v=t14+c+65535,c=Math.floor(v/65536),t14=v-65536*c,v=t15+c+65535,c=Math.floor(v/65536),t15=v-65536*c,t0+=c-1+37*(c-1),c=1,v=t0+c+65535,c=Math.floor(v/65536),t0=v-65536*c,v=t1+c+65535,c=Math.floor(v/65536),t1=v-65536*c,v=t2+c+65535,c=Math.floor(v/65536),t2=v-65536*c,v=t3+c+65535,c=Math.floor(v/65536),t3=v-65536*c,v=t4+c+65535,c=Math.floor(v/65536),t4=v-65536*c,v=t5+c+65535,c=Math.floor(v/65536),t5=v-65536*c,v=t6+c+65535,c=Math.floor(v/65536),t6=v-65536*c,v=t7+c+65535,c=Math.floor(v/65536),t7=v-65536*c,v=t8+c+65535,c=Math.floor(v/65536),t8=v-65536*c,v=t9+c+65535,c=Math.floor(v/65536),t9=v-65536*c,v=t10+c+65535,c=Math.floor(v/65536),t10=v-65536*c,v=t11+c+65535,c=Math.floor(v/65536),t11=v-65536*c,v=t12+c+65535,c=Math.floor(v/65536),t12=v-65536*c,v=t13+c+65535,c=Math.floor(v/65536),t13=v-65536*c,v=t14+c+65535,c=Math.floor(v/65536),t14=v-65536*c,v=t15+c+65535,c=Math.floor(v/65536),t15=v-65536*c,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;16>a;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;16>a;a++)o[a]=c[a]}function pow2523(o,i){var a,c=gf();for(a=0;16>a;a++)c[a]=i[a];for(a=250;a>=0;a--)S(c,c),1!==a&&M(c,c,i);for(a=0;16>a;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;31>i;i++)z[i]=n[i];for(z[31]=127&n[31]|64,z[0]&=248,unpack25519(x,p),i=0;16>i;i++)b[i]=x[i],d[i]=a[i]=c[i]=0;for(a[0]=d[0]=1,i=254;i>=0;--i)r=z[i>>>3]>>>(7&i)&1,sel25519(a,b,r),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;16>i;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)}function crypto_box(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)}function crypto_box_open(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)}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;16>i;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;80>i;i++)if(bh0=ah0,bh1=ah1,bh2=ah2,bh3=ah3,bh4=ah4,bh5=ah5,bh6=ah6,bh7=ah7,bl0=al0,bl1=al1,bl2=al2,bl3=al3,bl4=al4,bl5=al5,bl6=al6,bl7=al7,h=ah7,l=al7,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=(ah4>>>14|al4<<18)^(ah4>>>18|al4<<14)^(al4>>>9|ah4<<23),l=(al4>>>14|ah4<<18)^(al4>>>18|ah4<<14)^(ah4>>>9|al4<<23),a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,h=ah4&ah5^~ah4&ah6,l=al4&al5^~al4&al6,a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,h=K[2*i],l=K[2*i+1],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,h=wh[i%16],l=wl[i%16],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,th=65535&c|d<<16,tl=65535&a|b<<16,h=th,l=tl,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=(ah0>>>28|al0<<4)^(al0>>>2|ah0<<30)^(al0>>>7|ah0<<25),l=(al0>>>28|ah0<<4)^(ah0>>>2|al0<<30)^(ah0>>>7|al0<<25),a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,h=ah0&ah1^ah0&ah2^ah1&ah2,l=al0&al1^al0&al2^al1&al2,a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,bh7=65535&c|d<<16,bl7=65535&a|b<<16,h=bh3,l=bl3,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=th,l=tl,a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,bh3=65535&c|d<<16,bl3=65535&a|b<<16,ah1=bh0,ah2=bh1,ah3=bh2,ah4=bh3,ah5=bh4,ah6=bh5,ah7=bh6,ah0=bh7,al1=bl0,al2=bl1,al3=bl2,al4=bl3,al5=bl4,al6=bl5,al7=bl6,al0=bl7,i%16===15)for(j=0;16>j;j++)h=wh[j],l=wl[j],a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=wh[(j+9)%16],l=wl[(j+9)%16],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,th=wh[(j+1)%16],tl=wl[(j+1)%16],h=(th>>>1|tl<<31)^(th>>>8|tl<<24)^th>>>7,l=(tl>>>1|th<<31)^(tl>>>8|th<<24)^(tl>>>7|th<<25),a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,th=wh[(j+14)%16],tl=wl[(j+14)%16],h=(th>>>19|tl<<13)^(tl>>>29|th<<3)^th>>>6,l=(tl>>>19|th<<13)^(th>>>29|tl<<3)^(tl>>>6|th<<26),a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,wh[j]=65535&c|d<<16,wl[j]=65535&a|b<<16;h=ah0,l=al0,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[0],l=hl[0],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[0]=ah0=65535&c|d<<16,hl[0]=al0=65535&a|b<<16,h=ah1,l=al1,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[1],l=hl[1],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[1]=ah1=65535&c|d<<16,hl[1]=al1=65535&a|b<<16,h=ah2,l=al2,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[2],l=hl[2],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[2]=ah2=65535&c|d<<16,hl[2]=al2=65535&a|b<<16,h=ah3,l=al3,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[3],l=hl[3],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[3]=ah3=65535&c|d<<16,hl[3]=al3=65535&a|b<<16,h=ah4,l=al4,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[4],l=hl[4],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[4]=ah4=65535&c|d<<16,hl[4]=al4=65535&a|b<<16,h=ah5,l=al5,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[5],l=hl[5],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[5]=ah5=65535&c|d<<16,hl[5]=al5=65535&a|b<<16,h=ah6,l=al6,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[6],l=hl[6],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[6]=ah6=65535&c|d<<16,hl[6]=al6=65535&a|b<<16,h=ah7,l=al7,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[7],l=hl[7],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>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;n>i;i++)x[i]=m[b-n+i];for(x[n]=128,n=256-128*(112>n?1:0),x[n-9]=0,ts64(x,n-8,b/536870912|0,b<<3),crypto_hashblocks_hl(hh,hl,x,n),i=0;8>i;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;4>i;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)b=s[i/8|0]>>(7&i)&1,cswap(p,q,b),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;32>i;i++)sk[i+32]=pk[i];return 0}function modL(r,x){var carry,i,j,k;for(i=63;i>=32;--i){for(carry=0,j=i-32,k=i-12;k>j;++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;32>j;j++)x[j]+=carry-(x[31]>>4)*L[j],carry=x[j]>>8,x[j]&=255;for(j=0;32>j;j++)x[j]-=carry*L[j];for(i=0;32>i;i++)x[i+1]+=x[i]>>8,r[i]=255&x[i]}function reduce(r){var i,x=new Float64Array(64);for(i=0;64>i;i++)x[i]=r[i];for(i=0;64>i;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;n>i;i++)sm[64+i]=m[i];for(i=0;32>i;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;64>i;i++)sm[i]=sk[i];for(crypto_hash(h,sm,n+64),reduce(h),i=0;64>i;i++)x[i]=0;for(i=0;32>i;i++)x[i]=r[i];for(i=0;32>i;i++)for(j=0;32>j;j++)x[i+j]+=h[i]*d[j];return modL(sm.subarray(32),x),smlen}function unpackneg(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),pow2523(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)}function crypto_sign_open(m,sm,n,pk){var i,mlen,t=new Uint8Array(32),h=new Uint8Array(64),p=[gf(),gf(),gf(),gf()],q=[gf(),gf(),gf(),gf()];if(mlen=-1,64>n)return-1;if(unpackneg(q,pk))return-1;for(i=0;n>i;i++)m[i]=sm[i];for(i=0;32>i;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;n>i;i++)m[i]=0;return-1}for(i=0;n>i;i++)m[i]=sm[i+64];return mlen=n}function checkLengths(k,n){if(k.length!==crypto_secretbox_KEYBYTES)throw new Error("bad key size");if(n.length!==crypto_secretbox_NONCEBYTES)throw new Error("bad nonce size")}function checkBoxLengths(pk,sk){if(pk.length!==crypto_box_PUBLICKEYBYTES)throw new Error("bad public key size");if(sk.length!==crypto_box_SECRETKEYBYTES)throw new Error("bad secret key size")}function checkArrayTypes(){for(var t,type={}.toString,i=0;i>>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};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;)t0=255&m[mpos+0]|(255&m[mpos+1])<<8,h0+=8191&t0,t1=255&m[mpos+2]|(255&m[mpos+3])<<8,h1+=8191&(t0>>>13|t1<<3),t2=255&m[mpos+4]|(255&m[mpos+5])<<8,h2+=8191&(t1>>>10|t2<<6),t3=255&m[mpos+6]|(255&m[mpos+7])<<8,h3+=8191&(t2>>>7|t3<<9),t4=255&m[mpos+8]|(255&m[mpos+9])<<8,h4+=8191&(t3>>>4|t4<<12),h5+=t4>>>1&8191,t5=255&m[mpos+10]|(255&m[mpos+11])<<8,h6+=8191&(t4>>>14|t5<<2),t6=255&m[mpos+12]|(255&m[mpos+13])<<8,h7+=8191&(t5>>>11|t6<<5),t7=255&m[mpos+14]|(255&m[mpos+15])<<8,h8+=8191&(t6>>>8|t7<<8),h9+=t7>>>5|hibit,c=0,d0=c,d0+=h0*r0,d0+=5*h1*r9,d0+=5*h2*r8,d0+=5*h3*r7,d0+=5*h4*r6,c=d0>>>13,d0&=8191,d0+=5*h5*r5,d0+=5*h6*r4,d0+=5*h7*r3,d0+=5*h8*r2,d0+=5*h9*r1,c+=d0>>>13,d0&=8191,d1=c,d1+=h0*r1,d1+=h1*r0,d1+=5*h2*r9,d1+=5*h3*r8,d1+=5*h4*r7,c=d1>>>13,d1&=8191,d1+=5*h5*r6,d1+=5*h6*r5,d1+=5*h7*r4,d1+=5*h8*r3,d1+=5*h9*r2,c+=d1>>>13,d1&=8191,d2=c,d2+=h0*r2,d2+=h1*r1,d2+=h2*r0,d2+=5*h3*r9,d2+=5*h4*r8,c=d2>>>13,d2&=8191,d2+=5*h5*r7,d2+=5*h6*r6,d2+=5*h7*r5,d2+=5*h8*r4,d2+=5*h9*r3,c+=d2>>>13,d2&=8191,d3=c,d3+=h0*r3,d3+=h1*r2,d3+=h2*r1,d3+=h3*r0,d3+=5*h4*r9,c=d3>>>13,d3&=8191,d3+=5*h5*r8,d3+=5*h6*r7,d3+=5*h7*r6,d3+=5*h8*r5,d3+=5*h9*r4,c+=d3>>>13,d3&=8191,d4=c,d4+=h0*r4,d4+=h1*r3,d4+=h2*r2,d4+=h3*r1,d4+=h4*r0,c=d4>>>13,d4&=8191,d4+=5*h5*r9,d4+=5*h6*r8,d4+=5*h7*r7,d4+=5*h8*r6,d4+=5*h9*r5,c+=d4>>>13,d4&=8191,d5=c,d5+=h0*r5,d5+=h1*r4,d5+=h2*r3,d5+=h3*r2,d5+=h4*r1,c=d5>>>13,d5&=8191,d5+=h5*r0,d5+=5*h6*r9,d5+=5*h7*r8,d5+=5*h8*r7,d5+=5*h9*r6,c+=d5>>>13,d5&=8191,d6=c,d6+=h0*r6,d6+=h1*r5,d6+=h2*r4,d6+=h3*r3,d6+=h4*r2,c=d6>>>13,d6&=8191,d6+=h5*r1,d6+=h6*r0,d6+=5*h7*r9,d6+=5*h8*r8,d6+=5*h9*r7,c+=d6>>>13,d6&=8191,d7=c,d7+=h0*r7,d7+=h1*r6,d7+=h2*r5,d7+=h3*r4,d7+=h4*r3,c=d7>>>13,d7&=8191,d7+=h5*r2,d7+=h6*r1,d7+=h7*r0,d7+=5*h8*r9,d7+=5*h9*r8,c+=d7>>>13,d7&=8191,d8=c,d8+=h0*r8,d8+=h1*r7,d8+=h2*r6,d8+=h3*r5,d8+=h4*r4,c=d8>>>13,d8&=8191,d8+=h5*r3,d8+=h6*r2,d8+=h7*r1,d8+=h8*r0,d8+=5*h9*r9,c+=d8>>>13,d8&=8191,d9=c,d9+=h0*r9,d9+=h1*r8,d9+=h2*r7,d9+=h3*r6,d9+=h4*r5,c=d9>>>13,d9&=8191,d9+=h5*r4,d9+=h6*r3,d9+=h7*r2,d9+=h8*r1,d9+=h9*r0,c+=d9>>>13,d9&=8191,c=(c<<2)+c|0,c=c+d0|0,d0=8191&c,c>>>=13,d1+=c,h0=d0,h1=d1,h2=d2,h3=d3,h4=d4,h5=d5,h6=d6,h7=d7,h8=d8,h9=d9,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;16>i;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;10>i;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;10>i;i++)g[i]=this.h[i]+c,c=g[i]>>>13,g[i]&=8191;for(g[9]-=8192,mask=(g[9]>>>15)-1,i=0;10>i;i++)g[i]&=mask;for(mask=~mask,i=0;10>i;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;8>i;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,want>bytes&&(want=bytes),i=0;want>i;i++)this.buffer[this.leftover+i]=m[mpos+i];if(bytes-=want,mpos+=want,this.leftover+=want,this.leftover<16)return;this.blocks(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;bytes>i;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],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]),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=crypto_secretbox_NONCEBYTES,crypto_box_ZEROBYTES=crypto_secretbox_ZEROBYTES,crypto_box_BOXZEROBYTES=crypto_secretbox_BOXZEROBYTES,crypto_sign_BYTES=64,crypto_sign_PUBLICKEYBYTES=32,crypto_sign_SECRETKEYBYTES=64,crypto_sign_SEEDBYTES=32,crypto_hash_BYTES=64;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:crypto_box,crypto_box_open:crypto_box_open,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:crypto_secretbox_KEYBYTES,crypto_secretbox_NONCEBYTES:crypto_secretbox_NONCEBYTES,crypto_secretbox_ZEROBYTES:crypto_secretbox_ZEROBYTES,crypto_secretbox_BOXZEROBYTES:crypto_secretbox_BOXZEROBYTES,crypto_scalarmult_BYTES:crypto_scalarmult_BYTES,crypto_scalarmult_SCALARBYTES:crypto_scalarmult_SCALARBYTES,crypto_box_PUBLICKEYBYTES:crypto_box_PUBLICKEYBYTES,crypto_box_SECRETKEYBYTES:crypto_box_SECRETKEYBYTES,crypto_box_BEFORENMBYTES:crypto_box_BEFORENMBYTES,crypto_box_NONCEBYTES:crypto_box_NONCEBYTES,crypto_box_ZEROBYTES:crypto_box_ZEROBYTES,crypto_box_BOXZEROBYTES:crypto_box_BOXZEROBYTES,crypto_sign_BYTES:crypto_sign_BYTES,crypto_sign_PUBLICKEYBYTES:crypto_sign_PUBLICKEYBYTES,crypto_sign_SECRETKEYBYTES:crypto_sign_SECRETKEYBYTES,crypto_sign_SEEDBYTES:crypto_sign_SEEDBYTES,crypto_hash_BYTES:crypto_hash_BYTES},nacl.util={},nacl.util.decodeUTF8=function(s){var i,d=unescape(encodeURIComponent(s)),b=new Uint8Array(d.length); for(i=0;ii;i++)s.push(String.fromCharCode(arr[i]));return btoa(s.join(""))},nacl.util.decodeBase64=function(s){if("undefined"==typeof atob)return new Uint8Array(Array.prototype.slice.call(new Buffer(s,"base64"),0));var i,d=atob(s),b=new Uint8Array(d.length);for(i=0;imlen)return null;for(var m=new Uint8Array(mlen),i=0;ii;i++)sm[i]=sig[i];for(i=0;i=0},nacl.sign.keyPair=function(){var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),sk=new Uint8Array(crypto_sign_SECRETKEYBYTES);return crypto_sign_keypair(pk,sk),{publicKey:pk,secretKey:sk}},nacl.sign.keyPair.fromSecretKey=function(secretKey){if(checkArrayTypes(secretKey),secretKey.length!==crypto_sign_SECRETKEYBYTES)throw new Error("bad secret key size");for(var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),i=0;ii;i++)sk[i]=seed[i];return crypto_sign_keypair(pk,sk,!0),{publicKey:pk,secretKey:sk}},nacl.sign.publicKeyLength=crypto_sign_PUBLICKEYBYTES,nacl.sign.secretKeyLength=crypto_sign_SECRETKEYBYTES,nacl.sign.seedLength=crypto_sign_SEEDBYTES,nacl.sign.signatureLength=crypto_sign_BYTES,nacl.hash=function(msg){checkArrayTypes(msg);var h=new Uint8Array(crypto_hash_BYTES);return crypto_hash(h,msg,msg.length),h},nacl.hash.hashLength=crypto_hash_BYTES,nacl.verify=function(x,y){return checkArrayTypes(x,y),0===x.length||0===y.length?!1:x.length!==y.length?!1:0===vn(x,0,y,0,x.length)?!0:!1},nacl.setPRNG=function(fn){randombytes=fn},function(){var crypto;"undefined"!=typeof window?(window.crypto&&window.crypto.getRandomValues?crypto=window.crypto:window.msCrypto&&window.msCrypto.getRandomValues&&(crypto=window.msCrypto),crypto&&nacl.setPRNG(function(x,n){var i,v=new Uint8Array(n);for(crypto.getRandomValues(v),i=0;n>i;i++)x[i]=v[i]})):"undefined"!=typeof require&&(crypto=require("crypto"),crypto&&nacl.setPRNG(function(x,n){var i,v=crypto.randomBytes(n);for(i=0;n>i;i++)x[i]=v[i]}))}()}("undefined"!=typeof module&&module.exports?module.exports:window.nacl=window.nacl||{})}).call(this,require("buffer").Buffer)},{buffer:80,crypto:86}],201:[function(require,module){(function(Buffer){!function(nacl){"use strict";function L32(x,c){return x<>>32-c}function ld32(x,i){var u=255&x[i+3];return u=u<<8|255&x[i+2],u=u<<8|255&x[i+1],u<<8|255&x[i+0]}function dl64(x,i){var h=x[i]<<24|x[i+1]<<16|x[i+2]<<8|x[i+3],l=x[i+4]<<24|x[i+5]<<16|x[i+6]<<8|x[i+7];return new u64(h,l)}function st32(x,j,u){var i;for(i=0;4>i;i++)x[j+i]=255&u,u>>>=8}function ts64(x,i,u){x[i]=u.hi>>24&255,x[i+1]=u.hi>>16&255,x[i+2]=u.hi>>8&255,x[i+3]=255&u.hi,x[i+4]=u.lo>>24&255,x[i+5]=u.lo>>16&255,x[i+6]=u.lo>>8&255,x[i+7]=255&u.lo}function vn(x,xi,y,yi,n){var i,d=0;for(i=0;n>i;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 core(out,inp,k,c,h){var i,j,m,w=new Uint32Array(16),x=new Uint32Array(16),y=new Uint32Array(16),t=new Uint32Array(4);for(i=0;4>i;i++)x[5*i]=ld32(c,4*i),x[1+i]=ld32(k,4*i),x[6+i]=ld32(inp,4*i),x[11+i]=ld32(k,16+4*i);for(i=0;16>i;i++)y[i]=x[i];for(i=0;20>i;i++){for(j=0;4>j;j++){for(m=0;4>m;m++)t[m]=x[(5*j+4*m)%16];for(t[1]^=L32(t[0]+t[3]|0,7),t[2]^=L32(t[1]+t[0]|0,9),t[3]^=L32(t[2]+t[1]|0,13),t[0]^=L32(t[3]+t[2]|0,18),m=0;4>m;m++)w[4*j+(j+m)%4]=t[m]}for(m=0;16>m;m++)x[m]=w[m]}if(h){for(i=0;16>i;i++)x[i]=x[i]+y[i]|0;for(i=0;4>i;i++)x[5*i]=x[5*i]-ld32(c,4*i)|0,x[6+i]=x[6+i]-ld32(inp,4*i)|0;for(i=0;4>i;i++)st32(out,4*i,x[5*i]),st32(out,16+4*i,x[6+i])}else for(i=0;16>i;i++)st32(out,4*i,x[i]+y[i]|0)}function crypto_core_salsa20(out,inp,k,c){return core(out,inp,k,c,!1),0}function crypto_core_hsalsa20(out,inp,k,c){return core(out,inp,k,c,!0),0}function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k){var u,i,z=new Uint8Array(16),x=new Uint8Array(64);if(!b)return 0;for(i=0;16>i;i++)z[i]=0;for(i=0;8>i;i++)z[i]=n[i];for(;b>=64;){for(crypto_core_salsa20(x,z,k,sigma),i=0;64>i;i++)c[cpos+i]=(m?m[mpos+i]:0)^x[i];for(u=1,i=8;16>i;i++)u=u+(255&z[i])|0,z[i]=255&u,u>>>=8;b-=64,cpos+=64,m&&(mpos+=64)}if(b>0)for(crypto_core_salsa20(x,z,k,sigma),i=0;b>i;i++)c[cpos+i]=(m?m[mpos+i]:0)^x[i];return 0}function crypto_stream_salsa20(c,cpos,d,n,k){return crypto_stream_salsa20_xor(c,cpos,null,0,d,n,k)}function crypto_stream(c,cpos,d,n,k){var s=new Uint8Array(32);return crypto_core_hsalsa20(s,n,k,sigma),crypto_stream_salsa20(c,cpos,d,n.subarray(16),s)}function crypto_stream_xor(c,cpos,m,mpos,d,n,k){var s=new Uint8Array(32);return crypto_core_hsalsa20(s,n,k,sigma),crypto_stream_salsa20_xor(c,cpos,m,mpos,d,n.subarray(16),s)}function add1305(h,c){var j,u=0;for(j=0;17>j;j++)u=u+(h[j]+c[j]|0)|0,h[j]=255&u,u>>>=8}function crypto_onetimeauth(out,outpos,m,mpos,n,k){var s,i,j,u,x=new Uint32Array(17),r=new Uint32Array(17),h=new Uint32Array(17),c=new Uint32Array(17),g=new Uint32Array(17);for(j=0;17>j;j++)r[j]=h[j]=0;for(j=0;16>j;j++)r[j]=k[j];for(r[3]&=15,r[4]&=252,r[7]&=15,r[8]&=252,r[11]&=15,r[12]&=252,r[15]&=15;n>0;){for(j=0;17>j;j++)c[j]=0;for(j=0;16>j&&n>j;++j)c[j]=m[mpos+j];for(c[j]=1,mpos+=j,n-=j,add1305(h,c),i=0;17>i;i++)for(x[i]=0,j=0;17>j;j++)x[i]=x[i]+h[j]*(i>=j?r[i-j]:320*r[i+17-j]|0)|0|0;for(i=0;17>i;i++)h[i]=x[i];for(u=0,j=0;16>j;j++)u=u+h[j]|0,h[j]=255&u,u>>>=8;for(u=u+h[16]|0,h[16]=3&u,u=5*(u>>>2)|0,j=0;16>j;j++)u=u+h[j]|0,h[j]=255&u,u>>>=8;u=u+h[16]|0,h[16]=u}for(j=0;17>j;j++)g[j]=h[j];for(add1305(h,minusp),s=0|-(h[16]>>>7),j=0;17>j;j++)h[j]^=s&(g[j]^h[j]);for(j=0;16>j;j++)c[j]=k[j+16];for(c[16]=0,add1305(h,c),j=0;16>j;j++)out[outpos+j]=h[j];return 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(32>d)return-1;for(crypto_stream_xor(c,0,m,0,d,n,k),crypto_onetimeauth(c,16,c,32,d-32,c),i=0;16>i;i++)c[i]=0;return 0}function crypto_secretbox_open(m,c,d,n,k){var i,x=new Uint8Array(32);if(32>d)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;32>i;i++)m[i]=0;return 0}function set25519(r,a){var i;for(i=0;16>i;i++)r[i]=0|a[i]}function car25519(o){var c,i;for(i=0;16>i;i++)o[i]+=65536,c=Math.floor(o[i]/65536),o[(i+1)*(15>i?1:0)]+=c-1+37*(c-1)*(15===i?1:0),o[i]-=65536*c}function sel25519(p,q,b){for(var t,c=~(b-1),i=0;16>i;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;16>i;i++)t[i]=n[i];for(car25519(t),car25519(t),car25519(t),j=0;2>j;j++){for(m[0]=t[0]-65517,i=1;15>i;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;16>i;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;16>i;i++)o[i]=n[2*i]+(n[2*i+1]<<8);o[15]&=32767}function A(o,a,b){var i;for(i=0;16>i;i++)o[i]=a[i]+b[i]|0}function Z(o,a,b){var i;for(i=0;16>i;i++)o[i]=a[i]-b[i]|0}function M(o,a,b){var i,j,t=new Float64Array(31);for(i=0;31>i;i++)t[i]=0;for(i=0;16>i;i++)for(j=0;16>j;j++)t[i+j]+=a[i]*b[j];for(i=0;15>i;i++)t[i]+=38*t[i+16];for(i=0;16>i;i++)o[i]=t[i];car25519(o),car25519(o)}function S(o,a){M(o,a,a)}function inv25519(o,i){var a,c=gf();for(a=0;16>a;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;16>a;a++)o[a]=c[a]}function pow2523(o,i){var a,c=gf();for(a=0;16>a;a++)c[a]=i[a];for(a=250;a>=0;a--)S(c,c),1!==a&&M(c,c,i);for(a=0;16>a;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;31>i;i++)z[i]=n[i];for(z[31]=127&n[31]|64,z[0]&=248,unpack25519(x,p),i=0;16>i;i++)b[i]=x[i],d[i]=a[i]=c[i]=0;for(a[0]=d[0]=1,i=254;i>=0;--i)r=z[i>>>3]>>>(7&i)&1,sel25519(a,b,r),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;16>i;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)}function crypto_box(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)}function crypto_box_open(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)}function add64(){var l,h,i,a=0,b=0,c=0,d=0,m16=65535;for(i=0;i>>16,c+=h&m16,d+=h>>>16;return b+=a>>>16,c+=b>>>16,d+=c>>>16,new u64(c&m16|d<<16,a&m16|b<<16)}function shr64(x,c){return new u64(x.hi>>>c,x.lo>>>c|x.hi<<32-c)}function xor64(){var i,l=0,h=0;for(i=0;ic?(h=x.hi>>>c|x.lo<>>c|x.hi<c&&(h=x.lo>>>c|x.hi<>>c|x.lo<i;i++)z[i]=a[i]=dl64(x,8*i);for(var pos=0;n>=128;){for(i=0;16>i;i++)w[i]=dl64(m,8*i+pos);for(i=0;80>i;i++){for(j=0;8>j;j++)b[j]=a[j];for(t=add64(a[7],Sigma1(a[4]),Ch(a[4],a[5],a[6]),K[i],w[i%16]),b[7]=add64(t,Sigma0(a[0]),Maj(a[0],a[1],a[2])),b[3]=add64(b[3],t),j=0;8>j;j++)a[(j+1)%8]=b[j];if(i%16===15)for(j=0;16>j;j++)w[j]=add64(w[j],w[(j+9)%16],sigma0(w[(j+1)%16]),sigma1(w[(j+14)%16]))}for(i=0;8>i;i++)a[i]=add64(a[i],z[i]),z[i]=a[i];pos+=128,n-=128}for(i=0;8>i;i++)ts64(x,8*i,z[i]);return n}function crypto_hash(out,m,n){var i,h=new Uint8Array(64),x=new Uint8Array(256),b=n;for(i=0;64>i;i++)h[i]=iv[i];for(crypto_hashblocks(h,m,n),n%=128,i=0;256>i;i++)x[i]=0;for(i=0;n>i;i++)x[i]=m[b-n+i];for(x[n]=128,n=256-128*(112>n?1:0),x[n-9]=0,ts64(x,n-8,new u64(b/536870912|0,b<<3)),crypto_hashblocks(h,x,n),i=0;64>i;i++)out[i]=h[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;4>i;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)b=s[i/8|0]>>(7&i)&1,cswap(p,q,b),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;32>i;i++)sk[i+32]=pk[i];return 0}function modL(r,x){var carry,i,j,k;for(i=63;i>=32;--i){for(carry=0,j=i-32,k=i-12;k>j;++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;32>j;j++)x[j]+=carry-(x[31]>>4)*L[j],carry=x[j]>>8,x[j]&=255;for(j=0;32>j;j++)x[j]-=carry*L[j];for(i=0;32>i;i++)x[i+1]+=x[i]>>8,r[i]=255&x[i]}function reduce(r){var i,x=new Float64Array(64);for(i=0;64>i;i++)x[i]=r[i];for(i=0;64>i;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;n>i;i++)sm[64+i]=m[i];for(i=0;32>i;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;64>i;i++)sm[i]=sk[i];for(crypto_hash(h,sm,n+64),reduce(h),i=0;64>i;i++)x[i]=0;for(i=0;32>i;i++)x[i]=r[i];for(i=0;32>i;i++)for(j=0;32>j;j++)x[i+j]+=h[i]*d[j];return modL(sm.subarray(32),x),smlen}function unpackneg(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),pow2523(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)}function crypto_sign_open(m,sm,n,pk){var i,mlen,t=new Uint8Array(32),h=new Uint8Array(64),p=[gf(),gf(),gf(),gf()],q=[gf(),gf(),gf(),gf()];if(mlen=-1,64>n)return-1;if(unpackneg(q,pk))return-1;for(i=0;n>i;i++)m[i]=sm[i];for(i=0;32>i;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;n>i;i++)m[i]=0;return-1}for(i=0;n>i;i++)m[i]=sm[i+64];return mlen=n}function checkLengths(k,n){if(k.length!==crypto_secretbox_KEYBYTES)throw new Error("bad key size");if(n.length!==crypto_secretbox_NONCEBYTES)throw new Error("bad nonce size")}function checkBoxLengths(pk,sk){if(pk.length!==crypto_box_PUBLICKEYBYTES)throw new Error("bad public key size");if(sk.length!==crypto_box_SECRETKEYBYTES)throw new Error("bad secret key size")}function checkArrayTypes(){for(var t,type={}.toString,i=0;ii;i++)s.push(String.fromCharCode(arr[i]));return btoa(s.join(""))},nacl.util.decodeBase64=function(s){if("undefined"==typeof atob)return new Uint8Array(Array.prototype.slice.call(new Buffer(s,"base64"),0));var i,d=atob(s),b=new Uint8Array(d.length);for(i=0;imlen)return null;for(var m=new Uint8Array(mlen),i=0;ii;i++)sm[i]=sig[i];for(i=0;i=0},nacl.sign.keyPair=function(){var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),sk=new Uint8Array(crypto_sign_SECRETKEYBYTES);return crypto_sign_keypair(pk,sk),{publicKey:pk,secretKey:sk}},nacl.sign.keyPair.fromSecretKey=function(secretKey){if(checkArrayTypes(secretKey),secretKey.length!==crypto_sign_SECRETKEYBYTES)throw new Error("bad secret key size");for(var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),i=0;ii;i++)sk[i]=seed[i];return crypto_sign_keypair(pk,sk,!0),{publicKey:pk,secretKey:sk}},nacl.sign.publicKeyLength=crypto_sign_PUBLICKEYBYTES,nacl.sign.secretKeyLength=crypto_sign_SECRETKEYBYTES,nacl.sign.seedLength=crypto_sign_SEEDBYTES,nacl.sign.signatureLength=crypto_sign_BYTES,nacl.hash=function(msg){checkArrayTypes(msg);var h=new Uint8Array(crypto_hash_BYTES);return crypto_hash(h,msg,msg.length),h},nacl.hash.hashLength=crypto_hash_BYTES,nacl.verify=function(x,y){return checkArrayTypes(x,y),0===x.length||0===y.length?!1:x.length!==y.length?!1:0===vn(x,0,y,0,x.length)?!0:!1},nacl.setPRNG=function(fn){randombytes=fn},function(){var crypto;"undefined"!=typeof window?(window.crypto&&window.crypto.getRandomValues?crypto=window.crypto:window.msCrypto&&window.msCrypto.getRandomValues&&(crypto=window.msCrypto),crypto&&nacl.setPRNG(function(x,n){var i,v=new Uint8Array(n);for(crypto.getRandomValues(v),i=0;n>i;i++)x[i]=v[i] })):"undefined"!=typeof require&&(crypto=require("crypto"),crypto&&nacl.setPRNG(function(x,n){var i,v=crypto.randomBytes(n);for(i=0;n>i;i++)x[i]=v[i]}))}()}("undefined"!=typeof module&&module.exports?module.exports:window.nacl=window.nacl||{})}).call(this,require("buffer").Buffer)},{buffer:80,crypto:86}],202:[function(require,module){module.exports={name:"kbpgp",description:"Keybase's PGP Implementation",keywords:["crypto","pgp","keybase"],author:"Maxwell Krohn",version:"2.0.8",license:"BSD-3-Clause",main:"./lib/main.js",directories:{lib:"lib/"},homepage:"http://github.com/keybase/kbpgp",bugs:"https://github.com/keybase/kbpgp/issues",repository:{type:"git",url:"git://github.com/keybase/kbpgp.git"},dependencies:{bn:"^1.0.0","deep-equal":">=0.2.1","iced-error":">=0.0.9","iced-runtime":">=0.0.1","keybase-compressjs":"^1.0.1-c","keybase-ecurve":"^1.0.0","pgp-utils":">=0.0.28",purepack:">=1.0.1",triplesec:">=3.0.19",tweetnacl:"^0.12.2"},devDependencies:{browserify:"^5.9.1",colors:"0.6.2","iced-coffee-script":"1.7.1-c","iced-test":">=0.0.21",icsify:"0.6.0",minimist:"0.0.8",optimist:"0.6.1","uglify-js":"^2.4.13"}}},{}]},{},[29])(29)});