Created
October 25, 2015 14:15
-
-
Save nissoh/12ccc9ff149661bcdf86 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// require() some stuff from npm (like you were using browserify) | |
// and then hit Run Code to run it on the right | |
var Api = require('anx-api'); | |
// Create a new instance with api target | |
var api = new Api({ | |
target: 'https://api.appnexus.com' | |
}); | |
api.login('username', 'password').then(function (token) { | |
// The api object is now logged in. Optionally store the token. | |
}) |
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){},{}],2:[function(require,module,exports){var util=require("util/");var pSlice=Array.prototype.slice;var hasOwn=Object.prototype.hasOwnProperty;var assert=module.exports=ok;assert.AssertionError=function AssertionError(options){this.name="AssertionError";this.actual=options.actual;this.expected=options.expected;this.operator=options.operator;if(options.message){this.message=options.message;this.generatedMessage=false}else{this.message=getMessage(this);this.generatedMessage=true}var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace){Error.captureStackTrace(this,stackStartFunction)}else{var err=new Error;if(err.stack){var out=err.stack;var fn_name=stackStartFunction.name;var 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);function replacer(key,value){if(util.isUndefined(value)){return""+value}if(util.isNumber(value)&&(isNaN(value)||!isFinite(value))){return value.toString()}if(util.isFunction(value)||util.isRegExp(value)){return value.toString()}return value}function truncate(s,n){if(util.isString(s)){return s.length<n?s:s.slice(0,n)}else{return s}}function getMessage(self){return truncate(JSON.stringify(self.actual,replacer),128)+" "+self.operator+" "+truncate(JSON.stringify(self.expected,replacer),128)}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}assert.fail=fail;function ok(value,message){if(!value)fail(value,true,message,"==",assert.ok)}assert.ok=ok;assert.equal=function equal(actual,expected,message){if(actual!=expected)fail(actual,expected,message,"==",assert.equal)};assert.notEqual=function notEqual(actual,expected,message){if(actual==expected){fail(actual,expected,message,"!=",assert.notEqual)}};assert.deepEqual=function deepEqual(actual,expected,message){if(!_deepEqual(actual,expected)){fail(actual,expected,message,"deepEqual",assert.deepEqual)}};function _deepEqual(actual,expected){if(actual===expected){return true}else if(util.isBuffer(actual)&&util.isBuffer(expected)){if(actual.length!=expected.length)return false;for(var i=0;i<actual.length;i++){if(actual[i]!==expected[i])return false}return true}else if(util.isDate(actual)&&util.isDate(expected)){return actual.getTime()===expected.getTime()}else if(util.isRegExp(actual)&&util.isRegExp(expected)){return actual.source===expected.source&&actual.global===expected.global&&actual.multiline===expected.multiline&&actual.lastIndex===expected.lastIndex&&actual.ignoreCase===expected.ignoreCase}else if(!util.isObject(actual)&&!util.isObject(expected)){return actual==expected}else{return objEquiv(actual,expected)}}function isArguments(object){return Object.prototype.toString.call(object)=="[object Arguments]"}function objEquiv(a,b){if(util.isNullOrUndefined(a)||util.isNullOrUndefined(b))return false;if(a.prototype!==b.prototype)return false;if(isArguments(a)){if(!isArguments(b)){return false}a=pSlice.call(a);b=pSlice.call(b);return _deepEqual(a,b)}try{var ka=objectKeys(a),kb=objectKeys(b),key,i}catch(e){return false}if(ka.length!=kb.length)return false;ka.sort();kb.sort();for(i=ka.length-1;i>=0;i--){if(ka[i]!=kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key]))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}else if(actual instanceof expected){return true}else if(expected.call({},actual)===true){return true}return false}function _throws(shouldThrow,block,expected,message){var actual;if(util.isString(expected)){message=expected;expected=null}try{block()}catch(e){actual=e}message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}if(!shouldThrow&&expectedException(actual,expected)){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws.apply(this,[true].concat(pSlice.call(arguments)))};assert.doesNotThrow=function(block,message){_throws.apply(this,[false].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){if(hasOwn.call(obj,key))keys.push(key)}return keys}},{"util/":191}],3:[function(require,module,exports){arguments[4][1][0].apply(exports,arguments)},{dup:1}],4:[function(require,module,exports){"use strict";var TYPED_OK=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";exports.assign=function(obj){var sources=Array.prototype.slice.call(arguments,1);while(sources.length){var source=sources.shift();if(!source){continue}if(typeof source!=="object"){throw new TypeError(source+"must be non-object")}for(var p in source){if(source.hasOwnProperty(p)){obj[p]=source[p]}}}return obj};exports.shrinkBuf=function(buf,size){if(buf.length===size){return buf}if(buf.subarray){return buf.subarray(0,size)}buf.length=size;return buf};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray){dest.set(src.subarray(src_offs,src_offs+len),dest_offs);return}for(var i=0;i<len;i++){dest[dest_offs+i]=src[src_offs+i]}},flattenChunks:function(chunks){var i,l,len,pos,chunk,result;len=0;for(i=0,l=chunks.length;i<l;i++){len+=chunks[i].length}result=new Uint8Array(len);pos=0;for(i=0,l=chunks.length;i<l;i++){chunk=chunks[i];result.set(chunk,pos);pos+=chunk.length}return result}};var fnUntyped={arraySet:function(dest,src,src_offs,len,dest_offs){for(var i=0;i<len;i++){dest[dest_offs+i]=src[src_offs+i]}},flattenChunks:function(chunks){return[].concat.apply([],chunks)}};exports.setTyped=function(on){if(on){exports.Buf8=Uint8Array;exports.Buf16=Uint16Array;exports.Buf32=Int32Array;exports.assign(exports,fnTyped)}else{exports.Buf8=Array;exports.Buf16=Array;exports.Buf32=Array;exports.assign(exports,fnUntyped)}};exports.setTyped(TYPED_OK)},{}],5:[function(require,module,exports){"use strict";function adler32(adler,buf,len,pos){var s1=adler&65535|0,s2=adler>>>16&65535|0,n=0;while(len!==0){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},{}],6:[function(require,module,exports){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}},{}],7:[function(require,module,exports){"use strict";function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}table[n]=c}return table}var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc=crc^-1;for(var i=pos;i<end;i++){crc=crc>>>8^t[(crc^buf[i])&255]}return crc^-1}module.exports=crc32},{}],8:[function(require,module,exports){"use strict";var utils=require("../utils/common");var trees=require("./trees");var adler32=require("./adler32");var crc32=require("./crc32");var msg=require("./messages");var Z_NO_FLUSH=0;var Z_PARTIAL_FLUSH=1;var Z_FULL_FLUSH=3;var Z_FINISH=4;var Z_BLOCK=5;var Z_OK=0;var Z_STREAM_END=1;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_BUF_ERROR=-5;var Z_DEFAULT_COMPRESSION=-1;var Z_FILTERED=1;var Z_HUFFMAN_ONLY=2;var Z_RLE=3;var Z_FIXED=4;var Z_DEFAULT_STRATEGY=0;var Z_UNKNOWN=2;var Z_DEFLATED=8;var MAX_MEM_LEVEL=9;var MAX_WBITS=15;var DEF_MEM_LEVEL=8;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var MIN_MATCH=3;var MAX_MATCH=258;var MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1;var PRESET_DICT=32;var INIT_STATE=42;var EXTRA_STATE=69;var NAME_STATE=73;var COMMENT_STATE=91;var HCRC_STATE=103;var BUSY_STATE=113;var FINISH_STATE=666;var BS_NEED_MORE=1;var BS_BLOCK_DONE=2;var BS_FINISH_STARTED=3;var BS_FINISH_DONE=4;var OS_CODE=3;function err(strm,errorCode){strm.msg=msg[errorCode];return errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}function flush_pending(strm){var s=strm.state;var len=s.pending;if(len>strm.avail_out){len=strm.avail_out}if(len===0){return}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;if(s.pending===0){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++]=b&255}function read_buf(strm,buf,start,size){var len=strm.avail_in;if(len>size){len=size}if(len===0){return 0}strm.avail_in-=len;utils.arraySet(buf,strm.input,strm.next_in,len,start);if(strm.state.wrap===1){strm.adler=adler32(strm.adler,buf,len,start)}else if(strm.state.wrap===2){strm.adler=crc32(strm.adler,buf,len,start)}strm.next_in+=len;strm.total_in+=len;return len}function longest_match(s,cur_match){var chain_length=s.max_chain_length;var scan=s.strstart;var match;var len;var best_len=s.prev_length;var nice_match=s.nice_match;var limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0;var _win=s.window;var wmask=s.w_mask;var prev=s.prev;var strend=s.strstart+MAX_MATCH;var scan_end1=_win[scan+best_len-1];var scan_end=_win[scan+best_len];if(s.prev_length>=s.good_match){chain_length>>=2}if(nice_match>s.lookahead){nice_match=s.lookahead}do{match=cur_match;if(_win[match+best_len]!==scan_end||_win[match+best_len-1]!==scan_end1||_win[match]!==_win[scan]||_win[++match]!==_win[scan+1]){continue}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]&&scan<strend);len=MAX_MATCH-(strend-scan);scan=strend-MAX_MATCH;if(len>best_len){s.match_start=cur_match;best_len=len;if(len>=nice_match){break}scan_end1=_win[scan+best_len-1];scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&--chain_length!==0);if(best_len<=s.lookahead){return best_len}return s.lookahead}function fill_window(s){var _w_size=s.w_size;var p,n,m,more,str;do{more=s.window_size-s.lookahead-s.strstart;if(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(s.strm.avail_in===0){break}n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more);s.lookahead+=n;if(s.lookahead+s.insert>=MIN_MATCH){str=s.strstart-s.insert;s.ins_h=s.window[str];s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+1])&s.hash_mask;while(s.insert){s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+MIN_MATCH-1])&s.hash_mask;s.prev[str&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=str;str++;s.insert--;if(s.lookahead+s.insert<MIN_MATCH){break}}}}while(s.lookahead<MIN_LOOKAHEAD&&s.strm.avail_in!==0)}function deflate_stored(s,flush){var max_block_size=65535;if(max_block_size>s.pending_buf_size-5){max_block_size=s.pending_buf_size-5}for(;;){if(s.lookahead<=1){fill_window(s);if(s.lookahead===0&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.strstart+=s.lookahead;s.lookahead=0;var max_start=s.block_start+max_block_size;if(s.strstart===0||s.strstart>=max_start){s.lookahead=s.strstart-max_start;s.strstart=max_start;flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.strstart>s.block_start){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_NEED_MORE}function deflate_fast(s,flush){var hash_head;var bflush;for(;;){if(s.lookahead<MIN_LOOKAHEAD){fill_window(s);if(s.lookahead<MIN_LOOKAHEAD&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}hash_head=0;if(s.lookahead>=MIN_MATCH){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}if(hash_head!==0&&s.strstart-hash_head<=s.w_size-MIN_LOOKAHEAD){s.match_length=longest_match(s,hash_head)}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;if(s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do{s.strstart++;s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}while(--s.match_length!==0);s.strstart++}else{s.strstart+=s.match_length;s.match_length=0;s.ins_h=s.window[s.strstart];s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+1])&s.hash_mask}}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=s.strstart<MIN_MATCH-1?s.strstart:MIN_MATCH-1;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_slow(s,flush){var hash_head;var bflush;var max_insert;for(;;){if(s.lookahead<MIN_LOOKAHEAD){fill_window(s);if(s.lookahead<MIN_LOOKAHEAD&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}hash_head=0;if(s.lookahead>=MIN_MATCH){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}s.prev_length=s.match_length;s.prev_match=s.match_start;s.match_length=MIN_MATCH-1;if(hash_head!==0&&s.prev_length<s.max_lazy_match&&s.strstart-hash_head<=s.w_size-MIN_LOOKAHEAD){s.match_length=longest_match(s,hash_head);if(s.match_length<=5&&(s.strategy===Z_FILTERED||s.match_length===MIN_MATCH&&s.strstart-s.match_start>4096)){s.match_length=MIN_MATCH-1}}if(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{if(++s.strstart<=max_insert){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}}while(--s.prev_length!==0);s.match_available=0;s.match_length=MIN_MATCH-1;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}else if(s.match_available){bflush=trees._tr_tally(s,0,s.window[s.strstart-1]);if(bflush){flush_block_only(s,false)}s.strstart++;s.lookahead--;if(s.strm.avail_out===0){return BS_NEED_MORE}}else{s.match_available=1;s.strstart++;s.lookahead--}}if(s.match_available){bflush=trees._tr_tally(s,0,s.window[s.strstart-1]);s.match_available=0}s.insert=s.strstart<MIN_MATCH-1?s.strstart:MIN_MATCH-1;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_rle(s,flush){var bflush;var prev;var scan,strend;var _win=s.window;for(;;){if(s.lookahead<=MAX_MATCH){fill_window(s);if(s.lookahead<=MAX_MATCH&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.match_length=0;if(s.lookahead>=MIN_MATCH&&s.strstart>0){scan=s.strstart-1;prev=_win[scan];if(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]){strend=s.strstart+MAX_MATCH;do{}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]&&scan<strend);s.match_length=MAX_MATCH-(strend-scan);if(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}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_huff(s,flush){var bflush;for(;;){if(s.lookahead===0){fill_window(s);if(s.lookahead===0){if(flush===Z_NO_FLUSH){return BS_NEED_MORE}break}}s.match_length=0;bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}var 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};var configuration_table;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)];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(HEAP_SIZE*2);this.dyn_dtree=new utils.Buf16((2*D_CODES+1)*2);this.bl_tree=new utils.Buf16((2*BL_CODES+1)*2);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;if(!strm||!strm.state){return err(strm,Z_STREAM_ERROR)}strm.total_in=strm.total_out=0;strm.data_type=Z_UNKNOWN;s=strm.state;s.pending=0;s.pending_out=0;if(s.wrap<0){s.wrap=-s.wrap}s.status=s.wrap?INIT_STATE:BUSY_STATE;strm.adler=s.wrap===2?0:1;s.last_flush=Z_NO_FLUSH;trees._tr_init(s);return Z_OK}function deflateReset(strm){var ret=deflateResetKeep(strm);if(ret===Z_OK){lm_init(strm.state)}return ret}function deflateSetHeader(strm,head){if(!strm||!strm.state){return Z_STREAM_ERROR}if(strm.state.wrap!==2){return Z_STREAM_ERROR}strm.state.gzhead=head;return Z_OK}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm){return Z_STREAM_ERROR}var wrap=1;if(level===Z_DEFAULT_COMPRESSION){level=6}if(windowBits<0){wrap=0;windowBits=-windowBits}else if(windowBits>15){wrap=2;windowBits-=16}if(memLevel<1||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||windowBits<8||windowBits>15||level<0||level>9||strategy<0||strategy>Z_FIXED){return err(strm,Z_STREAM_ERROR)}if(windowBits===8){windowBits=9}var s=new DeflateState;strm.state=s;s.strm=strm;s.wrap=wrap;s.gzhead=null;s.w_bits=windowBits;s.w_size=1<<s.w_bits;s.w_mask=s.w_size-1;s.hash_bits=memLevel+7;s.hash_size=1<<s.hash_bits;s.hash_mask=s.hash_size-1;s.hash_shift=~~((s.hash_bits+MIN_MATCH-1)/MIN_MATCH);s.window=new utils.Buf8(s.w_size*2);s.head=new utils.Buf16(s.hash_size);s.prev=new utils.Buf16(s.w_size);s.lit_bufsize=1<<memLevel+6;s.pending_buf_size=s.lit_bufsize*4;s.pending_buf=new utils.Buf8(s.pending_buf_size);s.d_buf=s.lit_bufsize>>1;s.l_buf=(1+2)*s.lit_bufsize;s.level=level;s.strategy=strategy;s.method=method;return 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;var beg,val;if(!strm||!strm.state||flush>Z_BLOCK||flush<0){return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR}s=strm.state;if(!strm.output||!strm.input&&strm.avail_in!==0||s.status===FINISH_STATE&&flush!==Z_FINISH){return err(strm,strm.avail_out===0?Z_BUF_ERROR:Z_STREAM_ERROR)}s.strm=strm;old_flush=s.last_flush;s.last_flush=flush;if(s.status===INIT_STATE){if(s.wrap===2){strm.adler=0;put_byte(s,31);put_byte(s,139);put_byte(s,8);if(!s.gzhead){put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,OS_CODE);s.status=BUSY_STATE}else{put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(!s.gzhead.extra?0:4)+(!s.gzhead.name?0:8)+(!s.gzhead.comment?0:16));put_byte(s,s.gzhead.time&255);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,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,s.gzhead.os&255);if(s.gzhead.extra&&s.gzhead.extra.length){put_byte(s,s.gzhead.extra.length&255);put_byte(s,s.gzhead.extra.length>>8&255)}if(s.gzhead.hcrc){strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)}s.gzindex=0;s.status=EXTRA_STATE}}else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8;var level_flags=-1;if(s.strategy>=Z_HUFFMAN_ONLY||s.level<2){level_flags=0}else if(s.level<6){level_flags=1}else if(s.level===6){level_flags=2}else{level_flags=3}header|=level_flags<<6;if(s.strstart!==0){header|=PRESET_DICT}header+=31-header%31;s.status=BUSY_STATE;putShortMSB(s,header);if(s.strstart!==0){putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}strm.adler=1}}if(s.status===EXTRA_STATE){if(s.gzhead.extra){beg=s.pending;while(s.gzindex<(s.gzhead.extra.length&65535)){if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){break}}put_byte(s,s.gzhead.extra[s.gzindex]&255);s.gzindex++}if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(s.gzindex===s.gzhead.extra.length){s.gzindex=0;s.status=NAME_STATE}}else{s.status=NAME_STATE}}if(s.status===NAME_STATE){if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindex<s.gzhead.name.length){val=s.gzhead.name.charCodeAt(s.gzindex++)&255}else{val=0}put_byte(s,val)}while(val!==0);if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.gzindex=0;s.status=COMMENT_STATE}}else{s.status=COMMENT_STATE}}if(s.status===COMMENT_STATE){if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindex<s.gzhead.comment.length){val=s.gzhead.comment.charCodeAt(s.gzindex++)&255}else{val=0}put_byte(s,val)}while(val!==0);if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.status=HCRC_STATE}}else{s.status=HCRC_STATE}}if(s.status===HCRC_STATE){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size){flush_pending(strm)}if(s.pending+2<=s.pending_buf_size){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);strm.adler=0;s.status=BUSY_STATE}}else{s.status=BUSY_STATE}}if(s.pending!==0){flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}else if(strm.avail_in===0&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH){return err(strm,Z_BUF_ERROR)}if(s.status===FINISH_STATE&&strm.avail_in!==0){return err(strm,Z_BUF_ERROR)}if(strm.avail_in!==0||s.lookahead!==0||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}if(bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED){if(strm.avail_out===0){s.last_flush=-1}return Z_OK}if(bstate===BS_BLOCK_DONE){if(flush===Z_PARTIAL_FLUSH){trees._tr_align(s)}else if(flush!==Z_BLOCK){trees._tr_stored_block(s,0,0,false);if(flush===Z_FULL_FLUSH){zero(s.head);if(s.lookahead===0){s.strstart=0;s.block_start=0;s.insert=0}}}flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}}if(flush!==Z_FINISH){return Z_OK}if(s.wrap<=0){return Z_STREAM_END}if(s.wrap===2){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);put_byte(s,strm.adler>>16&255);put_byte(s,strm.adler>>24&255);put_byte(s,strm.total_in&255);put_byte(s,strm.total_in>>8&255);put_byte(s,strm.total_in>>16&255);put_byte(s,strm.total_in>>24&255)}else{putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}flush_pending(strm);if(s.wrap>0){s.wrap=-s.wrap}return s.pending!==0?Z_OK:Z_STREAM_END}function deflateEnd(strm){var status;if(!strm||!strm.state){return Z_STREAM_ERROR}status=strm.state.status;if(status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE){return err(strm,Z_STREAM_ERROR)}strm.state=null;return status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK}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":4,"./adler32":5,"./crc32":7,"./messages":12,"./trees":13}],9:[function(require,module,exports){"use strict";var BAD=30;var TYPE=12;module.exports=function inflate_fast(strm,start){var state;var _in;var last;var _out;var beg;var end;var dmax;var wsize;var whave;var wnext;var window;var hold;var bits;var lcode;var dcode;var lmask;var dmask;var here;var op;var len;var dist;var from;var from_source;var 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<<state.lenbits)-1;dmask=(1<<state.distbits)-1;top:do{if(bits<15){hold+=input[_in++]<<bits;bits+=8;hold+=input[_in++]<<bits;bits+=8}here=lcode[hold&lmask];dolen:for(;;){op=here>>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op===0){output[_out++]=here&65535}else if(op&16){len=here&65535;op&=15;if(op){if(bits<op){hold+=input[_in++]<<bits;bits+=8}len+=hold&(1<<op)-1;hold>>>=op;bits-=op}if(bits<15){hold+=input[_in++]<<bits;bits+=8;hold+=input[_in++]<<bits;bits+=8}here=dcode[hold&dmask];dodist:for(;;){op=here>>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op&16){dist=here&65535;op&=15;if(bits<op){hold+=input[_in++]<<bits;bits+=8;if(bits<op){hold+=input[_in++]<<bits;bits+=8}}dist+=hold&(1<<op)-1;if(dist>dmax){strm.msg="invalid distance too far back";state.mode=BAD;break top}hold>>>=op;bits-=op;op=_out-beg;if(dist>op){op=dist-op;if(op>whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break top}}from=0;from_source=window;if(wnext===0){from+=wsize-op;if(op<len){len-=op;do{output[_out++]=window[from++]}while(--op);from=_out-dist;from_source=output}}else if(wnext<op){from+=wsize+wnext-op;op-=wnext;if(op<len){len-=op;do{output[_out++]=window[from++]}while(--op);from=0;if(wnext<len){op=wnext;len-=op;do{output[_out++]=window[from++]}while(--op);from=_out-dist;from_source=output}}}else{from+=wnext-op;if(op<len){len-=op;do{output[_out++]=window[from++]}while(--op);from=_out-dist;from_source=output}}while(len>2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3}if(len){output[_out++]=from_source[from++];if(len>1){output[_out++]=from_source[from++]}}}else{from=_out-dist;do{output[_out++]=output[from++];output[_out++]=output[from++];output[_out++]=output[from++];len-=3}while(len>2);if(len){output[_out++]=output[from++];if(len>1){output[_out++]=output[from++]}}}}else if((op&64)===0){here=dcode[(here&65535)+(hold&(1<<op)-1)];continue dodist}else{strm.msg="invalid distance code";state.mode=BAD;break top}break}}else if((op&64)===0){here=lcode[(here&65535)+(hold&(1<<op)-1)];continue dolen}else if(op&32){state.mode=TYPE;break top}else{strm.msg="invalid literal/length code";state.mode=BAD;break top}break}}while(_in<last&&_out<end);len=bits>>3;_in-=len;bits-=len<<3;hold&=(1<<bits)-1;strm.next_in=_in;strm.next_out=_out;strm.avail_in=_in<last?5+(last-_in):5-(_in-last);strm.avail_out=_out<end?257+(end-_out):257-(_out-end); | |
state.hold=hold;state.bits=bits;return}},{}],10:[function(require,module,exports){"use strict";var utils=require("../utils/common");var adler32=require("./adler32");var crc32=require("./crc32");var inflate_fast=require("./inffast");var inflate_table=require("./inftrees");var CODES=0;var LENS=1;var DISTS=2;var Z_FINISH=4;var Z_BLOCK=5;var Z_TREES=6;var Z_OK=0;var Z_STREAM_END=1;var Z_NEED_DICT=2;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_MEM_ERROR=-4;var Z_BUF_ERROR=-5;var Z_DEFLATED=8;var HEAD=1;var FLAGS=2;var TIME=3;var OS=4;var EXLEN=5;var EXTRA=6;var NAME=7;var COMMENT=8;var HCRC=9;var DICTID=10;var DICT=11;var TYPE=12;var TYPEDO=13;var STORED=14;var COPY_=15;var COPY=16;var TABLE=17;var LENLENS=18;var CODELENS=19;var LEN_=20;var LEN=21;var LENEXT=22;var DIST=23;var DISTEXT=24;var MATCH=25;var LIT=26;var CHECK=27;var LENGTH=28;var DONE=29;var BAD=30;var MEM=31;var SYNC=32;var ENOUGH_LENS=852;var ENOUGH_DISTS=592;var MAX_WBITS=15;var DEF_WBITS=MAX_WBITS;function ZSWAP32(q){return(q>>>24&255)+(q>>>8&65280)+((q&65280)<<8)+((q&255)<<24)}function InflateState(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;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;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg="";if(state.wrap){strm.adler=state.wrap&1}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;return Z_OK}function inflateReset(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm)}function inflateReset2(strm,windowBits){var wrap;var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if(windowBits<0){wrap=0;windowBits=-windowBits}else{wrap=(windowBits>>4)+1;if(windowBits<48){windowBits&=15}}if(windowBits&&(windowBits<8||windowBits>15)){return Z_STREAM_ERROR}if(state.window!==null&&state.wbits!==windowBits){state.window=null}state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm)}function inflateInit2(strm,windowBits){var ret;var state;if(!strm){return Z_STREAM_ERROR}state=new InflateState;strm.state=state;state.window=null;ret=inflateReset2(strm,windowBits);if(ret!==Z_OK){strm.state=null}return ret}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}var virgin=true;var lenfix,distfix;function fixedtables(state){if(virgin){var sym;lenfix=new utils.Buf32(512);distfix=new utils.Buf32(32);sym=0;while(sym<144){state.lens[sym++]=8}while(sym<256){state.lens[sym++]=9}while(sym<280){state.lens[sym++]=7}while(sym<288){state.lens[sym++]=8}inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});sym=0;while(sym<32){state.lens[sym++]=5}inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5});virgin=false}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5}function updatewindow(strm,src,end,copy){var dist;var state=strm.state;if(state.window===null){state.wsize=1<<state.wbits;state.wnext=0;state.whave=0;state.window=new utils.Buf8(state.wsize)}if(copy>=state.wsize){utils.arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize}else{dist=state.wsize-state.wnext;if(dist>copy){dist=copy}utils.arraySet(state.window,src,end-copy,dist,state.wnext);copy-=dist;if(copy){utils.arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize}else{state.wnext+=dist;if(state.wnext===state.wsize){state.wnext=0}if(state.whave<state.wsize){state.whave+=dist}}}return 0}function inflate(strm,flush){var state;var input,output;var next;var put;var have,left;var hold;var bits;var _in,_out;var copy;var from;var from_source;var here=0;var here_bits,here_op,here_val;var last_bits,last_op,last_val;var len;var ret;var hbuf=new utils.Buf8(4);var opts;var n;var order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!strm||!strm.state||!strm.output||!strm.input&&strm.avail_in!==0){return Z_STREAM_ERROR}state=strm.state;if(state.mode===TYPE){state.mode=TYPEDO}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;_in=have;_out=left;ret=Z_OK;inf_leave:for(;;){switch(state.mode){case HEAD:if(state.wrap===0){state.mode=TYPEDO;break}while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.wrap&2&&hold===35615){state.check=0;hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0);hold=0;bits=0;state.mode=FLAGS;break}state.flags=0;if(state.head){state.head.done=false}if(!(state.wrap&1)||(((hold&255)<<8)+(hold>>8))%31){strm.msg="incorrect header check";state.mode=BAD;break}if((hold&15)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}hold>>>=4;bits-=4;len=(hold&15)+8;if(state.wbits===0){state.wbits=len}else if(len>state.wbits){strm.msg="invalid window size";state.mode=BAD;break}state.dmax=1<<len;strm.adler=state.check=1;state.mode=hold&512?DICTID:TYPE;hold=0;bits=0;break;case FLAGS:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.flags=hold;if((state.flags&255)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}if(state.flags&57344){strm.msg="unknown header flags set";state.mode=BAD;break}if(state.head){state.head.text=hold>>8&1}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=TIME;case TIME:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.head){state.head.time=hold}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>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:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.head){state.head.xflags=hold&255;state.head.os=hold>>8}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=EXLEN;case EXLEN:if(state.flags&1024){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.length=hold;if(state.head){state.head.extra_len=hold}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0}else if(state.head){state.head.extra=null}state.mode=EXTRA;case EXTRA:if(state.flags&1024){copy=state.length;if(copy>have){copy=have}if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra){state.head.extra=new Array(state.head.extra_len)}utils.arraySet(state.head.extra,input,next,copy,len)}if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;state.length-=copy}if(state.length){break inf_leave}}state.length=0;state.mode=NAME;case NAME:if(state.flags&2048){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.name+=String.fromCharCode(len)}}while(len&©<have);if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;if(len){break inf_leave}}else if(state.head){state.head.name=null}state.length=0;state.mode=COMMENT;case COMMENT:if(state.flags&4096){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.comment+=String.fromCharCode(len)}}while(len&©<have);if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;if(len){break inf_leave}}else if(state.head){state.head.comment=null}state.mode=HCRC;case HCRC:if(state.flags&512){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(hold!==(state.check&65535)){strm.msg="header crc mismatch";state.mode=BAD;break}hold=0;bits=0}if(state.head){state.head.hcrc=state.flags>>9&1;state.head.done=true}strm.adler=state.check=0;state.mode=TYPE;break;case DICTID:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}strm.adler=state.check=ZSWAP32(hold);hold=0;bits=0;state.mode=DICT;case DICT:if(state.havedict===0){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;return Z_NEED_DICT}strm.adler=state.check=1;state.mode=TYPE;case TYPE:if(flush===Z_BLOCK||flush===Z_TREES){break inf_leave}case TYPEDO:if(state.last){hold>>>=bits&7;bits-=bits&7;state.mode=CHECK;break}while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.last=hold&1;hold>>>=1;bits-=1;switch(hold&3){case 0:state.mode=STORED;break;case 1:fixedtables(state);state.mode=LEN_;if(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:hold>>>=bits&7;bits-=bits&7;while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if((hold&65535)!==(hold>>>16^65535)){strm.msg="invalid stored block lengths";state.mode=BAD;break}state.length=hold&65535;hold=0;bits=0;state.mode=COPY_;if(flush===Z_TREES){break inf_leave}case COPY_:state.mode=COPY;case COPY:copy=state.length;if(copy){if(copy>have){copy=have}if(copy>left){copy=left}if(copy===0){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:while(bits<14){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.nlen=(hold&31)+257;hold>>>=5;bits-=5;state.ndist=(hold&31)+1;hold>>>=5;bits-=5;state.ncode=(hold&15)+4;hold>>>=4;bits-=4;if(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:while(state.have<state.ncode){while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.lens[order[state.have++]]=hold&7;hold>>>=3;bits-=3}while(state.have<19){state.lens[order[state.have++]]=0}state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid code lengths set";state.mode=BAD;break}state.have=0;state.mode=CODELENS;case CODELENS:while(state.have<state.nlen+state.ndist){for(;;){here=state.lencode[hold&(1<<state.lenbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(here_val<16){hold>>>=here_bits;bits-=here_bits;state.lens[state.have++]=here_val}else{if(here_val===16){n=here_bits+2;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;if(state.have===0){strm.msg="invalid bit length repeat";state.mode=BAD;break}len=state.lens[state.have-1];copy=3+(hold&3);hold>>>=2;bits-=2}else if(here_val===17){n=here_bits+3;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;len=0;copy=3+(hold&7);hold>>>=3;bits-=3}else{n=here_bits+7;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;len=0;copy=11+(hold&127);hold>>>=7;bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat";state.mode=BAD;break}while(copy--){state.lens[state.have++]=len}}}if(state.mode===BAD){break}if(state.lens[256]===0){strm.msg="invalid code -- missing end-of-block";state.mode=BAD;break}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;if(ret){strm.msg="invalid literal/lengths set";state.mode=BAD;break}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;if(ret){strm.msg="invalid distances set";state.mode=BAD;break}state.mode=LEN_;if(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;if(state.mode===TYPE){state.back=-1}break}state.back=0;for(;;){here=state.lencode[hold&(1<<state.lenbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(here_op&&(here_op&240)===0){last_bits=here_bits;last_op=here_op;last_val=here_val;for(;;){here=state.lencode[last_val+((hold&(1<<last_bits+last_op)-1)>>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;state.length=here_val;if(here_op===0){state.mode=LIT;break}if(here_op&32){state.back=-1;state.mode=TYPE;break}if(here_op&64){strm.msg="invalid literal/length code";state.mode=BAD;break}state.extra=here_op&15;state.mode=LENEXT;case LENEXT:if(state.extra){n=state.extra;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.length+=hold&(1<<state.extra)-1;hold>>>=state.extra;bits-=state.extra;state.back+=state.extra}state.was=state.length;state.mode=DIST;case DIST:for(;;){here=state.distcode[hold&(1<<state.distbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if((here_op&240)===0){last_bits=here_bits;last_op=here_op;last_val=here_val;for(;;){here=state.distcode[last_val+((hold&(1<<last_bits+last_op)-1)>>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;if(here_op&64){strm.msg="invalid distance code";state.mode=BAD;break}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;case DISTEXT:if(state.extra){n=state.extra;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.offset+=hold&(1<<state.extra)-1;hold>>>=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(left===0){break inf_leave}copy=_out-left;if(state.offset>copy){copy=state.offset-copy;if(copy>state.whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break}}if(copy>state.wnext){copy-=state.wnext;from=state.wsize-copy}else{from=state.wnext-copy}if(copy>state.length){copy=state.length}from_source=state.window}else{from_source=output;from=put-state.offset;copy=state.length}if(copy>left){copy=left}left-=copy;state.length-=copy;do{output[put++]=from_source[from++]}while(--copy);if(state.length===0){state.mode=LEN}break;case LIT:if(left===0){break inf_leave}output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){while(bits<32){if(have===0){break inf_leave}have--;hold|=input[next++]<<bits;bits+=8}_out-=left;strm.total_out+=_out;state.total+=_out;if(_out){strm.adler=state.check=state.flags?crc32(state.check,output,_out,put-_out):adler32(state.check,output,_out,put-_out)}_out=left;if((state.flags?hold:ZSWAP32(hold))!==state.check){strm.msg="incorrect data check";state.mode=BAD;break}hold=0;bits=0}state.mode=LENGTH;case LENGTH:if(state.wrap&&state.flags){while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(hold!==(state.total&4294967295)){strm.msg="incorrect length check";state.mode=BAD;break}hold=0;bits=0}state.mode=DONE;case DONE:ret=Z_STREAM_END;break inf_leave;case BAD:ret=Z_DATA_ERROR;break inf_leave;case MEM:return Z_MEM_ERROR;case SYNC:default:return Z_STREAM_ERROR}}strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;if(state.wsize||_out!==strm.avail_out&&state.mode<BAD&&(state.mode<CHECK||flush!==Z_FINISH)){if(updatewindow(strm,strm.output,strm.next_out,_out-strm.avail_out)){state.mode=MEM;return Z_MEM_ERROR}}_in-=strm.avail_in;_out-=strm.avail_out;strm.total_in+=_in;strm.total_out+=_out;state.total+=_out;if(state.wrap&&_out){strm.adler=state.check=state.flags?crc32(state.check,output,_out,strm.next_out-_out):adler32(state.check,output,_out,strm.next_out-_out)}strm.data_type=state.bits+(state.last?64:0)+(state.mode===TYPE?128:0)+(state.mode===LEN_||state.mode===COPY_?256:0);if((_in===0&&_out===0||flush===Z_FINISH)&&ret===Z_OK){ret=Z_BUF_ERROR}return ret}function inflateEnd(strm){if(!strm||!strm.state){return Z_STREAM_ERROR}var state=strm.state;if(state.window){state.window=null}strm.state=null;return Z_OK}function inflateGetHeader(strm,head){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if((state.wrap&2)===0){return Z_STREAM_ERROR}state.head=head;head.done=false;return Z_OK}exports.inflateReset=inflateReset;exports.inflateReset2=inflateReset2;exports.inflateResetKeep=inflateResetKeep;exports.inflateInit=inflateInit;exports.inflateInit2=inflateInit2;exports.inflate=inflate;exports.inflateEnd=inflateEnd;exports.inflateGetHeader=inflateGetHeader;exports.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":4,"./adler32":5,"./crc32":7,"./inffast":9,"./inftrees":11}],11:[function(require,module,exports){"use strict";var utils=require("../utils/common");var MAXBITS=15;var ENOUGH_LENS=852;var ENOUGH_DISTS=592;var CODES=0;var LENS=1;var DISTS=2;var lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0];var lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78];var dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0];var dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];module.exports=function inflate_table(type,lens,lens_index,codes,table,table_index,work,opts){var bits=opts.bits;var len=0;var sym=0;var min=0,max=0;var root=0;var curr=0;var drop=0;var left=0;var used=0;var huff=0;var incr;var fill;var low;var mask;var next;var base=null;var base_index=0;var end;var count=new utils.Buf16(MAXBITS+1);var offs=new utils.Buf16(MAXBITS+1);var extra=null;var extra_index=0;var here_bits,here_op,here_val;for(len=0;len<=MAXBITS;len++){count[len]=0}for(sym=0;sym<codes;sym++){count[lens[lens_index+sym]]++}root=bits;for(max=MAXBITS;max>=1;max--){if(count[max]!==0){break}}if(root>max){root=max}if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min<max;min++){if(count[min]!==0){break}}if(root<min){root=min}left=1;for(len=1;len<=MAXBITS;len++){left<<=1;left-=count[len];if(left<0){return-1}}if(left>0&&(type===CODES||max!==1)){return-1}offs[1]=0;for(len=1;len<MAXBITS;len++){offs[len+1]=offs[len]+count[len]}for(sym=0;sym<codes;sym++){if(lens[lens_index+sym]!==0){work[offs[lens[lens_index+sym]]++]=sym}}if(type===CODES){base=extra=work;end=19}else if(type===LENS){base=lbase;base_index-=257;extra=lext;extra_index-=257;end=256}else{base=dbase;extra=dext;end=-1}huff=0;sym=0;len=min;next=table_index;curr=root;drop=0;low=-1;used=1<<root;mask=used-1;if(type===LENS&&used>ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}var i=0;for(;;){i++;here_bits=len-drop;if(work[sym]<end){here_op=0;here_val=work[sym]}else if(work[sym]>end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<<len-drop;fill=1<<curr;min=fill;do{fill-=incr;table[next+(huff>>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<<len-1;while(huff&incr){incr>>=1}if(incr!==0){huff&=incr-1;huff+=incr}else{huff=0}sym++;if(--count[len]===0){if(len===max){break}len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0){drop=root}next+=min;curr=len-drop;left=1<<curr;while(curr+drop<max){left-=count[curr+drop];if(left<=0){break}curr++;left<<=1}used+=1<<curr;if(type===LENS&&used>ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0){table[next+huff]=len-drop<<24|64<<16|0}opts.bits=root;return 0}},{"../utils/common":4}],12:[function(require,module,exports){"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"}},{}],13:[function(require,module,exports){"use strict";var utils=require("../utils/common");var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var 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];var 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];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);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 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};var static_l_desc;var static_d_desc;var static_bl_desc;var TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc};function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<<s.bi_valid&65535;put_short(s,s.bi_buf);s.bi_buf=value>>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<<s.bi_valid&65535;s.bi_valid+=length}}function send_code(s,c,tree){send_bits(s,tree[c*2],tree[c*2+1])}function bi_reverse(code,len){var res=0;do{res|=code&1;code>>>=1;res<<=1}while(--len>0);return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow=0;for(bits=0;bits<=MAX_BITS;bits++){s.bl_count[bits]=0}tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;h<HEAP_SIZE;h++){n=s.heap[h];bits=tree[tree[n*2+1]*2+1]+1;if(bits>max_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code){continue}s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base]}f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]+xbits)}}if(overflow===0){return}do{bits=max_length-1;while(s.bl_count[bits]===0){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;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue}if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1}for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0){continue}tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code<LENGTH_CODES-1;code++){base_length[code]=length;for(n=0;n<1<<extra_lbits[code];n++){_length_code[length++]=code}}_length_code[length-1]=code;dist=0;for(code=0;code<16;code++){base_dist[code]=dist;for(n=0;n<1<<extra_dbits[code];n++){_dist_code[dist++]=code}}dist>>=7;for(;code<D_CODES;code++){base_dist[code]=dist<<7;for(n=0;n<1<<extra_dbits[code]-7;n++){_dist_code[256+dist++]=code}}for(bits=0;bits<=MAX_BITS;bits++){bl_count[bits]=0}n=0;while(n<=143){static_ltree[n*2+1]=8;n++;bl_count[8]++}while(n<=255){static_ltree[n*2+1]=9;n++;bl_count[9]++}while(n<=279){static_ltree[n*2+1]=7;n++;bl_count[7]++}while(n<=287){static_ltree[n*2+1]=8;n++;bl_count[8]++}gen_codes(static_ltree,L_CODES+1,bl_count);for(n=0;n<D_CODES;n++){static_dtree[n*2+1]=5;static_dtree[n*2]=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;n<L_CODES;n++){s.dyn_ltree[n*2]=0}for(n=0;n<D_CODES;n++){s.dyn_dtree[n*2]=0}for(n=0;n<BL_CODES;n++){s.bl_tree[n*2]=0}s.dyn_ltree[END_BLOCK*2]=1;s.opt_len=s.static_len=0;s.last_lit=s.matches=0}function bi_windup(s){if(s.bi_valid>8){put_short(s,s.bi_buf)}else if(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);if(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=n*2;var _m2=m*2;return tree[_n2]<tree[_m2]||tree[_n2]===tree[_m2]&&depth[n]<=depth[m]}function pqdownheap(s,tree,k){var v=s.heap[k];var j=k<<1;while(j<=s.heap_len){if(j<s.heap_len&&smaller(tree,s.heap[j+1],s.heap[j],s.depth)){j++}if(smaller(tree,v,s.heap[j],s.depth)){break}s.heap[k]=s.heap[j];k=j;j<<=1}s.heap[k]=v}function compress_block(s,ltree,dtree){var dist;var lc;var lx=0;var code;var extra;if(s.last_lit!==0){do{dist=s.pending_buf[s.d_buf+lx*2]<<8|s.pending_buf[s.d_buf+lx*2+1];lc=s.pending_buf[s.l_buf+lx];lx++;if(dist===0){send_code(s,lc,ltree)}else{code=_length_code[lc];send_code(s,code+LITERALS+1,ltree);extra=extra_lbits[code];if(extra!==0){lc-=base_length[code];send_bits(s,lc,extra)}dist--;code=d_code(dist);send_code(s,code,dtree);extra=extra_dbits[code];if(extra!==0){dist-=base_dist[code];send_bits(s,dist,extra)}}}while(lx<s.last_lit)}send_code(s,END_BLOCK,ltree)}function build_tree(s,desc){var tree=desc.dyn_tree;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var elems=desc.stat_desc.elems;var n,m;var max_code=-1;var node;s.heap_len=0;s.heap_max=HEAP_SIZE;for(n=0;n<elems;n++){if(tree[n*2]!==0){s.heap[++s.heap_len]=max_code=n;s.depth[n]=0}else{tree[n*2+1]=0}}while(s.heap_len<2){node=s.heap[++s.heap_len]=max_code<2?++max_code:0;tree[node*2]=1;s.depth[node]=0;s.opt_len--;if(has_stree){s.static_len-=stree[node*2+1]}}desc.max_code=max_code;for(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[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+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;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count<max_count&&curlen===nextlen){continue}else if(count<min_count){s.bl_tree[curlen*2]+=count}else if(curlen!==0){if(curlen!==prevlen){s.bl_tree[curlen*2]++}s.bl_tree[REP_3_6*2]++}else if(count<=10){s.bl_tree[REPZ_3_10*2]++}else{s.bl_tree[REPZ_11_138*2]++}count=0;prevlen=curlen;if(nextlen===0){max_count=138;min_count=3}else if(curlen===nextlen){max_count=6;min_count=3}else{max_count=7;min_count=4}}}function send_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count<max_count&&curlen===nextlen){continue}else if(count<min_count){do{send_code(s,curlen,s.bl_tree)}while(--count!==0)}else if(curlen!==0){if(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)}else if(count<=10){send_code(s,REPZ_3_10,s.bl_tree);send_bits(s,count-3,3)}else{send_code(s,REPZ_11_138,s.bl_tree);send_bits(s,count-11,7)}count=0;prevlen=curlen;if(nextlen===0){max_count=138;min_count=3}else if(curlen===nextlen){max_count=6;min_count=3}else{max_count=7;min_count=4}}}function build_bl_tree(s){var max_blindex;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);for(max_blindex=BL_CODES-1;max_blindex>=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]!==0){break}}s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank<blcodes;rank++){send_bits(s,s.bl_tree[bl_order[rank]*2+1],3)}send_tree(s,s.dyn_ltree,lcodes-1);send_tree(s,s.dyn_dtree,dcodes-1)}function detect_data_type(s){var black_mask=4093624447;var n;for(n=0;n<=31;n++,black_mask>>>=1){if(black_mask&1&&s.dyn_ltree[n*2]!==0){return Z_BINARY}}if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0){return Z_TEXT}for(n=32;n<LITERALS;n++){if(s.dyn_ltree[n*2]!==0){return Z_TEXT}}return Z_BINARY}var static_init_done=false;function _tr_init(s){if(!static_init_done){tr_static_init();static_init_done=true}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,true)}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;var max_blindex=0;if(s.level>0){if(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;if(static_lenb<=opt_lenb){opt_lenb=static_lenb}}else{opt_lenb=static_lenb=stored_len+5}if(stored_len+4<=opt_lenb&&buf!==-1){_tr_stored_block(s,buf,stored_len,last)}else if(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)}else{send_bits(s,(DYN_TREES<<1)+(last?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last){bi_windup(s)}}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0){s.dyn_ltree[lc*2]++}else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-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":4}],14:[function(require,module,exports){"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},{}],15:[function(require,module,exports){(function(process,Buffer){var msg=require("pako/lib/zlib/messages");var zstream=require("pako/lib/zlib/zstream");var zlib_deflate=require("pako/lib/zlib/deflate.js");var zlib_inflate=require("pako/lib/zlib/inflate.js");var constants=require("pako/lib/zlib/constants");for(var key in constants){exports[key]=constants[key]}exports.NONE=0;exports.DEFLATE=1;exports.INFLATE=2;exports.GZIP=3;exports.GUNZIP=4;exports.DEFLATERAW=5;exports.INFLATERAW=6;exports.UNZIP=7;function Zlib(mode){if(mode<exports.DEFLATE||mode>exports.UNZIP)throw new TypeError("Bad argument");this.mode=mode;this.init_done=false;this.write_in_progress=false;this.pending_close=false;this.windowBits=0;this.level=0;this.memLevel=0;this.strategy=0;this.dictionary=null}Zlib.prototype.init=function(windowBits,level,memLevel,strategy,dictionary){this.windowBits=windowBits;this.level=level;this.memLevel=memLevel;this.strategy=strategy;if(this.mode===exports.GZIP||this.mode===exports.GUNZIP)this.windowBits+=16;if(this.mode===exports.UNZIP)this.windowBits+=32;if(this.mode===exports.DEFLATERAW||this.mode===exports.INFLATERAW)this.windowBits=-this.windowBits;this.strm=new zstream;switch(this.mode){case exports.DEFLATE:case exports.GZIP:case exports.DEFLATERAW:var status=zlib_deflate.deflateInit2(this.strm,this.level,exports.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case exports.INFLATE:case exports.GUNZIP:case exports.INFLATERAW:case exports.UNZIP:var status=zlib_inflate.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}if(status!==exports.Z_OK){this._error(status);return}this.write_in_progress=false;this.init_done=true};Zlib.prototype.params=function(){throw new Error("deflateParams Not supported")};Zlib.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===exports.NONE)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")};Zlib.prototype.write=function(flush,input,in_off,in_len,out,out_off,out_len){this._writeCheck();this.write_in_progress=true;var self=this;process.nextTick(function(){self.write_in_progress=false;var res=self._write(flush,input,in_off,in_len,out,out_off,out_len);self.callback(res[0],res[1]);if(self.pending_close)self.close()});return this};function bufferSet(data,offset){for(var i=0;i<data.length;i++){this[offset+i]=data[i]}}Zlib.prototype.writeSync=function(flush,input,in_off,in_len,out,out_off,out_len){this._writeCheck();return this._write(flush,input,in_off,in_len,out,out_off,out_len)};Zlib.prototype._write=function(flush,input,in_off,in_len,out,out_off,out_len){this.write_in_progress=true;if(flush!==exports.Z_NO_FLUSH&&flush!==exports.Z_PARTIAL_FLUSH&&flush!==exports.Z_SYNC_FLUSH&&flush!==exports.Z_FULL_FLUSH&&flush!==exports.Z_FINISH&&flush!==exports.Z_BLOCK){throw new Error("Invalid flush value")}if(input==null){input=new Buffer(0);in_len=0;in_off=0}if(out._set)out.set=out._set;else out.set=bufferSet;var strm=this.strm;strm.avail_in=in_len;strm.input=input;strm.next_in=in_off;strm.avail_out=out_len;strm.output=out;strm.next_out=out_off;switch(this.mode){case exports.DEFLATE:case exports.GZIP:case exports.DEFLATERAW:var status=zlib_deflate.deflate(strm,flush);break;case exports.UNZIP:case exports.INFLATE:case exports.GUNZIP:case exports.INFLATERAW:var status=zlib_inflate.inflate(strm,flush);break;default:throw new Error("Unknown mode "+this.mode)}if(status!==exports.Z_STREAM_END&&status!==exports.Z_OK){this._error(status)}this.write_in_progress=false;return[strm.avail_in,strm.avail_out]};Zlib.prototype.close=function(){if(this.write_in_progress){this.pending_close=true;return}this.pending_close=false;if(this.mode===exports.DEFLATE||this.mode===exports.GZIP||this.mode===exports.DEFLATERAW){zlib_deflate.deflateEnd(this.strm)}else{zlib_inflate.inflateEnd(this.strm)}this.mode=exports.NONE};Zlib.prototype.reset=function(){switch(this.mode){case exports.DEFLATE:case exports.DEFLATERAW:var status=zlib_deflate.deflateReset(this.strm);break;case exports.INFLATE:case exports.INFLATERAW:var status=zlib_inflate.inflateReset(this.strm);break}if(status!==exports.Z_OK){this._error(status)}};Zlib.prototype._error=function(status){this.onerror(msg[status]+": "+this.strm.msg,status);this.write_in_progress=false;if(this.pending_close)this.close()};exports.Zlib=Zlib}).call(this,require("_process"),require("buffer").Buffer)},{_process:171,buffer:17,"pako/lib/zlib/constants":6,"pako/lib/zlib/deflate.js":8,"pako/lib/zlib/inflate.js":10,"pako/lib/zlib/messages":12,"pako/lib/zlib/zstream":14}],16:[function(require,module,exports){(function(process,Buffer){var Transform=require("_stream_transform");var binding=require("./binding");var util=require("util");var 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=Infinity;binding.Z_DEFAULT_CHUNK=16*1024;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){if(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){if(typeof opts==="function"){callback=opts;opts={}}return zlibBuffer(new Deflate(opts),buffer,callback)};exports.deflateSync=function(buffer,opts){return zlibBufferSync(new Deflate(opts),buffer)};exports.gzip=function(buffer,opts,callback){if(typeof opts==="function"){callback=opts;opts={}}return zlibBuffer(new Gzip(opts),buffer,callback)};exports.gzipSync=function(buffer,opts){return zlibBufferSync(new Gzip(opts),buffer)};exports.deflateRaw=function(buffer,opts,callback){if(typeof opts==="function"){callback=opts;opts={}}return zlibBuffer(new DeflateRaw(opts),buffer,callback)};exports.deflateRawSync=function(buffer,opts){return zlibBufferSync(new DeflateRaw(opts),buffer)};exports.unzip=function(buffer,opts,callback){if(typeof opts==="function"){callback=opts;opts={}}return zlibBuffer(new Unzip(opts),buffer,callback)};exports.unzipSync=function(buffer,opts){return zlibBufferSync(new Unzip(opts),buffer)};exports.inflate=function(buffer,opts,callback){if(typeof opts==="function"){callback=opts;opts={}}return zlibBuffer(new Inflate(opts),buffer,callback)};exports.inflateSync=function(buffer,opts){return zlibBufferSync(new Inflate(opts),buffer)};exports.gunzip=function(buffer,opts,callback){if(typeof opts==="function"){callback=opts;opts={}}return zlibBuffer(new Gunzip(opts),buffer,callback)};exports.gunzipSync=function(buffer,opts){return zlibBufferSync(new Gunzip(opts),buffer)};exports.inflateRaw=function(buffer,opts,callback){if(typeof opts==="function"){callback=opts;opts={}}return zlibBuffer(new InflateRaw(opts),buffer,callback)};exports.inflateRawSync=function(buffer,opts){return zlibBufferSync(new InflateRaw(opts),buffer)};function zlibBuffer(engine,buffer,callback){var buffers=[];var nread=0;engine.on("error",onError);engine.on("end",onEnd);engine.end(buffer);flow();function flow(){var chunk;while(null!==(chunk=engine.read())){buffers.push(chunk);nread+=chunk.length}engine.once("readable",flow)}function onError(err){engine.removeListener("end",onEnd);engine.removeListener("readable",flow);callback(err)}function onEnd(){var buf=Buffer.concat(buffers,nread);buffers=[];callback(null,buf);engine.close()}}function zlibBufferSync(engine,buffer){if(typeof buffer==="string")buffer=new Buffer(buffer);if(!Buffer.isBuffer(buffer))throw new TypeError("Not a string or buffer");var flushFlag=binding.Z_FINISH;return engine._processChunk(buffer,flushFlag)}function Deflate(opts){if(!(this instanceof Deflate))return new Deflate(opts);Zlib.call(this,opts,binding.DEFLATE)}function Inflate(opts){if(!(this instanceof Inflate))return new Inflate(opts);Zlib.call(this,opts,binding.INFLATE)}function Gzip(opts){if(!(this instanceof Gzip))return new Gzip(opts);Zlib.call(this,opts,binding.GZIP)}function Gunzip(opts){if(!(this instanceof Gunzip))return new Gunzip(opts);Zlib.call(this,opts,binding.GUNZIP)}function DeflateRaw(opts){if(!(this instanceof DeflateRaw))return new DeflateRaw(opts);Zlib.call(this,opts,binding.DEFLATERAW)}function InflateRaw(opts){if(!(this instanceof InflateRaw))return new InflateRaw(opts);Zlib.call(this,opts,binding.INFLATERAW)}function Unzip(opts){if(!(this instanceof Unzip))return new Unzip(opts);Zlib.call(this,opts,binding.UNZIP)}function Zlib(opts,mode){this._opts=opts=opts||{};this._chunkSize=opts.chunkSize||exports.Z_DEFAULT_CHUNK;Transform.call(this,opts);if(opts.flush){if(opts.flush!==binding.Z_NO_FLUSH&&opts.flush!==binding.Z_PARTIAL_FLUSH&&opts.flush!==binding.Z_SYNC_FLUSH&&opts.flush!==binding.Z_FULL_FLUSH&&opts.flush!==binding.Z_FINISH&&opts.flush!==binding.Z_BLOCK){throw new Error("Invalid flush flag: "+opts.flush)}}this._flushFlag=opts.flush||binding.Z_NO_FLUSH;if(opts.chunkSize){if(opts.chunkSize<exports.Z_MIN_CHUNK||opts.chunkSize>exports.Z_MAX_CHUNK){throw new Error("Invalid chunk size: "+opts.chunkSize)}}if(opts.windowBits){if(opts.windowBits<exports.Z_MIN_WINDOWBITS||opts.windowBits>exports.Z_MAX_WINDOWBITS){throw new Error("Invalid windowBits: "+opts.windowBits)}}if(opts.level){if(opts.level<exports.Z_MIN_LEVEL||opts.level>exports.Z_MAX_LEVEL){throw new Error("Invalid compression level: "+opts.level)}}if(opts.memLevel){if(opts.memLevel<exports.Z_MIN_MEMLEVEL||opts.memLevel>exports.Z_MAX_MEMLEVEL){throw new Error("Invalid memLevel: "+opts.memLevel)}}if(opts.strategy){if(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){if(!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=false;this._binding.onerror=function(message,errno){self._binding=null;self._hadError=true;var error=new Error(message);error.errno=errno;error.code=exports.codes[errno];self.emit("error",error)};var level=exports.Z_DEFAULT_COMPRESSION;if(typeof opts.level==="number")level=opts.level;var strategy=exports.Z_DEFAULT_STRATEGY;if(typeof opts.strategy==="number")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=false;this._level=level;this._strategy=strategy;this.once("end",this.close)}util.inherits(Zlib,Transform);Zlib.prototype.params=function(level,strategy,callback){if(level<exports.Z_MIN_LEVEL||level>exports.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);if(!self._hadError){self._level=level;self._strategy=strategy;if(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(typeof kind==="function"||kind===void 0&&!callback){callback=kind;kind=binding.Z_FULL_FLUSH}if(ws.ended){if(callback)process.nextTick(callback)}else if(ws.ending){if(callback)this.once("end",callback)}else if(ws.needDrain){var self=this;this.once("drain",function(){self.flush(callback)})}else{this._flushFlag=kind;this.write(new Buffer(0),"",callback)}};Zlib.prototype.close=function(callback){if(callback)process.nextTick(callback);if(this._closed)return;this._closed=true;this._binding.close();var self=this;process.nextTick(function(){self.emit("close")})};Zlib.prototype._transform=function(chunk,encoding,cb){var flushFlag;var ws=this._writableState;var ending=ws.ending||ws.ended;var last=ending&&(!chunk||ws.length===chunk.length);if(!chunk===null&&!Buffer.isBuffer(chunk))return cb(new Error("invalid input"));if(last)flushFlag=binding.Z_FINISH;else{flushFlag=this._flushFlag;if(chunk.length>=ws.length){this._flushFlag=this._opts.flush||binding.Z_NO_FLUSH}}var self=this;this._processChunk(chunk,flushFlag,cb)};Zlib.prototype._processChunk=function(chunk,flushFlag,cb){var availInBefore=chunk&&chunk.length;var availOutBefore=this._chunkSize-this._offset;var inOff=0;var self=this;var async=typeof cb==="function";if(!async){var buffers=[];var nread=0;var error;this.on("error",function(er){error=er});do{var res=this._binding.writeSync(flushFlag,chunk,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);this.close();return buf}var req=this._binding.write(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore);req.buffer=chunk;req.callback=callback;function callback(availInAfter,availOutAfter){if(self._hadError)return;var have=availOutBefore-availOutAfter;assert(have>=0,"have should not go down");if(have>0){var out=self._buffer.slice(self._offset,self._offset+have);self._offset+=have;if(async){self.push(out)}else{buffers.push(out);nread+=out.length}}if(availOutAfter===0||self._offset>=self._chunkSize){availOutBefore=self._chunkSize;self._offset=0;self._buffer=new Buffer(self._chunkSize)}if(availOutAfter===0){inOff+=availInBefore-availInAfter;availInBefore=availInAfter;if(!async)return true;var newReq=self._binding.write(flushFlag,chunk,inOff,availInBefore,self._buffer,self._offset,self._chunkSize);newReq.callback=callback;newReq.buffer=chunk;return}if(!async)return false;cb()}};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":15,_process:171,_stream_transform:185,assert:2,buffer:17,util:191}],17:[function(require,module,exports){var base64=require("base64-js");var ieee754=require("ieee754");var isArray=require("is-array");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;Buffer.poolSize=8192;var kMaxLength=1073741823;var rootParent={};Buffer.TYPED_ARRAY_SUPPORT=function(){try{var buf=new ArrayBuffer(0);var arr=new Uint8Array(buf);arr.foo=function(){return 42};return 42===arr.foo()&&typeof arr.subarray==="function"&&new Uint8Array(1).subarray(1,1).byteLength===0}catch(e){return false}}();function Buffer(subject,encoding,noZero){if(!(this instanceof Buffer))return new Buffer(subject,encoding,noZero);var type=typeof subject;var length;if(type==="number")length=subject>0?subject>>>0:0;else if(type==="string"){length=Buffer.byteLength(subject,encoding)}else if(type==="object"&&subject!==null){if(subject.type==="Buffer"&&isArray(subject.data))subject=subject.data;length=+subject.length>0?Math.floor(+subject.length):0}else throw new TypeError("must start with number, buffer, array or string");if(length>kMaxLength)throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+kMaxLength.toString(16)+" bytes");var buf;if(Buffer.TYPED_ARRAY_SUPPORT){buf=Buffer._augment(new Uint8Array(length))}else{buf=this;buf.length=length;buf._isBuffer=true}var i;if(Buffer.TYPED_ARRAY_SUPPORT&&typeof subject.byteLength==="number"){buf._set(subject)}else if(isArrayish(subject)){if(Buffer.isBuffer(subject)){for(i=0;i<length;i++)buf[i]=subject.readUInt8(i)}else{for(i=0;i<length;i++)buf[i]=(subject[i]%256+256)%256}}else if(type==="string"){buf.write(subject,0,encoding)}else if(type==="number"&&!Buffer.TYPED_ARRAY_SUPPORT&&!noZero){for(i=0;i<length;i++){buf[i]=0}}if(length>0&&length<=Buffer.poolSize)buf.parent=rootParent;return buf}function SlowBuffer(subject,encoding,noZero){if(!(this instanceof SlowBuffer))return new SlowBuffer(subject,encoding,noZero);var buf=new Buffer(subject,encoding,noZero);delete buf.parent;return buf}Buffer.isBuffer=function(b){return!!(b!=null&&b._isBuffer)};Buffer.compare=function(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw new TypeError("Arguments must be Buffers");var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i<len&&a[i]===b[i];i++){}if(i!==len){x=a[i];y=b[i]}if(x<y)return-1;if(y<x)return 1;return 0};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 true;default:return false}};Buffer.concat=function(list,totalLength){if(!isArray(list))throw new TypeError("Usage: Buffer.concat(list[, length])");if(list.length===0){return new Buffer(0)}else if(list.length===1){return list[0]}var i;if(totalLength===undefined){totalLength=0;for(i=0;i<list.length;i++){totalLength+=list[i].length}}var buf=new Buffer(totalLength);var pos=0;for(i=0;i<list.length;i++){var item=list[i];item.copy(buf,pos);pos+=item.length}return buf};Buffer.byteLength=function(str,encoding){var ret;str=str+"";switch(encoding||"utf8"){case"ascii":case"binary":case"raw":ret=str.length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=str.length*2;break;case"hex":ret=str.length>>>1;break;case"utf8":case"utf-8":ret=utf8ToBytes(str).length;break;case"base64":ret=base64ToBytes(str).length;break;default:ret=str.length}return ret};Buffer.prototype.length=undefined;Buffer.prototype.parent=undefined;Buffer.prototype.toString=function(encoding,start,end){var loweredCase=false;start=start>>>0;end=end===undefined||end===Infinity?this.length:end>>>0;if(!encoding)encoding="utf8";if(start<0)start=0;if(end>this.length)end=this.length;if(end<=start)return"";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"binary":return binarySlice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}};Buffer.prototype.equals=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return Buffer.compare(this,b)===0};Buffer.prototype.inspect=function(){var str="";var max=exports.INSPECT_MAX_BYTES;if(this.length>0){str=this.toString("hex",0,max).match(/.{2}/g).join(" ");if(this.length>max)str+=" ... "}return"<Buffer "+str+">"};Buffer.prototype.compare=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return Buffer.compare(this,b)};Buffer.prototype.get=function(offset){console.log(".get() is deprecated. Access using array indexes instead.");return this.readUInt8(offset)};Buffer.prototype.set=function(v,offset){console.log(".set() is deprecated. Access using array indexes instead.");return this.writeUInt8(v,offset)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining}else{length=Number(length);if(length>remaining){length=remaining}}var strLen=string.length;if(strLen%2!==0)throw new Error("Invalid hex string");if(length>strLen/2){length=strLen/2}for(var i=0;i<length;i++){var byte=parseInt(string.substr(i*2,2),16);if(isNaN(byte))throw new Error("Invalid hex string");buf[offset+i]=byte}return i}function utf8Write(buf,string,offset,length){var charsWritten=blitBuffer(utf8ToBytes(string,buf.length-offset),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.length-offset),buf,offset,length,2);return charsWritten}Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset)){if(!isFinite(length)){encoding=length;length=undefined}}else{var swap=encoding;encoding=offset;offset=length;length=swap}offset=Number(offset)||0;if(length<0||offset<0||offset>this.length)throw new RangeError("attempt to write outside buffer bounds");var remaining=this.length-offset;if(!length){length=remaining}else{length=Number(length);if(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 TypeError("Unknown encoding: "+encoding)}return ret};Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){var res="";var tmp="";end=Math.min(buf.length,end);for(var i=start;i<end;i++){if(buf[i]<=127){res+=decodeUtf8Char(tmp)+String.fromCharCode(buf[i]);tmp=""}else{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;i<end;i++){ret+=String.fromCharCode(buf[i]&127)}return ret}function binarySlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;i++){ret+=String.fromCharCode(buf[i])}return ret}function hexSlice(buf,start,end){var len=buf.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out="";for(var i=start;i<end;i++){out+=toHex(buf[i])}return out}function utf16leSlice(buf,start,end){var bytes=buf.slice(start,end);var res="";for(var i=0;i<bytes.length;i+=2){res+=String.fromCharCode(bytes[i]+bytes[i+1]*256)}return res}Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start;end=end===undefined?len:~~end;if(start<0){start+=len;if(start<0)start=0}else if(start>len){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(end<start)end=start;var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT){newBuf=Buffer._augment(this.subarray(start,end))}else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,undefined,true);for(var i=0;i<sliceLen;i++){newBuf[i]=this[i+start]}}if(newBuf.length)newBuf.parent=this.parent||this;return newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256))val+=this[offset+i]*mul;return val};Buffer.prototype.readUIntBE=function(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256))val+=this[offset+--byteLength]*mul;return val};Buffer.prototype.readUInt8=function(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256))val+=this[offset+i]*mul;mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256))val+=this[offset+--i]*mul;mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("buffer must be a Buffer instance");if(value>max||value<min)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range")}Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var mul=1;var i=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256))this[offset+i]=value/mul>>>0&255;return offset+byteLength};Buffer.prototype.writeUIntBE=function(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256))this[offset+i]=value/mul>>>0&255;return offset+byteLength};Buffer.prototype.writeUInt8=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,255,0);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);this[offset]=value;return offset+1};function objectWriteUInt16(buf,value,offset,littleEndian){if(value<0)value=65535+value+1;for(var i=0,j=Math.min(buf.length-offset,2);i<j;i++){buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>(littleEndian?i:1-i)*8}}Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value;this[offset+1]=value>>>8}else objectWriteUInt16(this,value,offset,true);return offset+2};Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value}else objectWriteUInt16(this,value,offset,false);return offset+2};function objectWriteUInt32(buf,value,offset,littleEndian){if(value<0)value=4294967295+value+1;for(var i=0,j=Math.min(buf.length-offset,4);i<j;i++){buf[offset+i]=value>>>(littleEndian?i:3-i)*8&255}}Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value}else objectWriteUInt32(this,value,offset,true);return offset+4};Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){ | |
this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value}else objectWriteUInt32(this,value,offset,false);return offset+4};Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength-1)-1,-Math.pow(2,8*byteLength-1))}var i=0;var mul=1;var sub=value<0?1:0;this[offset]=value&255;while(++i<byteLength&&(mul*=256))this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength};Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength-1)-1,-Math.pow(2,8*byteLength-1))}var i=byteLength-1;var mul=1;var sub=value<0?1:0;this[offset+i]=value&255;while(--i>=0&&(mul*=256))this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength};Buffer.prototype.writeInt8=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);if(value<0)value=255+value+1;this[offset]=value;return offset+1};Buffer.prototype.writeInt16LE=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value;this[offset+1]=value>>>8}else objectWriteUInt16(this,value,offset,true);return offset+2};Buffer.prototype.writeInt16BE=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value}else objectWriteUInt16(this,value,offset,false);return offset+2};Buffer.prototype.writeInt32LE=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24}else objectWriteUInt32(this,value,offset,true);return offset+4};Buffer.prototype.writeInt32BE=function(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value}else objectWriteUInt32(this,value,offset,false);return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(value>max||value<min)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range");if(offset<0)throw new RangeError("index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){if(!noAssert)checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38);ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){if(!noAssert)checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308);ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(!start)start=0;if(!end&&end!==0)end=this.length;if(target_start>=target.length)target_start=target.length;if(!target_start)target_start=0;if(end>0&&end<start)end=start;if(end===start)return 0;if(target.length===0||source.length===0)return 0;if(target_start<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=source.length)throw new RangeError("sourceStart out of bounds");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-target_start<end-start)end=target.length-target_start+start;var len=end-start;if(len<1e3||!Buffer.TYPED_ARRAY_SUPPORT){for(var i=0;i<len;i++){target[i+target_start]=this[i+start]}}else{target._set(this.subarray(start,start+len),target_start)}return len};Buffer.prototype.fill=function(value,start,end){if(!value)value=0;if(!start)start=0;if(!end)end=this.length;if(end<start)throw new RangeError("end < start");if(end===start)return;if(this.length===0)return;if(start<0||start>=this.length)throw new RangeError("start out of bounds");if(end<0||end>this.length)throw new RangeError("end out of bounds");var i;if(typeof value==="number"){for(i=start;i<end;i++){this[i]=value}}else{var bytes=utf8ToBytes(value.toString());var len=bytes.length;for(i=start;i<end;i++){this[i]=bytes[i%len]}}return this};Buffer.prototype.toArrayBuffer=function(){if(typeof Uint8Array!=="undefined"){if(Buffer.TYPED_ARRAY_SUPPORT){return new Buffer(this).buffer}else{var buf=new Uint8Array(this.length);for(var i=0,len=buf.length;i<len;i+=1){buf[i]=this[i]}return buf.buffer}}else{throw new TypeError("Buffer.toArrayBuffer not supported in this browser")}};var BP=Buffer.prototype;Buffer._augment=function(arr){arr.constructor=Buffer;arr._isBuffer=true;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.readUIntLE=BP.readUIntLE;arr.readUIntBE=BP.readUIntBE;arr.readUInt8=BP.readUInt8;arr.readUInt16LE=BP.readUInt16LE;arr.readUInt16BE=BP.readUInt16BE;arr.readUInt32LE=BP.readUInt32LE;arr.readUInt32BE=BP.readUInt32BE;arr.readIntLE=BP.readIntLE;arr.readIntBE=BP.readIntBE;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.writeUIntLE=BP.writeUIntLE;arr.writeUIntBE=BP.writeUIntBE;arr.writeUInt16LE=BP.writeUInt16LE;arr.writeUInt16BE=BP.writeUInt16BE;arr.writeUInt32LE=BP.writeUInt32LE;arr.writeUInt32BE=BP.writeUInt32BE;arr.writeIntLE=BP.writeIntLE;arr.writeIntBE=BP.writeIntBE;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;return arr};var INVALID_BASE64_RE=/[^+\/0-9A-z\-]/g;function base64clean(str){str=stringtrim(str).replace(INVALID_BASE64_RE,"");if(str.length<2)return"";while(str.length%4!==0){str=str+"="}return str}function stringtrim(str){if(str.trim)return str.trim();return str.replace(/^\s+|\s+$/g,"")}function isArrayish(subject){return isArray(subject)||Buffer.isBuffer(subject)||subject&&typeof subject==="object"&&typeof subject.length==="number"}function toHex(n){if(n<16)return"0"+n.toString(16);return n.toString(16)}function utf8ToBytes(string,units){var codePoint,length=string.length;var leadSurrogate=null;units=units||Infinity;var bytes=[];var i=0;for(;i<length;i++){codePoint=string.charCodeAt(i);if(codePoint>55295&&codePoint<57344){if(leadSurrogate){if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}else{codePoint=leadSurrogate-55296<<10|codePoint-56320|65536;leadSurrogate=null}}else{if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}else{leadSurrogate=codePoint;continue}}}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=null}if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<2097152){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;i++){byteArray.push(str.charCodeAt(i)&255)}return byteArray}function utf16leToBytes(str,units){var c,hi,lo;var byteArray=[];for(var i=0;i<str.length;i++){if((units-=2)<0)break;c=str.charCodeAt(i);hi=c>>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length,unitSize){if(unitSize)length-=length%unitSize;for(var i=0;i<length;i++){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}},{"base64-js":18,ieee754:19,"is-array":20}],18:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(exports){"use strict";var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var PLUS="+".charCodeAt(0);var SLASH="/".charCodeAt(0);var NUMBER="0".charCodeAt(0);var LOWER="a".charCodeAt(0);var UPPER="A".charCodeAt(0);var PLUS_URL_SAFE="-".charCodeAt(0);var SLASH_URL_SAFE="_".charCodeAt(0);function decode(elt){var code=elt.charCodeAt(0);if(code===PLUS||code===PLUS_URL_SAFE)return 62;if(code===SLASH||code===SLASH_URL_SAFE)return 63;if(code<NUMBER)return-1;if(code<NUMBER+10)return code-NUMBER+26+26;if(code<UPPER+26)return code-UPPER;if(code<LOWER+26)return code-LOWER+26}function b64ToByteArray(b64){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(b64.length*3/4-placeHolders);l=placeHolders>0?b64.length-4:b64.length;var L=0;function push(v){arr[L++]=v}for(i=0,j=0;i<l;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((tmp&16711680)>>16);push((tmp&65280)>>8);push(tmp&255)}if(placeHolders===2){tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4;push(tmp&255)}else if(placeHolders===1){tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2;push(tmp>>8&255);push(tmp&255)}return arr}function uint8ToBase64(uint8){var i,extraBytes=uint8.length%3,output="",temp,length;function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(num&63)}for(i=0,length=uint8.length-extraBytes;i<length;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+="=";break}return output}exports.toByteArray=b64ToByteArray;exports.fromByteArray=uint8ToBase64})(typeof exports==="undefined"?this.base64js={}:exports)},{}],19:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}},{}],20:[function(require,module,exports){var isArray=Array.isArray;var str=Object.prototype.toString;module.exports=isArray||function(val){return!!val&&"[object Array]"==str.call(val)}},{}],21:[function(require,module,exports){(function(Buffer){"use strict";var createHash=require("sha.js");var md5=require("./md5");var rmd160=require("ripemd160");var Transform=require("stream").Transform;var inherits=require("util").inherits;module.exports=function(alg){if("md5"===alg)return new HashNoConstructor(md5);if("rmd160"===alg)return new HashNoConstructor(rmd160);return new Hash(createHash(alg))};inherits(HashNoConstructor,Transform);function HashNoConstructor(hash){Transform.call(this);this._hash=hash;this.buffers=[]}HashNoConstructor.prototype._transform=function(data,_,done){this.buffers.push(data);done()};HashNoConstructor.prototype._flush=function(done){var buf=Buffer.concat(this.buffers);var r=this._hash(buf);this.buffers=null;this.push(r);done()};HashNoConstructor.prototype.update=function(data,enc){this.write(data,enc);return this};HashNoConstructor.prototype.digest=function(enc){this.end();var outData=new Buffer("");var chunk;while(chunk=this.read()){outData=Buffer.concat([outData,chunk])}if(enc){outData=outData.toString(enc)}return outData};inherits(Hash,Transform);function Hash(hash){Transform.call(this);this._hash=hash}Hash.prototype._transform=function(data,_,done){this._hash.update(data);done()};Hash.prototype._flush=function(done){this.push(this._hash.digest());this._hash=null;done()};Hash.prototype.update=function(data,enc){this.write(data,enc);return this};Hash.prototype.digest=function(enc){this.end();var outData=new Buffer("");var chunk;while(chunk=this.read()){outData=Buffer.concat([outData,chunk])}if(enc){outData=outData.toString(enc)}return outData}}).call(this,require("buffer").Buffer)},{"./md5":25,buffer:17,ripemd160:151,"sha.js":153,stream:187,util:191}],22:[function(require,module,exports){(function(Buffer){"use strict";var createHash=require("./create-hash");var Transform=require("stream").Transform;var inherits=require("util").inherits;var zeroBuffer=new Buffer(128);zeroBuffer.fill(0);module.exports=Hmac;inherits(Hmac,Transform);function Hmac(alg,key){if(!(this instanceof Hmac))return new Hmac(alg,key);Transform.call(this);this._opad=opad;this._alg=alg;var blocksize=alg==="sha512"||alg==="sha384"?128:64;key=this._key=!Buffer.isBuffer(key)?new Buffer(key):key;if(key.length>blocksize){key=createHash(alg).update(key).digest()}else if(key.length<blocksize){key=Buffer.concat([key,zeroBuffer],blocksize)}var ipad=this._ipad=new Buffer(blocksize);var opad=this._opad=new Buffer(blocksize);for(var i=0;i<blocksize;i++){ipad[i]=key[i]^54;opad[i]=key[i]^92}this._hash=createHash(alg).update(ipad)}Hmac.prototype.update=function(data,enc){this.write(data,enc);return this};Hmac.prototype._transform=function(data,_,next){this._hash.update(data);next()};Hmac.prototype._flush=function(next){var h=this._hash.digest();this.push(createHash(this._alg).update(this._opad).update(h).digest());next()};Hmac.prototype.digest=function(enc){this.end();var outData=new Buffer("");var chunk;while(chunk=this.read()){outData=Buffer.concat([outData,chunk])}if(enc){outData=outData.toString(enc)}return outData}}).call(this,require("buffer").Buffer)},{"./create-hash":21,buffer:17,stream:187,util:191}],23:[function(require,module,exports){(function(Buffer){"use strict";var intSize=4;var zeroBuffer=new Buffer(intSize);zeroBuffer.fill(0);var chrsz=8;function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}var arr=[];var fn=bigEndian?buf.readInt32BE:buf.readInt32LE;for(var i=0;i<buf.length;i+=intSize){arr.push(fn.call(buf,i))}return arr}function toBuffer(arr,size,bigEndian){var buf=new Buffer(size);var fn=bigEndian?buf.writeInt32BE:buf.writeInt32LE;for(var i=0;i<arr.length;i++){fn.call(buf,arr[i],i*4,true)}return buf}function hash(buf,fn,hashSize,bigEndian){if(!Buffer.isBuffer(buf))buf=new Buffer(buf);var arr=fn(toArray(buf,bigEndian),buf.length*chrsz);return toBuffer(arr,hashSize,bigEndian)}module.exports={hash:hash}}).call(this,require("buffer").Buffer)},{buffer:17}],24:[function(require,module,exports){"use strict";var rng=exports.rng=require("./rng");var prng=exports.prng=require("./prng");function error(){var m=[].slice.call(arguments).join(" ");throw new Error([m,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}exports.createHash=exports.Hash=require("./create-hash");exports.createHmac=exports.Hmac=require("./create-hmac");exports.randomBytes=function(size,callback){if(callback&&callback.call){try{callback.call(this,undefined,rng(size))}catch(err){callback(err)}}else{return rng(size)}};exports.pseudoRandomBytes=function(size,callback){if(callback&&callback.call){try{callback.call(this,undefined,prng(size))}catch(err){callback(err)}}else{return prng(size)}};function each(a,f){for(var i in a)f(a[i],i)}var hashes=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Object.keys(require("browserify-sign/algos")));exports.getHashes=function(){return hashes};var p=require("./pbkdf2")(exports);exports.pbkdf2=p.pbkdf2;exports.pbkdf2Sync=p.pbkdf2Sync;require("browserify-aes/inject")(exports,module.exports);require("browserify-sign/inject")(module.exports,exports);require("diffie-hellman/inject")(exports,module.exports);require("create-ecdh/inject")(module.exports,exports);require("public-encrypt/inject")(module.exports,exports);each(["createCredentials"],function(name){exports[name]=function(){error("sorry,",name,"is not implemented yet")}})},{"./create-hash":21,"./create-hmac":22,"./pbkdf2":159,"./prng":160,"./rng":161,"browserify-aes/inject":33,"browserify-sign/algos":44,"browserify-sign/inject":45,"create-ecdh/inject":92,"diffie-hellman/inject":116,"public-encrypt/inject":123}],25:[function(require,module,exports){"use strict";var helpers=require("./helpers");function core_md5(x,len){x[len>>5]|=128<<len%32;x[(len+64>>>9<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd)}return Array(a,b,c,d)}function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}function md5_ff(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)}function md5_gg(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)}function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)}function safe_add(x,y){var lsw=(x&65535)+(y&65535);var msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|lsw&65535}function bit_rol(num,cnt){return num<<cnt|num>>>32-cnt}module.exports=function md5(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":23}],26:[function(require,module,exports){(function(Buffer){module.exports=function(crypto,password,keyLen,ivLen){keyLen=keyLen/8;ivLen=ivLen||0;var ki=0;var ii=0;var key=new Buffer(keyLen);var iv=new Buffer(ivLen);var addmd=0;var md,md_buf;var i;while(true){md=crypto.createHash("md5");if(addmd++>0){md.update(md_buf)}md.update(password);md_buf=md.digest();i=0;if(keyLen>0){while(true){if(keyLen===0){break}if(i===md_buf.length){break}key[ki++]=md_buf[i];keyLen--;i++}}if(ivLen>0&&i!==md_buf.length){while(true){if(ivLen===0){break}if(i===md_buf.length){break}iv[ii++]=md_buf[i];ivLen--;i++}}if(keyLen===0&&ivLen===0){break}}for(i=0;i<md_buf.length;i++){md_buf[i]=0}return{key:key,iv:iv}}}).call(this,require("buffer").Buffer)},{buffer:17}],27:[function(require,module,exports){(function(Buffer){var uint_max=Math.pow(2,32);function fixup_uint32(x){var ret,x_pos;ret=x>uint_max||x<0?(x_pos=Math.abs(x)%uint_max,x<0?uint_max-x_pos:x_pos):x;return ret}function scrub_vec(v){var i,_i,_ref;for(i=_i=0,_ref=v.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){v[i]=0}return false}function Global(){var i;this.SBOX=[];this.INV_SBOX=[];this.SUB_MIX=function(){var _i,_results;_results=[];for(i=_i=0;_i<4;i=++_i){_results.push([])}return _results}();this.INV_SUB_MIX=function(){var _i,_results;_results=[];for(i=_i=0;_i<4;i=++_i){_results.push([])}return _results}();this.init();this.RCON=[0,1,2,4,8,16,32,64,128,27,54]}Global.prototype.init=function(){var d,i,sx,t,x,x2,x4,x8,xi,_i;d=function(){var _i,_results;_results=[];for(i=_i=0;_i<256;i=++_i){if(i<128){_results.push(i<<1)}else{_results.push(i<<1^283)}}return _results}();x=0;xi=0;for(i=_i=0;_i<256;i=++_i){sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^sx&255^99;this.SBOX[x]=sx;this.INV_SBOX[sx]=x;x2=d[x];x4=d[x2];x8=d[x4];t=d[sx]*257^sx*16843008;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=x8*16843009^x4*65537^x2*257^x*16843008;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;if(x===0){x=xi=1}else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]]}}return true};var G=new Global;AES.blockSize=4*4;AES.prototype.blockSize=AES.blockSize;AES.keySize=256/8;AES.prototype.keySize=AES.keySize;function bufferToArray(buf){var len=buf.length/4;var out=new Array(len);var i=-1;while(++i<len){out[i]=buf.readUInt32BE(i*4)}return out}function AES(key){this._key=bufferToArray(key);this._doReset()}AES.prototype._doReset=function(){var invKsRow,keySize,keyWords,ksRow,ksRows,t,_i,_j;keyWords=this._key;keySize=keyWords.length;this._nRounds=keySize+6;ksRows=(this._nRounds+1)*4;this._keySchedule=[];for(ksRow=_i=0;0<=ksRows?_i<ksRows:_i>ksRows;ksRow=0<=ksRows?++_i:--_i){this._keySchedule[ksRow]=ksRow<keySize?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[t&255],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[t&255]:void 0,this._keySchedule[ksRow-keySize]^t)}this._invKeySchedule=[];for(invKsRow=_j=0;0<=ksRows?_j<ksRows:_j>ksRows;invKsRow=0<=ksRows?++_j:--_j){ksRow=ksRows-invKsRow;t=this._keySchedule[ksRow-(invKsRow%4?0:4)];this._invKeySchedule[invKsRow]=invKsRow<4||ksRow<=4?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[t&255]]}return true};AES.prototype.encryptBlock=function(M){M=bufferToArray(new Buffer(M));var out=this._doCryptBlock(M,this._keySchedule,G.SUB_MIX,G.SBOX);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf};AES.prototype.decryptBlock=function(M){M=bufferToArray(new Buffer(M));var temp=[M[3],M[1]];M[1]=temp[0];M[3]=temp[1];var out=this._doCryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[3],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[1],12);return buf};AES.prototype.scrub=function(){scrub_vec(this._keySchedule);scrub_vec(this._invKeySchedule);scrub_vec(this._key)};AES.prototype._doCryptBlock=function(M,keySchedule,SUB_MIX,SBOX){var ksRow,round,s0,s1,s2,s3,t0,t1,t2,t3,_i,_ref;s0=M[0]^keySchedule[0];s1=M[1]^keySchedule[1];s2=M[2]^keySchedule[2];s3=M[3]^keySchedule[3];ksRow=4;for(round=_i=1,_ref=this._nRounds;1<=_ref?_i<_ref:_i>_ref;round=1<=_ref?++_i:--_i){t0=SUB_MIX[0][s0>>>24]^SUB_MIX[1][s1>>>16&255]^SUB_MIX[2][s2>>>8&255]^SUB_MIX[3][s3&255]^keySchedule[ksRow++];t1=SUB_MIX[0][s1>>>24]^SUB_MIX[1][s2>>>16&255]^SUB_MIX[2][s3>>>8&255]^SUB_MIX[3][s0&255]^keySchedule[ksRow++];t2=SUB_MIX[0][s2>>>24]^SUB_MIX[1][s3>>>16&255]^SUB_MIX[2][s0>>>8&255]^SUB_MIX[3][s1&255]^keySchedule[ksRow++];t3=SUB_MIX[0][s3>>>24]^SUB_MIX[1][s0>>>16&255]^SUB_MIX[2][s1>>>8&255]^SUB_MIX[3][s2&255]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3}t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[s3&255])^keySchedule[ksRow++];t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[s0&255])^keySchedule[ksRow++];t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[s1&255])^keySchedule[ksRow++];t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[s2&255])^keySchedule[ksRow++];return[fixup_uint32(t0),fixup_uint32(t1),fixup_uint32(t2),fixup_uint32(t3)]};exports.AES=AES}).call(this,require("buffer").Buffer)},{buffer:17}],28:[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("./cipherBase");var inherits=require("inherits");var GHASH=require("./ghash");var xor=require("./xor");inherits(StreamCipher,Transform);module.exports=StreamCipher;function StreamCipher(mode,key,iv,decrypt){if(!(this instanceof StreamCipher)){return new StreamCipher(mode,key,iv)}Transform.call(this);this._finID=Buffer.concat([iv,new Buffer([0,0,0,1])]);iv=Buffer.concat([iv,new Buffer([0,0,0,2])]);this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);this._cache=new Buffer("");this._secCache=new Buffer("");this._decrypt=decrypt;this._alen=0;this._len=0;iv.copy(this._prev);this._mode=mode;var h=new Buffer(4);h.fill(0);this._ghash=new GHASH(this._cipher.encryptBlock(h));this._authTag=null;this._called=false}StreamCipher.prototype._update=function(chunk){if(!this._called&&this._alen){var rump=16-this._alen%16;if(rump<16){rump=new Buffer(rump);rump.fill(0);this._ghash.update(rump)}}this._called=true;var out=this._mode.encrypt(this,chunk);if(this._decrypt){this._ghash.update(chunk)}else{this._ghash.update(out)}this._len+=chunk.length;return out};StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag){throw new Error("Unsupported state or unable to authenticate data")}var tag=xor(this._ghash.final(this._alen*8,this._len*8),this._cipher.encryptBlock(this._finID));if(this._decrypt){if(xorTest(tag,this._authTag)){throw new Error("Unsupported state or unable to authenticate data")}}else{this._authTag=tag}this._cipher.scrub()};StreamCipher.prototype.getAuthTag=function getAuthTag(){if(!this._decrypt&&Buffer.isBuffer(this._authTag)){return this._authTag}else{throw new Error("Attempting to get auth tag in unsupported state")}};StreamCipher.prototype.setAuthTag=function setAuthTag(tag){if(this._decrypt){this._authTag=tag}else{throw new Error("Attempting to set auth tag in unsupported state")}};StreamCipher.prototype.setAAD=function setAAD(buf){if(!this._called){this._ghash.update(buf);this._alen+=buf.length}else{throw new Error("Attempting to set AAD in unsupported state")}};function xorTest(a,b){var out=0;if(a.length!==b.length){out++}var len=Math.min(a.length,b.length);var i=-1;while(++i<len){out+=a[i]^b[i]}return out}}).call(this,require("buffer").Buffer)},{"./aes":27,"./cipherBase":29,"./ghash":32,"./xor":43,buffer:17,inherits:168}],29:[function(require,module,exports){(function(Buffer){var Transform=require("stream").Transform;var inherits=require("inherits");module.exports=CipherBase;inherits(CipherBase,Transform);function CipherBase(){Transform.call(this)}CipherBase.prototype.update=function(data,inputEnc,outputEnc){if(typeof data==="string"){data=new Buffer(data,inputEnc)}var outData=this._update(data);if(outputEnc){outData=outData.toString(outputEnc)}return outData};CipherBase.prototype._transform=function(data,_,next){this.push(this._update(data));next()};CipherBase.prototype._flush=function(next){try{this.push(this._final())}catch(e){return next(e)}next()};CipherBase.prototype.final=function(outputEnc){var outData=this._final()||new Buffer("");if(outputEnc){outData=outData.toString(outputEnc)}return outData}}).call(this,require("buffer").Buffer)},{buffer:17,inherits:168,stream:187}],30:[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("./cipherBase");var inherits=require("inherits");var modes=require("./modes");var StreamCipher=require("./streamCipher");var AuthCipher=require("./authCipher");var ebtk=require("./EVP_BytesToKey");inherits(Decipher,Transform);function Decipher(mode,key,iv){if(!(this instanceof Decipher)){return new Decipher(mode,key,iv)}Transform.call(this);this._cache=new Splitter;this._last=void 0;this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);iv.copy(this._prev);this._mode=mode;this._autopadding=true}Decipher.prototype._update=function(data){this._cache.add(data);var chunk;var thing;var out=[];while(chunk=this._cache.get(this._autopadding)){thing=this._mode.decrypt(this,chunk);out.push(thing)}return Buffer.concat(out)};Decipher.prototype._final=function(){ | |
var chunk=this._cache.flush();if(this._autopadding){return unpad(this._mode.decrypt(this,chunk))}else if(chunk){throw new Error("data not multiple of block length")}};Decipher.prototype.setAutoPadding=function(setTo){this._autopadding=!!setTo};function Splitter(){if(!(this instanceof Splitter)){return new Splitter}this.cache=new Buffer("")}Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])};Splitter.prototype.get=function(autoPadding){var out;if(autoPadding){if(this.cache.length>16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}else{if(this.cache.length>=16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}return null};Splitter.prototype.flush=function(){if(this.cache.length){return this.cache}};function unpad(last){var padded=last[15];var i=-1;while(++i<padded){if(last[i+(16-padded)]!==padded){throw new Error("unable to decrypt data")}}if(padded===16){return}return last.slice(0,16-padded)}var modelist={ECB:require("./modes/ecb"),CBC:require("./modes/cbc"),CFB:require("./modes/cfb"),CFB8:require("./modes/cfb8"),CFB1:require("./modes/cfb1"),OFB:require("./modes/ofb"),CTR:require("./modes/ctr"),GCM:require("./modes/ctr")};module.exports=function(crypto){function createDecipheriv(suite,password,iv){var config=modes[suite.toLowerCase()];if(!config){throw new TypeError("invalid suite type")}if(typeof iv==="string"){iv=new Buffer(iv)}if(typeof password==="string"){password=new Buffer(password)}if(password.length!==config.key/8){throw new TypeError("invalid key length "+password.length)}if(iv.length!==config.iv){throw new TypeError("invalid iv length "+iv.length)}if(config.type==="stream"){return new StreamCipher(modelist[config.mode],password,iv,true)}else if(config.type==="auth"){return new AuthCipher(modelist[config.mode],password,iv,true)}return new Decipher(modelist[config.mode],password,iv)}function createDecipher(suite,password){var config=modes[suite.toLowerCase()];if(!config){throw new TypeError("invalid suite type")}var keys=ebtk(crypto,password,config.key,config.iv);return createDecipheriv(suite,keys.key,keys.iv)}return{createDecipher:createDecipher,createDecipheriv:createDecipheriv}}}).call(this,require("buffer").Buffer)},{"./EVP_BytesToKey":26,"./aes":27,"./authCipher":28,"./cipherBase":29,"./modes":34,"./modes/cbc":35,"./modes/cfb":36,"./modes/cfb1":37,"./modes/cfb8":38,"./modes/ctr":39,"./modes/ecb":40,"./modes/ofb":41,"./streamCipher":42,buffer:17,inherits:168}],31:[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("./cipherBase");var inherits=require("inherits");var modes=require("./modes");var ebtk=require("./EVP_BytesToKey");var StreamCipher=require("./streamCipher");var AuthCipher=require("./authCipher");inherits(Cipher,Transform);function Cipher(mode,key,iv){if(!(this instanceof Cipher)){return new Cipher(mode,key,iv)}Transform.call(this);this._cache=new Splitter;this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);iv.copy(this._prev);this._mode=mode;this._autopadding=true}Cipher.prototype._update=function(data){this._cache.add(data);var chunk;var thing;var out=[];while(chunk=this._cache.get()){thing=this._mode.encrypt(this,chunk);out.push(thing)}return Buffer.concat(out)};Cipher.prototype._final=function(){var chunk=this._cache.flush();if(this._autopadding){chunk=this._mode.encrypt(this,chunk);this._cipher.scrub();return chunk}else if(chunk.toString("hex")!=="10101010101010101010101010101010"){this._cipher.scrub();throw new Error("data not multiple of block length")}};Cipher.prototype.setAutoPadding=function(setTo){this._autopadding=!!setTo};function Splitter(){if(!(this instanceof Splitter)){return new Splitter}this.cache=new Buffer("")}Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])};Splitter.prototype.get=function(){if(this.cache.length>15){var out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}return null};Splitter.prototype.flush=function(){var len=16-this.cache.length;var padBuff=new Buffer(len);var i=-1;while(++i<len){padBuff.writeUInt8(len,i)}var out=Buffer.concat([this.cache,padBuff]);return out};var modelist={ECB:require("./modes/ecb"),CBC:require("./modes/cbc"),CFB:require("./modes/cfb"),CFB8:require("./modes/cfb8"),CFB1:require("./modes/cfb1"),OFB:require("./modes/ofb"),CTR:require("./modes/ctr"),GCM:require("./modes/ctr")};module.exports=function(crypto){function createCipheriv(suite,password,iv){var config=modes[suite.toLowerCase()];if(!config){throw new TypeError("invalid suite type")}if(typeof iv==="string"){iv=new Buffer(iv)}if(typeof password==="string"){password=new Buffer(password)}if(password.length!==config.key/8){throw new TypeError("invalid key length "+password.length)}if(iv.length!==config.iv){throw new TypeError("invalid iv length "+iv.length)}if(config.type==="stream"){return new StreamCipher(modelist[config.mode],password,iv)}else if(config.type==="auth"){return new AuthCipher(modelist[config.mode],password,iv)}return new Cipher(modelist[config.mode],password,iv)}function createCipher(suite,password){var config=modes[suite.toLowerCase()];if(!config){throw new TypeError("invalid suite type")}var keys=ebtk(crypto,password,config.key,config.iv);return createCipheriv(suite,keys.key,keys.iv)}return{createCipher:createCipher,createCipheriv:createCipheriv}}}).call(this,require("buffer").Buffer)},{"./EVP_BytesToKey":26,"./aes":27,"./authCipher":28,"./cipherBase":29,"./modes":34,"./modes/cbc":35,"./modes/cfb":36,"./modes/cfb1":37,"./modes/cfb8":38,"./modes/ctr":39,"./modes/ecb":40,"./modes/ofb":41,"./streamCipher":42,buffer:17,inherits:168}],32:[function(require,module,exports){(function(Buffer){var zeros=new Buffer(16);zeros.fill(0);module.exports=GHASH;function GHASH(key){this.h=key;this.state=new Buffer(16);this.state.fill(0);this.cache=new Buffer("")}GHASH.prototype.ghash=function(block){var i=-1;while(++i<block.length){this.state[i]^=block[i]}this._multiply()};GHASH.prototype._multiply=function(){var Vi=toArray(this.h);var Zi=[0,0,0,0];var j,xi,lsb_Vi;var i=-1;while(++i<128){xi=(this.state[~~(i/8)]&1<<7-i%8)!==0;if(xi){Zi=xor(Zi,Vi)}lsb_Vi=(Vi[3]&1)!==0;for(j=3;j>0;j--){Vi[j]=Vi[j]>>>1|(Vi[j-1]&1)<<31}Vi[0]=Vi[0]>>>1;if(lsb_Vi){Vi[0]=Vi[0]^225<<24}}this.state=fromArray(Zi)};GHASH.prototype.update=function(buf){this.cache=Buffer.concat([this.cache,buf]);var chunk;while(this.cache.length>=16){chunk=this.cache.slice(0,16);this.cache=this.cache.slice(16);this.ghash(chunk)}};GHASH.prototype.final=function(abl,bl){if(this.cache.length){this.ghash(Buffer.concat([this.cache,zeros],16))}this.ghash(fromArray([0,abl,0,bl]));return this.state};function toArray(buf){return[buf.readUInt32BE(0),buf.readUInt32BE(4),buf.readUInt32BE(8),buf.readUInt32BE(12)]}function fromArray(out){out=out.map(fixup_uint32);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf}var uint_max=Math.pow(2,32);function fixup_uint32(x){var ret,x_pos;ret=x>uint_max||x<0?(x_pos=Math.abs(x)%uint_max,x<0?uint_max-x_pos:x_pos):x;return ret}function xor(a,b){return[a[0]^b[0],a[1]^b[1],a[2]^b[2],a[3]^b[3]]}}).call(this,require("buffer").Buffer)},{buffer:17}],33:[function(require,module,exports){module.exports=function(crypto,exports){exports=exports||{};var ciphers=require("./encrypter")(crypto);exports.createCipher=exports.Cipher=ciphers.createCipher;exports.createCipheriv=exports.Cipheriv=ciphers.createCipheriv;var deciphers=require("./decrypter")(crypto);exports.createDecipher=exports.Decipher=deciphers.createDecipher;exports.createDecipheriv=exports.Decipheriv=deciphers.createDecipheriv;var modes=require("./modes");function getCiphers(){return Object.keys(modes)}exports.listCiphers=exports.getCiphers=getCiphers}},{"./decrypter":30,"./encrypter":31,"./modes":34}],34:[function(require,module,exports){exports["aes-128-ecb"]={cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"};exports["aes-192-ecb"]={cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"};exports["aes-256-ecb"]={cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"};exports["aes-128-cbc"]={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"};exports["aes-192-cbc"]={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"};exports["aes-256-cbc"]={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"};exports["aes128"]=exports["aes-128-cbc"];exports["aes192"]=exports["aes-192-cbc"];exports["aes256"]=exports["aes-256-cbc"];exports["aes-128-cfb"]={cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"};exports["aes-192-cfb"]={cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"};exports["aes-256-cfb"]={cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"};exports["aes-128-cfb8"]={cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"};exports["aes-192-cfb8"]={cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"};exports["aes-256-cfb8"]={cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"};exports["aes-128-cfb1"]={cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"};exports["aes-192-cfb1"]={cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"};exports["aes-256-cfb1"]={cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"};exports["aes-128-ofb"]={cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"};exports["aes-192-ofb"]={cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"};exports["aes-256-ofb"]={cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"};exports["aes-128-ctr"]={cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"};exports["aes-192-ctr"]={cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"};exports["aes-256-ctr"]={cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"};exports["aes-128-gcm"]={cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"};exports["aes-192-gcm"]={cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"};exports["aes-256-gcm"]={cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}},{}],35:[function(require,module,exports){var xor=require("../xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);self._prev=self._cipher.encryptBlock(data);return self._prev};exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"../xor":43}],36:[function(require,module,exports){(function(Buffer){var xor=require("../xor");exports.encrypt=function(self,data,decrypt){var out=new Buffer("");var len;while(data.length){if(self._cache.length===0){self._cache=self._cipher.encryptBlock(self._prev);self._prev=new Buffer("")}if(self._cache.length<=data.length){len=self._cache.length;out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]);data=data.slice(len)}else{out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}}return out};function encryptStart(self,data,decrypt){var len=data.length;var out=xor(data,self._cache);self._cache=self._cache.slice(len);self._prev=Buffer.concat([self._prev,decrypt?data:out]);return out}}).call(this,require("buffer").Buffer)},{"../xor":43,buffer:17}],37:[function(require,module,exports){(function(Buffer){function encryptByte(self,byte,decrypt){var pad;var i=-1;var len=8;var out=0;var bit,value;while(++i<len){pad=self._cipher.encryptBlock(self._prev);bit=byte&1<<7-i?128:0;value=pad[0]^bit;out+=(value&128)>>i%8;self._prev=shiftIn(self._prev,decrypt?bit:value)}return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=new Buffer(len);var i=-1;while(++i<len){out[i]=encryptByte(self,chunk[i],decrypt)}return out};function shiftIn(buffer,value){var len=buffer.length;var i=-1;var out=new Buffer(buffer.length);buffer=Buffer.concat([buffer,new Buffer([value])]);while(++i<len){out[i]=buffer[i]<<1|buffer[i+1]>>7}return out}}).call(this,require("buffer").Buffer)},{buffer:17}],38:[function(require,module,exports){(function(Buffer){function encryptByte(self,byte,decrypt){var pad=self._cipher.encryptBlock(self._prev);var out=pad[0]^byte;self._prev=Buffer.concat([self._prev.slice(1),new Buffer([decrypt?byte:out])]);return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=new Buffer(len);var i=-1;while(++i<len){out[i]=encryptByte(self,chunk[i],decrypt)}return out}}).call(this,require("buffer").Buffer)},{buffer:17}],39:[function(require,module,exports){(function(Buffer){var xor=require("../xor");function getBlock(self){var out=self._cipher.encryptBlock(self._prev);incr32(self._prev);return out}exports.encrypt=function(self,chunk){while(self._cache.length<chunk.length){self._cache=Buffer.concat([self._cache,getBlock(self)])}var pad=self._cache.slice(0,chunk.length);self._cache=self._cache.slice(chunk.length);return xor(chunk,pad)};function incr32(iv){var len=iv.length;var item;while(len--){item=iv.readUInt8(len);if(item===255){iv.writeUInt8(0,len)}else{item++;iv.writeUInt8(item,len);break}}}}).call(this,require("buffer").Buffer)},{"../xor":43,buffer:17}],40:[function(require,module,exports){exports.encrypt=function(self,block){return self._cipher.encryptBlock(block)};exports.decrypt=function(self,block){return self._cipher.decryptBlock(block)}},{}],41:[function(require,module,exports){(function(Buffer){var xor=require("../xor");function getBlock(self){self._prev=self._cipher.encryptBlock(self._prev);return self._prev}exports.encrypt=function(self,chunk){while(self._cache.length<chunk.length){self._cache=Buffer.concat([self._cache,getBlock(self)])}var pad=self._cache.slice(0,chunk.length);self._cache=self._cache.slice(chunk.length);return xor(chunk,pad)}}).call(this,require("buffer").Buffer)},{"../xor":43,buffer:17}],42:[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("./cipherBase");var inherits=require("inherits");inherits(StreamCipher,Transform);module.exports=StreamCipher;function StreamCipher(mode,key,iv,decrypt){if(!(this instanceof StreamCipher)){return new StreamCipher(mode,key,iv)}Transform.call(this);this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);this._cache=new Buffer("");this._secCache=new Buffer("");this._decrypt=decrypt;iv.copy(this._prev);this._mode=mode}StreamCipher.prototype._update=function(chunk){return this._mode.encrypt(this,chunk,this._decrypt)};StreamCipher.prototype._final=function(){this._cipher.scrub()}}).call(this,require("buffer").Buffer)},{"./aes":27,"./cipherBase":29,buffer:17,inherits:168}],43:[function(require,module,exports){(function(Buffer){module.exports=xor;function xor(a,b){var len=Math.min(a.length,b.length);var out=new Buffer(len);var i=-1;while(++i<len){out.writeUInt8(a[i]^b[i],i)}return out}}).call(this,require("buffer").Buffer)},{buffer:17}],44:[function(require,module,exports){(function(Buffer){exports["RSA-SHA224"]=exports.sha224WithRSAEncryption={sign:"rsa",hash:"sha224",id:new Buffer("302d300d06096086480165030402040500041c","hex")};exports["RSA-SHA256"]=exports.sha256WithRSAEncryption={sign:"rsa",hash:"sha256",id:new Buffer("3031300d060960864801650304020105000420","hex")};exports["RSA-SHA384"]=exports.sha384WithRSAEncryption={sign:"rsa",hash:"sha384",id:new Buffer("3041300d060960864801650304020205000430","hex")};exports["RSA-SHA512"]=exports.sha512WithRSAEncryption={sign:"rsa",hash:"sha512",id:new Buffer("3051300d060960864801650304020305000440","hex")};exports["RSA-SHA1"]={sign:"rsa",hash:"sha1",id:new Buffer("3021300906052b0e03021a05000414","hex")};exports["ecdsa-with-SHA1"]={sign:"ecdsa",hash:"sha1",id:new Buffer("","hex")};exports.DSA=exports["DSA-SHA1"]=exports["DSA-SHA"]={sign:"dsa",hash:"sha1",id:new Buffer("","hex")};exports["RSA-RIPEMD160"]=exports.ripemd160WithRSA={sign:"rsa",hash:"rmd160",id:new Buffer("3021300906052b2403020105000414","hex")};exports["RSA-MD5"]=exports.md5WithRSAEncryption={sign:"rsa",hash:"md5",id:new Buffer("3020300c06082a864886f70d020505000410","hex")}}).call(this,require("buffer").Buffer)},{buffer:17}],45:[function(require,module,exports){(function(Buffer){var sign=require("./sign");var verify=require("./verify");var stream=require("stream");var inherits=require("inherits");var algos=require("./algos");"use strict";module.exports=function(exports,crypto){exports.createSign=exports.Sign=createSign;function createSign(algorithm){return new Sign(algorithm,crypto)}exports.createVerify=exports.Verify=createVerify;function createVerify(algorithm){return new Verify(algorithm,crypto)}};inherits(Sign,stream.Writable);function Sign(algorithm,crypto){stream.Writable.call(this);var data=algos[algorithm];if(!data){throw new Error("Unknown message digest")}this._hash=crypto.createHash(data.hash);this._tag=data.id;this._crypto=crypto}Sign.prototype._write=function _write(data,_,done){this._hash.update(data);done()};Sign.prototype.update=function update(data){this.write(data);return this};Sign.prototype.sign=function signMethod(key,enc){this.end();var hash=this._hash.digest();var sig=sign(Buffer.concat([this._tag,hash]),key,this._crypto);if(enc){sig=sig.toString(enc)}return sig};inherits(Verify,stream.Writable);function Verify(algorithm,crypto){stream.Writable.call(this);var data=algos[algorithm];if(!data){throw new Error("Unknown message digest")}this._hash=crypto.createHash(data.hash);this._tag=data.id}Verify.prototype._write=function _write(data,_,done){this._hash.update(data);done()};Verify.prototype.update=function update(data){this.write(data);return this};Verify.prototype.verify=function verifyMethod(key,sig,enc){this.end();var hash=this._hash.digest();if(!Buffer.isBuffer(sig)){sig=new Buffer(sig,enc)}return verify(sig,Buffer.concat([this._tag,hash]),key)}}).call(this,require("buffer").Buffer)},{"./algos":44,"./sign":89,"./verify":90,buffer:17,inherits:168,stream:187}],46:[function(require,module,exports){function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function assertEqual(l,r,msg){if(l!=r)throw new Error(msg||"Assertion failed: "+l+" != "+r)}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}function BN(number,base,endian){if(number!==null&&typeof number==="object"&&Array.isArray(number.words)){return number}this.sign=false;this.words=null;this.length=0;this.red=null;if(base==="le"||base==="be"){endian=base;base=10}if(number!==null)this._init(number||0,base||10,endian||"be")}if(typeof module==="object")module.exports=BN;BN.BN=BN;BN.wordSize=26;BN.prototype._init=function init(number,base,endian){if(typeof number==="number"){if(number<0){this.sign=true;number=-number}if(number<67108864){this.words=[number&67108863];this.length=1}else{this.words=[number&67108863,number/67108864&67108863];this.length=2}return}else if(typeof number==="object"){return this._initArray(number,base,endian)}if(base==="hex")base=16;assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,"");var start=0;if(number[0]==="-")start++;if(base===16)this._parseHex(number,start);else this._parseBase(number,base,start);if(number[0]==="-")this.sign=true;this.strip()};BN.prototype._initArray=function _initArray(number,base,endian){assert(typeof number.length==="number");this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var off=0;if(endian==="be"){for(var i=number.length-1,j=0;i>=0;i-=3){var w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}else if(endian==="le"){for(var i=0,j=0;i<number.length;i+=3){var w=number[i]|number[i+1]<<8|number[i+2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}return this.strip()};BN.prototype._parseHex=function parseHex(number,start){this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var off=0;for(var i=number.length-6,j=0;i>=start;i-=6){var w=parseInt(number.slice(i,i+6),16);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303;off+=24;if(off>=26){off-=26;j++}}if(i+6!==start){var w=parseInt(number.slice(start,i+6),16);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303}this.strip()};BN.prototype._parseBase=function parseBase(number,base,start){this.words=[0];this.length=1;var word=0;var q=1;var p=0;var bigQ=null;for(var i=start;i<number.length;i++){var digit;var ch=number[i];if(base===10||ch<="9")digit=ch|0;else if(ch>="a")digit=ch.charCodeAt(0)-97+10;else digit=ch.charCodeAt(0)-65+10;word*=base;word+=digit;q*=base;p++;if(q>1048575){assert(q<=67108863);if(!bigQ)bigQ=new BN(q);this.mul(bigQ).copy(this);this.iadd(new BN(word));word=0;q=1;p=0}}if(p!==0){this.mul(new BN(q)).copy(this);this.iadd(new BN(word))}};BN.prototype.copy=function copy(dest){dest.words=new Array(this.length);for(var i=0;i<this.length;i++)dest.words[i]=this.words[i];dest.length=this.length;dest.sign=this.sign;dest.red=this.red};BN.prototype.clone=function clone(){var r=new BN(null);this.copy(r);return r};BN.prototype.strip=function strip(){while(this.length>1&&this.words[this.length-1]===0)this.length--;return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0)this.sign=false;return this};BN.prototype.inspect=function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;if(base===16||base==="hex"){var out="";var off=0;var padding=padding|0||1;var carry=0;for(var i=0;i<this.length;i++){var w=this.words[i];var word=((w<<off|carry)&16777215).toString(16);carry=w>>>24-off&16777215;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out;off+=2;if(off>=26){off-=26;i--}}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out="0"+out;if(this.sign)out="-"+out;return out}else if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base];var groupBase=groupBases[base];var out="";var c=this.clone();c.sign=false;while(c.cmpn(0)!==0){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase);if(c.cmpn(0)!==0)out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.cmpn(0)===0)out="0"+out;if(this.sign)out="-"+out;return out}else{assert(false,"Base should be between 2 and 36")}};BN.prototype.toJSON=function toJSON(){return this.toString(16)};BN.prototype.toArray=function toArray(){this.strip();var res=new Array(this.byteLength());res[0]=0;var q=this.clone();for(var i=0;q.cmpn(0)!==0;i++){var b=q.andln(255);q.ishrn(8);res[res.length-i-1]=b}return res};BN.prototype._countBits=function _countBits(w){return w>=33554432?26:w>=16777216?25:w>=8388608?24:w>=4194304?23:w>=2097152?22:w>=1048576?21:w>=524288?20:w>=262144?19:w>=131072?18:w>=65536?17:w>=32768?16:w>=16384?15:w>=8192?14:w>=4096?13:w>=2048?12:w>=1024?11:w>=512?10:w>=256?9:w>=128?8:w>=64?7:w>=32?6:w>=16?5:w>=8?4:w>=4?3:w>=2?2:w>=1?1:0};BN.prototype.bitLength=function bitLength(){var hi=0;var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi};BN.prototype.byteLength=function byteLength(){var hi=0;var w=this.words[this.length-1];return Math.ceil(this.bitLength()/8)};BN.prototype.neg=function neg(){if(this.cmpn(0)===0)return this.clone();var r=this.clone();r.sign=!this.sign;return r};BN.prototype.iadd=function iadd(num){if(this.sign&&!num.sign){this.sign=false;var r=this.isub(num);this.sign=!this.sign;return this._normSign()}else if(!this.sign&&num.sign){num.sign=false;var r=this.isub(num);num.sign=true;return r._normSign()}var a;var b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){var r=a.words[i]+b.words[i]+carry;this.words[i]=r&67108863;carry=r>>>26}for(;carry!==0&&i<a.length;i++){var r=a.words[i]+carry;this.words[i]=r&67108863;carry=r>>>26}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++}else if(a!==this){for(;i<a.length;i++)this.words[i]=a.words[i]}return this};BN.prototype.add=function add(num){if(num.sign&&!this.sign){num.sign=false;var res=this.sub(num);num.sign=true;return res}else if(!num.sign&&this.sign){this.sign=false;var res=num.sub(this);this.sign=true;return res}if(this.length>num.length)return this.clone().iadd(num);else return num.clone().iadd(this)};BN.prototype.isub=function isub(num){if(num.sign){num.sign=false;var r=this.iadd(num);num.sign=true;return r._normSign()}else if(this.sign){this.sign=false;this.iadd(num);this.sign=true;return this._normSign()}var cmp=this.cmp(num);if(cmp===0){this.sign=false;this.length=1;this.words[0]=0;return this}if(cmp>0){var a=this;var b=num}else{var a=num;var b=this}var carry=0;for(var i=0;i<b.length;i++){var r=a.words[i]-b.words[i]-carry;if(r<0){r+=67108864;carry=1}else{carry=0}this.words[i]=r}for(;carry!==0&&i<a.length;i++){var r=a.words[i]-carry;if(r<0){r+=67108864;carry=1}else{carry=0}this.words[i]=r}if(carry===0&&i<a.length&&a!==this)for(;i<a.length;i++)this.words[i]=a.words[i];this.length=Math.max(this.length,i);if(a!==this)this.sign=true;return this.strip()};BN.prototype.sub=function sub(num){return this.clone().isub(num)};BN.prototype._smallMulTo=function _smallMulTo(num,out){out.sign=num.sign!==this.sign;out.length=this.length+num.length;var carry=0;for(var k=0;k<out.length-1;k++){var ncarry=carry>>>26;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-this.length+1);j<=maxJ;j++){var i=k-j;var a=this.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0}out.words[k]=rword;carry=ncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()};BN.prototype._bigMulTo=function _bigMulTo(num,out){out.sign=num.sign!==this.sign;out.length=this.length+num.length;var carry=0;var hncarry=0;for(var k=0;k<out.length-1;k++){var ncarry=hncarry;hncarry=0;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-this.length+1);j<=maxJ;j++){var i=k-j;var a=this.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0;hncarry+=ncarry>>>26;ncarry&=67108863}out.words[k]=rword;carry=ncarry;ncarry=hncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()};BN.prototype.mulTo=function mulTo(num,out){var res;if(this.length+num.length<63)res=this._smallMulTo(num,out);else res=this._bigMulTo(num,out);return res};BN.prototype.mul=function mul(num){var out=new BN(null);out.words=new Array(this.length+num.length);return this.mulTo(num,out)};BN.prototype.imul=function imul(num){if(this.cmpn(0)===0||num.cmpn(0)===0){this.words[0]=0;this.length=1;return this}var tlen=this.length;var nlen=num.length;this.sign=num.sign!==this.sign;this.length=this.length+num.length;this.words[this.length-1]=0;var lastCarry=0;for(var k=this.length-2;k>=0;k--){var carry=0;var rword=0;var maxJ=Math.min(k,nlen-1);for(var j=Math.max(0,k-tlen+1);j<=maxJ;j++){var i=k-j;var a=this.words[i];var b=num.words[j];var r=a*b;var lo=r&67108863;carry+=r/67108864|0;lo+=rword;rword=lo&67108863;carry+=lo>>>26}this.words[k]=rword;this.words[k+1]+=carry;carry=0}var carry=0;for(var i=1;i<this.length;i++){var w=this.words[i]+carry;this.words[i]=w&67108863;carry=w>>>26}return this.strip()};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.mul(this)};BN.prototype.ishln=function ishln(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;var carryMask=67108863>>>26-r<<26-r;var o=this.clone();if(r!==0){var carry=0;for(var i=0;i<this.length;i++){var newCarry=this.words[i]&carryMask;var c=this.words[i]-newCarry<<r;this.words[i]=c|carry;carry=newCarry>>>26-r}if(carry){this.words[i]=carry;this.length++}}if(s!==0){for(var i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(var i=0;i<s;i++)this.words[i]=0;this.length+=s}return this.strip()};BN.prototype.ishrn=function ishrn(bits,hint,extended){assert(typeof bits==="number"&&bits>=0);if(hint)hint=(hint-hint%26)/26;else hint=0;var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=67108863^67108863>>>r<<r;var maskedWords=extended;hint-=s;hint=Math.max(0,hint);if(maskedWords){for(var i=0;i<s;i++)maskedWords.words[i]=this.words[i];maskedWords.length=s}if(s===0){}else if(this.length>s){this.length-=s;for(var i=0;i<this.length;i++)this.words[i]=this.words[i+s]}else{this.words[0]=0;this.length=1}var carry=0;for(var i=this.length-1;i>=0&&(carry!==0||i>=hint);i--){var word=this.words[i];this.words[i]=carry<<26-r|word>>>r;carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0){this.words[0]=0;this.length=1}this.strip();if(extended)return{hi:this,lo:maskedWords};return this};BN.prototype.shln=function shln(bits){return this.clone().ishln(bits)};BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits)};BN.prototype.testn=function testn(bit){assert(typeof bit==="number"&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s){return false}var w=this.words[s];return!!(w&q)};BN.prototype.imaskn=function imaskn(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;assert(!this.sign,"imaskn works only with positive numbers");if(r!==0)s++;this.length=Math.min(s,this.length);if(r!==0){var mask=67108863^67108863>>>r<<r;this.words[this.length-1]&=mask}return this.strip()};BN.prototype.maskn=function maskn(bits){return this.clone().imaskn(bits)};BN.prototype.iaddn=function iaddn(num){assert(typeof num==="number");if(num<0)return this.isubn(-num);if(this.sign){if(this.length===1&&this.words[0]<num){this.words[0]=num-this.words[0];this.sign=false;return this}this.sign=false;this.isubn(num);this.sign=true;return this}this.words[0]+=num;for(var i=0;i<this.length&&this.words[i]>=67108864;i++){this.words[i]-=67108864;if(i===this.length-1)this.words[i+1]=1;else this.words[i+1]++}this.length=Math.max(this.length,i+1);return this};BN.prototype.isubn=function isubn(num){assert(typeof num==="number");if(num<0)return this.iaddn(-num);if(this.sign){this.sign=false;this.iaddn(num);this.sign=true;return this}this.words[0]-=num;for(var i=0;i<this.length&&this.words[i]<0;i++){this.words[i]+=67108864;this.words[i+1]-=1}return this.strip()};BN.prototype.addn=function addn(num){return this.clone().iaddn(num)};BN.prototype.subn=function subn(num){return this.clone().isubn(num)};BN.prototype.iabs=function iabs(){this.sign=false;return this};BN.prototype.abs=function abs(){return this.clone().iabs()};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;var q=mode!=="mod"&&new BN(0);var sign=false;while(a.length>b.length){var hi=a.words[a.length-1]*67108864+a.words[a.length-2];var sq=hi/b.words[b.length-1];var sqhi=sq/67108864|0;var sqlo=sq&67108863;sq=new BN(null);sq.words=[sqlo,sqhi];sq.length=2;var shift=(a.length-b.length-1)*26;if(q){var t=sq.shln(shift);if(a.sign)q.isub(t);else q.iadd(t)}sq=sq.mul(b).ishln(shift);if(a.sign)a.iadd(sq);else a.isub(sq)}while(a.ucmp(b)>=0){var hi=a.words[a.length-1];var sq=new BN(hi/b.words[b.length-1]|0);var shift=(a.length-b.length)*26;if(q){ | |
var t=sq.shln(shift);if(a.sign)q.isub(t);else q.iadd(t)}sq=sq.mul(b).ishln(shift);if(a.sign)a.iadd(sq);else a.isub(sq)}if(a.sign){if(q)q.isubn(1);a.iadd(b)}return{div:q?q:null,mod:a}};BN.prototype.divmod=function divmod(num,mode){assert(num.cmpn(0)!==0);if(this.sign&&!num.sign){var res=this.neg().divmod(num,mode);var div;var mod;if(mode!=="mod")div=res.div.neg();if(mode!=="div")mod=res.mod.cmpn(0)===0?res.mod:num.sub(res.mod);return{div:div,mod:mod}}else if(!this.sign&&num.sign){var res=this.divmod(num.neg(),mode);var div;if(mode!=="mod")div=res.div.neg();return{div:div,mod:res.mod}}else if(this.sign&&num.sign){return this.neg().divmod(num.neg(),mode)}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode==="div")return{div:this.divn(num.words[0]),mod:null};else if(mode==="mod")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)};BN.prototype.div=function div(num){return this.divmod(num,"div").div};BN.prototype.mod=function mod(num){return this.divmod(num,"mod").mod};BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);if(dm.mod.cmpn(0)===0)return dm.div;var mod=dm.div.sign?dm.mod.isub(num):dm.mod;var half=num.shrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.sign?dm.div.isubn(1):dm.div.iaddn(1)};BN.prototype.modn=function modn(num){assert(num<=67108863);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+this.words[i])%num;return acc};BN.prototype.idivn=function idivn(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=this.words[i]+carry*67108864;this.words[i]=w/num|0;carry=w%num}return this.strip()};BN.prototype.divn=function divn(num){return this.clone().idivn(num)};BN.prototype._egcd=function _egcd(x1,p){assert(!p.sign);assert(p.cmpn(0)!==0);var a=this;var b=p.clone();if(a.sign)a=a.mod(p);else a=a.clone();var x2=new BN(0);while(b.isEven())b.ishrn(1);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){while(a.isEven()){a.ishrn(1);if(x1.isEven())x1.ishrn(1);else x1.iadd(delta).ishrn(1)}while(b.isEven()){b.ishrn(1);if(x2.isEven())x2.ishrn(1);else x2.iadd(delta).ishrn(1)}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2)}else{b.isub(a);x2.isub(x1)}}if(a.cmpn(1)===0)return x1;else return x2};BN.prototype.gcd=function gcd(num){if(this.cmpn(0)===0)return num.clone();if(num.cmpn(0)===0)return this.clone();var a=this.clone();var b=num.clone();a.sign=false;b.sign=false;for(var shift=0;a.isEven()&&b.isEven();shift++){a.ishrn(1);b.ishrn(1)}while(a.isEven())a.ishrn(1);do{while(b.isEven())b.ishrn(1);if(a.cmp(b)<0){var t=a;a=b;b=t}a.isub(a.div(b).mul(b))}while(a.cmpn(0)!==0&&b.cmpn(0)!==0);if(a.cmpn(0)===0)return b.ishln(shift);else return a.ishln(shift)};BN.prototype.invm=function invm(num){return this._egcd(new BN(1),num).mod(num)};BN.prototype.isEven=function isEven(num){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(num){return(this.words[0]&1)===1};BN.prototype.andln=function andln(num){return this.words[0]&num};BN.prototype.bincn=function bincn(bit){assert(typeof bit==="number");var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s){for(var i=this.length;i<s+1;i++)this.words[i]=0;this.words[s]|=q;this.length=s+1;return this}var carry=q;for(var i=s;carry!==0&&i<this.length;i++){var w=this.words[i];w+=carry;carry=w>>>26;w&=67108863;this.words[i]=w}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.cmpn=function cmpn(num){var sign=num<0;if(sign)num=-num;if(this.sign&&!sign)return-1;else if(!this.sign&&sign)return 1;num&=67108863;this.strip();var res;if(this.length>1){res=1}else{var w=this.words[0];res=w===num?0:w<num?-1:1}if(this.sign)res=-res;return res};BN.prototype.cmp=function cmp(num){if(this.sign&&!num.sign)return-1;else if(!this.sign&&num.sign)return 1;var res=this.ucmp(num);if(this.sign)return-res;else return res};BN.prototype.ucmp=function ucmp(num){if(this.length>num.length)return 1;else if(this.length<num.length)return-1;var res=0;for(var i=this.length-1;i>=0;i--){var a=this.words[i];var b=num.words[i];if(a===b)continue;if(a<b)res=-1;else if(a>b)res=1;break}return res};BN.red=function red(num){return new Red(num)};BN.prototype.toRed=function toRed(ctx){assert(!this.red,"Already a number in reduction context");assert(!this.sign,"red works only with positives");return ctx.convertTo(this)._forceRed(ctx)};BN.prototype.fromRed=function fromRed(){assert(this.red,"fromRed works only with numbers in reduction context");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,"Already a number in reduction context");return this._forceRed(ctx)};BN.prototype.redAdd=function redAdd(num){assert(this.red,"redAdd works only with red numbers");return this.red.add(this,num)};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,"redIAdd works only with red numbers");return this.red.iadd(this,num)};BN.prototype.redSub=function redSub(num){assert(this.red,"redSub works only with red numbers");return this.red.sub(this,num)};BN.prototype.redISub=function redISub(num){assert(this.red,"redISub works only with red numbers");return this.red.isub(this,num)};BN.prototype.redShl=function redShl(num){assert(this.red,"redShl works only with red numbers");return this.red.shl(this,num)};BN.prototype.redMul=function redMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.mul(this,num)};BN.prototype.redIMul=function redIMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.imul(this,num)};BN.prototype.redSqr=function redSqr(){assert(this.red,"redSqr works only with red numbers");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,"redISqr works only with red numbers");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,"redSqrt works only with red numbers");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,"redInvm works only with red numbers");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,"redNeg works only with red numbers");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,"redPow(normalNum)");this.red._verify1(this);return this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).ishln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp};MPrime.prototype.ireduce=function ireduce(num){var r=num;var rlen;do{var pair=r.ishrn(this.n,0,this.tmp);r=this.imulK(pair.hi);r=r.iadd(pair.lo);rlen=r.bitLength()}while(rlen>this.n);var cmp=rlen<this.n?-1:r.cmp(this.p);if(cmp===0){r.words[0]=0;r.length=1}else if(cmp>0){r.isub(this.p)}else{r.strip()}return r};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k)};function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}inherits(K256,MPrime);K256.prototype.imulK=function imulK(num){num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;var uhi=0;var hi=0;var lo=0;for(var i=0;i<num.length;i++){var w=num.words[i];hi+=w*64;lo+=w*977;hi+=lo/67108864|0;uhi+=hi/67108864|0;hi&=67108863;lo&=67108863;num.words[i]=lo;lo=hi;hi=uhi;uhi=0}if(num.words[num.length-1]===0)num.length--;if(num.words[num.length-1]===0)num.length--;return num};function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}inherits(P224,MPrime);function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}inherits(P192,MPrime);function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}inherits(P25519,MPrime);P25519.prototype.imulK=function imulK(num){var carry=0;for(var i=0;i<num.length;i++){var hi=num.words[i]*19+carry;var lo=hi&67108863;hi>>>=26;num.words[i]=lo;carry=hi}if(carry!==0)num.words[num.length++]=carry;return num};BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if(name==="k256")prime=new K256;else if(name==="p224")prime=new P224;else if(name==="p192")prime=new P192;else if(name==="p25519")prime=new P25519;else throw new Error("Unknown prime "+name);primes[name]=prime;return prime};function Red(m){if(typeof m==="string"){var prime=BN._prime(m);this.m=prime.p;this.prime=prime}else{this.m=m;this.prime=null}}Red.prototype._verify1=function _verify1(a){assert(!a.sign,"red works only with positives");assert(a.red,"red works only with red numbers")};Red.prototype._verify2=function _verify2(a,b){assert(!a.sign&&!b.sign,"red works only with positives");assert(a.red&&a.red===b.red,"red works only with red numbers")};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.mod(this.m)._forceRed(this)};Red.prototype.neg=function neg(a){var r=a.clone();r.sign=!r.sign;return r.iadd(this.m)._forceRed(this)};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.shln(num))};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b))};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b))};Red.prototype.isqr=function isqr(a){return this.imul(a,a)};Red.prototype.sqr=function sqr(a){return this.mul(a,a)};Red.prototype.sqrt=function sqrt(a){if(a.cmpn(0)===0)return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);if(mod3===3){var pow=this.m.add(new BN(1)).ishrn(2);var r=this.pow(a,pow);return r}var q=this.m.subn(1);var s=0;while(q.cmpn(0)!==0&&q.andln(1)===0){s++;q.ishrn(1)}assert(q.cmpn(0)!==0);var one=new BN(1).toRed(this);var nOne=one.redNeg();var lpow=this.m.subn(1).ishrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q);var r=this.pow(a,q.addn(1).ishrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i<m);var b=this.pow(c,new BN(1).ishln(m-i-1));r=r.redMul(b);c=b.redSqr();t=t.redMul(c);m=i}return r};Red.prototype.invm=function invm(a){var inv=a._egcd(new BN(1),this.m);if(inv.sign){inv.sign=false;return this.imod(inv).redNeg()}else{return this.imod(inv)}};Red.prototype.pow=function pow(a,num){var w=[];var q=num.clone();while(q.cmpn(0)!==0){w.push(q.andln(1));q.ishrn(1)}var res=a;for(var i=0;i<w.length;i++,res=this.sqr(res))if(w[i]!==0)break;if(++i<w.length){for(var q=this.sqr(res);i<w.length;i++,q=this.sqr(q)){if(w[i]===0)continue;res=this.mul(res,q)}}return res};Red.prototype.convertTo=function convertTo(num){return num.clone()};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res};BN.mont=function mont(num){return new Mont(num)};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).ishln(this.shift);this.r2=this.imod(this.r.sqr());this.rinv=this.r.invm(this.m);this.minv=this.rinv.mul(this.r).sub(new BN(1)).div(this.m).neg().mod(this.r)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.shln(this.shift))};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r};Mont.prototype.imul=function imul(a,b){if(a.cmpn(0)===0||b.cmpn(0)===0){a.words[0]=0;a.length=1;return a}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).ishrn(this.shift);var res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)};Mont.prototype.mul=function mul(a,b){if(a.cmpn(0)===0||b.cmpn(0)===0)return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).ishrn(this.shift);var res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)};Mont.prototype.invm=function invm(a){var res=this.imod(a.invm(this.m).mul(this.r2));return res._forceRed(this)}},{}],47:[function(require,module,exports){(function(Buffer){var bn=require("bn.js");module.exports=crt;function blind(priv,crypto){var r=getr(priv,crypto);var blinder=r.toRed(bn.mont(priv.modulus)).redPow(new bn(priv.publicExponent)).fromRed();return{blinder:blinder,unblinder:r.invm(priv.modulus)}}function crt(msg,priv,crypto){var blinds=blind(priv,crypto);var len=priv.modulus.byteLength();var mod=bn.mont(priv.modulus);var blinded=new bn(msg).mul(blinds.blinder).mod(priv.modulus);var c1=blinded.toRed(bn.mont(priv.prime1));var c2=blinded.toRed(bn.mont(priv.prime2));var qinv=priv.coefficient;var p=priv.prime1;var q=priv.prime2;var m1=c1.redPow(priv.exponent1);var m2=c2.redPow(priv.exponent2);m1=m1.fromRed();m2=m2.fromRed();var h=m1.isub(m2).imul(qinv).mod(p);h.imul(q);m2.iadd(h);var out=new Buffer(m2.imul(blinds.unblinder).mod(priv.modulus).toArray());if(out.length<len){var prefix=new Buffer(len-out.length);prefix.fill(0);out=Buffer.concat([prefix,out],len)}return out}crt.getr=getr;function getr(priv,crypto){var len=priv.modulus.byteLength();var r=new bn(crypto.randomBytes(len));while(r.cmp(priv.modulus)>=0||!r.mod(priv.prime1)||!r.mod(priv.prime2)){r=new bn(crypto.randomBytes(len))}return r}}).call(this,require("buffer").Buffer)},{"bn.js":48,buffer:17}],48:[function(require,module,exports){arguments[4][46][0].apply(exports,arguments)},{dup:46}],49:[function(require,module,exports){var elliptic=exports;elliptic.version=require("../package.json").version;elliptic.utils=require("./elliptic/utils");elliptic.rand=require("brorand");elliptic.hmacDRBG=require("./elliptic/hmac-drbg");elliptic.curve=require("./elliptic/curve");elliptic.curves=require("./elliptic/curves");elliptic.ec=require("./elliptic/ec")},{"../package.json":68,"./elliptic/curve":52,"./elliptic/curves":55,"./elliptic/ec":56,"./elliptic/hmac-drbg":59,"./elliptic/utils":60,brorand:61}],50:[function(require,module,exports){var assert=require("assert");var bn=require("bn.js");var elliptic=require("../../elliptic");var getNAF=elliptic.utils.getNAF;var getJSF=elliptic.utils.getJSF;function BaseCurve(type,conf){this.type=type;this.p=new bn(conf.p,16);this.red=conf.prime?bn.red(conf.prime):bn.mont(this.p);this.zero=new bn(0).toRed(this.red);this.one=new bn(1).toRed(this.red);this.two=new bn(2).toRed(this.red);this.n=conf.n&&new bn(conf.n,16);this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed);this._wnafT1=new Array(4);this._wnafT2=new Array(4);this._wnafT3=new Array(4);this._wnafT4=new Array(4)}module.exports=BaseCurve;BaseCurve.prototype.point=function point(){throw new Error("Not implemented")};BaseCurve.prototype.validate=function validate(point){throw new Error("Not implemented")};BaseCurve.prototype._fixedNafMul=function _fixedNafMul(p,k){var doubles=p._getDoubles();var naf=getNAF(k,1);var I=(1<<doubles.step+1)-(doubles.step%2===0?2:1);I/=3;var repr=[];for(var j=0;j<naf.length;j+=doubles.step){var nafW=0;for(var k=j+doubles.step-1;k>=j;k--)nafW=(nafW<<1)+naf[k];repr.push(nafW)}var a=this.jpoint(null,null,null);var b=this.jpoint(null,null,null);for(var i=I;i>0;i--){for(var j=0;j<repr.length;j++){var nafW=repr[j];if(nafW===i)b=b.mixedAdd(doubles.points[j]);else if(nafW===-i)b=b.mixedAdd(doubles.points[j].neg())}a=a.add(b)}return a.toP()};BaseCurve.prototype._wnafMul=function _wnafMul(p,k){var w=4;var nafPoints=p._getNAFPoints(w);w=nafPoints.wnd;var wnd=nafPoints.points;var naf=getNAF(k,w);var acc=this.jpoint(null,null,null);for(var i=naf.length-1;i>=0;i--){for(var k=0;i>=0&&naf[i]===0;i--)k++;if(i>=0)k++;acc=acc.dblp(k);if(i<0)break;var z=naf[i];assert(z!==0);if(p.type==="affine"){if(z>0)acc=acc.mixedAdd(wnd[z-1>>1]);else acc=acc.mixedAdd(wnd[-z-1>>1].neg())}else{if(z>0)acc=acc.add(wnd[z-1>>1]);else acc=acc.add(wnd[-z-1>>1].neg())}}return p.type==="affine"?acc.toP():acc};BaseCurve.prototype._wnafMulAdd=function _wnafMulAdd(defW,points,coeffs,len){var wndWidth=this._wnafT1;var wnd=this._wnafT2;var naf=this._wnafT3;var max=0;for(var i=0;i<len;i++){var p=points[i];var nafPoints=p._getNAFPoints(defW);wndWidth[i]=nafPoints.wnd;wnd[i]=nafPoints.points}for(var i=len-1;i>=1;i-=2){var a=i-1;var b=i;if(wndWidth[a]!==1||wndWidth[b]!==1){naf[a]=getNAF(coeffs[a],wndWidth[a]);naf[b]=getNAF(coeffs[b],wndWidth[b]);max=Math.max(naf[a].length,max);max=Math.max(naf[b].length,max);continue}var comb=[points[a],null,null,points[b]];if(points[a].y.cmp(points[b].y)===0){comb[1]=points[a].add(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg())}else if(points[a].y.cmp(points[b].y.redNeg())===0){comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].add(points[b].neg())}else{comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg())}var index=[-3,-1,-5,-7,0,7,5,1,3];var jsf=getJSF(coeffs[a],coeffs[b]);max=Math.max(jsf[0].length,max);naf[a]=new Array(max);naf[b]=new Array(max);for(var j=0;j<max;j++){var ja=jsf[0][j]|0;var jb=jsf[1][j]|0;naf[a][j]=index[(ja+1)*3+(jb+1)];naf[b][j]=0;wnd[a]=comb}}var acc=this.jpoint(null,null,null);var tmp=this._wnafT4;for(var i=max;i>=0;i--){var k=0;while(i>=0){var zero=true;for(var j=0;j<len;j++){tmp[j]=naf[j][i]|0;if(tmp[j]!==0)zero=false}if(!zero)break;k++;i--}if(i>=0)k++;acc=acc.dblp(k);if(i<0)break;for(var j=0;j<len;j++){var z=tmp[j];var p;if(z===0)continue;else if(z>0)p=wnd[j][z-1>>1];else if(z<0)p=wnd[j][-z-1>>1].neg();if(p.type==="affine")acc=acc.mixedAdd(p);else acc=acc.add(p)}}for(var i=0;i<len;i++)wnd[i]=null;return acc.toP()};BaseCurve.BasePoint=BasePoint;function BasePoint(curve,type){this.curve=curve;this.type=type;this.precomputed=null}BasePoint.prototype.validate=function validate(){return this.curve.validate(this)};BasePoint.prototype.precompute=function precompute(power,_beta){if(this.precomputed)return this;var precomputed={doubles:null,naf:null,beta:null};precomputed.naf=this._getNAFPoints(8);precomputed.doubles=this._getDoubles(4,power);precomputed.beta=this._getBeta();this.precomputed=precomputed;return this};BasePoint.prototype._getDoubles=function _getDoubles(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var doubles=[this];var acc=this;for(var i=0;i<power;i+=step){for(var j=0;j<step;j++)acc=acc.dbl();doubles.push(acc)}return{step:step,points:doubles}};BasePoint.prototype._getNAFPoints=function _getNAFPoints(wnd){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;var res=[this];var max=(1<<wnd)-1;var dbl=max===1?null:this.dbl();for(var i=1;i<max;i++)res[i]=res[i-1].add(dbl);return{wnd:wnd,points:res}};BasePoint.prototype._getBeta=function _getBeta(){return null};BasePoint.prototype.dblp=function dblp(k){var r=this;for(var i=0;i<k;i++)r=r.dbl();return r}},{"../../elliptic":49,assert:2,"bn.js":46}],51:[function(require,module,exports){var assert=require("assert");var curve=require("../curve");var elliptic=require("../../elliptic");var bn=require("bn.js");var inherits=require("inherits");var Base=curve.base;var getNAF=elliptic.utils.getNAF;function EdwardsCurve(conf){this.twisted=conf.a!=1;this.mOneA=this.twisted&&conf.a==-1;this.extended=this.mOneA;Base.call(this,"mont",conf);this.a=new bn(conf.a,16).mod(this.red.m).toRed(this.red);this.c=new bn(conf.c,16).toRed(this.red);this.c2=this.c.redSqr();this.d=new bn(conf.d,16).toRed(this.red);this.dd=this.d.redAdd(this.d);assert(!this.twisted||this.c.fromRed().cmpn(1)===0);this.oneC=conf.c==1}inherits(EdwardsCurve,Base);module.exports=EdwardsCurve;EdwardsCurve.prototype._mulA=function _mulA(num){if(this.mOneA)return num.redNeg();else return this.a.redMul(num)};EdwardsCurve.prototype._mulC=function _mulC(num){if(this.oneC)return num;else return this.c.redMul(num)};EdwardsCurve.prototype.point=function point(x,y,z,t){return new Point(this,x,y,z,t)};EdwardsCurve.prototype.jpoint=function jpoint(x,y,z,t){return this.point(x,y,z,t)};EdwardsCurve.prototype.pointFromJSON=function pointFromJSON(obj){return Point.fromJSON(this,obj)};EdwardsCurve.prototype.pointFromX=function pointFromX(odd,x){x=new bn(x,16);if(!x.red)x=x.toRed(this.red);var x2=x.redSqr();var rhs=this.c2.redSub(this.a.redMul(x2));var lhs=this.one.redSub(this.c2.redMul(this.d).redMul(x2));var y=rhs.redMul(lhs.redInvm()).redSqrt();var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y,curve.one)};EdwardsCurve.prototype.validate=function validate(point){if(point.isInfinity())return true;point.normalize();var x2=point.x.redSqr();var y2=point.y.redSqr();var lhs=x2.redMul(this.a).redAdd(y2);var rhs=this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));return lhs.cmp(rhs)===0};function Point(curve,x,y,z,t){Base.BasePoint.call(this,curve,"projective");if(x===null&&y===null&&z===null){this.x=this.curve.zero;this.y=this.curve.one;this.z=this.curve.one;this.t=this.curve.zero;this.zOne=true}else{this.x=new bn(x,16);this.y=new bn(y,16);this.z=z?new bn(z,16):this.curve.one;this.t=t&&new bn(t,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);if(this.t&&!this.t.red)this.t=this.t.toRed(this.curve.red);this.zOne=this.z===this.curve.one;if(this.curve.extended&&!this.t){this.t=this.x.redMul(this.y);if(!this.zOne)this.t=this.t.redMul(this.z.redInvm())}}}inherits(Point,Base.BasePoint);Point.fromJSON=function fromJSON(curve,obj){return new Point(curve,obj[0],obj[1],obj[2])};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.x.cmpn(0)===0&&this.y.cmp(this.z)===0};Point.prototype._extDbl=function _extDbl(){var a=this.x.redSqr();var b=this.y.redSqr();var c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a);var e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);var g=d.redAdd(b);var f=g.redSub(c);var h=d.redSub(b);var nx=e.redMul(f);var ny=g.redMul(h);var nt=e.redMul(h);var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projDbl=function _projDbl(){var b=this.x.redAdd(this.y).redSqr();var c=this.x.redSqr();var d=this.y.redSqr();if(this.curve.twisted){var e=this.curve._mulA(c);var f=e.redAdd(d);if(this.zOne){var nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));var ny=f.redMul(e.redSub(d));var nz=f.redSqr().redSub(f).redSub(f)}else{var h=this.z.redSqr();var j=f.redSub(h).redISub(h);var nx=b.redSub(c).redISub(d).redMul(j);var ny=f.redMul(e.redSub(d));var nz=f.redMul(j)}}else{var e=c.redAdd(d);var h=this.curve._mulC(redMul(this.z)).redSqr();var j=e.redSub(h).redSub(h);var nx=this.curve._mulC(b.redISub(e)).redMul(j);var ny=this.curve._mulC(e).redMul(c.redISub(d));var nz=e.redMul(j)}return this.curve.point(nx,ny,nz)};Point.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.extended)return this._extDbl();else return this._projDbl()};Point.prototype._extAdd=function _extAdd(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x));var b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));var c=this.t.redMul(this.curve.dd).redMul(p.t);var d=this.z.redMul(p.z.redAdd(p.z));var e=b.redSub(a);var f=d.redSub(c);var g=d.redAdd(c);var h=b.redAdd(a);var nx=e.redMul(f);var ny=g.redMul(h);var nt=e.redMul(h);var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projAdd=function _projAdd(p){var a=this.z.redMul(p.z);var b=a.redSqr();var c=this.x.redMul(p.x);var d=this.y.redMul(p.y);var e=this.curve.d.redMul(c).redMul(d);var f=b.redSub(e);var g=b.redAdd(e);var tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);var nx=a.redMul(f).redMul(tmp);if(this.curve.twisted){var ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));var nz=f.redMul(g)}else{var ny=a.redMul(g).redMul(d.redSub(c));var nz=this.curve._mulC(f).redMul(g)}return this.curve.point(nx,ny,nz)};Point.prototype.add=function add(p){if(this.isInfinity())return p;if(p.isInfinity())return this;if(this.curve.extended)return this._extAdd(p);else return this._projAdd(p)};Point.prototype.mul=function mul(k){if(this.precomputed&&this.precomputed.doubles)return this.curve._fixedNafMul(this,k);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function mulAdd(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2)};Point.prototype.normalize=function normalize(){if(this.zOne)return this;var zi=this.z.redInvm();this.x=this.x.redMul(zi);this.y=this.y.redMul(zi);if(this.t)this.t=this.t.redMul(zi);this.z=this.curve.one;this.zOne=true;return this};Point.prototype.neg=function neg(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()};Point.prototype.getY=function getY(){this.normalize();return this.y.fromRed()};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add},{"../../elliptic":49,"../curve":52,assert:2,"bn.js":46,inherits:168}],52:[function(require,module,exports){var curve=exports;curve.base=require("./base");curve.short=require("./short");curve.mont=require("./mont");curve.edwards=require("./edwards")},{"./base":50,"./edwards":51,"./mont":53,"./short":54}],53:[function(require,module,exports){var assert=require("assert");var curve=require("../curve");var elliptic=require("../../elliptic");var bn=require("bn.js");var inherits=require("inherits");var Base=curve.base;var getNAF=elliptic.utils.getNAF;function MontCurve(conf){Base.call(this,"mont",conf);this.a=new bn(conf.a,16).toRed(this.red);this.b=new bn(conf.b,16).toRed(this.red);this.i4=new bn(4).toRed(this.red).redInvm();this.two=new bn(2).toRed(this.red);this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits(MontCurve,Base);module.exports=MontCurve;MontCurve.prototype.point=function point(x,z){return new Point(this,x,z)};MontCurve.prototype.pointFromJSON=function pointFromJSON(obj){return Point.fromJSON(this,obj)};MontCurve.prototype.validate=function validate(point){var x=point.normalize().x;var x2=x.redSqr();var rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);var y=rhs.redSqrt();return y.redSqr().cmp(rhs)===0};function Point(curve,x,z){Base.BasePoint.call(this,curve,"projective");if(x===null&&z===null){this.x=this.curve.one;this.z=this.curve.zero}else{this.x=new bn(x,16);this.z=new bn(z,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red)}}inherits(Point,Base.BasePoint);Point.prototype.precompute=function precompute(){};Point.fromJSON=function fromJSON(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0};Point.prototype.dbl=function dbl(){var a=this.x.redAdd(this.z);var aa=a.redSqr();var b=this.x.redSub(this.z);var bb=b.redSqr();var c=aa.redSub(bb);var nx=aa.redMul(bb);var nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)};Point.prototype.add=function add(p){throw new Error("Not supported on Montgomery curve")};Point.prototype.diffAdd=function diffAdd(p,diff){var a=this.x.redAdd(this.z);var b=this.x.redSub(this.z);var c=p.x.redAdd(p.z);var d=p.x.redSub(p.z);var da=d.redMul(a);var cb=c.redMul(b);var nx=diff.z.redMul(da.redAdd(cb).redSqr());var nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)};Point.prototype.mul=function mul(k){var t=k.clone();var a=this;var b=this.curve.point(null,null);var c=this;for(var bits=[];t.cmpn(0)!==0;t.ishrn(1))bits.push(t.andln(1));for(var i=bits.length-1;i>=0;i--){if(bits[i]===0){a=a.diffAdd(b,c);b=b.dbl()}else{b=a.diffAdd(b,c);a=a.dbl()}}return b};Point.prototype.mulAdd=function mulAdd(){throw new Error("Not supported on Montgomery curve")};Point.prototype.normalize=function normalize(){this.x=this.x.redMul(this.z.redInvm());this.z=this.curve.one;return this};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()}},{"../../elliptic":49,"../curve":52,assert:2,"bn.js":46,inherits:168}],54:[function(require,module,exports){var assert=require("assert");var curve=require("../curve");var elliptic=require("../../elliptic");var bn=require("bn.js");var inherits=require("inherits");var Base=curve.base;var getNAF=elliptic.utils.getNAF;function ShortCurve(conf){Base.call(this,"short",conf);this.a=new bn(conf.a,16).toRed(this.red);this.b=new bn(conf.b,16).toRed(this.red);this.tinv=this.two.redInvm();this.zeroA=this.a.fromRed().cmpn(0)===0;this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0;this.endo=this._getEndomorphism(conf);this._endoWnafT1=new Array(4);this._endoWnafT2=new Array(4)}inherits(ShortCurve,Base);module.exports=ShortCurve;ShortCurve.prototype._getEndomorphism=function _getEndomorphism(conf){if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;var beta;var lambda;if(conf.beta){beta=new bn(conf.beta,16).toRed(this.red)}else{var betas=this._getEndoRoots(this.p);beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1];beta=beta.toRed(this.red)}if(conf.lambda){lambda=new bn(conf.lambda,16)}else{var lambdas=this._getEndoRoots(this.n);if(this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))===0){lambda=lambdas[0]}else{lambda=lambdas[1];assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))===0)}}var basis;if(conf.basis){basis=conf.basis.map(function(vec){return{a:new bn(vec.a,16),b:new bn(vec.b,16)}})}else{basis=this._getEndoBasis(lambda)}return{beta:beta,lambda:lambda,basis:basis}};ShortCurve.prototype._getEndoRoots=function _getEndoRoots(num){var red=num===this.p?this.red:bn.mont(num);var tinv=new bn(2).toRed(red).redInvm();var ntinv=tinv.redNeg();var one=new bn(1).toRed(red);var s=new bn(3).toRed(red).redNeg().redSqrt().redMul(tinv);var l1=ntinv.redAdd(s).fromRed();var l2=ntinv.redSub(s).fromRed();return[l1,l2]};ShortCurve.prototype._getEndoBasis=function _getEndoBasis(lambda){var aprxSqrt=this.n.shrn(Math.floor(this.n.bitLength()/2));var u=lambda;var v=this.n.clone();var x1=new bn(1);var y1=new bn(0);var x2=new bn(0);var y2=new bn(1);var a0;var b0;var a1;var b1;var a2;var b2;var prevR;var i=0;while(u.cmpn(0)!==0){var q=v.div(u);var r=v.sub(q.mul(u));var x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0){a0=prevR.neg();b0=x1;a1=r.neg();b1=x}else if(a1&&++i===2){break}prevR=r;v=u;u=r;x2=x1;x1=x;y2=y1;y1=y}a2=r.neg();b2=x;var len1=a1.sqr().add(b1.sqr());var len2=a2.sqr().add(b2.sqr());if(len2.cmp(len1)>=0){a2=a0;b2=b0}if(a1.sign){a1=a1.neg();b1=b1.neg()}if(a2.sign){a2=a2.neg();b2=b2.neg()}return[{a:a1,b:b1},{a:a2,b:b2}]};ShortCurve.prototype._endoSplit=function _endoSplit(k){var basis=this.endo.basis;var v1=basis[0];var v2=basis[1];var c1=v2.b.mul(k).divRound(this.n);var c2=v1.b.neg().mul(k).divRound(this.n); | |
var p1=c1.mul(v1.a);var p2=c2.mul(v2.a);var q1=c1.mul(v1.b);var q2=c2.mul(v2.b);var k1=k.sub(p1).sub(p2);var k2=q1.add(q2).neg();return{k1:k1,k2:k2}};ShortCurve.prototype.point=function point(x,y,isRed){return new Point(this,x,y,isRed)};ShortCurve.prototype.pointFromX=function pointFromX(odd,x){x=new bn(x,16);if(!x.red)x=x.toRed(this.red);var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);var y=y2.redSqrt();var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};ShortCurve.prototype.jpoint=function jpoint(x,y,z){return new JPoint(this,x,y,z)};ShortCurve.prototype.pointFromJSON=function pointFromJSON(obj,red){return Point.fromJSON(this,obj,red)};ShortCurve.prototype.validate=function validate(point){if(point.inf)return true;var x=point.x;var y=point.y;var ax=this.a.redMul(x);var rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return y.redSqr().redISub(rhs).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function _endoWnafMulAdd(points,coeffs){var npoints=this._endoWnafT1;var ncoeffs=this._endoWnafT2;for(var i=0;i<points.length;i++){var split=this._endoSplit(coeffs[i]);var p=points[i];var beta=p._getBeta();if(split.k1.sign){split.k1.sign=!split.k1.sign;p=p.neg(true)}if(split.k2.sign){split.k2.sign=!split.k2.sign;beta=beta.neg(true)}npoints[i*2]=p;npoints[i*2+1]=beta;ncoeffs[i*2]=split.k1;ncoeffs[i*2+1]=split.k2}var res=this._wnafMulAdd(1,npoints,ncoeffs,i*2);for(var j=0;j<i*2;j++){npoints[j]=null;ncoeffs[j]=null}return res};function Point(curve,x,y,isRed){Base.BasePoint.call(this,curve,"affine");if(x===null&&y===null){this.x=null;this.y=null;this.inf=true}else{this.x=new bn(x,16);this.y=new bn(y,16);if(isRed){this.x.forceRed(this.curve.red);this.y.forceRed(this.curve.red)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);this.inf=false}}inherits(Point,Base.BasePoint);Point.prototype._getBeta=function _getBeta(){if(!this.curve.endo)return;var pre=this.precomputed;if(pre&&pre.beta)return pre.beta;var beta=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(pre){var curve=this.curve;function endoMul(p){return curve.point(p.x.redMul(curve.endo.beta),p.y)}pre.beta=beta;beta.precomputed={beta:null,naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(endoMul)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(endoMul)}}}return beta};Point.prototype.toJSON=function toJSON(){if(!this.precomputed)return[this.x,this.y];return[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]};Point.fromJSON=function fromJSON(curve,obj,red){if(typeof obj==="string")obj=JSON.parse(obj);var res=curve.point(obj[0],obj[1],red);if(!obj[2])return res;function obj2point(obj){return curve.point(obj[0],obj[1],red)}var pre=obj[2];res.precomputed={beta:null,doubles:pre.doubles&&{step:pre.doubles.step,points:[res].concat(pre.doubles.points.map(obj2point))},naf:pre.naf&&{wnd:pre.naf.wnd,points:[res].concat(pre.naf.points.map(obj2point))}};return res};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.inf};Point.prototype.add=function add(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(this.x.cmp(p.x)===0)return this.curve.point(null,null);var c=this.y.redSub(p.y);if(c.cmpn(0)!==0)c=c.redMul(this.x.redSub(p.x).redInvm());var nx=c.redSqr().redISub(this.x).redISub(p.x);var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.dbl=function dbl(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(ys1.cmpn(0)===0)return this.curve.point(null,null);var a=this.curve.a;var x2=this.x.redSqr();var dyinv=ys1.redInvm();var c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);var nx=c.redSqr().redISub(this.x.redAdd(this.x));var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.getX=function getX(){return this.x.fromRed()};Point.prototype.getY=function getY(){return this.y.fromRed()};Point.prototype.mul=function mul(k){k=new bn(k,16);if(this.precomputed&&this.precomputed.doubles)return this.curve._fixedNafMul(this,k);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[k]);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function mulAdd(k1,p2,k2){var points=[this,p2];var coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs);else return this.curve._wnafMulAdd(1,points,coeffs,2)};Point.prototype.eq=function eq(p){return this===p||this.inf===p.inf&&(this.inf||this.x.cmp(p.x)===0&&this.y.cmp(p.y)===0)};Point.prototype.neg=function neg(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed;function negate(p){return p.neg()}res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res};Point.prototype.toJ=function toJ(){if(this.inf)return this.curve.jpoint(null,null,null);var res=this.curve.jpoint(this.x,this.y,this.curve.one);return res};function JPoint(curve,x,y,z){Base.BasePoint.call(this,curve,"jacobian");if(x===null&&y===null&&z===null){this.x=this.curve.one;this.y=this.curve.one;this.z=new bn(0)}else{this.x=new bn(x,16);this.y=new bn(y,16);this.z=new bn(z,16)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one}inherits(JPoint,Base.BasePoint);JPoint.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm();var zinv2=zinv.redSqr();var ax=this.x.redMul(zinv2);var ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)};JPoint.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function add(p){if(this.isInfinity())return p;if(p.isInfinity())return this;var pz2=p.z.redSqr();var z2=this.z.redSqr();var u1=this.x.redMul(pz2);var u2=p.x.redMul(z2);var s1=this.y.redMul(pz2.redMul(p.z));var s2=p.y.redMul(z2.redMul(this.z));var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mixedAdd=function mixedAdd(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr();var u1=this.x;var u2=p.x.redMul(z2);var s1=this.y;var s2=p.y.redMul(z2).redMul(this.z);var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.dblp=function dblp(pow){if(pow===0)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();if(this.curve.zeroA||this.curve.threeA){var r=this;for(var i=0;i<pow;i++)r=r.dbl();return r}var a=this.curve.a;var tinv=this.curve.tinv;var jx=this.x;var jy=this.y;var jz=this.z;var jz4=jz.redSqr().redSqr();var jyd=jy.redAdd(jy);for(var i=0;i<pow;i++){var jx2=jx.redSqr();var jyd2=jyd.redSqr();var jyd4=jyd2.redSqr();var c=jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));var t1=jx.redMul(jyd2);var nx=c.redSqr().redISub(t1.redAdd(t1));var t2=t1.redISub(nx);var dny=c.redMul(t2);dny=dny.redIAdd(dny).redISub(jyd4);var nz=jyd.redMul(jz);if(i+1<pow)jz4=jz4.redMul(jyd4);jx=nx;jz=nz;jyd=dny}return this.curve.jpoint(jx,jyd.redMul(tinv),jz)};JPoint.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.zeroA)return this._zeroDbl();else if(this.curve.threeA)return this._threeDbl();else return this._dbl()};JPoint.prototype._zeroDbl=function _zeroDbl(){if(this.zOne){var xx=this.x.redSqr();var yy=this.y.redSqr();var yyyy=yy.redSqr();var s=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);s=s.redIAdd(s);var m=xx.redAdd(xx).redIAdd(xx);var t=m.redSqr().redISub(s).redISub(s);var yyyy8=yyyy.redIAdd(yyyy);yyyy8=yyyy8.redIAdd(yyyy8);yyyy8=yyyy8.redIAdd(yyyy8);var nx=t;var ny=m.redMul(s.redISub(t)).redISub(yyyy8);var nz=this.y.redAdd(this.y)}else{var a=this.x.redSqr();var b=this.y.redSqr();var c=b.redSqr();var d=this.x.redAdd(b).redSqr().redISub(a).redISub(c);d=d.redIAdd(d);var e=a.redAdd(a).redIAdd(a);var f=e.redSqr();var c8=c.redIAdd(c);c8=c8.redIAdd(c8);c8=c8.redIAdd(c8);var nx=f.redISub(d).redISub(d);var ny=e.redMul(d.redISub(nx)).redISub(c8);var nz=this.y.redMul(this.z);nz=nz.redIAdd(nz)}return this.curve.jpoint(nx,ny,nz)};JPoint.prototype._threeDbl=function _threeDbl(){if(this.zOne){var xx=this.x.redSqr();var yy=this.y.redSqr();var yyyy=yy.redSqr();var s=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);s=s.redIAdd(s);var m=xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);var t=m.redSqr().redISub(s).redISub(s);var nx=t;var yyyy8=yyyy.redIAdd(yyyy);yyyy8=yyyy8.redIAdd(yyyy8);yyyy8=yyyy8.redIAdd(yyyy8);var ny=m.redMul(s.redISub(t)).redISub(yyyy8);var nz=this.y.redAdd(this.y)}else{var delta=this.z.redSqr();var gamma=this.y.redSqr();var beta=this.x.redMul(gamma);var alpha=this.x.redSub(delta).redMul(this.x.redAdd(delta));alpha=alpha.redAdd(alpha).redIAdd(alpha);var beta4=beta.redIAdd(beta);beta4=beta4.redIAdd(beta4);var beta8=beta4.redAdd(beta4);var nx=alpha.redSqr().redISub(beta8);var nz=this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);var ggamma8=gamma.redSqr();ggamma8=ggamma8.redIAdd(ggamma8);ggamma8=ggamma8.redIAdd(ggamma8);ggamma8=ggamma8.redIAdd(ggamma8);var ny=alpha.redMul(beta4.redISub(nx)).redISub(ggamma8)}return this.curve.jpoint(nx,ny,nz)};JPoint.prototype._dbl=function _dbl(){var a=this.curve.a;var tinv=this.curve.tinv;var jx=this.x;var jy=this.y;var jz=this.z;var jz4=jz.redSqr().redSqr();var jx2=jx.redSqr();var jy2=jy.redSqr();var c=jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));var jxd4=jx.redAdd(jx);jxd4=jxd4.redIAdd(jxd4);var t1=jxd4.redMul(jy2);var nx=c.redSqr().redISub(t1.redAdd(t1));var t2=t1.redISub(nx);var jyd8=jy2.redSqr();jyd8=jyd8.redIAdd(jyd8);jyd8=jyd8.redIAdd(jyd8);jyd8=jyd8.redIAdd(jyd8);var ny=c.redMul(t2).redISub(jyd8);var nz=jy.redAdd(jy).redMul(jz);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.trpl=function trpl(){if(!this.curve.zeroA)return this.dbl().add(this);var xx=this.x.redSqr();var yy=this.y.redSqr();var zz=this.z.redSqr();var yyyy=yy.redSqr();var m=xx.redAdd(xx).redIAdd(xx);var mm=m.redSqr();var e=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);e=e.redIAdd(e);e=e.redAdd(e).redIAdd(e);e=e.redISub(mm);var ee=e.redSqr();var t=yyyy.redIAdd(yyyy);t=t.redIAdd(t);t=t.redIAdd(t);t=t.redIAdd(t);var u=m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);var yyu4=yy.redMul(u);yyu4=yyu4.redIAdd(yyu4);yyu4=yyu4.redIAdd(yyu4);var nx=this.x.redMul(ee).redISub(yyu4);nx=nx.redIAdd(nx);nx=nx.redIAdd(nx);var ny=this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));ny=ny.redIAdd(ny);ny=ny.redIAdd(ny);ny=ny.redIAdd(ny);var nz=this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mul=function mul(k,kbase){k=new bn(k,kbase);return this.curve._wnafMul(this,k)};JPoint.prototype.eq=function eq(p){if(p.type==="affine")return this.eq(p.toJ());if(this===p)return true;var z2=this.z.redSqr();var pz2=p.z.redSqr();if(this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0)!==0)return false;var z3=z2.redMul(this.z);var pz3=pz2.redMul(p.z);return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0)===0};JPoint.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC JPoint Infinity>";return"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"};JPoint.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0}},{"../../elliptic":49,"../curve":52,assert:2,"bn.js":46,inherits:168}],55:[function(require,module,exports){var curves=exports;var assert=require("assert");var hash=require("hash.js");var bn=require("bn.js");var elliptic=require("../elliptic");function PresetCurve(options){if(options.type==="short")this.curve=new elliptic.curve.short(options);else if(options.type==="edwards")this.curve=new elliptic.curve.edwards(options);else this.curve=new elliptic.curve.mont(options);this.g=this.curve.g;this.n=this.curve.n;this.hash=options.hash;assert(this.g.validate(),"Invalid curve");assert(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}curves.PresetCurve=PresetCurve;function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:true,enumerable:true,get:function(){var curve=new PresetCurve(options);Object.defineProperty(curves,name,{configurable:true,enumerable:true,value:curve});return curve}})}defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:hash.sha256,gRed:false,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:hash.sha256,gRed:false,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:hash.sha256,gRed:false,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"0",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:false,g:["9"]});defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:false,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:hash.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:false,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",{doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]] | |
}}]})},{"../elliptic":49,assert:2,"bn.js":46,"hash.js":62}],56:[function(require,module,exports){var assert=require("assert");var bn=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var KeyPair=require("./key");var Signature=require("./signature");function EC(options){if(!(this instanceof EC))return new EC(options);if(typeof options==="string"){assert(elliptic.curves.hasOwnProperty(options),"Unknown curve "+options);options=elliptic.curves[options]}if(options instanceof elliptic.curves.PresetCurve)options={curve:options};this.curve=options.curve.curve;this.n=this.curve.n;this.nh=this.n.shrn(1);this.g=this.curve.g;this.g=options.curve.g;this.g.precompute(options.curve.n.bitLength()+1);this.hash=options.hash||options.curve.hash}module.exports=EC;EC.prototype.keyPair=function keyPair(priv,pub){return new KeyPair(this,priv,pub)};EC.prototype.genKeyPair=function genKeyPair(options){if(!options)options={};var drbg=new elliptic.hmacDRBG({hash:this.hash,pers:options.pers,entropy:options.entropy||elliptic.rand(this.hash.hmacStrength),nonce:this.n.toArray()});var bytes=this.n.byteLength();var ns2=this.n.sub(new bn(2));do{var priv=new bn(drbg.generate(bytes));if(priv.cmp(ns2)>0)continue;priv.iaddn(1);return this.keyPair(priv)}while(true)};EC.prototype._truncateToN=function truncateToN(msg,truncOnly){var delta=msg.byteLength()*8-this.n.bitLength();if(delta>0)msg=msg.shrn(delta);if(!truncOnly&&msg.cmp(this.n)>=0)return msg.sub(this.n);else return msg};EC.prototype.sign=function sign(msg,key,options){key=this.keyPair(key,"hex");msg=this._truncateToN(new bn(msg,16));if(!options)options={};var bytes=this.n.byteLength();var bkey=key.getPrivate().toArray();for(var i=bkey.length;i<21;i++)bkey.unshift(0);var nonce=msg.toArray();for(var i=nonce.length;i<bytes;i++)nonce.unshift(0);var drbg=new elliptic.hmacDRBG({hash:this.hash,entropy:bkey,nonce:nonce});var ns1=this.n.sub(new bn(1));do{var k=new bn(drbg.generate(this.n.byteLength()));k=this._truncateToN(k,true);if(k.cmpn(1)<=0||k.cmp(ns1)>=0)continue;var kp=this.g.mul(k);if(kp.isInfinity())continue;var r=kp.getX().mod(this.n);if(r.cmpn(0)===0)continue;var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)).mod(this.n);if(s.cmpn(0)===0)continue;if(options.canonical&&s.cmp(this.nh)>0)s=this.n.sub(s);return new Signature(r,s)}while(true)};EC.prototype.verify=function verify(msg,signature,key){msg=this._truncateToN(new bn(msg,16));key=this.keyPair(key,"hex");signature=new Signature(signature,"hex");var r=signature.r;var s=signature.s;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return false;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return false;var sinv=s.invm(this.n);var u1=sinv.mul(msg).mod(this.n);var u2=sinv.mul(r).mod(this.n);var p=this.g.mulAdd(u1,key.getPublic(),u2);if(p.isInfinity())return false;return p.getX().mod(this.n).cmp(r)===0}},{"../../elliptic":49,"./key":57,"./signature":58,assert:2,"bn.js":46}],57:[function(require,module,exports){var assert=require("assert");var bn=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;function KeyPair(ec,priv,pub){if(priv instanceof KeyPair)return priv;if(pub instanceof KeyPair)return pub;if(!priv){priv=pub;pub=null}if(priv!==null&&typeof priv==="object"){if(priv.x){pub=priv;priv=null}else if(priv.priv||priv.pub){pub=priv.pub;priv=priv.priv}}this.ec=ec;this.priv=null;this.pub=null;if(this._importPublicHex(priv,pub))return;if(pub==="hex")pub=null;if(priv)this._importPrivate(priv);if(pub)this._importPublic(pub)}module.exports=KeyPair;KeyPair.prototype.validate=function validate(){var pub=this.getPublic();if(pub.isInfinity())return{result:false,reason:"Invalid public key"};if(!pub.validate())return{result:false,reason:"Public key is not a point"};if(!pub.mul(this.ec.curve.n).isInfinity())return{result:false,reason:"Public key * N != O"};return{result:true,reason:null}};KeyPair.prototype.getPublic=function getPublic(compact,enc){if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(typeof compact==="string"){enc=compact;compact=null}if(!enc)return this.pub;var len=this.ec.curve.p.byteLength();var x=this.pub.getX().toArray();for(var i=x.length;i<len;i++)x.unshift(0);if(compact){var res=[this.pub.getY().isEven()?2:3].concat(x)}else{var y=this.pub.getY().toArray();for(var i=y.length;i<len;i++)y.unshift(0);var res=[4].concat(x,y)}return utils.encode(res,enc)};KeyPair.prototype.getPrivate=function getPrivate(enc){if(enc==="hex")return this.priv.toString(16,2);else return this.priv};KeyPair.prototype._importPrivate=function _importPrivate(key){this.priv=new bn(key,16);this.priv=this.priv.mod(this.ec.curve.n)};KeyPair.prototype._importPublic=function _importPublic(key){this.pub=this.ec.curve.point(key.x,key.y)};KeyPair.prototype._importPublicHex=function _importPublic(key,enc){key=utils.toArray(key,enc);var len=this.ec.curve.p.byteLength();if(key[0]===4&&key.length-1===2*len){this.pub=this.ec.curve.point(key.slice(1,1+len),key.slice(1+len,1+2*len))}else if((key[0]===2||key[0]===3)&&key.length-1===len){this.pub=this.ec.curve.pointFromX(key[0]===3,key.slice(1,1+len))}else{return false}return true};KeyPair.prototype.derive=function derive(pub){return pub.mul(this.priv).getX()};KeyPair.prototype.sign=function sign(msg){return this.ec.sign(msg,this)};KeyPair.prototype.verify=function verify(msg,signature){return this.ec.verify(msg,signature,this)};KeyPair.prototype.inspect=function inspect(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},{"../../elliptic":49,assert:2,"bn.js":46}],58:[function(require,module,exports){var assert=require("assert");var bn=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;function Signature(r,s){if(r instanceof Signature)return r;if(this._importDER(r,s))return;assert(r&&s,"Signature without r or s");this.r=new bn(r,16);this.s=new bn(s,16)}module.exports=Signature;Signature.prototype._importDER=function _importDER(data,enc){data=utils.toArray(data,enc);if(data.length<6||data[0]!==48||data[2]!==2)return false;var total=data[1];if(1+total>data.length)return false;var rlen=data[3];if(rlen>=128)return false;if(4+rlen+2>=data.length)return false;if(data[4+rlen]!==2)return false;var slen=data[5+rlen];if(slen>=128)return false;if(4+rlen+2+slen>data.length)return false;this.r=new bn(data.slice(4,4+rlen));this.s=new bn(data.slice(4+rlen+2,4+rlen+2+slen));return true};Signature.prototype.toDER=function toDER(enc){var r=this.r.toArray();var s=this.s.toArray();if(r[0]&128)r=[0].concat(r);if(s[0]&128)s=[0].concat(s);var total=r.length+s.length+4;var res=[48,total,2,r.length];res=res.concat(r,[2,s.length],s);return utils.encode(res,enc)}},{"../../elliptic":49,assert:2,"bn.js":46}],59:[function(require,module,exports){var assert=require("assert");var hash=require("hash.js");var elliptic=require("../elliptic");var utils=elliptic.utils;function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash;this.predResist=!!options.predResist;this.outLen=this.hash.outSize;this.minEntropy=options.minEntropy||this.hash.hmacStrength;this.reseed=null;this.reseedInterval=null;this.K=null;this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc);var nonce=utils.toArray(options.nonce,options.nonceEnc);var pers=utils.toArray(options.pers,options.persEnc);assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits");this._init(entropy,nonce,pers)}module.exports=HmacDRBG;HmacDRBG.prototype._init=function init(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=new Array(this.outLen/8);this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++){this.K[i]=0;this.V[i]=1}this._update(seed);this.reseed=1;this.reseedInterval=281474976710656};HmacDRBG.prototype._hmac=function hmac(){return new hash.hmac(this.hash,this.K)};HmacDRBG.prototype._update=function update(seed){var kmac=this._hmac().update(this.V).update([0]);if(seed)kmac=kmac.update(seed);this.K=kmac.digest();this.V=this._hmac().update(this.V).digest();if(!seed)return;this.K=this._hmac().update(this.V).update([1]).update(seed).digest();this.V=this._hmac().update(this.V).digest()};HmacDRBG.prototype.reseed=function reseed(entropy,entropyEnc,add,addEnc){if(typeof entropyEnc!=="string"){addEnc=add;add=entropyEnc;entropyEnc=null}entropy=utils.toBuffer(entropy,entropyEnc);add=utils.toBuffer(add,addEnc);assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits");this._update(entropy.concat(add||[]));this.reseed=1};HmacDRBG.prototype.generate=function generate(len,enc,add,addEnc){if(this.reseed>this.reseedInterval)throw new Error("Reseed is required");if(typeof enc!=="string"){addEnc=add;add=enc;enc=null}if(add){add=utils.toArray(add,addEnc);this._update(add)}var temp=[];while(temp.length<len){this.V=this._hmac().update(this.V).digest();temp=temp.concat(this.V)}var res=temp.slice(0,len);this._update(add);this.reseed++;return utils.encode(res,enc)}},{"../elliptic":49,assert:2,"hash.js":62}],60:[function(require,module,exports){var assert=require("assert");var bn=require("bn.js");var utils=exports;function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg==="string"){if(!enc){for(var i=0;i<msg.length;i++){var c=msg.charCodeAt(i);var hi=c>>8;var lo=c&255;if(hi)res.push(hi,lo);else res.push(lo)}}else if(enc==="hex"){msg=msg.replace(/[^a-z0-9]+/gi,"");if(msg.length%2!==0)msg="0"+msg;for(var i=0;i<msg.length;i+=2)res.push(parseInt(msg[i]+msg[i+1],16))}}else{for(var i=0;i<msg.length;i++)res[i]=msg[i]|0}return res}utils.toArray=toArray;function toHex(msg){var res="";for(var i=0;i<msg.length;i++)res+=zero2(msg[i].toString(16));return res}utils.toHex=toHex;utils.encode=function encode(arr,enc){if(enc==="hex")return toHex(arr);else return arr};function zero2(word){if(word.length===1)return"0"+word;else return word}utils.zero2=zero2;function getNAF(num,w){var naf=[];var ws=1<<w+1;var k=num.clone();while(k.cmpn(1)>=0){var z;if(k.isOdd()){var mod=k.andln(ws-1);if(mod>(ws>>1)-1)z=(ws>>1)-mod;else z=mod;k.isubn(z)}else{z=0}naf.push(z);var shift=k.cmpn(0)!==0&&k.andln(ws-1)===0?w+1:1;for(var i=1;i<shift;i++)naf.push(0);k.ishrn(shift)}return naf}utils.getNAF=getNAF;function getJSF(k1,k2){var jsf=[[],[]];k1=k1.clone();k2=k2.clone();var d1=0;var d2=0;while(k1.cmpn(-d1)>0||k2.cmpn(-d2)>0){var m14=k1.andln(3)+d1&3;var m24=k2.andln(3)+d2&3;if(m14===3)m14=-1;if(m24===3)m24=-1;var u1;if((m14&1)===0){u1=0}else{var m8=k1.andln(7)+d1&7;if((m8===3||m8===5)&&m24===2)u1=-m14;else u1=m14}jsf[0].push(u1);var u2;if((m24&1)===0){u2=0}else{var m8=k2.andln(7)+d2&7;if((m8===3||m8===5)&&m14===2)u2=-m24;else u2=m24}jsf[1].push(u2);if(2*d1===u1+1)d1=1-d1;if(2*d2===u2+1)d2=1-d2;k1.ishrn(1);k2.ishrn(1)}return jsf}utils.getJSF=getJSF},{assert:2,"bn.js":46}],61:[function(require,module,exports){var r;module.exports=function rand(len){if(!r)r=new Rand(null);return r.generate(len)};function Rand(rand){this.rand=rand}module.exports.Rand=Rand;Rand.prototype.generate=function generate(len){return this._rand(len)};if(typeof window==="object"){if(window.crypto&&window.crypto.getRandomValues){Rand.prototype._rand=function _rand(n){var arr=new Uint8Array(n);window.crypto.getRandomValues(arr);return arr}}else if(window.msCrypto&&window.msCrypto.getRandomValues){Rand.prototype._rand=function _rand(n){var arr=new Uint8Array(n);window.msCrypto.getRandomValues(arr);return arr}}else{Rand.prototype._rand=function(){throw new Error("Not implemented yet")}}}else{try{var crypto=require("cry"+"pto");Rand.prototype._rand=function _rand(n){return crypto.randomBytes(n)}}catch(e){Rand.prototype._rand=function _rand(n){var res=new Uint8Array(n);for(var i=0;i<res.length;i++)res[i]=this.rand.getByte();return res}}}},{}],62:[function(require,module,exports){var hash=exports;hash.utils=require("./hash/utils");hash.common=require("./hash/common");hash.sha=require("./hash/sha");hash.ripemd=require("./hash/ripemd");hash.hmac=require("./hash/hmac");hash.sha256=hash.sha.sha256;hash.sha224=hash.sha.sha224;hash.ripemd160=hash.ripemd.ripemd160},{"./hash/common":63,"./hash/hmac":64,"./hash/ripemd":65,"./hash/sha":66,"./hash/utils":67}],63:[function(require,module,exports){var hash=require("../hash");var utils=hash.utils;var assert=utils.assert;function BlockHash(){this.pending=null;this.pendingTotal=0;this.blockSize=this.constructor.blockSize;this.outSize=this.constructor.outSize;this.hmacStrength=this.constructor.hmacStrength;this.endian="big"}exports.BlockHash=BlockHash;BlockHash.prototype.update=function update(msg,enc){msg=utils.toArray(msg,enc);if(!this.pending)this.pending=msg;else this.pending=this.pending.concat(msg);this.pendingTotal+=msg.length;if(this.pending.length>=this.blockSize/8){msg=this.pending;var r=msg.length%(this.blockSize/8);this.pending=msg.slice(msg.length-r,msg.length);if(this.pending.length===0)this.pending=null;msg=utils.join32(msg.slice(0,msg.length-r),this.endian);for(var i=0;i<msg.length;i+=this.blockSize/32)this._update(msg.slice(i,i+this.blockSize/32))}return this};BlockHash.prototype.digest=function digest(enc){this.update(this._pad());assert(this.pending===null);return this._digest(enc)};BlockHash.prototype._pad=function pad(){var len=this.pendingTotal;var bytes=this.blockSize/8;var k=bytes-(len+8)%bytes;var res=new Array(k+8);res[0]=128;for(var i=1;i<k;i++)res[i]=0;len<<=3;if(this.endian==="big"){res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=len>>>24&255;res[i++]=len>>>16&255;res[i++]=len>>>8&255;res[i++]=len&255}else{res[i++]=len&255;res[i++]=len>>>8&255;res[i++]=len>>>16&255;res[i++]=len>>>24&255;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0}return res}},{"../hash":62}],64:[function(require,module,exports){var hmac=exports;var hash=require("../hash");var utils=hash.utils;var assert=utils.assert;function Hmac(hash,key,enc){if(!(this instanceof Hmac))return new Hmac(hash,key,enc);this.Hash=hash;this.blockSize=hash.blockSize/8;this.outSize=hash.outSize/8;this._init(utils.toArray(key,enc))}module.exports=Hmac;Hmac.prototype._init=function init(key){if(key.length>this.blockSize)key=(new this.Hash).update(key).digest();assert(key.length<=this.blockSize);for(var i=key.length;i<this.blockSize;i++)key.push(0);var okey=key.slice();for(var i=0;i<key.length;i++){key[i]^=54;okey[i]^=92}this.hash={inner:(new this.Hash).update(key),outer:(new this.Hash).update(okey)}};Hmac.prototype.update=function update(msg,enc){this.hash.inner.update(msg,enc);return this};Hmac.prototype.digest=function digest(enc){this.hash.outer.update(this.hash.inner.digest());return this.hash.outer.digest(enc)}},{"../hash":62}],65:[function(require,module,exports){var hash=require("../hash");var utils=hash.utils;var rotl32=utils.rotl32;var sum32=utils.sum32;var sum32_3=utils.sum32_3;var sum32_4=utils.sum32_4;var BlockHash=hash.common.BlockHash;function RIPEMD160(){if(!(this instanceof RIPEMD160))return new RIPEMD160;BlockHash.call(this);this.h=[1732584193,4023233417,2562383102,271733878,3285377520];this.endian="little"}utils.inherits(RIPEMD160,BlockHash);exports.ripemd160=RIPEMD160;RIPEMD160.blockSize=512;RIPEMD160.outSize=160;RIPEMD160.hmacStrength=192;RIPEMD160.prototype._update=function update(msg){var A=this.h[0];var B=this.h[1];var C=this.h[2];var D=this.h[3];var E=this.h[4];var Ah=A;var Bh=B;var Ch=C;var Dh=D;var Eh=E;for(var j=0;j<80;j++){var T=sum32(rotl32(sum32_4(A,f(j,B,C,D),msg[r[j]],K(j)),s[j]),E);A=E;E=D;D=rotl32(C,10);C=B;B=T;T=sum32(rotl32(sum32_4(Ah,f(79-j,Bh,Ch,Dh),msg[rh[j]],Kh(j)),sh[j]),Eh);Ah=Eh;Eh=Dh;Dh=rotl32(Ch,10);Ch=Bh;Bh=T}T=sum32_3(this.h[1],C,Dh);this.h[1]=sum32_3(this.h[2],D,Eh);this.h[2]=sum32_3(this.h[3],E,Ah);this.h[3]=sum32_3(this.h[4],A,Bh);this.h[4]=sum32_3(this.h[0],B,Ch);this.h[0]=T};RIPEMD160.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"little");else return utils.split32(this.h,"little")};function f(j,x,y,z){if(j<=15)return x^y^z;else if(j<=31)return x&y|~x&z;else if(j<=47)return(x|~y)^z;else if(j<=63)return x&z|y&~z;else return x^(y|~z)}function K(j){if(j<=15)return 0;else if(j<=31)return 1518500249;else if(j<=47)return 1859775393;else if(j<=63)return 2400959708;else return 2840853838}function Kh(j){if(j<=15)return 1352829926;else if(j<=31)return 1548603684;else if(j<=47)return 1836072691;else if(j<=63)return 2053994217;else return 0}var r=[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];var rh=[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];var s=[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];var sh=[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]},{"../hash":62}],66:[function(require,module,exports){var hash=require("../hash");var utils=hash.utils;var assert=utils.assert;var rotr32=utils.rotr32;var rotl32=utils.rotl32;var sum32=utils.sum32;var sum32_4=utils.sum32_4;var sum32_5=utils.sum32_5;var BlockHash=hash.common.BlockHash;var sha256_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];function SHA256(){if(!(this instanceof SHA256))return new SHA256;BlockHash.call(this);this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];this.k=sha256_K}utils.inherits(SHA256,BlockHash);exports.sha256=SHA256;SHA256.blockSize=512;SHA256.outSize=256;SHA256.hmacStrength=192;SHA256.prototype._update=function _update(msg){var W=new Array(64);for(var i=0;i<16;i++)W[i]=msg[i];for(;i<W.length;i++)W[i]=sum32_4(g1_256(W[i-2]),W[i-7],g0_256(W[i-15]),W[i-16]);var a=this.h[0];var b=this.h[1];var c=this.h[2];var d=this.h[3];var e=this.h[4];var f=this.h[5];var g=this.h[6];var h=this.h[7];assert(this.k.length===W.length);for(var i=0;i<W.length;i++){var T1=sum32_5(h,s1_256(e),ch32(e,f,g),this.k[i],W[i]);var T2=sum32(s0_256(a),maj32(a,b,c));h=g;g=f;f=e;e=sum32(d,T1);d=c;c=b;b=a;a=sum32(T1,T2)}this.h[0]=sum32(this.h[0],a);this.h[1]=sum32(this.h[1],b);this.h[2]=sum32(this.h[2],c);this.h[3]=sum32(this.h[3],d);this.h[4]=sum32(this.h[4],e);this.h[5]=sum32(this.h[5],f);this.h[6]=sum32(this.h[6],g);this.h[7]=sum32(this.h[7],h)};SHA256.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"big");else return utils.split32(this.h,"big")};function SHA224(){if(!(this instanceof SHA224))return new SHA224;SHA256.call(this);this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}utils.inherits(SHA224,SHA256);exports.sha224=SHA224;SHA224.blockSize=512;SHA224.outSize=224;SHA224.hmacStrength=192;SHA224.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h.slice(0,7),"big");else return utils.split32(this.h.slice(0,7),"big")};function ch32(x,y,z){return x&y^~x&z}function maj32(x,y,z){return x&y^x&z^y&z}function s0_256(x){return rotr32(x,2)^rotr32(x,13)^rotr32(x,22)}function s1_256(x){return rotr32(x,6)^rotr32(x,11)^rotr32(x,25)}function g0_256(x){return rotr32(x,7)^rotr32(x,18)^x>>>3}function g1_256(x){return rotr32(x,17)^rotr32(x,19)^x>>>10}},{"../hash":62}],67:[function(require,module,exports){var utils=exports;function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg==="string"){if(!enc){for(var i=0;i<msg.length;i++){var c=msg.charCodeAt(i);var hi=c>>8;var lo=c&255;if(hi)res.push(hi,lo);else res.push(lo)}}else if(enc==="hex"){msg=msg.replace(/[^a-z0-9]+/gi,"");if(msg.length%2!=0)msg="0"+msg;for(var i=0;i<msg.length;i+=2)res.push(parseInt(msg[i]+msg[i+1],16))}}else{for(var i=0;i<msg.length;i++)res[i]=msg[i]|0}return res}utils.toArray=toArray;function toHex(msg){var res="";for(var i=0;i<msg.length;i++)res+=zero2(msg[i].toString(16));return res}utils.toHex=toHex;function toHex32(msg,endian){var res="";for(var i=0;i<msg.length;i++){var w=msg[i];if(endian==="little"){w=w>>>24|w>>>8&65280|w<<8&16711680|(w&255)<<24;if(w<0)w+=4294967296}res+=zero8(w.toString(16))}return res}utils.toHex32=toHex32;function zero2(word){if(word.length===1)return"0"+word;else return word}utils.zero2=zero2;function zero8(word){if(word.length===7)return"0"+word;else if(word.length===6)return"00"+word;else if(word.length===5)return"000"+word;else if(word.length===4)return"0000"+word;else if(word.length===3)return"00000"+word;else if(word.length===2)return"000000"+word;else if(word.length===1)return"0000000"+word;else return word}utils.zero8=zero8;function join32(msg,endian){assert(msg.length%4===0);var res=new Array(msg.length/4);for(var i=0,k=0;i<res.length;i++,k+=4){var w;if(endian==="big")w=msg[k]<<24|msg[k+1]<<16|msg[k+2]<<8|msg[k+3];else w=msg[k+3]<<24|msg[k+2]<<16|msg[k+1]<<8|msg[k];if(w<0)w+=4294967296;res[i]=w}return res}utils.join32=join32;function split32(msg,endian){var res=new Array(msg.length*4);for(var i=0,k=0;i<msg.length;i++,k+=4){var m=msg[i];if(endian==="big"){res[k]=m>>>24;res[k+1]=m>>>16&255;res[k+2]=m>>>8&255;res[k+3]=m&255}else{res[k+3]=m>>>24;res[k+2]=m>>>16&255;res[k+1]=m>>>8&255;res[k]=m&255}}return res}utils.split32=split32;function rotr32(w,b){return w>>>b|w<<32-b}utils.rotr32=rotr32;function rotl32(w,b){return w<<b|w>>>32-b}utils.rotl32=rotl32;function sum32(a,b){var r=a+b&4294967295;if(r<0)r+=4294967296;return r}utils.sum32=sum32;function sum32_3(a,b,c){var r=a+b+c&4294967295;if(r<0)r+=4294967296;return r}utils.sum32_3=sum32_3;function sum32_4(a,b,c,d){var r=a+b+c+d&4294967295;if(r<0)r+=4294967296;return r}utils.sum32_4=sum32_4;function sum32_5(a,b,c,d,e){var r=a+b+c+d+e&4294967295;if(r<0)r+=4294967296;return r}utils.sum32_5=sum32_5;function assert(cond,msg){if(!cond)throw new Error(msg||"Assertion failed")}utils.assert=assert;if(typeof Object.create==="function"){utils.inherits=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{utils.inherits=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],68:[function(require,module,exports){module.exports={name:"elliptic",version:"0.15.17",description:"EC cryptography",main:"lib/elliptic.js",scripts:{test:"mocha --reporter=spec test/*-test.js"},repository:{type:"git",url:"[email protected]:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:{name:"Fedor Indutny",email:"[email protected]"},license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{browserify:"^3.44.2",mocha:"^1.18.2","uglify-js":"^2.4.13"},dependencies:{"bn.js":"^0.16.0",brorand:"^1.0.1","hash.js":"^0.2.0",inherits:"^2.0.1"},readme:"# Elliptic [](http://travis-ci.org/indutny/elliptic)\n\nFast elliptic-curve cryptography in a plain javascript implementation.\n\nNOTE: Please take a look at http://safecurves.cr.yp.to/ before choosing a curve\nfor your cryptography operations.\n\n## Incentive\n\nECC is much slower than regular RSA cryptography, the JS implementations are\neven more slower.\n\n## Benchmarks\n\n```bash\n$ node benchmarks/index.js\nBenchmarking: sign\nelliptic#sign x 262 ops/sec ±0.51% (177 runs sampled)\neccjs#sign x 55.91 ops/sec ±0.90% (144 runs sampled)\n------------------------\nFastest is elliptic#sign\n========================\nBenchmarking: verify\nelliptic#verify x 113 ops/sec ±0.50% (166 runs sampled)\neccjs#verify x 48.56 ops/sec ±0.36% (125 runs sampled)\n------------------------\nFastest is elliptic#verify\n========================\nBenchmarking: gen\nelliptic#gen x 294 ops/sec ±0.43% (176 runs sampled)\neccjs#gen x 62.25 ops/sec ±0.63% (129 runs sampled)\n------------------------\nFastest is elliptic#gen\n========================\nBenchmarking: ecdh\nelliptic#ecdh x 136 ops/sec ±0.85% (156 runs sampled)\n------------------------\nFastest is elliptic#ecdh\n========================\n```\n\n## API\n\n### ECDSA\n\n```javascript\nvar EC = require('elliptic').ec;\n\n// Create and initialize EC context\n// (better do it once and reuse it)\nvar ec = new EC('secp256k1');\n\n// Generate keys\nvar key = ec.genKeyPair();\n\n// Sign message (must be an array, or it'll be treated as a hex sequence)\nvar msg = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];\nvar signature = key.sign(msg);\n\n// Export DER encoded signature in Array\nvar derSign = signature.toDER();\n\n// Verify signature\nconsole.log(key.verify(msg, derSign));\n```\n\n### ECDH\n\n```javascript\n// Generate keys\nvar key1 = ec.genKeyPair();\nvar key2 = ec.genKeyPair();\n\nvar shared1 = key1.derive(key2.getPublic());\nvar shared2 = key2.derive(key1.getPublic());\n\nconsole.log('Both shared secrets are BN instances');\nconsole.log(shared1.toString(16));\nconsole.log(shared2.toString(16));\n```\n\nNOTE: `.derive()` returns a [BN][1] instance.\n\n## Supported curves\n\nElliptic.js support following curve types:\n\n* Short Weierstrass\n* Montgomery\n* Edwards\n* Twisted Edwards\n\nFollowing curve 'presets' are embedded into the library:\n\n* `secp256k1`\n* `p192`\n* `p224`\n* `p256`\n* `curve25519`\n* `ed25519`\n\nNOTE: That `curve25519` could not be used for ECDSA, use `ed25519` instead.\n\n### Implementation details\n\nECDSA is using deterministic `k` value generation as per [RFC6979][0]. Most of\nthe curve operations are performed on non-affine coordinates (either projective\nor extended), various windowing techniques are used for different cases.\n\nAll operations are performed in reduction context using [bn.js][1], hashing is\nprovided by [hash.js][2]\n\n#### LICENSE\n\nThis software is licensed under the MIT License.\n\nCopyright Fedor Indutny, 2014.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to permit\npersons to whom the Software is furnished to do so, subject to the\nfollowing conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\nNO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\nDAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\nOTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\nUSE OR OTHER DEALINGS IN THE SOFTWARE.\n\n[0]: http://tools.ietf.org/html/rfc6979\n[1]: https://github.com/indutny/bn.js\n[2]: https://github.com/indutny/hash.js\n",readmeFilename:"README.md",_id:"[email protected]",_from:"elliptic@^0.15.14"}},{}],69:[function(require,module,exports){(function(Buffer){module.exports=function evp(crypto,password,salt,keyLen){keyLen=keyLen/8;var ki=0;var ii=0;var key=new Buffer(keyLen);var addmd=0;var md,md_buf;var i;while(true){md=crypto.createHash("md5");if(addmd++>0){md.update(md_buf)}md.update(password);md.update(salt);md_buf=md.digest();i=0;if(keyLen>0){while(true){if(keyLen===0){break}if(i===md_buf.length){break}key[ki++]=md_buf[i++];keyLen--}}if(keyLen===0){break}}for(i=0;i<md_buf.length;i++){md_buf[i]=0}return key}}).call(this,require("buffer").Buffer)},{buffer:17}],70:[function(require,module,exports){module.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],71:[function(require,module,exports){var asn1=require("asn1.js");var rfc3280=require("asn1.js-rfc3280");var RSAPrivateKey=asn1.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});exports.RSAPrivateKey=RSAPrivateKey;var RSAPublicKey=asn1.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});exports.RSAPublicKey=RSAPublicKey;var PublicKey=rfc3280.SubjectPublicKeyInfo;exports.PublicKey=PublicKey;var ECPublicKey=asn1.define("ECPublicKey",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("curve").objid()),this.key("subjectPrivateKey").bitstr())});exports.ECPublicKey=ECPublicKey;var ECPrivateWrap=asn1.define("ECPrivateWrap",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").seq().obj(this.key("id").objid(),this.key("curve").objid()),this.key("subjectPrivateKey").octstr())});exports.ECPrivateWrap=ECPrivateWrap;var PrivateKeyInfo=asn1.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(rfc3280.AlgorithmIdentifier),this.key("subjectPrivateKey").octstr())});exports.PrivateKey=PrivateKeyInfo;var EncryptedPrivateKeyInfo=asn1.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});var dsaParams=asn1.define("dsaParams",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()))});exports.EncryptedPrivateKey=EncryptedPrivateKeyInfo;var DSAPublicKey=asn1.define("DSAPublicKey",function(){this.seq().obj(this.key("algorithm").use(dsaParams),this.key("subjectPublicKey").bitstr())});exports.DSAPublicKey=DSAPublicKey;var DSAPrivateWrap=asn1.define("DSAPrivateWrap",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").seq().obj(this.key("id").objid(),this.key("parameters").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int())),this.key("subjectPrivateKey").octstr())});exports.DSAPrivateWrap=DSAPrivateWrap;var DSAPrivateKey=asn1.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int()); | |
});exports.DSAPrivateKey=DSAPrivateKey;exports.DSAparam=asn1.define("DSAparam",function(){this.int()});var ECPrivateKey=asn1.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(ECParameters),this.key("publicKey").optional().explicit(1).bitstr())});exports.ECPrivateKey=ECPrivateKey;var ECParameters=asn1.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});var ECPrivateKey2=asn1.define("ECPrivateKey2",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("publicKey").seq().obj(this.key("key").bitstr()))});exports.ECPrivateKey2=ECPrivateKey2;exports.signature=asn1.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},{"asn1.js":75,"asn1.js-rfc3280":74}],72:[function(require,module,exports){(function(Buffer){var findProc=/Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m;var startRegex=/^-----BEGIN (.*)-----\n/;var evp=require("./EVP_BytesToKey");module.exports=function(okey,password,crypto){var key=okey.toString();var match=key.match(findProc);if(!match){return okey}var suite="aes"+match[1];var iv=new Buffer(match[2],"hex");var cipherText=new Buffer(match[3].replace(/\n\r?/g,""),"base64");var cipherKey=evp(crypto,password,iv.slice(0,8),parseInt(match[1]));var out=[];var cipher=crypto.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText));out.push(cipher.final());var decrypted=Buffer.concat(out).toString("base64");var tag=key.match(startRegex)[1];return"-----BEGIN "+tag+"-----\n"+wrap(decrypted)+"\n"+"-----END "+tag+"-----\n"};function wrap(str){var chunks=[];while(str){if(str.length<64){chunks.push(str);break}else{chunks.push(str.slice(0,64));str=str.slice(64)}}return chunks.join("\n")}}).call(this,require("buffer").Buffer)},{"./EVP_BytesToKey":69,buffer:17}],73:[function(require,module,exports){(function(Buffer){var pemstrip=require("pemstrip");var asn1=require("./asn1");var aesid=require("./aesid.json");var fixProc=require("./fixProc");module.exports=parseKeys;function parseKeys(buffer,crypto){var password;if(typeof buffer==="object"&&!Buffer.isBuffer(buffer)){password=buffer.passphrase;buffer=buffer.key}if(typeof buffer==="string"){buffer=new Buffer(buffer)}if(password){buffer=fixProc(buffer,password,crypto)}var stripped=pemstrip.strip(buffer);var type=stripped.tag;var data=new Buffer(stripped.base64,"base64");var subtype,ndata;switch(type){case"PUBLIC KEY":ndata=asn1.PublicKey.decode(data,"der");subtype=ndata.algorithm.algorithm.join(".");switch(subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return{type:"ec",data:asn1.ECPublicKey.decode(data,"der")};case"1.2.840.10040.4.1":ndata=asn1.DSAPublicKey.decode(data,"der");ndata.algorithm.parameters.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,"der");return{type:"dsa",data:ndata.algorithm.parameters};default:throw new Error("unknown key id "+subtype)}throw new Error("unknown key type "+type);case"ENCRYPTED PRIVATE KEY":data=asn1.EncryptedPrivateKey.decode(data,"der");data=decrypt(crypto,data,password);case"PRIVATE KEY":ndata=asn1.PrivateKey.decode(data,"der");subtype=ndata.algorithm.algorithm.join(".");switch(subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,"der");case"1.2.840.10045.2.1":ndata=asn1.ECPrivateWrap.decode(data,"der");return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":ndata=asn1.DSAPrivateWrap.decode(data,"der");ndata.algorithm.parameters.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,"der");return{type:"dsa",params:ndata.algorithm.parameters};default:throw new Error("unknown key id "+subtype)}throw new Error("unknown key type "+type);case"RSA PUBLIC KEY":return asn1.RSAPublicKey.decode(data,"der");case"RSA PRIVATE KEY":return asn1.RSAPrivateKey.decode(data,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:asn1.DSAPrivateKey.decode(data,"der")};case"EC PRIVATE KEY":data=asn1.ECPrivateKey.decode(data,"der");return{curve:data.parameters.value,privateKey:data.privateKey};default:throw new Error("unknown key type "+type)}}parseKeys.signature=asn1.signature;function decrypt(crypto,data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt;var iters=data.algorithm.decrypt.kde.kdeparams.iters;var algo=aesid[data.algorithm.decrypt.cipher.algo.join(".")];var iv=data.algorithm.decrypt.cipher.iv;var cipherText=data.subjectPrivateKey;var keylen=parseInt(algo.split("-")[1],10)/8;var key=crypto.pbkdf2Sync(password,salt,iters,keylen);var cipher=crypto.createDecipheriv(algo,key,iv);var out=[];out.push(cipher.update(cipherText));out.push(cipher.final());return Buffer.concat(out)}}).call(this,require("buffer").Buffer)},{"./aesid.json":70,"./asn1":71,"./fixProc":72,buffer:17,pemstrip:88}],74:[function(require,module,exports){try{var asn1=require("asn1.js")}catch(e){var asn1=require("../"+"..")}var CRLReason=asn1.define("CRLReason",function(){this.enum({0:"unspecified",1:"keyCompromise",2:"CACompromise",3:"affiliationChanged",4:"superseded",5:"cessationOfOperation",6:"certificateHold",8:"removeFromCRL",9:"privilegeWithdrawn",10:"AACompromise"})});exports.CRLReason=CRLReason;var AlgorithmIdentifier=asn1.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional().any())});exports.AlgorithmIdentifier=AlgorithmIdentifier;var Certificate=asn1.define("Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(TBSCertificate),this.key("signatureAlgorithm").use(AlgorithmIdentifier),this.key("signature").bitstr())});exports.Certificate=Certificate;var TBSCertificate=asn1.define("TBSCertificate",function(){this.seq().obj(this.key("version").def("v1").explicit(0).use(Version),this.key("serialNumber").use(CertificateSerialNumber),this.key("signature").use(AlgorithmIdentifier),this.key("issuer").use(Name),this.key("validity").use(Validity),this.key("subject").use(Name),this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo),this.key("issuerUniqueID").optional().explicit(1).use(UniqueIdentifier),this.key("subjectUniqueID").optional().explicit(2).use(UniqueIdentifier),this.key("extensions").optional().explicit(3).use(Extensions))});exports.TBSCertificate=TBSCertificate;var Version=asn1.define("Version",function(){this.int({0:"v1",1:"v2",2:"v3"})});exports.Version=Version;var CertificateSerialNumber=asn1.define("CertificateSerialNumber",function(){this.int()});exports.CertificateSerialNumber=CertificateSerialNumber;var Validity=asn1.define("Validity",function(){this.seq().obj(this.key("notBefore").use(Time),this.key("notAfter").use(Time))});exports.Validity=Validity;var Time=asn1.define("Time",function(){this.choice({utcTime:this.utctime(),genTime:this.gentime()})});exports.Time=Time;var UniqueIdentifier=asn1.define("UniqueIdentifier",function(){this.bitstr()});exports.UniqueIdentifier=UniqueIdentifier;var SubjectPublicKeyInfo=asn1.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())});exports.SubjectPublicKeyInfo=SubjectPublicKeyInfo;var Extensions=asn1.define("Extensions",function(){this.seqof(Extension)});exports.Extensions=Extensions;var Extension=asn1.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(false),this.key("extnValue").octstr())});exports.Extension=Extension;var Name=asn1.define("Name",function(){this.choice({rdn:this.use(RDNSequence)})});exports.Name=Name;var RDNSequence=asn1.define("RDNSequence",function(){this.seqof(RelativeDistinguishedName)});exports.RDNSequence=RDNSequence;var RelativeDistinguishedName=asn1.define("RelativeDistinguishedName",function(){this.setof(AttributeTypeAndValue)});exports.RelativeDistinguishedName=RelativeDistinguishedName;var AttributeTypeAndValue=asn1.define("AttributeTypeAndValue",function(){this.seq().obj(this.key("type").use(AttributeType),this.key("value").use(AttributeValue))});exports.AttributeTypeAndValue=AttributeTypeAndValue;var AttributeType=asn1.define("AttributeType",function(){this.objid()});exports.AttributeType=AttributeType;var AttributeValue=asn1.define("AttributeValue",function(){this.any()});exports.AttributeValue=AttributeValue},{"asn1.js":75}],75:[function(require,module,exports){var asn1=exports;asn1.bignum=require("bn.js");asn1.define=require("./asn1/api").define;asn1.base=require("./asn1/base");asn1.constants=require("./asn1/constants");asn1.decoders=require("./asn1/decoders");asn1.encoders=require("./asn1/encoders")},{"./asn1/api":76,"./asn1/base":78,"./asn1/constants":82,"./asn1/decoders":84,"./asn1/encoders":86,"bn.js":87}],76:[function(require,module,exports){var asn1=require("../asn1");var util=require("util");var vm=require("vm");var api=exports;api.define=function define(name,body){return new Entity(name,body)};function Entity(name,body){this.name=name;this.body=body;this.decoders={};this.encoders={}}Entity.prototype._createNamed=function createNamed(base){var named=vm.runInThisContext("(function "+this.name+"(entity) {\n"+" this._initNamed(entity);\n"+"})");util.inherits(named,base);named.prototype._initNamed=function initnamed(entity){base.call(this,entity)};return new named(this)};Entity.prototype._getDecoder=function _getDecoder(enc){if(!this.decoders.hasOwnProperty(enc))this.decoders[enc]=this._createNamed(asn1.decoders[enc]);return this.decoders[enc]};Entity.prototype.decode=function decode(data,enc,options){return this._getDecoder(enc).decode(data,options)};Entity.prototype._getEncoder=function _getEncoder(enc){if(!this.encoders.hasOwnProperty(enc))this.encoders[enc]=this._createNamed(asn1.encoders[enc]);return this.encoders[enc]};Entity.prototype.encode=function encode(data,enc,reporter){return this._getEncoder(enc).encode(data,reporter)}},{"../asn1":75,util:191,vm:192}],77:[function(require,module,exports){var assert=require("assert");var util=require("util");var Reporter=require("../base").Reporter;var Buffer=require("buffer").Buffer;function DecoderBuffer(base,options){Reporter.call(this,options);if(!Buffer.isBuffer(base)){this.error("Input not Buffer");return}this.base=base;this.offset=0;this.length=base.length}util.inherits(DecoderBuffer,Reporter);exports.DecoderBuffer=DecoderBuffer;DecoderBuffer.prototype.save=function save(){return{offset:this.offset}};DecoderBuffer.prototype.restore=function restore(save){var res=new DecoderBuffer(this.base);res.offset=save.offset;res.length=this.offset;this.offset=save.offset;return res};DecoderBuffer.prototype.isEmpty=function isEmpty(){return this.offset===this.length};DecoderBuffer.prototype.readUInt8=function readUInt8(fail){if(this.offset+1<=this.length)return this.base.readUInt8(this.offset++,true);else return this.error(fail||"DecoderBuffer overrun")};DecoderBuffer.prototype.skip=function skip(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||"DecoderBuffer overrun");var res=new DecoderBuffer(this.base);res._reporterState=this._reporterState;res.offset=this.offset;res.length=this.offset+bytes;this.offset+=bytes;return res};DecoderBuffer.prototype.raw=function raw(save){return this.base.slice(save?save.offset:this.offset,this.length)};function EncoderBuffer(value,reporter){if(Array.isArray(value)){this.length=0;this.value=value.map(function(item){if(!(item instanceof EncoderBuffer))item=new EncoderBuffer(item,reporter);this.length+=item.length;return item},this)}else if(typeof value==="number"){if(!(0<=value&&value<=255))return reporter.error("non-byte EncoderBuffer value");this.value=value;this.length=1}else if(typeof value==="string"){this.value=value;this.length=Buffer.byteLength(value)}else if(Buffer.isBuffer(value)){this.value=value;this.length=value.length}else{return reporter.error("Unsupported type: "+typeof value)}}exports.EncoderBuffer=EncoderBuffer;EncoderBuffer.prototype.join=function join(out,offset){if(!out)out=new Buffer(this.length);if(!offset)offset=0;if(this.length===0)return out;if(Array.isArray(this.value)){this.value.forEach(function(item){item.join(out,offset);offset+=item.length})}else{if(typeof this.value==="number")out[offset]=this.value;else if(typeof this.value==="string")out.write(this.value,offset);else if(Buffer.isBuffer(this.value))this.value.copy(out,offset);offset+=this.length}return out}},{"../base":78,assert:2,buffer:17,util:191}],78:[function(require,module,exports){var base=exports;base.Reporter=require("./reporter").Reporter;base.DecoderBuffer=require("./buffer").DecoderBuffer;base.EncoderBuffer=require("./buffer").EncoderBuffer;base.Node=require("./node")},{"./buffer":77,"./node":79,"./reporter":80}],79:[function(require,module,exports){var assert=require("assert");var Reporter=require("../base").Reporter;var EncoderBuffer=require("../base").EncoderBuffer;var tags=["seq","seqof","set","setof","octstr","bitstr","objid","bool","gentime","utctime","null_","enum","int","ia5str"];var methods=["key","obj","use","optional","explicit","implicit","def","choice","any"].concat(tags);var overrided=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function Node(enc,parent){var state={};this._baseState=state;state.enc=enc;state.parent=parent||null;state.children=null;state.tag=null;state.args=null;state.reverseArgs=null;state.choice=null;state.optional=false;state.any=false;state.obj=false;state.use=null;state.useDecoder=null;state.key=null;state["default"]=null;state.explicit=null;state.implicit=null;if(!state.parent){state.children=[];this._wrap()}}module.exports=Node;var stateProps=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit"];Node.prototype.clone=function clone(){var state=this._baseState;var cstate={};stateProps.forEach(function(prop){cstate[prop]=state[prop]});var res=new this.constructor(cstate.parent);res._baseState=cstate;return res};Node.prototype._wrap=function wrap(){var state=this._baseState;methods.forEach(function(method){this[method]=function _wrappedMethod(){var clone=new this.constructor(this);state.children.push(clone);return clone[method].apply(clone,arguments)}},this)};Node.prototype._init=function init(body){var state=this._baseState;assert(state.parent===null);body.call(this);state.children=state.children.filter(function(child){return child._baseState.parent===this},this);assert.equal(state.children.length,1,"Root node can have only one child")};Node.prototype._useArgs=function useArgs(args){var state=this._baseState;var children=args.filter(function(arg){return arg instanceof this.constructor},this);args=args.filter(function(arg){return!(arg instanceof this.constructor)},this);if(children.length!==0){assert(state.children===null);state.children=children;children.forEach(function(child){child._baseState.parent=this},this)}if(args.length!==0){assert(state.args===null);state.args=args;state.reverseArgs=args.map(function(arg){if(typeof arg!=="object"||arg.constructor!==Object)return arg;var res={};Object.keys(arg).forEach(function(key){if(key==(key|0))key|=0;var value=arg[key];res[value]=key});return res})}};overrided.forEach(function(method){Node.prototype[method]=function _overrided(){var state=this._baseState;throw new Error(method+" not implemented for encoding: "+state.enc)}});tags.forEach(function(tag){Node.prototype[tag]=function _tagMethod(){var state=this._baseState;var args=Array.prototype.slice.call(arguments);assert(state.tag===null);state.tag=tag;this._useArgs(args);return this}});Node.prototype.use=function use(item){var state=this._baseState;assert(state.use===null);state.use=item;return this};Node.prototype.optional=function optional(){var state=this._baseState;state.optional=true;return this};Node.prototype.def=function def(val){var state=this._baseState;assert(state["default"]===null);state["default"]=val;state.optional=true;return this};Node.prototype.explicit=function explicit(num){var state=this._baseState;assert(state.explicit===null&&state.implicit===null);state.explicit=num;return this};Node.prototype.implicit=function implicit(num){var state=this._baseState;assert(state.explicit===null&&state.implicit===null);state.implicit=num;return this};Node.prototype.obj=function obj(){var state=this._baseState;var args=Array.prototype.slice.call(arguments);state.obj=true;if(args.length!==0)this._useArgs(args);return this};Node.prototype.key=function key(key){var state=this._baseState;assert(state.key===null);state.key=key;return this};Node.prototype.any=function any(){var state=this._baseState;state.any=true;return this};Node.prototype.choice=function choice(obj){var state=this._baseState;assert(state.choice===null);state.choice=obj;this._useArgs(Object.keys(obj).map(function(key){return obj[key]}));return this};Node.prototype._decode=function decode(input){var state=this._baseState;if(state.parent===null)return input.wrapResult(state.children[0]._decode(input));var result=state["default"];var present=true;var prevKey;if(state.key!==null)prevKey=input.enterKey(state.key);if(state.optional){present=this._peekTag(input,state.explicit!==null?state.explicit:state.implicit!==null?state.implicit:state.tag||0);if(input.isError(present))return present}var prevObj;if(state.obj&&present)prevObj=input.enterObject();if(present){if(state.explicit!==null){var explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit}if(state.use===null&&state.choice===null){if(state.any)var save=input.save();var body=this._decodeTag(input,state.implicit!==null?state.implicit:state.tag,state.any);if(input.isError(body))return body;if(state.any)result=input.raw(save);else input=body}if(state.any)result=result;else if(state.choice===null)result=this._decodeGeneric(state.tag,input);else result=this._decodeChoice(input);if(input.isError(result))return result;if(!state.any&&state.choice===null&&state.children!==null){var fail=state.children.some(function decodeChildren(child){child._decode(input)});if(fail)return err}}if(state.obj&&present)result=input.leaveObject(prevObj);if(state.key!==null&&(result!==null||present===true))input.leaveKey(prevKey,state.key,result);return result};Node.prototype._decodeGeneric=function decodeGeneric(tag,input){var state=this._baseState;if(tag==="seq"||tag==="set")return null;if(tag==="seqof"||tag==="setof")return this._decodeList(input,tag,state.args[0]);else if(tag==="octstr"||tag==="bitstr"||tag==="ia5str")return this._decodeStr(input,tag);else if(tag==="objid"&&state.args)return this._decodeObjid(input,state.args[0],state.args[1]);else if(tag==="objid")return this._decodeObjid(input,null,null);else if(tag==="gentime"||tag==="utctime")return this._decodeTime(input,tag);else if(tag==="null_")return this._decodeNull(input);else if(tag==="bool")return this._decodeBool(input);else if(tag==="int"||tag==="enum")return this._decodeInt(input,state.args&&state.args[0]);else if(state.use!==null)return this._getUse(state.use,input._reporterState.obj)._decode(input);else return input.error("unknown tag: "+tag);return null};Node.prototype._getUse=function _getUse(entity,obj){var state=this._baseState;state.useDecoder=this._use(entity,obj);assert(state.useDecoder._baseState.parent===null);state.useDecoder=state.useDecoder._baseState.children[0];if(state.implicit!==state.useDecoder._baseState.implicit){state.useDecoder=state.useDecoder.clone();state.useDecoder._baseState.implicit=state.implicit}return state.useDecoder};Node.prototype._decodeChoice=function decodeChoice(input){var state=this._baseState;var result=null;var match=false;Object.keys(state.choice).some(function(key){var save=input.save();var node=state.choice[key];try{var value=node._decode(input);if(input.isError(value))return false;result={type:key,value:value};match=true}catch(e){input.restore(save);return false}return true},this);if(!match)return input.error("Choice not matched");return result};Node.prototype._createEncoderBuffer=function createEncoderBuffer(data){return new EncoderBuffer(data,this.reporter)};Node.prototype._encode=function encode(data,reporter,parent){var state=this._baseState;if(state["default"]!==null&&state["default"]===data)return;var result=this._encodeValue(data,reporter,parent);if(result===undefined)return;if(this._skipDefault(result,reporter,parent))return;return result};Node.prototype._encodeValue=function encode(data,reporter,parent){var state=this._baseState;if(state.parent===null)return state.children[0]._encode(data,reporter||new Reporter);var result=null;var present=true;this.reporter=reporter;if(state.optional&&data===undefined){if(state["default"]!==null)data=state["default"];else return}var prevKey;var content=null;var primitive=false;if(state.any){result=this._createEncoderBuffer(data)}else if(state.choice){result=this._encodeChoice(data,reporter)}else if(state.children){content=state.children.map(function(child){if(child._baseState.tag==="null_")return child._encode(null,reporter,data);if(child._baseState.key===null)return reporter.error("Child should have a key");var prevKey=reporter.enterKey(child._baseState.key);if(typeof data!=="object")return reporter.error("Child expected, but input is not object");var res=child._encode(data[child._baseState.key],reporter,data);reporter.leaveKey(prevKey);return res},this).filter(function(child){return child});content=this._createEncoderBuffer(content)}else{if(state.tag==="seqof"||state.tag==="setof"){if(!(state.args&&state.args.length===1))return reporter.error("Too many args for : "+state.tag);if(!Array.isArray(data))return reporter.error("seqof/setof, but data is not Array");var child=this.clone();child._baseState.implicit=null;content=this._createEncoderBuffer(data.map(function(item){var state=this._baseState;return this._getUse(state.args[0],data)._encode(item,reporter)},child))}else if(state.use!==null){result=this._getUse(state.use,parent)._encode(data,reporter)}else{content=this._encodePrimitive(state.tag,data);primitive=true}}var result;if(!state.any&&state.choice===null){var tag=state.implicit!==null?state.implicit:state.tag;var cls=state.implicit===null?"universal":"context";if(tag===null){if(state.use===null)reporter.error("Tag could be ommited only for .use()")}else{if(state.use===null)result=this._encodeComposite(tag,primitive,cls,content)}}if(state.explicit!==null)result=this._encodeComposite(state.explicit,false,"context",result);return result};Node.prototype._encodeChoice=function encodeChoice(data,reporter){var state=this._baseState;var node=state.choice[data.type];if(!node){assert(false,data.type+" not found in "+JSON.stringify(Object.keys(state.choice)))}return node._encode(data.value,reporter)};Node.prototype._encodePrimitive=function encodePrimitive(tag,data){var state=this._baseState;if(tag==="octstr"||tag==="bitstr"||tag==="ia5str")return this._encodeStr(data,tag);else if(tag==="objid"&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);else if(tag==="objid")return this._encodeObjid(data,null,null);else if(tag==="gentime"||tag==="utctime")return this._encodeTime(data,tag);else if(tag==="null_")return this._encodeNull();else if(tag==="int"||tag==="enum")return this._encodeInt(data,state.args&&state.reverseArgs[0]);else if(tag==="bool")return this._encodeBool(data);else throw new Error("Unsupported tag: "+tag)}},{"../base":78,assert:2}],80:[function(require,module,exports){var util=require("util");function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]}}exports.Reporter=Reporter;Reporter.prototype.isError=function isError(obj){return obj instanceof ReporterError};Reporter.prototype.enterKey=function enterKey(key){return this._reporterState.path.push(key)};Reporter.prototype.leaveKey=function leaveKey(index,key,value){var state=this._reporterState;state.path=state.path.slice(0,index-1);if(state.obj!==null)state.obj[key]=value};Reporter.prototype.enterObject=function enterObject(){var state=this._reporterState;var prev=state.obj;state.obj={};return prev};Reporter.prototype.leaveObject=function leaveObject(prev){var state=this._reporterState;var now=state.obj;state.obj=prev;return now};Reporter.prototype.error=function error(msg){var err;var state=this._reporterState;var inherited=msg instanceof ReporterError;if(inherited){err=msg}else{err=new ReporterError(state.path.map(function(elem){return"["+JSON.stringify(elem)+"]"}).join(""),msg.message||msg,msg.stack)}if(!state.options.partial)throw err;if(!inherited)state.errors.push(err);return err};Reporter.prototype.wrapResult=function wrapResult(result){var state=this._reporterState;if(!state.options.partial)return result;return{result:this.isError(result)?null:result,errors:state.errors}};function ReporterError(path,msg){this.path=path;this.rethrow(msg)}util.inherits(ReporterError,Error);ReporterError.prototype.rethrow=function rethrow(msg){this.message=msg+" at: "+(this.path||"(shallow)");Error.captureStackTrace(this,ReporterError);return this}},{util:191}],81:[function(require,module,exports){var constants=require("../constants");exports.tagClass={0:"universal",1:"application",2:"context",3:"private"};exports.tagClassByName=constants._reverse(exports.tagClass);exports.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"};exports.tagByName=constants._reverse(exports.tag)},{"../constants":82}],82:[function(require,module,exports){var constants=exports;constants._reverse=function reverse(map){var res={};Object.keys(map).forEach(function(key){if((key|0)==key)key=key|0;var value=map[key];res[value]=key});return res};constants.der=require("./der")},{"./der":81}],83:[function(require,module,exports){var util=require("util");var asn1=require("../../asn1");var base=asn1.base;var bignum=asn1.bignum;var der=asn1.constants.der;function DERDecoder(entity){this.enc="der";this.name=entity.name;this.entity=entity;this.tree=new DERNode;this.tree._init(entity.body)}module.exports=DERDecoder;DERDecoder.prototype.decode=function decode(data,options){if(!(data instanceof base.DecoderBuffer))data=new base.DecoderBuffer(data,options);return this.tree._decode(data,options)};function DERNode(parent){base.Node.call(this,"der",parent)}util.inherits(DERNode,base.Node);DERNode.prototype._peekTag=function peekTag(buffer,tag){if(buffer.isEmpty())return false;var state=buffer.save();var decodedTag=derDecodeTag(buffer,'Failed to peek tag: "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;buffer.restore(state);return decodedTag.tag===tag||decodedTag.tagStr===tag};DERNode.prototype._decodeTag=function decodeTag(buffer,tag,any){var decodedTag=derDecodeTag(buffer,'Failed to decode tag of "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;var len=derDecodeLen(buffer,decodedTag.primitive,'Failed to get length of "'+tag+'"');if(buffer.isError(len))return len;if(!any&&decodedTag.tag!==tag&&decodedTag.tagStr!==tag&&decodedTag.tagStr+"of"!==tag){return buffer.error('Failed to match tag: "'+tag+'"')}if(decodedTag.primitive||len!==null)return buffer.skip(len,'Failed to match body of: "'+tag+'"');var state=buffer.start();var res=this._skipUntilEnd(buffer,'Failed to skip indefinite length body: "'+this.tag+'"');if(buffer.isError(res))return res;return buffer.cut(state)};DERNode.prototype._skipUntilEnd=function skipUntilEnd(buffer,fail){while(true){var tag=derDecodeTag(buffer,fail);if(buffer.isError(tag))return tag;var len=derDecodeLen(buffer,tag.primitive,fail);if(buffer.isError(len))return len;var res;if(tag.primitive||len!==null)res=buffer.skip(len);else res=this._skipUntilEnd(buffer,fail);if(buffer.isError(res))return res;if(tag.tagStr==="end")break}};DERNode.prototype._decodeList=function decodeList(buffer,tag,decoder){var result=[];while(!buffer.isEmpty()){var possibleEnd=this._peekTag(buffer,"end");if(buffer.isError(possibleEnd))return possibleEnd;var res=decoder.decode(buffer,"der");if(buffer.isError(res)&&possibleEnd)break;result.push(res)}return result};DERNode.prototype._decodeStr=function decodeStr(buffer,tag){if(tag==="octstr"){return buffer.raw()}else if(tag==="bitstr"){var unused=buffer.readUInt8();if(buffer.isError(unused))return unused;return{unused:unused,data:buffer.raw()}}else if(tag==="ia5str"){return buffer.raw().toString()}else{return this.error("Decoding of string type: "+tag+" unsupported")}};DERNode.prototype._decodeObjid=function decodeObjid(buffer,values,relative){var identifiers=[];var ident=0;while(!buffer.isEmpty()){var subident=buffer.readUInt8();ident<<=7;ident|=subident&127;if((subident&128)===0){identifiers.push(ident);ident=0}}if(subident&128)identifiers.push(ident);var first=identifiers[0]/40|0;var second=identifiers[0]%40;if(relative)result=identifiers;else result=[first,second].concat(identifiers.slice(1));if(values)result=values[result.join(" ")];return result};DERNode.prototype._decodeTime=function decodeTime(buffer,tag){var str=buffer.raw().toString();if(tag==="gentime"){var year=str.slice(0,4)|0;var mon=str.slice(4,6)|0;var day=str.slice(6,8)|0;var hour=str.slice(8,10)|0;var min=str.slice(10,12)|0;var sec=str.slice(12,14)|0}else if(tag==="utctime"){var year=str.slice(0,2)|0;var mon=str.slice(2,4)|0;var day=str.slice(4,6)|0;var hour=str.slice(6,8)|0;var min=str.slice(8,10)|0;var sec=str.slice(10,12)|0;if(year<70)year=2e3+year;else year=1900+year}else{return this.error("Decoding "+tag+" time is not supported yet")}return Date.UTC(year,mon-1,day,hour,min,sec,0)};DERNode.prototype._decodeNull=function decodeNull(buffer){return null};DERNode.prototype._decodeBool=function decodeBool(buffer){var res=buffer.readUInt8();if(buffer.isError(res))return res;else return res!==0};DERNode.prototype._decodeInt=function decodeInt(buffer,values){var res=0;var raw=buffer.raw();if(raw.length>3)return new bignum(raw);while(!buffer.isEmpty()){res<<=8;var i=buffer.readUInt8();if(buffer.isError(i))return i;res|=i}if(values)res=values[res]||res;return res};DERNode.prototype._use=function use(entity,obj){if(typeof entity==="function")entity=entity(obj);return entity._getDecoder("der").tree};function derDecodeTag(buf,fail){var tag=buf.readUInt8(fail);if(buf.isError(tag))return tag;var cls=der.tagClass[tag>>6];var primitive=(tag&32)===0;if((tag&31)===31){var oct=tag;tag=0;while((oct&128)===128){oct=buf.readUInt8(fail);if(buf.isError(oct))return oct;tag<<=7;tag|=oct&127}}else{tag&=31}var tagStr=der.tag[tag];return{cls:cls,primitive:primitive,tag:tag,tagStr:tagStr}}function derDecodeLen(buf,primitive,fail){var len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&len===128)return null;if((len&128)===0){return len}var num=len&127;if(num>=4)return buf.error("length octect is too long");len=0;for(var i=0;i<num;i++){len<<=8;var j=buf.readUInt8(fail);if(buf.isError(j))return j;len|=j}return len}},{"../../asn1":75,util:191}],84:[function(require,module,exports){var decoders=exports;decoders.der=require("./der")},{"./der":83}],85:[function(require,module,exports){var util=require("util");var Buffer=require("buffer").Buffer;var asn1=require("../../asn1");var base=asn1.base;var bignum=asn1.bignum;var der=asn1.constants.der;function DEREncoder(entity){this.enc="der";this.name=entity.name;this.entity=entity;this.tree=new DERNode;this.tree._init(entity.body)}module.exports=DEREncoder;DEREncoder.prototype.encode=function encode(data,reporter){return this.tree._encode(data,reporter).join(); | |
};function DERNode(parent){base.Node.call(this,"der",parent)}util.inherits(DERNode,base.Node);DERNode.prototype._encodeComposite=function encodeComposite(tag,primitive,cls,content){var encodedTag=encodeTag(tag,primitive,cls,this.reporter);if(content.length<128){var header=new Buffer(2);header[0]=encodedTag;header[1]=content.length;return this._createEncoderBuffer([header,content])}var lenOctets=1;for(var i=content.length;i>=256;i>>=8)lenOctets++;var header=new Buffer(1+1+lenOctets);header[0]=encodedTag;header[1]=128|lenOctets;for(var i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=j&255;return this._createEncoderBuffer([header,content])};DERNode.prototype._encodeStr=function encodeStr(str,tag){if(tag==="octstr")return this._createEncoderBuffer(str);else if(tag==="bitstr")return this._createEncoderBuffer([str.unused|0,str.data]);else if(tag==="ia5str")return this._createEncoderBuffer(str);return this.reporter.error("Encoding of string type: "+tag+" unsupported")};DERNode.prototype._encodeObjid=function encodeObjid(id,values,relative){if(typeof id==="string"){if(!values)return this.reporter.error("string objid given, but no values map found");if(!values.hasOwnProperty(id))return this.reporter.error("objid not found in values map");id=values[id].split(/\s+/g);for(var i=0;i<id.length;i++)id[i]|=0}else if(Array.isArray(id)){id=id.slice()}if(!Array.isArray(id)){return this.reporter.error("objid() should be either array or string, "+"got: "+JSON.stringify(id))}if(!relative){if(id[1]>=40)return this.reporter.error("Second objid identifier OOB");id.splice(0,2,id[0]*40+id[1])}var size=0;for(var i=0;i<id.length;i++){var ident=id[i];for(size++;ident>=128;ident>>=7)size++}var objid=new Buffer(size);var offset=objid.length-1;for(var i=id.length-1;i>=0;i--){var ident=id[i];objid[offset--]=ident&127;while((ident>>=7)>0)objid[offset--]=128|ident&127}return this._createEncoderBuffer(objid)};function two(num){if(num<=10)return"0"+num;else return num}DERNode.prototype._encodeTime=function encodeTime(time,tag){var str;var date=new Date(time);if(tag==="gentime"){str=[date.getFullYear(),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join("")}else if(tag==="utctime"){str=[date.getFullYear()%100,two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join("")}else{this.reporter.error("Encoding "+tag+" time is not supported yet")}return this._encodeStr(str,"octstr")};DERNode.prototype._encodeNull=function encodeNull(){return this._createEncoderBuffer("")};DERNode.prototype._encodeInt=function encodeInt(num,values){if(typeof num==="string"){if(!values)return this.reporter.error("String int or enum given, but no values map");if(!values.hasOwnProperty(num)){return this.reporter.error("Values map doesn't contain: "+JSON.stringify(num))}num=values[num]}if(bignum!==null&&num instanceof bignum){var numArray=num.toArray();if(num.sign===false&&numArray[0]&128){numArray.unshift(0)}num=new Buffer(numArray)}if(Buffer.isBuffer(num)){var size=num.length;if(num.length===0)size++;var out=new Buffer(size);num.copy(out);if(num.length===0)out[0]=0;return this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);var size=1;for(var i=num;i>=256;i>>=8)size++;var out=new Array(size);for(var i=out.length-1;i>=0;i--){out[i]=num&255;num>>=8}if(out[0]&128){out.unshift(0)}return this._createEncoderBuffer(new Buffer(out))};DERNode.prototype._encodeBool=function encodeBool(value){return this._createEncoderBuffer(value?255:0)};DERNode.prototype._use=function use(entity,obj){if(typeof entity==="function")entity=entity(obj);return entity._getEncoder("der").tree};DERNode.prototype._skipDefault=function skipDefault(dataBuffer,reporter,parent){var state=this._baseState;var i;if(state["default"]===null)return false;var data=dataBuffer.join();if(state.defaultBuffer===undefined)state.defaultBuffer=this._encodeValue(state["default"],reporter,parent).join();if(data.length!==state.defaultBuffer.length)return false;for(i=0;i<data.length;i++)if(data[i]!==state.defaultBuffer[i])return false;return true};function encodeTag(tag,primitive,cls,reporter){var res;if(tag==="seqof")tag="seq";else if(tag==="setof")tag="set";if(der.tagByName.hasOwnProperty(tag))res=der.tagByName[tag];else if(typeof tag==="number"&&(tag|0)===tag)res=tag;else return reporter.error("Unknown tag: "+tag);if(res>=31)return reporter.error("Multi-octet tag encoding unsupported");if(!primitive)res|=32;res|=der.tagClassByName[cls||"universal"]<<6;return res}},{"../../asn1":75,buffer:17,util:191}],86:[function(require,module,exports){var encoders=exports;encoders.der=require("./der")},{"./der":85}],87:[function(require,module,exports){function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function assertEqual(l,r,msg){if(l!=r)throw new Error(msg||"Assertion failed: "+l+" != "+r)}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}function BN(number,base){if(number!==null&&typeof number==="object"&&Array.isArray(number.words)){return number}this.sign=false;this.words=null;this.length=0;this.red=null;if(number!==null)this._init(number||0,base||10)}if(typeof module==="object")module.exports=BN;BN.BN=BN;BN.wordSize=26;BN.prototype._init=function init(number,base){if(typeof number==="number"){if(number<0){this.sign=true;number=-number}if(number<67108864){this.words=[number&67108863];this.length=1}else{this.words=[number&67108863,number/67108864&67108863];this.length=2}return}else if(typeof number==="object"){assert(typeof number.length==="number");this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var off=0;for(var i=number.length-1,j=0;i>=0;i-=3){var w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}return this.strip()}if(base==="hex")base=16;assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,"");var start=0;if(number[0]==="-")start++;if(base===16)this._parseHex(number,start);else this._parseBase(number,base,start);if(number[0]==="-")this.sign=true;this.strip()};BN.prototype._parseHex=function parseHex(number,start){this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var off=0;for(var i=number.length-6,j=0;i>=start;i-=6){var w=parseInt(number.slice(i,i+6),16);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303;off+=24;if(off>=26){off-=26;j++}}if(i+6!==start){var w=parseInt(number.slice(start,i+6),16);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303}this.strip()};BN.prototype._parseBase=function parseBase(number,base,start){this.words=[0];this.length=1;var word=0;var q=1;var p=0;var bigQ=null;for(var i=start;i<number.length;i++){var digit;var ch=number[i];if(base===10||ch<="9")digit=ch|0;else if(ch>="a")digit=ch.charCodeAt(0)-97+10;else digit=ch.charCodeAt(0)-65+10;word*=base;word+=digit;q*=base;p++;if(q>1048575){assert(q<=67108863);if(!bigQ)bigQ=new BN(q);this.mul(bigQ).copy(this);this.iadd(new BN(word));word=0;q=1;p=0}}if(p!==0){this.mul(new BN(q)).copy(this);this.iadd(new BN(word))}};BN.prototype.copy=function copy(dest){dest.words=new Array(this.length);for(var i=0;i<this.length;i++)dest.words[i]=this.words[i];dest.length=this.length;dest.sign=this.sign;dest.red=this.red};BN.prototype.clone=function clone(){var r=new BN(null);this.copy(r);return r};BN.prototype.strip=function strip(){while(this.length>1&&this.words[this.length-1]===0)this.length--;return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0)this.sign=false;return this};BN.prototype.inspect=function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;if(base===16||base==="hex"){var out="";var off=0;var padding=padding|0||1;var carry=0;for(var i=0;i<this.length;i++){var w=this.words[i];var word=((w<<off|carry)&16777215).toString(16);carry=w>>>24-off&16777215;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out;off+=2;if(off>=26){off-=26;i--}}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out="0"+out;if(this.sign)out="-"+out;return out}else if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base];var groupBase=groupBases[base];var out="";var c=this.clone();c.sign=false;while(c.cmpn(0)!==0){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase);if(c.cmpn(0)!==0)out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.cmpn(0)===0)out="0"+out;if(this.sign)out="-"+out;return out}else{assert(false,"Base should be between 2 and 36")}};BN.prototype.toJSON=function toJSON(){return this.toString(16)};BN.prototype.toArray=function toArray(){this.strip();var res=new Array(this.byteLength());res[0]=0;var q=this.clone();for(var i=0;q.cmpn(0)!==0;i++){var b=q.andln(255);q.ishrn(8);res[res.length-i-1]=b}return res};BN.prototype._countBits=function _countBits(w){return w>=33554432?26:w>=16777216?25:w>=8388608?24:w>=4194304?23:w>=2097152?22:w>=1048576?21:w>=524288?20:w>=262144?19:w>=131072?18:w>=65536?17:w>=32768?16:w>=16384?15:w>=8192?14:w>=4096?13:w>=2048?12:w>=1024?11:w>=512?10:w>=256?9:w>=128?8:w>=64?7:w>=32?6:w>=16?5:w>=8?4:w>=4?3:w>=2?2:w>=1?1:0};BN.prototype.bitLength=function bitLength(){var hi=0;var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi};BN.prototype.byteLength=function byteLength(){var hi=0;var w=this.words[this.length-1];return Math.ceil(this.bitLength()/8)};BN.prototype.neg=function neg(){if(this.cmpn(0)===0)return this.clone();var r=this.clone();r.sign=!this.sign;return r};BN.prototype.iadd=function iadd(num){if(this.sign&&!num.sign){this.sign=false;var r=this.isub(num);this.sign=!this.sign;return this._normSign()}else if(!this.sign&&num.sign){num.sign=false;var r=this.isub(num);num.sign=true;return r._normSign()}var a;var b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){var r=a.words[i]+b.words[i]+carry;this.words[i]=r&67108863;carry=r>>>26}for(;carry!==0&&i<a.length;i++){var r=a.words[i]+carry;this.words[i]=r&67108863;carry=r>>>26}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++}else if(a!==this){for(;i<a.length;i++)this.words[i]=a.words[i]}return this};BN.prototype.add=function add(num){if(num.sign&&!this.sign){num.sign=false;var res=this.sub(num);num.sign=true;return res}else if(!num.sign&&this.sign){this.sign=false;var res=num.sub(this);this.sign=true;return res}if(this.length>num.length)return this.clone().iadd(num);else return num.clone().iadd(this)};BN.prototype.isub=function isub(num){if(num.sign){num.sign=false;var r=this.iadd(num);num.sign=true;return r._normSign()}else if(this.sign){this.sign=false;this.iadd(num);this.sign=true;return this._normSign()}var cmp=this.cmp(num);if(cmp===0){this.sign=false;this.length=1;this.words[0]=0;return this}if(cmp>0){var a=this;var b=num}else{var a=num;var b=this}var carry=0;for(var i=0;i<b.length;i++){var r=a.words[i]-b.words[i]-carry;if(r<0){r+=67108864;carry=1}else{carry=0}this.words[i]=r}for(;carry!==0&&i<a.length;i++){var r=a.words[i]-carry;if(r<0){r+=67108864;carry=1}else{carry=0}this.words[i]=r}if(carry===0&&i<a.length&&a!==this)for(;i<a.length;i++)this.words[i]=a.words[i];this.length=Math.max(this.length,i);if(a!==this)this.sign=true;return this.strip()};BN.prototype.sub=function sub(num){return this.clone().isub(num)};BN.prototype._smallMulTo=function _smallMulTo(num,out){out.sign=num.sign!==this.sign;out.length=this.length+num.length;var carry=0;for(var k=0;k<out.length-1;k++){var ncarry=carry>>>26;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-this.length+1);j<=maxJ;j++){var i=k-j;var a=this.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0}out.words[k]=rword;carry=ncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()};BN.prototype._bigMulTo=function _bigMulTo(num,out){out.sign=num.sign!==this.sign;out.length=this.length+num.length;var carry=0;var hncarry=0;for(var k=0;k<out.length-1;k++){var ncarry=hncarry;hncarry=0;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-this.length+1);j<=maxJ;j++){var i=k-j;var a=this.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0;hncarry+=ncarry>>>26;ncarry&=67108863}out.words[k]=rword;carry=ncarry;ncarry=hncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()};BN.prototype.mulTo=function mulTo(num,out){var res;if(this.length+num.length<63)res=this._smallMulTo(num,out);else res=this._bigMulTo(num,out);return res};BN.prototype.mul=function mul(num){var out=new BN(null);out.words=new Array(this.length+num.length);return this.mulTo(num,out)};BN.prototype.imul=function imul(num){if(this.cmpn(0)===0||num.cmpn(0)===0){this.words[0]=0;this.length=1;return this}var tlen=this.length;var nlen=num.length;this.sign=num.sign!==this.sign;this.length=this.length+num.length;this.words[this.length-1]=0;var lastCarry=0;for(var k=this.length-2;k>=0;k--){var carry=0;var rword=0;var maxJ=Math.min(k,nlen-1);for(var j=Math.max(0,k-tlen+1);j<=maxJ;j++){var i=k-j;var a=this.words[i];var b=num.words[j];var r=a*b;var lo=r&67108863;carry+=r/67108864|0;lo+=rword;rword=lo&67108863;carry+=lo>>>26}this.words[k]=rword;this.words[k+1]+=carry;carry=0}var carry=0;for(var i=1;i<this.length;i++){var w=this.words[i]+carry;this.words[i]=w&67108863;carry=w>>>26}return this.strip()};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.mul(this)};BN.prototype.ishln=function ishln(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;var carryMask=67108863>>>26-r<<26-r;var o=this.clone();if(r!==0){var carry=0;for(var i=0;i<this.length;i++){var newCarry=this.words[i]&carryMask;var c=this.words[i]-newCarry<<r;this.words[i]=c|carry;carry=newCarry>>>26-r}if(carry){this.words[i]=carry;this.length++}}if(s!==0){for(var i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(var i=0;i<s;i++)this.words[i]=0;this.length+=s}return this.strip()};BN.prototype.ishrn=function ishrn(bits,hint,extended){assert(typeof bits==="number"&&bits>=0);if(hint)hint=(hint-hint%26)/26;else hint=0;var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=67108863^67108863>>>r<<r;var maskedWords=extended;hint-=s;hint=Math.max(0,hint);if(maskedWords){for(var i=0;i<s;i++)maskedWords.words[i]=this.words[i];maskedWords.length=s}if(s===0){}else if(this.length>s){this.length-=s;for(var i=0;i<this.length;i++)this.words[i]=this.words[i+s]}else{this.words[0]=0;this.length=1}var carry=0;for(var i=this.length-1;i>=0&&(carry!==0||i>=hint);i--){var word=this.words[i];this.words[i]=carry<<26-r|word>>>r;carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0){this.words[0]=0;this.length=1}this.strip();if(extended)return{hi:this,lo:maskedWords};return this};BN.prototype.shln=function shln(bits){return this.clone().ishln(bits)};BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits)};BN.prototype.testn=function testn(bit){assert(typeof bit==="number"&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s){return false}var w=this.words[s];return!!(w&q)};BN.prototype.imaskn=function imaskn(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;assert(!this.sign,"imaskn works only with positive numbers");if(r!==0)s++;this.length=Math.min(s,this.length);if(r!==0){var mask=67108863^67108863>>>r<<r;this.words[this.length-1]&=mask}return this.strip()};BN.prototype.maskn=function maskn(bits){return this.clone().imaskn(bits)};BN.prototype.iaddn=function iaddn(num){assert(typeof num==="number");if(num<0)return this.isubn(-num);if(this.sign){if(this.length===1&&this.words[0]<num){this.words[0]=num-this.words[0];this.sign=false;return this}this.sign=false;this.isubn(num);this.sign=true;return this}this.words[0]+=num;for(var i=0;i<this.length&&this.words[i]>=67108864;i++){this.words[i]-=67108864;if(i===this.length-1)this.words[i+1]=1;else this.words[i+1]++}this.length=Math.max(this.length,i+1);return this};BN.prototype.isubn=function isubn(num){assert(typeof num==="number");if(num<0)return this.iaddn(-num);if(this.sign){this.sign=false;this.iaddn(num);this.sign=true;return this}this.words[0]-=num;for(var i=0;i<this.length&&this.words[i]<0;i++){this.words[i]+=67108864;this.words[i+1]-=1}return this.strip()};BN.prototype.addn=function addn(num){return this.clone().iaddn(num)};BN.prototype.subn=function subn(num){return this.clone().isubn(num)};BN.prototype.iabs=function iabs(){this.sign=false;return this};BN.prototype.abs=function abs(){return this.clone().iabs()};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;var q=mode!=="mod"&&new BN(0);var sign=false;while(a.length>b.length){var hi=a.words[a.length-1]*67108864+a.words[a.length-2];var sq=hi/b.words[b.length-1];var sqhi=sq/67108864|0;var sqlo=sq&67108863;sq=new BN(null);sq.words=[sqlo,sqhi];sq.length=2;var shift=(a.length-b.length-1)*26;if(q){var t=sq.shln(shift);if(a.sign)q.isub(t);else q.iadd(t)}sq=sq.mul(b).ishln(shift);if(a.sign)a.iadd(sq);else a.isub(sq)}while(a.ucmp(b)>=0){var hi=a.words[a.length-1];var sq=new BN(hi/b.words[b.length-1]|0);var shift=(a.length-b.length)*26;if(q){var t=sq.shln(shift);if(a.sign)q.isub(t);else q.iadd(t)}sq=sq.mul(b).ishln(shift);if(a.sign)a.iadd(sq);else a.isub(sq)}if(a.sign){if(q)q.isubn(1);a.iadd(b)}return{div:q?q:null,mod:a}};BN.prototype.divmod=function divmod(num,mode){assert(num.cmpn(0)!==0);if(this.sign&&!num.sign){var res=this.neg().divmod(num,mode);var div;var mod;if(mode!=="mod")div=res.div.neg();if(mode!=="div")mod=res.mod.cmpn(0)===0?res.mod:num.sub(res.mod);return{div:div,mod:mod}}else if(!this.sign&&num.sign){var res=this.divmod(num.neg(),mode);var div;if(mode!=="mod")div=res.div.neg();return{div:div,mod:res.mod}}else if(this.sign&&num.sign){return this.neg().divmod(num.neg(),mode)}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode==="div")return{div:this.divn(num.words[0]),mod:null};else if(mode==="mod")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)};BN.prototype.div=function div(num){return this.divmod(num,"div").div};BN.prototype.mod=function mod(num){return this.divmod(num,"mod").mod};BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);if(dm.mod.cmpn(0)===0)return dm.div;var mod=dm.div.sign?dm.mod.isub(num):dm.mod;var half=num.shrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.sign?dm.div.isubn(1):dm.div.iaddn(1)};BN.prototype.modn=function modn(num){assert(num<=67108863);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+this.words[i])%num;return acc};BN.prototype.idivn=function idivn(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=this.words[i]+carry*67108864;this.words[i]=w/num|0;carry=w%num}return this.strip()};BN.prototype.divn=function divn(num){return this.clone().idivn(num)};BN.prototype._egcd=function _egcd(x1,p){assert(!p.sign);assert(p.cmpn(0)!==0);var a=this;var b=p.clone();if(a.sign)a=a.mod(p);else a=a.clone();var x2=new BN(0);while(b.isEven())b.ishrn(1);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){while(a.isEven()){a.ishrn(1);if(x1.isEven())x1.ishrn(1);else x1.iadd(delta).ishrn(1)}while(b.isEven()){b.ishrn(1);if(x2.isEven())x2.ishrn(1);else x2.iadd(delta).ishrn(1)}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2)}else{b.isub(a);x2.isub(x1)}}if(a.cmpn(1)===0)return x1;else return x2};BN.prototype.gcd=function gcd(num){if(this.cmpn(0)===0)return num.clone();if(num.cmpn(0)===0)return this.clone();var a=this.clone();var b=num.clone();a.sign=false;b.sign=false;for(var shift=0;a.isEven()&&b.isEven();shift++){a.ishrn(1);b.ishrn(1)}while(a.isEven())a.ishrn(1);do{while(b.isEven())b.ishrn(1);if(a.cmp(b)<0){var t=a;a=b;b=t}a.isub(a.div(b).mul(b))}while(a.cmpn(0)!==0&&b.cmpn(0)!==0);if(a.cmpn(0)===0)return b.ishln(shift);else return a.ishln(shift)};BN.prototype.invm=function invm(num){return this._egcd(new BN(1),num).mod(num)};BN.prototype.isEven=function isEven(num){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(num){return(this.words[0]&1)===1};BN.prototype.andln=function andln(num){return this.words[0]&num};BN.prototype.bincn=function bincn(bit){assert(typeof bit==="number");var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s){for(var i=this.length;i<s+1;i++)this.words[i]=0;this.words[s]|=q;this.length=s+1;return this}var carry=q;for(var i=s;carry!==0&&i<this.length;i++){var w=this.words[i];w+=carry;carry=w>>>26;w&=67108863;this.words[i]=w}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.cmpn=function cmpn(num){var sign=num<0;if(sign)num=-num;if(this.sign&&!sign)return-1;else if(!this.sign&&sign)return 1;num&=67108863;this.strip();var res;if(this.length>1){res=1}else{var w=this.words[0];res=w===num?0:w<num?-1:1}if(this.sign)res=-res;return res};BN.prototype.cmp=function cmp(num){if(this.sign&&!num.sign)return-1;else if(!this.sign&&num.sign)return 1;var res=this.ucmp(num);if(this.sign)return-res;else return res};BN.prototype.ucmp=function ucmp(num){if(this.length>num.length)return 1;else if(this.length<num.length)return-1;var res=0;for(var i=this.length-1;i>=0;i--){var a=this.words[i];var b=num.words[i];if(a===b)continue;if(a<b)res=-1;else if(a>b)res=1;break}return res};BN.red=function red(num){return new Red(num)};BN.prototype.toRed=function toRed(ctx){assert(!this.red,"Already a number in reduction context");assert(!this.sign,"red works only with positives");return ctx.convertTo(this)._forceRed(ctx)};BN.prototype.fromRed=function fromRed(){assert(this.red,"fromRed works only with numbers in reduction context");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,"Already a number in reduction context");return this._forceRed(ctx)};BN.prototype.redAdd=function redAdd(num){assert(this.red,"redAdd works only with red numbers");return this.red.add(this,num)};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,"redIAdd works only with red numbers");return this.red.iadd(this,num)};BN.prototype.redSub=function redSub(num){assert(this.red,"redSub works only with red numbers");return this.red.sub(this,num)};BN.prototype.redISub=function redISub(num){assert(this.red,"redISub works only with red numbers");return this.red.isub(this,num)};BN.prototype.redShl=function redShl(num){assert(this.red,"redShl works only with red numbers");return this.red.shl(this,num)};BN.prototype.redMul=function redMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.mul(this,num)};BN.prototype.redIMul=function redIMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.imul(this,num)};BN.prototype.redSqr=function redSqr(){assert(this.red,"redSqr works only with red numbers");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,"redISqr works only with red numbers");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,"redSqrt works only with red numbers");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,"redInvm works only with red numbers");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,"redNeg works only with red numbers");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,"redPow(normalNum)");this.red._verify1(this);return this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).ishln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp};MPrime.prototype.ireduce=function ireduce(num){var r=num;var rlen;do{var pair=r.ishrn(this.n,0,this.tmp);r=this.imulK(pair.hi);r=r.iadd(pair.lo);rlen=r.bitLength()}while(rlen>this.n);var cmp=rlen<this.n?-1:r.cmp(this.p);if(cmp===0){r.words[0]=0;r.length=1}else if(cmp>0){r.isub(this.p)}else{r.strip()}return r};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k)};function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}inherits(K256,MPrime);K256.prototype.imulK=function imulK(num){num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;for(var i=num.length-3;i>=0;i--){var w=num.words[i];var hi=w*64;var lo=w*977;hi+=lo/67108864|0;var uhi=hi/67108864|0;hi&=67108863;lo&=67108863;num.words[i+2]+=uhi;num.words[i+1]+=hi;num.words[i]=lo}var w=num.words[num.length-2];if(w>=67108864){num.words[num.length-1]+=w>>>26;num.words[num.length-2]=w&67108863}if(num.words[num.length-1]===0)num.length--;if(num.words[num.length-1]===0)num.length--;return num};function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}inherits(P224,MPrime);function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}inherits(P192,MPrime);function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}inherits(P25519,MPrime);P25519.prototype.imulK=function imulK(num){var carry=0;for(var i=0;i<num.length;i++){var hi=num.words[i]*19+carry;var lo=hi&67108863;hi>>>=26;num.words[i]=lo;carry=hi}if(carry!==0)num.words[num.length++]=carry;return num};BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if(name==="k256")prime=new K256;else if(name==="p224")prime=new P224;else if(name==="p192")prime=new P192;else if(name==="p25519")prime=new P25519;else throw new Error("Unknown prime "+name);primes[name]=prime;return prime};function Red(m){if(typeof m==="string"){var prime=BN._prime(m);this.m=prime.p;this.prime=prime}else{this.m=m;this.prime=null}}Red.prototype._verify1=function _verify1(a){assert(!a.sign,"red works only with positives");assert(a.red,"red works only with red numbers")};Red.prototype._verify2=function _verify2(a,b){assert(!a.sign&&!b.sign,"red works only with positives");assert(a.red&&a.red===b.red,"red works only with red numbers")};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.mod(this.m)._forceRed(this)};Red.prototype.neg=function neg(a){var r=a.clone();r.sign=!r.sign;return r.iadd(this.m)._forceRed(this)};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.shln(num))};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b))};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b))};Red.prototype.isqr=function isqr(a){return this.imul(a,a)};Red.prototype.sqr=function sqr(a){return this.mul(a,a)};Red.prototype.sqrt=function sqrt(a){if(a.cmpn(0)===0)return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);if(mod3===3){var pow=this.m.add(new BN(1)).ishrn(2);var r=this.pow(a,pow);return r}var q=this.m.subn(1);var s=0;while(q.cmpn(0)!==0&&q.andln(1)===0){s++;q.ishrn(1)}assert(q.cmpn(0)!==0);var one=new BN(1).toRed(this);var nOne=one.redNeg();var lpow=this.m.subn(1).ishrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q);var r=this.pow(a,q.addn(1).ishrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i<m);var b=this.pow(c,new BN(1).ishln(m-i-1));r=r.redMul(b);c=b.redSqr();t=t.redMul(c);m=i}return r};Red.prototype.invm=function invm(a){var inv=a._egcd(new BN(1),this.m);if(inv.sign){inv.sign=false;return this.imod(inv).redNeg()}else{return this.imod(inv)}};Red.prototype.pow=function pow(a,num){var w=[];var q=num.clone();while(q.cmpn(0)!==0){w.push(q.andln(1));q.ishrn(1)}var res=a;for(var i=0;i<w.length;i++,res=this.sqr(res))if(w[i]!==0)break;if(++i<w.length){for(var q=this.sqr(res);i<w.length;i++,q=this.sqr(q)){if(w[i]===0)continue;res=this.mul(res,q)}}return res};Red.prototype.convertTo=function convertTo(num){return num.clone()};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res};BN.mont=function mont(num){return new Mont(num)};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).ishln(this.shift);this.r2=this.imod(this.r.sqr());this.rinv=this.r.invm(this.m);this.minv=this.rinv.mul(this.r).sub(new BN(1)).div(this.m).neg().mod(this.r)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.shln(this.shift))};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r};Mont.prototype.imul=function imul(a,b){if(a.cmpn(0)===0||b.cmpn(0)===0){a.words[0]=0;a.length=1;return a}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).ishrn(this.shift);var res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)};Mont.prototype.mul=function mul(a,b){if(a.cmpn(0)===0||b.cmpn(0)===0)return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).ishrn(this.shift);var res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)};Mont.prototype.invm=function invm(a){var res=this.imod(a.invm(this.m).mul(this.r2));return res._forceRed(this); | |
}},{}],88:[function(require,module,exports){exports.strip=function strip(artifact){artifact=artifact.toString();var startRegex=/^-----BEGIN (.*)-----\n/;var match=startRegex.exec(artifact);var tag=match[1];var endRegex=new RegExp("\n-----END "+tag+"-----(\n*)$");var base64=artifact.slice(match[0].length).replace(endRegex,"").replace(/\n/g,"");return{tag:tag,base64:base64}};var wrap=function wrap(str,l){var chunks=[];while(str){if(str.length<l){chunks.push(str);break}else{chunks.push(str.substr(0,l));str=str.substr(l)}}return chunks.join("\n")};exports.assemble=function assemble(info){var tag=info.tag;var base64=info.base64;var startLine="-----BEGIN "+tag+"-----";var endLine="-----END "+tag+"-----";return startLine+"\n"+wrap(base64,64)+"\n"+endLine+"\n"}},{}],89:[function(require,module,exports){(function(Buffer){var parseKeys=require("parse-asn1");var bn=require("bn.js");var elliptic=require("elliptic");var crt=require("browserify-rsa");module.exports=sign;function sign(hash,key,crypto){var priv=parseKeys(key,crypto);if(priv.curve){return ecSign(hash,priv,crypto)}else if(priv.type==="dsa"){return dsaSign(hash,priv,crypto)}var len=priv.modulus.byteLength();var pad=[0,1];while(hash.length+pad.length+1<len){pad.push(255)}pad.push(0);var i=-1;while(++i<hash.length){pad.push(hash[i])}var out=crt(pad,priv,crypto);return out}function ecSign(hash,priv,crypto){elliptic.rand=crypto.randomBytes;var curve;if(priv.curve.join(".")==="1.3.132.0.10"){curve=new elliptic.ec("secp256k1")}var key=curve.genKeyPair();key._importPrivate(priv.privateKey);var out=key.sign(hash);return new Buffer(out.toDER())}function dsaSign(hash,priv,crypto){var x=priv.params.priv_key;var p=priv.params.p;var q=priv.params.q;var montq=bn.mont(q);var g=priv.params.g;var r=new bn(0);var k;var H=new bn(hash);var s=false;while(s===false){while(!r.cmpn(0)){k=getKay(q,crypto);r=makeR(g,k,p,q)}s=k.invm(q).imul(H.add(x.imul(r).mod(q)).mod(q)).mod(q);if(!s.cmpn(0)){s=false;r=new bn(0)}}return toDER(r,s)}function toDER(r,s){r=r.toArray();s=s.toArray();if(r[0]&128)r=[0].concat(r);if(s[0]&128)s=[0].concat(s);var total=r.length+s.length+4;var res=[48,total,2,r.length];res=res.concat(r,[2,s.length],s);return new Buffer(res)}function getKay(q,crypto){var k=new bn(crypto.randomBytes(q.byteLength()));while(k.cmp(q)>=0){k=new bn(crypto.randomBytes(q.byteLength()))}return k}function makeR(g,k,p,q){return g.toRed(bn.mont(p)).redPow(k).fromRed().mod(q)}}).call(this,require("buffer").Buffer)},{"bn.js":46,"browserify-rsa":47,buffer:17,elliptic:49,"parse-asn1":73}],90:[function(require,module,exports){(function(Buffer){var parseKeys=require("parse-asn1");var elliptic=require("elliptic");var bn=require("bn.js");module.exports=verify;function verify(sig,hash,key){var pub=parseKeys(key);if(pub.type==="ec"){return ecVerify(sig,hash,pub)}else if(pub.type==="dsa"){return dsaVerify(sig,hash,pub)}var len=pub.modulus.byteLength();var pad=[0,1];while(hash.length+pad.length+1<len){pad.push(255)}pad.push(0);var i=-1;while(++i<hash.length){pad.push(hash[i])}pad=hash;var red=bn.mont(pub.modulus);sig=new bn(sig).toRed(red);sig=sig.redPow(new bn(pub.publicExponent));sig=new Buffer(sig.fromRed().toArray());sig=sig.slice(sig.length-hash.length);var out=0;len=sig.length;i=-1;while(++i<len){out+=sig[i]^hash[i]}return!out}function ecVerify(sig,hash,pub){var curve;if(pub.data.algorithm.curve.join(".")==="1.3.132.0.10"){curve=new elliptic.ec("secp256k1")}var pubkey=pub.data.subjectPrivateKey.data;return curve.verify(hash.toString("hex"),sig.toString("hex"),pubkey.toString("hex"))}function dsaVerify(sig,hash,pub){var p=pub.data.p;var q=pub.data.q;var g=pub.data.g;var y=pub.data.pub_key;var unpacked=parseKeys.signature.decode(sig,"der");var s=unpacked.s;var r=unpacked.r;checkValue(s,q);checkValue(r,q);var montq=bn.mont(q);var montp=bn.mont(p);var w=s.invm(q);var v=g.toRed(montp).redPow(new bn(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);return!v.cmp(r)}function checkValue(b,q){if(b.cmpn(0)<=0){throw new Error("invalid sig")}if(b.cmp(q)>=q){throw new Error("invalid sig")}}}).call(this,require("buffer").Buffer)},{"bn.js":46,buffer:17,elliptic:49,"parse-asn1":73}],91:[function(require,module,exports){(function(Buffer){var elliptic=require("elliptic");var BN=require("bn.js");module.exports=ECDH;function ECDH(curve,crypto){elliptic.rand=crypto.randomBytes;this.curve=new elliptic.ec(curve);this.keys=void 0}ECDH.prototype.generateKeys=function(enc,format){this.keys=this.curve.genKeyPair();return this.getPublicKey(enc,format)};ECDH.prototype.computeSecret=function(other,inenc,enc){inenc=inenc||"utf8";if(!Buffer.isBuffer(other)){other=new Buffer(other,inenc)}other=new BN(other);other=other.toString(16);var otherPub=this.curve.keyPair(other,"hex").getPublic();var out=otherPub.mul(this.keys.getPrivate()).getX();return returnValue(out,enc)};ECDH.prototype.getPublicKey=function(enc,format){var key=this.keys.getPublic(format==="compressed",true);if(format==="hybrid"){if(key[key.length-1]%2){key[0]=7}else{key[0]=6}}return returnValue(key,enc)};ECDH.prototype.getPrivateKey=function(enc){return returnValue(this.keys.getPrivate(),enc)};ECDH.prototype.setPublicKey=function(pub,enc){enc=enc||"utf8";if(!Buffer.isBuffer(pub)){pub=new Buffer(pub,enc)}var pkey=new BN(pub);pkey=pkey.toArray();this.keys._importPublicHex(pkey)};ECDH.prototype.setPrivateKey=function(priv,enc){enc=enc||"utf8";if(!Buffer.isBuffer(priv)){priv=new Buffer(priv,enc)}var _priv=new BN(priv);_priv=_priv.toString(16);this.keys._importPrivate(_priv)};function returnValue(bn,enc){if(!Array.isArray(bn)){bn=bn.toArray()}var buf=new Buffer(bn);if(!enc){return buf}else{return buf.toString(enc)}}}).call(this,require("buffer").Buffer)},{"bn.js":93,buffer:17,elliptic:94}],92:[function(require,module,exports){var ECDH=require("./ecdh");module.exports=function(crypto,exports){exports.createECDH=function(curve){return new ECDH(curve,crypto)}}},{"./ecdh":91}],93:[function(require,module,exports){arguments[4][46][0].apply(exports,arguments)},{dup:46}],94:[function(require,module,exports){arguments[4][49][0].apply(exports,arguments)},{"../package.json":113,"./elliptic/curve":97,"./elliptic/curves":100,"./elliptic/ec":101,"./elliptic/hmac-drbg":104,"./elliptic/utils":105,brorand:106,dup:49}],95:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{"../../elliptic":94,assert:2,"bn.js":93,dup:50}],96:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{"../../elliptic":94,"../curve":97,assert:2,"bn.js":93,dup:51,inherits:168}],97:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{"./base":95,"./edwards":96,"./mont":98,"./short":99,dup:52}],98:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{"../../elliptic":94,"../curve":97,assert:2,"bn.js":93,dup:53,inherits:168}],99:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{"../../elliptic":94,"../curve":97,assert:2,"bn.js":93,dup:54,inherits:168}],100:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{"../elliptic":94,assert:2,"bn.js":93,dup:55,"hash.js":107}],101:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{"../../elliptic":94,"./key":102,"./signature":103,assert:2,"bn.js":93,dup:56}],102:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{"../../elliptic":94,assert:2,"bn.js":93,dup:57}],103:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{"../../elliptic":94,assert:2,"bn.js":93,dup:58}],104:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{"../elliptic":94,assert:2,dup:59,"hash.js":107}],105:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{assert:2,"bn.js":93,dup:60}],106:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],107:[function(require,module,exports){arguments[4][62][0].apply(exports,arguments)},{"./hash/common":108,"./hash/hmac":109,"./hash/ripemd":110,"./hash/sha":111,"./hash/utils":112,dup:62}],108:[function(require,module,exports){arguments[4][63][0].apply(exports,arguments)},{"../hash":107,dup:63}],109:[function(require,module,exports){arguments[4][64][0].apply(exports,arguments)},{"../hash":107,dup:64}],110:[function(require,module,exports){arguments[4][65][0].apply(exports,arguments)},{"../hash":107,dup:65}],111:[function(require,module,exports){arguments[4][66][0].apply(exports,arguments)},{"../hash":107,dup:66}],112:[function(require,module,exports){arguments[4][67][0].apply(exports,arguments)},{dup:67}],113:[function(require,module,exports){arguments[4][68][0].apply(exports,arguments)},{dup:68}],114:[function(require,module,exports){(function(Buffer){var BN=require("bn.js");var MillerRabin=require("miller-rabin");var millerRabin=new MillerRabin;var TWENTYFOUR=new BN(24);var ELEVEN=new BN(11);var TEN=new BN(10);var THREE=new BN(3);var SEVEN=new BN(7);var primes=require("./generatePrime");module.exports=DH;function setPublicKey(pub,enc){enc=enc||"utf8";if(!Buffer.isBuffer(pub)){pub=new Buffer(pub,enc)}this._pub=new BN(pub)}function setPrivateKey(priv,enc){enc=enc||"utf8";if(!Buffer.isBuffer(priv)){priv=new Buffer(priv,enc)}this._priv=new BN(priv)}var primeCache={};function checkPrime(prime,generator){var gen=generator.toString("hex");var hex=[gen,prime.toString(16)].join("_");if(hex in primeCache){return primeCache[hex]}var error=0;if(prime.isEven()||!primes.simpleSieve||!primes.fermatTest(prime)||!millerRabin.test(prime)){error+=1;if(gen==="02"||gen==="05"){error+=8}else{error+=4}primeCache[hex]=error;return error}if(!millerRabin.test(prime.shrn(1))){error+=2}var gen=generator.toString("hex");var rem;switch(gen){case"02":if(prime.mod(TWENTYFOUR).cmp(ELEVEN)){error+=8}break;case"05":rem=prime.mod(TEN);if(rem.cmp(THREE)&&rem.cmp(SEVEN)){error+=8}break;default:error+=4}primeCache[hex]=error;return error}function defineError(self,error){try{Object.defineProperty(self,"verifyError",{enumerable:true,value:error,writable:false})}catch(e){self.verifyError=error}}function DH(prime,generator,crypto,malleable){this.setGenerator(generator);this.__prime=new BN(prime);this._prime=BN.mont(this.__prime);this._pub=void 0;this._priv=void 0;if(malleable){this.setPublicKey=setPublicKey;this.setPrivateKey=setPrivateKey;defineError(this,checkPrime(this.__prime,generator))}else{defineError(this,8)}this._makeNum=function makeNum(){return crypto.randomBytes(prime.length)}}DH.prototype.generateKeys=function(){if(!this._priv){this._priv=new BN(this._makeNum())}this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed();return this.getPublicKey()};DH.prototype.computeSecret=function(other){other=new BN(other);other=other.toRed(this._prime);var secret=other.redPow(this._priv).fromRed();var out=new Buffer(secret.toArray());var prime=this.getPrime();if(out.length<prime.length){var front=new Buffer(prime.length-out.length);front.fill(0);out=Buffer.concat([front,out])}return out};DH.prototype.getPublicKey=function getPublicKey(enc){return returnValue(this._pub,enc)};DH.prototype.getPrivateKey=function getPrivateKey(enc){return returnValue(this._priv,enc)};DH.prototype.getPrime=function(enc){return returnValue(this.__prime,enc)};DH.prototype.getGenerator=function(enc){return returnValue(this._gen,enc)};DH.prototype.setGenerator=function(gen,enc){enc=enc||"utf8";if(!Buffer.isBuffer(gen)){gen=new Buffer(gen,enc)}this._gen=new BN(gen)};function returnValue(bn,enc){var buf=new Buffer(bn.toArray());if(!enc){return buf}else{return buf.toString(enc)}}}).call(this,require("buffer").Buffer)},{"./generatePrime":115,"bn.js":117,buffer:17,"miller-rabin":118}],115:[function(require,module,exports){module.exports=findPrime;findPrime.simpleSieve=simpleSieve;findPrime.fermatTest=fermatTest;var BN=require("bn.js");var TWENTYFOUR=new BN(24);var MillerRabin=require("miller-rabin");var millerRabin=new MillerRabin;var ONE=new BN(1);var TWO=new BN(2);var FIVE=new BN(5);var SIXTEEN=new BN(16);var EIGHT=new BN(8);var TEN=new BN(10);var THREE=new BN(3);var SEVEN=new BN(7);var ELEVEN=new BN(11);var FOUR=new BN(4);var TWELVE=new BN(12);var primes=null;function _getPrimes(){if(primes!==null)return primes;var limit=1048576;var res=[];res[0]=2;for(var i=1,k=3;k<limit;k+=2){var sqrt=Math.ceil(Math.sqrt(k));for(var j=0;j<i&&res[j]<=sqrt;j++)if(k%res[j]===0)break;if(i!==j&&res[j]<=sqrt)continue;res[i++]=k}primes=res;return res}function simpleSieve(p){var primes=_getPrimes();for(var i=0;i<primes.length;i++)if(p.modn(primes[i])===0){if(p.cmpn(primes[i])===0){return true}else{return false}}return true}function fermatTest(p){var red=BN.mont(p);return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1)===0}function findPrime(bits,gen,crypto){if(bits<16){if(gen===2||gen===5){return new BN([140,123])}else{return new BN([140,39])}}gen=new BN(gen);var runs,comp;function generateRandom(bits){runs=-1;var out=new BN(crypto.randomBytes(Math.ceil(bits/8)));while(out.bitLength()>bits){out.ishrn(1)}if(out.isEven()){out.iadd(ONE)}if(!out.testn(1)){out.iadd(TWO)}if(!gen.cmp(TWO)){while(out.mod(TWENTYFOUR).cmp(ELEVEN)){out.iadd(FOUR)}comp={major:[TWENTYFOUR],minor:[TWELVE]}}else if(!gen.cmp(FIVE)){rem=out.mod(TEN);while(rem.cmp(THREE)){out.iadd(FOUR);rem=out.mod(TEN)}comp={major:[FOUR,SIXTEEN],minor:[TWO,EIGHT]}}else{comp={major:[FOUR],minor:[TWO]}}return out}var num=generateRandom(bits);var n2=num.shrn(1);while(true){while(num.bitLength()>bits){num=generateRandom(bits);n2=num.shrn(1)}runs++;if(simpleSieve(n2)&&simpleSieve(num)&&fermatTest(n2)&&fermatTest(num)&&millerRabin.test(n2)&&millerRabin.test(num)){return num}num.iadd(comp.major[runs%comp.major.length]);n2.iadd(comp.minor[runs%comp.minor.length])}}},{"bn.js":117,"miller-rabin":118}],116:[function(require,module,exports){(function(Buffer){var primes=require("./primes.json");var DH=require("./dh");var generatePrime=require("./generatePrime");module.exports=function(crypto,exports){exports.DiffieHellmanGroup=exports.createDiffieHellmanGroup=exports.getDiffieHellman=DiffieHellmanGroup;function DiffieHellmanGroup(mod){return new DH(new Buffer(primes[mod].prime,"hex"),new Buffer(primes[mod].gen,"hex"),crypto)}exports.createDiffieHellman=exports.DiffieHellman=DiffieHellman;function DiffieHellman(prime,enc,generator,genc){if(Buffer.isBuffer(enc)||typeof enc==="string"&&["hex","binary","base64"].indexOf(enc)===-1){genc=generator;generator=enc;enc=void 0}enc=enc||"binary";genc=genc||"binary";generator=generator||new Buffer([2]);if(!Buffer.isBuffer(generator)){generator=new Buffer(generator,genc)}if(typeof prime==="number"){return new DH(generatePrime(prime,generator,crypto),generator,crypto,true)}if(!Buffer.isBuffer(prime)){prime=new Buffer(prime,enc)}return new DH(prime,generator,crypto,true)}}}).call(this,require("buffer").Buffer)},{"./dh":114,"./generatePrime":115,"./primes.json":121,buffer:17}],117:[function(require,module,exports){arguments[4][46][0].apply(exports,arguments)},{dup:46}],118:[function(require,module,exports){var bn=require("bn.js");var brorand=require("brorand");function MillerRabin(rand){this.rand=rand||new brorand.Rand}module.exports=MillerRabin;MillerRabin.create=function create(rand){return new MillerRabin(rand)};MillerRabin.prototype._rand=function _rand(n){var len=n.bitLength();var buf=this.rand.generate(Math.ceil(len/8));buf[0]|=3;var mask=len&7;if(mask!==0)buf[buf.length-1]>>=7-mask;return new bn(buf)};MillerRabin.prototype.test=function test(n,k,cb){var len=n.bitLength();var red=bn.mont(n);var rone=new bn(1).toRed(red);if(!k)k=Math.max(1,len/48|0);var n1=n.subn(1);var n2=n1.subn(1);for(var s=0;!n1.testn(s);s++){}var d=n.shrn(s);var rn1=n1.toRed(red);var prime=true;for(;k>0;k--){var a=this._rand(n2);if(cb)cb(a);var x=a.toRed(red).redPow(d);if(x.cmp(rone)===0||x.cmp(rn1)===0)continue;for(var i=1;i<s;i++){x=x.redSqr();if(x.cmp(rone)===0)return false;if(x.cmp(rn1)===0)break}if(i===s)return false}return prime};MillerRabin.prototype.getDivisor=function getDivisor(n,k){var len=n.bitLength();var red=bn.mont(n);var rone=new bn(1).toRed(red);if(!k)k=Math.max(1,len/48|0);var n1=n.subn(1);var n2=n1.subn(1);for(var s=0;!n1.testn(s);s++){}var d=n.shrn(s);var rn1=n1.toRed(red);var prime=true;for(;k>0;k--){var a=this._rand(n2);var g=n.gcd(a);if(g.cmpn(1)!==0)return g;var x=a.toRed(red).redPow(d);if(x.cmp(rone)===0||x.cmp(rn1)===0)continue;for(var i=1;i<s;i++){x=x.redSqr();if(x.cmp(rone)===0)return x.fromRed().subn(1).gcd(n);if(x.cmp(rn1)===0)break}if(i===s){x=x.redSqr();return x.fromRed().subn(1).gcd(n)}}return prime}},{"bn.js":119,brorand:120}],119:[function(require,module,exports){arguments[4][46][0].apply(exports,arguments)},{dup:46}],120:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],121:[function(require,module,exports){module.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],122:[function(require,module,exports){(function(Buffer){module.exports=function(crypto){function pbkdf2(password,salt,iterations,keylen,digest,callback){if("function"===typeof digest){callback=digest;digest=undefined}if("function"!==typeof callback)throw new Error("No callback provided to pbkdf2");setTimeout(function(){var result;try{result=pbkdf2Sync(password,salt,iterations,keylen,digest)}catch(e){return callback(e)}callback(undefined,result)})}function pbkdf2Sync(password,salt,iterations,keylen,digest){if("number"!==typeof iterations)throw new TypeError("Iterations not a number");if(iterations<0)throw new TypeError("Bad iterations");if("number"!==typeof keylen)throw new TypeError("Key length not a number");if(keylen<0)throw new TypeError("Bad key length");digest=digest||"sha1";if(!Buffer.isBuffer(password))password=new Buffer(password);if(!Buffer.isBuffer(salt))salt=new Buffer(salt);var hLen,l=1,r,T;var DK=new Buffer(keylen);var block1=new Buffer(salt.length+4);salt.copy(block1,0,0,salt.length);for(var i=1;i<=l;i++){block1.writeUInt32BE(i,salt.length);var U=crypto.createHmac(digest,password).update(block1).digest();if(!hLen){hLen=U.length;T=new Buffer(hLen);l=Math.ceil(keylen/hLen);r=keylen-(l-1)*hLen;if(keylen>(Math.pow(2,32)-1)*hLen)throw new TypeError("keylen exceeds maximum length")}U.copy(T,0,0,hLen);for(var j=1;j<iterations;j++){U=crypto.createHmac(digest,password).update(U).digest();for(var k=0;k<hLen;k++){T[k]^=U[k]}}var destPos=(i-1)*hLen;var len=i==l?r:hLen;T.copy(DK,destPos,0,len)}return DK}return{pbkdf2:pbkdf2,pbkdf2Sync:pbkdf2Sync}}}).call(this,require("buffer").Buffer)},{buffer:17}],123:[function(require,module,exports){module.exports=function(exports,crypto){exports.publicEncrypt=require("./publicEncrypt")(crypto);exports.privateDecrypt=require("./privateDecrypt")(crypto)}},{"./privateDecrypt":148,"./publicEncrypt":149}],124:[function(require,module,exports){(function(Buffer){module.exports=function(seed,len,crypto){var t=new Buffer("");var i=0,c;while(t.length<len){c=i2ops(i++);t=Buffer.concat([t,crypto.createHash("sha1").update(seed).update(c).digest()])}return t.slice(0,len)};function i2ops(c){var out=new Buffer(4);out.writeUInt32BE(c,0);return out}}).call(this,require("buffer").Buffer)},{buffer:17}],125:[function(require,module,exports){arguments[4][46][0].apply(exports,arguments)},{dup:46}],126:[function(require,module,exports){(function(Buffer){var bn=require("bn.js");module.exports=crt;function blind(priv,crypto){var r=getr(priv,crypto);var blinder=r.toRed(bn.mont(priv.modulus)).redPow(new bn(priv.publicExponent)).fromRed();return{blinder:blinder,unblinder:r.invm(priv.modulus)}}function crt(msg,priv,crypto){var blinds=blind(priv,crypto);var len=priv.modulus.byteLength();var mod=bn.mont(priv.modulus);var blinded=new bn(msg).mul(blinds.blinder).mod(priv.modulus);var c1=blinded.toRed(bn.mont(priv.prime1));var c2=blinded.toRed(bn.mont(priv.prime2));var qinv=priv.coefficient;var p=priv.prime1;var q=priv.prime2;var m1=c1.redPow(priv.exponent1);var m2=c2.redPow(priv.exponent2);m1=m1.fromRed();m2=m2.fromRed();var h=m1.isub(m2).imul(qinv).mod(p);h.imul(q);m2.iadd(h);var out=new Buffer(m2.imul(blinds.unblinder).mod(priv.modulus).toArray());if(out.length<len){var prefix=new Buffer(len-out.length);prefix.fill(0);out=Buffer.concat([prefix,out],len)}return out}crt.getr=getr;function getr(priv,crypto){var len=priv.modulus.byteLength();var r=new bn(crypto.randomBytes(len));while(r.cmp(priv.modulus)>=0||!r.mod(priv.prime1)||!r.mod(priv.prime2)){r=new bn(crypto.randomBytes(len))}return r}}).call(this,require("buffer").Buffer)},{"bn.js":127,buffer:17}],127:[function(require,module,exports){arguments[4][46][0].apply(exports,arguments)},{dup:46}],128:[function(require,module,exports){(function(Buffer){module.exports=function evp(crypto,password,salt,keyLen){keyLen=keyLen/8;var ki=0;var ii=0;var key=new Buffer(keyLen);var addmd=0;var md,md_buf;var i;while(true){md=crypto.createHash("md5");if(addmd++>0){md.update(md_buf)}md.update(password);md.update(salt);md_buf=md.digest();i=0;if(keyLen>0){while(true){if(keyLen===0){break}if(i===md_buf.length){break}key[ki++]=md_buf[i++];keyLen--}}if(keyLen===0){break}}for(i=0;i<md_buf.length;i++){md_buf[i]=0}return key}}).call(this,require("buffer").Buffer)},{buffer:17}],129:[function(require,module,exports){arguments[4][70][0].apply(exports,arguments)},{dup:70}],130:[function(require,module,exports){arguments[4][71][0].apply(exports,arguments)},{"asn1.js":134,"asn1.js-rfc3280":133,dup:71}],131:[function(require,module,exports){(function(Buffer){var findProc=/Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m;var startRegex=/^-----BEGIN (.*)-----\n/;var evp=require("./EVP_BytesToKey");module.exports=function(okey,password,crypto){var key=okey.toString();var match=key.match(findProc);if(!match){return okey}var suite="aes"+match[1];var iv=new Buffer(match[2],"hex");var cipherText=new Buffer(match[3].replace(/\n\r?/g,""),"base64");var cipherKey=evp(crypto,password,iv.slice(0,8),parseInt(match[1]));var out=[];var cipher=crypto.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText));out.push(cipher.final());var decrypted=Buffer.concat(out).toString("base64");var tag=key.match(startRegex)[1];return"-----BEGIN "+tag+"-----\n"+wrap(decrypted)+"\n"+"-----END "+tag+"-----\n"};function wrap(str){var chunks=[];while(str){if(str.length<64){chunks.push(str);break}else{chunks.push(str.slice(0,64));str=str.slice(64)}}return chunks.join("\n")}}).call(this,require("buffer").Buffer)},{"./EVP_BytesToKey":128,buffer:17}],132:[function(require,module,exports){(function(Buffer){var pemstrip=require("pemstrip");var asn1=require("./asn1");var aesid=require("./aesid.json");var fixProc=require("./fixProc");module.exports=parseKeys;function parseKeys(buffer,crypto){var password;if(typeof buffer==="object"&&!Buffer.isBuffer(buffer)){password=buffer.passphrase;buffer=buffer.key}if(typeof buffer==="string"){buffer=new Buffer(buffer)}if(password){buffer=fixProc(buffer,password,crypto)}var stripped=pemstrip.strip(buffer);var type=stripped.tag;var data=new Buffer(stripped.base64,"base64");var subtype,ndata;switch(type){case"PUBLIC KEY":ndata=asn1.PublicKey.decode(data,"der");subtype=ndata.algorithm.algorithm.join(".");switch(subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return{type:"ec",data:asn1.ECPublicKey.decode(data,"der")};case"1.2.840.10040.4.1":ndata=asn1.DSAPublicKey.decode(data,"der");ndata.algorithm.parameters.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,"der");return{type:"dsa",data:ndata.algorithm.parameters};default:throw new Error("unknown key id "+subtype)}throw new Error("unknown key type "+type);case"ENCRYPTED PRIVATE KEY":data=asn1.EncryptedPrivateKey.decode(data,"der");data=decrypt(crypto,data,password);case"PRIVATE KEY":ndata=asn1.PrivateKey.decode(data,"der");subtype=ndata.algorithm.algorithm.join(".");switch(subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,"der");case"1.2.840.10045.2.1":ndata=asn1.ECPrivateWrap.decode(data,"der");return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":ndata=asn1.DSAPrivateWrap.decode(data,"der");ndata.algorithm.parameters.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,"der");return{type:"dsa",params:ndata.algorithm.parameters};default:throw new Error("unknown key id "+subtype)}throw new Error("unknown key type "+type);case"RSA PUBLIC KEY":return asn1.RSAPublicKey.decode(data,"der");case"RSA PRIVATE KEY":return asn1.RSAPrivateKey.decode(data,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:asn1.DSAPrivateKey.decode(data,"der")};case"EC PRIVATE KEY":data=asn1.ECPrivateKey.decode(data,"der");return{curve:data.parameters.value,privateKey:data.privateKey};default:throw new Error("unknown key type "+type)}}parseKeys.signature=asn1.signature;function decrypt(crypto,data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt; | |
var iters=data.algorithm.decrypt.kde.kdeparams.iters;var algo=aesid[data.algorithm.decrypt.cipher.algo.join(".")];var iv=data.algorithm.decrypt.cipher.iv;var cipherText=data.subjectPrivateKey;var keylen=parseInt(algo.split("-")[1],10)/8;var key=crypto.pbkdf2Sync(password,salt,iters,keylen);var cipher=crypto.createDecipheriv(algo,key,iv);var out=[];out.push(cipher.update(cipherText));out.push(cipher.final());return Buffer.concat(out)}}).call(this,require("buffer").Buffer)},{"./aesid.json":129,"./asn1":130,"./fixProc":131,buffer:17,pemstrip:147}],133:[function(require,module,exports){arguments[4][74][0].apply(exports,arguments)},{"asn1.js":134,dup:74}],134:[function(require,module,exports){arguments[4][75][0].apply(exports,arguments)},{"./asn1/api":135,"./asn1/base":137,"./asn1/constants":141,"./asn1/decoders":143,"./asn1/encoders":145,"bn.js":146,dup:75}],135:[function(require,module,exports){arguments[4][76][0].apply(exports,arguments)},{"../asn1":134,dup:76,util:191,vm:192}],136:[function(require,module,exports){arguments[4][77][0].apply(exports,arguments)},{"../base":137,assert:2,buffer:17,dup:77,util:191}],137:[function(require,module,exports){arguments[4][78][0].apply(exports,arguments)},{"./buffer":136,"./node":138,"./reporter":139,dup:78}],138:[function(require,module,exports){arguments[4][79][0].apply(exports,arguments)},{"../base":137,assert:2,dup:79}],139:[function(require,module,exports){arguments[4][80][0].apply(exports,arguments)},{dup:80,util:191}],140:[function(require,module,exports){arguments[4][81][0].apply(exports,arguments)},{"../constants":141,dup:81}],141:[function(require,module,exports){arguments[4][82][0].apply(exports,arguments)},{"./der":140,dup:82}],142:[function(require,module,exports){arguments[4][83][0].apply(exports,arguments)},{"../../asn1":134,dup:83,util:191}],143:[function(require,module,exports){arguments[4][84][0].apply(exports,arguments)},{"./der":142,dup:84}],144:[function(require,module,exports){arguments[4][85][0].apply(exports,arguments)},{"../../asn1":134,buffer:17,dup:85,util:191}],145:[function(require,module,exports){arguments[4][86][0].apply(exports,arguments)},{"./der":144,dup:86}],146:[function(require,module,exports){arguments[4][87][0].apply(exports,arguments)},{dup:87}],147:[function(require,module,exports){arguments[4][88][0].apply(exports,arguments)},{dup:88}],148:[function(require,module,exports){(function(Buffer){var parseKeys=require("parse-asn1");var mgf=require("./mgf");var xor=require("./xor");var bn=require("bn.js");var crt=require("browserify-rsa");module.exports=function(crypto){return privateDecrypt;function privateDecrypt(private_key,enc){var padding;if(private_key.padding){padding=private_key.padding}else{padding=4}var key=parseKeys(private_key,crypto);var k=key.modulus.byteLength();if(enc.length>k||new bn(enc).cmp(key.modulus)>=0){throw new Error("decryption error")}var msg=crt(enc,key,crypto);var zBuffer=new Buffer(k-msg.length);zBuffer.fill(0);msg=Buffer.concat([zBuffer,msg],k);if(padding===4){return oaep(key,msg,crypto)}else if(padding===1){return pkcs1(key,msg,crypto)}else if(padding===3){return msg}else{throw new Error("unknown padding")}}};function oaep(key,msg,crypto){var n=key.modulus;var k=key.modulus.byteLength();var mLen=msg.length;var iHash=crypto.createHash("sha1").update(new Buffer("")).digest();var hLen=iHash.length;var hLen2=2*hLen;if(msg[0]!==0){throw new Error("decryption error")}var maskedSeed=msg.slice(1,hLen+1);var maskedDb=msg.slice(hLen+1);var seed=xor(maskedSeed,mgf(maskedDb,hLen,crypto));var db=xor(maskedDb,mgf(seed,k-hLen-1,crypto));if(compare(iHash,db.slice(0,hLen))){throw new Error("decryption error")}var i=hLen;while(db[i]===0){i++}if(db[i++]!==1){throw new Error("decryption error")}return db.slice(i)}function pkcs1(key,msg,crypto){var p1=msg.slice(0,2);var i=2;var status=0;while(msg[i++]!==0){if(i>=msg.length){status++;break}}var ps=msg.slice(2,i-1);var p2=msg.slice(i-1,i);if(p1.toString("hex")!=="0002"){status++}if(ps.length<8){status++}return msg.slice(i)}function compare(a,b){var dif=0;var len=a.length;if(a.length!==b.length){dif++;len=Math.min(a.length,b.length)}var i=-1;while(++i<len){dif+=a[i]^b[i]}return dif}}).call(this,require("buffer").Buffer)},{"./mgf":124,"./xor":150,"bn.js":125,"browserify-rsa":126,buffer:17,"parse-asn1":132}],149:[function(require,module,exports){(function(Buffer){var parseKeys=require("parse-asn1");var mgf=require("./mgf");var xor=require("./xor");var bn=require("bn.js");var constants={RSA_PKCS1_OAEP_PADDING:4,RSA_PKCS1_PADDIN:1,RSA_NO_PADDING:3};module.exports=function(crypto){return publicEncrypt;function publicEncrypt(public_key,msg){var padding;if(public_key.padding){padding=public_key.padding}else{padding=4}var key=parseKeys(public_key);var paddedMsg;if(padding===4){paddedMsg=oaep(key,msg,crypto)}else if(padding===1){paddedMsg=pkcs1(key,msg,crypto)}else if(padding===3){paddedMsg=new bn(msg);if(paddedMsg.cmp(key.modulus)>=0){throw new Error("data too long for modulus")}}else{throw new Error("unknown padding")}var enc=paddedMsg.toRed(bn.mont(key.modulus)).redPow(new bn(key.publicExponent)).fromRed().toArray();return new Buffer(enc)}};function oaep(key,msg,crypto){var k=key.modulus.byteLength();var mLen=msg.length;var iHash=crypto.createHash("sha1").update(new Buffer("")).digest();var hLen=iHash.length;var hLen2=2*hLen;if(mLen>k-hLen2-2){throw new Error("message too long")}var ps=new Buffer(k-mLen-hLen2-2);ps.fill(0);var dblen=k-hLen-1;var seed=crypto.randomBytes(hLen);var maskedDb=xor(Buffer.concat([iHash,ps,new Buffer([1]),msg],dblen),mgf(seed,dblen,crypto));var maskedSeed=xor(seed,mgf(maskedDb,hLen,crypto));return new bn(Buffer.concat([new Buffer([0]),maskedSeed,maskedDb],k))}function pkcs1(key,msg,crypto){var mLen=msg.length;var k=key.modulus.byteLength();if(mLen>k-11){throw new Error("message too long")}var ps=nonZero(k-mLen-3,crypto);return new bn(Buffer.concat([new Buffer([0,2]),ps,new Buffer([0]),msg],k))}function nonZero(len,crypto){var out=new Buffer(len);var i=0;var cache=crypto.randomBytes(len*2);var cur=0;var num;while(i<len){if(cur===cache.length){cache=crypto.randomBytes(len*2);cur=0}num=cache[cur++];if(num){out[i++]=num}}return out}}).call(this,require("buffer").Buffer)},{"./mgf":124,"./xor":150,"bn.js":125,buffer:17,"parse-asn1":132}],150:[function(require,module,exports){module.exports=function xor(a,b){var len=a.length;var i=-1;while(++i<len){a[i]^=b[i]}return a}},{}],151:[function(require,module,exports){(function(Buffer){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];var 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];var 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];var 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];var hl=[0,1518500249,1859775393,2400959708,2840853838];var hr=[1352829926,1548603684,1836072691,2053994217,0];var bytesToWords=function(bytes){var words=[];for(var i=0,b=0;i<bytes.length;i++,b+=8){words[b>>>5]|=bytes[i]<<24-b%32}return words};var wordsToBytes=function(words){var bytes=[];for(var b=0;b<words.length*32;b+=8){bytes.push(words[b>>>5]>>>24-b%32&255)}return bytes};var processBlock=function(H,M,offset){for(var i=0;i<16;i++){var offset_i=offset+i;var M_offset_i=M[offset_i];M[offset_i]=(M_offset_i<<8|M_offset_i>>>24)&16711935|(M_offset_i<<24|M_offset_i>>>8)&4278255360}var al,bl,cl,dl,el;var 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];var t;for(var i=0;i<80;i+=1){t=al+M[offset+zl[i]]|0;if(i<16){t+=f1(bl,cl,dl)+hl[0]}else if(i<32){t+=f2(bl,cl,dl)+hl[1]}else if(i<48){t+=f3(bl,cl,dl)+hl[2]}else if(i<64){t+=f4(bl,cl,dl)+hl[3]}else{t+=f5(bl,cl,dl)+hl[4]}t=t|0;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;if(i<16){t+=f5(br,cr,dr)+hr[0]}else if(i<32){t+=f4(br,cr,dr)+hr[1]}else if(i<48){t+=f3(br,cr,dr)+hr[2]}else if(i<64){t+=f2(br,cr,dr)+hr[3]}else{t+=f1(br,cr,dr)+hr[4]}t=t|0;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};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<<n|x>>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof message=="string")message=new Buffer(message,"utf8");var m=bytesToWords(message);var nBitsLeft=message.length*8;var nBitsTotal=message.length*8;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;m[(nBitsLeft+64>>>9<<4)+14]=(nBitsTotal<<8|nBitsTotal>>>24)&16711935|(nBitsTotal<<24|nBitsTotal>>>8)&4278255360;for(var i=0;i<m.length;i+=16){processBlock(H,m,i)}for(var i=0;i<5;i++){var H_i=H[i];H[i]=(H_i<<8|H_i>>>24)&16711935|(H_i<<24|H_i>>>8)&4278255360}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}}).call(this,require("buffer").Buffer)},{buffer:17}],152:[function(require,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}Hash.prototype.init=function(){this._s=0;this._len=0};Hash.prototype.update=function(data,enc){if("string"===typeof data){enc=enc||"utf8";data=new Buffer(data,enc)}var l=this._len+=data.length;var s=this._s=this._s||0;var f=0;var buffer=this._block;while(s<l){var t=Math.min(data.length,f+this._blockSize-s%this._blockSize);var ch=t-f;for(var i=0;i<ch;i++){buffer[s%this._blockSize+i]=data[i+f]}s+=ch;f+=ch;if(s%this._blockSize===0){this._update(buffer)}}this._s=s;return this};Hash.prototype.digest=function(enc){var l=this._len*8;this._block[this._len%this._blockSize]=128;this._block.fill(0,this._len%this._blockSize+1);if(l%(this._blockSize*8)>=this._finalSize*8){this._update(this._block);this._block.fill(0)}this._block.writeInt32BE(l,this._blockSize-4);var hash=this._update(this._block)||this._hash();return enc?hash.toString(enc):hash};Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")};module.exports=Hash}).call(this,require("buffer").Buffer)},{buffer:17}],153:[function(require,module,exports){var exports=module.exports=function(alg){var Alg=exports[alg.toLowerCase()];if(!Alg)throw new Error(alg+" is not supported (we accept pull requests)");return new Alg};exports.sha1=require("./sha1");exports.sha224=require("./sha224");exports.sha256=require("./sha256");exports.sha384=require("./sha384");exports.sha512=require("./sha512")},{"./sha1":154,"./sha224":155,"./sha256":156,"./sha384":157,"./sha512":158}],154:[function(require,module,exports){(function(Buffer){var inherits=require("util").inherits;var Hash=require("./hash");var A=0|0;var B=4|0;var C=8|0;var D=12|0;var E=16|0;var W=new(typeof Int32Array==="undefined"?Array:Int32Array)(80);var POOL=[];function Sha1(){if(POOL.length)return POOL.pop().init();if(!(this instanceof Sha1))return new Sha1;this._w=W;Hash.call(this,16*4,14*4);this._h=null;this.init()}inherits(Sha1,Hash);Sha1.prototype.init=function(){this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520;Hash.prototype.init.call(this);return this};Sha1.prototype._POOL=POOL;Sha1.prototype._update=function(X){var a,b,c,d,e,_a,_b,_c,_d,_e;a=_a=this._a;b=_b=this._b;c=_c=this._c;d=_d=this._d;e=_e=this._e;var w=this._w;for(var j=0;j<80;j++){var W=w[j]=j<16?X.readInt32BE(j*4):rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var 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(){if(POOL.length<100)POOL.push(this);var H=new Buffer(20);H.writeInt32BE(this._a|0,A);H.writeInt32BE(this._b|0,B);H.writeInt32BE(this._c|0,C);H.writeInt32BE(this._d|0,D);H.writeInt32BE(this._e|0,E);return H};function sha1_ft(t,b,c,d){if(t<20)return b&c|~b&d;if(t<40)return b^c^d;if(t<60)return b&c|b&d|c&d;return b^c^d}function sha1_kt(t){return t<20?1518500249:t<40?1859775393:t<60?-1894007588:-899497514}function add(x,y){return x+y|0}function rol(num,cnt){return num<<cnt|num>>>32-cnt}module.exports=Sha1}).call(this,require("buffer").Buffer)},{"./hash":152,buffer:17,util:191}],155:[function(require,module,exports){(function(Buffer){var inherits=require("util").inherits;var SHA256=require("./sha256");var Hash=require("./hash");var W=new Array(64);function Sha224(){this.init();this._w=W;Hash.call(this,16*4,14*4)}inherits(Sha224,SHA256);Sha224.prototype.init=function(){this._a=3238371032|0;this._b=914150663|0;this._c=812702999|0;this._d=4144912697|0;this._e=4290775857|0;this._f=1750603025|0;this._g=1694076839|0;this._h=3204075428|0;this._len=this._s=0;return this};Sha224.prototype._hash=function(){var H=new Buffer(28);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);return H};module.exports=Sha224}).call(this,require("buffer").Buffer)},{"./hash":152,"./sha256":156,buffer:17,util:191}],156:[function(require,module,exports){(function(Buffer){var inherits=require("util").inherits;var Hash=require("./hash");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];var W=new Array(64);function Sha256(){this.init();this._w=W;Hash.call(this,16*4,14*4)}inherits(Sha256,Hash);Sha256.prototype.init=function(){this._a=1779033703|0;this._b=3144134277|0;this._c=1013904242|0;this._d=2773480762|0;this._e=1359893119|0;this._f=2600822924|0;this._g=528734635|0;this._h=1541459225|0;this._len=this._s=0;return this};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)}Sha256.prototype._update=function(M){var W=this._w;var a,b,c,d,e,f,g,h;var T1,T2;a=this._a|0;b=this._b|0;c=this._c|0;d=this._d|0;e=this._e|0;f=this._f|0;g=this._g|0;h=this._h|0;for(var j=0;j<64;j++){var w=W[j]=j<16?M.readInt32BE(j*4):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(){var H=new Buffer(32);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);return H};module.exports=Sha256}).call(this,require("buffer").Buffer)},{"./hash":152,buffer:17,util:191}],157:[function(require,module,exports){(function(Buffer){var inherits=require("util").inherits;var SHA512=require("./sha512");var Hash=require("./hash");var W=new Array(160);function Sha384(){this.init();this._w=W;Hash.call(this,128,112)}inherits(Sha384,SHA512);Sha384.prototype.init=function(){this._a=3418070365|0;this._b=1654270250|0;this._c=2438529370|0;this._d=355462360|0;this._e=1731405415|0;this._f=2394180231|0;this._g=3675008525|0;this._h=1203062813|0;this._al=3238371032|0;this._bl=914150663|0;this._cl=812702999|0;this._dl=4144912697|0;this._el=4290775857|0;this._fl=1750603025|0;this._gl=1694076839|0;this._hl=3204075428|0;this._len=this._s=0;return this};Sha384.prototype._hash=function(){var H=new Buffer(48);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset);H.writeInt32BE(l,offset+4)}writeInt64BE(this._a,this._al,0);writeInt64BE(this._b,this._bl,8);writeInt64BE(this._c,this._cl,16);writeInt64BE(this._d,this._dl,24);writeInt64BE(this._e,this._el,32);writeInt64BE(this._f,this._fl,40);return H};module.exports=Sha384}).call(this,require("buffer").Buffer)},{"./hash":152,"./sha512":158,buffer:17,util:191}],158:[function(require,module,exports){(function(Buffer){var inherits=require("util").inherits;var Hash=require("./hash");var 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];var W=new Array(160);function Sha512(){this.init();this._w=W;Hash.call(this,128,112)}inherits(Sha512,Hash);Sha512.prototype.init=function(){this._a=1779033703|0;this._b=3144134277|0;this._c=1013904242|0;this._d=2773480762|0;this._e=1359893119|0;this._f=2600822924|0;this._g=528734635|0;this._h=1541459225|0;this._al=4089235720|0;this._bl=2227873595|0;this._cl=4271175723|0;this._dl=1595750129|0;this._el=2917565137|0;this._fl=725511199|0;this._gl=4215389547|0;this._hl=327033209|0;this._len=this._s=0;return this};function S(X,Xl,n){return X>>>n|Xl<<32-n}function Ch(x,y,z){return x&y^~x&z}function Maj(x,y,z){return x&y^x&z^y&z}Sha512.prototype._update=function(M){var W=this._w;var a,b,c,d,e,f,g,h;var al,bl,cl,dl,el,fl,gl,hl;a=this._a|0;b=this._b|0;c=this._c|0;d=this._d|0;e=this._e|0;f=this._f|0;g=this._g|0;h=this._h|0;al=this._al|0;bl=this._bl|0;cl=this._cl|0;dl=this._dl|0;el=this._el|0;fl=this._fl|0;gl=this._gl|0;hl=this._hl|0;for(var i=0;i<80;i++){var j=i*2;var Wi,Wil;if(i<16){Wi=W[j]=M.readInt32BE(j*4);Wil=W[j+1]=M.readInt32BE(j*4+4)}else{var x=W[j-15*2];var xl=W[j-15*2+1];var gamma0=S(x,xl,1)^S(x,xl,8)^x>>>7;var gamma0l=S(xl,x,1)^S(xl,x,8)^S(xl,x,7);x=W[j-2*2];xl=W[j-2*2+1];var gamma1=S(x,xl,19)^S(xl,x,29)^x>>>6;var gamma1l=S(xl,x,19)^S(x,xl,29)^S(xl,x,6);var Wi7=W[j-7*2];var Wi7l=W[j-7*2+1];var Wi16=W[j-16*2];var Wi16l=W[j-16*2+1];Wil=gamma0l+Wi7l;Wi=gamma0+Wi7+(Wil>>>0<gamma0l>>>0?1:0);Wil=Wil+gamma1l;Wi=Wi+gamma1+(Wil>>>0<gamma1l>>>0?1:0);Wil=Wil+Wi16l;Wi=Wi+Wi16+(Wil>>>0<Wi16l>>>0?1:0);W[j]=Wi;W[j+1]=Wil}var maj=Maj(a,b,c);var majl=Maj(al,bl,cl);var sigma0h=S(a,al,28)^S(al,a,2)^S(al,a,7);var sigma0l=S(al,a,28)^S(a,al,2)^S(a,al,7);var sigma1h=S(e,el,14)^S(e,el,18)^S(el,e,9);var sigma1l=S(el,e,14)^S(el,e,18)^S(e,el,9);var Ki=K[j];var Kil=K[j+1];var ch=Ch(e,f,g);var chl=Ch(el,fl,gl);var t1l=hl+sigma1l;var t1=h+sigma1h+(t1l>>>0<hl>>>0?1:0);t1l=t1l+chl;t1=t1+ch+(t1l>>>0<chl>>>0?1:0);t1l=t1l+Kil;t1=t1+Ki+(t1l>>>0<Kil>>>0?1:0);t1l=t1l+Wil;t1=t1+Wi+(t1l>>>0<Wil>>>0?1:0);var t2l=sigma0l+majl;var t2=sigma0h+maj+(t2l>>>0<sigma0l>>>0?1:0);h=g;hl=gl;g=f;gl=fl;f=e;fl=el;el=dl+t1l|0;e=d+t1+(el>>>0<dl>>>0?1:0)|0;d=c;dl=cl;c=b;cl=bl;b=a;bl=al;al=t1l+t2l|0;a=t1+t2+(al>>>0<t1l>>>0?1:0)|0}this._al=this._al+al|0;this._bl=this._bl+bl|0;this._cl=this._cl+cl|0;this._dl=this._dl+dl|0;this._el=this._el+el|0;this._fl=this._fl+fl|0;this._gl=this._gl+gl|0;this._hl=this._hl+hl|0;this._a=this._a+a+(this._al>>>0<al>>>0?1:0)|0;this._b=this._b+b+(this._bl>>>0<bl>>>0?1:0)|0;this._c=this._c+c+(this._cl>>>0<cl>>>0?1:0)|0;this._d=this._d+d+(this._dl>>>0<dl>>>0?1:0)|0;this._e=this._e+e+(this._el>>>0<el>>>0?1:0)|0;this._f=this._f+f+(this._fl>>>0<fl>>>0?1:0)|0;this._g=this._g+g+(this._gl>>>0<gl>>>0?1:0)|0;this._h=this._h+h+(this._hl>>>0<hl>>>0?1:0)|0};Sha512.prototype._hash=function(){var H=new Buffer(64);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset);H.writeInt32BE(l,offset+4)}writeInt64BE(this._a,this._al,0);writeInt64BE(this._b,this._bl,8);writeInt64BE(this._c,this._cl,16);writeInt64BE(this._d,this._dl,24);writeInt64BE(this._e,this._el,32);writeInt64BE(this._f,this._fl,40);writeInt64BE(this._g,this._gl,48);writeInt64BE(this._h,this._hl,56);return H};module.exports=Sha512}).call(this,require("buffer").Buffer)},{"./hash":152,buffer:17,util:191}],159:[function(require,module,exports){"use strict";var pbkdf2Export=require("pbkdf2-compat/pbkdf2");module.exports=function(crypto,exports){exports=exports||{};var exported=pbkdf2Export(crypto);exports.pbkdf2=exported.pbkdf2;exports.pbkdf2Sync=exported.pbkdf2Sync;return exports}},{"pbkdf2-compat/pbkdf2":122}],160:[function(require,module,exports){(function(global,Buffer){"use strict";(function(){var g=("undefined"===typeof window?global:window)||{};var _crypto=g.crypto||g.msCrypto||require("crypto");module.exports=function(size){if(_crypto.getRandomValues){var bytes=new Buffer(size);_crypto.getRandomValues(bytes);return bytes}else if(_crypto.pseudoRandomBytes){return _crypto.pseudoRandomBytes(size)}else throw new Error("pseudo random number generation not yet implemented for this browser\n"+"use chrome, FireFox or Internet Explorer 11")}})()}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("buffer").Buffer)},{buffer:17,crypto:3}],161:[function(require,module,exports){(function(global,Buffer){"use strict";(function(){var g=("undefined"===typeof window?global:window)||{};var _crypto=g.crypto||g.msCrypto||require("crypto");module.exports=function(size){if(_crypto.getRandomValues){var bytes=new Buffer(size);_crypto.getRandomValues(bytes);return bytes}else if(_crypto.randomBytes){return _crypto.randomBytes(size)}else throw new Error("secure random number generation not supported by this browser\n"+"use chrome, FireFox or Internet Explorer 11")}})()}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("buffer").Buffer)},{buffer:17,crypto:3}],162:[function(require,module,exports){function EventEmitter(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;EventEmitter.defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");this._maxListeners=n;return this};EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(!this._events)this._events={};if(type==="error"){if(!this._events.error||isObject(this._events.error)&&!this._events.error.length){er=arguments[1];if(er instanceof Error){throw er}throw TypeError('Uncaught, unspecified "error" event.')}}handler=this._events[type];if(isUndefined(handler))return false;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:len=arguments.length;args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];handler.apply(this,args)}}else if(isObject(handler)){len=arguments.length;args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];listeners=handler.slice();len=listeners.length;for(i=0;i<len;i++)listeners[i].apply(this,args)}return true};EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events)this._events={};if(this._events.newListener)this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener);if(!this._events[type])this._events[type]=listener;else if(isObject(this._events[type]))this._events[type].push(listener);else this._events[type]=[this._events[type],listener];if(isObject(this._events[type])&&!this._events[type].warned){var m;if(!isUndefined(this._maxListeners)){m=this._maxListeners}else{m=EventEmitter.defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return 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;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(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(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(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){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else{while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.listenerCount=function(emitter,type){var ret;if(!emitter._events||!emitter._events[type])ret=0;else if(isFunction(emitter._events[type]))ret=1;else ret=emitter._events[type].length;return ret};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],163:[function(require,module,exports){var http=module.exports;var EventEmitter=require("events").EventEmitter;var Request=require("./lib/request");var url=require("url");http.request=function(params,cb){if(typeof params==="string"){params=url.parse(params)}if(!params)params={};if(!params.host&&!params.port){params.port=parseInt(window.location.port,10)}if(!params.host&¶ms.hostname){params.host=params.hostname}if(!params.protocol){if(params.scheme){params.protocol=params.scheme+":"}else{params.protocol=window.location.protocol}}if(!params.host){params.host=window.location.hostname||window.location.host}if(/:/.test(params.host)){if(!params.port){params.port=params.host.split(":")[1]}params.host=params.host.split(":")[0]}if(!params.port)params.port=params.protocol=="https:"?443:80;var req=new Request(new xhrHttp,params);if(cb)req.on("response",cb);return req};http.get=function(params,cb){params.method="GET";var req=http.request(params,cb);req.end();return req};http.Agent=function(){};http.Agent.defaultMaxSockets=4;var xhrHttp=function(){if(typeof window==="undefined"){throw new Error("no window object present")}else if(window.XMLHttpRequest){return window.XMLHttpRequest}else if(window.ActiveXObject){var axs=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];for(var i=0;i<axs.length;i++){try{var ax=new window.ActiveXObject(axs[i]);return function(){if(ax){var ax_=ax;ax=null;return ax_}else{return new window.ActiveXObject(axs[i])}}}catch(e){}}throw new Error("ajax not supported in this browser")}else{throw new Error("ajax not supported in this browser")}}();http.STATUS_CODES={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",300:"Multiple Choices",301:"Moved Permanently",302:"Moved Temporarily",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Time-out",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Request Entity Too Large",414:"Request-URI Too Large",415:"Unsupported Media Type",416:"Requested Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Time-out",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},{"./lib/request":164,events:162,url:189}],164:[function(require,module,exports){var Stream=require("stream");var Response=require("./response");var Base64=require("Base64");var inherits=require("inherits");var Request=module.exports=function(xhr,params){ | |
var self=this;self.writable=true;self.xhr=xhr;self.body=[];self.uri=(params.protocol||"http:")+"//"+params.host+(params.port?":"+params.port:"")+(params.path||"/");if(typeof params.withCredentials==="undefined"){params.withCredentials=true}try{xhr.withCredentials=params.withCredentials}catch(e){}if(params.responseType)try{xhr.responseType=params.responseType}catch(e){}xhr.open(params.method||"GET",self.uri,true);xhr.onerror=function(event){self.emit("error",new Error("Network error"))};self._headers={};if(params.headers){var keys=objectKeys(params.headers);for(var i=0;i<keys.length;i++){var key=keys[i];if(!self.isSafeRequestHeader(key))continue;var value=params.headers[key];self.setHeader(key,value)}}if(params.auth){this.setHeader("Authorization","Basic "+Base64.btoa(params.auth))}var res=new Response;res.on("close",function(){self.emit("close")});res.on("ready",function(){self.emit("response",res)});res.on("error",function(err){self.emit("error",err)});xhr.onreadystatechange=function(){if(xhr.__aborted)return;res.handle(xhr)}};inherits(Request,Stream);Request.prototype.setHeader=function(key,value){this._headers[key.toLowerCase()]=value};Request.prototype.getHeader=function(key){return this._headers[key.toLowerCase()]};Request.prototype.removeHeader=function(key){delete this._headers[key.toLowerCase()]};Request.prototype.write=function(s){this.body.push(s)};Request.prototype.destroy=function(s){this.xhr.__aborted=true;this.xhr.abort();this.emit("close")};Request.prototype.end=function(s){if(s!==undefined)this.body.push(s);var keys=objectKeys(this._headers);for(var i=0;i<keys.length;i++){var key=keys[i];var value=this._headers[key];if(isArray(value)){for(var j=0;j<value.length;j++){this.xhr.setRequestHeader(key,value[j])}}else this.xhr.setRequestHeader(key,value)}if(this.body.length===0){this.xhr.send("")}else if(typeof this.body[0]==="string"){this.xhr.send(this.body.join(""))}else if(isArray(this.body[0])){var body=[];for(var i=0;i<this.body.length;i++){body.push.apply(body,this.body[i])}this.xhr.send(body)}else if(/Array/.test(Object.prototype.toString.call(this.body[0]))){var len=0;for(var i=0;i<this.body.length;i++){len+=this.body[i].length}var body=new this.body[0].constructor(len);var k=0;for(var i=0;i<this.body.length;i++){var b=this.body[i];for(var j=0;j<b.length;j++){body[k++]=b[j]}}this.xhr.send(body)}else if(isXHR2Compatible(this.body[0])){this.xhr.send(this.body[0])}else{var body="";for(var i=0;i<this.body.length;i++){body+=this.body[i].toString()}this.xhr.send(body)}};Request.unsafeHeaders=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","content-transfer-encoding","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","user-agent","via"];Request.prototype.isSafeRequestHeader=function(headerName){if(!headerName)return false;return indexOf(Request.unsafeHeaders,headerName.toLowerCase())===-1};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};var indexOf=function(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;i<xs.length;i++){if(xs[i]===x)return i}return-1};var isXHR2Compatible=function(obj){if(typeof Blob!=="undefined"&&obj instanceof Blob)return true;if(typeof ArrayBuffer!=="undefined"&&obj instanceof ArrayBuffer)return true;if(typeof FormData!=="undefined"&&obj instanceof FormData)return true}},{"./response":165,Base64:166,inherits:168,stream:187}],165:[function(require,module,exports){var Stream=require("stream");var util=require("util");var Response=module.exports=function(res){this.offset=0;this.readable=true};util.inherits(Response,Stream);var capable={streaming:true,status2:true};function parseHeaders(res){var lines=res.getAllResponseHeaders().split(/\r?\n/);var headers={};for(var i=0;i<lines.length;i++){var line=lines[i];if(line==="")continue;var m=line.match(/^([^:]+):\s*(.*)/);if(m){var key=m[1].toLowerCase(),value=m[2];if(headers[key]!==undefined){if(isArray(headers[key])){headers[key].push(value)}else{headers[key]=[headers[key],value]}}else{headers[key]=value}}else{headers[line]=true}}return headers}Response.prototype.getResponse=function(xhr){var respType=String(xhr.responseType).toLowerCase();if(respType==="blob")return xhr.responseBlob||xhr.response;if(respType==="arraybuffer")return xhr.response;return xhr.responseText};Response.prototype.getHeader=function(key){return this.headers[key.toLowerCase()]};Response.prototype.handle=function(res){if(res.readyState===2&&capable.status2){try{this.statusCode=res.status;this.headers=parseHeaders(res)}catch(err){capable.status2=false}if(capable.status2){this.emit("ready")}}else if(capable.streaming&&res.readyState===3){try{if(!this.statusCode){this.statusCode=res.status;this.headers=parseHeaders(res);this.emit("ready")}}catch(err){}try{this._emitData(res)}catch(err){capable.streaming=false}}else if(res.readyState===4){if(!this.statusCode){this.statusCode=res.status;this.emit("ready")}this._emitData(res);if(res.error){this.emit("error",this.getResponse(res))}else this.emit("end");this.emit("close")}};Response.prototype._emitData=function(res){var respBody=this.getResponse(res);if(respBody.toString().match(/ArrayBuffer/)){this.emit("data",new Uint8Array(respBody,this.offset));this.offset=respBody.byteLength;return}if(respBody.length>this.offset){this.emit("data",respBody.slice(this.offset));this.offset=respBody.length}};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==="[object Array]"}},{stream:187,util:191}],166:[function(require,module,exports){(function(){var object=typeof exports!="undefined"?exports:this;var chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function InvalidCharacterError(message){this.message=message}InvalidCharacterError.prototype=new Error;InvalidCharacterError.prototype.name="InvalidCharacterError";object.btoa||(object.btoa=function(input){for(var block,charCode,idx=0,map=chars,output="";input.charAt(idx|0)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8)){charCode=input.charCodeAt(idx+=3/4);if(charCode>255){throw new InvalidCharacterError("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.")}block=block<<8|charCode}return output});object.atob||(object.atob=function(input){input=input.replace(/=+$/,"");if(input.length%4==1){throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded.")}for(var bc=0,bs,buffer,idx=0,output="";buffer=input.charAt(idx++);~buffer&&(bs=bc%4?bs*64+buffer:buffer,bc++%4)?output+=String.fromCharCode(255&bs>>(-2*bc&6)):0){buffer=chars.indexOf(buffer)}return output})})()},{}],167:[function(require,module,exports){var http=require("http");var https=module.exports;for(var key in http){if(http.hasOwnProperty(key))https[key]=http[key]}https.request=function(params,cb){if(!params)params={};params.scheme="https";return http.request.call(this,params,cb)}},{http:163}],168:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],169:[function(require,module,exports){module.exports=Array.isArray||function(arr){return Object.prototype.toString.call(arr)=="[object Array]"}},{}],170:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")};exports.sep="/";exports.delimiter=":";exports.dirname=function(path){var result=splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir};exports.basename=function(path,ext){var f=splitPath(path)[2];if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){return splitPath(path)[3]};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++){if(f(xs[i],i,xs))res.push(xs[i])}return res}var substr="ab".substr(-1)==="b"?function(str,start,len){return str.substr(start,len)}:function(str,start,len){if(start<0)start=str.length+start;return str.substr(start,len)}}).call(this,require("_process"))},{_process:171}],171:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canMutationObserver=typeof window!=="undefined"&&window.MutationObserver;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}var queue=[];if(canMutationObserver){var hiddenDiv=document.createElement("div");var observer=new MutationObserver(function(){var queueList=queue.slice();queue.length=0;queueList.forEach(function(fn){fn()})});observer.observe(hiddenDiv,{attributes:true});return function nextTick(fn){if(!queue.length){hiddenDiv.setAttribute("yes","no")}queue.push(fn)}}if(canPost){window.addEventListener("message",function(ev){var source=ev.source;if((source===window||source===null)&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],172:[function(require,module,exports){(function(global){(function(root){var freeExports=typeof exports=="object"&&exports;var freeModule=typeof module=="object"&&module&&module.exports==freeExports&&module;var freeGlobal=typeof global=="object"&&global;if(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal){root=freeGlobal}var punycode,maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexPunycode=/^xn--/,regexNonASCII=/[^ -~]/,regexSeparators=/\x2E|\u3002|\uFF0E|\uFF61/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode,key;function error(type){throw RangeError(errors[type])}function map(array,fn){var length=array.length;while(length--){array[length]=fn(array[length])}return array}function mapDomain(string,fn){return map(string.split(regexSeparators),fn).join(".")}function ucs2decode(string){var output=[],counter=0,length=string.length,value,extra;while(counter<length){value=string.charCodeAt(counter++);if(value>=55296&&value<=56319&&counter<length){extra=string.charCodeAt(counter++);if((extra&64512)==56320){output.push(((value&1023)<<10)+(extra&1023)+65536)}else{output.push(value);counter--}}else{output.push(value)}}return output}function ucs2encode(array){return map(array,function(value){var output="";if(value>65535){value-=65536;output+=stringFromCharCode(value>>>10&1023|55296);value=56320|value&1023}output+=stringFromCharCode(value);return output}).join("")}function basicToDigit(codePoint){if(codePoint-48<10){return codePoint-22}if(codePoint-65<26){return codePoint-65}if(codePoint-97<26){return codePoint-97}return base}function digitToBasic(digit,flag){return digit+22+75*(digit<26)-((flag!=0)<<5)}function adapt(delta,numPoints,firstTime){var k=0;delta=firstTime?floor(delta/damp):delta>>1;delta+=floor(delta/numPoints);for(;delta>baseMinusTMin*tMax>>1;k+=base){delta=floor(delta/baseMinusTMin)}return floor(k+(baseMinusTMin+1)*delta/(delta+skew))}function decode(input){var output=[],inputLength=input.length,out,i=0,n=initialN,bias=initialBias,basic,j,index,oldi,w,k,digit,t,baseMinusT;basic=input.lastIndexOf(delimiter);if(basic<0){basic=0}for(j=0;j<basic;++j){if(input.charCodeAt(j)>=128){error("not-basic")}output.push(input.charCodeAt(j))}for(index=basic>0?basic+1:0;index<inputLength;){for(oldi=i,w=1,k=base;;k+=base){if(index>=inputLength){error("invalid-input")}digit=basicToDigit(input.charCodeAt(index++));if(digit>=base||digit>floor((maxInt-i)/w)){error("overflow")}i+=digit*w;t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(digit<t){break}baseMinusT=base-t;if(w>floor(maxInt/baseMinusT)){error("overflow")}w*=baseMinusT}out=output.length+1;bias=adapt(i-oldi,out,oldi==0);if(floor(i/out)>maxInt-n){error("overflow")}n+=floor(i/out);i%=out;output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,output=[],inputLength,handledCPCountPlusOne,baseMinusT,qMinusT;input=ucs2decode(input);inputLength=input.length;n=initialN;delta=0;bias=initialBias;for(j=0;j<inputLength;++j){currentValue=input[j];if(currentValue<128){output.push(stringFromCharCode(currentValue))}}handledCPCount=basicLength=output.length;if(basicLength){output.push(delimiter)}while(handledCPCount<inputLength){for(m=maxInt,j=0;j<inputLength;++j){currentValue=input[j];if(currentValue>=n&¤tValue<m){m=currentValue}}handledCPCountPlusOne=handledCPCount+1;if(m-n>floor((maxInt-delta)/handledCPCountPlusOne)){error("overflow")}delta+=(m-n)*handledCPCountPlusOne;n=m;for(j=0;j<inputLength;++j){currentValue=input[j];if(currentValue<n&&++delta>maxInt){error("overflow")}if(currentValue==n){for(q=delta,k=base;;k+=base){t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(q<t){break}qMinusT=q-t;baseMinusT=base-t;output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0)));q=floor(qMinusT/baseMinusT)}output.push(stringFromCharCode(digitToBasic(q,0)));bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength);delta=0;++handledCPCount}}++delta;++n}return output.join("")}function toUnicode(domain){return mapDomain(domain,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string})}function toASCII(domain){return mapDomain(domain,function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string})}punycode={version:"1.2.4",ucs2:{decode:ucs2decode,encode:ucs2encode},decode:decode,encode:encode,toASCII:toASCII,toUnicode:toUnicode};if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){define("punycode",function(){return punycode})}else if(freeExports&&!freeExports.nodeType){if(freeModule){freeModule.exports=punycode}else{for(key in punycode){punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key])}}}else{root.punycode=punycode}})(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],173:[function(require,module,exports){"use strict";function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}module.exports=function(qs,sep,eq,options){sep=sep||"&";eq=eq||"=";var obj={};if(typeof qs!=="string"||qs.length===0){return obj}var regexp=/\+/g;qs=qs.split(sep);var maxKeys=1e3;if(options&&typeof options.maxKeys==="number"){maxKeys=options.maxKeys}var len=qs.length;if(maxKeys>0&&len>maxKeys){len=maxKeys}for(var i=0;i<len;++i){var x=qs[i].replace(regexp,"%20"),idx=x.indexOf(eq),kstr,vstr,k,v;if(idx>=0){kstr=x.substr(0,idx);vstr=x.substr(idx+1)}else{kstr=x;vstr=""}k=decodeURIComponent(kstr);v=decodeURIComponent(vstr);if(!hasOwnProperty(obj,k)){obj[k]=v}else if(isArray(obj[k])){obj[k].push(v)}else{obj[k]=[obj[k],v]}}return obj};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==="[object Array]"}},{}],174:[function(require,module,exports){"use strict";var stringifyPrimitive=function(v){switch(typeof v){case"string":return v;case"boolean":return v?"true":"false";case"number":return isFinite(v)?v:"";default:return""}};module.exports=function(obj,sep,eq,name){sep=sep||"&";eq=eq||"=";if(obj===null){obj=undefined}if(typeof obj==="object"){return map(objectKeys(obj),function(k){var ks=encodeURIComponent(stringifyPrimitive(k))+eq;if(isArray(obj[k])){return map(obj[k],function(v){return ks+encodeURIComponent(stringifyPrimitive(v))}).join(sep)}else{return ks+encodeURIComponent(stringifyPrimitive(obj[k]))}}).join(sep)}if(!name)return"";return encodeURIComponent(stringifyPrimitive(name))+eq+encodeURIComponent(stringifyPrimitive(obj))};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};function map(xs,f){if(xs.map)return xs.map(f);var res=[];for(var i=0;i<xs.length;i++){res.push(f(xs[i],i))}return res}var objectKeys=Object.keys||function(obj){var res=[];for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))res.push(key)}return res}},{}],175:[function(require,module,exports){"use strict";exports.decode=exports.parse=require("./decode");exports.encode=exports.stringify=require("./encode")},{"./decode":173,"./encode":174}],176:[function(require,module,exports){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":177}],177:[function(require,module,exports){(function(process){module.exports=Duplex;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys};var util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable");var Writable=require("./_stream_writable");util.inherits(Duplex,Readable);forEach(objectKeys(Writable.prototype),function(method){if(!Duplex.prototype[method])Duplex.prototype[method]=Writable.prototype[method]});function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);if(options&&options.readable===false)this.readable=false;if(options&&options.writable===false)this.writable=false;this.allowHalfOpen=true;if(options&&options.allowHalfOpen===false)this.allowHalfOpen=false;this.once("end",onend)}function onend(){if(this.allowHalfOpen||this._writableState.ended)return;process.nextTick(this.end.bind(this))}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++){f(xs[i],i)}}}).call(this,require("_process"))},{"./_stream_readable":179,"./_stream_writable":181,_process:171,"core-util-is":182,inherits:168}],178:[function(require,module,exports){module.exports=PassThrough;var Transform=require("./_stream_transform");var util=require("core-util-is");util.inherits=require("inherits");util.inherits(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":180,"core-util-is":182,inherits:168}],179:[function(require,module,exports){(function(process){module.exports=Readable;var isArray=require("isarray");var Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;if(!EE.listenerCount)EE.listenerCount=function(emitter,type){return emitter.listeners(type).length};var Stream=require("stream");var util=require("core-util-is");util.inherits=require("inherits");var StringDecoder;util.inherits(Readable,Stream);function ReadableState(options,stream){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||hwm===0?hwm:16*1024;this.highWaterMark=~~this.highWaterMark;this.buffer=[];this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=false;this.ended=false;this.endEmitted=false;this.reading=false;this.calledRead=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.objectMode=!!options.objectMode;this.defaultEncoding=options.defaultEncoding||"utf8";this.ranOut=false;this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding}}function Readable(options){if(!(this instanceof Readable))return new Readable(options);this._readableState=new ReadableState(options,this);this.readable=true;Stream.call(this)}Readable.prototype.push=function(chunk,encoding){var state=this._readableState;if(typeof chunk==="string"&&!state.objectMode){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=new Buffer(chunk,encoding);encoding=""}}return readableAddChunk(this,state,chunk,encoding,false)};Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",true)};function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er){stream.emit("error",er)}else if(chunk===null||chunk===undefined){state.reading=false;if(!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{if(state.decoder&&!addToFront&&!encoding)chunk=state.decoder.write(chunk);state.length+=state.objectMode?1:chunk.length;if(addToFront){state.buffer.unshift(chunk)}else{state.reading=false;state.buffer.push(chunk)}if(state.needReadable)emitReadable(stream);maybeReadMore(stream,state)}}else if(!addToFront){state.reading=false}return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||state.length===0)}Readable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this._readableState.decoder=new StringDecoder(enc);this._readableState.encoding=enc};var MAX_HWM=8388608;function roundUpToNextPowerOf2(n){if(n>=MAX_HWM){n=MAX_HWM}else{n--;for(var p=1;p<32;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){if(state.length===0&&state.ended)return 0;if(state.objectMode)return n===0?0:1;if(n===null||isNaN(n)){if(state.flowing&&state.buffer.length)return state.buffer[0].length;else return state.length}if(n<=0)return 0;if(n>state.highWaterMark)state.highWaterMark=roundUpToNextPowerOf2(n);if(n>state.length){if(!state.ended){state.needReadable=true;return 0}else return state.length}return n}Readable.prototype.read=function(n){var state=this._readableState;state.calledRead=true;var nOrig=n;var ret;if(typeof n!=="number"||n>0)state.emittedReadable=false;if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){ret=null;if(state.length>0&&state.decoder){ret=fromList(n,state);state.length-=ret.length}if(state.length===0)endReadable(this);return ret}var doRead=state.needReadable;if(state.length-n<=state.highWaterMark)doRead=true;if(state.ended||state.reading)doRead=false;if(doRead){state.reading=true;state.sync=true;if(state.length===0)state.needReadable=true;this._read(state.highWaterMark);state.sync=false}if(doRead&&!state.reading)n=howMuchToRead(nOrig,state);if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=true;n=0}state.length-=n;if(state.length===0&&!state.ended)state.needReadable=true;if(state.ended&&!state.endEmitted&&state.length===0)endReadable(this);return ret};function chunkInvalid(state,chunk){var er=null;if(!Buffer.isBuffer(chunk)&&"string"!==typeof chunk&&chunk!==null&&chunk!==undefined&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}return er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;if(state.length>0)emitReadable(stream);else endReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(state.emittedReadable)return;state.emittedReadable=true;if(state.sync)process.nextTick(function(){emitReadable_(stream)});else emitReadable_(stream)}function emitReadable_(stream){stream.emit("readable")}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(function(){maybeReadMore_(stream,state)})}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark){stream.read(0);if(len===state.length)break;else len=state.length}state.readingMore=false}Readable.prototype._read=function(n){this.emit("error",new Error("not implemented"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1;var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:cleanup;if(state.endEmitted)process.nextTick(endFn);else src.once("end",endFn);dest.on("unpipe",onunpipe);function onunpipe(readable){if(readable!==src)return;cleanup()}function onend(){dest.end()}var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);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);if(!dest._writableState||dest._writableState.needDrain)ondrain()}function onerror(er){unpipe();dest.removeListener("error",onerror);if(EE.listenerCount(dest,"error")===0)dest.emit("error",er)}if(!dest._events||!dest._events.error)dest.on("error",onerror);else if(isArray(dest._events.error))dest._events.error.unshift(onerror);else dest._events.error=[onerror,dest._events.error];function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){this.on("readable",pipeOnReadable);state.flowing=true;process.nextTick(function(){flow(src)})}return dest};function pipeOnDrain(src){return function(){var dest=this;var state=src._readableState;state.awaitDrain--;if(state.awaitDrain===0)flow(src)}}function flow(src){var state=src._readableState;var chunk;state.awaitDrain=0;function write(dest,i,list){var written=dest.write(chunk);if(false===written){state.awaitDrain++}}while(state.pipesCount&&null!==(chunk=src.read())){if(state.pipesCount===1)write(state.pipes,0,null);else forEach(state.pipes,write);src.emit("data",chunk);if(state.awaitDrain>0)return}if(state.pipesCount===0){state.flowing=false;if(EE.listenerCount(src,"data")>0)emitDataEvents(src);return}state.ranOut=true}function pipeOnReadable(){if(this._readableState.ranOut){this._readableState.ranOut=false;flow(this)}}Readable.prototype.unpipe=function(dest){var state=this._readableState;if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;this.removeListener("readable",pipeOnReadable);state.flowing=false;if(dest)dest.emit("unpipe",this);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;this.removeListener("readable",pipeOnReadable);state.flowing=false;for(var i=0;i<len;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);if(i===-1)return this;state.pipes.splice(i,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit("unpipe",this);return this};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if(ev==="data"&&!this._readableState.flowing)emitDataEvents(this);if(ev==="readable"&&this.readable){var state=this._readableState;if(!state.readableListening){state.readableListening=true;state.emittedReadable=false;state.needReadable=true;if(!state.reading){this.read(0)}else if(state.length){emitReadable(this,state)}}}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,true);this.emit("pause")};function emitDataEvents(stream,startPaused){var state=stream._readableState;if(state.flowing){throw new Error("Cannot switch to old mode now.")}var paused=startPaused||false;var readable=false;stream.readable=true;stream.pipe=Stream.prototype.pipe;stream.on=stream.addListener=Stream.prototype.on;stream.on("readable",function(){readable=true;var c;while(!paused&&null!==(c=stream.read()))stream.emit("data",c);if(c===null){readable=false;stream._readableState.needReadable=true}});stream.pause=function(){paused=true;this.emit("pause")};stream.resume=function(){paused=false;if(readable)process.nextTick(function(){stream.emit("readable")});else this.read(0);this.emit("resume")};stream.emit("readable")}Readable.prototype.wrap=function(stream){var state=this._readableState;var paused=false;var self=this;stream.on("end",function(){if(state.decoder&&!state.ended){var chunk=state.decoder.end(); | |
if(chunk&&chunk.length)self.push(chunk)}self.push(null)});stream.on("data",function(chunk){if(state.decoder)chunk=state.decoder.write(chunk);if(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=self.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(typeof stream[i]==="function"&&typeof this[i]==="undefined"){this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i)}}var events=["error","close","destroy","pause","resume"];forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))});self._read=function(n){if(paused){paused=false;stream.resume()}};return self};Readable._fromList=fromList;function fromList(n,state){var list=state.buffer;var length=state.length;var stringMode=!!state.decoder;var objectMode=!!state.objectMode;var ret;if(list.length===0)return null;if(length===0)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length){if(stringMode)ret=list.join("");else ret=Buffer.concat(list,length);list.length=0}else{if(n<list[0].length){var buf=list[0];ret=buf.slice(0,n);list[0]=buf.slice(n)}else if(n===list[0].length){ret=list.shift()}else{if(stringMode)ret="";else ret=new Buffer(n);var c=0;for(var i=0,l=list.length;i<l&&c<n;i++){var buf=list[0];var cpy=Math.min(n-c,buf.length);if(stringMode)ret+=buf.slice(0,cpy);else buf.copy(ret,c,0,cpy);if(cpy<buf.length)list[0]=buf.slice(cpy);else list.shift();c+=cpy}}}return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error("endReadable called on non-empty stream");if(!state.endEmitted&&state.calledRead){state.ended=true;process.nextTick(function(){if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end")}})}}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++){f(xs[i],i)}}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i}return-1}}).call(this,require("_process"))},{_process:171,buffer:17,"core-util-is":182,events:162,inherits:168,isarray:169,stream:187,"string_decoder/":188}],180:[function(require,module,exports){module.exports=Transform;var Duplex=require("./_stream_duplex");var util=require("core-util-is");util.inherits=require("inherits");util.inherits(Transform,Duplex);function TransformState(options,stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)};this.needTransform=false;this.transforming=false;this.writecb=null;this.writechunk=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=false;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null;ts.writecb=null;if(data!==null&&data!==undefined)stream.push(data);if(cb)cb(er);var rs=stream._readableState;rs.reading=false;if(rs.needReadable||rs.length<rs.highWaterMark){stream._read(rs.highWaterMark)}}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options);var ts=this._transformState=new TransformState(options,this);var stream=this;this._readableState.needReadable=true;this._readableState.sync=false;this.once("finish",function(){if("function"===typeof this._flush)this._flush(function(er){done(stream,er)});else done(stream)})}Transform.prototype.push=function(chunk,encoding){this._transformState.needTransform=false;return Duplex.prototype.push.call(this,chunk,encoding)};Transform.prototype._transform=function(chunk,encoding,cb){throw new Error("not implemented")};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;ts.writecb=cb;ts.writechunk=chunk;ts.writeencoding=encoding;if(!ts.transforming){var rs=this._readableState;if(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)this._read(rs.highWaterMark)}};Transform.prototype._read=function(n){var ts=this._transformState;if(ts.writechunk!==null&&ts.writecb&&!ts.transforming){ts.transforming=true;this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)}else{ts.needTransform=true}};function done(stream,er){if(er)return stream.emit("error",er);var ws=stream._writableState;var rs=stream._readableState;var ts=stream._transformState;if(ws.length)throw new Error("calling transform done when ws.length != 0");if(ts.transforming)throw new Error("calling transform done when still transforming");return stream.push(null)}},{"./_stream_duplex":177,"core-util-is":182,inherits:168}],181:[function(require,module,exports){(function(process){module.exports=Writable;var Buffer=require("buffer").Buffer;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var Stream=require("stream");util.inherits(Writable,Stream);function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb}function WritableState(options,stream){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||hwm===0?hwm:16*1024;this.objectMode=!!options.objectMode;this.highWaterMark=~~this.highWaterMark;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;var noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;this.defaultEncoding=options.defaultEncoding||"utf8";this.length=0;this.writing=false;this.sync=true;this.bufferProcessing=false;this.onwrite=function(er){onwrite(stream,er)};this.writecb=null;this.writelen=0;this.buffer=[];this.errorEmitted=false}function Writable(options){var Duplex=require("./_stream_duplex");if(!(this instanceof Writable)&&!(this instanceof Duplex))return new Writable(options);this._writableState=new WritableState(options,this);this.writable=true;Stream.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))};function writeAfterEnd(stream,state,cb){var er=new Error("write after end");stream.emit("error",er);process.nextTick(function(){cb(er)})}function validChunk(stream,state,chunk,cb){var valid=true;if(!Buffer.isBuffer(chunk)&&"string"!==typeof chunk&&chunk!==null&&chunk!==undefined&&!state.objectMode){var er=new TypeError("Invalid non-string/buffer chunk");stream.emit("error",er);process.nextTick(function(){cb(er)});valid=false}return valid}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;if(typeof encoding==="function"){cb=encoding;encoding=null}if(Buffer.isBuffer(chunk))encoding="buffer";else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=="function")cb=function(){};if(state.ended)writeAfterEnd(this,state,cb);else if(validChunk(this,state,chunk,cb))ret=writeOrBuffer(this,state,chunk,encoding,cb);return ret};function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=new Buffer(chunk,encoding)}return chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding);if(Buffer.isBuffer(chunk))encoding="buffer";var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(!ret)state.needDrain=true;if(state.writing)state.buffer.push(new WriteReq(chunk,encoding,cb));else doWrite(stream,state,len,chunk,encoding,cb);return ret}function doWrite(stream,state,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;stream._write(chunk,encoding,state.onwrite);state.sync=false}function onwriteError(stream,state,sync,er,cb){if(sync)process.nextTick(function(){cb(er)});else cb(er);stream._writableState.errorEmitted=true;stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0}function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(stream,state);if(!finished&&!state.bufferProcessing&&state.buffer.length)clearBuffer(stream,state);if(sync){process.nextTick(function(){afterWrite(stream,state,finished,cb)})}else{afterWrite(stream,state,finished,cb)}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);cb();if(finished)finishMaybe(stream,state)}function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit("drain")}}function clearBuffer(stream,state){state.bufferProcessing=true;for(var c=0;c<state.buffer.length;c++){var entry=state.buffer[c];var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,len,chunk,encoding,cb);if(state.writing){c++;break}}state.bufferProcessing=false;if(c<state.buffer.length)state.buffer=state.buffer.slice(c);else state.buffer.length=0}Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))};Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==="function"){cb=chunk;chunk=null;encoding=null}else if(typeof encoding==="function"){cb=encoding;encoding=null}if(typeof chunk!=="undefined"&&chunk!==null)this.write(chunk,encoding);if(!state.ending&&!state.finished)endWritable(this,state,cb)};function needFinish(stream,state){return state.ending&&state.length===0&&!state.finished&&!state.writing}function finishMaybe(stream,state){var need=needFinish(stream,state);if(need){state.finished=true;stream.emit("finish")}return need}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)process.nextTick(cb);else stream.once("finish",cb)}state.ended=true}}).call(this,require("_process"))},{"./_stream_duplex":177,_process:171,buffer:17,"core-util-is":182,inherits:168,stream:187}],182:[function(require,module,exports){(function(Buffer){function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;function isBuffer(arg){return Buffer.isBuffer(arg)}exports.isBuffer=isBuffer;function objectToString(o){return Object.prototype.toString.call(o)}}).call(this,require("buffer").Buffer)},{buffer:17}],183:[function(require,module,exports){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":178}],184:[function(require,module,exports){var Stream=require("stream");exports=module.exports=require("./lib/_stream_readable.js");exports.Stream=Stream;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":177,"./lib/_stream_passthrough.js":178,"./lib/_stream_readable.js":179,"./lib/_stream_transform.js":180,"./lib/_stream_writable.js":181,stream:187}],185:[function(require,module,exports){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":180}],186:[function(require,module,exports){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":181}],187:[function(require,module,exports){module.exports=Stream;var EE=require("events").EventEmitter;var 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;function Stream(){EE.call(this)}Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){if(dest.writable){if(false===dest.write(chunk)&&source.pause){source.pause()}}}source.on("data",ondata);function ondrain(){if(source.readable&&source.resume){source.resume()}}dest.on("drain",ondrain);if(!dest._isStdio&&(!options||options.end!==false)){source.on("end",onend);source.on("close",onclose)}var didOnEnd=false;function onend(){if(didOnEnd)return;didOnEnd=true;dest.end()}function onclose(){if(didOnEnd)return;didOnEnd=true;if(typeof dest.destroy==="function")dest.destroy()}function onerror(er){cleanup();if(EE.listenerCount(this,"error")===0){throw er}}source.on("error",onerror);dest.on("error",onerror);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)}source.on("end",cleanup);source.on("close",cleanup);dest.on("close",cleanup);dest.emit("pipe",source);return dest}},{events:162,inherits:168,"readable-stream/duplex.js":176,"readable-stream/passthrough.js":183,"readable-stream/readable.js":184,"readable-stream/transform.js":185,"readable-stream/writable.js":186}],188:[function(require,module,exports){var Buffer=require("buffer").Buffer;var isBufferEncoding=Buffer.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding)){throw new Error("Unknown encoding: "+encoding)}}var StringDecoder=exports.StringDecoder=function(encoding){this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,"");assertEncoding(encoding);switch(this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2;this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3;this.detectIncompleteChar=base64DetectIncompleteChar;break;default:this.write=passThroughWrite;return}this.charBuffer=new Buffer(6);this.charReceived=0;this.charLength=0};StringDecoder.prototype.write=function(buffer){var charStr="";while(this.charLength){var available=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;buffer.copy(this.charBuffer,this.charReceived,0,available);this.charReceived+=available;if(this.charReceived<this.charLength){return""}buffer=buffer.slice(available,buffer.length);charStr=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var charCode=charStr.charCodeAt(charStr.length-1);if(charCode>=55296&&charCode<=56319){this.charLength+=this.surrogateSize;charStr="";continue}this.charReceived=this.charLength=0;if(buffer.length===0){return charStr}break}this.detectIncompleteChar(buffer);var end=buffer.length;if(this.charLength){buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end);end-=this.charReceived}charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1;var charCode=charStr.charCodeAt(end);if(charCode>=55296&&charCode<=56319){var size=this.surrogateSize;this.charLength+=size;this.charReceived+=size;this.charBuffer.copy(this.charBuffer,size,0,size);buffer.copy(this.charBuffer,0,0,size);return charStr.substring(0,end)}return charStr};StringDecoder.prototype.detectIncompleteChar=function(buffer){var i=buffer.length>=3?3:buffer.length;for(;i>0;i--){var c=buffer[buffer.length-i];if(i==1&&c>>5==6){this.charLength=2;break}if(i<=2&&c>>4==14){this.charLength=3;break}if(i<=3&&c>>3==30){this.charLength=4;break}}this.charReceived=i};StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length)res=this.write(buffer);if(this.charReceived){var cr=this.charReceived;var buf=this.charBuffer;var enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res};function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2;this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3;this.charLength=this.charReceived?3:0}},{buffer:17}],189:[function(require,module,exports){var punycode=require("punycode");exports.parse=urlParse;exports.resolve=urlResolve;exports.resolveObject=urlResolveObject;exports.format=urlFormat;exports.Url=Url;function Url(){this.protocol=null;this.slashes=null;this.auth=null;this.host=null;this.port=null;this.hostname=null;this.hash=null;this.search=null;this.query=null;this.pathname=null;this.path=null;this.href=null}var protocolPattern=/^([a-z0-9.+-]+:)/i,portPattern=/:[0-9]*$/,delims=["<",">",'"',"`"," ","\r","\n"," "],unwise=["{","}","|","\\","^","`"].concat(delims),autoEscape=["'"].concat(unwise),nonHostChars=["%","/","?",";","#"].concat(autoEscape),hostEndingChars=["/","?","#"],hostnameMaxLen=255,hostnamePartPattern=/^[a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([a-z0-9A-Z_-]{0,63})(.*)$/,unsafeProtocol={javascript:true,"javascript:":true},hostlessProtocol={javascript:true,"javascript:":true},slashedProtocol={http:true,https:true,ftp:true,gopher:true,file:true,"http:":true,"https:":true,"ftp:":true,"gopher:":true,"file:":true},querystring=require("querystring");function urlParse(url,parseQueryString,slashesDenoteHost){if(url&&isObject(url)&&url instanceof Url)return url;var u=new Url;u.parse(url,parseQueryString,slashesDenoteHost);return u}Url.prototype.parse=function(url,parseQueryString,slashesDenoteHost){if(!isString(url)){throw new TypeError("Parameter 'url' must be a string, not "+typeof url)}var rest=url;rest=rest.trim();var proto=protocolPattern.exec(rest);if(proto){proto=proto[0];var lowerProto=proto.toLowerCase();this.protocol=lowerProto;rest=rest.substr(proto.length)}if(slashesDenoteHost||proto||rest.match(/^\/\/[^@\/]+@[^@\/]+/)){var slashes=rest.substr(0,2)==="//";if(slashes&&!(proto&&hostlessProtocol[proto])){rest=rest.substr(2);this.slashes=true}}if(!hostlessProtocol[proto]&&(slashes||proto&&!slashedProtocol[proto])){var hostEnd=-1;for(var i=0;i<hostEndingChars.length;i++){var hec=rest.indexOf(hostEndingChars[i]);if(hec!==-1&&(hostEnd===-1||hec<hostEnd))hostEnd=hec}var auth,atSign;if(hostEnd===-1){atSign=rest.lastIndexOf("@")}else{atSign=rest.lastIndexOf("@",hostEnd)}if(atSign!==-1){auth=rest.slice(0,atSign);rest=rest.slice(atSign+1);this.auth=decodeURIComponent(auth)}hostEnd=-1;for(var i=0;i<nonHostChars.length;i++){var hec=rest.indexOf(nonHostChars[i]);if(hec!==-1&&(hostEnd===-1||hec<hostEnd))hostEnd=hec}if(hostEnd===-1)hostEnd=rest.length;this.host=rest.slice(0,hostEnd);rest=rest.slice(hostEnd);this.parseHost();this.hostname=this.hostname||"";var ipv6Hostname=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!ipv6Hostname){var hostparts=this.hostname.split(/\./);for(var i=0,l=hostparts.length;i<l;i++){var part=hostparts[i];if(!part)continue;if(!part.match(hostnamePartPattern)){var newpart="";for(var j=0,k=part.length;j<k;j++){if(part.charCodeAt(j)>127){newpart+="x"}else{newpart+=part[j]}}if(!newpart.match(hostnamePartPattern)){var validParts=hostparts.slice(0,i);var notHost=hostparts.slice(i+1);var bit=part.match(hostnamePartStart);if(bit){validParts.push(bit[1]);notHost.unshift(bit[2])}if(notHost.length){rest="/"+notHost.join(".")+rest}this.hostname=validParts.join(".");break}}}}if(this.hostname.length>hostnameMaxLen){this.hostname=""}else{this.hostname=this.hostname.toLowerCase()}if(!ipv6Hostname){var domainArray=this.hostname.split(".");var newOut=[];for(var i=0;i<domainArray.length;++i){var s=domainArray[i];newOut.push(s.match(/[^A-Za-z0-9_-]/)?"xn--"+punycode.encode(s):s)}this.hostname=newOut.join(".")}var p=this.port?":"+this.port:"";var h=this.hostname||"";this.host=h+p;this.href+=this.host;if(ipv6Hostname){this.hostname=this.hostname.substr(1,this.hostname.length-2);if(rest[0]!=="/"){rest="/"+rest}}}if(!unsafeProtocol[lowerProto]){for(var i=0,l=autoEscape.length;i<l;i++){var ae=autoEscape[i];var esc=encodeURIComponent(ae);if(esc===ae){esc=escape(ae)}rest=rest.split(ae).join(esc)}}var hash=rest.indexOf("#");if(hash!==-1){this.hash=rest.substr(hash);rest=rest.slice(0,hash)}var qm=rest.indexOf("?");if(qm!==-1){this.search=rest.substr(qm);this.query=rest.substr(qm+1);if(parseQueryString){this.query=querystring.parse(this.query)}rest=rest.slice(0,qm)}else if(parseQueryString){this.search="";this.query={}}if(rest)this.pathname=rest;if(slashedProtocol[lowerProto]&&this.hostname&&!this.pathname){this.pathname="/"}if(this.pathname||this.search){var p=this.pathname||"";var s=this.search||"";this.path=p+s}this.href=this.format();return this};function urlFormat(obj){if(isString(obj))obj=urlParse(obj);if(!(obj instanceof Url))return Url.prototype.format.call(obj);return obj.format()}Url.prototype.format=function(){var auth=this.auth||"";if(auth){auth=encodeURIComponent(auth);auth=auth.replace(/%3A/i,":");auth+="@"}var protocol=this.protocol||"",pathname=this.pathname||"",hash=this.hash||"",host=false,query="";if(this.host){host=auth+this.host}else if(this.hostname){host=auth+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]");if(this.port){host+=":"+this.port}}if(this.query&&isObject(this.query)&&Object.keys(this.query).length){query=querystring.stringify(this.query)}var search=this.search||query&&"?"+query||"";if(protocol&&protocol.substr(-1)!==":")protocol+=":";if(this.slashes||(!protocol||slashedProtocol[protocol])&&host!==false){host="//"+(host||"");if(pathname&&pathname.charAt(0)!=="/")pathname="/"+pathname}else if(!host){host=""}if(hash&&hash.charAt(0)!=="#")hash="#"+hash;if(search&&search.charAt(0)!=="?")search="?"+search;pathname=pathname.replace(/[?#]/g,function(match){return encodeURIComponent(match)});search=search.replace("#","%23");return protocol+host+pathname+search+hash};function urlResolve(source,relative){return urlParse(source,false,true).resolve(relative)}Url.prototype.resolve=function(relative){return this.resolveObject(urlParse(relative,false,true)).format()};function urlResolveObject(source,relative){if(!source)return relative;return urlParse(source,false,true).resolveObject(relative)}Url.prototype.resolveObject=function(relative){if(isString(relative)){var rel=new Url;rel.parse(relative,false,true);relative=rel}var result=new Url;Object.keys(this).forEach(function(k){result[k]=this[k]},this);result.hash=relative.hash;if(relative.href===""){result.href=result.format();return result}if(relative.slashes&&!relative.protocol){Object.keys(relative).forEach(function(k){if(k!=="protocol")result[k]=relative[k]});if(slashedProtocol[result.protocol]&&result.hostname&&!result.pathname){result.path=result.pathname="/"}result.href=result.format();return result}if(relative.protocol&&relative.protocol!==result.protocol){if(!slashedProtocol[relative.protocol]){Object.keys(relative).forEach(function(k){result[k]=relative[k]});result.href=result.format();return result}result.protocol=relative.protocol;if(!relative.host&&!hostlessProtocol[relative.protocol]){var relPath=(relative.pathname||"").split("/");while(relPath.length&&!(relative.host=relPath.shift()));if(!relative.host)relative.host="";if(!relative.hostname)relative.hostname="";if(relPath[0]!=="")relPath.unshift("");if(relPath.length<2)relPath.unshift("");result.pathname=relPath.join("/")}else{result.pathname=relative.pathname}result.search=relative.search;result.query=relative.query;result.host=relative.host||"";result.auth=relative.auth;result.hostname=relative.hostname||relative.host;result.port=relative.port;if(result.pathname||result.search){var p=result.pathname||"";var s=result.search||"";result.path=p+s}result.slashes=result.slashes||relative.slashes;result.href=result.format();return result}var isSourceAbs=result.pathname&&result.pathname.charAt(0)==="/",isRelAbs=relative.host||relative.pathname&&relative.pathname.charAt(0)==="/",mustEndAbs=isRelAbs||isSourceAbs||result.host&&relative.pathname,removeAllDots=mustEndAbs,srcPath=result.pathname&&result.pathname.split("/")||[],relPath=relative.pathname&&relative.pathname.split("/")||[],psychotic=result.protocol&&!slashedProtocol[result.protocol];if(psychotic){result.hostname="";result.port=null;if(result.host){if(srcPath[0]==="")srcPath[0]=result.host;else srcPath.unshift(result.host)}result.host="";if(relative.protocol){relative.hostname=null;relative.port=null;if(relative.host){if(relPath[0]==="")relPath[0]=relative.host;else relPath.unshift(relative.host)}relative.host=null}mustEndAbs=mustEndAbs&&(relPath[0]===""||srcPath[0]==="")}if(isRelAbs){result.host=relative.host||relative.host===""?relative.host:result.host;result.hostname=relative.hostname||relative.hostname===""?relative.hostname:result.hostname;result.search=relative.search;result.query=relative.query;srcPath=relPath}else if(relPath.length){if(!srcPath)srcPath=[];srcPath.pop();srcPath=srcPath.concat(relPath);result.search=relative.search;result.query=relative.query}else if(!isNullOrUndefined(relative.search)){if(psychotic){result.hostname=result.host=srcPath.shift();var authInHost=result.host&&result.host.indexOf("@")>0?result.host.split("@"):false;if(authInHost){result.auth=authInHost.shift();result.host=result.hostname=authInHost.shift()}}result.search=relative.search;result.query=relative.query;if(!isNull(result.pathname)||!isNull(result.search)){result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"")}result.href=result.format();return result}if(!srcPath.length){result.pathname=null;if(result.search){result.path="/"+result.search}else{result.path=null}result.href=result.format();return result}var last=srcPath.slice(-1)[0];var hasTrailingSlash=(result.host||relative.host)&&(last==="."||last==="..")||last==="";var up=0;for(var i=srcPath.length;i>=0;i--){last=srcPath[i];if(last=="."){srcPath.splice(i,1)}else if(last===".."){srcPath.splice(i,1);up++}else if(up){srcPath.splice(i,1);up--}}if(!mustEndAbs&&!removeAllDots){for(;up--;up){srcPath.unshift("..")}}if(mustEndAbs&&srcPath[0]!==""&&(!srcPath[0]||srcPath[0].charAt(0)!=="/")){srcPath.unshift("")}if(hasTrailingSlash&&srcPath.join("/").substr(-1)!=="/"){srcPath.push("")}var isAbsolute=srcPath[0]===""||srcPath[0]&&srcPath[0].charAt(0)==="/";if(psychotic){result.hostname=result.host=isAbsolute?"":srcPath.length?srcPath.shift():"";var authInHost=result.host&&result.host.indexOf("@")>0?result.host.split("@"):false;if(authInHost){result.auth=authInHost.shift();result.host=result.hostname=authInHost.shift()}}mustEndAbs=mustEndAbs||result.host&&srcPath.length;if(mustEndAbs&&!isAbsolute){srcPath.unshift("")}if(!srcPath.length){result.pathname=null;result.path=null}else{result.pathname=srcPath.join("/")}if(!isNull(result.pathname)||!isNull(result.search)){result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"")}result.auth=relative.auth||result.auth;result.slashes=result.slashes||relative.slashes;result.href=result.format();return result};Url.prototype.parseHost=function(){var host=this.host;var port=portPattern.exec(host);if(port){port=port[0];if(port!==":"){this.port=port.substr(1)}host=host.substr(0,host.length-port.length)}if(host)this.hostname=host};function isString(arg){return typeof arg==="string"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isNull(arg){return arg===null}function isNullOrUndefined(arg){return arg==null}},{punycode:172,querystring:175}],190:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],191:[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i<arguments.length;i++){objects.push(inspect(arguments[i]))}return objects.join(" ")}var i=1;var args=arguments;var len=args.length;var str=String(f).replace(formatRegExp,function(x){if(x==="%%")return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i<len;x=args[++i]){if(isNull(x)||!isObject(x)){str+=" "+x}else{str+=" "+inspect(x)}}return str};exports.deprecate=function(fn,msg){if(isUndefined(global.process)){return function(){return exports.deprecate(fn,msg).apply(this,arguments)}}if(process.noDeprecation===true){return fn}var warned=false;function deprecated(){if(!warned){if(process.throwDeprecation){throw new Error(msg)}else if(process.traceDeprecation){console.trace(msg)}else{console.error(msg)}warned=true}return fn.apply(this,arguments)}return deprecated};var debugs={};var debugEnviron;exports.debuglog=function(set){if(isUndefined(debugEnviron))debugEnviron=process.env.NODE_DEBUG||"";set=set.toUpperCase();if(!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]};function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};if(arguments.length>=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}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"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){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=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i<l;++i){if(hasOwnProperty(value,String(i))){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),true))}else{output.push("")}}keys.forEach(function(key){if(!key.match(/^\d+$/)){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,true))}});return output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]};if(desc.get){if(desc.set){str=ctx.stylize("[Getter/Setter]","special")}else{str=ctx.stylize("[Getter]","special")}}else{if(desc.set){str=ctx.stylize("[Setter]","special")}}if(!hasOwnProperty(visibleKeys,key)){name="["+key+"]"}if(!str){if(ctx.seen.indexOf(desc.value)<0){if(isNull(recurseTimes)){str=formatValue(ctx,desc.value,null)}else{str=formatValue(ctx,desc.value,recurseTimes-1)}if(str.indexOf("\n")>-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}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;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":190,_process:171,inherits:168}],192:[function(require,module,exports){var indexOf=require("indexof");var Object_keys=function(obj){if(Object.keys)return Object.keys(obj);else{var res=[];for(var key in obj)res.push(key);return res}};var forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);else for(var i=0;i<xs.length;i++){fn(xs[i],i,xs)}};var defineProp=function(){try{Object.defineProperty({},"_",{});return function(obj,name,value){Object.defineProperty(obj,name,{writable:true,enumerable:false,configurable:true,value:value})}}catch(e){return function(obj,name,value){obj[name]=value}}}();var globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];function Context(){}Context.prototype={};var Script=exports.Script=function NodeScript(code){if(!(this instanceof Script))return new Script(code);this.code=code};Script.prototype.runInContext=function(context){if(!(context instanceof Context)){throw new TypeError("needs a 'context' argument.")}var iframe=document.createElement("iframe");if(!iframe.style)iframe.style={};iframe.style.display="none";document.body.appendChild(iframe);var win=iframe.contentWindow;var wEval=win.eval,wExecScript=win.execScript;if(!wEval&&wExecScript){wExecScript.call(win,"null");wEval=win.eval}forEach(Object_keys(context),function(key){win[key]=context[key]});forEach(globals,function(key){if(context[key]){win[key]=context[key]}});var winKeys=Object_keys(win);var res=wEval.call(win,this.code);forEach(Object_keys(win),function(key){if(key in context||indexOf(winKeys,key)===-1){context[key]=win[key]}});forEach(globals,function(key){if(!(key in context)){defineProp(context,key,win[key])}});document.body.removeChild(iframe);return res};Script.prototype.runInThisContext=function(){return eval(this.code)};Script.prototype.runInNewContext=function(context){var ctx=Script.createContext(context);var res=this.runInContext(ctx);forEach(Object_keys(ctx),function(key){context[key]=ctx[key]});return res};forEach(Object_keys(Script.prototype),function(name){exports[name]=Script[name]=function(code){var s=Script(code);return s[name].apply(s,[].slice.call(arguments,1))}});exports.createScript=function(code){return exports.Script(code)};exports.createContext=Script.createContext=function(context){var copy=new Context;if(typeof context==="object"){forEach(Object_keys(context),function(key){copy[key]=context[key]})}return copy}},{indexof:193}],193:[function(require,module,exports){var indexOf=[].indexOf;module.exports=function(arr,obj){if(indexOf)return arr.indexOf(obj);for(var i=0;i<arr.length;++i){if(arr[i]===obj)return i}return-1}},{}],194:[function(require,module,exports){var _=require("lodash");var url=require("url");var request=require("./request");var Promise=require("q").Promise;var packageJson=require("../package.json");var query=require("qs");var anxErrors=require("./errors");function _hasValue(value){return!(_.isNull(value)||_.isUndefined(value))}function _isInteger(value){return parseInt(value,10)===+value}function _normalizeOpts(opts){return _.isString(opts)?{uri:opts}:_.cloneDeep(opts)||{}}function Api(config){this._config=_.defaults({},config,{request:request,userAgent:"anx-api/"+packageJson.version,target:null,token:null})}anxErrors.extend(Api);Api.prototype._request=function _request(opts){var _self=this;return new Promise(function(resolve,reject){var params;var startTime=(new Date).getTime();if(_.isEmpty(_self._config.target)){return reject(new Api.TargetError("Target not set"))}_(opts).pick(["startElement","numElements"]).each(function(value,opt){if(_hasValue(value)&&!_isInteger(value)){return reject(new Error("invalid "+opt+": "+value))}});opts=_.defaults({},opts,{rejectUnauthorized:false,headers:{"User-Agent":_self._config.userAgent},params:{}});if(!opts.noAuth&&!opts.auth&&_self._config.token){opts.headers.Authorization=_self._config.token}opts.uri=url.resolve(_self._config.target,opts.uri);if(_hasValue(opts.startElement)){opts.params.start_element=+opts.startElement}if(_hasValue(opts.numElements)){opts.params.num_elements=+opts.numElements;opts.params.start_element=opts.params.start_element||0}params=decodeURIComponent(query.stringify(opts.params));if(params!==""){opts.uri+=opts.uri.indexOf("?")===-1?"?":"&";opts.uri+=params}return _self._config.request(opts).then(function(res){res.requestTime=(new Date).getTime()-startTime;if(res.statusCode>=400){return reject(Api.buildError(res))}return resolve(res)}).catch(reject)})};Api.prototype.request=function _request(opts){opts=_normalizeOpts(opts);return this._request(opts)};Api.prototype.requestJson=function _request(opts){opts=_normalizeOpts(opts);opts.json=true;return this._request(opts)};Api.prototype.get=function _get(opts){opts=_normalizeOpts(opts);opts.method="GET";return this._request(opts)};Api.prototype.getJson=function _getJson(opts){opts=_normalizeOpts(opts);opts.json=true;return this.get(opts)};Api.prototype.getAllJson=function _getAll(opts){var _self=this;opts=_normalizeOpts(opts);return new Promise(function(resolve,reject){var objs=[];var totalTime=0;function _getJson(startElement){opts.startElement=startElement;return _self.getJson(opts).then(function(res){var response=res.body.response;var output_term=response.dbg_info.output_term;totalTime+=response.dbg_info.time||0;objs=objs.concat(response[output_term]);if(startElement>=response.count){response.start_element=0;response.num_elements=objs.length;response.dbg_info.time=totalTime;response[output_term]=objs;return resolve(res)}else{return _getJson(startElement+response.num_elements)}}).catch(reject)}return _getJson(0)})};Api.prototype.post=function _post(opts,payload){opts=_normalizeOpts(opts);opts.method="POST";if(payload){opts.body=payload}return this._request(opts)};Api.prototype.postJson=function _postJson(opts,payload){opts=_normalizeOpts(opts);opts.json=true;return this.post(opts,payload)};Api.prototype.put=function _put(opts,payload){opts=_normalizeOpts(opts);opts.method="PUT";if(payload){opts.body=payload}return this._request(opts)};Api.prototype.putJson=function _putJson(opts,payload){opts=_normalizeOpts(opts);opts.json=true;return this.put(opts,payload)};Api.prototype.delete=function _delete(opts){opts=_normalizeOpts(opts);opts.method="DELETE";return this._request(opts)};Api.prototype.deleteJson=function _deleteJson(opts){opts=_normalizeOpts(opts);opts.json=true;return this.delete(opts)};Api.prototype.login=function _login(username,password){var _self=this;return _self.postJson("/auth",{auth:{username:username,password:password}}).then(function(res){if(res.statusCode===200&&Api.statusOk(res.body)){_self._config.token=res.body.response.token;return _self._config.token}else{throw Api.buildError(res)}})};Api.prototype.switchUser=function _switchUser(userId){var _self=this;return _self.postJson("/auth",{auth:{switch_to_user:userId}})};module.exports=Api},{"../package.json":272,"./errors":195,"./request":196,lodash:197,q:198,qs:199,url:189}],195:[function(require,module,exports){var _=require("lodash");var util=require("util");function ApiError(){Error.apply(this);Error.captureStackTrace(this,this.constructor);this.name="ApiError";this.defaultMessage="";var id,code,message,description;switch(arguments.length){case 1:var err=arguments[0];if(_.isObject(err)){if(err.body&&err.body.response){err=err.body.response}else if(err.response){err=err.response}if(err.hasOwnProperty("error_id")){id=err.error_id;code=err.error_code;message=err.error;description=err.error_description}else if(err.hasOwnProperty("id")){id=err.id;code=err.code;message=err.message;description=err.description}else{message=err}}else{message=err}break;case 2:id=arguments[0];message=arguments[1];break;case 4:id=arguments[0];code=arguments[1];message=arguments[2];description=arguments[3];break;case 3:id=arguments[0];code=arguments[1];message=arguments[2];break}this.id=id;this.code=code;this.message=message||this.defaultMessage;this.description=description||""}util.inherits(ApiError,Error);function NotAuthorizedError(){this.defaultMessage="Authorization failed";ApiError.apply(this,arguments);this.name="NotAuthorizedError"}util.inherits(NotAuthorizedError,ApiError);function NotAuthenticatedError(){this.defaultMessage="Authentication failed";NotAuthorizedError.apply(this,arguments);this.name="NotAuthenticatedError"}util.inherits(NotAuthenticatedError,NotAuthorizedError);function TargetError(){ApiError.apply(this,arguments);this.name="TargetError"}util.inherits(TargetError,ApiError);function buildError(res){var ErrorType=ApiError;if(res){var statusCode=res.statusCode;var errorId;if(res&&res.body&&res.body.response&&res.body.response){errorId=res.body.response.error_id}if(statusCode||errorId){if(statusCode===401||errorId==="NOAUTH"){ErrorType=NotAuthenticatedError}else if(statusCode===403||errorId==="UNAUTH"){ErrorType=NotAuthorizedError}}}return new ErrorType(res)}function statusOk(body){return body&&body.response&&body.response.status==="OK"}function extend(ns){ns=ns||{};ns.statusOk=statusOk;ns.ApiError=ApiError;ns.NotAuthorizedError=NotAuthorizedError;ns.NotAuthenticatedError=NotAuthenticatedError;ns.TargetError=TargetError;ns.buildError=buildError;return ns}module.exports={statusOk:statusOk,ApiError:ApiError,NotAuthorizedError:NotAuthorizedError,NotAuthenticatedError:NotAuthenticatedError,TargetError:TargetError,buildError:buildError,extend:extend}},{lodash:197,util:191}],196:[function(require,module,exports){var request=require("request");var Promise=require("q").Promise;function Request(opts){return new Promise(function(resolve,reject){request(opts,function(err,res){if(err){reject(err)}else{resolve(res)}})})}module.exports=Request},{q:198,request:204}],197:[function(require,module,exports){(function(global){(function(){var undefined;var arrayPool=[],objectPool=[];var idCounter=0;var keyPrefix=+new Date+"";var largeArraySize=75;var maxPoolSize=40;var whitespace=" \f \ufeff"+"\n\r\u2028\u2029"+" ";var reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var reFlags=/\w*$/;var reFuncName=/^\s*function[ \n\r\t]+\w/;var reInterpolate=/<%=([\s\S]+?)%>/g;var reLeadingSpacesAndZeros=RegExp("^["+whitespace+"]*0+(?=.$)");var reNoMatch=/($^)/;var reThis=/\bthis\b/;var reUnescapedString=/['\n\r\t\u2028\u2029\\]/g;var contextProps=["Array","Boolean","Date","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"];var templateCounter=0;var argsClass="[object Arguments]",arrayClass="[object Array]",boolClass="[object Boolean]",dateClass="[object Date]",funcClass="[object Function]",numberClass="[object Number]",objectClass="[object Object]",regexpClass="[object RegExp]",stringClass="[object String]";var cloneableClasses={};cloneableClasses[funcClass]=false;cloneableClasses[argsClass]=cloneableClasses[arrayClass]=cloneableClasses[boolClass]=cloneableClasses[dateClass]=cloneableClasses[numberClass]=cloneableClasses[objectClass]=cloneableClasses[regexpClass]=cloneableClasses[stringClass]=true;var debounceOptions={leading:false,maxWait:0,trailing:false};var descriptor={configurable:false,enumerable:false,value:null,writable:false};var objectTypes={"boolean":false,"function":true,object:true,number:false,string:false,undefined:false};var stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};var root=objectTypes[typeof window]&&window||this;var freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports;var freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module;var moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports;var freeGlobal=objectTypes[typeof global]&&global;if(freeGlobal&&(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal)){root=freeGlobal}function baseIndexOf(array,value,fromIndex){var index=(fromIndex||0)-1,length=array?array.length:0;while(++index<length){if(array[index]===value){return index}}return-1}function cacheIndexOf(cache,value){var type=typeof value;cache=cache.cache;if(type=="boolean"||value==null){return cache[value]?0:-1}if(type!="number"&&type!="string"){type="object"}var key=type=="number"?value:keyPrefix+value;cache=(cache=cache[type])&&cache[key];return type=="object"?cache&&baseIndexOf(cache,value)>-1?0:-1:cache?0:-1}function cachePush(value){var cache=this.cache,type=typeof value;if(type=="boolean"||value==null){cache[value]=true}else{if(type!="number"&&type!="string"){type="object"}var key=type=="number"?value:keyPrefix+value,typeCache=cache[type]||(cache[type]={});if(type=="object"){(typeCache[key]||(typeCache[key]=[])).push(value)}else{typeCache[key]=true}}}function charAtCallback(value){return value.charCodeAt(0)}function compareAscending(a,b){var ac=a.criteria,bc=b.criteria,index=-1,length=ac.length;while(++index<length){var value=ac[index],other=bc[index];if(value!==other){if(value>other||typeof value=="undefined"){return 1}if(value<other||typeof other=="undefined"){return-1}}}return a.index-b.index}function createCache(array){var index=-1,length=array.length,first=array[0],mid=array[length/2|0],last=array[length-1];if(first&&typeof first=="object"&&mid&&typeof mid=="object"&&last&&typeof last=="object"){return false}var cache=getObject();cache["false"]=cache["null"]=cache["true"]=cache["undefined"]=false;var result=getObject();result.array=array;result.cache=cache;result.push=cachePush;while(++index<length){result.push(array[index])}return result}function escapeStringChar(match){return"\\"+stringEscapes[match]}function getArray(){return arrayPool.pop()||[]}function getObject(){return objectPool.pop()||{array:null,cache:null,criteria:null,"false":false,index:0,"null":false,number:null,object:null,push:null,string:null,"true":false,undefined:false,value:null}}function releaseArray(array){array.length=0;if(arrayPool.length<maxPoolSize){arrayPool.push(array)}}function releaseObject(object){var cache=object.cache;if(cache){releaseObject(cache)}object.array=object.cache=object.criteria=object.object=object.number=object.string=object.value=null;if(objectPool.length<maxPoolSize){objectPool.push(object)}}function slice(array,start,end){start||(start=0);if(typeof end=="undefined"){end=array?array.length:0}var index=-1,length=end-start||0,result=Array(length<0?0:length);while(++index<length){result[index]=array[start+index]}return result}function runInContext(context){context=context?_.defaults(root.Object(),context,_.pick(root,contextProps)):root;var Array=context.Array,Boolean=context.Boolean,Date=context.Date,Function=context.Function,Math=context.Math,Number=context.Number,Object=context.Object,RegExp=context.RegExp,String=context.String,TypeError=context.TypeError;var arrayRef=[];var objectProto=Object.prototype;var oldDash=context._;var toString=objectProto.toString;var reNative=RegExp("^"+String(toString).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$");var ceil=Math.ceil,clearTimeout=context.clearTimeout,floor=Math.floor,fnToString=Function.prototype.toString,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,hasOwnProperty=objectProto.hasOwnProperty,push=arrayRef.push,setTimeout=context.setTimeout,splice=arrayRef.splice,unshift=arrayRef.unshift;var defineProperty=function(){try{var o={},func=isNative(func=Object.defineProperty)&&func,result=func(o,o,o)&&func}catch(e){}return result}();var nativeCreate=isNative(nativeCreate=Object.create)&&nativeCreate,nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeIsFinite=context.isFinite,nativeIsNaN=context.isNaN,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,nativeParseInt=context.parseInt,nativeRandom=Math.random;var ctorByClass={};ctorByClass[arrayClass]=Array;ctorByClass[boolClass]=Boolean;ctorByClass[dateClass]=Date;ctorByClass[funcClass]=Function;ctorByClass[objectClass]=Object;ctorByClass[numberClass]=Number;ctorByClass[regexpClass]=RegExp;ctorByClass[stringClass]=String;function lodash(value){return value&&typeof value=="object"&&!isArray(value)&&hasOwnProperty.call(value,"__wrapped__")?value:new lodashWrapper(value)}function lodashWrapper(value,chainAll){this.__chain__=!!chainAll;this.__wrapped__=value}lodashWrapper.prototype=lodash.prototype;var support=lodash.support={};support.funcDecomp=!isNative(context.WinRTError)&&reThis.test(runInContext);support.funcNames=typeof Function.name=="string";lodash.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:reInterpolate,variable:"",imports:{_:lodash}};function baseBind(bindData){var func=bindData[0],partialArgs=bindData[2],thisArg=bindData[4];function bound(){if(partialArgs){var args=slice(partialArgs);push.apply(args,arguments)}if(this instanceof bound){var thisBinding=baseCreate(func.prototype),result=func.apply(thisBinding,args||arguments);return isObject(result)?result:thisBinding}return func.apply(thisArg,args||arguments)}setBindData(bound,bindData);return bound}function baseClone(value,isDeep,callback,stackA,stackB){if(callback){var result=callback(value);if(typeof result!="undefined"){return result}}var isObj=isObject(value);if(isObj){var className=toString.call(value);if(!cloneableClasses[className]){return value}var ctor=ctorByClass[className];switch(className){case boolClass:case dateClass:return new ctor(+value);case numberClass:case stringClass:return new ctor(value);case regexpClass:result=ctor(value.source,reFlags.exec(value));result.lastIndex=value.lastIndex;return result}}else{return value}var isArr=isArray(value);if(isDeep){var initedStack=!stackA;stackA||(stackA=getArray());stackB||(stackB=getArray());var length=stackA.length;while(length--){if(stackA[length]==value){return stackB[length]}}result=isArr?ctor(value.length):{}}else{result=isArr?slice(value):assign({},value)}if(isArr){if(hasOwnProperty.call(value,"index")){result.index=value.index}if(hasOwnProperty.call(value,"input")){result.input=value.input}}if(!isDeep){return result}stackA.push(value);stackB.push(result);(isArr?forEach:forOwn)(value,function(objValue,key){result[key]=baseClone(objValue,isDeep,callback,stackA,stackB)});if(initedStack){releaseArray(stackA);releaseArray(stackB)}return result}function baseCreate(prototype,properties){return isObject(prototype)?nativeCreate(prototype):{}}if(!nativeCreate){baseCreate=function(){function Object(){}return function(prototype){if(isObject(prototype)){Object.prototype=prototype;var result=new Object;Object.prototype=null}return result||context.Object()}}()}function baseCreateCallback(func,thisArg,argCount){if(typeof func!="function"){return identity}if(typeof thisArg=="undefined"||!("prototype"in func)){return func}var bindData=func.__bindData__;if(typeof bindData=="undefined"){if(support.funcNames){bindData=!func.name}bindData=bindData||!support.funcDecomp;if(!bindData){var source=fnToString.call(func);if(!support.funcNames){bindData=!reFuncName.test(source)}if(!bindData){bindData=reThis.test(source);setBindData(func,bindData)}}}if(bindData===false||bindData!==true&&bindData[1]&1){return func}switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 2:return function(a,b){return func.call(thisArg,a,b)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)}}return bind(func,thisArg)}function baseCreateWrapper(bindData){var func=bindData[0],bitmask=bindData[1],partialArgs=bindData[2],partialRightArgs=bindData[3],thisArg=bindData[4],arity=bindData[5];var isBind=bitmask&1,isBindKey=bitmask&2,isCurry=bitmask&4,isCurryBound=bitmask&8,key=func;function bound(){var thisBinding=isBind?thisArg:this;if(partialArgs){var args=slice(partialArgs);push.apply(args,arguments)}if(partialRightArgs||isCurry){args||(args=slice(arguments));if(partialRightArgs){push.apply(args,partialRightArgs)}if(isCurry&&args.length<arity){bitmask|=16&~32;return baseCreateWrapper([func,isCurryBound?bitmask:bitmask&~3,args,null,thisArg,arity])}}args||(args=arguments);if(isBindKey){func=thisBinding[key]}if(this instanceof bound){thisBinding=baseCreate(func.prototype);var result=func.apply(thisBinding,args);return isObject(result)?result:thisBinding}return func.apply(thisBinding,args)}setBindData(bound,bindData);return bound}function baseDifference(array,values){var index=-1,indexOf=getIndexOf(),length=array?array.length:0,isLarge=length>=largeArraySize&&indexOf===baseIndexOf,result=[];if(isLarge){var cache=createCache(values);if(cache){indexOf=cacheIndexOf;values=cache}else{isLarge=false}}while(++index<length){var value=array[index];if(indexOf(values,value)<0){result.push(value)}}if(isLarge){releaseObject(values)}return result}function baseFlatten(array,isShallow,isStrict,fromIndex){var index=(fromIndex||0)-1,length=array?array.length:0,result=[];while(++index<length){var value=array[index];if(value&&typeof value=="object"&&typeof value.length=="number"&&(isArray(value)||isArguments(value))){if(!isShallow){value=baseFlatten(value,isShallow,isStrict)}var valIndex=-1,valLength=value.length,resIndex=result.length;result.length+=valLength;while(++valIndex<valLength){result[resIndex++]=value[valIndex]}}else if(!isStrict){result.push(value)}}return result}function baseIsEqual(a,b,callback,isWhere,stackA,stackB){if(callback){var result=callback(a,b);if(typeof result!="undefined"){return!!result}}if(a===b){return a!==0||1/a==1/b}var type=typeof a,otherType=typeof b;if(a===a&&!(a&&objectTypes[type])&&!(b&&objectTypes[otherType])){return false}if(a==null||b==null){return a===b}var className=toString.call(a),otherClass=toString.call(b);if(className==argsClass){className=objectClass}if(otherClass==argsClass){otherClass=objectClass}if(className!=otherClass){return false}switch(className){case boolClass:case dateClass:return+a==+b;case numberClass:return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case regexpClass:case stringClass:return a==String(b)}var isArr=className==arrayClass;if(!isArr){var aWrapped=hasOwnProperty.call(a,"__wrapped__"),bWrapped=hasOwnProperty.call(b,"__wrapped__");if(aWrapped||bWrapped){return baseIsEqual(aWrapped?a.__wrapped__:a,bWrapped?b.__wrapped__:b,callback,isWhere,stackA,stackB)}if(className!=objectClass){return false}var ctorA=a.constructor,ctorB=b.constructor;if(ctorA!=ctorB&&!(isFunction(ctorA)&&ctorA instanceof ctorA&&isFunction(ctorB)&&ctorB instanceof ctorB)&&("constructor"in a&&"constructor"in b)){return false}}var initedStack=!stackA;stackA||(stackA=getArray());stackB||(stackB=getArray());var length=stackA.length;while(length--){if(stackA[length]==a){return stackB[length]==b}}var size=0;result=true;stackA.push(a);stackB.push(b);if(isArr){length=a.length;size=b.length;result=size==length;if(result||isWhere){while(size--){var index=length,value=b[size];if(isWhere){while(index--){if(result=baseIsEqual(a[index],value,callback,isWhere,stackA,stackB)){break}}}else if(!(result=baseIsEqual(a[size],value,callback,isWhere,stackA,stackB))){break}}}}else{forIn(b,function(value,key,b){if(hasOwnProperty.call(b,key)){size++;return result=hasOwnProperty.call(a,key)&&baseIsEqual(a[key],value,callback,isWhere,stackA,stackB)}});if(result&&!isWhere){forIn(a,function(value,key,a){if(hasOwnProperty.call(a,key)){return result=--size>-1}})}}stackA.pop();stackB.pop();if(initedStack){releaseArray(stackA);releaseArray(stackB)}return result}function baseMerge(object,source,callback,stackA,stackB){(isArray(source)?forEach:forOwn)(source,function(source,key){var found,isArr,result=source,value=object[key];if(source&&((isArr=isArray(source))||isPlainObject(source))){var stackLength=stackA.length;while(stackLength--){if(found=stackA[stackLength]==source){value=stackB[stackLength];break}}if(!found){var isShallow;if(callback){result=callback(value,source);if(isShallow=typeof result!="undefined"){value=result}}if(!isShallow){value=isArr?isArray(value)?value:[]:isPlainObject(value)?value:{}}stackA.push(source);stackB.push(value);if(!isShallow){baseMerge(value,source,callback,stackA,stackB)}}}else{if(callback){result=callback(value,source);if(typeof result=="undefined"){result=source}}if(typeof result!="undefined"){value=result}}object[key]=value})}function baseRandom(min,max){return min+floor(nativeRandom()*(max-min+1))}function baseUniq(array,isSorted,callback){var index=-1,indexOf=getIndexOf(),length=array?array.length:0,result=[];var isLarge=!isSorted&&length>=largeArraySize&&indexOf===baseIndexOf,seen=callback||isLarge?getArray():result;if(isLarge){var cache=createCache(seen);indexOf=cacheIndexOf;seen=cache}while(++index<length){var value=array[index],computed=callback?callback(value,index,array):value;if(isSorted?!index||seen[seen.length-1]!==computed:indexOf(seen,computed)<0){if(callback||isLarge){seen.push(computed)}result.push(value)}}if(isLarge){releaseArray(seen.array);releaseObject(seen)}else if(callback){releaseArray(seen)}return result}function createAggregator(setter){return function(collection,callback,thisArg){var result={};callback=lodash.createCallback(callback,thisArg,3);var index=-1,length=collection?collection.length:0;if(typeof length=="number"){while(++index<length){var value=collection[index];setter(result,value,callback(value,index,collection),collection)}}else{forOwn(collection,function(value,key,collection){setter(result,value,callback(value,key,collection),collection)})}return result}}function createWrapper(func,bitmask,partialArgs,partialRightArgs,thisArg,arity){var isBind=bitmask&1,isBindKey=bitmask&2,isCurry=bitmask&4,isCurryBound=bitmask&8,isPartial=bitmask&16,isPartialRight=bitmask&32;if(!isBindKey&&!isFunction(func)){throw new TypeError}if(isPartial&&!partialArgs.length){bitmask&=~16;isPartial=partialArgs=false}if(isPartialRight&&!partialRightArgs.length){ | |
bitmask&=~32;isPartialRight=partialRightArgs=false}var bindData=func&&func.__bindData__;if(bindData&&bindData!==true){bindData=slice(bindData);if(bindData[2]){bindData[2]=slice(bindData[2])}if(bindData[3]){bindData[3]=slice(bindData[3])}if(isBind&&!(bindData[1]&1)){bindData[4]=thisArg}if(!isBind&&bindData[1]&1){bitmask|=8}if(isCurry&&!(bindData[1]&4)){bindData[5]=arity}if(isPartial){push.apply(bindData[2]||(bindData[2]=[]),partialArgs)}if(isPartialRight){unshift.apply(bindData[3]||(bindData[3]=[]),partialRightArgs)}bindData[1]|=bitmask;return createWrapper.apply(null,bindData)}var creater=bitmask==1||bitmask===17?baseBind:baseCreateWrapper;return creater([func,bitmask,partialArgs,partialRightArgs,thisArg,arity])}function escapeHtmlChar(match){return htmlEscapes[match]}function getIndexOf(){var result=(result=lodash.indexOf)===indexOf?baseIndexOf:result;return result}function isNative(value){return typeof value=="function"&&reNative.test(value)}var setBindData=!defineProperty?noop:function(func,value){descriptor.value=value;defineProperty(func,"__bindData__",descriptor)};function shimIsPlainObject(value){var ctor,result;if(!(value&&toString.call(value)==objectClass)||(ctor=value.constructor,isFunction(ctor)&&!(ctor instanceof ctor))){return false}forIn(value,function(value,key){result=key});return typeof result=="undefined"||hasOwnProperty.call(value,result)}function unescapeHtmlChar(match){return htmlUnescapes[match]}function isArguments(value){return value&&typeof value=="object"&&typeof value.length=="number"&&toString.call(value)==argsClass||false}var isArray=nativeIsArray||function(value){return value&&typeof value=="object"&&typeof value.length=="number"&&toString.call(value)==arrayClass||false};var shimKeys=function(object){var index,iterable=object,result=[];if(!iterable)return result;if(!objectTypes[typeof object])return result;for(index in iterable){if(hasOwnProperty.call(iterable,index)){result.push(index)}}return result};var keys=!nativeKeys?shimKeys:function(object){if(!isObject(object)){return[]}return nativeKeys(object)};var htmlEscapes={"&":"&","<":"<",">":">",'"':""","'":"'"};var htmlUnescapes=invert(htmlEscapes);var reEscapedHtml=RegExp("("+keys(htmlUnescapes).join("|")+")","g"),reUnescapedHtml=RegExp("["+keys(htmlEscapes).join("")+"]","g");var assign=function(object,source,guard){var index,iterable=object,result=iterable;if(!iterable)return result;var args=arguments,argsIndex=0,argsLength=typeof guard=="number"?2:args.length;if(argsLength>3&&typeof args[argsLength-2]=="function"){var callback=baseCreateCallback(args[--argsLength-1],args[argsLength--],2)}else if(argsLength>2&&typeof args[argsLength-1]=="function"){callback=args[--argsLength]}while(++argsIndex<argsLength){iterable=args[argsIndex];if(iterable&&objectTypes[typeof iterable]){var ownIndex=-1,ownProps=objectTypes[typeof iterable]&&keys(iterable),length=ownProps?ownProps.length:0;while(++ownIndex<length){index=ownProps[ownIndex];result[index]=callback?callback(result[index],iterable[index]):iterable[index]}}}return result};function clone(value,isDeep,callback,thisArg){if(typeof isDeep!="boolean"&&isDeep!=null){thisArg=callback;callback=isDeep;isDeep=false}return baseClone(value,isDeep,typeof callback=="function"&&baseCreateCallback(callback,thisArg,1))}function cloneDeep(value,callback,thisArg){return baseClone(value,true,typeof callback=="function"&&baseCreateCallback(callback,thisArg,1))}function create(prototype,properties){var result=baseCreate(prototype);return properties?assign(result,properties):result}var defaults=function(object,source,guard){var index,iterable=object,result=iterable;if(!iterable)return result;var args=arguments,argsIndex=0,argsLength=typeof guard=="number"?2:args.length;while(++argsIndex<argsLength){iterable=args[argsIndex];if(iterable&&objectTypes[typeof iterable]){var ownIndex=-1,ownProps=objectTypes[typeof iterable]&&keys(iterable),length=ownProps?ownProps.length:0;while(++ownIndex<length){index=ownProps[ownIndex];if(typeof result[index]=="undefined")result[index]=iterable[index]}}}return result};function findKey(object,callback,thisArg){var result;callback=lodash.createCallback(callback,thisArg,3);forOwn(object,function(value,key,object){if(callback(value,key,object)){result=key;return false}});return result}function findLastKey(object,callback,thisArg){var result;callback=lodash.createCallback(callback,thisArg,3);forOwnRight(object,function(value,key,object){if(callback(value,key,object)){result=key;return false}});return result}var forIn=function(collection,callback,thisArg){var index,iterable=collection,result=iterable;if(!iterable)return result;if(!objectTypes[typeof iterable])return result;callback=callback&&typeof thisArg=="undefined"?callback:baseCreateCallback(callback,thisArg,3);for(index in iterable){if(callback(iterable[index],index,collection)===false)return result}return result};function forInRight(object,callback,thisArg){var pairs=[];forIn(object,function(value,key){pairs.push(key,value)});var length=pairs.length;callback=baseCreateCallback(callback,thisArg,3);while(length--){if(callback(pairs[length--],pairs[length],object)===false){break}}return object}var forOwn=function(collection,callback,thisArg){var index,iterable=collection,result=iterable;if(!iterable)return result;if(!objectTypes[typeof iterable])return result;callback=callback&&typeof thisArg=="undefined"?callback:baseCreateCallback(callback,thisArg,3);var ownIndex=-1,ownProps=objectTypes[typeof iterable]&&keys(iterable),length=ownProps?ownProps.length:0;while(++ownIndex<length){index=ownProps[ownIndex];if(callback(iterable[index],index,collection)===false)return result}return result};function forOwnRight(object,callback,thisArg){var props=keys(object),length=props.length;callback=baseCreateCallback(callback,thisArg,3);while(length--){var key=props[length];if(callback(object[key],key,object)===false){break}}return object}function functions(object){var result=[];forIn(object,function(value,key){if(isFunction(value)){result.push(key)}});return result.sort()}function has(object,key){return object?hasOwnProperty.call(object,key):false}function invert(object){var index=-1,props=keys(object),length=props.length,result={};while(++index<length){var key=props[index];result[object[key]]=key}return result}function isBoolean(value){return value===true||value===false||value&&typeof value=="object"&&toString.call(value)==boolClass||false}function isDate(value){return value&&typeof value=="object"&&toString.call(value)==dateClass||false}function isElement(value){return value&&value.nodeType===1||false}function isEmpty(value){var result=true;if(!value){return result}var className=toString.call(value),length=value.length;if(className==arrayClass||className==stringClass||className==argsClass||className==objectClass&&typeof length=="number"&&isFunction(value.splice)){return!length}forOwn(value,function(){return result=false});return result}function isEqual(a,b,callback,thisArg){return baseIsEqual(a,b,typeof callback=="function"&&baseCreateCallback(callback,thisArg,2))}function isFinite(value){return nativeIsFinite(value)&&!nativeIsNaN(parseFloat(value))}function isFunction(value){return typeof value=="function"}function isObject(value){return!!(value&&objectTypes[typeof value])}function isNaN(value){return isNumber(value)&&value!=+value}function isNull(value){return value===null}function isNumber(value){return typeof value=="number"||value&&typeof value=="object"&&toString.call(value)==numberClass||false}var isPlainObject=!getPrototypeOf?shimIsPlainObject:function(value){if(!(value&&toString.call(value)==objectClass)){return false}var valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)};function isRegExp(value){return value&&typeof value=="object"&&toString.call(value)==regexpClass||false}function isString(value){return typeof value=="string"||value&&typeof value=="object"&&toString.call(value)==stringClass||false}function isUndefined(value){return typeof value=="undefined"}function mapValues(object,callback,thisArg){var result={};callback=lodash.createCallback(callback,thisArg,3);forOwn(object,function(value,key,object){result[key]=callback(value,key,object)});return result}function merge(object){var args=arguments,length=2;if(!isObject(object)){return object}if(typeof args[2]!="number"){length=args.length}if(length>3&&typeof args[length-2]=="function"){var callback=baseCreateCallback(args[--length-1],args[length--],2)}else if(length>2&&typeof args[length-1]=="function"){callback=args[--length]}var sources=slice(arguments,1,length),index=-1,stackA=getArray(),stackB=getArray();while(++index<length){baseMerge(object,sources[index],callback,stackA,stackB)}releaseArray(stackA);releaseArray(stackB);return object}function omit(object,callback,thisArg){var result={};if(typeof callback!="function"){var props=[];forIn(object,function(value,key){props.push(key)});props=baseDifference(props,baseFlatten(arguments,true,false,1));var index=-1,length=props.length;while(++index<length){var key=props[index];result[key]=object[key]}}else{callback=lodash.createCallback(callback,thisArg,3);forIn(object,function(value,key,object){if(!callback(value,key,object)){result[key]=value}})}return result}function pairs(object){var index=-1,props=keys(object),length=props.length,result=Array(length);while(++index<length){var key=props[index];result[index]=[key,object[key]]}return result}function pick(object,callback,thisArg){var result={};if(typeof callback!="function"){var index=-1,props=baseFlatten(arguments,true,false,1),length=isObject(object)?props.length:0;while(++index<length){var key=props[index];if(key in object){result[key]=object[key]}}}else{callback=lodash.createCallback(callback,thisArg,3);forIn(object,function(value,key,object){if(callback(value,key,object)){result[key]=value}})}return result}function transform(object,callback,accumulator,thisArg){var isArr=isArray(object);if(accumulator==null){if(isArr){accumulator=[]}else{var ctor=object&&object.constructor,proto=ctor&&ctor.prototype;accumulator=baseCreate(proto)}}if(callback){callback=lodash.createCallback(callback,thisArg,4);(isArr?forEach:forOwn)(object,function(value,index,object){return callback(accumulator,value,index,object)})}return accumulator}function values(object){var index=-1,props=keys(object),length=props.length,result=Array(length);while(++index<length){result[index]=object[props[index]]}return result}function at(collection){var args=arguments,index=-1,props=baseFlatten(args,true,false,1),length=args[2]&&args[2][args[1]]===collection?1:props.length,result=Array(length);while(++index<length){result[index]=collection[props[index]]}return result}function contains(collection,target,fromIndex){var index=-1,indexOf=getIndexOf(),length=collection?collection.length:0,result=false;fromIndex=(fromIndex<0?nativeMax(0,length+fromIndex):fromIndex)||0;if(isArray(collection)){result=indexOf(collection,target,fromIndex)>-1}else if(typeof length=="number"){result=(isString(collection)?collection.indexOf(target,fromIndex):indexOf(collection,target,fromIndex))>-1}else{forOwn(collection,function(value){if(++index>=fromIndex){return!(result=value===target)}})}return result}var countBy=createAggregator(function(result,value,key){hasOwnProperty.call(result,key)?result[key]++:result[key]=1});function every(collection,callback,thisArg){var result=true;callback=lodash.createCallback(callback,thisArg,3);var index=-1,length=collection?collection.length:0;if(typeof length=="number"){while(++index<length){if(!(result=!!callback(collection[index],index,collection))){break}}}else{forOwn(collection,function(value,index,collection){return result=!!callback(value,index,collection)})}return result}function filter(collection,callback,thisArg){var result=[];callback=lodash.createCallback(callback,thisArg,3);var index=-1,length=collection?collection.length:0;if(typeof length=="number"){while(++index<length){var value=collection[index];if(callback(value,index,collection)){result.push(value)}}}else{forOwn(collection,function(value,index,collection){if(callback(value,index,collection)){result.push(value)}})}return result}function find(collection,callback,thisArg){callback=lodash.createCallback(callback,thisArg,3);var index=-1,length=collection?collection.length:0;if(typeof length=="number"){while(++index<length){var value=collection[index];if(callback(value,index,collection)){return value}}}else{var result;forOwn(collection,function(value,index,collection){if(callback(value,index,collection)){result=value;return false}});return result}}function findLast(collection,callback,thisArg){var result;callback=lodash.createCallback(callback,thisArg,3);forEachRight(collection,function(value,index,collection){if(callback(value,index,collection)){result=value;return false}});return result}function forEach(collection,callback,thisArg){var index=-1,length=collection?collection.length:0;callback=callback&&typeof thisArg=="undefined"?callback:baseCreateCallback(callback,thisArg,3);if(typeof length=="number"){while(++index<length){if(callback(collection[index],index,collection)===false){break}}}else{forOwn(collection,callback)}return collection}function forEachRight(collection,callback,thisArg){var length=collection?collection.length:0;callback=callback&&typeof thisArg=="undefined"?callback:baseCreateCallback(callback,thisArg,3);if(typeof length=="number"){while(length--){if(callback(collection[length],length,collection)===false){break}}}else{var props=keys(collection);length=props.length;forOwn(collection,function(value,key,collection){key=props?props[--length]:--length;return callback(collection[key],key,collection)})}return collection}var groupBy=createAggregator(function(result,value,key){(hasOwnProperty.call(result,key)?result[key]:result[key]=[]).push(value)});var indexBy=createAggregator(function(result,value,key){result[key]=value});function invoke(collection,methodName){var args=slice(arguments,2),index=-1,isFunc=typeof methodName=="function",length=collection?collection.length:0,result=Array(typeof length=="number"?length:0);forEach(collection,function(value){result[++index]=(isFunc?methodName:value[methodName]).apply(value,args)});return result}function map(collection,callback,thisArg){var index=-1,length=collection?collection.length:0;callback=lodash.createCallback(callback,thisArg,3);if(typeof length=="number"){var result=Array(length);while(++index<length){result[index]=callback(collection[index],index,collection)}}else{result=[];forOwn(collection,function(value,key,collection){result[++index]=callback(value,key,collection)})}return result}function max(collection,callback,thisArg){var computed=-Infinity,result=computed;if(typeof callback!="function"&&thisArg&&thisArg[callback]===collection){callback=null}if(callback==null&&isArray(collection)){var index=-1,length=collection.length;while(++index<length){var value=collection[index];if(value>result){result=value}}}else{callback=callback==null&&isString(collection)?charAtCallback:lodash.createCallback(callback,thisArg,3);forEach(collection,function(value,index,collection){var current=callback(value,index,collection);if(current>computed){computed=current;result=value}})}return result}function min(collection,callback,thisArg){var computed=Infinity,result=computed;if(typeof callback!="function"&&thisArg&&thisArg[callback]===collection){callback=null}if(callback==null&&isArray(collection)){var index=-1,length=collection.length;while(++index<length){var value=collection[index];if(value<result){result=value}}}else{callback=callback==null&&isString(collection)?charAtCallback:lodash.createCallback(callback,thisArg,3);forEach(collection,function(value,index,collection){var current=callback(value,index,collection);if(current<computed){computed=current;result=value}})}return result}var pluck=map;function reduce(collection,callback,accumulator,thisArg){if(!collection)return accumulator;var noaccum=arguments.length<3;callback=lodash.createCallback(callback,thisArg,4);var index=-1,length=collection.length;if(typeof length=="number"){if(noaccum){accumulator=collection[++index]}while(++index<length){accumulator=callback(accumulator,collection[index],index,collection)}}else{forOwn(collection,function(value,index,collection){accumulator=noaccum?(noaccum=false,value):callback(accumulator,value,index,collection)})}return accumulator}function reduceRight(collection,callback,accumulator,thisArg){var noaccum=arguments.length<3;callback=lodash.createCallback(callback,thisArg,4);forEachRight(collection,function(value,index,collection){accumulator=noaccum?(noaccum=false,value):callback(accumulator,value,index,collection)});return accumulator}function reject(collection,callback,thisArg){callback=lodash.createCallback(callback,thisArg,3);return filter(collection,function(value,index,collection){return!callback(value,index,collection)})}function sample(collection,n,guard){if(collection&&typeof collection.length!="number"){collection=values(collection)}if(n==null||guard){return collection?collection[baseRandom(0,collection.length-1)]:undefined}var result=shuffle(collection);result.length=nativeMin(nativeMax(0,n),result.length);return result}function shuffle(collection){var index=-1,length=collection?collection.length:0,result=Array(typeof length=="number"?length:0);forEach(collection,function(value){var rand=baseRandom(0,++index);result[index]=result[rand];result[rand]=value});return result}function size(collection){var length=collection?collection.length:0;return typeof length=="number"?length:keys(collection).length}function some(collection,callback,thisArg){var result;callback=lodash.createCallback(callback,thisArg,3);var index=-1,length=collection?collection.length:0;if(typeof length=="number"){while(++index<length){if(result=callback(collection[index],index,collection)){break}}}else{forOwn(collection,function(value,index,collection){return!(result=callback(value,index,collection))})}return!!result}function sortBy(collection,callback,thisArg){var index=-1,isArr=isArray(callback),length=collection?collection.length:0,result=Array(typeof length=="number"?length:0);if(!isArr){callback=lodash.createCallback(callback,thisArg,3)}forEach(collection,function(value,key,collection){var object=result[++index]=getObject();if(isArr){object.criteria=map(callback,function(key){return value[key]})}else{(object.criteria=getArray())[0]=callback(value,key,collection)}object.index=index;object.value=value});length=result.length;result.sort(compareAscending);while(length--){var object=result[length];result[length]=object.value;if(!isArr){releaseArray(object.criteria)}releaseObject(object)}return result}function toArray(collection){if(collection&&typeof collection.length=="number"){return slice(collection)}return values(collection)}var where=filter;function compact(array){var index=-1,length=array?array.length:0,result=[];while(++index<length){var value=array[index];if(value){result.push(value)}}return result}function difference(array){return baseDifference(array,baseFlatten(arguments,true,true,1))}function findIndex(array,callback,thisArg){var index=-1,length=array?array.length:0;callback=lodash.createCallback(callback,thisArg,3);while(++index<length){if(callback(array[index],index,array)){return index}}return-1}function findLastIndex(array,callback,thisArg){var length=array?array.length:0;callback=lodash.createCallback(callback,thisArg,3);while(length--){if(callback(array[length],length,array)){return length}}return-1}function first(array,callback,thisArg){var n=0,length=array?array.length:0;if(typeof callback!="number"&&callback!=null){var index=-1;callback=lodash.createCallback(callback,thisArg,3);while(++index<length&&callback(array[index],index,array)){n++}}else{n=callback;if(n==null||thisArg){return array?array[0]:undefined}}return slice(array,0,nativeMin(nativeMax(0,n),length))}function flatten(array,isShallow,callback,thisArg){if(typeof isShallow!="boolean"&&isShallow!=null){thisArg=callback;callback=typeof isShallow!="function"&&thisArg&&thisArg[isShallow]===array?null:isShallow;isShallow=false}if(callback!=null){array=map(array,callback,thisArg)}return baseFlatten(array,isShallow)}function indexOf(array,value,fromIndex){if(typeof fromIndex=="number"){var length=array?array.length:0;fromIndex=fromIndex<0?nativeMax(0,length+fromIndex):fromIndex||0}else if(fromIndex){var index=sortedIndex(array,value);return array[index]===value?index:-1}return baseIndexOf(array,value,fromIndex)}function initial(array,callback,thisArg){var n=0,length=array?array.length:0;if(typeof callback!="number"&&callback!=null){var index=length;callback=lodash.createCallback(callback,thisArg,3);while(index--&&callback(array[index],index,array)){n++}}else{n=callback==null||thisArg?1:callback||n}return slice(array,0,nativeMin(nativeMax(0,length-n),length))}function intersection(){var args=[],argsIndex=-1,argsLength=arguments.length,caches=getArray(),indexOf=getIndexOf(),trustIndexOf=indexOf===baseIndexOf,seen=getArray();while(++argsIndex<argsLength){var value=arguments[argsIndex];if(isArray(value)||isArguments(value)){args.push(value);caches.push(trustIndexOf&&value.length>=largeArraySize&&createCache(argsIndex?args[argsIndex]:seen))}}var array=args[0],index=-1,length=array?array.length:0,result=[];outer:while(++index<length){var cache=caches[0];value=array[index];if((cache?cacheIndexOf(cache,value):indexOf(seen,value))<0){argsIndex=argsLength;(cache||seen).push(value);while(--argsIndex){cache=caches[argsIndex];if((cache?cacheIndexOf(cache,value):indexOf(args[argsIndex],value))<0){continue outer}}result.push(value)}}while(argsLength--){cache=caches[argsLength];if(cache){releaseObject(cache)}}releaseArray(caches);releaseArray(seen);return result}function last(array,callback,thisArg){var n=0,length=array?array.length:0;if(typeof callback!="number"&&callback!=null){var index=length;callback=lodash.createCallback(callback,thisArg,3);while(index--&&callback(array[index],index,array)){n++}}else{n=callback;if(n==null||thisArg){return array?array[length-1]:undefined}}return slice(array,nativeMax(0,length-n))}function lastIndexOf(array,value,fromIndex){var index=array?array.length:0;if(typeof fromIndex=="number"){index=(fromIndex<0?nativeMax(0,index+fromIndex):nativeMin(fromIndex,index-1))+1}while(index--){if(array[index]===value){return index}}return-1}function pull(array){var args=arguments,argsIndex=0,argsLength=args.length,length=array?array.length:0;while(++argsIndex<argsLength){var index=-1,value=args[argsIndex];while(++index<length){if(array[index]===value){splice.call(array,index--,1);length--}}}return array}function range(start,end,step){start=+start||0;step=typeof step=="number"?step:+step||1;if(end==null){end=start;start=0}var index=-1,length=nativeMax(0,ceil((end-start)/(step||1))),result=Array(length);while(++index<length){result[index]=start;start+=step}return result}function remove(array,callback,thisArg){var index=-1,length=array?array.length:0,result=[];callback=lodash.createCallback(callback,thisArg,3);while(++index<length){var value=array[index];if(callback(value,index,array)){result.push(value);splice.call(array,index--,1);length--}}return result}function rest(array,callback,thisArg){if(typeof callback!="number"&&callback!=null){var n=0,index=-1,length=array?array.length:0;callback=lodash.createCallback(callback,thisArg,3);while(++index<length&&callback(array[index],index,array)){n++}}else{n=callback==null||thisArg?1:nativeMax(0,callback)}return slice(array,n)}function sortedIndex(array,value,callback,thisArg){var low=0,high=array?array.length:low;callback=callback?lodash.createCallback(callback,thisArg,1):identity;value=callback(value);while(low<high){var mid=low+high>>>1;callback(array[mid])<value?low=mid+1:high=mid}return low}function union(){return baseUniq(baseFlatten(arguments,true,true))}function uniq(array,isSorted,callback,thisArg){if(typeof isSorted!="boolean"&&isSorted!=null){thisArg=callback;callback=typeof isSorted!="function"&&thisArg&&thisArg[isSorted]===array?null:isSorted;isSorted=false}if(callback!=null){callback=lodash.createCallback(callback,thisArg,3)}return baseUniq(array,isSorted,callback)}function without(array){return baseDifference(array,slice(arguments,1))}function xor(){var index=-1,length=arguments.length;while(++index<length){var array=arguments[index];if(isArray(array)||isArguments(array)){var result=result?baseUniq(baseDifference(result,array).concat(baseDifference(array,result))):array}}return result||[]}function zip(){var array=arguments.length>1?arguments:arguments[0],index=-1,length=array?max(pluck(array,"length")):0,result=Array(length<0?0:length);while(++index<length){result[index]=pluck(array,index)}return result}function zipObject(keys,values){var index=-1,length=keys?keys.length:0,result={};if(!values&&length&&!isArray(keys[0])){values=[]}while(++index<length){var key=keys[index];if(values){result[key]=values[index]}else if(key){result[key[0]]=key[1]}}return result}function after(n,func){if(!isFunction(func)){throw new TypeError}return function(){if(--n<1){return func.apply(this,arguments)}}}function bind(func,thisArg){return arguments.length>2?createWrapper(func,17,slice(arguments,2),null,thisArg):createWrapper(func,1,null,null,thisArg)}function bindAll(object){var funcs=arguments.length>1?baseFlatten(arguments,true,false,1):functions(object),index=-1,length=funcs.length;while(++index<length){var key=funcs[index];object[key]=createWrapper(object[key],1,null,null,object)}return object}function bindKey(object,key){return arguments.length>2?createWrapper(key,19,slice(arguments,2),null,object):createWrapper(key,3,null,null,object)}function compose(){var funcs=arguments,length=funcs.length;while(length--){if(!isFunction(funcs[length])){throw new TypeError}}return function(){var args=arguments,length=funcs.length;while(length--){args=[funcs[length].apply(this,args)]}return args[0]}}function curry(func,arity){arity=typeof arity=="number"?arity:+arity||func.length;return createWrapper(func,4,null,null,null,arity)}function debounce(func,wait,options){var args,maxTimeoutId,result,stamp,thisArg,timeoutId,trailingCall,lastCalled=0,maxWait=false,trailing=true;if(!isFunction(func)){throw new TypeError}wait=nativeMax(0,wait)||0;if(options===true){var leading=true;trailing=false}else if(isObject(options)){leading=options.leading;maxWait="maxWait"in options&&(nativeMax(wait,options.maxWait)||0);trailing="trailing"in options?options.trailing:trailing}var delayed=function(){var remaining=wait-(now()-stamp);if(remaining<=0){if(maxTimeoutId){clearTimeout(maxTimeoutId)}var isCalled=trailingCall;maxTimeoutId=timeoutId=trailingCall=undefined;if(isCalled){lastCalled=now();result=func.apply(thisArg,args);if(!timeoutId&&!maxTimeoutId){args=thisArg=null}}}else{timeoutId=setTimeout(delayed,remaining)}};var maxDelayed=function(){if(timeoutId){clearTimeout(timeoutId)}maxTimeoutId=timeoutId=trailingCall=undefined;if(trailing||maxWait!==wait){lastCalled=now();result=func.apply(thisArg,args);if(!timeoutId&&!maxTimeoutId){args=thisArg=null}}};return function(){args=arguments;stamp=now();thisArg=this;trailingCall=trailing&&(timeoutId||!leading);if(maxWait===false){var leadingCall=leading&&!timeoutId}else{if(!maxTimeoutId&&!leading){lastCalled=stamp}var remaining=maxWait-(stamp-lastCalled),isCalled=remaining<=0;if(isCalled){if(maxTimeoutId){maxTimeoutId=clearTimeout(maxTimeoutId)}lastCalled=stamp;result=func.apply(thisArg,args)}else if(!maxTimeoutId){maxTimeoutId=setTimeout(maxDelayed,remaining)}}if(isCalled&&timeoutId){timeoutId=clearTimeout(timeoutId)}else if(!timeoutId&&wait!==maxWait){timeoutId=setTimeout(delayed,wait)}if(leadingCall){isCalled=true;result=func.apply(thisArg,args)}if(isCalled&&!timeoutId&&!maxTimeoutId){args=thisArg=null}return result}}function defer(func){if(!isFunction(func)){throw new TypeError}var args=slice(arguments,1);return setTimeout(function(){func.apply(undefined,args)},1)}function delay(func,wait){if(!isFunction(func)){throw new TypeError}var args=slice(arguments,2);return setTimeout(function(){func.apply(undefined,args)},wait)}function memoize(func,resolver){if(!isFunction(func)){throw new TypeError}var memoized=function(){var cache=memoized.cache,key=resolver?resolver.apply(this,arguments):keyPrefix+arguments[0];return hasOwnProperty.call(cache,key)?cache[key]:cache[key]=func.apply(this,arguments)};memoized.cache={};return memoized}function once(func){var ran,result;if(!isFunction(func)){throw new TypeError}return function(){if(ran){return result}ran=true;result=func.apply(this,arguments);func=null;return result}}function partial(func){return createWrapper(func,16,slice(arguments,1))}function partialRight(func){return createWrapper(func,32,null,slice(arguments,1))}function throttle(func,wait,options){var leading=true,trailing=true;if(!isFunction(func)){throw new TypeError}if(options===false){leading=false}else if(isObject(options)){leading="leading"in options?options.leading:leading;trailing="trailing"in options?options.trailing:trailing}debounceOptions.leading=leading;debounceOptions.maxWait=wait;debounceOptions.trailing=trailing;return debounce(func,wait,debounceOptions)}function wrap(value,wrapper){return createWrapper(wrapper,16,[value])}function constant(value){return function(){return value}}function createCallback(func,thisArg,argCount){var type=typeof func;if(func==null||type=="function"){return baseCreateCallback(func,thisArg,argCount)}if(type!="object"){return property(func)}var props=keys(func),key=props[0],a=func[key];if(props.length==1&&a===a&&!isObject(a)){return function(object){var b=object[key];return a===b&&(a!==0||1/a==1/b)}}return function(object){var length=props.length,result=false;while(length--){if(!(result=baseIsEqual(object[props[length]],func[props[length]],null,true))){break}}return result}}function escape(string){return string==null?"":String(string).replace(reUnescapedHtml,escapeHtmlChar)}function identity(value){return value}function mixin(object,source,options){var chain=true,methodNames=source&&functions(source);if(!source||!options&&!methodNames.length){if(options==null){options=source}ctor=lodashWrapper;source=object;object=lodash;methodNames=functions(source)}if(options===false){chain=false}else if(isObject(options)&&"chain"in options){chain=options.chain}var ctor=object,isFunc=isFunction(ctor);forEach(methodNames,function(methodName){var func=object[methodName]=source[methodName];if(isFunc){ctor.prototype[methodName]=function(){var chainAll=this.__chain__,value=this.__wrapped__,args=[value];push.apply(args,arguments);var result=func.apply(object,args);if(chain||chainAll){if(value===result&&isObject(result)){return this}result=new ctor(result);result.__chain__=chainAll}return result}}})}function noConflict(){context._=oldDash;return this}function noop(){}var now=isNative(now=Date.now)&&now||function(){return(new Date).getTime()};var parseInt=nativeParseInt(whitespace+"08")==8?nativeParseInt:function(value,radix){return nativeParseInt(isString(value)?value.replace(reLeadingSpacesAndZeros,""):value,radix||0)};function property(key){return function(object){return object[key]}}function random(min,max,floating){var noMin=min==null,noMax=max==null;if(floating==null){if(typeof min=="boolean"&&noMax){floating=min;min=1}else if(!noMax&&typeof max=="boolean"){floating=max;noMax=true}}if(noMin&&noMax){max=1}min=+min||0;if(noMax){max=min;min=0}else{max=+max||0}if(floating||min%1||max%1){var rand=nativeRandom();return nativeMin(min+rand*(max-min+parseFloat("1e-"+((rand+"").length-1))),max)}return baseRandom(min,max)}function result(object,key){if(object){var value=object[key];return isFunction(value)?object[key]():value}}function template(text,data,options){var settings=lodash.templateSettings;text=String(text||"");options=defaults({},options,settings);var imports=defaults({},options.imports,settings.imports),importsKeys=keys(imports),importsValues=values(imports); | |
var isEvaluating,index=0,interpolate=options.interpolate||reNoMatch,source="__p += '";var reDelimiters=RegExp((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g");text.replace(reDelimiters,function(match,escapeValue,interpolateValue,esTemplateValue,evaluateValue,offset){interpolateValue||(interpolateValue=esTemplateValue);source+=text.slice(index,offset).replace(reUnescapedString,escapeStringChar);if(escapeValue){source+="' +\n__e("+escapeValue+") +\n'"}if(evaluateValue){isEvaluating=true;source+="';\n"+evaluateValue+";\n__p += '"}if(interpolateValue){source+="' +\n((__t = ("+interpolateValue+")) == null ? '' : __t) +\n'"}index=offset+match.length;return match});source+="';\n";var variable=options.variable,hasVariable=variable;if(!hasVariable){variable="obj";source="with ("+variable+") {\n"+source+"\n}\n"}source=(isEvaluating?source.replace(reEmptyStringLeading,""):source).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;");source="function("+variable+") {\n"+(hasVariable?"":variable+" || ("+variable+" = {});\n")+"var __t, __p = '', __e = _.escape"+(isEvaluating?", __j = Array.prototype.join;\n"+"function print() { __p += __j.call(arguments, '') }\n":";\n")+source+"return __p\n}";var sourceURL="\n/*\n//# sourceURL="+(options.sourceURL||"/lodash/template/source["+templateCounter++ +"]")+"\n*/";try{var result=Function(importsKeys,"return "+source+sourceURL).apply(undefined,importsValues)}catch(e){e.source=source;throw e}if(data){return result(data)}result.source=source;return result}function times(n,callback,thisArg){n=(n=+n)>-1?n:0;var index=-1,result=Array(n);callback=baseCreateCallback(callback,thisArg,1);while(++index<n){result[index]=callback(index)}return result}function unescape(string){return string==null?"":String(string).replace(reEscapedHtml,unescapeHtmlChar)}function uniqueId(prefix){var id=++idCounter;return String(prefix==null?"":prefix)+id}function chain(value){value=new lodashWrapper(value);value.__chain__=true;return value}function tap(value,interceptor){interceptor(value);return value}function wrapperChain(){this.__chain__=true;return this}function wrapperToString(){return String(this.__wrapped__)}function wrapperValueOf(){return this.__wrapped__}lodash.after=after;lodash.assign=assign;lodash.at=at;lodash.bind=bind;lodash.bindAll=bindAll;lodash.bindKey=bindKey;lodash.chain=chain;lodash.compact=compact;lodash.compose=compose;lodash.constant=constant;lodash.countBy=countBy;lodash.create=create;lodash.createCallback=createCallback;lodash.curry=curry;lodash.debounce=debounce;lodash.defaults=defaults;lodash.defer=defer;lodash.delay=delay;lodash.difference=difference;lodash.filter=filter;lodash.flatten=flatten;lodash.forEach=forEach;lodash.forEachRight=forEachRight;lodash.forIn=forIn;lodash.forInRight=forInRight;lodash.forOwn=forOwn;lodash.forOwnRight=forOwnRight;lodash.functions=functions;lodash.groupBy=groupBy;lodash.indexBy=indexBy;lodash.initial=initial;lodash.intersection=intersection;lodash.invert=invert;lodash.invoke=invoke;lodash.keys=keys;lodash.map=map;lodash.mapValues=mapValues;lodash.max=max;lodash.memoize=memoize;lodash.merge=merge;lodash.min=min;lodash.omit=omit;lodash.once=once;lodash.pairs=pairs;lodash.partial=partial;lodash.partialRight=partialRight;lodash.pick=pick;lodash.pluck=pluck;lodash.property=property;lodash.pull=pull;lodash.range=range;lodash.reject=reject;lodash.remove=remove;lodash.rest=rest;lodash.shuffle=shuffle;lodash.sortBy=sortBy;lodash.tap=tap;lodash.throttle=throttle;lodash.times=times;lodash.toArray=toArray;lodash.transform=transform;lodash.union=union;lodash.uniq=uniq;lodash.values=values;lodash.where=where;lodash.without=without;lodash.wrap=wrap;lodash.xor=xor;lodash.zip=zip;lodash.zipObject=zipObject;lodash.collect=map;lodash.drop=rest;lodash.each=forEach;lodash.eachRight=forEachRight;lodash.extend=assign;lodash.methods=functions;lodash.object=zipObject;lodash.select=filter;lodash.tail=rest;lodash.unique=uniq;lodash.unzip=zip;mixin(lodash);lodash.clone=clone;lodash.cloneDeep=cloneDeep;lodash.contains=contains;lodash.escape=escape;lodash.every=every;lodash.find=find;lodash.findIndex=findIndex;lodash.findKey=findKey;lodash.findLast=findLast;lodash.findLastIndex=findLastIndex;lodash.findLastKey=findLastKey;lodash.has=has;lodash.identity=identity;lodash.indexOf=indexOf;lodash.isArguments=isArguments;lodash.isArray=isArray;lodash.isBoolean=isBoolean;lodash.isDate=isDate;lodash.isElement=isElement;lodash.isEmpty=isEmpty;lodash.isEqual=isEqual;lodash.isFinite=isFinite;lodash.isFunction=isFunction;lodash.isNaN=isNaN;lodash.isNull=isNull;lodash.isNumber=isNumber;lodash.isObject=isObject;lodash.isPlainObject=isPlainObject;lodash.isRegExp=isRegExp;lodash.isString=isString;lodash.isUndefined=isUndefined;lodash.lastIndexOf=lastIndexOf;lodash.mixin=mixin;lodash.noConflict=noConflict;lodash.noop=noop;lodash.now=now;lodash.parseInt=parseInt;lodash.random=random;lodash.reduce=reduce;lodash.reduceRight=reduceRight;lodash.result=result;lodash.runInContext=runInContext;lodash.size=size;lodash.some=some;lodash.sortedIndex=sortedIndex;lodash.template=template;lodash.unescape=unescape;lodash.uniqueId=uniqueId;lodash.all=every;lodash.any=some;lodash.detect=find;lodash.findWhere=find;lodash.foldl=reduce;lodash.foldr=reduceRight;lodash.include=contains;lodash.inject=reduce;mixin(function(){var source={};forOwn(lodash,function(func,methodName){if(!lodash.prototype[methodName]){source[methodName]=func}});return source}(),false);lodash.first=first;lodash.last=last;lodash.sample=sample;lodash.take=first;lodash.head=first;forOwn(lodash,function(func,methodName){var callbackable=methodName!=="sample";if(!lodash.prototype[methodName]){lodash.prototype[methodName]=function(n,guard){var chainAll=this.__chain__,result=func(this.__wrapped__,n,guard);return!chainAll&&(n==null||guard&&!(callbackable&&typeof n=="function"))?result:new lodashWrapper(result,chainAll)}}});lodash.VERSION="2.4.1";lodash.prototype.chain=wrapperChain;lodash.prototype.toString=wrapperToString;lodash.prototype.value=wrapperValueOf;lodash.prototype.valueOf=wrapperValueOf;forEach(["join","pop","shift"],function(methodName){var func=arrayRef[methodName];lodash.prototype[methodName]=function(){var chainAll=this.__chain__,result=func.apply(this.__wrapped__,arguments);return chainAll?new lodashWrapper(result,chainAll):result}});forEach(["push","reverse","sort","unshift"],function(methodName){var func=arrayRef[methodName];lodash.prototype[methodName]=function(){func.apply(this.__wrapped__,arguments);return this}});forEach(["concat","slice","splice"],function(methodName){var func=arrayRef[methodName];lodash.prototype[methodName]=function(){return new lodashWrapper(func.apply(this.__wrapped__,arguments),this.__chain__)}});return lodash}var _=runInContext();if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){root._=_;define(function(){return _})}else if(freeExports&&freeModule){if(moduleExports){(freeModule.exports=_)._=_}else{freeExports._=_}}else{root._=_}}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],198:[function(require,module,exports){(function(process){(function(definition){"use strict";if(typeof bootstrap==="function"){bootstrap("promise",definition)}else if(typeof exports==="object"&&typeof module==="object"){module.exports=definition()}else if(typeof define==="function"&&define.amd){define(definition)}else if(typeof ses!=="undefined"){if(!ses.ok()){return}else{ses.makeQ=definition}}else if(typeof self!=="undefined"){self.Q=definition()}else{throw new Error("This environment was not anticiapted by Q. Please file a bug.")}})(function(){"use strict";var hasStacks=false;try{throw new Error}catch(e){hasStacks=!!e.stack}var qStartingLine=captureLine();var qFileName;var noop=function(){};var nextTick=function(){var head={task:void 0,next:null};var tail=head;var flushing=false;var requestTick=void 0;var isNodeJS=false;function flush(){while(head.next){head=head.next;var task=head.task;head.task=void 0;var domain=head.domain;if(domain){head.domain=void 0;domain.enter()}try{task()}catch(e){if(isNodeJS){if(domain){domain.exit()}setTimeout(flush,0);if(domain){domain.enter()}throw e}else{setTimeout(function(){throw e},0)}}if(domain){domain.exit()}}flushing=false}nextTick=function(task){tail=tail.next={task:task,domain:isNodeJS&&process.domain,next:null};if(!flushing){flushing=true;requestTick()}};if(typeof process!=="undefined"&&process.nextTick){isNodeJS=true;requestTick=function(){process.nextTick(flush)}}else if(typeof setImmediate==="function"){if(typeof window!=="undefined"){requestTick=setImmediate.bind(window,flush)}else{requestTick=function(){setImmediate(flush)}}}else if(typeof MessageChannel!=="undefined"){var channel=new MessageChannel;channel.port1.onmessage=function(){requestTick=requestPortTick;channel.port1.onmessage=flush;flush()};var requestPortTick=function(){channel.port2.postMessage(0)};requestTick=function(){setTimeout(flush,0);requestPortTick()}}else{requestTick=function(){setTimeout(flush,0)}}return nextTick}();var call=Function.call;function uncurryThis(f){return function(){return call.apply(f,arguments)}}var array_slice=uncurryThis(Array.prototype.slice);var array_reduce=uncurryThis(Array.prototype.reduce||function(callback,basis){var index=0,length=this.length;if(arguments.length===1){do{if(index in this){basis=this[index++];break}if(++index>=length){throw new TypeError}}while(1)}for(;index<length;index++){if(index in this){basis=callback(basis,this[index],index)}}return basis});var array_indexOf=uncurryThis(Array.prototype.indexOf||function(value){for(var i=0;i<this.length;i++){if(this[i]===value){return i}}return-1});var array_map=uncurryThis(Array.prototype.map||function(callback,thisp){var self=this;var collect=[];array_reduce(self,function(undefined,value,index){collect.push(callback.call(thisp,value,index,self))},void 0);return collect});var object_create=Object.create||function(prototype){function Type(){}Type.prototype=prototype;return new Type};var object_hasOwnProperty=uncurryThis(Object.prototype.hasOwnProperty);var object_keys=Object.keys||function(object){var keys=[];for(var key in object){if(object_hasOwnProperty(object,key)){keys.push(key)}}return keys};var object_toString=uncurryThis(Object.prototype.toString);function isObject(value){return value===Object(value)}function isStopIteration(exception){return object_toString(exception)==="[object StopIteration]"||exception instanceof QReturnValue}var QReturnValue;if(typeof ReturnValue!=="undefined"){QReturnValue=ReturnValue}else{QReturnValue=function(value){this.value=value}}var STACK_JUMP_SEPARATOR="From previous event:";function makeStackTraceLong(error,promise){if(hasStacks&&promise.stack&&typeof error==="object"&&error!==null&&error.stack&&error.stack.indexOf(STACK_JUMP_SEPARATOR)===-1){var stacks=[];for(var p=promise;!!p;p=p.source){if(p.stack){stacks.unshift(p.stack)}}stacks.unshift(error.stack);var concatedStacks=stacks.join("\n"+STACK_JUMP_SEPARATOR+"\n");error.stack=filterStackString(concatedStacks)}}function filterStackString(stackString){var lines=stackString.split("\n");var desiredLines=[];for(var i=0;i<lines.length;++i){var line=lines[i];if(!isInternalFrame(line)&&!isNodeFrame(line)&&line){desiredLines.push(line)}}return desiredLines.join("\n")}function isNodeFrame(stackLine){return stackLine.indexOf("(module.js:")!==-1||stackLine.indexOf("(node.js:")!==-1}function getFileNameAndLineNumber(stackLine){var attempt1=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(stackLine);if(attempt1){return[attempt1[1],Number(attempt1[2])]}var attempt2=/at ([^ ]+):(\d+):(?:\d+)$/.exec(stackLine);if(attempt2){return[attempt2[1],Number(attempt2[2])]}var attempt3=/.*@(.+):(\d+)$/.exec(stackLine);if(attempt3){return[attempt3[1],Number(attempt3[2])]}}function isInternalFrame(stackLine){var fileNameAndLineNumber=getFileNameAndLineNumber(stackLine);if(!fileNameAndLineNumber){return false}var fileName=fileNameAndLineNumber[0];var lineNumber=fileNameAndLineNumber[1];return fileName===qFileName&&lineNumber>=qStartingLine&&lineNumber<=qEndingLine}function captureLine(){if(!hasStacks){return}try{throw new Error}catch(e){var lines=e.stack.split("\n");var firstLine=lines[0].indexOf("@")>0?lines[1]:lines[2];var fileNameAndLineNumber=getFileNameAndLineNumber(firstLine);if(!fileNameAndLineNumber){return}qFileName=fileNameAndLineNumber[0];return fileNameAndLineNumber[1]}}function deprecate(callback,name,alternative){return function(){if(typeof console!=="undefined"&&typeof console.warn==="function"){console.warn(name+" is deprecated, use "+alternative+" instead.",new Error("").stack)}return callback.apply(callback,arguments)}}function Q(value){if(value instanceof Promise){return value}if(isPromiseAlike(value)){return coerce(value)}else{return fulfill(value)}}Q.resolve=Q;Q.nextTick=nextTick;Q.longStackSupport=false;if(typeof process==="object"&&process&&process.env&&process.env.Q_DEBUG){Q.longStackSupport=true}Q.defer=defer;function defer(){var messages=[],progressListeners=[],resolvedPromise;var deferred=object_create(defer.prototype);var promise=object_create(Promise.prototype);promise.promiseDispatch=function(resolve,op,operands){var args=array_slice(arguments);if(messages){messages.push(args);if(op==="when"&&operands[1]){progressListeners.push(operands[1])}}else{Q.nextTick(function(){resolvedPromise.promiseDispatch.apply(resolvedPromise,args)})}};promise.valueOf=function(){if(messages){return promise}var nearerValue=nearer(resolvedPromise);if(isPromise(nearerValue)){resolvedPromise=nearerValue}return nearerValue};promise.inspect=function(){if(!resolvedPromise){return{state:"pending"}}return resolvedPromise.inspect()};if(Q.longStackSupport&&hasStacks){try{throw new Error}catch(e){promise.stack=e.stack.substring(e.stack.indexOf("\n")+1)}}function become(newPromise){resolvedPromise=newPromise;promise.source=newPromise;array_reduce(messages,function(undefined,message){Q.nextTick(function(){newPromise.promiseDispatch.apply(newPromise,message)})},void 0);messages=void 0;progressListeners=void 0}deferred.promise=promise;deferred.resolve=function(value){if(resolvedPromise){return}become(Q(value))};deferred.fulfill=function(value){if(resolvedPromise){return}become(fulfill(value))};deferred.reject=function(reason){if(resolvedPromise){return}become(reject(reason))};deferred.notify=function(progress){if(resolvedPromise){return}array_reduce(progressListeners,function(undefined,progressListener){Q.nextTick(function(){progressListener(progress)})},void 0)};return deferred}defer.prototype.makeNodeResolver=function(){var self=this;return function(error,value){if(error){self.reject(error)}else if(arguments.length>2){self.resolve(array_slice(arguments,1))}else{self.resolve(value)}}};Q.Promise=promise;Q.promise=promise;function promise(resolver){if(typeof resolver!=="function"){throw new TypeError("resolver must be a function.")}var deferred=defer();try{resolver(deferred.resolve,deferred.reject,deferred.notify)}catch(reason){deferred.reject(reason)}return deferred.promise}promise.race=race;promise.all=all;promise.reject=reject;promise.resolve=Q;Q.passByCopy=function(object){return object};Promise.prototype.passByCopy=function(){return this};Q.join=function(x,y){return Q(x).join(y)};Promise.prototype.join=function(that){return Q([this,that]).spread(function(x,y){if(x===y){return x}else{throw new Error("Can't join: not the same: "+x+" "+y)}})};Q.race=race;function race(answerPs){return promise(function(resolve,reject){for(var i=0,len=answerPs.length;i<len;i++){Q(answerPs[i]).then(resolve,reject)}})}Promise.prototype.race=function(){return this.then(Q.race)};Q.makePromise=Promise;function Promise(descriptor,fallback,inspect){if(fallback===void 0){fallback=function(op){return reject(new Error("Promise does not support operation: "+op))}}if(inspect===void 0){inspect=function(){return{state:"unknown"}}}var promise=object_create(Promise.prototype);promise.promiseDispatch=function(resolve,op,args){var result;try{if(descriptor[op]){result=descriptor[op].apply(promise,args)}else{result=fallback.call(promise,op,args)}}catch(exception){result=reject(exception)}if(resolve){resolve(result)}};promise.inspect=inspect;if(inspect){var inspected=inspect();if(inspected.state==="rejected"){promise.exception=inspected.reason}promise.valueOf=function(){var inspected=inspect();if(inspected.state==="pending"||inspected.state==="rejected"){return promise}return inspected.value}}return promise}Promise.prototype.toString=function(){return"[object Promise]"};Promise.prototype.then=function(fulfilled,rejected,progressed){var self=this;var deferred=defer();var done=false;function _fulfilled(value){try{return typeof fulfilled==="function"?fulfilled(value):value}catch(exception){return reject(exception)}}function _rejected(exception){if(typeof rejected==="function"){makeStackTraceLong(exception,self);try{return rejected(exception)}catch(newException){return reject(newException)}}return reject(exception)}function _progressed(value){return typeof progressed==="function"?progressed(value):value}Q.nextTick(function(){self.promiseDispatch(function(value){if(done){return}done=true;deferred.resolve(_fulfilled(value))},"when",[function(exception){if(done){return}done=true;deferred.resolve(_rejected(exception))}])});self.promiseDispatch(void 0,"when",[void 0,function(value){var newValue;var threw=false;try{newValue=_progressed(value)}catch(e){threw=true;if(Q.onerror){Q.onerror(e)}else{throw e}}if(!threw){deferred.notify(newValue)}}]);return deferred.promise};Q.tap=function(promise,callback){return Q(promise).tap(callback)};Promise.prototype.tap=function(callback){callback=Q(callback);return this.then(function(value){return callback.fcall(value).thenResolve(value)})};Q.when=when;function when(value,fulfilled,rejected,progressed){return Q(value).then(fulfilled,rejected,progressed)}Promise.prototype.thenResolve=function(value){return this.then(function(){return value})};Q.thenResolve=function(promise,value){return Q(promise).thenResolve(value)};Promise.prototype.thenReject=function(reason){return this.then(function(){throw reason})};Q.thenReject=function(promise,reason){return Q(promise).thenReject(reason)};Q.nearer=nearer;function nearer(value){if(isPromise(value)){var inspected=value.inspect();if(inspected.state==="fulfilled"){return inspected.value}}return value}Q.isPromise=isPromise;function isPromise(object){return object instanceof Promise}Q.isPromiseAlike=isPromiseAlike;function isPromiseAlike(object){return isObject(object)&&typeof object.then==="function"}Q.isPending=isPending;function isPending(object){return isPromise(object)&&object.inspect().state==="pending"}Promise.prototype.isPending=function(){return this.inspect().state==="pending"};Q.isFulfilled=isFulfilled;function isFulfilled(object){return!isPromise(object)||object.inspect().state==="fulfilled"}Promise.prototype.isFulfilled=function(){return this.inspect().state==="fulfilled"};Q.isRejected=isRejected;function isRejected(object){return isPromise(object)&&object.inspect().state==="rejected"}Promise.prototype.isRejected=function(){return this.inspect().state==="rejected"};var unhandledReasons=[];var unhandledRejections=[];var trackUnhandledRejections=true;function resetUnhandledRejections(){unhandledReasons.length=0;unhandledRejections.length=0;if(!trackUnhandledRejections){trackUnhandledRejections=true}}function trackRejection(promise,reason){if(!trackUnhandledRejections){return}unhandledRejections.push(promise);if(reason&&typeof reason.stack!=="undefined"){unhandledReasons.push(reason.stack)}else{unhandledReasons.push("(no stack) "+reason)}}function untrackRejection(promise){if(!trackUnhandledRejections){return}var at=array_indexOf(unhandledRejections,promise);if(at!==-1){unhandledRejections.splice(at,1);unhandledReasons.splice(at,1)}}Q.resetUnhandledRejections=resetUnhandledRejections;Q.getUnhandledReasons=function(){return unhandledReasons.slice()};Q.stopUnhandledRejectionTracking=function(){resetUnhandledRejections();trackUnhandledRejections=false};resetUnhandledRejections();Q.reject=reject;function reject(reason){var rejection=Promise({when:function(rejected){if(rejected){untrackRejection(this)}return rejected?rejected(reason):this}},function fallback(){return this},function inspect(){return{state:"rejected",reason:reason}});trackRejection(rejection,reason);return rejection}Q.fulfill=fulfill;function fulfill(value){return Promise({when:function(){return value},get:function(name){return value[name]},set:function(name,rhs){value[name]=rhs},"delete":function(name){delete value[name]},post:function(name,args){if(name===null||name===void 0){return value.apply(void 0,args)}else{return value[name].apply(value,args)}},apply:function(thisp,args){return value.apply(thisp,args)},keys:function(){return object_keys(value)}},void 0,function inspect(){return{state:"fulfilled",value:value}})}function coerce(promise){var deferred=defer();Q.nextTick(function(){try{promise.then(deferred.resolve,deferred.reject,deferred.notify)}catch(exception){deferred.reject(exception)}});return deferred.promise}Q.master=master;function master(object){return Promise({isDef:function(){}},function fallback(op,args){return dispatch(object,op,args)},function(){return Q(object).inspect()})}Q.spread=spread;function spread(value,fulfilled,rejected){return Q(value).spread(fulfilled,rejected)}Promise.prototype.spread=function(fulfilled,rejected){return this.all().then(function(array){return fulfilled.apply(void 0,array)},rejected)};Q.async=async;function async(makeGenerator){return function(){function continuer(verb,arg){var result;if(typeof StopIteration==="undefined"){try{result=generator[verb](arg)}catch(exception){return reject(exception)}if(result.done){return Q(result.value)}else{return when(result.value,callback,errback)}}else{try{result=generator[verb](arg)}catch(exception){if(isStopIteration(exception)){return Q(exception.value)}else{return reject(exception)}}return when(result,callback,errback)}}var generator=makeGenerator.apply(this,arguments);var callback=continuer.bind(continuer,"next");var errback=continuer.bind(continuer,"throw");return callback()}}Q.spawn=spawn;function spawn(makeGenerator){Q.done(Q.async(makeGenerator)())}Q["return"]=_return;function _return(value){throw new QReturnValue(value)}Q.promised=promised;function promised(callback){return function(){return spread([this,all(arguments)],function(self,args){return callback.apply(self,args)})}}Q.dispatch=dispatch;function dispatch(object,op,args){return Q(object).dispatch(op,args)}Promise.prototype.dispatch=function(op,args){var self=this;var deferred=defer();Q.nextTick(function(){self.promiseDispatch(deferred.resolve,op,args)});return deferred.promise};Q.get=function(object,key){return Q(object).dispatch("get",[key])};Promise.prototype.get=function(key){return this.dispatch("get",[key])};Q.set=function(object,key,value){return Q(object).dispatch("set",[key,value])};Promise.prototype.set=function(key,value){return this.dispatch("set",[key,value])};Q.del=Q["delete"]=function(object,key){return Q(object).dispatch("delete",[key])};Promise.prototype.del=Promise.prototype["delete"]=function(key){return this.dispatch("delete",[key])};Q.mapply=Q.post=function(object,name,args){return Q(object).dispatch("post",[name,args])};Promise.prototype.mapply=Promise.prototype.post=function(name,args){return this.dispatch("post",[name,args])};Q.send=Q.mcall=Q.invoke=function(object,name){return Q(object).dispatch("post",[name,array_slice(arguments,2)])};Promise.prototype.send=Promise.prototype.mcall=Promise.prototype.invoke=function(name){return this.dispatch("post",[name,array_slice(arguments,1)])};Q.fapply=function(object,args){return Q(object).dispatch("apply",[void 0,args])};Promise.prototype.fapply=function(args){return this.dispatch("apply",[void 0,args])};Q["try"]=Q.fcall=function(object){return Q(object).dispatch("apply",[void 0,array_slice(arguments,1)])};Promise.prototype.fcall=function(){return this.dispatch("apply",[void 0,array_slice(arguments)])};Q.fbind=function(object){var promise=Q(object);var args=array_slice(arguments,1);return function fbound(){return promise.dispatch("apply",[this,args.concat(array_slice(arguments))])}};Promise.prototype.fbind=function(){var promise=this;var args=array_slice(arguments);return function fbound(){return promise.dispatch("apply",[this,args.concat(array_slice(arguments))])}};Q.keys=function(object){return Q(object).dispatch("keys",[])};Promise.prototype.keys=function(){return this.dispatch("keys",[])};Q.all=all;function all(promises){return when(promises,function(promises){var countDown=0;var deferred=defer();array_reduce(promises,function(undefined,promise,index){var snapshot;if(isPromise(promise)&&(snapshot=promise.inspect()).state==="fulfilled"){promises[index]=snapshot.value}else{++countDown;when(promise,function(value){promises[index]=value;if(--countDown===0){deferred.resolve(promises)}},deferred.reject,function(progress){deferred.notify({index:index,value:progress})})}},void 0);if(countDown===0){deferred.resolve(promises)}return deferred.promise})}Promise.prototype.all=function(){return all(this)};Q.allResolved=deprecate(allResolved,"allResolved","allSettled");function allResolved(promises){return when(promises,function(promises){promises=array_map(promises,Q);return when(all(array_map(promises,function(promise){return when(promise,noop,noop)})),function(){return promises})})}Promise.prototype.allResolved=function(){return allResolved(this)};Q.allSettled=allSettled;function allSettled(promises){return Q(promises).allSettled()}Promise.prototype.allSettled=function(){return this.then(function(promises){return all(array_map(promises,function(promise){promise=Q(promise);function regardless(){return promise.inspect()}return promise.then(regardless,regardless)}))})};Q.fail=Q["catch"]=function(object,rejected){return Q(object).then(void 0,rejected)};Promise.prototype.fail=Promise.prototype["catch"]=function(rejected){return this.then(void 0,rejected)};Q.progress=progress;function progress(object,progressed){return Q(object).then(void 0,void 0,progressed)}Promise.prototype.progress=function(progressed){return this.then(void 0,void 0,progressed)};Q.fin=Q["finally"]=function(object,callback){return Q(object)["finally"](callback)};Promise.prototype.fin=Promise.prototype["finally"]=function(callback){callback=Q(callback);return this.then(function(value){return callback.fcall().then(function(){return value})},function(reason){return callback.fcall().then(function(){throw reason})})};Q.done=function(object,fulfilled,rejected,progress){return Q(object).done(fulfilled,rejected,progress)};Promise.prototype.done=function(fulfilled,rejected,progress){var onUnhandledError=function(error){Q.nextTick(function(){makeStackTraceLong(error,promise);if(Q.onerror){Q.onerror(error)}else{throw error}})};var promise=fulfilled||rejected||progress?this.then(fulfilled,rejected,progress):this;if(typeof process==="object"&&process&&process.domain){onUnhandledError=process.domain.bind(onUnhandledError)}promise.then(void 0,onUnhandledError)};Q.timeout=function(object,ms,error){return Q(object).timeout(ms,error)};Promise.prototype.timeout=function(ms,error){var deferred=defer();var timeoutId=setTimeout(function(){if(!error||"string"===typeof error){error=new Error(error||"Timed out after "+ms+" ms");error.code="ETIMEDOUT"}deferred.reject(error)},ms);this.then(function(value){clearTimeout(timeoutId);deferred.resolve(value)},function(exception){clearTimeout(timeoutId);deferred.reject(exception)},deferred.notify);return deferred.promise};Q.delay=function(object,timeout){if(timeout===void 0){timeout=object;object=void 0}return Q(object).delay(timeout)};Promise.prototype.delay=function(timeout){return this.then(function(value){var deferred=defer();setTimeout(function(){deferred.resolve(value)},timeout);return deferred.promise})};Q.nfapply=function(callback,args){return Q(callback).nfapply(args)};Promise.prototype.nfapply=function(args){var deferred=defer();var nodeArgs=array_slice(args);nodeArgs.push(deferred.makeNodeResolver());this.fapply(nodeArgs).fail(deferred.reject);return deferred.promise};Q.nfcall=function(callback){var args=array_slice(arguments,1);return Q(callback).nfapply(args)};Promise.prototype.nfcall=function(){var nodeArgs=array_slice(arguments);var deferred=defer();nodeArgs.push(deferred.makeNodeResolver());this.fapply(nodeArgs).fail(deferred.reject);return deferred.promise};Q.nfbind=Q.denodeify=function(callback){var baseArgs=array_slice(arguments,1);return function(){var nodeArgs=baseArgs.concat(array_slice(arguments));var deferred=defer();nodeArgs.push(deferred.makeNodeResolver());Q(callback).fapply(nodeArgs).fail(deferred.reject);return deferred.promise}};Promise.prototype.nfbind=Promise.prototype.denodeify=function(){var args=array_slice(arguments);args.unshift(this);return Q.denodeify.apply(void 0,args)};Q.nbind=function(callback,thisp){var baseArgs=array_slice(arguments,2);return function(){var nodeArgs=baseArgs.concat(array_slice(arguments));var deferred=defer();nodeArgs.push(deferred.makeNodeResolver());function bound(){return callback.apply(thisp,arguments)}Q(bound).fapply(nodeArgs).fail(deferred.reject);return deferred.promise}};Promise.prototype.nbind=function(){var args=array_slice(arguments,0);args.unshift(this);return Q.nbind.apply(void 0,args)};Q.nmapply=Q.npost=function(object,name,args){return Q(object).npost(name,args)};Promise.prototype.nmapply=Promise.prototype.npost=function(name,args){var nodeArgs=array_slice(args||[]);var deferred=defer();nodeArgs.push(deferred.makeNodeResolver());this.dispatch("post",[name,nodeArgs]).fail(deferred.reject);return deferred.promise};Q.nsend=Q.nmcall=Q.ninvoke=function(object,name){var nodeArgs=array_slice(arguments,2);var deferred=defer();nodeArgs.push(deferred.makeNodeResolver());Q(object).dispatch("post",[name,nodeArgs]).fail(deferred.reject);return deferred.promise};Promise.prototype.nsend=Promise.prototype.nmcall=Promise.prototype.ninvoke=function(name){var nodeArgs=array_slice(arguments,1);var deferred=defer();nodeArgs.push(deferred.makeNodeResolver());this.dispatch("post",[name,nodeArgs]).fail(deferred.reject);return deferred.promise};Q.nodeify=nodeify;function nodeify(object,nodeback){return Q(object).nodeify(nodeback)}Promise.prototype.nodeify=function(nodeback){if(nodeback){this.then(function(value){Q.nextTick(function(){nodeback(null,value)})},function(error){Q.nextTick(function(){nodeback(error)})})}else{return this}};var qEndingLine=captureLine();return Q})}).call(this,require("_process"))},{_process:171}],199:[function(require,module,exports){module.exports=require("./lib/")},{"./lib/":200}],200:[function(require,module,exports){var Stringify=require("./stringify");var Parse=require("./parse");var internals={};module.exports={stringify:Stringify,parse:Parse}},{"./parse":201,"./stringify":202}],201:[function(require,module,exports){var Utils=require("./utils");var internals={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3};internals.parseValues=function(str,options){var obj={};var parts=str.split(options.delimiter,options.parameterLimit===Infinity?undefined:options.parameterLimit);for(var i=0,il=parts.length;i<il;++i){var part=parts[i];var pos=part.indexOf("]=")===-1?part.indexOf("="):part.indexOf("]=")+1;if(pos===-1){obj[Utils.decode(part)]=""}else{var key=Utils.decode(part.slice(0,pos));var val=Utils.decode(part.slice(pos+1));if(!obj.hasOwnProperty(key)){obj[key]=val}else{obj[key]=[].concat(obj[key]).concat(val)}}}return obj};internals.parseObject=function(chain,val,options){if(!chain.length){return val}var root=chain.shift();var obj={};if(root==="[]"){obj=[];obj=obj.concat(internals.parseObject(chain,val,options))}else{var cleanRoot=root[0]==="["&&root[root.length-1]==="]"?root.slice(1,root.length-1):root; | |
var index=parseInt(cleanRoot,10);var indexString=""+index;if(!isNaN(index)&&root!==cleanRoot&&indexString===cleanRoot&&index>=0&&index<=options.arrayLimit){obj=[];obj[index]=internals.parseObject(chain,val,options)}else{obj[cleanRoot]=internals.parseObject(chain,val,options)}}return obj};internals.parseKeys=function(key,val,options){if(!key){return}var parent=/^([^\[\]]*)/;var child=/(\[[^\[\]]*\])/g;var segment=parent.exec(key);if(Object.prototype.hasOwnProperty(segment[1])){return}var keys=[];if(segment[1]){keys.push(segment[1])}var i=0;while((segment=child.exec(key))!==null&&i<options.depth){++i;if(!Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g,""))){keys.push(segment[1])}}if(segment){keys.push("["+key.slice(segment.index)+"]")}return internals.parseObject(keys,val,options)};module.exports=function(str,options){if(str===""||str===null||typeof str==="undefined"){return{}}options=options||{};options.delimiter=typeof options.delimiter==="string"||Utils.isRegExp(options.delimiter)?options.delimiter:internals.delimiter;options.depth=typeof options.depth==="number"?options.depth:internals.depth;options.arrayLimit=typeof options.arrayLimit==="number"?options.arrayLimit:internals.arrayLimit;options.parameterLimit=typeof options.parameterLimit==="number"?options.parameterLimit:internals.parameterLimit;var tempObj=typeof str==="string"?internals.parseValues(str,options):str;var obj={};var keys=Object.keys(tempObj);for(var i=0,il=keys.length;i<il;++i){var key=keys[i];var newObj=internals.parseKeys(key,tempObj[key],options);obj=Utils.merge(obj,newObj)}return Utils.compact(obj)}},{"./utils":203}],202:[function(require,module,exports){var Utils=require("./utils");var internals={delimiter:"&",indices:true};internals.stringify=function(obj,prefix,options){if(Utils.isBuffer(obj)){obj=obj.toString()}else if(obj instanceof Date){obj=obj.toISOString()}else if(obj===null){obj=""}if(typeof obj==="string"||typeof obj==="number"||typeof obj==="boolean"){return[encodeURIComponent(prefix)+"="+encodeURIComponent(obj)]}var values=[];if(typeof obj==="undefined"){return values}var objKeys=Object.keys(obj);for(var i=0,il=objKeys.length;i<il;++i){var key=objKeys[i];if(!options.indices&&Array.isArray(obj)){values=values.concat(internals.stringify(obj[key],prefix,options))}else{values=values.concat(internals.stringify(obj[key],prefix+"["+key+"]",options))}}return values};module.exports=function(obj,options){options=options||{};var delimiter=typeof options.delimiter==="undefined"?internals.delimiter:options.delimiter;options.indices=typeof options.indices==="boolean"?options.indices:internals.indices;var keys=[];if(typeof obj!=="object"||obj===null){return""}var objKeys=Object.keys(obj);for(var i=0,il=objKeys.length;i<il;++i){var key=objKeys[i];keys=keys.concat(internals.stringify(obj[key],key,options))}return keys.join(delimiter)}},{"./utils":203}],203:[function(require,module,exports){var internals={};exports.arrayToObject=function(source){var obj={};for(var i=0,il=source.length;i<il;++i){if(typeof source[i]!=="undefined"){obj[i]=source[i]}}return obj};exports.merge=function(target,source){if(!source){return target}if(typeof source!=="object"){if(Array.isArray(target)){target.push(source)}else{target[source]=true}return target}if(typeof target!=="object"){target=[target].concat(source);return target}if(Array.isArray(target)&&!Array.isArray(source)){target=exports.arrayToObject(target)}var keys=Object.keys(source);for(var k=0,kl=keys.length;k<kl;++k){var key=keys[k];var value=source[key];if(!target[key]){target[key]=value}else{target[key]=exports.merge(target[key],value)}}return target};exports.decode=function(str){try{return decodeURIComponent(str.replace(/\+/g," "))}catch(e){return str}};exports.compact=function(obj,refs){if(typeof obj!=="object"||obj===null){return obj}refs=refs||[];var lookup=refs.indexOf(obj);if(lookup!==-1){return refs[lookup]}refs.push(obj);if(Array.isArray(obj)){var compacted=[];for(var i=0,il=obj.length;i<il;++i){if(typeof obj[i]!=="undefined"){compacted.push(obj[i])}}return compacted}var keys=Object.keys(obj);for(i=0,il=keys.length;i<il;++i){var key=keys[i];obj[key]=exports.compact(obj[key],refs)}return obj};exports.isRegExp=function(obj){return Object.prototype.toString.call(obj)==="[object RegExp]"};exports.isBuffer=function(obj){if(obj===null||typeof obj==="undefined"){return false}return!!(obj.constructor&&obj.constructor.isBuffer&&obj.constructor.isBuffer(obj))}},{}],204:[function(require,module,exports){(function(process){"use strict";var extend=require("util")._extend,cookies=require("./lib/cookies"),helpers=require("./lib/helpers");var isFunction=helpers.isFunction,constructObject=helpers.constructObject,filterForCallback=helpers.filterForCallback,constructOptionsFrom=helpers.constructOptionsFrom,paramsHaveRequestBody=helpers.paramsHaveRequestBody;function initParams(uri,options,callback){callback=filterForCallback([options,callback]);options=constructOptionsFrom(uri,options);return constructObject().extend({callback:callback}).extend({options:options}).extend({uri:options.uri}).done()}function request(uri,options,callback){if(typeof uri==="undefined"){throw new Error("undefined is not a valid uri or options object.")}var params=initParams(uri,options,callback);options=params.options;options.callback=params.callback;options.uri=params.uri;return new request.Request(options)}function requester(params){if(typeof params.options._requester==="function"){return params.options._requester}return request}request.get=function(uri,options,callback){var params=initParams(uri,options,callback);params.options.method="GET";return requester(params)(params.uri||null,params.options,params.callback)};request.head=function(uri,options,callback){var params=initParams(uri,options,callback);params.options.method="HEAD";if(paramsHaveRequestBody(params)){throw new Error("HTTP HEAD requests MUST NOT include a request body.")}return requester(params)(params.uri||null,params.options,params.callback)};request.post=function(uri,options,callback){var params=initParams(uri,options,callback);params.options.method="POST";return requester(params)(params.uri||null,params.options,params.callback)};request.put=function(uri,options,callback){var params=initParams(uri,options,callback);params.options.method="PUT";return requester(params)(params.uri||null,params.options,params.callback)};request.patch=function(uri,options,callback){var params=initParams(uri,options,callback);params.options.method="PATCH";return requester(params)(params.uri||null,params.options,params.callback)};request.del=function(uri,options,callback){var params=initParams(uri,options,callback);params.options.method="DELETE";return requester(params)(params.uri||null,params.options,params.callback)};request.jar=function(store){return cookies.jar(store)};request.cookie=function(str){return cookies.parse(str)};request.defaults=function(options,requester){var self=this;var wrap=function(method){var headerlessOptions=function(options){options=extend({},options);delete options.headers;return options};var getHeaders=function(params,options){return constructObject().extend(options.headers).extend(params.options.headers).done()};return function(uri,opts,callback){var params=initParams(uri,opts,callback);params.options=extend(headerlessOptions(options),params.options);if(options.headers){params.options.headers=getHeaders(params,options)}if(isFunction(requester)){if(method===self){method=requester}else{params.options._requester=requester}}return method(params.options,params.callback)}};var defaults=wrap(self);defaults.get=wrap(self.get);defaults.patch=wrap(self.patch);defaults.post=wrap(self.post);defaults.put=wrap(self.put);defaults.head=wrap(self.head);defaults.del=wrap(self.del);defaults.cookie=wrap(self.cookie);defaults.jar=self.jar;defaults.defaults=self.defaults;return defaults};request.forever=function(agentOptions,optionsArg){var options=constructObject();if(optionsArg){options.extend(optionsArg)}if(agentOptions){options.agentOptions=agentOptions}options.extend({forever:true});return request.defaults(options.done())};module.exports=request;request.Request=require("./request");request.debug=process.env.NODE_DEBUG&&/\brequest\b/.test(process.env.NODE_DEBUG);request.initParams=initParams}).call(this,require("_process"))},{"./lib/cookies":205,"./lib/helpers":208,"./request":271,_process:171,util:191}],205:[function(require,module,exports){"use strict";var tough=require("tough-cookie");var Cookie=tough.Cookie,CookieJar=tough.CookieJar;exports.parse=function(str){if(str&&str.uri){str=str.uri}if(typeof str!=="string"){throw new Error("The cookie function only accepts STRING as param")}return Cookie.parse(str)};function RequestJar(store){var self=this;self._jar=new CookieJar(store)}RequestJar.prototype.setCookie=function(cookieOrStr,uri,options){var self=this;return self._jar.setCookieSync(cookieOrStr,uri,options||{})};RequestJar.prototype.getCookieString=function(uri){var self=this;return self._jar.getCookieStringSync(uri)};RequestJar.prototype.getCookies=function(uri){var self=this;return self._jar.getCookiesSync(uri)};exports.jar=function(store){return new RequestJar(store)}},{"tough-cookie":266}],206:[function(require,module,exports){"use strict";module.exports=function copy(obj){var o={};Object.keys(obj).forEach(function(i){o[i]=obj[i]});return o}},{}],207:[function(require,module,exports){"use strict";var util=require("util"),request=require("../index");module.exports=function debug(){if(request.debug){console.error("REQUEST %s",util.format.apply(util,arguments))}}},{"../index":204,util:191}],208:[function(require,module,exports){(function(process,Buffer){"use strict";var extend=require("util")._extend,jsonSafeStringify=require("json-stringify-safe"),crypto=require("crypto");function deferMethod(){if(typeof setImmediate==="undefined"){return process.nextTick}return setImmediate}function constructObject(initialObject){initialObject=initialObject||{};return{extend:function(object){return constructObject(extend(initialObject,object))},done:function(){return initialObject}}}function constructOptionsFrom(uri,options){var params=constructObject();if(typeof options==="object"){params.extend(options).extend({uri:uri})}else if(typeof uri==="string"){params.extend({uri:uri})}else{params.extend(uri)}return params.done()}function isFunction(value){return typeof value==="function"}function filterForCallback(values){var callbacks=values.filter(isFunction);return callbacks[0]}function paramsHaveRequestBody(params){return params.options.body||params.options.requestBodyStream||params.options.json&&typeof params.options.json!=="boolean"||params.options.multipart}function safeStringify(obj){var ret;try{ret=JSON.stringify(obj)}catch(e){ret=jsonSafeStringify(obj)}return ret}function md5(str){return crypto.createHash("md5").update(str).digest("hex")}function isReadStream(rs){return rs.readable&&rs.path&&rs.mode}function toBase64(str){return new Buffer(str||"","ascii").toString("base64")}exports.isFunction=isFunction;exports.constructObject=constructObject;exports.constructOptionsFrom=constructOptionsFrom;exports.filterForCallback=filterForCallback;exports.paramsHaveRequestBody=paramsHaveRequestBody;exports.safeStringify=safeStringify;exports.md5=md5;exports.isReadStream=isReadStream;exports.toBase64=toBase64;exports.defer=deferMethod()}).call(this,require("_process"),require("buffer").Buffer)},{_process:171,buffer:17,crypto:24,"json-stringify-safe":258,util:191}],209:[function(require,module,exports){var crypto=require("crypto"),parse=require("url").parse;var keys=["acl","location","logging","notification","partNumber","policy","requestPayment","torrent","uploadId","uploads","versionId","versioning","versions","website"];function authorization(options){return"AWS "+options.key+":"+sign(options)}module.exports=authorization;module.exports.authorization=authorization;function hmacSha1(options){return crypto.createHmac("sha1",options.secret).update(options.message).digest("base64")}module.exports.hmacSha1=hmacSha1;function sign(options){options.message=stringToSign(options);return hmacSha1(options)}module.exports.sign=sign;function signQuery(options){options.message=queryStringToSign(options);return hmacSha1(options)}module.exports.signQuery=signQuery;function stringToSign(options){var headers=options.amazonHeaders||"";if(headers)headers+="\n";var r=[options.verb,options.md5,options.contentType,options.date?options.date.toUTCString():"",headers+options.resource];return r.join("\n")}module.exports.queryStringToSign=stringToSign;function queryStringToSign(options){return"GET\n\n\n"+options.date+"\n"+options.resource}module.exports.queryStringToSign=queryStringToSign;function canonicalizeHeaders(headers){var buf=[],fields=Object.keys(headers);for(var i=0,len=fields.length;i<len;++i){var field=fields[i],val=headers[field],field=field.toLowerCase();if(0!==field.indexOf("x-amz"))continue;buf.push(field+":"+val)}return buf.sort().join("\n")}module.exports.canonicalizeHeaders=canonicalizeHeaders;function canonicalizeResource(resource){var url=parse(resource,true),path=url.pathname,buf=[];Object.keys(url.query).forEach(function(key){if(!~keys.indexOf(key))return;var val=""==url.query[key]?"":"="+encodeURIComponent(url.query[key]);buf.push(key+val)});return path+(buf.length?"?"+buf.sort().join("&"):"")}module.exports.canonicalizeResource=canonicalizeResource},{crypto:24,url:189}],210:[function(require,module,exports){(function(Buffer){var DuplexStream=require("readable-stream").Duplex,util=require("util");function BufferList(callback){if(!(this instanceof BufferList))return new BufferList(callback);this._bufs=[];this.length=0;if(typeof callback=="function"){this._callback=callback;var piper=function(err){if(this._callback){this._callback(err);this._callback=null}}.bind(this);this.on("pipe",function(src){src.on("error",piper)});this.on("unpipe",function(src){src.removeListener("error",piper)})}else if(Buffer.isBuffer(callback))this.append(callback);else if(Array.isArray(callback)){callback.forEach(function(b){Buffer.isBuffer(b)&&this.append(b)}.bind(this))}DuplexStream.call(this)}util.inherits(BufferList,DuplexStream);BufferList.prototype._offset=function(offset){var tot=0,i=0,_t;for(;i<this._bufs.length;i++){_t=tot+this._bufs[i].length;if(offset<_t)return[i,offset-tot];tot=_t}};BufferList.prototype.append=function(buf){var isBuffer=Buffer.isBuffer(buf)||buf instanceof BufferList;this._bufs.push(isBuffer?buf:new Buffer(buf));this.length+=buf.length;return this};BufferList.prototype._write=function(buf,encoding,callback){this.append(buf);if(callback)callback()};BufferList.prototype._read=function(size){if(!this.length)return this.push(null);size=Math.min(size,this.length);this.push(this.slice(0,size));this.consume(size)};BufferList.prototype.end=function(chunk){DuplexStream.prototype.end.call(this,chunk);if(this._callback){this._callback(null,this.slice());this._callback=null}};BufferList.prototype.get=function(index){return this.slice(index,index+1)[0]};BufferList.prototype.slice=function(start,end){return this.copy(null,0,start,end)};BufferList.prototype.copy=function(dst,dstStart,srcStart,srcEnd){if(typeof srcStart!="number"||srcStart<0)srcStart=0;if(typeof srcEnd!="number"||srcEnd>this.length)srcEnd=this.length;if(srcStart>=this.length)return dst||new Buffer(0);if(srcEnd<=0)return dst||new Buffer(0);var copy=!!dst,off=this._offset(srcStart),len=srcEnd-srcStart,bytes=len,bufoff=copy&&dstStart||0,start=off[1],l,i;if(srcStart===0&&srcEnd==this.length){if(!copy)return Buffer.concat(this._bufs);for(i=0;i<this._bufs.length;i++){this._bufs[i].copy(dst,bufoff);bufoff+=this._bufs[i].length}return dst}if(bytes<=this._bufs[off[0]].length-start){return copy?this._bufs[off[0]].copy(dst,dstStart,start,start+bytes):this._bufs[off[0]].slice(start,start+bytes)}if(!copy)dst=new Buffer(len);for(i=off[0];i<this._bufs.length;i++){l=this._bufs[i].length-start;if(bytes>l){this._bufs[i].copy(dst,bufoff,start)}else{this._bufs[i].copy(dst,bufoff,start,start+bytes);break}bufoff+=l;bytes-=l;if(start)start=0}return dst};BufferList.prototype.toString=function(encoding,start,end){return this.slice(start,end).toString(encoding)};BufferList.prototype.consume=function(bytes){while(this._bufs.length){if(bytes>this._bufs[0].length){bytes-=this._bufs[0].length;this.length-=this._bufs[0].length;this._bufs.shift()}else{this._bufs[0]=this._bufs[0].slice(bytes);this.length-=bytes;break}}return this};BufferList.prototype.duplicate=function(){var i=0,copy=new BufferList;for(;i<this._bufs.length;i++)copy.append(this._bufs[i]);return copy};BufferList.prototype.destroy=function(){this._bufs.length=0;this.length=0;this.push(null)};(function(){var methods={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};for(var m in methods){(function(m){BufferList.prototype[m]=function(offset){return this.slice(offset,offset+methods[m])[m](0)}})(m)}})();module.exports=BufferList}).call(this,require("buffer").Buffer)},{buffer:17,"readable-stream":220,util:191}],211:[function(require,module,exports){(function(process){module.exports=Duplex;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys};var util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable");var Writable=require("./_stream_writable");util.inherits(Duplex,Readable);forEach(objectKeys(Writable.prototype),function(method){if(!Duplex.prototype[method])Duplex.prototype[method]=Writable.prototype[method]});function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);if(options&&options.readable===false)this.readable=false;if(options&&options.writable===false)this.writable=false;this.allowHalfOpen=true;if(options&&options.allowHalfOpen===false)this.allowHalfOpen=false;this.once("end",onend)}function onend(){if(this.allowHalfOpen||this._writableState.ended)return;process.nextTick(this.end.bind(this))}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++){f(xs[i],i)}}}).call(this,require("_process"))},{"./_stream_readable":213,"./_stream_writable":215,_process:171,"core-util-is":216,inherits:217}],212:[function(require,module,exports){arguments[4][178][0].apply(exports,arguments)},{"./_stream_transform":214,"core-util-is":216,dup:178,inherits:217}],213:[function(require,module,exports){(function(process){module.exports=Readable;var isArray=require("isarray");var Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;if(!EE.listenerCount)EE.listenerCount=function(emitter,type){return emitter.listeners(type).length};var Stream=require("stream");var util=require("core-util-is");util.inherits=require("inherits");var StringDecoder;util.inherits(Readable,Stream);function ReadableState(options,stream){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||hwm===0?hwm:16*1024;this.highWaterMark=~~this.highWaterMark;this.buffer=[];this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=false;this.ended=false;this.endEmitted=false;this.reading=false;this.calledRead=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.objectMode=!!options.objectMode;this.defaultEncoding=options.defaultEncoding||"utf8";this.ranOut=false;this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding}}function Readable(options){if(!(this instanceof Readable))return new Readable(options);this._readableState=new ReadableState(options,this);this.readable=true;Stream.call(this)}Readable.prototype.push=function(chunk,encoding){var state=this._readableState;if(typeof chunk==="string"&&!state.objectMode){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=new Buffer(chunk,encoding);encoding=""}}return readableAddChunk(this,state,chunk,encoding,false)};Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",true)};function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er){stream.emit("error",er)}else if(chunk===null||chunk===undefined){state.reading=false;if(!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{if(state.decoder&&!addToFront&&!encoding)chunk=state.decoder.write(chunk);state.length+=state.objectMode?1:chunk.length;if(addToFront){state.buffer.unshift(chunk)}else{state.reading=false;state.buffer.push(chunk)}if(state.needReadable)emitReadable(stream);maybeReadMore(stream,state)}}else if(!addToFront){state.reading=false}return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||state.length===0)}Readable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this._readableState.decoder=new StringDecoder(enc);this._readableState.encoding=enc};var MAX_HWM=8388608;function roundUpToNextPowerOf2(n){if(n>=MAX_HWM){n=MAX_HWM}else{n--;for(var p=1;p<32;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){if(state.length===0&&state.ended)return 0;if(state.objectMode)return n===0?0:1;if(n===null||isNaN(n)){if(state.flowing&&state.buffer.length)return state.buffer[0].length;else return state.length}if(n<=0)return 0;if(n>state.highWaterMark)state.highWaterMark=roundUpToNextPowerOf2(n);if(n>state.length){if(!state.ended){state.needReadable=true;return 0}else return state.length}return n}Readable.prototype.read=function(n){var state=this._readableState;state.calledRead=true;var nOrig=n;var ret;if(typeof n!=="number"||n>0)state.emittedReadable=false;if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){ret=null;if(state.length>0&&state.decoder){ret=fromList(n,state);state.length-=ret.length}if(state.length===0)endReadable(this);return ret}var doRead=state.needReadable;if(state.length-n<=state.highWaterMark)doRead=true;if(state.ended||state.reading)doRead=false;if(doRead){state.reading=true;state.sync=true;if(state.length===0)state.needReadable=true;this._read(state.highWaterMark);state.sync=false}if(doRead&&!state.reading)n=howMuchToRead(nOrig,state);if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=true;n=0}state.length-=n;if(state.length===0&&!state.ended)state.needReadable=true;if(state.ended&&!state.endEmitted&&state.length===0)endReadable(this);return ret};function chunkInvalid(state,chunk){var er=null;if(!Buffer.isBuffer(chunk)&&"string"!==typeof chunk&&chunk!==null&&chunk!==undefined&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}return er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;if(state.length>0)emitReadable(stream);else endReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(state.emittedReadable)return;state.emittedReadable=true;if(state.sync)process.nextTick(function(){emitReadable_(stream)});else emitReadable_(stream)}function emitReadable_(stream){stream.emit("readable")}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(function(){maybeReadMore_(stream,state)})}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark){stream.read(0);if(len===state.length)break;else len=state.length}state.readingMore=false}Readable.prototype._read=function(n){this.emit("error",new Error("not implemented"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1;var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:cleanup;if(state.endEmitted)process.nextTick(endFn);else src.once("end",endFn);dest.on("unpipe",onunpipe);function onunpipe(readable){if(readable!==src)return;cleanup()}function onend(){dest.end()}var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);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);if(!dest._writableState||dest._writableState.needDrain)ondrain()}function onerror(er){unpipe();dest.removeListener("error",onerror);if(EE.listenerCount(dest,"error")===0)dest.emit("error",er)}if(!dest._events||!dest._events.error)dest.on("error",onerror);else if(isArray(dest._events.error))dest._events.error.unshift(onerror);else dest._events.error=[onerror,dest._events.error];function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){this.on("readable",pipeOnReadable);state.flowing=true;process.nextTick(function(){flow(src)})}return dest};function pipeOnDrain(src){return function(){var dest=this;var state=src._readableState;state.awaitDrain--;if(state.awaitDrain===0)flow(src)}}function flow(src){var state=src._readableState;var chunk;state.awaitDrain=0;function write(dest,i,list){var written=dest.write(chunk);if(false===written){state.awaitDrain++}}while(state.pipesCount&&null!==(chunk=src.read())){if(state.pipesCount===1)write(state.pipes,0,null);else forEach(state.pipes,write);src.emit("data",chunk);if(state.awaitDrain>0)return}if(state.pipesCount===0){state.flowing=false;if(EE.listenerCount(src,"data")>0)emitDataEvents(src);return}state.ranOut=true}function pipeOnReadable(){if(this._readableState.ranOut){this._readableState.ranOut=false;flow(this)}}Readable.prototype.unpipe=function(dest){var state=this._readableState;if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;this.removeListener("readable",pipeOnReadable);state.flowing=false;if(dest)dest.emit("unpipe",this);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;this.removeListener("readable",pipeOnReadable);state.flowing=false;for(var i=0;i<len;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);if(i===-1)return this;state.pipes.splice(i,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit("unpipe",this);return this};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if(ev==="data"&&!this._readableState.flowing)emitDataEvents(this);if(ev==="readable"&&this.readable){var state=this._readableState;if(!state.readableListening){state.readableListening=true;state.emittedReadable=false;state.needReadable=true;if(!state.reading){this.read(0)}else if(state.length){emitReadable(this,state)}}}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,true);this.emit("pause")};function emitDataEvents(stream,startPaused){var state=stream._readableState;if(state.flowing){throw new Error("Cannot switch to old mode now.")}var paused=startPaused||false;var readable=false;stream.readable=true;stream.pipe=Stream.prototype.pipe;stream.on=stream.addListener=Stream.prototype.on;stream.on("readable",function(){readable=true;var c;while(!paused&&null!==(c=stream.read()))stream.emit("data",c);if(c===null){readable=false;stream._readableState.needReadable=true}});stream.pause=function(){paused=true;this.emit("pause")};stream.resume=function(){paused=false;if(readable)process.nextTick(function(){stream.emit("readable")});else this.read(0);this.emit("resume")};stream.emit("readable")}Readable.prototype.wrap=function(stream){var state=this._readableState;var paused=false;var self=this;stream.on("end",function(){if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)self.push(chunk)}self.push(null)});stream.on("data",function(chunk){if(state.decoder)chunk=state.decoder.write(chunk);if(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=self.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(typeof stream[i]==="function"&&typeof this[i]==="undefined"){this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i)}}var events=["error","close","destroy","pause","resume"];forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))});self._read=function(n){if(paused){paused=false;stream.resume()}};return self};Readable._fromList=fromList;function fromList(n,state){var list=state.buffer;var length=state.length;var stringMode=!!state.decoder;var objectMode=!!state.objectMode;var ret;if(list.length===0)return null;if(length===0)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length){if(stringMode)ret=list.join("");else ret=Buffer.concat(list,length);list.length=0}else{if(n<list[0].length){var buf=list[0];ret=buf.slice(0,n);list[0]=buf.slice(n)}else if(n===list[0].length){ret=list.shift()}else{if(stringMode)ret="";else ret=new Buffer(n);var c=0;for(var i=0,l=list.length;i<l&&c<n;i++){var buf=list[0];var cpy=Math.min(n-c,buf.length);if(stringMode)ret+=buf.slice(0,cpy);else buf.copy(ret,c,0,cpy);if(cpy<buf.length)list[0]=buf.slice(cpy);else list.shift();c+=cpy}}}return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error("endReadable called on non-empty stream");if(!state.endEmitted&&state.calledRead){state.ended=true;process.nextTick(function(){if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end")}})}}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++){f(xs[i],i)}}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i}return-1}}).call(this,require("_process"))},{_process:171,buffer:17,"core-util-is":216,events:162,inherits:217,isarray:218,stream:187,"string_decoder/":219}],214:[function(require,module,exports){arguments[4][180][0].apply(exports,arguments)},{"./_stream_duplex":211,"core-util-is":216,dup:180,inherits:217}],215:[function(require,module,exports){(function(process){module.exports=Writable;var Buffer=require("buffer").Buffer;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var Stream=require("stream");util.inherits(Writable,Stream);function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb}function WritableState(options,stream){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||hwm===0?hwm:16*1024;this.objectMode=!!options.objectMode;this.highWaterMark=~~this.highWaterMark;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;var noDecode=options.decodeStrings===false; | |
this.decodeStrings=!noDecode;this.defaultEncoding=options.defaultEncoding||"utf8";this.length=0;this.writing=false;this.sync=true;this.bufferProcessing=false;this.onwrite=function(er){onwrite(stream,er)};this.writecb=null;this.writelen=0;this.buffer=[];this.errorEmitted=false}function Writable(options){var Duplex=require("./_stream_duplex");if(!(this instanceof Writable)&&!(this instanceof Duplex))return new Writable(options);this._writableState=new WritableState(options,this);this.writable=true;Stream.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))};function writeAfterEnd(stream,state,cb){var er=new Error("write after end");stream.emit("error",er);process.nextTick(function(){cb(er)})}function validChunk(stream,state,chunk,cb){var valid=true;if(!Buffer.isBuffer(chunk)&&"string"!==typeof chunk&&chunk!==null&&chunk!==undefined&&!state.objectMode){var er=new TypeError("Invalid non-string/buffer chunk");stream.emit("error",er);process.nextTick(function(){cb(er)});valid=false}return valid}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;if(typeof encoding==="function"){cb=encoding;encoding=null}if(Buffer.isBuffer(chunk))encoding="buffer";else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=="function")cb=function(){};if(state.ended)writeAfterEnd(this,state,cb);else if(validChunk(this,state,chunk,cb))ret=writeOrBuffer(this,state,chunk,encoding,cb);return ret};function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=new Buffer(chunk,encoding)}return chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding);if(Buffer.isBuffer(chunk))encoding="buffer";var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(!ret)state.needDrain=true;if(state.writing)state.buffer.push(new WriteReq(chunk,encoding,cb));else doWrite(stream,state,len,chunk,encoding,cb);return ret}function doWrite(stream,state,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;stream._write(chunk,encoding,state.onwrite);state.sync=false}function onwriteError(stream,state,sync,er,cb){if(sync)process.nextTick(function(){cb(er)});else cb(er);stream._writableState.errorEmitted=true;stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0}function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(stream,state);if(!finished&&!state.bufferProcessing&&state.buffer.length)clearBuffer(stream,state);if(sync){process.nextTick(function(){afterWrite(stream,state,finished,cb)})}else{afterWrite(stream,state,finished,cb)}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);cb();if(finished)finishMaybe(stream,state)}function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit("drain")}}function clearBuffer(stream,state){state.bufferProcessing=true;for(var c=0;c<state.buffer.length;c++){var entry=state.buffer[c];var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,len,chunk,encoding,cb);if(state.writing){c++;break}}state.bufferProcessing=false;if(c<state.buffer.length)state.buffer=state.buffer.slice(c);else state.buffer.length=0}Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))};Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==="function"){cb=chunk;chunk=null;encoding=null}else if(typeof encoding==="function"){cb=encoding;encoding=null}if(typeof chunk!=="undefined"&&chunk!==null)this.write(chunk,encoding);if(!state.ending&&!state.finished)endWritable(this,state,cb)};function needFinish(stream,state){return state.ending&&state.length===0&&!state.finished&&!state.writing}function finishMaybe(stream,state){var need=needFinish(stream,state);if(need){state.finished=true;stream.emit("finish")}return need}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)process.nextTick(cb);else stream.once("finish",cb)}state.ended=true}}).call(this,require("_process"))},{"./_stream_duplex":211,_process:171,buffer:17,"core-util-is":216,inherits:217,stream:187}],216:[function(require,module,exports){(function(Buffer){function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;function isBuffer(arg){return Buffer.isBuffer(arg)}exports.isBuffer=isBuffer;function objectToString(o){return Object.prototype.toString.call(o)}}).call(this,require("buffer").Buffer)},{buffer:17}],217:[function(require,module,exports){arguments[4][168][0].apply(exports,arguments)},{dup:168}],218:[function(require,module,exports){arguments[4][169][0].apply(exports,arguments)},{dup:169}],219:[function(require,module,exports){arguments[4][188][0].apply(exports,arguments)},{buffer:17,dup:188}],220:[function(require,module,exports){arguments[4][184][0].apply(exports,arguments)},{"./lib/_stream_duplex.js":211,"./lib/_stream_passthrough.js":212,"./lib/_stream_readable.js":213,"./lib/_stream_transform.js":214,"./lib/_stream_writable.js":215,dup:184,stream:187}],221:[function(require,module,exports){function Caseless(dict){this.dict=dict}Caseless.prototype.set=function(name,value,clobber){if(typeof name==="object"){for(var i in name){this.set(i,name[i],value)}}else{if(typeof clobber==="undefined")clobber=true;var has=this.has(name);if(!clobber&&has)this.dict[has]=this.dict[has]+","+value;else this.dict[has||name]=value;return has}};Caseless.prototype.has=function(name){var keys=Object.keys(this.dict),name=name.toLowerCase();for(var i=0;i<keys.length;i++){if(keys[i].toLowerCase()===name)return keys[i]}return false};Caseless.prototype.get=function(name){name=name.toLowerCase();var result,key;var headers=this.dict;Object.keys(headers).forEach(function(key){_key=key.toLowerCase();if(name===_key)result=headers[key]});return result};Caseless.prototype.swap=function(name){var has=this.has(name);if(!has)throw new Error('There is no header than matches "'+name+'"');this.dict[name]=this.dict[has];delete this.dict[has]};Caseless.prototype.del=function(name){var has=this.has(name);return delete this.dict[has||name]};module.exports=function(dict){return new Caseless(dict)};module.exports.httpify=function(resp,headers){var c=new Caseless(headers);resp.setHeader=function(key,value,clobber){return c.set(key,value,clobber)};resp.hasHeader=function(key){return c.has(key)};resp.getHeader=function(key){return c.get(key)};resp.removeHeader=function(key){return c.del(key)};resp.headers=c.dict;return c}},{}],222:[function(require,module,exports){(function(Buffer){var util=require("util");var Stream=require("stream").Stream;var DelayedStream=require("delayed-stream");module.exports=CombinedStream;function CombinedStream(){this.writable=false;this.readable=true;this.dataSize=0;this.maxDataSize=2*1024*1024;this.pauseStreams=true;this._released=false;this._streams=[];this._currentStream=null}util.inherits(CombinedStream,Stream);CombinedStream.create=function(options){var combinedStream=new this;options=options||{};for(var option in options){combinedStream[option]=options[option]}return combinedStream};CombinedStream.isStreamLike=function(stream){return typeof stream!=="function"&&typeof stream!=="string"&&typeof stream!=="boolean"&&typeof stream!=="number"&&!Buffer.isBuffer(stream)};CombinedStream.prototype.append=function(stream){var isStreamLike=CombinedStream.isStreamLike(stream);if(isStreamLike){if(!(stream instanceof DelayedStream)){var newStream=DelayedStream.create(stream,{maxDataSize:Infinity,pauseStream:this.pauseStreams});stream.on("data",this._checkDataSize.bind(this));stream=newStream}this._handleErrors(stream);if(this.pauseStreams){stream.pause()}}this._streams.push(stream);return this};CombinedStream.prototype.pipe=function(dest,options){Stream.prototype.pipe.call(this,dest,options);this.resume();return dest};CombinedStream.prototype._getNext=function(){this._currentStream=null;var stream=this._streams.shift();if(typeof stream=="undefined"){this.end();return}if(typeof stream!=="function"){this._pipeNext(stream);return}var getStream=stream;getStream(function(stream){var isStreamLike=CombinedStream.isStreamLike(stream);if(isStreamLike){stream.on("data",this._checkDataSize.bind(this));this._handleErrors(stream)}this._pipeNext(stream)}.bind(this))};CombinedStream.prototype._pipeNext=function(stream){this._currentStream=stream;var isStreamLike=CombinedStream.isStreamLike(stream);if(isStreamLike){stream.on("end",this._getNext.bind(this));stream.pipe(this,{end:false});return}var value=stream;this.write(value);this._getNext()};CombinedStream.prototype._handleErrors=function(stream){var self=this;stream.on("error",function(err){self._emitError(err)})};CombinedStream.prototype.write=function(data){this.emit("data",data)};CombinedStream.prototype.pause=function(){if(!this.pauseStreams){return}if(this.pauseStreams&&this._currentStream&&typeof this._currentStream.pause=="function")this._currentStream.pause();this.emit("pause")};CombinedStream.prototype.resume=function(){if(!this._released){this._released=true;this.writable=true;this._getNext()}if(this.pauseStreams&&this._currentStream&&typeof this._currentStream.resume=="function")this._currentStream.resume();this.emit("resume")};CombinedStream.prototype.end=function(){this._reset();this.emit("end")};CombinedStream.prototype.destroy=function(){this._reset();this.emit("close")};CombinedStream.prototype._reset=function(){this.writable=false;this._streams=[];this._currentStream=null};CombinedStream.prototype._checkDataSize=function(){this._updateDataSize();if(this.dataSize<=this.maxDataSize){return}var message="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this._emitError(new Error(message))};CombinedStream.prototype._updateDataSize=function(){this.dataSize=0;var self=this;this._streams.forEach(function(stream){if(!stream.dataSize){return}self.dataSize+=stream.dataSize});if(this._currentStream&&this._currentStream.dataSize){this.dataSize+=this._currentStream.dataSize}};CombinedStream.prototype._emitError=function(err){this._reset();this.emit("error",err)}}).call(this,require("buffer").Buffer)},{buffer:17,"delayed-stream":223,stream:187,util:191}],223:[function(require,module,exports){var Stream=require("stream").Stream;var util=require("util");module.exports=DelayedStream;function DelayedStream(){this.source=null;this.dataSize=0;this.maxDataSize=1024*1024;this.pauseStream=true;this._maxDataSizeExceeded=false;this._released=false;this._bufferedEvents=[]}util.inherits(DelayedStream,Stream);DelayedStream.create=function(source,options){var delayedStream=new this;options=options||{};for(var option in options){delayedStream[option]=options[option]}delayedStream.source=source;var realEmit=source.emit;source.emit=function(){delayedStream._handleEmit(arguments);return realEmit.apply(source,arguments)};source.on("error",function(){});if(delayedStream.pauseStream){source.pause()}return delayedStream};DelayedStream.prototype.__defineGetter__("readable",function(){return this.source.readable});DelayedStream.prototype.resume=function(){if(!this._released){this.release()}this.source.resume()};DelayedStream.prototype.pause=function(){this.source.pause()};DelayedStream.prototype.release=function(){this._released=true;this._bufferedEvents.forEach(function(args){this.emit.apply(this,args)}.bind(this));this._bufferedEvents=[]};DelayedStream.prototype.pipe=function(){var r=Stream.prototype.pipe.apply(this,arguments);this.resume();return r};DelayedStream.prototype._handleEmit=function(args){if(this._released){this.emit.apply(this,args);return}if(args[0]==="data"){this.dataSize+=args[1].length;this._checkIfMaxDataSizeExceeded()}this._bufferedEvents.push(args)};DelayedStream.prototype._checkIfMaxDataSizeExceeded=function(){if(this._maxDataSizeExceeded){return}if(this.dataSize<=this.maxDataSize){return}this._maxDataSizeExceeded=true;var message="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this.emit("error",new Error(message))}},{stream:187,util:191}],224:[function(require,module,exports){module.exports=ForeverAgent;ForeverAgent.SSL=ForeverAgentSSL;var util=require("util"),Agent=require("http").Agent,net=require("net"),tls=require("tls"),AgentSSL=require("https").Agent;function ForeverAgent(options){var self=this;self.options=options||{};self.requests={};self.sockets={};self.freeSockets={};self.maxSockets=self.options.maxSockets||Agent.defaultMaxSockets;self.minSockets=self.options.minSockets||ForeverAgent.defaultMinSockets;self.on("free",function(socket,host,port){var name=host+":"+port;if(self.requests[name]&&self.requests[name].length){self.requests[name].shift().onSocket(socket)}else if(self.sockets[name].length<self.minSockets){if(!self.freeSockets[name])self.freeSockets[name]=[];self.freeSockets[name].push(socket);var onIdleError=function(){socket.destroy()};socket._onIdleError=onIdleError;socket.on("error",onIdleError)}else{socket.destroy()}})}util.inherits(ForeverAgent,Agent);ForeverAgent.defaultMinSockets=5;ForeverAgent.prototype.createConnection=net.createConnection;ForeverAgent.prototype.addRequestNoreuse=Agent.prototype.addRequest;ForeverAgent.prototype.addRequest=function(req,host,port){var name=host+":"+port;if(this.freeSockets[name]&&this.freeSockets[name].length>0&&!req.useChunkedEncodingByDefault){var idleSocket=this.freeSockets[name].pop();idleSocket.removeListener("error",idleSocket._onIdleError);delete idleSocket._onIdleError;req._reusedSocket=true;req.onSocket(idleSocket)}else{this.addRequestNoreuse(req,host,port)}};ForeverAgent.prototype.removeSocket=function(s,name,host,port){if(this.sockets[name]){var index=this.sockets[name].indexOf(s);if(index!==-1){this.sockets[name].splice(index,1)}}else if(this.sockets[name]&&this.sockets[name].length===0){delete this.sockets[name];delete this.requests[name]}if(this.freeSockets[name]){var index=this.freeSockets[name].indexOf(s);if(index!==-1){this.freeSockets[name].splice(index,1);if(this.freeSockets[name].length===0){delete this.freeSockets[name]}}}if(this.requests[name]&&this.requests[name].length){this.createSocket(name,host,port).emit("free")}};function ForeverAgentSSL(options){ForeverAgent.call(this,options)}util.inherits(ForeverAgentSSL,ForeverAgent);ForeverAgentSSL.prototype.createConnection=createConnectionSSL;ForeverAgentSSL.prototype.addRequestNoreuse=AgentSSL.prototype.addRequest;function createConnectionSSL(port,host,options){if(typeof port==="object"){options=port}else if(typeof host==="object"){options=host}else if(typeof options==="object"){options=options}else{options={}}if(typeof port==="number"){options.port=port}if(typeof host==="string"){options.host=host}return tls.connect(options)}},{http:163,https:167,net:1,tls:1,util:191}],225:[function(require,module,exports){(function(process,Buffer){var CombinedStream=require("combined-stream");var util=require("util");var path=require("path");var http=require("http");var https=require("https");var parseUrl=require("url").parse;var fs=require("fs");var mime=require("mime");var async=require("async");module.exports=FormData;function FormData(){this._overheadLength=0;this._valueLength=0;this._lengthRetrievers=[];CombinedStream.call(this)}util.inherits(FormData,CombinedStream);FormData.LINE_BREAK="\r\n";FormData.prototype.append=function(field,value,options){options=options||{};var append=CombinedStream.prototype.append.bind(this);if(typeof value=="number")value=""+value;if(util.isArray(value)){this._error(new Error("Arrays are not supported."));return}var header=this._multiPartHeader(field,value,options);var footer=this._multiPartFooter(field,value,options);append(header);append(value);append(footer);this._trackLength(header,value,options)};FormData.prototype._trackLength=function(header,value,options){var valueLength=0;if(options.knownLength!=null){valueLength+=+options.knownLength}else if(Buffer.isBuffer(value)){valueLength=value.length}else if(typeof value==="string"){valueLength=Buffer.byteLength(value)}this._valueLength+=valueLength;this._overheadLength+=Buffer.byteLength(header)+ +FormData.LINE_BREAK.length;if(!value||!value.path&&!(value.readable&&value.hasOwnProperty("httpVersion"))){return}if(!options.knownLength)this._lengthRetrievers.push(function(next){if(value.hasOwnProperty("fd")){if(value.end!=undefined&&value.end!=Infinity&&value.start!=undefined){next(null,value.end+1-(value.start?value.start:0))}else{fs.stat(value.path,function(err,stat){var fileSize;if(err){next(err);return}fileSize=stat.size-(value.start?value.start:0);next(null,fileSize)})}}else if(value.hasOwnProperty("httpVersion")){next(null,+value.headers["content-length"])}else if(value.hasOwnProperty("httpModule")){value.on("response",function(response){value.pause();next(null,+response.headers["content-length"])});value.resume()}else{next("Unknown stream")}})};FormData.prototype._multiPartHeader=function(field,value,options){var boundary=this.getBoundary();var header="";if(options.header!=null){header=options.header}else{header+="--"+boundary+FormData.LINE_BREAK+'Content-Disposition: form-data; name="'+field+'"';if(options.filename||value.path){header+='; filename="'+path.basename(options.filename||value.path)+'"'+FormData.LINE_BREAK+"Content-Type: "+(options.contentType||mime.lookup(options.filename||value.path))}else if(value.readable&&value.hasOwnProperty("httpVersion")){header+='; filename="'+path.basename(value.client._httpMessage.path)+'"'+FormData.LINE_BREAK+"Content-Type: "+value.headers["content-type"]}header+=FormData.LINE_BREAK+FormData.LINE_BREAK}return header};FormData.prototype._multiPartFooter=function(field,value,options){return function(next){var footer=FormData.LINE_BREAK;var lastPart=this._streams.length===0;if(lastPart){footer+=this._lastBoundary()}next(footer)}.bind(this)};FormData.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"};FormData.prototype.getHeaders=function(userHeaders){var formHeaders={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(var header in userHeaders){formHeaders[header.toLowerCase()]=userHeaders[header]}return formHeaders};FormData.prototype.getCustomHeaders=function(contentType){contentType=contentType?contentType:"multipart/form-data";var formHeaders={"content-type":contentType+"; boundary="+this.getBoundary(),"content-length":this.getLengthSync()};return formHeaders};FormData.prototype.getBoundary=function(){if(!this._boundary){this._generateBoundary()}return this._boundary};FormData.prototype._generateBoundary=function(){var boundary="--------------------------";for(var i=0;i<24;i++){boundary+=Math.floor(Math.random()*10).toString(16)}this._boundary=boundary};FormData.prototype.getLengthSync=function(debug){var knownLength=this._overheadLength+this._valueLength;if(this._streams.length){knownLength+=this._lastBoundary().length}if(this._lengthRetrievers.length){this._error(new Error("Cannot calculate proper length in synchronous way."))}return knownLength};FormData.prototype.getLength=function(cb){var knownLength=this._overheadLength+this._valueLength;if(this._streams.length){knownLength+=this._lastBoundary().length}if(!this._lengthRetrievers.length){process.nextTick(cb.bind(this,null,knownLength));return}async.parallel(this._lengthRetrievers,function(err,values){if(err){cb(err);return}values.forEach(function(length){knownLength+=length});cb(null,knownLength)})};FormData.prototype.submit=function(params,cb){var request,options,defaults={method:"post"};if(typeof params=="string"){params=parseUrl(params);options=populate({port:params.port,path:params.pathname,host:params.hostname},defaults)}else{options=populate(params,defaults);if(!options.port){options.port=options.protocol=="https:"?443:80}}options.headers=this.getHeaders(params.headers);if(params.protocol=="https:"){request=https.request(options)}else{request=http.request(options)}this.getLength(function(err,length){request.setHeader("Content-Length",length);this.pipe(request);if(cb){request.on("error",cb);request.on("response",cb.bind(this,null))}}.bind(this));return request};FormData.prototype._error=function(err){if(this.error)return;this.error=err;this.pause();this.emit("error",err)};function populate(dst,src){for(var prop in src){if(!dst[prop])dst[prop]=src[prop]}return dst}}).call(this,require("_process"),require("buffer").Buffer)},{_process:171,async:226,buffer:17,"combined-stream":222,fs:1,http:163,https:167,mime:227,path:170,url:189,util:191}],226:[function(require,module,exports){(function(process){(function(){var async={};var root,previous_async;root=this;if(root!=null){previous_async=root.async}async.noConflict=function(){root.async=previous_async;return async};function only_once(fn){var called=false;return function(){if(called)throw new Error("Callback was already called.");called=true;fn.apply(root,arguments)}}var _toString=Object.prototype.toString;var _isArray=Array.isArray||function(obj){return _toString.call(obj)==="[object Array]"};var _each=function(arr,iterator){if(arr.forEach){return arr.forEach(iterator)}for(var i=0;i<arr.length;i+=1){iterator(arr[i],i,arr)}};var _map=function(arr,iterator){if(arr.map){return arr.map(iterator)}var results=[];_each(arr,function(x,i,a){results.push(iterator(x,i,a))});return results};var _reduce=function(arr,iterator,memo){if(arr.reduce){return arr.reduce(iterator,memo)}_each(arr,function(x,i,a){memo=iterator(memo,x,i,a)});return memo};var _keys=function(obj){if(Object.keys){return Object.keys(obj)}var keys=[];for(var k in obj){if(obj.hasOwnProperty(k)){keys.push(k)}}return keys};if(typeof process==="undefined"||!process.nextTick){if(typeof setImmediate==="function"){async.nextTick=function(fn){setImmediate(fn)};async.setImmediate=async.nextTick}else{async.nextTick=function(fn){setTimeout(fn,0)};async.setImmediate=async.nextTick}}else{async.nextTick=process.nextTick;if(typeof setImmediate!=="undefined"){async.setImmediate=function(fn){setImmediate(fn)}}else{async.setImmediate=async.nextTick}}async.each=function(arr,iterator,callback){callback=callback||function(){};if(!arr.length){return callback()}var completed=0;_each(arr,function(x){iterator(x,only_once(done))});function done(err){if(err){callback(err);callback=function(){}}else{completed+=1;if(completed>=arr.length){callback()}}}};async.forEach=async.each;async.eachSeries=function(arr,iterator,callback){callback=callback||function(){};if(!arr.length){return callback()}var completed=0;var iterate=function(){iterator(arr[completed],function(err){if(err){callback(err);callback=function(){}}else{completed+=1;if(completed>=arr.length){callback()}else{iterate()}}})};iterate()};async.forEachSeries=async.eachSeries;async.eachLimit=function(arr,limit,iterator,callback){var fn=_eachLimit(limit);fn.apply(null,[arr,iterator,callback])};async.forEachLimit=async.eachLimit;var _eachLimit=function(limit){return function(arr,iterator,callback){callback=callback||function(){};if(!arr.length||limit<=0){return callback()}var completed=0;var started=0;var running=0;(function replenish(){if(completed>=arr.length){return callback()}while(running<limit&&started<arr.length){started+=1;running+=1;iterator(arr[started-1],function(err){if(err){callback(err);callback=function(){}}else{completed+=1;running-=1;if(completed>=arr.length){callback()}else{replenish()}}})}})()}};var doParallel=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.each].concat(args))}};var doParallelLimit=function(limit,fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[_eachLimit(limit)].concat(args))}};var doSeries=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.eachSeries].concat(args))}};var _asyncMap=function(eachfn,arr,iterator,callback){arr=_map(arr,function(x,i){return{index:i,value:x}});if(!callback){eachfn(arr,function(x,callback){iterator(x.value,function(err){callback(err)})})}else{var results=[];eachfn(arr,function(x,callback){iterator(x.value,function(err,v){results[x.index]=v;callback(err)})},function(err){callback(err,results)})}};async.map=doParallel(_asyncMap);async.mapSeries=doSeries(_asyncMap);async.mapLimit=function(arr,limit,iterator,callback){return _mapLimit(limit)(arr,iterator,callback)};var _mapLimit=function(limit){return doParallelLimit(limit,_asyncMap)};async.reduce=function(arr,memo,iterator,callback){async.eachSeries(arr,function(x,callback){iterator(memo,x,function(err,v){memo=v;callback(err)})},function(err){callback(err,memo)})};async.inject=async.reduce;async.foldl=async.reduce;async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,function(x){return x}).reverse();async.reduce(reversed,memo,iterator,callback)};async.foldr=async.reduceRight;var _filter=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}});eachfn(arr,function(x,callback){iterator(x.value,function(v){if(v){results.push(x)}callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.filter=doParallel(_filter);async.filterSeries=doSeries(_filter);async.select=async.filter;async.selectSeries=async.filterSeries;var _reject=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}});eachfn(arr,function(x,callback){iterator(x.value,function(v){if(!v){results.push(x)}callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.reject=doParallel(_reject);async.rejectSeries=doSeries(_reject);var _detect=function(eachfn,arr,iterator,main_callback){eachfn(arr,function(x,callback){iterator(x,function(result){if(result){main_callback(x);main_callback=function(){}}else{callback()}})},function(err){main_callback()})};async.detect=doParallel(_detect);async.detectSeries=doSeries(_detect);async.some=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){if(v){main_callback(true);main_callback=function(){}}callback()})},function(err){main_callback(false)})};async.any=async.some;async.every=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){if(!v){main_callback(false);main_callback=function(){}}callback()})},function(err){main_callback(true)})};async.all=async.every;async.sortBy=function(arr,iterator,callback){async.map(arr,function(x,callback){iterator(x,function(err,criteria){if(err){callback(err)}else{callback(null,{value:x,criteria:criteria})}})},function(err,results){if(err){return callback(err)}else{var fn=function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0};callback(null,_map(results.sort(fn),function(x){return x.value}))}})};async.auto=function(tasks,callback){callback=callback||function(){};var keys=_keys(tasks);var remainingTasks=keys.length;if(!remainingTasks){return callback()}var results={};var listeners=[];var addListener=function(fn){listeners.unshift(fn)};var removeListener=function(fn){for(var i=0;i<listeners.length;i+=1){if(listeners[i]===fn){listeners.splice(i,1);return}}};var taskComplete=function(){remainingTasks--;_each(listeners.slice(0),function(fn){fn()})};addListener(function(){if(!remainingTasks){var theCallback=callback;callback=function(){};theCallback(null,results)}});_each(keys,function(k){var task=_isArray(tasks[k])?tasks[k]:[tasks[k]];var taskCallback=function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}if(err){var safeResults={};_each(_keys(results),function(rkey){safeResults[rkey]=results[rkey]});safeResults[k]=args;callback(err,safeResults);callback=function(){}}else{results[k]=args;async.setImmediate(taskComplete)}};var requires=task.slice(0,Math.abs(task.length-1))||[];var ready=function(){return _reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},true)&&!results.hasOwnProperty(k)};if(ready()){task[task.length-1](taskCallback,results)}else{var listener=function(){if(ready()){removeListener(listener);task[task.length-1](taskCallback,results)}};addListener(listener)}})};async.retry=function(times,task,callback){var DEFAULT_TIMES=5;var attempts=[];if(typeof times==="function"){callback=task;task=times;times=DEFAULT_TIMES}times=parseInt(times,10)||DEFAULT_TIMES;var wrappedTask=function(wrappedCallback,wrappedResults){var retryAttempt=function(task,finalAttempt){return function(seriesCallback){task(function(err,result){seriesCallback(!err||finalAttempt,{err:err,result:result})},wrappedResults)}};while(times){attempts.push(retryAttempt(task,!(times-=1)))}async.series(attempts,function(done,data){data=data[data.length-1];(wrappedCallback||callback)(data.err,data.result)})};return callback?wrappedTask():wrappedTask};async.waterfall=function(tasks,callback){callback=callback||function(){};if(!_isArray(tasks)){var err=new Error("First argument to waterfall must be an array of functions");return callback(err)}if(!tasks.length){return callback()}var wrapIterator=function(iterator){return function(err){if(err){callback.apply(null,arguments);callback=function(){}}else{var args=Array.prototype.slice.call(arguments,1);var next=iterator.next();if(next){args.push(wrapIterator(next))}else{args.push(callback)}async.setImmediate(function(){iterator.apply(null,args)})}}};wrapIterator(async.iterator(tasks))()};var _parallel=function(eachfn,tasks,callback){callback=callback||function(){};if(_isArray(tasks)){eachfn.map(tasks,function(fn,callback){if(fn){fn(function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}callback.call(null,err,args)})}},callback)}else{var results={};eachfn.each(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}results[k]=args;callback(err)})},function(err){callback(err,results)})}};async.parallel=function(tasks,callback){_parallel({map:async.map,each:async.each},tasks,callback)};async.parallelLimit=function(tasks,limit,callback){_parallel({map:_mapLimit(limit),each:_eachLimit(limit)},tasks,callback)};async.series=function(tasks,callback){callback=callback||function(){};if(_isArray(tasks)){async.mapSeries(tasks,function(fn,callback){if(fn){fn(function(err){var args=Array.prototype.slice.call(arguments,1); | |
if(args.length<=1){args=args[0]}callback.call(null,err,args)})}},callback)}else{var results={};async.eachSeries(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}results[k]=args;callback(err)})},function(err){callback(err,results)})}};async.iterator=function(tasks){var makeCallback=function(index){var fn=function(){if(tasks.length){tasks[index].apply(null,arguments)}return fn.next()};fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null};return fn};return makeCallback(0)};async.apply=function(fn){var args=Array.prototype.slice.call(arguments,1);return function(){return fn.apply(null,args.concat(Array.prototype.slice.call(arguments)))}};var _concat=function(eachfn,arr,fn,callback){var r=[];eachfn(arr,function(x,cb){fn(x,function(err,y){r=r.concat(y||[]);cb(err)})},function(err){callback(err,r)})};async.concat=doParallel(_concat);async.concatSeries=doSeries(_concat);async.whilst=function(test,iterator,callback){if(test()){iterator(function(err){if(err){return callback(err)}async.whilst(test,iterator,callback)})}else{callback()}};async.doWhilst=function(iterator,test,callback){iterator(function(err){if(err){return callback(err)}var args=Array.prototype.slice.call(arguments,1);if(test.apply(null,args)){async.doWhilst(iterator,test,callback)}else{callback()}})};async.until=function(test,iterator,callback){if(!test()){iterator(function(err){if(err){return callback(err)}async.until(test,iterator,callback)})}else{callback()}};async.doUntil=function(iterator,test,callback){iterator(function(err){if(err){return callback(err)}var args=Array.prototype.slice.call(arguments,1);if(!test.apply(null,args)){async.doUntil(iterator,test,callback)}else{callback()}})};async.queue=function(worker,concurrency){if(concurrency===undefined){concurrency=1}function _insert(q,data,pos,callback){if(!q.started){q.started=true}if(!_isArray(data)){data=[data]}if(data.length==0){return async.setImmediate(function(){if(q.drain){q.drain()}})}_each(data,function(task){var item={data:task,callback:typeof callback==="function"?callback:null};if(pos){q.tasks.unshift(item)}else{q.tasks.push(item)}if(q.saturated&&q.tasks.length===q.concurrency){q.saturated()}async.setImmediate(q.process)})}var workers=0;var q={tasks:[],concurrency:concurrency,saturated:null,empty:null,drain:null,started:false,paused:false,push:function(data,callback){_insert(q,data,false,callback)},kill:function(){q.drain=null;q.tasks=[]},unshift:function(data,callback){_insert(q,data,true,callback)},process:function(){if(!q.paused&&workers<q.concurrency&&q.tasks.length){var task=q.tasks.shift();if(q.empty&&q.tasks.length===0){q.empty()}workers+=1;var next=function(){workers-=1;if(task.callback){task.callback.apply(task,arguments)}if(q.drain&&q.tasks.length+workers===0){q.drain()}q.process()};var cb=only_once(next);worker(task.data,cb)}},length:function(){return q.tasks.length},running:function(){return workers},idle:function(){return q.tasks.length+workers===0},pause:function(){if(q.paused===true){return}q.paused=true;q.process()},resume:function(){if(q.paused===false){return}q.paused=false;q.process()}};return q};async.priorityQueue=function(worker,concurrency){function _compareTasks(a,b){return a.priority-b.priority}function _binarySearch(sequence,item,compare){var beg=-1,end=sequence.length-1;while(beg<end){var mid=beg+(end-beg+1>>>1);if(compare(item,sequence[mid])>=0){beg=mid}else{end=mid-1}}return beg}function _insert(q,data,priority,callback){if(!q.started){q.started=true}if(!_isArray(data)){data=[data]}if(data.length==0){return async.setImmediate(function(){if(q.drain){q.drain()}})}_each(data,function(task){var item={data:task,priority:priority,callback:typeof callback==="function"?callback:null};q.tasks.splice(_binarySearch(q.tasks,item,_compareTasks)+1,0,item);if(q.saturated&&q.tasks.length===q.concurrency){q.saturated()}async.setImmediate(q.process)})}var q=async.queue(worker,concurrency);q.push=function(data,priority,callback){_insert(q,data,priority,callback)};delete q.unshift;return q};async.cargo=function(worker,payload){var working=false,tasks=[];var cargo={tasks:tasks,payload:payload,saturated:null,empty:null,drain:null,drained:true,push:function(data,callback){if(!_isArray(data)){data=[data]}_each(data,function(task){tasks.push({data:task,callback:typeof callback==="function"?callback:null});cargo.drained=false;if(cargo.saturated&&tasks.length===payload){cargo.saturated()}});async.setImmediate(cargo.process)},process:function process(){if(working)return;if(tasks.length===0){if(cargo.drain&&!cargo.drained)cargo.drain();cargo.drained=true;return}var ts=typeof payload==="number"?tasks.splice(0,payload):tasks.splice(0,tasks.length);var ds=_map(ts,function(task){return task.data});if(cargo.empty)cargo.empty();working=true;worker(ds,function(){working=false;var args=arguments;_each(ts,function(data){if(data.callback){data.callback.apply(null,args)}});process()})},length:function(){return tasks.length},running:function(){return working}};return cargo};var _console_fn=function(name){return function(fn){var args=Array.prototype.slice.call(arguments,1);fn.apply(null,args.concat([function(err){var args=Array.prototype.slice.call(arguments,1);if(typeof console!=="undefined"){if(err){if(console.error){console.error(err)}}else if(console[name]){_each(args,function(x){console[name](x)})}}}]))}};async.log=_console_fn("log");async.dir=_console_fn("dir");async.memoize=function(fn,hasher){var memo={};var queues={};hasher=hasher||function(x){return x};var memoized=function(){var args=Array.prototype.slice.call(arguments);var callback=args.pop();var key=hasher.apply(null,args);if(key in memo){async.nextTick(function(){callback.apply(null,memo[key])})}else if(key in queues){queues[key].push(callback)}else{queues[key]=[callback];fn.apply(null,args.concat([function(){memo[key]=arguments;var q=queues[key];delete queues[key];for(var i=0,l=q.length;i<l;i++){q[i].apply(null,arguments)}}]))}};memoized.memo=memo;memoized.unmemoized=fn;return memoized};async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}};async.times=function(count,iterator,callback){var counter=[];for(var i=0;i<count;i++){counter.push(i)}return async.map(counter,iterator,callback)};async.timesSeries=function(count,iterator,callback){var counter=[];for(var i=0;i<count;i++){counter.push(i)}return async.mapSeries(counter,iterator,callback)};async.seq=function(){var fns=arguments;return function(){var that=this;var args=Array.prototype.slice.call(arguments);var callback=args.pop();async.reduce(fns,args,function(newargs,fn,cb){fn.apply(that,newargs.concat([function(){var err=arguments[0];var nextargs=Array.prototype.slice.call(arguments,1);cb(err,nextargs)}]))},function(err,results){callback.apply(that,[err].concat(results))})}};async.compose=function(){return async.seq.apply(null,Array.prototype.reverse.call(arguments))};var _applyEach=function(eachfn,fns){var go=function(){var that=this;var args=Array.prototype.slice.call(arguments);var callback=args.pop();return eachfn(fns,function(fn,cb){fn.apply(that,args.concat([cb]))},callback)};if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);return go.apply(this,args)}else{return go}};async.applyEach=doParallel(_applyEach);async.applyEachSeries=doSeries(_applyEach);async.forever=function(fn,callback){function next(err){if(err){if(callback){return callback(err)}throw err}fn(next)}next()};if(typeof module!=="undefined"&&module.exports){module.exports=async}else if(typeof define!=="undefined"&&define.amd){define([],function(){return async})}else{root.async=async}})()}).call(this,require("_process"))},{_process:171}],227:[function(require,module,exports){(function(process,__dirname){var path=require("path");var fs=require("fs");function Mime(){this.types=Object.create(null);this.extensions=Object.create(null)}Mime.prototype.define=function(map){for(var type in map){var exts=map[type];for(var i=0;i<exts.length;i++){if(process.env.DEBUG_MIME&&this.types[exts]){console.warn(this._loading.replace(/.*\//,""),'changes "'+exts[i]+'" extension type from '+this.types[exts]+" to "+type)}this.types[exts[i]]=type}if(!this.extensions[type]){this.extensions[type]=exts[0]}}};Mime.prototype.load=function(file){this._loading=file;var map={},content=fs.readFileSync(file,"ascii"),lines=content.split(/[\r\n]+/);lines.forEach(function(line){var fields=line.replace(/\s*#.*|^\s*|\s*$/g,"").split(/\s+/);map[fields.shift()]=fields});this.define(map);this._loading=null};Mime.prototype.lookup=function(path,fallback){var ext=path.replace(/.*[\.\/\\]/,"").toLowerCase();return this.types[ext]||fallback||this.default_type};Mime.prototype.extension=function(mimeType){var type=mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase();return this.extensions[type]};var mime=new Mime;mime.load(path.join(__dirname,"types/mime.types"));mime.load(path.join(__dirname,"types/node.types"));mime.default_type=mime.lookup("bin");mime.Mime=Mime;mime.charsets={lookup:function(mimeType,fallback){return/^text\//.test(mimeType)?"UTF-8":fallback}};module.exports=mime}).call(this,require("_process"),"/node_modules/request/node_modules/form-data/node_modules/mime")},{_process:171,fs:1,path:170}],228:[function(require,module,exports){module.exports=require("./lib")},{"./lib":231}],229:[function(require,module,exports){var Url=require("url");var Hoek=require("hoek");var Cryptiles=require("cryptiles");var Crypto=require("./crypto");var Utils=require("./utils");var internals={};exports.header=function(uri,method,options){var result={field:"",artifacts:{}};if(!uri||typeof uri!=="string"&&typeof uri!=="object"||!method||typeof method!=="string"||!options||typeof options!=="object"){result.err="Invalid argument type";return result}var timestamp=options.timestamp||Math.floor((Utils.now()+(options.localtimeOffsetMsec||0))/1e3);var credentials=options.credentials;if(!credentials||!credentials.id||!credentials.key||!credentials.algorithm){result.err="Invalid credential object";return result}if(Crypto.algorithms.indexOf(credentials.algorithm)===-1){result.err="Unknown algorithm";return result}if(typeof uri==="string"){uri=Url.parse(uri)}var artifacts={ts:timestamp,nonce:options.nonce||Cryptiles.randomString(6),method:method,resource:uri.pathname+(uri.search||""),host:uri.hostname,port:uri.port||(uri.protocol==="http:"?80:443),hash:options.hash,ext:options.ext,app:options.app,dlg:options.dlg};result.artifacts=artifacts;if(!artifacts.hash&&options.hasOwnProperty("payload")){artifacts.hash=Crypto.calculatePayloadHash(options.payload,credentials.algorithm,options.contentType)}var mac=Crypto.calculateMac("header",credentials,artifacts);var hasExt=artifacts.ext!==null&&artifacts.ext!==undefined&&artifacts.ext!=="";var header='Hawk id="'+credentials.id+'", ts="'+artifacts.ts+'", nonce="'+artifacts.nonce+(artifacts.hash?'", hash="'+artifacts.hash:"")+(hasExt?'", ext="'+Utils.escapeHeaderAttribute(artifacts.ext):"")+'", mac="'+mac+'"';if(artifacts.app){header+=', app="'+artifacts.app+(artifacts.dlg?'", dlg="'+artifacts.dlg:"")+'"'}result.field=header;return result};exports.authenticate=function(res,credentials,artifacts,options){artifacts=Hoek.clone(artifacts);options=options||{};if(res.headers["www-authenticate"]){var attributes=Utils.parseAuthorizationHeader(res.headers["www-authenticate"],["ts","tsm","error"]);if(attributes instanceof Error){return false}if(attributes.ts){var tsm=Crypto.calculateTsMac(attributes.ts,credentials);if(tsm!==attributes.tsm){return false}}}if(!res.headers["server-authorization"]&&!options.required){return true}var attributes=Utils.parseAuthorizationHeader(res.headers["server-authorization"],["mac","ext","hash"]);if(attributes instanceof Error){return false}artifacts.ext=attributes.ext;artifacts.hash=attributes.hash;var mac=Crypto.calculateMac("response",credentials,artifacts);if(mac!==attributes.mac){return false}if(!options.hasOwnProperty("payload")){return true}if(!attributes.hash){return false}var calculatedHash=Crypto.calculatePayloadHash(options.payload,credentials.algorithm,res.headers["content-type"]);return calculatedHash===attributes.hash};exports.getBewit=function(uri,options){if(!uri||typeof uri!=="string"&&typeof uri!=="object"||!options||typeof options!=="object"||!options.ttlSec){return""}options.ext=options.ext===null||options.ext===undefined?"":options.ext;var now=Utils.now()+(options.localtimeOffsetMsec||0);var credentials=options.credentials;if(!credentials||!credentials.id||!credentials.key||!credentials.algorithm){return""}if(Crypto.algorithms.indexOf(credentials.algorithm)===-1){return""}if(typeof uri==="string"){uri=Url.parse(uri)}var exp=Math.floor(now/1e3)+options.ttlSec;var mac=Crypto.calculateMac("bewit",credentials,{ts:exp,nonce:"",method:"GET",resource:uri.pathname+(uri.search||""),host:uri.hostname,port:uri.port||(uri.protocol==="http:"?80:443),ext:options.ext});var bewit=credentials.id+"\\"+exp+"\\"+mac+"\\"+options.ext;return Utils.base64urlEncode(bewit)};exports.message=function(host,port,message,options){if(!host||typeof host!=="string"||!port||typeof port!=="number"||message===null||message===undefined||typeof message!=="string"||!options||typeof options!=="object"){return null}var timestamp=options.timestamp||Math.floor((Utils.now()+(options.localtimeOffsetMsec||0))/1e3);var credentials=options.credentials;if(!credentials||!credentials.id||!credentials.key||!credentials.algorithm){return null}if(Crypto.algorithms.indexOf(credentials.algorithm)===-1){return null}var artifacts={ts:timestamp,nonce:options.nonce||Cryptiles.randomString(6),host:host,port:port,hash:Crypto.calculatePayloadHash(message,credentials.algorithm)};var result={id:credentials.id,ts:artifacts.ts,nonce:artifacts.nonce,hash:artifacts.hash,mac:Crypto.calculateMac("message",credentials,artifacts)};return result}},{"./crypto":230,"./utils":233,cryptiles:236,hoek:238,url:189}],230:[function(require,module,exports){var Crypto=require("crypto");var Url=require("url");var Utils=require("./utils");var internals={};exports.headerVersion="1";exports.algorithms=["sha1","sha256"];exports.calculateMac=function(type,credentials,options){var normalized=exports.generateNormalizedString(type,options);var hmac=Crypto.createHmac(credentials.algorithm,credentials.key).update(normalized);var digest=hmac.digest("base64");return digest};exports.generateNormalizedString=function(type,options){var normalized="hawk."+exports.headerVersion+"."+type+"\n"+options.ts+"\n"+options.nonce+"\n"+(options.method||"").toUpperCase()+"\n"+(options.resource||"")+"\n"+options.host.toLowerCase()+"\n"+options.port+"\n"+(options.hash||"")+"\n";if(options.ext){normalized+=options.ext.replace("\\","\\\\").replace("\n","\\n")}normalized+="\n";if(options.app){normalized+=options.app+"\n"+(options.dlg||"")+"\n"}return normalized};exports.calculatePayloadHash=function(payload,algorithm,contentType){var hash=exports.initializePayloadHash(algorithm,contentType);hash.update(payload||"");return exports.finalizePayloadHash(hash)};exports.initializePayloadHash=function(algorithm,contentType){var hash=Crypto.createHash(algorithm);hash.update("hawk."+exports.headerVersion+".payload\n");hash.update(Utils.parseContentType(contentType)+"\n");return hash};exports.finalizePayloadHash=function(hash){hash.update("\n");return hash.digest("base64")};exports.calculateTsMac=function(ts,credentials){var hmac=Crypto.createHmac(credentials.algorithm,credentials.key);hmac.update("hawk."+exports.headerVersion+".ts\n"+ts+"\n");return hmac.digest("base64")};exports.timestampMessage=function(credentials,localtimeOffsetMsec){var now=Math.floor((Utils.now()+(localtimeOffsetMsec||0))/1e3);var tsm=exports.calculateTsMac(now,credentials);return{ts:now,tsm:tsm}}},{"./utils":233,crypto:24,url:189}],231:[function(require,module,exports){exports.error=exports.Error=require("boom");exports.sntp=require("sntp");exports.server=require("./server");exports.client=require("./client");exports.crypto=require("./crypto");exports.utils=require("./utils");exports.uri={authenticate:exports.server.authenticateBewit,getBewit:exports.client.getBewit}},{"./client":229,"./crypto":230,"./server":232,"./utils":233,boom:234,sntp:241}],232:[function(require,module,exports){var Boom=require("boom");var Hoek=require("hoek");var Cryptiles=require("cryptiles");var Crypto=require("./crypto");var Utils=require("./utils");var internals={};exports.authenticate=function(req,credentialsFunc,options,callback){callback=Utils.nextTick(callback);options.nonceFunc=options.nonceFunc||function(nonce,ts,nonceCallback){return nonceCallback()};options.timestampSkewSec=options.timestampSkewSec||60;var now=Utils.now()+(options.localtimeOffsetMsec||0);var request=Utils.parseRequest(req,options);if(request instanceof Error){return callback(Boom.badRequest(request.message))}var attributes=Utils.parseAuthorizationHeader(request.authorization);if(attributes instanceof Error){return callback(attributes)}var artifacts={method:request.method,host:request.host,port:request.port,resource:request.url,ts:attributes.ts,nonce:attributes.nonce,hash:attributes.hash,ext:attributes.ext,app:attributes.app,dlg:attributes.dlg,mac:attributes.mac,id:attributes.id};if(!attributes.id||!attributes.ts||!attributes.nonce||!attributes.mac){return callback(Boom.badRequest("Missing attributes"),null,artifacts)}credentialsFunc(attributes.id,function(err,credentials){if(err){return callback(err,credentials||null,artifacts)}if(!credentials){return callback(Boom.unauthorized("Unknown credentials","Hawk"),null,artifacts)}if(!credentials.key||!credentials.algorithm){return callback(Boom.internal("Invalid credentials"),credentials,artifacts)}if(Crypto.algorithms.indexOf(credentials.algorithm)===-1){return callback(Boom.internal("Unknown algorithm"),credentials,artifacts)}var mac=Crypto.calculateMac("header",credentials,artifacts);if(!Cryptiles.fixedTimeComparison(mac,attributes.mac)){return callback(Boom.unauthorized("Bad mac","Hawk"),credentials,artifacts)}if(options.payload!==null&&options.payload!==undefined){if(!attributes.hash){return callback(Boom.unauthorized("Missing required payload hash","Hawk"),credentials,artifacts)}var hash=Crypto.calculatePayloadHash(options.payload,credentials.algorithm,request.contentType);if(!Cryptiles.fixedTimeComparison(hash,attributes.hash)){return callback(Boom.unauthorized("Bad payload hash","Hawk"),credentials,artifacts)}}options.nonceFunc(attributes.nonce,attributes.ts,function(err){if(err){return callback(Boom.unauthorized("Invalid nonce","Hawk"),credentials,artifacts)}if(Math.abs(attributes.ts*1e3-now)>options.timestampSkewSec*1e3){var tsm=Crypto.timestampMessage(credentials,options.localtimeOffsetMsec);return callback(Boom.unauthorized("Stale timestamp","Hawk",tsm),credentials,artifacts)}return callback(null,credentials,artifacts)})})};exports.authenticatePayload=function(payload,credentials,artifacts,contentType){var calculatedHash=Crypto.calculatePayloadHash(payload,credentials.algorithm,contentType);return Cryptiles.fixedTimeComparison(calculatedHash,artifacts.hash)};exports.header=function(credentials,artifacts,options){options=options||{};if(!artifacts||typeof artifacts!=="object"||typeof options!=="object"){return""}artifacts=Hoek.clone(artifacts);delete artifacts.mac;artifacts.hash=options.hash;artifacts.ext=options.ext;if(!credentials||!credentials.key||!credentials.algorithm){return""}if(Crypto.algorithms.indexOf(credentials.algorithm)===-1){return""}if(!artifacts.hash&&options.hasOwnProperty("payload")){artifacts.hash=Crypto.calculatePayloadHash(options.payload,credentials.algorithm,options.contentType)}var mac=Crypto.calculateMac("response",credentials,artifacts);var header='Hawk mac="'+mac+'"'+(artifacts.hash?', hash="'+artifacts.hash+'"':"");if(artifacts.ext!==null&&artifacts.ext!==undefined&&artifacts.ext!==""){header+=', ext="'+Utils.escapeHeaderAttribute(artifacts.ext)+'"'}return header};exports.authenticateBewit=function(req,credentialsFunc,options,callback){callback=Utils.nextTick(callback);var now=Utils.now()+(options.localtimeOffsetMsec||0);var request=Utils.parseRequest(req,options);if(request instanceof Error){return callback(Boom.badRequest(request.message))}var resource=request.url.match(/^(\/.*)([\?&])bewit\=([^&$]*)(?:&(.+))?$/);if(!resource){return callback(Boom.unauthorized(null,"Hawk"))}if(!resource[3]){return callback(Boom.unauthorized("Empty bewit","Hawk"))}if(request.method!=="GET"&&request.method!=="HEAD"){return callback(Boom.unauthorized("Invalid method","Hawk"))}if(request.authorization){return callback(Boom.badRequest("Multiple authentications","Hawk"))}var bewitString=Utils.base64urlDecode(resource[3]);if(bewitString instanceof Error){return callback(Boom.badRequest("Invalid bewit encoding"))}var bewitParts=bewitString.split("\\");if(!bewitParts||bewitParts.length!==4){return callback(Boom.badRequest("Invalid bewit structure"))}var bewit={id:bewitParts[0],exp:parseInt(bewitParts[1],10),mac:bewitParts[2],ext:bewitParts[3]||""};if(!bewit.id||!bewit.exp||!bewit.mac){return callback(Boom.badRequest("Missing bewit attributes"))}var url=resource[1];if(resource[4]){url+=resource[2]+resource[4]}if(bewit.exp*1e3<=now){return callback(Boom.unauthorized("Access expired","Hawk"),null,bewit)}credentialsFunc(bewit.id,function(err,credentials){if(err){return callback(err,credentials||null,bewit.ext)}if(!credentials){return callback(Boom.unauthorized("Unknown credentials","Hawk"),null,bewit)}if(!credentials.key||!credentials.algorithm){return callback(Boom.internal("Invalid credentials"),credentials,bewit)}if(Crypto.algorithms.indexOf(credentials.algorithm)===-1){return callback(Boom.internal("Unknown algorithm"),credentials,bewit)}var mac=Crypto.calculateMac("bewit",credentials,{ts:bewit.exp,nonce:"",method:"GET",resource:url,host:request.host,port:request.port,ext:bewit.ext});if(!Cryptiles.fixedTimeComparison(mac,bewit.mac)){return callback(Boom.unauthorized("Bad mac","Hawk"),credentials,bewit)}return callback(null,credentials,bewit)})};exports.authenticateMessage=function(host,port,message,authorization,credentialsFunc,options,callback){callback=Utils.nextTick(callback);options.nonceFunc=options.nonceFunc||function(nonce,ts,nonceCallback){return nonceCallback()};options.timestampSkewSec=options.timestampSkewSec||60;var now=Utils.now()+(options.localtimeOffsetMsec||0);if(!authorization.id||!authorization.ts||!authorization.nonce||!authorization.hash||!authorization.mac){return callback(Boom.badRequest("Invalid authorization"))}credentialsFunc(authorization.id,function(err,credentials){if(err){return callback(err,credentials||null)}if(!credentials){return callback(Boom.unauthorized("Unknown credentials","Hawk"))}if(!credentials.key||!credentials.algorithm){return callback(Boom.internal("Invalid credentials"),credentials)}if(Crypto.algorithms.indexOf(credentials.algorithm)===-1){return callback(Boom.internal("Unknown algorithm"),credentials)}var artifacts={ts:authorization.ts,nonce:authorization.nonce,host:host,port:port,hash:authorization.hash};var mac=Crypto.calculateMac("message",credentials,artifacts);if(!Cryptiles.fixedTimeComparison(mac,authorization.mac)){return callback(Boom.unauthorized("Bad mac","Hawk"),credentials)}var hash=Crypto.calculatePayloadHash(message,credentials.algorithm);if(!Cryptiles.fixedTimeComparison(hash,authorization.hash)){return callback(Boom.unauthorized("Bad message hash","Hawk"),credentials)}options.nonceFunc(authorization.nonce,authorization.ts,function(err){if(err){return callback(Boom.unauthorized("Invalid nonce","Hawk"),credentials)}if(Math.abs(authorization.ts*1e3-now)>options.timestampSkewSec*1e3){return callback(Boom.unauthorized("Stale timestamp"),credentials)}return callback(null,credentials)})})}},{"./crypto":230,"./utils":233,boom:234,cryptiles:236,hoek:238}],233:[function(require,module,exports){(function(__dirname){var Hoek=require("hoek");var Sntp=require("sntp");var Boom=require("boom");var internals={};internals.import=function(){for(var i in Hoek){if(Hoek.hasOwnProperty(i)){exports[i]=Hoek[i]}}};internals.import();exports.version=function(){return exports.loadPackage(__dirname+"/..").version};exports.parseHost=function(req,hostHeaderName){hostHeaderName=hostHeaderName?hostHeaderName.toLowerCase():"host";var hostHeader=req.headers[hostHeaderName];if(!hostHeader){return null}var hostHeaderRegex;if(hostHeader[0]==="["){hostHeaderRegex=/^(?:(?:\r\n)?\s)*(\[[^\]]+\])(?::(\d+))?(?:(?:\r\n)?\s)*$/}else{hostHeaderRegex=/^(?:(?:\r\n)?\s)*([^:]+)(?::(\d+))?(?:(?:\r\n)?\s)*$/}var hostParts=hostHeader.match(hostHeaderRegex);if(!hostParts||hostParts.length!==3||!hostParts[1]){return null}return{name:hostParts[1],port:hostParts[2]?hostParts[2]:req.connection&&req.connection.encrypted?443:80}};exports.parseContentType=function(header){if(!header){return""}return header.split(";")[0].trim().toLowerCase()};exports.parseRequest=function(req,options){if(!req.headers){return req}if(!options.host||!options.port){var host=exports.parseHost(req,options.hostHeaderName);if(!host){return new Error("Invalid Host header")}}var request={method:req.method,url:req.url,host:options.host||host.name,port:options.port||host.port,authorization:req.headers.authorization,contentType:req.headers["content-type"]||""};return request};exports.now=function(){return Sntp.now()};exports.parseAuthorizationHeader=function(header,keys){keys=keys||["id","ts","nonce","hash","ext","mac","app","dlg"];if(!header){return Boom.unauthorized(null,"Hawk")}var headerParts=header.match(/^(\w+)(?:\s+(.*))?$/);if(!headerParts){return Boom.badRequest("Invalid header syntax")}var scheme=headerParts[1];if(scheme.toLowerCase()!=="hawk"){return Boom.unauthorized(null,"Hawk")}var attributesString=headerParts[2];if(!attributesString){return Boom.badRequest("Invalid header syntax")}var attributes={};var errorMessage="";var verify=attributesString.replace(/(\w+)="([^"\\]*)"\s*(?:,\s*|$)/g,function($0,$1,$2){if(keys.indexOf($1)===-1){errorMessage="Unknown attribute: "+$1;return}if($2.match(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~]+$/)===null){errorMessage="Bad attribute value: "+$1;return}if(attributes.hasOwnProperty($1)){errorMessage="Duplicate attribute: "+$1;return}attributes[$1]=$2;return""});if(verify!==""){return Boom.badRequest(errorMessage||"Bad header format")}return attributes};exports.unauthorized=function(message){return Boom.unauthorized(message,"Hawk")}}).call(this,"/node_modules/request/node_modules/hawk/lib")},{boom:234,hoek:238,sntp:241}],234:[function(require,module,exports){arguments[4][228][0].apply(exports,arguments)},{"./lib":235,dup:228}],235:[function(require,module,exports){var Http=require("http");var NodeUtil=require("util");var Hoek=require("hoek");var internals={};exports=module.exports=internals.Boom=function(){var self=this;Hoek.assert(this.constructor===internals.Boom,"Error must be instantiated using new");Error.call(this);this.isBoom=true;this.response={code:0,payload:{},headers:{}};if(arguments[0]instanceof Error){var error=arguments[0];this.data=error;this.response.code=error.code||500;if(error.message){this.message=error.message}}else{var code=arguments[0];var message=arguments[1];Hoek.assert(!isNaN(parseFloat(code))&&isFinite(code)&&code>=400,"First argument must be a number (400+)");this.response.code=code;if(message){this.message=message}}this.reformat();return this};NodeUtil.inherits(internals.Boom,Error);internals.Boom.prototype.reformat=function(){this.response.payload.code=this.response.code;this.response.payload.error=Http.STATUS_CODES[this.response.code]||"Unknown";if(this.message){this.response.payload.message=Hoek.escapeHtml(this.message)}};internals.Boom.badRequest=function(message){return new internals.Boom(400,message)};internals.Boom.unauthorized=function(message,scheme,attributes){var err=new internals.Boom(401,message);if(!scheme){return err}var wwwAuthenticate="";if(typeof scheme==="string"){wwwAuthenticate=scheme;if(attributes){var names=Object.keys(attributes);for(var i=0,il=names.length;i<il;++i){if(i){wwwAuthenticate+=","}var value=attributes[names[i]];if(value===null||value===undefined){value=""}wwwAuthenticate+=" "+names[i]+'="'+Hoek.escapeHeaderAttribute(value.toString())+'"'}}if(message){if(attributes){wwwAuthenticate+=","}wwwAuthenticate+=' error="'+Hoek.escapeHeaderAttribute(message)+'"'}else{err.isMissing=true}}else{var wwwArray=scheme;for(var i=0,il=wwwArray.length;i<il;++i){if(i){wwwAuthenticate+=", "}wwwAuthenticate+=wwwArray[i]}}err.response.headers["WWW-Authenticate"]=wwwAuthenticate;return err};internals.Boom.clientTimeout=function(message){return new internals.Boom(408,message)};internals.Boom.serverTimeout=function(message){return new internals.Boom(503,message)};internals.Boom.forbidden=function(message){return new internals.Boom(403,message)};internals.Boom.notFound=function(message){return new internals.Boom(404,message)};internals.Boom.internal=function(message,data){var err=new internals.Boom(500,message);if(data&&data.stack){err.trace=data.stack.split("\n");err.outterTrace=Hoek.displayStack(1)}else{err.trace=Hoek.displayStack(1)}err.data=data;err.response.payload.message="An internal server error occurred";return err};internals.Boom.passThrough=function(code,payload,contentType,headers){var err=new internals.Boom(500,"Pass-through");err.data={code:code,payload:payload,type:contentType};err.response.code=code;err.response.type=contentType;err.response.headers=headers;err.response.payload=payload;return err}},{hoek:238,http:163,util:191}],236:[function(require,module,exports){arguments[4][228][0].apply(exports,arguments)},{"./lib":237,dup:228}],237:[function(require,module,exports){var Crypto=require("crypto");var Boom=require("boom");var internals={};exports.randomString=function(size){var buffer=exports.randomBits((size+1)*6);if(buffer instanceof Error){return buffer}var string=buffer.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"");return string.slice(0,size)};exports.randomBits=function(bits){if(!bits||bits<0){return Boom.internal("Invalid random bits count")}var bytes=Math.ceil(bits/8);try{return Crypto.randomBytes(bytes)}catch(err){return Boom.internal("Failed generating random bits: "+err.message)}};exports.fixedTimeComparison=function(a,b){if(typeof a!=="string"||typeof b!=="string"){return false}var mismatch=a.length===b.length?0:1;if(mismatch){b=a}for(var i=0,il=a.length;i<il;++i){var ac=a.charCodeAt(i);var bc=b.charCodeAt(i);mismatch+=ac===bc?0:1}return mismatch===0}},{boom:234,crypto:24}],238:[function(require,module,exports){arguments[4][228][0].apply(exports,arguments)},{"./lib":240,dup:228}],239:[function(require,module,exports){(function(Buffer){var internals={};exports.escapeJavaScript=function(input){if(!input){return""}var escaped="";for(var i=0,il=input.length;i<il;++i){var charCode=input.charCodeAt(i);if(internals.isSafe(charCode)){escaped+=input[i]}else{escaped+=internals.escapeJavaScriptChar(charCode)}}return escaped};exports.escapeHtml=function(input){if(!input){return""}var escaped="";for(var i=0,il=input.length;i<il;++i){var charCode=input.charCodeAt(i);if(internals.isSafe(charCode)){escaped+=input[i]}else{escaped+=internals.escapeHtmlChar(charCode)}}return escaped};internals.escapeJavaScriptChar=function(charCode){if(charCode>=256){return"\\u"+internals.padLeft(""+charCode,4)}var hexValue=new Buffer(String.fromCharCode(charCode),"ascii").toString("hex");return"\\x"+internals.padLeft(hexValue,2)};internals.escapeHtmlChar=function(charCode){var namedEscape=internals.namedHtml[charCode];if(typeof namedEscape!=="undefined"){return namedEscape}if(charCode>=256){return"&#"+charCode+";"}var hexValue=new Buffer(String.fromCharCode(charCode),"ascii").toString("hex");return"&#x"+internals.padLeft(hexValue,2)+";"};internals.padLeft=function(str,len){while(str.length<len){str="0"+str}return str};internals.isSafe=function(charCode){ | |
return typeof internals.safeCharCodes[charCode]!=="undefined"};internals.namedHtml={38:"&",60:"<",62:">",34:""",160:" ",162:"¢",163:"£",164:"¤",169:"©",174:"®"};internals.safeCharCodes=function(){var safe={};for(var i=32;i<123;++i){if(i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||i===32||i===46||i===44||i===45||i===58||i===95){safe[i]=null}}return safe}()}).call(this,require("buffer").Buffer)},{buffer:17}],240:[function(require,module,exports){(function(process,Buffer){var Fs=require("fs");var Escape=require("./escape");var internals={};exports.clone=function(obj,seen){if(typeof obj!=="object"||obj===null){return obj}seen=seen||{orig:[],copy:[]};var lookup=seen.orig.indexOf(obj);if(lookup!==-1){return seen.copy[lookup]}var newObj=obj instanceof Array?[]:{};seen.orig.push(obj);seen.copy.push(newObj);for(var i in obj){if(obj.hasOwnProperty(i)){if(obj[i]instanceof Buffer){newObj[i]=new Buffer(obj[i])}else if(obj[i]instanceof Date){newObj[i]=new Date(obj[i].getTime())}else if(obj[i]instanceof RegExp){var flags=""+(obj[i].global?"g":"")+(obj[i].ignoreCase?"i":"")+(obj[i].multiline?"m":"");newObj[i]=new RegExp(obj[i].source,flags)}else{newObj[i]=exports.clone(obj[i],seen)}}}return newObj};exports.merge=function(target,source,isNullOverride,isMergeArrays){exports.assert(target&&typeof target=="object","Invalid target value: must be an object");exports.assert(source===null||source===undefined||typeof source==="object","Invalid source value: must be null, undefined, or an object");if(!source){return target}if(source instanceof Array){exports.assert(target instanceof Array,"Cannot merge array onto an object");if(isMergeArrays===false){target.length=0}for(var i=0,il=source.length;i<il;++i){target.push(source[i])}return target}var keys=Object.keys(source);for(var k=0,kl=keys.length;k<kl;++k){var key=keys[k];var value=source[key];if(value&&typeof value==="object"){if(!target[key]||typeof target[key]!=="object"){target[key]=exports.clone(value)}else{exports.merge(target[key],source[key],isNullOverride,isMergeArrays)}}else{if(value!==null&&value!==undefined){target[key]=value}else if(isNullOverride!==false){target[key]=value}}}return target};exports.applyToDefaults=function(defaults,options){exports.assert(defaults&&typeof defaults=="object","Invalid defaults value: must be an object");exports.assert(!options||options===true||typeof options==="object","Invalid options value: must be true, falsy or an object");if(!options){return null}var copy=exports.clone(defaults);if(options===true){return copy}return exports.merge(copy,options,false,false)};exports.unique=function(array,key){var index={};var result=[];for(var i=0,il=array.length;i<il;++i){var id=key?array[i][key]:array[i];if(index[id]!==true){result.push(array[i]);index[id]=true}}return result};exports.mapToObject=function(array,key){if(!array){return null}var obj={};for(var i=0,il=array.length;i<il;++i){if(key){if(array[i][key]){obj[array[i][key]]=true}}else{obj[array[i]]=true}}return obj};exports.intersect=function(array1,array2,justFirst){if(!array1||!array2){return[]}var common=[];var hash=array1 instanceof Array?exports.mapToObject(array1):array1;var found={};for(var i=0,il=array2.length;i<il;++i){if(hash[array2[i]]&&!found[array2[i]]){if(justFirst){return array2[i]}common.push(array2[i]);found[array2[i]]=true}}return justFirst?null:common};exports.matchKeys=function(obj,keys){var matched=[];for(var i=0,il=keys.length;i<il;++i){if(obj.hasOwnProperty(keys[i])){matched.push(keys[i])}}return matched};exports.flatten=function(array,target){var result=target||[];for(var i=0,il=array.length;i<il;++i){if(Array.isArray(array[i])){exports.flatten(array[i],result)}else{result.push(array[i])}}return result};exports.removeKeys=function(object,keys){for(var i=0,il=keys.length;i<il;i++){delete object[keys[i]]}};exports.reach=function(obj,chain){var path=chain.split(".");var ref=obj;for(var i=0,il=path.length;i<il;++i){if(ref){ref=ref[path[i]]}}return ref};exports.inheritAsync=function(self,obj,keys){keys=keys||null;for(var i in obj){if(obj.hasOwnProperty(i)){if(keys instanceof Array&&keys.indexOf(i)<0){continue}self.prototype[i]=function(fn){return function(next){var result=null;try{result=fn()}catch(err){return next(err)}return next(null,result)}}(obj[i])}}};exports.formatStack=function(stack){var trace=[];for(var i=0,il=stack.length;i<il;++i){var item=stack[i];trace.push([item.getFileName(),item.getLineNumber(),item.getColumnNumber(),item.getFunctionName(),item.isConstructor()])}return trace};exports.formatTrace=function(trace){var display=[];for(var i=0,il=trace.length;i<il;++i){var row=trace[i];display.push((row[4]?"new ":"")+row[3]+" ("+row[0]+":"+row[1]+":"+row[2]+")")}return display};exports.callStack=function(slice){var v8=Error.prepareStackTrace;Error.prepareStackTrace=function(err,stack){return stack};var capture={};Error.captureStackTrace(capture,arguments.callee);var stack=capture.stack;Error.prepareStackTrace=v8;var trace=exports.formatStack(stack);if(slice){return trace.slice(slice)}return trace};exports.displayStack=function(slice){var trace=exports.callStack(slice===undefined?1:slice+1);return exports.formatTrace(trace)};exports.abortThrow=false;exports.abort=function(message,hideStack){if(process.env.NODE_ENV==="test"||exports.abortThrow===true){throw new Error(message||"Unknown error")}var stack="";if(!hideStack){stack=exports.displayStack(1).join("\n ")}console.log("ABORT: "+message+"\n "+stack);process.exit(1)};exports.assert=function(condition){if(condition){return}var msgs=Array.prototype.slice.call(arguments,1);msgs=msgs.map(function(msg){return typeof msg==="string"?msg:msg instanceof Error?msg.message:JSON.stringify(msg)});throw new Error(msgs.join(" ")||"Unknown error")};exports.loadDirModules=function(path,excludeFiles,target){var exclude={};for(var i=0,il=excludeFiles.length;i<il;++i){exclude[excludeFiles[i]+".js"]=true}var files=Fs.readdirSync(path);for(i=0,il=files.length;i<il;++i){var filename=files[i];if(/\.js$/.test(filename)&&!exclude[filename]){var name=filename.substr(0,filename.lastIndexOf("."));var capName=name.charAt(0).toUpperCase()+name.substr(1).toLowerCase();if(typeof target!=="function"){target[capName]=require(path+"/"+name)}else{target(path+"/"+name,name,capName)}}}};exports.rename=function(obj,from,to){obj[to]=obj[from];delete obj[from]};exports.Timer=function(){this.reset()};exports.Timer.prototype.reset=function(){this.ts=Date.now()};exports.Timer.prototype.elapsed=function(){return Date.now()-this.ts};exports.loadPackage=function(dir){var result={};var filepath=(dir||process.env.PWD)+"/package.json";if(Fs.existsSync(filepath)){try{result=JSON.parse(Fs.readFileSync(filepath))}catch(e){}}return result};exports.escapeRegex=function(string){return string.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g,"\\$&")};exports.toss=function(condition){var message=arguments.length===3?arguments[1]:"";var next=arguments.length===3?arguments[2]:arguments[1];var err=message instanceof Error?message:message?new Error(message):condition instanceof Error?condition:new Error;if(condition instanceof Error||!condition){return next(err)}};exports.base64urlEncode=function(value){return new Buffer(value,"binary").toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};exports.base64urlDecode=function(encoded){if(encoded&&!encoded.match(/^[\w\-]*$/)){return new Error("Invalid character")}try{return new Buffer(encoded.replace(/-/g,"+").replace(/:/g,"/"),"base64").toString("binary")}catch(err){return err}};exports.escapeHeaderAttribute=function(attribute){exports.assert(attribute.match(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/),"Bad attribute value ("+attribute+")");return attribute.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')};exports.escapeHtml=function(string){return Escape.escapeHtml(string)};exports.escapeJavaScript=function(string){return Escape.escapeJavaScript(string)};exports.consoleFunc=console.log;exports.printEvent=function(event){var pad=function(value){return(value<10?"0":"")+value};var now=new Date(event.timestamp);var timestring=(now.getYear()-100).toString()+pad(now.getMonth()+1)+pad(now.getDate())+"/"+pad(now.getHours())+pad(now.getMinutes())+pad(now.getSeconds())+"."+now.getMilliseconds();var data=event.data;if(typeof event.data!=="string"){try{data=JSON.stringify(event.data)}catch(e){data="JSON Error: "+e.message}}var output=timestring+", "+event.tags[0]+", "+data;exports.consoleFunc(output)};exports.nextTick=function(callback){return function(){var args=arguments;process.nextTick(function(){callback.apply(null,args)})}}}).call(this,require("_process"),require("buffer").Buffer)},{"./escape":239,_process:171,buffer:17,fs:1}],241:[function(require,module,exports){arguments[4][228][0].apply(exports,arguments)},{"./lib":242,dup:228}],242:[function(require,module,exports){(function(process,Buffer){var Dgram=require("dgram");var Dns=require("dns");var Hoek=require("hoek");var internals={};exports.time=function(options,callback){if(arguments.length!==2){callback=arguments[0];options={}}var settings=Hoek.clone(options);settings.host=settings.host||"pool.ntp.org";settings.port=settings.port||123;settings.resolveReference=settings.resolveReference||false;var timeoutId=0;var sent=0;var isFinished=false;var finish=function(err,result){if(timeoutId){clearTimeout(timeoutId);timeoutId=0}if(!isFinished){isFinished=true;socket.removeAllListeners();socket.close();return callback(err,result)}};var socket=Dgram.createSocket("udp4");socket.once("error",function(err){return finish(err)});socket.on("message",function(buffer,rinfo){var received=Date.now();var message=new internals.NtpMessage(buffer);if(!message.isValid){return finish(new Error("Invalid server response"),message)}if(message.originateTimestamp!==sent){return finish(new Error("Wrong originate timestamp"),message)}var T1=message.originateTimestamp;var T2=message.receiveTimestamp;var T3=message.transmitTimestamp;var T4=received;message.d=T4-T1-(T3-T2);message.t=(T2-T1+(T3-T4))/2;message.receivedLocally=received;if(!settings.resolveReference||message.stratum!=="secondary"){return finish(null,message)}Dns.reverse(message.referenceId,function(err,domains){if(!err){message.referenceHost=domains[0]}return finish(null,message)})});if(settings.timeout){timeoutId=setTimeout(function(){timeoutId=0;return finish(new Error("Timeout"))},settings.timeout)}var message=new Buffer(48);for(var i=0;i<48;i++){message[i]=0}message[0]=(0<<6)+(4<<3)+(3<<0);sent=Date.now();internals.fromMsecs(sent,message,40);socket.send(message,0,message.length,settings.port,settings.host,function(err,bytes){if(err||bytes!==48){return finish(err||new Error("Could not send entire message"))}})};internals.NtpMessage=function(buffer){this.isValid=false;if(buffer.length!==48){return}var li=buffer[0]>>6;switch(li){case 0:this.leapIndicator="no-warning";break;case 1:this.leapIndicator="last-minute-61";break;case 2:this.leapIndicator="last-minute-59";break;case 3:this.leapIndicator="alarm";break}var vn=(buffer[0]&56)>>3;this.version=vn;var mode=buffer[0]&7;switch(mode){case 1:this.mode="symmetric-active";break;case 2:this.mode="symmetric-passive";break;case 3:this.mode="client";break;case 4:this.mode="server";break;case 5:this.mode="broadcast";break;case 0:case 6:case 7:this.mode="reserved";break}var stratum=buffer[1];if(stratum===0){this.stratum="death"}else if(stratum===1){this.stratum="primary"}else if(stratum<=15){this.stratum="secondary"}else{this.stratum="reserved"}this.pollInterval=Math.round(Math.pow(2,buffer[2]))*1e3;this.precision=Math.pow(2,buffer[3])*1e3;var rootDelay=256*(256*(256*buffer[4]+buffer[5])+buffer[6])+buffer[7];this.rootDelay=1e3*(rootDelay/65536);this.rootDispersion=((buffer[8]<<8)+buffer[9]+((buffer[10]<<8)+buffer[11])/Math.pow(2,16))*1e3;this.referenceId="";switch(this.stratum){case"death":case"primary":this.referenceId=String.fromCharCode(buffer[12])+String.fromCharCode(buffer[13])+String.fromCharCode(buffer[14])+String.fromCharCode(buffer[15]);break;case"secondary":this.referenceId=""+buffer[12]+"."+buffer[13]+"."+buffer[14]+"."+buffer[15];break}this.referenceTimestamp=internals.toMsecs(buffer,16);this.originateTimestamp=internals.toMsecs(buffer,24);this.receiveTimestamp=internals.toMsecs(buffer,32);this.transmitTimestamp=internals.toMsecs(buffer,40);if(this.version===4&&this.stratum!=="reserved"&&this.mode==="server"&&this.originateTimestamp&&this.receiveTimestamp&&this.transmitTimestamp){this.isValid=true}return this};internals.toMsecs=function(buffer,offset){var seconds=0;var fraction=0;for(var i=0;i<4;++i){seconds=seconds*256+buffer[offset+i]}for(i=4;i<8;++i){fraction=fraction*256+buffer[offset+i]}return(seconds-2208988800+fraction/Math.pow(2,32))*1e3};internals.fromMsecs=function(ts,buffer,offset){var seconds=Math.floor(ts/1e3)+2208988800;var fraction=Math.round(ts%1e3/1e3*Math.pow(2,32));buffer[offset+0]=(seconds&4278190080)>>24;buffer[offset+1]=(seconds&16711680)>>16;buffer[offset+2]=(seconds&65280)>>8;buffer[offset+3]=seconds&255;buffer[offset+4]=(fraction&4278190080)>>24;buffer[offset+5]=(fraction&16711680)>>16;buffer[offset+6]=(fraction&65280)>>8;buffer[offset+7]=fraction&255};internals.last={offset:0,expires:0,host:"",port:0};exports.offset=function(options,callback){if(arguments.length!==2){callback=arguments[0];options={}}var now=Date.now();var clockSyncRefresh=options.clockSyncRefresh||24*60*60*1e3;if(internals.last.offset&&internals.last.host===options.host&&internals.last.port===options.port&&now<internals.last.expires){process.nextTick(function(){callback(null,internals.last.offset)});return}exports.time(options,function(err,time){if(err){return callback(err,0)}internals.last={offset:Math.round(time.t),expires:now+clockSyncRefresh,host:options.host,port:options.port};return callback(null,internals.last.offset)})};internals.now={intervalId:0};exports.start=function(options,callback){if(arguments.length!==2){callback=arguments[0];options={}}if(internals.now.intervalId){process.nextTick(function(){callback()});return}exports.offset(options,function(err,offset){internals.now.intervalId=setInterval(function(){exports.offset(options,function(){})},options.clockSyncRefresh||24*60*60*1e3);return callback()})};exports.stop=function(){if(!internals.now.intervalId){return}clearInterval(internals.now.intervalId);internals.now.intervalId=0};exports.isLive=function(){return!!internals.now.intervalId};exports.now=function(){var now=Date.now();if(!exports.isLive()||now>=internals.last.expires){return now}return now+internals.last.offset}}).call(this,require("_process"),require("buffer").Buffer)},{_process:171,buffer:17,dgram:1,dns:1,hoek:238}],243:[function(require,module,exports){var parser=require("./parser");var signer=require("./signer");var verify=require("./verify");var util=require("./util");module.exports={parse:parser.parseRequest,parseRequest:parser.parseRequest,sign:signer.signRequest,signRequest:signer.signRequest,sshKeyToPEM:util.sshKeyToPEM,sshKeyFingerprint:util.fingerprint,verify:verify.verifySignature,verifySignature:verify.verifySignature}},{"./parser":244,"./signer":245,"./util":246,"./verify":247}],244:[function(require,module,exports){var assert=require("assert-plus");var util=require("util");var Algorithms={"rsa-sha1":true,"rsa-sha256":true,"rsa-sha512":true,"dsa-sha1":true,"hmac-sha1":true,"hmac-sha256":true,"hmac-sha512":true};var State={New:0,Params:1};var ParamsState={Name:0,Quote:1,Value:2,Comma:3};function HttpSignatureError(message,caller){if(Error.captureStackTrace)Error.captureStackTrace(this,caller||HttpSignatureError);this.message=message;this.name=caller.name}util.inherits(HttpSignatureError,Error);function ExpiredRequestError(message){HttpSignatureError.call(this,message,ExpiredRequestError)}util.inherits(ExpiredRequestError,HttpSignatureError);function InvalidHeaderError(message){HttpSignatureError.call(this,message,InvalidHeaderError)}util.inherits(InvalidHeaderError,HttpSignatureError);function InvalidParamsError(message){HttpSignatureError.call(this,message,InvalidParamsError)}util.inherits(InvalidParamsError,HttpSignatureError);function MissingHeaderError(message){HttpSignatureError.call(this,message,MissingHeaderError)}util.inherits(MissingHeaderError,HttpSignatureError);module.exports={parseRequest:function parseRequest(request,options){assert.object(request,"request");assert.object(request.headers,"request.headers");if(options===undefined){options={}}if(options.headers===undefined){options.headers=[request.headers["x-date"]?"x-date":"date"]}assert.object(options,"options");assert.arrayOfString(options.headers,"options.headers");assert.optionalNumber(options.clockSkew,"options.clockSkew");if(!request.headers.authorization)throw new MissingHeaderError("no authorization header present in "+"the request");options.clockSkew=options.clockSkew||300;var i=0;var state=State.New;var substate=ParamsState.Name;var tmpName="";var tmpValue="";var parsed={scheme:"",params:{},signingString:"",get algorithm(){return this.params.algorithm.toUpperCase()},get keyId(){return this.params.keyId}};var authz=request.headers.authorization;for(i=0;i<authz.length;i++){var c=authz.charAt(i);switch(Number(state)){case State.New:if(c!==" ")parsed.scheme+=c;else state=State.Params;break;case State.Params:switch(Number(substate)){case ParamsState.Name:var code=c.charCodeAt(0);if(code>=65&&code<=90||code>=97&&code<=122){tmpName+=c}else if(c==="="){if(tmpName.length===0)throw new InvalidHeaderError("bad param format");substate=ParamsState.Quote}else{throw new InvalidHeaderError("bad param format")}break;case ParamsState.Quote:if(c==='"'){tmpValue="";substate=ParamsState.Value}else{throw new InvalidHeaderError("bad param format")}break;case ParamsState.Value:if(c==='"'){parsed.params[tmpName]=tmpValue;substate=ParamsState.Comma}else{tmpValue+=c}break;case ParamsState.Comma:if(c===","){tmpName="";substate=ParamsState.Name}else{throw new InvalidHeaderError("bad param format")}break;default:throw new Error("Invalid substate")}break;default:throw new Error("Invalid substate")}}if(!parsed.params.headers||parsed.params.headers===""){if(request.headers["x-date"]){parsed.params.headers=["x-date"]}else{parsed.params.headers=["date"]}}else{parsed.params.headers=parsed.params.headers.split(" ")}if(!parsed.scheme||parsed.scheme!=="Signature")throw new InvalidHeaderError('scheme was not "Signature"');if(!parsed.params.keyId)throw new InvalidHeaderError("keyId was not specified");if(!parsed.params.algorithm)throw new InvalidHeaderError("algorithm was not specified");if(!parsed.params.signature)throw new InvalidHeaderError("signature was not specified");parsed.params.algorithm=parsed.params.algorithm.toLowerCase();if(!Algorithms[parsed.params.algorithm])throw new InvalidParamsError(parsed.params.algorithm+" is not supported");for(i=0;i<parsed.params.headers.length;i++){var h=parsed.params.headers[i].toLowerCase();parsed.params.headers[i]=h;if(h!=="request-line"){var value=request.headers[h];if(!value)throw new MissingHeaderError(h+" was not in the request");parsed.signingString+=h+": "+value}else{parsed.signingString+=request.method+" "+request.url+" HTTP/"+request.httpVersion}if(i+1<parsed.params.headers.length)parsed.signingString+="\n"}var date;if(request.headers.date||request.headers["x-date"]){if(request.headers["x-date"]){date=new Date(request.headers["x-date"])}else{date=new Date(request.headers.date)}var now=new Date;var skew=Math.abs(now.getTime()-date.getTime());if(skew>options.clockSkew*1e3){throw new ExpiredRequestError("clock skew of "+skew/1e3+"s was greater than "+options.clockSkew+"s")}}options.headers.forEach(function(hdr){if(parsed.params.headers.indexOf(hdr)<0)throw new MissingHeaderError(hdr+" was not a signed header")});if(options.algorithms){if(options.algorithms.indexOf(parsed.params.algorithm)===-1)throw new InvalidParamsError(parsed.params.algorithm+" is not a supported algorithm")}return parsed}}},{"assert-plus":254,util:191}],245:[function(require,module,exports){var assert=require("assert-plus");var crypto=require("crypto");var http=require("http");var sprintf=require("util").format;var Algorithms={"rsa-sha1":true,"rsa-sha256":true,"rsa-sha512":true,"dsa-sha1":true,"hmac-sha1":true,"hmac-sha256":true,"hmac-sha512":true};var Authorization='Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"';function MissingHeaderError(message){this.name="MissingHeaderError";this.message=message;this.stack=(new Error).stack}MissingHeaderError.prototype=new Error;function InvalidAlgorithmError(message){this.name="InvalidAlgorithmError";this.message=message;this.stack=(new Error).stack}InvalidAlgorithmError.prototype=new Error;function _pad(val){if(parseInt(val,10)<10){val="0"+val}return val}function _rfc1123(){var date=new Date;var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var days=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];return days[date.getUTCDay()]+", "+_pad(date.getUTCDate())+" "+months[date.getUTCMonth()]+" "+date.getUTCFullYear()+" "+_pad(date.getUTCHours())+":"+_pad(date.getUTCMinutes())+":"+_pad(date.getUTCSeconds())+" GMT"}module.exports={signRequest:function signRequest(request,options){assert.object(request,"request");assert.object(options,"options");assert.optionalString(options.algorithm,"options.algorithm");assert.string(options.keyId,"options.keyId");assert.optionalArrayOfString(options.headers,"options.headers");assert.optionalString(options.httpVersion,"options.httpVersion");if(!request.getHeader("Date"))request.setHeader("Date",_rfc1123());if(!options.headers)options.headers=["date"];if(!options.algorithm)options.algorithm="rsa-sha256";if(!options.httpVersion)options.httpVersion="1.1";options.algorithm=options.algorithm.toLowerCase();if(!Algorithms[options.algorithm])throw new InvalidAlgorithmError(options.algorithm+" is not supported");var i;var stringToSign="";for(i=0;i<options.headers.length;i++){if(typeof options.headers[i]!=="string")throw new TypeError("options.headers must be an array of Strings");var h=options.headers[i].toLowerCase();if(h!=="request-line"){var value=request.getHeader(h);if(!value){throw new MissingHeaderError(h+" was not in the request")}stringToSign+=h+": "+value}else{value=stringToSign+=request.method+" "+request.path+" HTTP/"+options.httpVersion}if(i+1<options.headers.length)stringToSign+="\n"}var alg=options.algorithm.match(/(hmac|rsa)-(\w+)/);var signature;if(alg[1]==="hmac"){var hmac=crypto.createHmac(alg[2].toUpperCase(),options.key);hmac.update(stringToSign);signature=hmac.digest("base64")}else{var signer=crypto.createSign(options.algorithm.toUpperCase());signer.update(stringToSign);signature=signer.sign(options.key,"base64")}request.setHeader("Authorization",sprintf(Authorization,options.keyId,options.algorithm,options.headers.join(" "),signature));return true}}},{"assert-plus":254,crypto:24,http:163,util:191}],246:[function(require,module,exports){(function(Buffer){var assert=require("assert-plus");var crypto=require("crypto");var asn1=require("asn1");var ctype=require("ctype");function readNext(buffer,offset){var len=ctype.ruint32(buffer,"big",offset);offset+=4;var newOffset=offset+len;return{data:buffer.slice(offset,newOffset),offset:newOffset}}function writeInt(writer,buffer){writer.writeByte(2);writer.writeLength(buffer.length);for(var i=0;i<buffer.length;i++)writer.writeByte(buffer[i]);return writer}function rsaToPEM(key){var buffer;var der;var exponent;var i;var modulus;var newKey="";var offset=0;var type;var tmp;try{buffer=new Buffer(key.split(" ")[1],"base64");tmp=readNext(buffer,offset);type=tmp.data.toString();offset=tmp.offset;if(type!=="ssh-rsa")throw new Error("Invalid ssh key type: "+type);tmp=readNext(buffer,offset);exponent=tmp.data;offset=tmp.offset;tmp=readNext(buffer,offset);modulus=tmp.data}catch(e){throw new Error("Invalid ssh key: "+key)}der=new asn1.BerWriter;der.startSequence();der.startSequence();der.writeOID("1.2.840.113549.1.1.1");der.writeNull();der.endSequence();der.startSequence(3);der.writeByte(0);der.startSequence();writeInt(der,modulus);writeInt(der,exponent);der.endSequence();der.endSequence();der.endSequence();tmp=der.buffer.toString("base64");for(i=0;i<tmp.length;i++){if(i%64===0)newKey+="\n";newKey+=tmp.charAt(i)}if(!/\\n$/.test(newKey))newKey+="\n";return"-----BEGIN PUBLIC KEY-----"+newKey+"-----END PUBLIC KEY-----\n"}function dsaToPEM(key){var buffer;var offset=0;var tmp;var der;var newKey="";var type;var p;var q;var g;var y;try{buffer=new Buffer(key.split(" ")[1],"base64");tmp=readNext(buffer,offset);type=tmp.data.toString();offset=tmp.offset;if(!/^ssh-ds[as].*/.test(type))throw new Error("Invalid ssh key type: "+type);tmp=readNext(buffer,offset);p=tmp.data;offset=tmp.offset;tmp=readNext(buffer,offset);q=tmp.data;offset=tmp.offset;tmp=readNext(buffer,offset);g=tmp.data;offset=tmp.offset;tmp=readNext(buffer,offset);y=tmp.data}catch(e){console.log(e.stack);throw new Error("Invalid ssh key: "+key)}der=new asn1.BerWriter;der.startSequence();der.startSequence();der.writeOID("1.2.840.10040.4.1");der.startSequence();writeInt(der,p);writeInt(der,q);writeInt(der,g);der.endSequence();der.endSequence();der.startSequence(3);der.writeByte(0);writeInt(der,y);der.endSequence();der.endSequence();tmp=der.buffer.toString("base64");for(var i=0;i<tmp.length;i++){if(i%64===0)newKey+="\n";newKey+=tmp.charAt(i)}if(!/\\n$/.test(newKey))newKey+="\n";return"-----BEGIN PUBLIC KEY-----"+newKey+"-----END PUBLIC KEY-----\n"}module.exports={sshKeyToPEM:function sshKeyToPEM(key){assert.string(key,"ssh_key");if(/^ssh-rsa.*/.test(key))return rsaToPEM(key);if(/^ssh-ds[as].*/.test(key))return dsaToPEM(key);throw new Error("Only RSA and DSA public keys are allowed")},fingerprint:function fingerprint(key){assert.string(key,"ssh_key");var pieces=key.split(" ");if(!pieces||!pieces.length||pieces.length<2)throw new Error("invalid ssh key");var data=new Buffer(pieces[1],"base64");var hash=crypto.createHash("md5");hash.update(data);var digest=hash.digest("hex");var fp="";for(var i=0;i<digest.length;i++){if(i&&i%2===0)fp+=":";fp+=digest[i]}return fp}}}).call(this,require("buffer").Buffer)},{asn1:253,"assert-plus":254,buffer:17,crypto:24,ctype:257}],247:[function(require,module,exports){var assert=require("assert-plus");var crypto=require("crypto");module.exports={verifySignature:function verifySignature(parsedSignature,key){assert.object(parsedSignature,"parsedSignature");assert.string(key,"key");var alg=parsedSignature.algorithm.match(/(HMAC|RSA|DSA)-(\w+)/);if(!alg||alg.length!==3)throw new TypeError("parsedSignature: unsupported algorithm "+parsedSignature.algorithm);if(alg[1]==="HMAC"){var hmac=crypto.createHmac(alg[2].toUpperCase(),key);hmac.update(parsedSignature.signingString);return hmac.digest("base64")===parsedSignature.params.signature}else{var verify=crypto.createVerify(alg[0]);verify.update(parsedSignature.signingString);return verify.verify(key,parsedSignature.params.signature,"base64")}}}},{"assert-plus":254,crypto:24}],248:[function(require,module,exports){module.exports={newInvalidAsn1Error:function(msg){var e=new Error;e.name="InvalidAsn1Error";e.message=msg||"";return e}}},{}],249:[function(require,module,exports){var errors=require("./errors");var types=require("./types");var Reader=require("./reader");var Writer=require("./writer");module.exports={Reader:Reader,Writer:Writer};for(var t in types){if(types.hasOwnProperty(t))module.exports[t]=types[t]}for(var e in errors){if(errors.hasOwnProperty(e))module.exports[e]=errors[e]}},{"./errors":248,"./reader":250,"./types":251,"./writer":252}],250:[function(require,module,exports){(function(Buffer){var assert=require("assert");var ASN1=require("./types");var errors=require("./errors");var newInvalidAsn1Error=errors.newInvalidAsn1Error;function Reader(data){if(!data||!Buffer.isBuffer(data))throw new TypeError("data must be a node Buffer");this._buf=data;this._size=data.length;this._len=0;this._offset=0;var self=this;this.__defineGetter__("length",function(){return self._len});this.__defineGetter__("offset",function(){return self._offset});this.__defineGetter__("remain",function(){return self._size-self._offset});this.__defineGetter__("buffer",function(){return self._buf.slice(self._offset)})}Reader.prototype.readByte=function(peek){if(this._size-this._offset<1)return null;var b=this._buf[this._offset]&255;if(!peek)this._offset+=1;return b};Reader.prototype.peek=function(){return this.readByte(true)};Reader.prototype.readLength=function(offset){if(offset===undefined)offset=this._offset;if(offset>=this._size)return null;var lenB=this._buf[offset++]&255;if(lenB===null)return null;if((lenB&128)==128){lenB&=127;if(lenB==0)throw newInvalidAsn1Error("Indefinite length not supported");if(lenB>4)throw newInvalidAsn1Error("encoding too long");if(this._size-offset<lenB)return null;this._len=0;for(var i=0;i<lenB;i++)this._len=(this._len<<8)+(this._buf[offset++]&255)}else{this._len=lenB}return offset};Reader.prototype.readSequence=function(tag){var seq=this.peek();if(seq===null)return null;if(tag!==undefined&&tag!==seq)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+seq.toString(16));var o=this.readLength(this._offset+1);if(o===null)return null;this._offset=o;return seq};Reader.prototype.readInt=function(){return this._readTag(ASN1.Integer)};Reader.prototype.readBoolean=function(){return this._readTag(ASN1.Boolean)===0?false:true};Reader.prototype.readEnumeration=function(){return this._readTag(ASN1.Enumeration)};Reader.prototype.readString=function(tag,retbuf){if(!tag)tag=ASN1.OctetString;var b=this.peek();if(b===null)return null;if(b!==tag)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+b.toString(16));var o=this.readLength(this._offset+1);if(o===null)return null;if(this.length>this._size-o)return null;this._offset=o;if(this.length===0)return"";var str=this._buf.slice(this._offset,this._offset+this.length);this._offset+=this.length;return retbuf?str:str.toString("utf8")};Reader.prototype.readOID=function(tag){if(!tag)tag=ASN1.OID;var b=this.peek();if(b===null)return null;if(b!==tag)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+b.toString(16));var o=this.readLength(this._offset+1);if(o===null)return null;if(this.length>this._size-o)return null;this._offset=o;var values=[];var value=0;for(var i=0;i<this.length;i++){var byte=this._buf[this._offset++]&255;value<<=7;value+=byte&127;if((byte&128)==0){values.push(value);value=0}}value=values.shift();values.unshift(value%40);values.unshift(value/40>>0);return values.join(".")};Reader.prototype._readTag=function(tag){assert.ok(tag!==undefined);var b=this.peek();if(b===null)return null;if(b!==tag)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+b.toString(16));var o=this.readLength(this._offset+1);if(o===null)return null;if(this.length>4)throw newInvalidAsn1Error("Integer too long: "+this.length);if(this.length>this._size-o)return null;this._offset=o;var fb=this._buf[this._offset++];var value=0;value=fb&127;for(var i=1;i<this.length;i++){value<<=8;value|=this._buf[this._offset++]&255}if((fb&128)==128)value=-value;return value};module.exports=Reader}).call(this,require("buffer").Buffer)},{"./errors":248,"./types":251,assert:2,buffer:17}],251:[function(require,module,exports){module.exports={EOC:0,Boolean:1,Integer:2,BitString:3,OctetString:4,Null:5,OID:6,ObjectDescriptor:7,External:8,Real:9,Enumeration:10,PDV:11,Utf8String:12,RelativeOID:13,Sequence:16,Set:17,NumericString:18,PrintableString:19,T61String:20,VideotexString:21,IA5String:22,UTCTime:23,GeneralizedTime:24,GraphicString:25,VisibleString:26,GeneralString:28,UniversalString:29,CharacterString:30,BMPString:31,Constructor:32,Context:128}},{}],252:[function(require,module,exports){(function(Buffer){var assert=require("assert");var ASN1=require("./types");var errors=require("./errors");var newInvalidAsn1Error=errors.newInvalidAsn1Error;var DEFAULT_OPTS={size:1024,growthFactor:8 | |
};function merge(from,to){assert.ok(from);assert.equal(typeof from,"object");assert.ok(to);assert.equal(typeof to,"object");var keys=Object.getOwnPropertyNames(from);keys.forEach(function(key){if(to[key])return;var value=Object.getOwnPropertyDescriptor(from,key);Object.defineProperty(to,key,value)});return to}function Writer(options){options=merge(DEFAULT_OPTS,options||{});this._buf=new Buffer(options.size||1024);this._size=this._buf.length;this._offset=0;this._options=options;this._seq=[];var self=this;this.__defineGetter__("buffer",function(){if(self._seq.length)throw new InvalidAsn1Error(self._seq.length+" unended sequence(s)");return self._buf.slice(0,self._offset)})}Writer.prototype.writeByte=function(b){if(typeof b!=="number")throw new TypeError("argument must be a Number");this._ensure(1);this._buf[this._offset++]=b};Writer.prototype.writeInt=function(i,tag){if(typeof i!=="number")throw new TypeError("argument must be a Number");if(typeof tag!=="number")tag=ASN1.Integer;var sz=4;while(((i&4286578688)===0||(i&4286578688)===4286578688)&&sz>1){sz--;i<<=8}if(sz>4)throw new InvalidAsn1Error("BER ints cannot be > 0xffffffff");this._ensure(2+sz);this._buf[this._offset++]=tag;this._buf[this._offset++]=sz;while(sz-->0){this._buf[this._offset++]=(i&4278190080)>>24;i<<=8}};Writer.prototype.writeNull=function(){this.writeByte(ASN1.Null);this.writeByte(0)};Writer.prototype.writeEnumeration=function(i,tag){if(typeof i!=="number")throw new TypeError("argument must be a Number");if(typeof tag!=="number")tag=ASN1.Enumeration;return this.writeInt(i,tag)};Writer.prototype.writeBoolean=function(b,tag){if(typeof b!=="boolean")throw new TypeError("argument must be a Boolean");if(typeof tag!=="number")tag=ASN1.Boolean;this._ensure(3);this._buf[this._offset++]=tag;this._buf[this._offset++]=1;this._buf[this._offset++]=b?255:0};Writer.prototype.writeString=function(s,tag){if(typeof s!=="string")throw new TypeError("argument must be a string (was: "+typeof s+")");if(typeof tag!=="number")tag=ASN1.OctetString;var len=Buffer.byteLength(s);this.writeByte(tag);this.writeLength(len);if(len){this._ensure(len);this._buf.write(s,this._offset);this._offset+=len}};Writer.prototype.writeBuffer=function(buf,tag){if(typeof tag!=="number")throw new TypeError("tag must be a number");if(!Buffer.isBuffer(buf))throw new TypeError("argument must be a buffer");this.writeByte(tag);this.writeLength(buf.length);this._ensure(buf.length);buf.copy(this._buf,this._offset,0,buf.length);this._offset+=buf.length};Writer.prototype.writeStringArray=function(strings){if(!strings instanceof Array)throw new TypeError("argument must be an Array[String]");var self=this;strings.forEach(function(s){self.writeString(s)})};Writer.prototype.writeOID=function(s,tag){if(typeof s!=="string")throw new TypeError("argument must be a string");if(typeof tag!=="number")tag=ASN1.OID;if(!/^([0-9]+\.){3,}[0-9]+$/.test(s))throw new Error("argument is not a valid OID string");function encodeOctet(bytes,octet){if(octet<128){bytes.push(octet)}else if(octet<16384){bytes.push(octet>>>7|128);bytes.push(octet&127)}else if(octet<2097152){bytes.push(octet>>>14|128);bytes.push((octet>>>7|128)&255);bytes.push(octet&127)}else if(octet<268435456){bytes.push(octet>>>21|128);bytes.push((octet>>>14|128)&255);bytes.push((octet>>>7|128)&255);bytes.push(octet&127)}else{bytes.push((octet>>>28|128)&255);bytes.push((octet>>>21|128)&255);bytes.push((octet>>>14|128)&255);bytes.push((octet>>>7|128)&255);bytes.push(octet&127)}}var tmp=s.split(".");var bytes=[];bytes.push(parseInt(tmp[0],10)*40+parseInt(tmp[1],10));tmp.slice(2).forEach(function(b){encodeOctet(bytes,parseInt(b,10))});var self=this;this._ensure(2+bytes.length);this.writeByte(tag);this.writeLength(bytes.length);bytes.forEach(function(b){self.writeByte(b)})};Writer.prototype.writeLength=function(len){if(typeof len!=="number")throw new TypeError("argument must be a Number");this._ensure(4);if(len<=127){this._buf[this._offset++]=len}else if(len<=255){this._buf[this._offset++]=129;this._buf[this._offset++]=len}else if(len<=65535){this._buf[this._offset++]=130;this._buf[this._offset++]=len>>8;this._buf[this._offset++]=len}else if(len<=16777215){this._shift(start,len,1);this._buf[this._offset++]=131;this._buf[this._offset++]=len>>16;this._buf[this._offset++]=len>>8;this._buf[this._offset++]=len}else{throw new InvalidAsn1ERror("Length too long (> 4 bytes)")}};Writer.prototype.startSequence=function(tag){if(typeof tag!=="number")tag=ASN1.Sequence|ASN1.Constructor;this.writeByte(tag);this._seq.push(this._offset);this._ensure(3);this._offset+=3};Writer.prototype.endSequence=function(){var seq=this._seq.pop();var start=seq+3;var len=this._offset-start;if(len<=127){this._shift(start,len,-2);this._buf[seq]=len}else if(len<=255){this._shift(start,len,-1);this._buf[seq]=129;this._buf[seq+1]=len}else if(len<=65535){this._buf[seq]=130;this._buf[seq+1]=len>>8;this._buf[seq+2]=len}else if(len<=16777215){this._shift(start,len,1);this._buf[seq]=131;this._buf[seq+1]=len>>16;this._buf[seq+2]=len>>8;this._buf[seq+3]=len}else{throw new InvalidAsn1Error("Sequence too long")}};Writer.prototype._shift=function(start,len,shift){assert.ok(start!==undefined);assert.ok(len!==undefined);assert.ok(shift);this._buf.copy(this._buf,start+shift,start,start+len);this._offset+=shift};Writer.prototype._ensure=function(len){assert.ok(len);if(this._size-this._offset<len){var sz=this._size*this._options.growthFactor;if(sz-this._offset<len)sz+=len;var buf=new Buffer(sz);this._buf.copy(buf,0,0,this._offset);this._buf=buf;this._size=sz}};module.exports=Writer}).call(this,require("buffer").Buffer)},{"./errors":248,"./types":251,assert:2,buffer:17}],253:[function(require,module,exports){var Ber=require("./ber/index");module.exports={Ber:Ber,BerReader:Ber.Reader,BerWriter:Ber.Writer}},{"./ber/index":249}],254:[function(require,module,exports){(function(process,Buffer){var assert=require("assert");var Stream=require("stream").Stream;var util=require("util");var NDEBUG=process.env.NODE_NDEBUG||false;var ARRAY_TYPE_REQUIRED="%s ([%s]) required";var TYPE_REQUIRED="%s (%s) is required";function capitalize(str){return str.charAt(0).toUpperCase()+str.slice(1)}function uncapitalize(str){return str.charAt(0).toLowerCase()+str.slice(1)}function _(){return util.format.apply(util,arguments)}function _assert(arg,type,name,stackFunc){if(!NDEBUG){name=name||type;stackFunc=stackFunc||_assert.caller;var t=typeof arg;if(t!==type){throw new assert.AssertionError({message:_(TYPE_REQUIRED,name,type),actual:t,expected:type,operator:"===",stackStartFunction:stackFunc})}}}function array(arr,type,name){if(!NDEBUG){name=name||type;if(!Array.isArray(arr)){throw new assert.AssertionError({message:_(ARRAY_TYPE_REQUIRED,name,type),actual:typeof arr,expected:"array",operator:"Array.isArray",stackStartFunction:array.caller})}for(var i=0;i<arr.length;i++){_assert(arr[i],type,name,array)}}}function bool(arg,name){_assert(arg,"boolean",name,bool)}function buffer(arg,name){if(!Buffer.isBuffer(arg)){throw new assert.AssertionError({message:_(TYPE_REQUIRED,name,type),actual:typeof arg,expected:"buffer",operator:"Buffer.isBuffer",stackStartFunction:buffer})}}function func(arg,name){_assert(arg,"function",name)}function number(arg,name){_assert(arg,"number",name)}function object(arg,name){_assert(arg,"object",name)}function stream(arg,name){if(!(arg instanceof Stream)){throw new assert.AssertionError({message:_(TYPE_REQUIRED,name,type),actual:typeof arg,expected:"Stream",operator:"instanceof",stackStartFunction:buffer})}}function string(arg,name){_assert(arg,"string",name)}module.exports={bool:bool,buffer:buffer,func:func,number:number,object:object,stream:stream,string:string};Object.keys(module.exports).forEach(function(k){if(k==="buffer")return;var name="arrayOf"+capitalize(k);if(k==="bool")k="boolean";if(k==="func")k="function";module.exports[name]=function(arg,name){array(arg,k,name)}});Object.keys(module.exports).forEach(function(k){var _name="optional"+capitalize(k);var s=uncapitalize(k.replace("arrayOf",""));if(s==="bool")s="boolean";if(s==="func")s="function";if(k.indexOf("arrayOf")!==-1){module.exports[_name]=function(arg,name){if(!NDEBUG&&arg!==undefined){array(arg,s,name)}}}else{module.exports[_name]=function(arg,name){if(!NDEBUG&&arg!==undefined){_assert(arg,s,name)}}}});Object.keys(assert).forEach(function(k){if(k==="AssertionError"){module.exports[k]=assert[k];return}module.exports[k]=function(){if(!NDEBUG){assert[k].apply(assert[k],arguments)}}})}).call(this,require("_process"),require("buffer").Buffer)},{_process:171,assert:2,buffer:17,stream:187,util:191}],255:[function(require,module,exports){var mod_assert=require("assert");var ASSERT=mod_assert.ok;var ctf_versions=["1.0"];var ctf_entries=["integer","float","typedef","struct"];var ctf_deftypes=["int8_t","uint8_t","int16_t","uint16_t","int32_t","uint32_t","float","double"];function ctfParseInteger(entry,ctype){var name,sign,len,type;name=entry["name"];if(!("signed"in entry["integer"]))throw new Error("Malformed CTF JSON: integer missing "+"signed value");if(!("length"in entry["integer"]))throw new Error("Malformed CTF JSON: integer missing "+"length value");sign=entry["integer"]["signed"];len=entry["integer"]["length"];type=null;if(sign&&len==1)type="int8_t";else if(len==1)type="uint8_t";else if(sign&&len==2)type="int16_t";else if(len==2)type="uint16_t";else if(sign&&len==4)type="int32_t";else if(len==4)type="uint32_t";else if(sign&&len==8)type="int64_t";else if(len==8)type="uint64_t";if(type===null)throw new Error("Malformed CTF JSON: integer has "+"unsupported length and sign - "+len+"/"+sign);if(name==type)return;if(name=="char"){ASSERT(type=="int8_t");return}ctype.typedef(name,type)}function ctfParseFloat(entry,ctype){var name,len;name=entry["name"];if(!("length"in entry["float"]))throw new Error("Malformed CTF JSON: float missing "+"length value");len=entry["float"]["length"];if(len!=4&&len!=8)throw new Error("Malformed CTF JSON: float has invalid "+"length value");if(len==4){if(name=="float")return;ctype.typedef(name,"float")}else if(len==8){if(name=="double")return;ctype.typedef(name,"double")}}function ctfParseTypedef(entry,ctype){var name,type,ii;name=entry["name"];if(typeof entry["typedef"]!="string")throw new Error("Malformed CTF JSON: typedef value in not "+"a string");type=entry["typedef"];for(ii=0;ii<ctf_deftypes.length;ii++){if(name==ctf_deftypes[ii])return}ctype.typedef(name,type)}function ctfParseStruct(entry,ctype){var name,type,ii,val,index,member,push;member=[];if(!Array.isArray(entry["struct"]))throw new Error("Malformed CTF JSON: struct value is not "+"an array");for(ii=0;ii<entry["struct"].length;ii++){val=entry["struct"][ii];if(!("name"in val))throw new Error("Malformed CTF JSON: struct member "+"missing name");if(!("type"in val))throw new Error("Malformed CTF JSON: struct member "+"missing type");if(typeof val["name"]!="string")throw new Error("Malformed CTF JSON: struct member "+"name isn't a string");if(typeof val["type"]!="string")throw new Error("Malformed CTF JSON: struct member "+"type isn't a string");name=val["name"];type=val["type"];index=type.indexOf(" [");if(index!=-1){type=type.substring(0,index)+type.substring(index+1,type.length)}push={};push[name]={type:type};member.push(push)}name=entry["name"];ctype.typedef(name,member)}function ctfParseEntry(entry,ctype){var ii,found;if(!("name"in entry))throw new Error('Malformed CTF JSON: entry missing "name" '+"section");for(ii=0;ii<ctf_entries.length;ii++){if(ctf_entries[ii]in entry)found++}if(found===0)throw new Error("Malformed CTF JSON: found no entries");if(found>=2)throw new Error("Malformed CTF JSON: found more than one "+"entry");if("integer"in entry){ctfParseInteger(entry,ctype);return}if("float"in entry){ctfParseFloat(entry,ctype);return}if("typedef"in entry){ctfParseTypedef(entry,ctype);return}if("struct"in entry){ctfParseStruct(entry,ctype);return}ASSERT(false,"shouldn't reach here")}function ctfParseJson(json,ctype){var version,ii;ASSERT(json);ASSERT(ctype);if(!("metadata"in json))throw new Error("Invalid CTF JSON: missing metadata section");if(!("ctf2json_version"in json["metadata"]))throw new Error("Invalid CTF JSON: missing ctf2json_version");version=json["metadata"]["ctf2json_version"];for(ii=0;ii<ctf_versions.length;ii++){if(ctf_versions[ii]==version)break}if(ii==ctf_versions.length)throw new Error("Unsuported ctf2json_version: "+version);if(!("data"in json))throw new Error("Invalid CTF JSON: missing data section");if(!Array.isArray(json["data"]))throw new Error("Malformed CTF JSON: data section is not "+"an array");for(ii=0;ii<json["data"].length;ii++)ctfParseEntry(json["data"][ii],ctype)}exports.ctfParseJson=ctfParseJson},{assert:2}],256:[function(require,module,exports){var mod_assert=require("assert");function ruint8(buffer,endian,offset){if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset>=buffer.length)throw new Error("Trying to read beyond buffer length");return buffer[offset]}function rgint16(buffer,endian,offset){var val=0;if(endian=="big"){val=buffer[offset]<<8;val|=buffer[offset+1]}else{val=buffer[offset];val|=buffer[offset+1]<<8}return val}function ruint16(buffer,endian,offset){if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+1>=buffer.length)throw new Error("Trying to read beyond buffer length");return rgint16(buffer,endian,offset)}function rgint32(buffer,endian,offset){var val=0;if(endian=="big"){val=buffer[offset+1]<<16;val|=buffer[offset+2]<<8;val|=buffer[offset+3];val=val+(buffer[offset]<<24>>>0)}else{val=buffer[offset+2]<<16;val|=buffer[offset+1]<<8;val|=buffer[offset];val=val+(buffer[offset+3]<<24>>>0)}return val}function ruint32(buffer,endian,offset){if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+3>=buffer.length)throw new Error("Trying to read beyond buffer length");return rgint32(buffer,endian,offset)}function rgint64(buffer,endian,offset){var val=new Array(2);if(endian=="big"){val[0]=ruint32(buffer,endian,offset);val[1]=ruint32(buffer,endian,offset+4)}else{val[0]=ruint32(buffer,endian,offset+4);val[1]=ruint32(buffer,endian,offset)}return val}function ruint64(buffer,endian,offset){if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+7>=buffer.length)throw new Error("Trying to read beyond buffer length");return rgint64(buffer,endian,offset)}function rsint8(buffer,endian,offset){var neg;if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset>=buffer.length)throw new Error("Trying to read beyond buffer length");neg=buffer[offset]&128;if(!neg)return buffer[offset];return(255-buffer[offset]+1)*-1}function rsint16(buffer,endian,offset){var neg,val;if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+1>=buffer.length)throw new Error("Trying to read beyond buffer length");val=rgint16(buffer,endian,offset);neg=val&32768;if(!neg)return val;return(65535-val+1)*-1}function rsint32(buffer,endian,offset){var neg,val;if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+3>=buffer.length)throw new Error("Trying to read beyond buffer length");val=rgint32(buffer,endian,offset);neg=val&2147483648;if(!neg)return val;return(4294967295-val+1)*-1}function rsint64(buffer,endian,offset){var neg,val;if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+3>=buffer.length)throw new Error("Trying to read beyond buffer length");val=rgint64(buffer,endian,offset);neg=val[0]&2147483648;if(!neg)return val;val[0]=(4294967295-val[0])*-1;val[1]=(4294967295-val[1]+1)*-1;mod_assert.ok(val[1]<=4294967296);if(val[1]==-4294967296){val[1]=0;val[0]--}return val}function rfloat(buffer,endian,offset){var bytes=[];var sign,exponent,mantissa,val;var bias=127;var maxexp=255;if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+3>=buffer.length)throw new Error("Trying to read beyond buffer length");if(endian=="big"){bytes[0]=buffer[offset];bytes[1]=buffer[offset+1];bytes[2]=buffer[offset+2];bytes[3]=buffer[offset+3]}else{bytes[3]=buffer[offset];bytes[2]=buffer[offset+1];bytes[1]=buffer[offset+2];bytes[0]=buffer[offset+3]}sign=bytes[0]&128;exponent=(bytes[0]&127)<<1;exponent|=(bytes[1]&128)>>>7;mantissa=(bytes[1]&127)<<16;mantissa|=bytes[2]<<8;mantissa|=bytes[3];if(!sign&&exponent==maxexp&&mantissa===0)return Number.POSITIVE_INFINITY;if(sign&&exponent==maxexp&&mantissa===0)return Number.NEGATIVE_INFINITY;if(exponent==maxexp&&mantissa!==0)return Number.NaN;if(exponent===0&&mantissa===0)return 0;exponent-=bias;if(exponent==-bias){exponent++;val=0}else{val=1}val=(val+mantissa*Math.pow(2,-23))*Math.pow(2,exponent);if(sign)val*=-1;return val}function rdouble(buffer,endian,offset){var bytes=[];var sign,exponent,mantissa,val,lowmant;var bias=1023;var maxexp=2047;if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+7>=buffer.length)throw new Error("Trying to read beyond buffer length");if(endian=="big"){bytes[0]=buffer[offset];bytes[1]=buffer[offset+1];bytes[2]=buffer[offset+2];bytes[3]=buffer[offset+3];bytes[4]=buffer[offset+4];bytes[5]=buffer[offset+5];bytes[6]=buffer[offset+6];bytes[7]=buffer[offset+7]}else{bytes[7]=buffer[offset];bytes[6]=buffer[offset+1];bytes[5]=buffer[offset+2];bytes[4]=buffer[offset+3];bytes[3]=buffer[offset+4];bytes[2]=buffer[offset+5];bytes[1]=buffer[offset+6];bytes[0]=buffer[offset+7]}sign=bytes[0]&128;exponent=(bytes[0]&127)<<4;exponent|=(bytes[1]&240)>>>4;lowmant=bytes[7];lowmant|=bytes[6]<<8;lowmant|=bytes[5]<<16;mantissa=bytes[4];mantissa|=bytes[3]<<8;mantissa|=bytes[2]<<16;mantissa|=(bytes[1]&15)<<24;mantissa*=Math.pow(2,24);mantissa+=lowmant;if(!sign&&exponent==maxexp&&mantissa===0)return Number.POSITIVE_INFINITY;if(sign&&exponent==maxexp&&mantissa===0)return Number.NEGATIVE_INFINITY;if(exponent==maxexp&&mantissa!==0)return Number.NaN;if(exponent===0&&mantissa===0)return 0;exponent-=bias;if(exponent==-bias){exponent++;val=0}else{val=1}val=(val+mantissa*Math.pow(2,-52))*Math.pow(2,exponent);if(sign)val*=-1;return val}function prepuint(value,max){if(typeof value!="number")throw new(Error("cannot write a non-number as a number"));if(value<0)throw new Error("specified a negative value for writing an "+"unsigned value");if(value>max)throw new Error("value is larger than maximum value for "+"type");if(Math.floor(value)!==value)throw new Error("value has a fractional component");return value}function wuint8(value,endian,buffer,offset){var val;if(value===undefined)throw new Error("missing value");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset>=buffer.length)throw new Error("Trying to read beyond buffer length");val=prepuint(value,255);buffer[offset]=val}function wgint16(val,endian,buffer,offset){if(endian=="big"){buffer[offset]=(val&65280)>>>8;buffer[offset+1]=val&255}else{buffer[offset+1]=(val&65280)>>>8;buffer[offset]=val&255}}function wuint16(value,endian,buffer,offset){var val;if(value===undefined)throw new Error("missing value");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+1>=buffer.length)throw new Error("Trying to read beyond buffer length");val=prepuint(value,65535);wgint16(val,endian,buffer,offset)}function wgint32(val,endian,buffer,offset){if(endian=="big"){buffer[offset]=(val-(val&16777215))/Math.pow(2,24);buffer[offset+1]=val>>>16&255;buffer[offset+2]=val>>>8&255;buffer[offset+3]=val&255}else{buffer[offset+3]=(val-(val&16777215))/Math.pow(2,24);buffer[offset+2]=val>>>16&255;buffer[offset+1]=val>>>8&255;buffer[offset]=val&255}}function wuint32(value,endian,buffer,offset){var val;if(value===undefined)throw new Error("missing value");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+3>=buffer.length)throw new Error("Trying to read beyond buffer length");val=prepuint(value,4294967295);wgint32(val,endian,buffer,offset)}function wgint64(value,endian,buffer,offset){if(endian=="big"){wgint32(value[0],endian,buffer,offset);wgint32(value[1],endian,buffer,offset+4)}else{wgint32(value[0],endian,buffer,offset+4);wgint32(value[1],endian,buffer,offset)}}function wuint64(value,endian,buffer,offset){if(value===undefined)throw new Error("missing value");if(!(value instanceof Array))throw new Error("value must be an array");if(value.length!=2)throw new Error("value must be an array of length 2");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+7>=buffer.length)throw new Error("Trying to read beyond buffer length");prepuint(value[0],4294967295);prepuint(value[1],4294967295);wgint64(value,endian,buffer,offset)}function prepsint(value,max,min){if(typeof value!="number")throw new(Error("cannot write a non-number as a number"));if(value>max)throw new Error("value larger than maximum allowed value");if(value<min)throw new Error("value smaller than minimum allowed value");if(Math.floor(value)!==value)throw new Error("value has a fractional component");return value}function wsint8(value,endian,buffer,offset){var val;if(value===undefined)throw new Error("missing value");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset>=buffer.length)throw new Error("Trying to read beyond buffer length");val=prepsint(value,127,-128);if(val>=0)wuint8(val,endian,buffer,offset);else wuint8(255+val+1,endian,buffer,offset)}function wsint16(value,endian,buffer,offset){var val;if(value===undefined)throw new Error("missing value");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+1>=buffer.length)throw new Error("Trying to read beyond buffer length");val=prepsint(value,32767,-32768);if(val>=0)wgint16(val,endian,buffer,offset);else wgint16(65535+val+1,endian,buffer,offset)}function wsint32(value,endian,buffer,offset){var val;if(value===undefined)throw new Error("missing value");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+3>=buffer.length)throw new Error("Trying to read beyond buffer length");val=prepsint(value,2147483647,-2147483648);if(val>=0)wgint32(val,endian,buffer,offset);else wgint32(4294967295+val+1,endian,buffer,offset)}function wsint64(value,endian,buffer,offset){var vzpos,vopos;var vals=new Array(2);if(value===undefined)throw new Error("missing value");if(!(value instanceof Array))throw new Error("value must be an array");if(value.length!=2)throw new Error("value must be an array of length 2");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+7>=buffer.length)throw new Error("Trying to read beyond buffer length");vzpos=value[0]*Number.POSITIVE_INFINITY==Number.POSITIVE_INFINITY;vopos=value[1]*Number.POSITIVE_INFINITY==Number.POSITIVE_INFINITY;if(value[0]!=0&&value[1]!=0&&vzpos!=vopos)throw new Error("Both entries in the array must have "+"the same sign");if(vzpos){prepuint(value[0],2147483647);prepuint(value[1],4294967295)}else{prepsint(value[0],0,-2147483648);prepsint(value[1],0,-4294967295);if(value[0]==-2147483648&&value[1]!=0)throw new Error("value smaller than minimum "+"allowed value")}if(value[0]<0||value[1]<0){vals[0]=4294967295-Math.abs(value[0]);vals[1]=4294967296-Math.abs(value[1]);if(vals[1]==4294967296){vals[1]=0;vals[0]++}}else{vals[0]=value[0];vals[1]=value[1]}wgint64(vals,endian,buffer,offset)}function log2(value){return Math.log(value)/Math.log(2)}function intexp(value){return Math.floor(log2(value))}function fracexp(value){return Math.floor(log2(value))}function wfloat(value,endian,buffer,offset){var sign,exponent,mantissa,ebits;var bytes=[];if(value===undefined)throw new Error("missing value");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+3>=buffer.length)throw new Error("Trying to read beyond buffer length");if(isNaN(value)){sign=0;exponent=255;mantissa=23}else if(value==Number.POSITIVE_INFINITY){sign=0;exponent=255;mantissa=0}else if(value==Number.NEGATIVE_INFINITY){sign=1;exponent=255;mantissa=0}else{if(value<0){sign=1;value=Math.abs(value)}else{sign=0}if(value<1)ebits=fracexp(value);else ebits=intexp(value);if(ebits<=-127){exponent=0;mantissa=value*Math.pow(2,149)&8388607}else{exponent=127+ebits;mantissa=value*Math.pow(2,23-ebits);mantissa&=8388607}}bytes[0]=sign<<7|(exponent&254)>>>1;bytes[1]=(exponent&1)<<7|(mantissa&8323072)>>>16;bytes[2]=(mantissa&65280)>>>8;bytes[3]=mantissa&255;if(endian=="big"){buffer[offset]=bytes[0];buffer[offset+1]=bytes[1];buffer[offset+2]=bytes[2];buffer[offset+3]=bytes[3]}else{buffer[offset]=bytes[3];buffer[offset+1]=bytes[2];buffer[offset+2]=bytes[1];buffer[offset+3]=bytes[0]}}function wdouble(value,endian,buffer,offset){var sign,exponent,mantissa,ebits;var bytes=[];if(value===undefined)throw new Error("missing value");if(endian===undefined)throw new Error("missing endian");if(buffer===undefined)throw new Error("missing buffer");if(offset===undefined)throw new Error("missing offset");if(offset+7>=buffer.length)throw new Error("Trying to read beyond buffer length");if(isNaN(value)){sign=0;exponent=2047;mantissa=23}else if(value==Number.POSITIVE_INFINITY){sign=0;exponent=2047;mantissa=0}else if(value==Number.NEGATIVE_INFINITY){sign=1;exponent=2047;mantissa=0}else{if(value<0){sign=1;value=Math.abs(value)}else{sign=0}if(value<1)ebits=fracexp(value);else ebits=intexp(value);if(value<=2.225073858507201e-308||ebits<=-1023){exponent=0;mantissa=value*Math.pow(2,1023)*Math.pow(2,51);mantissa%=Math.pow(2,52)}else{if(ebits>1023)ebits=1023;exponent=1023+ebits;mantissa=value*Math.pow(2,-ebits);mantissa*=Math.pow(2,52);mantissa%=Math.pow(2,52)}}bytes[7]=mantissa&255;bytes[6]=mantissa>>>8&255;bytes[5]=mantissa>>>16&255;mantissa=(mantissa-(mantissa&16777215))/Math.pow(2,24);bytes[4]=mantissa&255;bytes[3]=mantissa>>>8&255;bytes[2]=mantissa>>>16&255;bytes[1]=(exponent&15)<<4|mantissa>>>24;bytes[0]=sign<<7|(exponent&2032)>>>4;if(endian=="big"){buffer[offset]=bytes[0];buffer[offset+1]=bytes[1];buffer[offset+2]=bytes[2];buffer[offset+3]=bytes[3];buffer[offset+4]=bytes[4];buffer[offset+5]=bytes[5];buffer[offset+6]=bytes[6];buffer[offset+7]=bytes[7]}else{buffer[offset+7]=bytes[0];buffer[offset+6]=bytes[1];buffer[offset+5]=bytes[2];buffer[offset+4]=bytes[3];buffer[offset+3]=bytes[4];buffer[offset+2]=bytes[5];buffer[offset+1]=bytes[6];buffer[offset]=bytes[7]}}exports.ruint8=ruint8;exports.ruint16=ruint16;exports.ruint32=ruint32;exports.ruint64=ruint64;exports.wuint8=wuint8;exports.wuint16=wuint16;exports.wuint32=wuint32;exports.wuint64=wuint64;exports.rsint8=rsint8;exports.rsint16=rsint16;exports.rsint32=rsint32;exports.rsint64=rsint64;exports.wsint8=wsint8;exports.wsint16=wsint16;exports.wsint32=wsint32;exports.wsint64=wsint64;exports.rfloat=rfloat;exports.rdouble=rdouble;exports.wfloat=wfloat;exports.wdouble=wdouble},{assert:2}],257:[function(require,module,exports){(function(Buffer){var mod_ctf=require("./ctf.js");var mod_ctio=require("./ctio.js");var mod_assert=require("assert");var deftypes={uint8_t:{read:ctReadUint8,write:ctWriteUint8},uint16_t:{read:ctReadUint16,write:ctWriteUint16},uint32_t:{read:ctReadUint32,write:ctWriteUint32},uint64_t:{read:ctReadUint64,write:ctWriteUint64},int8_t:{read:ctReadSint8,write:ctWriteSint8},int16_t:{read:ctReadSint16,write:ctWriteSint16},int32_t:{read:ctReadSint32,write:ctWriteSint32},int64_t:{read:ctReadSint64,write:ctWriteSint64},"float":{read:ctReadFloat,write:ctWriteFloat},"double":{read:ctReadDouble,write:ctWriteDouble},"char":{read:ctReadChar,write:ctWriteChar},"char[]":{read:ctReadCharArray,write:ctWriteCharArray}};function ctReadUint8(endian,buffer,offset){var val=mod_ctio.ruint8(buffer,endian,offset);return{value:val,size:1}}function ctReadUint16(endian,buffer,offset){var val=mod_ctio.ruint16(buffer,endian,offset);return{value:val,size:2}}function ctReadUint32(endian,buffer,offset){var val=mod_ctio.ruint32(buffer,endian,offset);return{value:val,size:4}}function ctReadUint64(endian,buffer,offset){var val=mod_ctio.ruint64(buffer,endian,offset);return{value:val,size:8}}function ctReadSint8(endian,buffer,offset){var val=mod_ctio.rsint8(buffer,endian,offset);return{value:val,size:1}}function ctReadSint16(endian,buffer,offset){var val=mod_ctio.rsint16(buffer,endian,offset);return{value:val,size:2}}function ctReadSint32(endian,buffer,offset){var val=mod_ctio.rsint32(buffer,endian,offset);return{value:val,size:4}}function ctReadSint64(endian,buffer,offset){var val=mod_ctio.rsint64(buffer,endian,offset);return{value:val,size:8}}function ctReadFloat(endian,buffer,offset){var val=mod_ctio.rfloat(buffer,endian,offset);return{value:val,size:4}}function ctReadDouble(endian,buffer,offset){var val=mod_ctio.rdouble(buffer,endian,offset);return{value:val,size:8}}function ctReadChar(endian,buffer,offset){var res=new Buffer(1);res[0]=mod_ctio.ruint8(buffer,endian,offset);return{value:res,size:1}}function ctReadCharArray(length,endian,buffer,offset){var ii;var res=new Buffer(length);for(ii=0;ii<length;ii++)res[ii]=mod_ctio.ruint8(buffer,endian,offset+ii);return{value:res,size:length}}function ctWriteUint8(value,endian,buffer,offset){mod_ctio.wuint8(value,endian,buffer,offset);return 1}function ctWriteUint16(value,endian,buffer,offset){mod_ctio.wuint16(value,endian,buffer,offset);return 2}function ctWriteUint32(value,endian,buffer,offset){mod_ctio.wuint32(value,endian,buffer,offset);return 4}function ctWriteUint64(value,endian,buffer,offset){mod_ctio.wuint64(value,endian,buffer,offset);return 8}function ctWriteSint8(value,endian,buffer,offset){mod_ctio.wsint8(value,endian,buffer,offset);return 1}function ctWriteSint16(value,endian,buffer,offset){mod_ctio.wsint16(value,endian,buffer,offset);return 2}function ctWriteSint32(value,endian,buffer,offset){mod_ctio.wsint32(value,endian,buffer,offset);return 4}function ctWriteSint64(value,endian,buffer,offset){mod_ctio.wsint64(value,endian,buffer,offset);return 8}function ctWriteFloat(value,endian,buffer,offset){mod_ctio.wfloat(value,endian,buffer,offset);return 4}function ctWriteDouble(value,endian,buffer,offset){mod_ctio.wdouble(value,endian,buffer,offset);return 8}function ctWriteChar(value,endian,buffer,offset){if(!(value instanceof Buffer))throw new Error("Input must be a buffer");mod_ctio.ruint8(value[0],endian,buffer,offset); | |
return 1}function ctWriteCharArray(value,length,endian,buffer,offset){var ii;if(!(value instanceof Buffer))throw new Error("Input must be a buffer");if(value.length>length)throw new Error("value length greater than array length");for(ii=0;ii<value.length&&ii<length;ii++)mod_ctio.wuint8(value[ii],endian,buffer,offset+ii);for(;ii<length;ii++)mod_ctio.wuint8(0,endian,offset+ii);return length}function ctGetBasicTypes(){var ret={};var key;for(key in deftypes)ret[key]=deftypes[key];return ret}function ctParseType(str){var begInd,endInd;var type,len;if(typeof str!="string")throw new Error("type must be a Javascript string");endInd=str.lastIndexOf("]");if(endInd==-1){if(str.lastIndexOf("[")!=-1)throw new Error("found invalid type with '[' but "+"no corresponding ']'");return{type:str}}begInd=str.lastIndexOf("[");if(begInd==-1)throw new Error("found invalid type with ']' but "+"no corresponding '['");if(begInd>=endInd)throw new Error("malformed type, ']' appears before '['");type=str.substring(0,begInd);len=str.substring(begInd+1,endInd);return{type:type,len:len}}function ctCheckReq(def,types,fields){var ii,jj;var req,keys,key;var found={};if(!(def instanceof Array))throw new Error("definition is not an array");if(def.length===0)throw new Error("definition must have at least one element");for(ii=0;ii<def.length;ii++){req=def[ii];if(!(req instanceof Object))throw new Error("definition must be an array of"+"objects");keys=Object.keys(req);if(keys.length!=1)throw new Error("definition entry must only have "+"one key");if(keys[0]in found)throw new Error("Specified name already "+"specified: "+keys[0]);if(!("type"in req[keys[0]]))throw new Error("missing required type definition");key=ctParseType(req[keys[0]]["type"]);while(key["len"]!==undefined){if(isNaN(parseInt(key["len"],10))){if(!(key["len"]in found))throw new Error("Given an array "+"length without a matching type")}key=ctParseType(key["type"])}if(!(key["type"]in types))throw new Error("type not found or typdefed: "+key["type"]);if(fields!==undefined){for(jj=0;jj<fields.length;jj++){if(!(fields[jj]in req[keys[0]]))throw new Error("Missing required "+"field: "+fields[jj])}}found[keys[0]]=true}}function CTypeParser(conf){if(!conf)throw new Error("missing required argument");if(!("endian"in conf))throw new Error("missing required endian value");if(conf["endian"]!="big"&&conf["endian"]!="little")throw new Error("Invalid endian type");if("char-type"in conf&&(conf["char-type"]!="uint8"&&conf["char-type"]!="int8"))throw new Error("invalid option for char-type: "+conf["char-type"]);this.endian=conf["endian"];this.types=ctGetBasicTypes();if("char-type"in conf&&conf["char-type"]=="uint8")this.types["char"]=this.types["uint8_t"];if("char-type"in conf&&conf["char-type"]=="int8")this.types["char"]=this.types["int8_t"]}CTypeParser.prototype.setEndian=function(endian){if(endian!="big"&&endian!="little")throw new Error("invalid endian type, must be big or "+"little");this.endian=endian};CTypeParser.prototype.getEndian=function(){return this.endian};CTypeParser.prototype.typedef=function(name,value){var type;if(name===undefined)throw new(Error("missing required typedef argument: name"));if(value===undefined)throw new(Error("missing required typedef argument: value"));if(typeof name!="string")throw new(Error("the name of a type must be a string"));type=ctParseType(name);if(type["len"]!==undefined)throw new Error("Cannot have an array in the typedef name");if(name in this.types)throw new Error("typedef name already present: "+name);if(typeof value!="string"&&!(value instanceof Array))throw new Error("typedef value must either be a string or "+"struct");if(typeof value=="string"){type=ctParseType(value);if(type["len"]!==undefined){if(isNaN(parseInt(type["len"],10)))throw new(Error("typedef value must use "+"fixed size array when outside of a "+"struct"))}this.types[name]=value}else{ctCheckReq(value,this.types);this.types[name]=value}};CTypeParser.prototype.lstypes=function(){var key;var ret={};for(key in this.types){if(key in deftypes)continue;ret[key]=this.types[key]}return ret};function ctResolveArray(str,values){var ret="";var type=ctParseType(str);while(type["len"]!==undefined){if(isNaN(parseInt(type["len"],10))){if(typeof values[type["len"]]!="number")throw new Error("cannot sawp in non-number "+"for array value");ret="["+values[type["len"]]+"]"+ret}else{ret="["+type["len"]+"]"+ret}type=ctParseType(type["type"])}ret=type["type"]+ret;return ret}CTypeParser.prototype.resolveTypedef=function(type,dispatch,buffer,offset,value){var pt;mod_assert.ok(type in this.types);if(typeof this.types[type]=="string"){pt=ctParseType(this.types[type]);if(dispatch=="read")return this.readEntry(pt,buffer,offset);else if(dispatch=="write")return this.writeEntry(value,pt,buffer,offset);else throw new Error("invalid dispatch type to "+"resolveTypedef")}else{if(dispatch=="read")return this.readStruct(this.types[type],buffer,offset);else if(dispatch=="write")return this.writeStruct(value,this.types[type],buffer,offset);else throw new Error("invalid dispatch type to "+"resolveTypedef")}};CTypeParser.prototype.readEntry=function(type,buffer,offset){var parse,len;if(type["len"]!==undefined){len=parseInt(type["len"],10);if(isNaN(len))throw new Error("somehow got a non-numeric length");if(type["type"]=="char")parse=this.types["char[]"]["read"](len,this.endian,buffer,offset);else parse=this.readArray(type["type"],len,buffer,offset)}else{if(type["type"]in deftypes)parse=this.types[type["type"]]["read"](this.endian,buffer,offset);else parse=this.resolveTypedef(type["type"],"read",buffer,offset)}return parse};CTypeParser.prototype.readArray=function(type,length,buffer,offset){var ii,ent,pt;var baseOffset=offset;var ret=new Array(length);pt=ctParseType(type);for(ii=0;ii<length;ii++){ent=this.readEntry(pt,buffer,offset);offset+=ent["size"];ret[ii]=ent["value"]}return{value:ret,size:offset-baseOffset}};CTypeParser.prototype.readStruct=function(def,buffer,offset){var parse,ii,type,entry,key;var baseOffset=offset;var ret={};for(ii=0;ii<def.length;ii++){key=Object.keys(def[ii])[0];entry=def[ii][key];type=ctParseType(ctResolveArray(entry["type"],ret));if("offset"in entry)offset=baseOffset+entry["offset"];parse=this.readEntry(type,buffer,offset);offset+=parse["size"];ret[key]=parse["value"]}return{value:ret,size:offset-baseOffset}};CTypeParser.prototype.readData=function(def,buffer,offset){if(def===undefined)throw new Error("missing definition for what we should be"+"parsing");if(buffer===undefined)throw new Error("missing buffer for what we should be "+"parsing");if(offset===undefined)throw new Error("missing offset for what we should be "+"parsing");ctCheckReq(def,this.types);return this.readStruct(def,buffer,offset)["value"]};CTypeParser.prototype.writeArray=function(value,type,length,buffer,offset){var ii,pt;var baseOffset=offset;if(!(value instanceof Array))throw new Error("asked to write an array, but value is not "+"an array");if(value.length!=length)throw new Error("asked to write array of length "+length+" but that does not match value length: "+value.length);pt=ctParseType(type);for(ii=0;ii<length;ii++)offset+=this.writeEntry(value[ii],pt,buffer,offset);return offset-baseOffset};CTypeParser.prototype.writeEntry=function(value,type,buffer,offset){var len,ret;if(type["len"]!==undefined){len=parseInt(type["len"],10);if(isNaN(len))throw new Error("somehow got a non-numeric length");if(type["type"]=="char")ret=this.types["char[]"]["write"](value,len,this.endian,buffer,offset);else ret=this.writeArray(value,type["type"],len,buffer,offset)}else{if(type["type"]in deftypes)ret=this.types[type["type"]]["write"](value,this.endian,buffer,offset);else ret=this.resolveTypedef(type["type"],"write",buffer,offset,value)}return ret};CTypeParser.prototype.writeStruct=function(value,def,buffer,offset){var ii,entry,type,key;var baseOffset=offset;var vals={};for(ii=0;ii<def.length;ii++){key=Object.keys(def[ii])[0];entry=def[ii][key];type=ctParseType(ctResolveArray(entry["type"],vals));if("offset"in entry)offset=baseOffset+entry["offset"];offset+=this.writeEntry(value[ii],type,buffer,offset);vals[key]=value[ii]}return offset};function getValues(def){var ii,out,key;out=[];for(ii=0;ii<def.length;ii++){key=Object.keys(def[ii])[0];mod_assert.ok("value"in def[ii][key]);out.push(def[ii][key]["value"])}return out}CTypeParser.prototype.writeData=function(def,buffer,offset,values){var hv;if(def===undefined)throw new Error("missing definition for what we should be"+"parsing");if(buffer===undefined)throw new Error("missing buffer for what we should be "+"parsing");if(offset===undefined)throw new Error("missing offset for what we should be "+"parsing");hv=values!=null&&values!=undefined;if(hv){if(!Array.isArray(values))throw new Error("missing values for writing");ctCheckReq(def,this.types)}else{ctCheckReq(def,this.types,["value"])}this.writeStruct(hv?values:getValues(def),def,buffer,offset)};function toAbs64(val){if(val===undefined)throw new Error("missing required arg: value");if(!Array.isArray(val))throw new Error("value must be an array");if(val.length!=2)throw new Error("value must be an array of length 2");if(val[0]>=1048576)throw new Error("value would become approximated");return val[0]*Math.pow(2,32)+val[1]}function toApprox64(val){if(val===undefined)throw new Error("missing required arg: value");if(!Array.isArray(val))throw new Error("value must be an array");if(val.length!=2)throw new Error("value must be an array of length 2");return Math.pow(2,32)*val[0]+val[1]}function parseCTF(json,conf){var ctype=new CTypeParser(conf);mod_ctf.ctfParseJson(json,ctype);return ctype}exports.Parser=CTypeParser;exports.toAbs64=toAbs64;exports.toApprox64=toApprox64;exports.parseCTF=parseCTF;exports.ruint8=mod_ctio.ruint8;exports.ruint16=mod_ctio.ruint16;exports.ruint32=mod_ctio.ruint32;exports.ruint64=mod_ctio.ruint64;exports.wuint8=mod_ctio.wuint8;exports.wuint16=mod_ctio.wuint16;exports.wuint32=mod_ctio.wuint32;exports.wuint64=mod_ctio.wuint64;exports.rsint8=mod_ctio.rsint8;exports.rsint16=mod_ctio.rsint16;exports.rsint32=mod_ctio.rsint32;exports.rsint64=mod_ctio.rsint64;exports.wsint8=mod_ctio.wsint8;exports.wsint16=mod_ctio.wsint16;exports.wsint32=mod_ctio.wsint32;exports.wsint64=mod_ctio.wsint64;exports.rfloat=mod_ctio.rfloat;exports.rdouble=mod_ctio.rdouble;exports.wfloat=mod_ctio.wfloat;exports.wdouble=mod_ctio.wdouble}).call(this,require("buffer").Buffer)},{"./ctf.js":255,"./ctio.js":256,assert:2,buffer:17}],258:[function(require,module,exports){module.exports=stringify;function getSerialize(fn,decycle){var seen=[],keys=[];decycle=decycle||function(key,value){return"[Circular "+getPath(value,seen,keys)+"]"};return function(key,value){var ret=value;if(typeof value==="object"&&value){if(seen.indexOf(value)!==-1)ret=decycle(key,value);else{seen.push(value);keys.push(key)}}if(fn)ret=fn(key,ret);return ret}}function getPath(value,seen,keys){var index=seen.indexOf(value);var path=[keys[index]];for(index--;index>=0;index--){if(seen[index][path[0]]===value){value=seen[index];path.unshift(keys[index])}}return"~"+path.join(".")}function stringify(obj,fn,spaces,decycle){return JSON.stringify(obj,getSerialize(fn,decycle),spaces)}stringify.getSerialize=getSerialize},{}],259:[function(require,module,exports){module.exports={"text/jade":["jade"],"text/stylus":["stylus","styl"],"text/less":["less"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/coffeescript":["coffee"],"text/x-handlebars-template":["hbs"],"text/jsx":["jsx"]}},{}],260:[function(require,module,exports){exports.types=Object.create(null);exports.extensions=Object.create(null);exports.define=define;exports.json={mime:require("./mime.json"),node:require("./node.json"),custom:require("./custom.json")};exports.lookup=function(string){if(!string||typeof string!=="string")return false;string=string.replace(/.*[\.\/\\]/,"").toLowerCase();if(!string)return false;return exports.types[string]||false};exports.extension=function(type){if(!type||typeof type!=="string")return false;type=type.match(/^\s*([^;\s]*)(?:;|\s|$)/);if(!type)return false;var exts=exports.extensions[type[1].toLowerCase()];if(!exts||!exts.length)return false;return exts[0]};exports.charset=function(type){switch(type){case"application/json":return"UTF-8";case"application/javascript":return"UTF-8"}if(/^text\//.test(type))return"UTF-8";return false};exports.charsets={lookup:exports.charset};exports.contentType=function(type){if(!type||typeof type!=="string")return false;if(!~type.indexOf("/"))type=exports.lookup(type);if(!type)return false;if(!~type.indexOf("charset")){var charset=exports.charset(type);if(charset)type+="; charset="+charset.toLowerCase()}return type};define(exports.json.mime);define(exports.json.node);define(exports.json.custom);function define(json){Object.keys(json).forEach(function(type){var exts=json[type]||[];exports.extensions[type]=exports.extensions[type]||[];exts.forEach(function(ext){if(!~exports.extensions[type].indexOf(ext))exports.extensions[type].push(ext);exports.types[ext]=type})})}},{"./custom.json":259,"./mime.json":261,"./node.json":262}],261:[function(require,module,exports){module.exports={"application/1d-interleaved-parityfec":[],"application/3gpp-ims+xml":[],"application/activemessage":[],"application/andrew-inset":["ez"],"application/applefile":[],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomicmail":[],"application/atomsvc+xml":["atomsvc"],"application/auth-policy+xml":[],"application/batch-smtp":[],"application/beep+xml":[],"application/calendar+xml":[],"application/cals-1840":[],"application/ccmp+xml":[],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cea-2018+xml":[],"application/cellml+xml":[],"application/cfw":[],"application/cnrp+xml":[],"application/commonground":[],"application/conference-info+xml":[],"application/cpl+xml":[],"application/csta+xml":[],"application/cstadata+xml":[],"application/cu-seeme":["cu"],"application/cybercash":[],"application/davmount+xml":["davmount"],"application/dca-rft":[],"application/dec-dx":[],"application/dialog-info+xml":[],"application/dicom":[],"application/dns":[],"application/docbook+xml":["dbk"],"application/dskpp+xml":[],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/dvcs":[],"application/ecmascript":["ecma"],"application/edi-consent":[],"application/edi-x12":[],"application/edifact":[],"application/emma+xml":["emma"],"application/epp+xml":[],"application/epub+zip":["epub"],"application/eshop":[],"application/example":[],"application/exi":["exi"],"application/fastinfoset":[],"application/fastsoap":[],"application/fits":[],"application/font-tdpfr":["pfr"],"application/framework-attributes+xml":[],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/h224":[],"application/held+xml":[],"application/http":[],"application/hyperstudio":["stk"],"application/ibe-key-request+xml":[],"application/ibe-pkg-reply+xml":[],"application/ibe-pp-data":[],"application/iges":[],"application/im-iscomposing+xml":[],"application/index":[],"application/index.cmd":[],"application/index.obj":[],"application/index.response":[],"application/index.vnd":[],"application/inkml+xml":["ink","inkml"],"application/iotp":[],"application/ipfix":["ipfix"],"application/ipp":[],"application/isup":[],"application/java-archive":["jar"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js"],"application/json":["json"],"application/jsonml+json":["jsonml"],"application/kpml-request+xml":[],"application/kpml-response+xml":[],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/macwriteii":[],"application/mads+xml":["mads"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml-content+xml":[],"application/mathml-presentation+xml":[],"application/mathml+xml":["mathml"],"application/mbms-associated-procedure-description+xml":[],"application/mbms-deregister+xml":[],"application/mbms-envelope+xml":[],"application/mbms-msk+xml":[],"application/mbms-msk-response+xml":[],"application/mbms-protection-description+xml":[],"application/mbms-reception-report+xml":[],"application/mbms-register+xml":[],"application/mbms-register-response+xml":[],"application/mbms-user-service-description+xml":[],"application/mbox":["mbox"],"application/media_control+xml":[],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mikey":[],"application/mods+xml":["mods"],"application/moss-keys":[],"application/moss-signature":[],"application/mosskey-data":[],"application/mosskey-request":[],"application/mp21":["m21","mp21"],"application/mp4":["mp4s"],"application/mpeg4-generic":[],"application/mpeg4-iod":[],"application/mpeg4-iod-xmt":[],"application/msc-ivr+xml":[],"application/msc-mixer+xml":[],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/nasdata":[],"application/news-checkgroups":[],"application/news-groupinfo":[],"application/news-transmission":[],"application/nss":[],"application/ocsp-request":[],"application/ocsp-response":[],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/parityfec":[],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-keys":[],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pidf+xml":[],"application/pidf-diff+xml":[],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/poc-settings+xml":[],"application/postscript":["ai","eps","ps"],"application/prs.alvestrand.titrax-sheet":[],"application/prs.cww":["cww"],"application/prs.nprend":[],"application/prs.plucker":[],"application/prs.rdf-xml-crypt":[],"application/prs.xsf+xml":[],"application/pskc+xml":["pskcxml"],"application/qsig":[],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/remote-printing":[],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/riscos":[],"application/rlmi+xml":[],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rpki-updown":[],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/rtx":[],"application/samlassertion+xml":[],"application/samlmetadata+xml":[],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment":[],"application/set-payment-initiation":["setpay"],"application/set-registration":[],"application/set-registration-initiation":["setreg"],"application/sgml":[],"application/sgml-open-catalog":[],"application/shf+xml":["shf"],"application/sieve":[],"application/simple-filter+xml":[],"application/simple-message-summary":[],"application/simplesymbolcontainer":[],"application/slate":[],"application/smil":[],"application/smil+xml":["smi","smil"],"application/soap+fastinfoset":[],"application/soap+xml":[],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/spirits-event+xml":[],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tamp-apex-update":[],"application/tamp-apex-update-confirm":[],"application/tamp-community-update":[],"application/tamp-community-update-confirm":[],"application/tamp-error":[],"application/tamp-sequence-adjust":[],"application/tamp-sequence-adjust-confirm":[],"application/tamp-status-query":[],"application/tamp-status-response":[],"application/tamp-update":[],"application/tamp-update-confirm":[],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamp-query":[],"application/timestamp-reply":[],"application/timestamped-data":["tsd"],"application/tve-trigger":[],"application/ulpfec":[],"application/vcard+xml":[],"application/vemmi":[],"application/vividence.scriptfile":[],"application/vnd.3gpp.bsf+xml":[],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp.sms":[],"application/vnd.3gpp2.bcmcsinfo+xml":[],"application/vnd.3gpp2.sms":[],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.partial-upload":[],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.aether.imp":[],"application/vnd.ah-barcode":[],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.amundsen.maze+xml":[],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.arastra.swi":[],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.autopackage":[],"application/vnd.avistar+xml":[],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bluetooth.ep.oob":[],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.cab-jscript":[],"application/vnd.canon-cpdl":[],"application/vnd.canon-lips":[],"application/vnd.cendio.thinlinc.clientconf":[],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.cirpack.isdn-ext":[],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.collection+json":[],"application/vnd.commerce-battelle":[],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.ctct.ws+xml":[],"application/vnd.cups-pdf":[],"application/vnd.cups-postscript":[],"application/vnd.cups-ppd":["ppd"],"application/vnd.cups-raster":[],"application/vnd.cups-raw":[],"application/vnd.curl":[],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.cybank":[],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dir-bi.plate-dl-nosuffix":[],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dolby.mobile.1":[],"application/vnd.dolby.mobile.2":[],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.dvbj":[],"application/vnd.dvb.esgcontainer":[],"application/vnd.dvb.ipdcdftnotifaccess":[],"application/vnd.dvb.ipdcesgaccess":[],"application/vnd.dvb.ipdcesgaccess2":[],"application/vnd.dvb.ipdcesgpdd":[],"application/vnd.dvb.ipdcroaming":[],"application/vnd.dvb.iptv.alfec-base":[],"application/vnd.dvb.iptv.alfec-enhancement":[],"application/vnd.dvb.notif-aggregate-root+xml":[],"application/vnd.dvb.notif-container+xml":[],"application/vnd.dvb.notif-generic+xml":[],"application/vnd.dvb.notif-ia-msglist+xml":[],"application/vnd.dvb.notif-ia-registration-request+xml":[],"application/vnd.dvb.notif-ia-registration-response+xml":[],"application/vnd.dvb.notif-init+xml":[],"application/vnd.dvb.pfr":[],"application/vnd.dvb.service":["svc"],"application/vnd.dxr":[],"application/vnd.dynageo":["geo"],"application/vnd.easykaraoke.cdgdownload":[],"application/vnd.ecdis-update":[],"application/vnd.ecowin.chart":["mag"],"application/vnd.ecowin.filerequest":[],"application/vnd.ecowin.fileupdate":[],"application/vnd.ecowin.series":[],"application/vnd.ecowin.seriesrequest":[],"application/vnd.ecowin.seriesupdate":[],"application/vnd.emclient.accessrequest+xml":[],"application/vnd.enliven":["nml"],"application/vnd.eprints.data+xml":[],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.ericsson.quickcall":[],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.etsi.aoc+xml":[],"application/vnd.etsi.cug+xml":[],"application/vnd.etsi.iptvcommand+xml":[],"application/vnd.etsi.iptvdiscovery+xml":[],"application/vnd.etsi.iptvprofile+xml":[],"application/vnd.etsi.iptvsad-bc+xml":[],"application/vnd.etsi.iptvsad-cod+xml":[],"application/vnd.etsi.iptvsad-npvr+xml":[],"application/vnd.etsi.iptvservice+xml":[],"application/vnd.etsi.iptvsync+xml":[],"application/vnd.etsi.iptvueprofile+xml":[],"application/vnd.etsi.mcid+xml":[],"application/vnd.etsi.overload-control-policy-dataset+xml":[],"application/vnd.etsi.sci+xml":[],"application/vnd.etsi.simservs+xml":[],"application/vnd.etsi.tsl+xml":[],"application/vnd.etsi.tsl.der":[],"application/vnd.eudora.data":[],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.f-secure.mobile":[],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.ffsns":[],"application/vnd.fints":[],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.font-fontforge-sfd":[],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.art-ex":[],"application/vnd.fujixerox.art4":[],"application/vnd.fujixerox.hbpl":[],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fut-misnet":[],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geocube+xml":[],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.globalplatform.card-content-mgt":[],"application/vnd.globalplatform.card-content-mgt-response":[],"application/vnd.gmx":["gmx"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.gridmp":[],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+json":[],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hcl-bireports":[],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.httphone":[],"application/vnd.hzn-3d-crossword":[],"application/vnd.ibm.afplinedata":[],"application/vnd.ibm.electronic-media":[],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.informedcontrol.rms+xml":[],"application/vnd.informix-visionary":[],"application/vnd.infotech.project":[],"application/vnd.infotech.project+xml":[],"application/vnd.innopath.wamp.notification":[],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intertrust.digibox":[],"application/vnd.intertrust.nncp":[],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.iptc.g2.conceptitem+xml":[],"application/vnd.iptc.g2.knowledgeitem+xml":[],"application/vnd.iptc.g2.newsitem+xml":[],"application/vnd.iptc.g2.newsmessage+xml":[],"application/vnd.iptc.g2.packageitem+xml":[],"application/vnd.iptc.g2.planningitem+xml":[],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.japannet-directory-service":[],"application/vnd.japannet-jpnstore-wakeup":[],"application/vnd.japannet-payment-wakeup":[],"application/vnd.japannet-registration":[],"application/vnd.japannet-registration-wakeup":[],"application/vnd.japannet-setstore-wakeup":[],"application/vnd.japannet-verification":[],"application/vnd.japannet-verification-wakeup":[],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"], | |
"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.liberty-request+xml":[],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.marlin.drm.actiontoken+xml":[],"application/vnd.marlin.drm.conftoken+xml":[],"application/vnd.marlin.drm.license+xml":[],"application/vnd.marlin.drm.mdcf":[],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.meridian-slingshot":[],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.minisoft-hp3000-save":[],"application/vnd.mitsubishi.misty-guard.trustweb":[],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.motorola.flexsuite":[],"application/vnd.motorola.flexsuite.adsi":[],"application/vnd.motorola.flexsuite.fis":[],"application/vnd.motorola.flexsuite.gotap":[],"application/vnd.motorola.flexsuite.kmr":[],"application/vnd.motorola.flexsuite.ttc":[],"application/vnd.motorola.flexsuite.wem":[],"application/vnd.motorola.iprm":[],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-asf":[],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-color.iccprofile":[],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-office.activex+xml":[],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-opentype":[],"application/vnd.ms-package.obfuscated-opentype":[],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-playready.initiator+xml":[],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-printing.printticket+xml":[],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-tnef":[],"application/vnd.ms-wmdrm.lic-chlg-req":[],"application/vnd.ms-wmdrm.lic-resp":[],"application/vnd.ms-wmdrm.meter-chlg-req":[],"application/vnd.ms-wmdrm.meter-resp":[],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.msign":[],"application/vnd.multiad.creator":[],"application/vnd.multiad.creator.cif":[],"application/vnd.music-niff":[],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.ncd.control":[],"application/vnd.ncd.reference":[],"application/vnd.nervana":[],"application/vnd.netfpx":[],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.catalogs":[],"application/vnd.nokia.conml+wbxml":[],"application/vnd.nokia.conml+xml":[],"application/vnd.nokia.isds-radio-presets":[],"application/vnd.nokia.iptv.config+xml":[],"application/vnd.nokia.landmark+wbxml":[],"application/vnd.nokia.landmark+xml":[],"application/vnd.nokia.landmarkcollection+xml":[],"application/vnd.nokia.n-gage.ac+xml":[],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.ncd":[],"application/vnd.nokia.pcd+wbxml":[],"application/vnd.nokia.pcd+xml":[],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.ntt-local.file-transfer":[],"application/vnd.ntt-local.sip-ta_remote":[],"application/vnd.ntt-local.sip-ta_tcp_stream":[],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.obn":[],"application/vnd.oftn.l10n+json":[],"application/vnd.oipf.contentaccessdownload+xml":[],"application/vnd.oipf.contentaccessstreaming+xml":[],"application/vnd.oipf.cspg-hexbinary":[],"application/vnd.oipf.dae.svg+xml":[],"application/vnd.oipf.dae.xhtml+xml":[],"application/vnd.oipf.mippvcontrolmessage+xml":[],"application/vnd.oipf.pae.gem":[],"application/vnd.oipf.spdiscovery+xml":[],"application/vnd.oipf.spdlist+xml":[],"application/vnd.oipf.ueprofile+xml":[],"application/vnd.oipf.userprofile+xml":[],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma-scws-config":[],"application/vnd.oma-scws-http-request":[],"application/vnd.oma-scws-http-response":[],"application/vnd.oma.bcast.associated-procedure-parameter+xml":[],"application/vnd.oma.bcast.drm-trigger+xml":[],"application/vnd.oma.bcast.imd+xml":[],"application/vnd.oma.bcast.ltkm":[],"application/vnd.oma.bcast.notification+xml":[],"application/vnd.oma.bcast.provisioningtrigger":[],"application/vnd.oma.bcast.sgboot":[],"application/vnd.oma.bcast.sgdd+xml":[],"application/vnd.oma.bcast.sgdu":[],"application/vnd.oma.bcast.simple-symbol-container":[],"application/vnd.oma.bcast.smartcard-trigger+xml":[],"application/vnd.oma.bcast.sprov+xml":[],"application/vnd.oma.bcast.stkm":[],"application/vnd.oma.cab-address-book+xml":[],"application/vnd.oma.cab-feature-handler+xml":[],"application/vnd.oma.cab-pcc+xml":[],"application/vnd.oma.cab-user-prefs+xml":[],"application/vnd.oma.dcd":[],"application/vnd.oma.dcdc":[],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.oma.drm.risd+xml":[],"application/vnd.oma.group-usage-list+xml":[],"application/vnd.oma.pal+xml":[],"application/vnd.oma.poc.detailed-progress-report+xml":[],"application/vnd.oma.poc.final-report+xml":[],"application/vnd.oma.poc.groups+xml":[],"application/vnd.oma.poc.invocation-descriptor+xml":[],"application/vnd.oma.poc.optimized-progress-report+xml":[],"application/vnd.oma.push":[],"application/vnd.oma.scidm.messages+xml":[],"application/vnd.oma.xcap-directory+xml":[],"application/vnd.omads-email+xml":[],"application/vnd.omads-file+xml":[],"application/vnd.omads-folder+xml":[],"application/vnd.omaloc-supl-init":[],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.custom-properties+xml":[],"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":[],"application/vnd.openxmlformats-officedocument.drawing+xml":[],"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":[],"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":[],"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":[],"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":[],"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":[],"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":[],"application/vnd.openxmlformats-officedocument.extended-properties+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":[],"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":[],"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":[],"application/vnd.openxmlformats-officedocument.theme+xml":[],"application/vnd.openxmlformats-officedocument.themeoverride+xml":[],"application/vnd.openxmlformats-officedocument.vmldrawing":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":[],"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":[],"application/vnd.openxmlformats-package.core-properties+xml":[],"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":[],"application/vnd.openxmlformats-package.relationships+xml":[],"application/vnd.quobject-quoxdocument":[],"application/vnd.osa.netdeploy":[],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.bundle":[],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.otps.ct-kip+xml":[],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.paos.xml":[],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.piaccess.application-licence":[],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.poc.group-advertisement+xml":[],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.powerbuilder6-s":[],"application/vnd.powerbuilder7":[],"application/vnd.powerbuilder7-s":[],"application/vnd.powerbuilder75":[],"application/vnd.powerbuilder75-s":[],"application/vnd.preminet":[],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.pwg-multiplexed":[],"application/vnd.pwg-xhtml-print+xml":[],"application/vnd.qualcomm.brew-app-res":[],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.radisys.moml+xml":[],"application/vnd.radisys.msml+xml":[],"application/vnd.radisys.msml-audit+xml":[],"application/vnd.radisys.msml-audit-conf+xml":[],"application/vnd.radisys.msml-audit-conn+xml":[],"application/vnd.radisys.msml-audit-dialog+xml":[],"application/vnd.radisys.msml-audit-stream+xml":[],"application/vnd.radisys.msml-conf+xml":[],"application/vnd.radisys.msml-dialog+xml":[],"application/vnd.radisys.msml-dialog-base+xml":[],"application/vnd.radisys.msml-dialog-fax-detect+xml":[],"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":[],"application/vnd.radisys.msml-dialog-group+xml":[],"application/vnd.radisys.msml-dialog-speech+xml":[],"application/vnd.radisys.msml-dialog-transform+xml":[],"application/vnd.rainstor.data":[],"application/vnd.rapid":[],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.renlearn.rlprint":[],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.rs-274x":[],"application/vnd.ruckus.download":[],"application/vnd.s3sms":[],"application/vnd.sailingtracker.track":["st"],"application/vnd.sbm.cid":[],"application/vnd.sbm.mid2":[],"application/vnd.scribus":[],"application/vnd.sealed.3df":[],"application/vnd.sealed.csf":[],"application/vnd.sealed.doc":[],"application/vnd.sealed.eml":[],"application/vnd.sealed.mht":[],"application/vnd.sealed.net":[],"application/vnd.sealed.ppt":[],"application/vnd.sealed.tiff":[],"application/vnd.sealed.xls":[],"application/vnd.sealedmedia.softseal.html":[],"application/vnd.sealedmedia.softseal.pdf":[],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.notebook":[],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":[],"application/vnd.software602.filler.form-xml-zip":[],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.sss-cod":[],"application/vnd.sss-dtf":[],"application/vnd.sss-ntf":[],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.street-stream":[],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sun.wadl+xml":[],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.swiftview-ics":[],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dm.notification":[],"application/vnd.syncml.ds.notification":[],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.truedoc":[],"application/vnd.ubisoft.webplayer":[],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.uplanet.alert":[],"application/vnd.uplanet.alert-wbxml":[],"application/vnd.uplanet.bearer-choice":[],"application/vnd.uplanet.bearer-choice-wbxml":[],"application/vnd.uplanet.cacheop":[],"application/vnd.uplanet.cacheop-wbxml":[],"application/vnd.uplanet.channel":[],"application/vnd.uplanet.channel-wbxml":[],"application/vnd.uplanet.list":[],"application/vnd.uplanet.list-wbxml":[],"application/vnd.uplanet.listcmd":[],"application/vnd.uplanet.listcmd-wbxml":[],"application/vnd.uplanet.signal":[],"application/vnd.vcx":["vcx"],"application/vnd.vd-study":[],"application/vnd.vectorworks":[],"application/vnd.verimatrix.vcas":[],"application/vnd.vidsoft.vidconference":[],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vividence.scriptfile":[],"application/vnd.vsf":["vsf"],"application/vnd.wap.sic":[],"application/vnd.wap.slc":[],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wfa.wsc":[],"application/vnd.wmc":[],"application/vnd.wmf.bootstrap":[],"application/vnd.wolfram.mathematica":[],"application/vnd.wolfram.mathematica.package":[],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wrq-hp3000-labelled":[],"application/vnd.wt.stf":["stf"],"application/vnd.wv.csp+wbxml":[],"application/vnd.wv.csp+xml":[],"application/vnd.wv.ssp+xml":[],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.xfdl.webform":[],"application/vnd.xmi+xml":[],"application/vnd.xmpie.cpkg":[],"application/vnd.xmpie.dpkg":[],"application/vnd.xmpie.plan":[],"application/vnd.xmpie.ppkg":[],"application/vnd.xmpie.xlim":[],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.remote-setup":[],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yamaha.through-ngn":[],"application/vnd.yamaha.tunnel-udpencap":[],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/vq-rtcpxr":[],"application/watcherinfo+xml":[],"application/whoispp-query":[],"application/whoispp-response":[],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wita":[],"application/wordperfect5.1":[],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-amf":[],"application/x-apple-diskimage":["dmg"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-conference":["nsc"],"application/x-compress":[],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-dos":[],"application/x-font-framemaker":[],"application/x-font-ghostscript":["gsf"],"application/x-font-libgrx":[],"application/x-font-linux-psf":["psf"],"application/x-font-otf":["otf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-speedo":[],"application/x-font-sunos-news":[],"application/x-font-ttf":["ttf","ttc"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/font-woff":["woff"],"application/x-font-vfont":[],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-gzip":[],"application/x-hdf":["hdf"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["iso"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lzh-compressed":["lzh","lha"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdownload":["exe","dll","com","bat","msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","wmz","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-nzb":["nzb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-research-info-systems":["ris"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-wais-source":["src"],"application/x-x509-ca-cert":["der","crt"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/x400-bp":[],"application/xaml+xml":["xaml"],"application/xcap-att+xml":[],"application/xcap-caps+xml":[],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":[],"application/xcap-error+xml":[],"application/xcap-ns+xml":[],"application/xcon-conference-info-diff+xml":[],"application/xcon-conference-info+xml":[],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xhtml-voice+xml":[],"application/xml":["xml","xsl"],"application/xml-dtd":["dtd"],"application/xml-external-parsed-entity":[],"application/xmpp+xml":[],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/1d-interleaved-parityfec":[],"audio/32kadpcm":[],"audio/3gpp":[],"audio/3gpp2":[],"audio/ac3":[],"audio/adpcm":["adp"],"audio/amr":[],"audio/amr-wb":[],"audio/amr-wb+":[],"audio/asc":[],"audio/atrac-advanced-lossless":[],"audio/atrac-x":[],"audio/atrac3":[],"audio/basic":["au","snd"],"audio/bv16":[],"audio/bv32":[],"audio/clearmode":[],"audio/cn":[],"audio/dat12":[],"audio/dls":[],"audio/dsr-es201108":[],"audio/dsr-es202050":[],"audio/dsr-es202211":[],"audio/dsr-es202212":[],"audio/dv":[],"audio/dvi4":[],"audio/eac3":[],"audio/evrc":[],"audio/evrc-qcp":[],"audio/evrc0":[],"audio/evrc1":[],"audio/evrcb":[],"audio/evrcb0":[],"audio/evrcb1":[],"audio/evrcwb":[],"audio/evrcwb0":[],"audio/evrcwb1":[],"audio/example":[],"audio/fwdred":[],"audio/g719":[],"audio/g722":[],"audio/g7221":[],"audio/g723":[],"audio/g726-16":[],"audio/g726-24":[],"audio/g726-32":[],"audio/g726-40":[],"audio/g728":[],"audio/g729":[],"audio/g7291":[],"audio/g729d":[],"audio/g729e":[],"audio/gsm":[],"audio/gsm-efr":[],"audio/gsm-hr-08":[],"audio/ilbc":[],"audio/ip-mr_v2.5":[],"audio/isac":[],"audio/l16":[],"audio/l20":[],"audio/l24":[],"audio/l8":[],"audio/lpc":[],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":[],"audio/mp4":["mp4a"],"audio/mp4a-latm":[],"audio/mpa":[],"audio/mpa-robust":[],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/mpeg4-generic":[],"audio/musepack":[],"audio/ogg":["oga","ogg","spx"],"audio/opus":[],"audio/parityfec":[],"audio/pcma":[],"audio/pcma-wb":[],"audio/pcmu-wb":[],"audio/pcmu":[],"audio/prs.sid":[],"audio/qcelp":[],"audio/red":[],"audio/rtp-enc-aescm128":[],"audio/rtp-midi":[],"audio/rtx":[],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/smv":[],"audio/smv0":[],"audio/smv-qcp":[],"audio/sp-midi":[],"audio/speex":[],"audio/t140c":[],"audio/t38":[],"audio/telephone-event":[],"audio/tone":[],"audio/uemclip":[],"audio/ulpfec":[],"audio/vdvi":[],"audio/vmr-wb":[],"audio/vnd.3gpp.iufp":[],"audio/vnd.4sb":[],"audio/vnd.audiokoz":[],"audio/vnd.celp":[],"audio/vnd.cisco.nse":[],"audio/vnd.cmles.radio-events":[],"audio/vnd.cns.anp1":[],"audio/vnd.cns.inf1":[],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dlna.adts":[],"audio/vnd.dolby.heaac.1":[],"audio/vnd.dolby.heaac.2":[],"audio/vnd.dolby.mlp":[],"audio/vnd.dolby.mps":[],"audio/vnd.dolby.pl2":[],"audio/vnd.dolby.pl2x":[],"audio/vnd.dolby.pl2z":[],"audio/vnd.dolby.pulse.1":[],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.dvb.file":[],"audio/vnd.everad.plj":[],"audio/vnd.hns.audio":[],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nokia.mobile-xmf":[],"audio/vnd.nortel.vbk":[],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.octel.sbc":[],"audio/vnd.qcelp":[],"audio/vnd.rhetorex.32kadpcm":[],"audio/vnd.rip":["rip"],"audio/vnd.sealedmedia.softseal.mpeg":[],"audio/vnd.vmx.cvsd":[],"audio/vorbis":[],"audio/vorbis-config":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-tta":[],"audio/x-wav":["wav"],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-pdb":[],"chemical/x-xyz":["xyz"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/example":[],"image/fits":[],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":[],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":[],"image/jpx":[],"image/ktx":["ktx"],"image/naplps":[],"image/png":["png"],"image/prs.btif":["btif"],"image/prs.pti":[],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":[],"image/tiff":["tiff","tif"],"image/tiff-fx":[],"image/vnd.adobe.photoshop":["psd"],"image/vnd.cns.inf2":[],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.dvb.subtitle":["sub"],"image/vnd.djvu":["djvu","djv"], | |
"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.globalgraphics.pgb":[],"image/vnd.microsoft.icon":[],"image/vnd.mix":[],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.radiance":[],"image/vnd.sealed.png":[],"image/vnd.sealedmedia.softseal.gif":[],"image/vnd.sealedmedia.softseal.jpg":[],"image/vnd.svf":[],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-mrsid-image":["sid"],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/cpim":[],"message/delivery-status":[],"message/disposition-notification":[],"message/example":[],"message/external-body":[],"message/feedback-report":[],"message/global":[],"message/global-delivery-status":[],"message/global-disposition-notification":[],"message/global-headers":[],"message/http":[],"message/imdn+xml":[],"message/news":[],"message/partial":[],"message/rfc822":["eml","mime"],"message/s-http":[],"message/sip":[],"message/sipfrag":[],"message/tracking-status":[],"message/vnd.si.simp":[],"model/example":[],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.flatland.3dml":[],"model/vnd.gdl":["gdl"],"model/vnd.gs-gdl":[],"model/vnd.gs.gdl":[],"model/vnd.gtw":["gtw"],"model/vnd.moml+xml":[],"model/vnd.mts":["mts"],"model/vnd.parasolid.transmit.binary":[],"model/vnd.parasolid.transmit.text":[],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"multipart/alternative":[],"multipart/appledouble":[],"multipart/byteranges":[],"multipart/digest":[],"multipart/encrypted":[],"multipart/example":[],"multipart/form-data":[],"multipart/header-set":[],"multipart/mixed":[],"multipart/parallel":[],"multipart/related":[],"multipart/report":[],"multipart/signed":[],"multipart/voice-message":[],"text/1d-interleaved-parityfec":[],"text/cache-manifest":["appcache"],"text/calendar":["ics","ifb"],"text/css":["css"],"text/csv":["csv"],"text/directory":[],"text/dns":[],"text/ecmascript":[],"text/enriched":[],"text/example":[],"text/fwdred":[],"text/html":["html","htm"],"text/javascript":[],"text/n3":["n3"],"text/parityfec":[],"text/plain":["txt","text","conf","def","list","log","in"],"text/prs.fallenstein.rst":[],"text/prs.lines.tag":["dsc"],"text/vnd.radisys.msml-basic-layout":[],"text/red":[],"text/rfc822-headers":[],"text/richtext":["rtx"],"text/rtf":[],"text/rtp-enc-aescm128":[],"text/rtx":[],"text/sgml":["sgml","sgm"],"text/t140":[],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/ulpfec":[],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.abc":[],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.dmclientscript":[],"text/vnd.dvb.subtitle":["sub"],"text/vnd.esmertec.theme-descriptor":[],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.iptc.newsml":[],"text/vnd.iptc.nitf":[],"text/vnd.latex-z":[],"text/vnd.motorola.reflex":[],"text/vnd.ms-mediapackage":[],"text/vnd.net2phone.commcenter.command":[],"text/vnd.si.uricatalogue":[],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.trolltech.linguist":[],"text/vnd.wap.si":[],"text/vnd.wap.sl":[],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-fortran":["f","for","f77","f90"],"text/x-java-source":["java"],"text/x-opml":["opml"],"text/x-pascal":["p","pas"],"text/x-nfo":["nfo"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/xml-external-parsed-entity":[],"video/1d-interleaved-parityfec":[],"video/3gpp":["3gp"],"video/3gpp-tt":[],"video/3gpp2":["3g2"],"video/bmpeg":[],"video/bt656":[],"video/celb":[],"video/dv":[],"video/example":[],"video/h261":["h261"],"video/h263":["h263"],"video/h263-1998":[],"video/h263-2000":[],"video/h264":["h264"],"video/h264-rcdo":[],"video/h264-svc":[],"video/jpeg":["jpgv"],"video/jpeg2000":[],"video/jpm":["jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp1s":[],"video/mp2p":[],"video/mp2t":[],"video/mp4":["mp4","mp4v","mpg4"],"video/mp4v-es":[],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/mpeg4-generic":[],"video/mpv":[],"video/nv":[],"video/ogg":["ogv"],"video/parityfec":[],"video/pointer":[],"video/quicktime":["qt","mov"],"video/raw":[],"video/rtp-enc-aescm128":[],"video/rtx":[],"video/smpte292m":[],"video/ulpfec":[],"video/vc1":[],"video/vnd.cctv":[],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.mp4":[],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.directv.mpeg":[],"video/vnd.directv.mpeg-tts":[],"video/vnd.dlna.mpeg-tts":[],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.hns.video":[],"video/vnd.iptvforum.1dparityfec-1010":[],"video/vnd.iptvforum.1dparityfec-2005":[],"video/vnd.iptvforum.2dparityfec-1010":[],"video/vnd.iptvforum.2dparityfec-2005":[],"video/vnd.iptvforum.ttsavc":[],"video/vnd.iptvforum.ttsmpeg2":[],"video/vnd.motorola.video":[],"video/vnd.motorola.videop":[],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.nokia.interleaved-multimedia":[],"video/vnd.nokia.videovoip":[],"video/vnd.objectvideo":[],"video/vnd.sealed.mpeg1":[],"video/vnd.sealed.mpeg4":[],"video/vnd.sealed.swf":[],"video/vnd.sealedmedia.softseal.mov":[],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}},{}],262:[function(require,module,exports){module.exports={"text/vtt":["vtt"],"application/x-chrome-extension":["crx"],"text/x-component":["htc"],"text/cache-manifest":["manifest"],"application/octet-stream":["buffer"],"application/mp4":["m4p"],"audio/mp4":["m4a"],"video/MP2T":["ts"],"application/x-web-app-manifest+json":["webapp"],"text/x-lua":["lua"],"application/x-lua-bytecode":["luac"],"text/x-markdown":["markdown","md","mkd"],"text/plain":["ini"],"application/dash+xml":["mdp"],"font/opentype":["otf"],"application/json":["map"],"application/xml":["xsd"]}},{}],263:[function(require,module,exports){(function(Buffer){(function(){var _global=this;var _rng;if(typeof require=="function"){try{var _rb=require("crypto").randomBytes;_rng=_rb&&function(){return _rb(16)}}catch(e){}}if(!_rng&&_global.crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);_rng=function whatwgRNG(){crypto.getRandomValues(_rnds8);return _rnds8}}if(!_rng){var _rnds=new Array(16);_rng=function(){for(var i=0,r;i<16;i++){if((i&3)===0)r=Math.random()*4294967296;_rnds[i]=r>>>((i&3)<<3)&255}return _rnds}}var BufferClass=typeof Buffer=="function"?Buffer:Array;var _byteToHex=[];var _hexToByte={};for(var i=0;i<256;i++){_byteToHex[i]=(i+256).toString(16).substr(1);_hexToByte[_byteToHex[i]]=i}function parse(s,buf,offset){var i=buf&&offset||0,ii=0;buf=buf||[];s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){if(ii<16){buf[i+ii++]=_hexToByte[oct]}});while(ii<16){buf[i+ii++]=0}return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}var _seedBytes=_rng();var _nodeId=[_seedBytes[0]|1,_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]];var _clockseq=(_seedBytes[6]<<8|_seedBytes[7])&16383;var _lastMSecs=0,_lastNSecs=0;function v1(options,buf,offset){var i=buf&&offset||0;var b=buf||[];options=options||{};var clockseq=options.clockseq!=null?options.clockseq:_clockseq;var msecs=options.msecs!=null?options.msecs:(new Date).getTime();var nsecs=options.nsecs!=null?options.nsecs:_lastNSecs+1;var dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&options.clockseq==null){clockseq=clockseq+1&16383}if((dt<0||msecs>_lastMSecs)&&options.nsecs==null){nsecs=0}if(nsecs>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}_lastMSecs=msecs;_lastNSecs=nsecs;_clockseq=clockseq;msecs+=122192928e5;var tl=((msecs&268435455)*1e4+nsecs)%4294967296;b[i++]=tl>>>24&255;b[i++]=tl>>>16&255;b[i++]=tl>>>8&255;b[i++]=tl&255;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255;b[i++]=tmh&255;b[i++]=tmh>>>24&15|16;b[i++]=tmh>>>16&255;b[i++]=clockseq>>>8|128;b[i++]=clockseq&255;var node=options.node||_nodeId;for(var n=0;n<6;n++){b[i+n]=node[n]}return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;if(typeof options=="string"){buf=options=="binary"?new BufferClass(16):null;options=null}options=options||{};var rnds=options.random||(options.rng||_rng)();rnds[6]=rnds[6]&15|64;rnds[8]=rnds[8]&63|128;if(buf){for(var ii=0;ii<16;ii++){buf[i+ii]=rnds[ii]}}return buf||unparse(rnds)}var uuid=v4;uuid.v1=v1;uuid.v4=v4;uuid.parse=parse;uuid.unparse=unparse;uuid.BufferClass=BufferClass;if(typeof define==="function"&&define.amd){define(function(){return uuid})}else if(typeof module!="undefined"&&module.exports){module.exports=uuid}else{var _previousRoot=_global.uuid;uuid.noConflict=function(){_global.uuid=_previousRoot;return uuid};_global.uuid=uuid}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:17,crypto:24}],264:[function(require,module,exports){var crypto=require("crypto"),qs=require("querystring");function sha1(key,body){return crypto.createHmac("sha1",key).update(body).digest("base64")}function rsa(key,body){return crypto.createSign("RSA-SHA1").update(body).sign(key,"base64")}function rfc3986(str){return encodeURIComponent(str).replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/'/g,"%27")}function map(obj){var key,val,arr=[];for(key in obj){val=obj[key];if(Array.isArray(val))for(var i=0;i<val.length;i++)arr.push([key,val[i]]);else arr.push([key,val])}return arr}function compare(a,b){return a>b?1:a<b?-1:0}function generateBase(httpMethod,base_uri,params){var normalized=map(params).map(function(p){return[rfc3986(p[0]),rfc3986(p[1]||"")]}).sort(function(a,b){return compare(a[0],b[0])||compare(a[1],b[1])}).map(function(p){return p.join("=")}).join("&");var base=[rfc3986(httpMethod?httpMethod.toUpperCase():"GET"),rfc3986(base_uri),rfc3986(normalized)].join("&");return base}function hmacsign(httpMethod,base_uri,params,consumer_secret,token_secret){var base=generateBase(httpMethod,base_uri,params);var key=[consumer_secret||"",token_secret||""].map(rfc3986).join("&");return sha1(key,base)}function rsasign(httpMethod,base_uri,params,private_key,token_secret){var base=generateBase(httpMethod,base_uri,params);var key=private_key||"";return rsa(key,base)}function sign(signMethod,httpMethod,base_uri,params,consumer_secret,token_secret){var method;switch(signMethod){case"RSA-SHA1":method=rsasign;break;case"HMAC-SHA1":method=hmacsign;break;default:throw new Error("Signature method not supported: "+signMethod)}return method.apply(null,[].slice.call(arguments,1))}exports.hmacsign=hmacsign;exports.rsasign=rsasign;exports.sign=sign;exports.rfc3986=rfc3986},{crypto:24,querystring:175}],265:[function(require,module,exports){(function(Buffer){var util=require("util");var Stream=require("stream");var StringDecoder=require("string_decoder").StringDecoder;module.exports=StringStream;module.exports.AlignedStringDecoder=AlignedStringDecoder;function StringStream(from,to){if(!(this instanceof StringStream))return new StringStream(from,to);Stream.call(this);if(from==null)from="utf8";this.readable=this.writable=true;this.paused=false;this.toEncoding=to==null?from:to;this.fromEncoding=to==null?"":from;this.decoder=new AlignedStringDecoder(this.toEncoding)}util.inherits(StringStream,Stream);StringStream.prototype.write=function(data){if(!this.writable){var err=new Error("stream not writable");err.code="EPIPE";this.emit("error",err);return false}if(this.fromEncoding){if(Buffer.isBuffer(data))data=data.toString();data=new Buffer(data,this.fromEncoding)}var string=this.decoder.write(data);if(string.length)this.emit("data",string);return!this.paused};StringStream.prototype.flush=function(){if(this.decoder.flush){var string=this.decoder.flush();if(string.length)this.emit("data",string)}};StringStream.prototype.end=function(){if(!this.writable&&!this.readable)return;this.flush();this.emit("end");this.writable=this.readable=false;this.destroy()};StringStream.prototype.destroy=function(){this.decoder=null;this.writable=this.readable=false;this.emit("close")};StringStream.prototype.pause=function(){this.paused=true};StringStream.prototype.resume=function(){if(this.paused)this.emit("drain");this.paused=false};function AlignedStringDecoder(encoding){StringDecoder.call(this,encoding);switch(this.encoding){case"base64":this.write=alignedWrite;this.alignedBuffer=new Buffer(3);this.alignedBytes=0;break}}util.inherits(AlignedStringDecoder,StringDecoder);AlignedStringDecoder.prototype.flush=function(){if(!this.alignedBuffer||!this.alignedBytes)return"";var leftover=this.alignedBuffer.toString(this.encoding,0,this.alignedBytes);this.alignedBytes=0;return leftover};function alignedWrite(buffer){var rem=(this.alignedBytes+buffer.length)%this.alignedBuffer.length;if(!rem&&!this.alignedBytes)return buffer.toString(this.encoding);var returnBuffer=new Buffer(this.alignedBytes+buffer.length-rem);this.alignedBuffer.copy(returnBuffer,0,0,this.alignedBytes);buffer.copy(returnBuffer,this.alignedBytes,0,buffer.length-rem);buffer.copy(this.alignedBuffer,0,buffer.length-rem,buffer.length);this.alignedBytes=rem;return returnBuffer.toString(this.encoding)}}).call(this,require("buffer").Buffer)},{buffer:17,stream:187,string_decoder:188,util:191}],266:[function(require,module,exports){"use strict";var net=require("net");var urlParse=require("url").parse;var pubsuffix=require("./pubsuffix");var Store=require("./store").Store;var punycode;try{punycode=require("punycode")}catch(e){console.warn("cookie: can't load punycode; won't use punycode for domain normalization")}var DATE_DELIM=/[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;var TOKEN=/[\x21\x23-\x26\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/;var COOKIE_OCTET=/[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]/;var COOKIE_OCTETS=new RegExp("^"+COOKIE_OCTET.source+"$");var COOKIE_PAIR_STRICT=new RegExp("^("+TOKEN.source+'+)=("?)('+COOKIE_OCTET.source+"*)\\2$");var COOKIE_PAIR=/^([^=\s]+)\s*=\s*("?)\s*(.*)\s*\2\s*$/;var NON_CTL_SEMICOLON=/[\x20-\x3A\x3C-\x7E]+/;var EXTENSION_AV=NON_CTL_SEMICOLON;var PATH_VALUE=NON_CTL_SEMICOLON;var TRAILING_SEMICOLON=/;+$/;var DAY_OF_MONTH=/^(0?[1-9]|[12][0-9]|3[01])$/;var TIME=/(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])/;var STRICT_TIME=/^(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/;var MONTH=/^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)$/i;var MONTH_TO_NUM={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11};var NUM_TO_MONTH=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var NUM_TO_DAY=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var YEAR=/^([1-9][0-9]{1,3})$/;var MAX_TIME=2147483647e3;var MIN_TIME=0;function parseDate(str,strict){if(!str){return}var found_time,found_dom,found_month,found_year;var tokens=str.split(DATE_DELIM);if(!tokens){return}var date=new Date;date.setMilliseconds(0);for(var i=0;i<tokens.length;i++){var token=tokens[i].trim();if(!token.length){continue}var result;if(!found_time){result=(strict?STRICT_TIME:TIME).exec(token);if(result){found_time=true;date.setUTCHours(result[1]);date.setUTCMinutes(result[2]);date.setUTCSeconds(result[3]);continue}}if(!found_dom){result=DAY_OF_MONTH.exec(token);if(result){found_dom=true;date.setUTCDate(result[1]);continue}}if(!found_month){result=MONTH.exec(token);if(result){found_month=true;date.setUTCMonth(MONTH_TO_NUM[result[1].toLowerCase()]);continue}}if(!found_year){result=YEAR.exec(token);if(result){var year=result[0];if(70<=year&&year<=99){year+=1900}else if(0<=year&&year<=69){year+=2e3}if(year<1601){return}found_year=true;date.setUTCFullYear(year);continue}}}if(!(found_time&&found_dom&&found_month&&found_year)){return}return date}function formatDate(date){var d=date.getUTCDate();d=d>=10?d:"0"+d;var h=date.getUTCHours();h=h>=10?h:"0"+h;var m=date.getUTCMinutes();m=m>=10?m:"0"+m;var s=date.getUTCSeconds();s=s>=10?s:"0"+s;return NUM_TO_DAY[date.getUTCDay()]+", "+d+" "+NUM_TO_MONTH[date.getUTCMonth()]+" "+date.getUTCFullYear()+" "+h+":"+m+":"+s+" GMT"}function canonicalDomain(str){if(str==null){return null}str=str.trim().replace(/^\./,"");if(punycode&&/[^\u0001-\u007f]/.test(str)){str=punycode.toASCII(str)}return str.toLowerCase()}function domainMatch(str,domStr,canonicalize){if(str==null||domStr==null){return null}if(canonicalize!==false){str=canonicalDomain(str);domStr=canonicalDomain(domStr)}if(str==domStr){return true}if(net.isIP(str)){return false}var idx=str.indexOf(domStr);if(idx<=0){return false}if(str.length!==domStr.length+idx){return false}if(str.substr(idx-1,1)!=="."){return false}return true}function defaultPath(path){if(!path||path.substr(0,1)!=="/"){return"/"}if(path==="/"){return path}var rightSlash=path.lastIndexOf("/");if(rightSlash===0){return"/"}return path.slice(0,rightSlash)}function pathMatch(reqPath,cookiePath){if(cookiePath===reqPath){return true}var idx=reqPath.indexOf(cookiePath);if(idx===0){if(cookiePath.substr(-1)==="/"){return true}if(reqPath.substr(cookiePath.length,1)==="/"){return true}}return false}function parse(str,strict){str=str.trim();var semiColonCheck=TRAILING_SEMICOLON.exec(str);if(semiColonCheck){if(strict){return}str=str.slice(0,semiColonCheck.index)}var firstSemi=str.indexOf(";");var pairRx=strict?COOKIE_PAIR_STRICT:COOKIE_PAIR;var result=pairRx.exec(firstSemi===-1?str:str.substr(0,firstSemi));if(!result){return}var c=new Cookie;c.key=result[1];c.value=result[3];if(firstSemi===-1){return c}var unparsed=str.slice(firstSemi).replace(/^\s*;\s*/,"").trim();if(unparsed.length===0){return c}var cookie_avs=unparsed.split(/\s*;\s*/);while(cookie_avs.length){var av=cookie_avs.shift();if(strict&&!EXTENSION_AV.test(av)){return}var av_sep=av.indexOf("=");var av_key,av_value;if(av_sep===-1){av_key=av;av_value=null}else{av_key=av.substr(0,av_sep);av_value=av.substr(av_sep+1)}av_key=av_key.trim().toLowerCase();if(av_value){av_value=av_value.trim()}switch(av_key){case"expires":if(!av_value){if(strict){return}else{break}}var exp=parseDate(av_value,strict);if(exp==null){if(strict){return}else{break}}c.expires=exp;break;case"max-age":if(!av_value){if(strict){return}else{break}}if(!/^-?[0-9]+$/.test(av_value)){if(strict){return}else{break}}var delta=parseInt(av_value,10);if(strict&&delta<=0){return}c.setMaxAge(delta);break;case"domain":if(!av_value){if(strict){return}else{break}}var domain=av_value.trim().replace(/^\./,"");if(!domain){if(strict){return}else{break}}c.domain=domain.toLowerCase();break;case"path":if(!av_value||av_value.substr(0,1)!="/"){if(strict){return}else{break}}c.path=av_value;break;case"secure":if(av_value!=null){if(strict){return}}c.secure=true;break;case"httponly":if(av_value!=null){if(strict){return}}c.httpOnly=true;break;default:c.extensions=c.extensions||[];c.extensions.push(av);break}}c.creation=new Date;return c}function fromJSON(str){if(!str){return null}var obj;try{obj=JSON.parse(str)}catch(e){return null}var c=new Cookie;for(var i=0;i<numCookieProperties;i++){var prop=cookieProperties[i];if(obj[prop]==null){continue}if(prop==="expires"||prop==="creation"||prop==="lastAccessed"){c[prop]=obj[prop]=="Infinity"?"Infinity":new Date(obj[prop])}else{c[prop]=obj[prop]}}c.creation=c.creation||new Date;return c}function cookieCompare(a,b){var deltaLen=(b.path?b.path.length:0)-(a.path?a.path.length:0);if(deltaLen!==0){return deltaLen}return(a.creation?a.creation.getTime():MAX_TIME)-(b.creation?b.creation.getTime():MAX_TIME)}function permuteDomain(domain){var pubSuf=pubsuffix.getPublicSuffix(domain);if(!pubSuf){return null}if(pubSuf==domain){return[domain]}var prefix=domain.slice(0,-(pubSuf.length+1));var parts=prefix.split(".").reverse();var cur=pubSuf;var permutations=[cur];while(parts.length){cur=parts.shift()+"."+cur;permutations.push(cur)}return permutations}function permutePath(path){if(path==="/"){return["/"]}if(path.lastIndexOf("/")===path.length-1){path=path.substr(0,path.length-1)}var permutations=[path];while(path.length>1){var lindex=path.lastIndexOf("/");if(lindex===0){break}path=path.substr(0,lindex);permutations.push(path)}permutations.push("/");return permutations}function Cookie(opts){if(typeof opts!=="object"){return}Object.keys(opts).forEach(function(key){if(Cookie.prototype.hasOwnProperty(key)){this[key]=opts[key]||Cookie.prototype[key]}}.bind(this))}Cookie.parse=parse;Cookie.fromJSON=fromJSON;Cookie.prototype.key="";Cookie.prototype.value="";Cookie.prototype.expires="Infinity";Cookie.prototype.maxAge=null;Cookie.prototype.domain=null;Cookie.prototype.path=null;Cookie.prototype.secure=false;Cookie.prototype.httpOnly=false;Cookie.prototype.extensions=null;Cookie.prototype.hostOnly=null;Cookie.prototype.pathIsDefault=null;Cookie.prototype.creation=null;Cookie.prototype.lastAccessed=null;var cookieProperties=Object.freeze(Object.keys(Cookie.prototype).map(function(p){if(p instanceof Function){return}return p}));var numCookieProperties=cookieProperties.length;Cookie.prototype.inspect=function inspect(){var now=Date.now();return'Cookie="'+this.toString()+"; hostOnly="+(this.hostOnly!=null?this.hostOnly:"?")+"; aAge="+(this.lastAccessed?now-this.lastAccessed.getTime()+"ms":"?")+"; cAge="+(this.creation?now-this.creation.getTime()+"ms":"?")+'"'};Cookie.prototype.validate=function validate(){if(!COOKIE_OCTETS.test(this.value)){return false}if(this.expires!=Infinity&&!(this.expires instanceof Date)&&!parseDate(this.expires,true)){return false}if(this.maxAge!=null&&this.maxAge<=0){return false}if(this.path!=null&&!PATH_VALUE.test(this.path)){return false}var cdomain=this.cdomain();if(cdomain){if(cdomain.match(/\.$/)){return false}var suffix=pubsuffix.getPublicSuffix(cdomain);if(suffix==null){return false}}return true};Cookie.prototype.setExpires=function setExpires(exp){if(exp instanceof Date){this.expires=exp}else{this.expires=parseDate(exp)||"Infinity"}};Cookie.prototype.setMaxAge=function setMaxAge(age){if(age===Infinity||age===-Infinity){this.maxAge=age.toString()}else{this.maxAge=age}};Cookie.prototype.cookieString=function cookieString(){var val=this.value;if(val==null){val=""}return this.key+"="+val};Cookie.prototype.toString=function toString(){var str=this.cookieString();if(this.expires!=Infinity){if(this.expires instanceof Date){str+="; Expires="+formatDate(this.expires)}else{str+="; Expires="+this.expires}}if(this.maxAge!=null&&this.maxAge!=Infinity){str+="; Max-Age="+this.maxAge}if(this.domain&&!this.hostOnly){str+="; Domain="+this.domain}if(this.path){str+="; Path="+this.path}if(this.secure){str+="; Secure"}if(this.httpOnly){str+="; HttpOnly"}if(this.extensions){this.extensions.forEach(function(ext){str+="; "+ext})}return str};Cookie.prototype.TTL=function TTL(now){if(this.maxAge!=null){return this.maxAge<=0?0:this.maxAge*1e3}var expires=this.expires;if(expires!=Infinity){if(!(expires instanceof Date)){expires=parseDate(expires)||Infinity}if(expires==Infinity){return Infinity}return expires.getTime()-(now||Date.now())}return Infinity};Cookie.prototype.expiryTime=function expiryTime(now){if(this.maxAge!=null){var relativeTo=this.creation||now||new Date;var age=this.maxAge<=0?-Infinity:this.maxAge*1e3;return relativeTo.getTime()+age}if(this.expires==Infinity){return Infinity}return this.expires.getTime()};Cookie.prototype.expiryDate=function expiryDate(now){var millisec=this.expiryTime(now);if(millisec==Infinity){return new Date(MAX_TIME)}else if(millisec==-Infinity){return new Date(MIN_TIME)}else{return new Date(millisec)}};Cookie.prototype.isPersistent=function isPersistent(){return this.maxAge!=null||this.expires!=Infinity};Cookie.prototype.cdomain=Cookie.prototype.canonicalizedDomain=function canonicalizedDomain(){if(this.domain==null){return null}return canonicalDomain(this.domain)};var memstore;function CookieJar(store,rejectPublicSuffixes){if(rejectPublicSuffixes!=null){this.rejectPublicSuffixes=rejectPublicSuffixes}if(!store){memstore=memstore||require("./memstore");store=new memstore.MemoryCookieStore}this.store=store}CookieJar.prototype.store=null;CookieJar.prototype.rejectPublicSuffixes=true;var CAN_BE_SYNC=[];CAN_BE_SYNC.push("setCookie");CookieJar.prototype.setCookie=function(cookie,url,options,cb){var err;var context=url instanceof Object?url:urlParse(url);if(options instanceof Function){cb=options;options={}}var host=canonicalDomain(context.hostname);if(!(cookie instanceof Cookie)){cookie=Cookie.parse(cookie,options.strict===true)}if(!cookie){err=new Error("Cookie failed to parse");return cb(options.ignoreError?null:err)}var now=options.now||new Date;if(this.rejectPublicSuffixes&&cookie.domain){var suffix=pubsuffix.getPublicSuffix(cookie.cdomain());if(suffix==null){err=new Error("Cookie has domain set to a public suffix");return cb(options.ignoreError?null:err)}}if(cookie.domain){if(!domainMatch(host,cookie.cdomain(),false)){err=new Error("Cookie not in this host's domain. Cookie:"+cookie.cdomain()+" Request:"+host);return cb(options.ignoreError?null:err)}if(cookie.hostOnly==null){cookie.hostOnly=false}}else{cookie.hostOnly=true;cookie.domain=host}if(!cookie.path){cookie.path=defaultPath(context.pathname);cookie.pathIsDefault=true}else{if(cookie.path.length>1&&cookie.path.substr(-1)=="/"){cookie.path=cookie.path.slice(0,-1)}}if(options.http===false&&cookie.httpOnly){err=new Error("Cookie is HttpOnly and this isn't an HTTP API");return cb(options.ignoreError?null:err)}var store=this.store;if(!store.updateCookie){store.updateCookie=function(oldCookie,newCookie,cb){this.putCookie(newCookie,cb)}}function withCookie(err,oldCookie){if(err){return cb(err)}var next=function(err){if(err){return cb(err)}else{cb(null,cookie)}};if(oldCookie){if(options.http===false&&oldCookie.httpOnly){err=new Error("old Cookie is HttpOnly and this isn't an HTTP API");return cb(options.ignoreError?null:err)}cookie.creation=oldCookie.creation;cookie.lastAccessed=now;store.updateCookie(oldCookie,cookie,next)}else{cookie.creation=cookie.lastAccessed=now;store.putCookie(cookie,next)}}store.findCookie(cookie.domain,cookie.path,cookie.key,withCookie)};CAN_BE_SYNC.push("getCookies");CookieJar.prototype.getCookies=function(url,options,cb){var context=url instanceof Object?url:urlParse(url);if(options instanceof Function){cb=options;options={}}var host=canonicalDomain(context.hostname);var path=context.pathname||"/";var secure=options.secure;if(secure==null&&context.protocol&&(context.protocol=="https:"||context.protocol=="wss:")){secure=true}var http=options.http;if(http==null){http=true}var now=options.now||Date.now();var expireCheck=options.expire!==false;var allPaths=!!options.allPaths;var store=this.store;function matchingCookie(c){if(c.hostOnly){if(c.domain!=host){return false}}else{if(!domainMatch(host,c.domain,false)){return false}}if(!allPaths&&!pathMatch(path,c.path)){return false}if(c.secure&&!secure){return false}if(c.httpOnly&&!http){return false}if(expireCheck&&c.expiryTime()<=now){store.removeCookie(c.domain,c.path,c.key,function(){});return false}return true}store.findCookies(host,allPaths?null:path,function(err,cookies){if(err){return cb(err)}cookies=cookies.filter(matchingCookie);if(options.sort!==false){cookies=cookies.sort(cookieCompare)}var now=new Date;cookies.forEach(function(c){c.lastAccessed=now});cb(null,cookies)})};CAN_BE_SYNC.push("getCookieString");CookieJar.prototype.getCookieString=function(){var args=Array.prototype.slice.call(arguments,0);var cb=args.pop();var next=function(err,cookies){if(err){cb(err)}else{cb(null,cookies.map(function(c){return c.cookieString()}).join("; "))}};args.push(next);this.getCookies.apply(this,args)};CAN_BE_SYNC.push("getSetCookieStrings");CookieJar.prototype.getSetCookieStrings=function(){var args=Array.prototype.slice.call(arguments,0);var cb=args.pop();var next=function(err,cookies){if(err){cb(err)}else{cb(null,cookies.map(function(c){return c.toString()}))}};args.push(next);this.getCookies.apply(this,args)};function syncWrap(method){return function(){if(!this.store.synchronous){throw new Error("CookieJar store is not synchronous; use async API instead.")}var args=Array.prototype.slice.call(arguments);var syncErr,syncResult;args.push(function syncCb(err,result){syncErr=err;syncResult=result});this[method].apply(this,args);if(syncErr){throw syncErr}return syncResult}}CAN_BE_SYNC.forEach(function(method){CookieJar.prototype[method+"Sync"]=syncWrap(method)});module.exports={CookieJar:CookieJar,Cookie:Cookie,Store:Store,parseDate:parseDate,formatDate:formatDate,parse:parse,fromJSON:fromJSON,domainMatch:domainMatch,defaultPath:defaultPath,pathMatch:pathMatch,getPublicSuffix:pubsuffix.getPublicSuffix,cookieCompare:cookieCompare,permuteDomain:permuteDomain,permutePath:permutePath,canonicalDomain:canonicalDomain}},{"./memstore":267,"./pubsuffix":268,"./store":269,net:1,punycode:172,url:189}],267:[function(require,module,exports){"use strict";var tough=require("./cookie");var Store=require("./store").Store;var permuteDomain=tough.permuteDomain;var permutePath=tough.permutePath;var util=require("util");function MemoryCookieStore(){Store.call(this);this.idx={}}util.inherits(MemoryCookieStore,Store);exports.MemoryCookieStore=MemoryCookieStore;MemoryCookieStore.prototype.idx=null;MemoryCookieStore.prototype.synchronous=true;MemoryCookieStore.prototype.inspect=function(){return"{ idx: "+util.inspect(this.idx,false,2)+" }"};MemoryCookieStore.prototype.findCookie=function(domain,path,key,cb){if(!this.idx[domain]){return cb(null,undefined)}if(!this.idx[domain][path]){return cb(null,undefined)}return cb(null,this.idx[domain][path][key]||null)};MemoryCookieStore.prototype.findCookies=function(domain,path,cb){var results=[];if(!domain){return cb(null,[])}var pathMatcher;if(!path){pathMatcher=function matchAll(domainIndex){for(var curPath in domainIndex){var pathIndex=domainIndex[curPath];for(var key in pathIndex){results.push(pathIndex[key])}}}}else if(path==="/"){pathMatcher=function matchSlash(domainIndex){var pathIndex=domainIndex["/"];if(!pathIndex){return}for(var key in pathIndex){results.push(pathIndex[key])}}}else{var paths=permutePath(path)||[path];pathMatcher=function matchRFC(domainIndex){paths.forEach(function(curPath){var pathIndex=domainIndex[curPath];if(!pathIndex){return}for(var key in pathIndex){results.push(pathIndex[key])}})}}var domains=permuteDomain(domain)||[domain];var idx=this.idx;domains.forEach(function(curDomain){var domainIndex=idx[curDomain];if(!domainIndex){return}pathMatcher(domainIndex); | |
});cb(null,results)};MemoryCookieStore.prototype.putCookie=function(cookie,cb){if(!this.idx[cookie.domain]){this.idx[cookie.domain]={}}if(!this.idx[cookie.domain][cookie.path]){this.idx[cookie.domain][cookie.path]={}}this.idx[cookie.domain][cookie.path][cookie.key]=cookie;cb(null)};MemoryCookieStore.prototype.updateCookie=function updateCookie(oldCookie,newCookie,cb){this.putCookie(newCookie,cb)};MemoryCookieStore.prototype.removeCookie=function removeCookie(domain,path,key,cb){if(this.idx[domain]&&this.idx[domain][path]&&this.idx[domain][path][key]){delete this.idx[domain][path][key]}cb(null)};MemoryCookieStore.prototype.removeCookies=function removeCookies(domain,path,cb){if(this.idx[domain]){if(path){delete this.idx[domain][path]}else{delete this.idx[domain]}}return cb(null)}},{"./cookie":266,"./store":269,util:191}],268:[function(require,module,exports){module.exports.getPublicSuffix=function getPublicSuffix(domain){if(!domain)return null;if(domain.match(/^\./))return null;domain=domain.toLowerCase();var parts=domain.split(".").reverse();var suffix="";var suffixLen=0;for(var i=0;i<parts.length;i++){var part=parts[i];var starstr="*"+suffix;var partstr=part+suffix;if(index[starstr]){suffixLen=i+1;if(index[partstr]===false){suffixLen--}}else if(index[partstr]){suffixLen=i+1}suffix="."+part+suffix}if(index["*"+suffix]){return null}if(suffixLen&&parts.length>suffixLen){return parts.slice(0,suffixLen+1).reverse().join(".")}return null};var index=module.exports.index=Object.freeze({ac:true,"com.ac":true,"edu.ac":true,"gov.ac":true,"net.ac":true,"mil.ac":true,"org.ac":true,ad:true,"nom.ad":true,ae:true,"co.ae":true,"net.ae":true,"org.ae":true,"sch.ae":true,"ac.ae":true,"gov.ae":true,"mil.ae":true,aero:true,"accident-investigation.aero":true,"accident-prevention.aero":true,"aerobatic.aero":true,"aeroclub.aero":true,"aerodrome.aero":true,"agents.aero":true,"aircraft.aero":true,"airline.aero":true,"airport.aero":true,"air-surveillance.aero":true,"airtraffic.aero":true,"air-traffic-control.aero":true,"ambulance.aero":true,"amusement.aero":true,"association.aero":true,"author.aero":true,"ballooning.aero":true,"broker.aero":true,"caa.aero":true,"cargo.aero":true,"catering.aero":true,"certification.aero":true,"championship.aero":true,"charter.aero":true,"civilaviation.aero":true,"club.aero":true,"conference.aero":true,"consultant.aero":true,"consulting.aero":true,"control.aero":true,"council.aero":true,"crew.aero":true,"design.aero":true,"dgca.aero":true,"educator.aero":true,"emergency.aero":true,"engine.aero":true,"engineer.aero":true,"entertainment.aero":true,"equipment.aero":true,"exchange.aero":true,"express.aero":true,"federation.aero":true,"flight.aero":true,"freight.aero":true,"fuel.aero":true,"gliding.aero":true,"government.aero":true,"groundhandling.aero":true,"group.aero":true,"hanggliding.aero":true,"homebuilt.aero":true,"insurance.aero":true,"journal.aero":true,"journalist.aero":true,"leasing.aero":true,"logistics.aero":true,"magazine.aero":true,"maintenance.aero":true,"marketplace.aero":true,"media.aero":true,"microlight.aero":true,"modelling.aero":true,"navigation.aero":true,"parachuting.aero":true,"paragliding.aero":true,"passenger-association.aero":true,"pilot.aero":true,"press.aero":true,"production.aero":true,"recreation.aero":true,"repbody.aero":true,"res.aero":true,"research.aero":true,"rotorcraft.aero":true,"safety.aero":true,"scientist.aero":true,"services.aero":true,"show.aero":true,"skydiving.aero":true,"software.aero":true,"student.aero":true,"taxi.aero":true,"trader.aero":true,"trading.aero":true,"trainer.aero":true,"union.aero":true,"workinggroup.aero":true,"works.aero":true,af:true,"gov.af":true,"com.af":true,"org.af":true,"net.af":true,"edu.af":true,ag:true,"com.ag":true,"org.ag":true,"net.ag":true,"co.ag":true,"nom.ag":true,ai:true,"off.ai":true,"com.ai":true,"net.ai":true,"org.ai":true,al:true,"com.al":true,"edu.al":true,"gov.al":true,"mil.al":true,"net.al":true,"org.al":true,am:true,an:true,"com.an":true,"net.an":true,"org.an":true,"edu.an":true,ao:true,"ed.ao":true,"gv.ao":true,"og.ao":true,"co.ao":true,"pb.ao":true,"it.ao":true,aq:true,"*.ar":true,"congresodelalengua3.ar":false,"educ.ar":false,"gobiernoelectronico.ar":false,"mecon.ar":false,"nacion.ar":false,"nic.ar":false,"promocion.ar":false,"retina.ar":false,"uba.ar":false,"e164.arpa":true,"in-addr.arpa":true,"ip6.arpa":true,"iris.arpa":true,"uri.arpa":true,"urn.arpa":true,as:true,"gov.as":true,asia:true,at:true,"ac.at":true,"co.at":true,"gv.at":true,"or.at":true,"com.au":true,"net.au":true,"org.au":true,"edu.au":true,"gov.au":true,"csiro.au":true,"asn.au":true,"id.au":true,"info.au":true,"conf.au":true,"oz.au":true,"act.au":true,"nsw.au":true,"nt.au":true,"qld.au":true,"sa.au":true,"tas.au":true,"vic.au":true,"wa.au":true,"act.edu.au":true,"nsw.edu.au":true,"nt.edu.au":true,"qld.edu.au":true,"sa.edu.au":true,"tas.edu.au":true,"vic.edu.au":true,"wa.edu.au":true,"act.gov.au":true,"nt.gov.au":true,"qld.gov.au":true,"sa.gov.au":true,"tas.gov.au":true,"vic.gov.au":true,"wa.gov.au":true,aw:true,"com.aw":true,ax:true,az:true,"com.az":true,"net.az":true,"int.az":true,"gov.az":true,"org.az":true,"edu.az":true,"info.az":true,"pp.az":true,"mil.az":true,"name.az":true,"pro.az":true,"biz.az":true,ba:true,"org.ba":true,"net.ba":true,"edu.ba":true,"gov.ba":true,"mil.ba":true,"unsa.ba":true,"unbi.ba":true,"co.ba":true,"com.ba":true,"rs.ba":true,bb:true,"biz.bb":true,"com.bb":true,"edu.bb":true,"gov.bb":true,"info.bb":true,"net.bb":true,"org.bb":true,"store.bb":true,"*.bd":true,be:true,"ac.be":true,bf:true,"gov.bf":true,bg:true,"a.bg":true,"b.bg":true,"c.bg":true,"d.bg":true,"e.bg":true,"f.bg":true,"g.bg":true,"h.bg":true,"i.bg":true,"j.bg":true,"k.bg":true,"l.bg":true,"m.bg":true,"n.bg":true,"o.bg":true,"p.bg":true,"q.bg":true,"r.bg":true,"s.bg":true,"t.bg":true,"u.bg":true,"v.bg":true,"w.bg":true,"x.bg":true,"y.bg":true,"z.bg":true,"0.bg":true,"1.bg":true,"2.bg":true,"3.bg":true,"4.bg":true,"5.bg":true,"6.bg":true,"7.bg":true,"8.bg":true,"9.bg":true,bh:true,"com.bh":true,"edu.bh":true,"net.bh":true,"org.bh":true,"gov.bh":true,bi:true,"co.bi":true,"com.bi":true,"edu.bi":true,"or.bi":true,"org.bi":true,biz:true,bj:true,"asso.bj":true,"barreau.bj":true,"gouv.bj":true,bm:true,"com.bm":true,"edu.bm":true,"gov.bm":true,"net.bm":true,"org.bm":true,"*.bn":true,bo:true,"com.bo":true,"edu.bo":true,"gov.bo":true,"gob.bo":true,"int.bo":true,"org.bo":true,"net.bo":true,"mil.bo":true,"tv.bo":true,br:true,"adm.br":true,"adv.br":true,"agr.br":true,"am.br":true,"arq.br":true,"art.br":true,"ato.br":true,"b.br":true,"bio.br":true,"blog.br":true,"bmd.br":true,"can.br":true,"cim.br":true,"cng.br":true,"cnt.br":true,"com.br":true,"coop.br":true,"ecn.br":true,"edu.br":true,"emp.br":true,"eng.br":true,"esp.br":true,"etc.br":true,"eti.br":true,"far.br":true,"flog.br":true,"fm.br":true,"fnd.br":true,"fot.br":true,"fst.br":true,"g12.br":true,"ggf.br":true,"gov.br":true,"imb.br":true,"ind.br":true,"inf.br":true,"jor.br":true,"jus.br":true,"lel.br":true,"mat.br":true,"med.br":true,"mil.br":true,"mus.br":true,"net.br":true,"nom.br":true,"not.br":true,"ntr.br":true,"odo.br":true,"org.br":true,"ppg.br":true,"pro.br":true,"psc.br":true,"psi.br":true,"qsl.br":true,"radio.br":true,"rec.br":true,"slg.br":true,"srv.br":true,"taxi.br":true,"teo.br":true,"tmp.br":true,"trd.br":true,"tur.br":true,"tv.br":true,"vet.br":true,"vlog.br":true,"wiki.br":true,"zlg.br":true,bs:true,"com.bs":true,"net.bs":true,"org.bs":true,"edu.bs":true,"gov.bs":true,bt:true,"com.bt":true,"edu.bt":true,"gov.bt":true,"net.bt":true,"org.bt":true,bw:true,"co.bw":true,"org.bw":true,by:true,"gov.by":true,"mil.by":true,"com.by":true,"of.by":true,bz:true,"com.bz":true,"net.bz":true,"org.bz":true,"edu.bz":true,"gov.bz":true,ca:true,"ab.ca":true,"bc.ca":true,"mb.ca":true,"nb.ca":true,"nf.ca":true,"nl.ca":true,"ns.ca":true,"nt.ca":true,"nu.ca":true,"on.ca":true,"pe.ca":true,"qc.ca":true,"sk.ca":true,"yk.ca":true,"gc.ca":true,cat:true,cc:true,cd:true,"gov.cd":true,cf:true,cg:true,ch:true,ci:true,"org.ci":true,"or.ci":true,"com.ci":true,"co.ci":true,"edu.ci":true,"ed.ci":true,"ac.ci":true,"net.ci":true,"go.ci":true,"asso.ci":true,"xn--aroport-bya.ci":true,"int.ci":true,"presse.ci":true,"md.ci":true,"gouv.ci":true,"*.ck":true,"www.ck":false,cl:true,"gov.cl":true,"gob.cl":true,"co.cl":true,"mil.cl":true,cm:true,"gov.cm":true,cn:true,"ac.cn":true,"com.cn":true,"edu.cn":true,"gov.cn":true,"net.cn":true,"org.cn":true,"mil.cn":true,"xn--55qx5d.cn":true,"xn--io0a7i.cn":true,"xn--od0alg.cn":true,"ah.cn":true,"bj.cn":true,"cq.cn":true,"fj.cn":true,"gd.cn":true,"gs.cn":true,"gz.cn":true,"gx.cn":true,"ha.cn":true,"hb.cn":true,"he.cn":true,"hi.cn":true,"hl.cn":true,"hn.cn":true,"jl.cn":true,"js.cn":true,"jx.cn":true,"ln.cn":true,"nm.cn":true,"nx.cn":true,"qh.cn":true,"sc.cn":true,"sd.cn":true,"sh.cn":true,"sn.cn":true,"sx.cn":true,"tj.cn":true,"xj.cn":true,"xz.cn":true,"yn.cn":true,"zj.cn":true,"hk.cn":true,"mo.cn":true,"tw.cn":true,co:true,"arts.co":true,"com.co":true,"edu.co":true,"firm.co":true,"gov.co":true,"info.co":true,"int.co":true,"mil.co":true,"net.co":true,"nom.co":true,"org.co":true,"rec.co":true,"web.co":true,com:true,coop:true,cr:true,"ac.cr":true,"co.cr":true,"ed.cr":true,"fi.cr":true,"go.cr":true,"or.cr":true,"sa.cr":true,cu:true,"com.cu":true,"edu.cu":true,"org.cu":true,"net.cu":true,"gov.cu":true,"inf.cu":true,cv:true,cx:true,"gov.cx":true,"*.cy":true,cz:true,de:true,dj:true,dk:true,dm:true,"com.dm":true,"net.dm":true,"org.dm":true,"edu.dm":true,"gov.dm":true,"do":true,"art.do":true,"com.do":true,"edu.do":true,"gob.do":true,"gov.do":true,"mil.do":true,"net.do":true,"org.do":true,"sld.do":true,"web.do":true,dz:true,"com.dz":true,"org.dz":true,"net.dz":true,"gov.dz":true,"edu.dz":true,"asso.dz":true,"pol.dz":true,"art.dz":true,ec:true,"com.ec":true,"info.ec":true,"net.ec":true,"fin.ec":true,"k12.ec":true,"med.ec":true,"pro.ec":true,"org.ec":true,"edu.ec":true,"gov.ec":true,"gob.ec":true,"mil.ec":true,edu:true,ee:true,"edu.ee":true,"gov.ee":true,"riik.ee":true,"lib.ee":true,"med.ee":true,"com.ee":true,"pri.ee":true,"aip.ee":true,"org.ee":true,"fie.ee":true,eg:true,"com.eg":true,"edu.eg":true,"eun.eg":true,"gov.eg":true,"mil.eg":true,"name.eg":true,"net.eg":true,"org.eg":true,"sci.eg":true,"*.er":true,es:true,"com.es":true,"nom.es":true,"org.es":true,"gob.es":true,"edu.es":true,"*.et":true,eu:true,fi:true,"aland.fi":true,"*.fj":true,"*.fk":true,fm:true,fo:true,fr:true,"com.fr":true,"asso.fr":true,"nom.fr":true,"prd.fr":true,"presse.fr":true,"tm.fr":true,"aeroport.fr":true,"assedic.fr":true,"avocat.fr":true,"avoues.fr":true,"cci.fr":true,"chambagri.fr":true,"chirurgiens-dentistes.fr":true,"experts-comptables.fr":true,"geometre-expert.fr":true,"gouv.fr":true,"greta.fr":true,"huissier-justice.fr":true,"medecin.fr":true,"notaires.fr":true,"pharmacien.fr":true,"port.fr":true,"veterinaire.fr":true,ga:true,gd:true,ge:true,"com.ge":true,"edu.ge":true,"gov.ge":true,"org.ge":true,"mil.ge":true,"net.ge":true,"pvt.ge":true,gf:true,gg:true,"co.gg":true,"org.gg":true,"net.gg":true,"sch.gg":true,"gov.gg":true,gh:true,"com.gh":true,"edu.gh":true,"gov.gh":true,"org.gh":true,"mil.gh":true,gi:true,"com.gi":true,"ltd.gi":true,"gov.gi":true,"mod.gi":true,"edu.gi":true,"org.gi":true,gl:true,gm:true,"ac.gn":true,"com.gn":true,"edu.gn":true,"gov.gn":true,"org.gn":true,"net.gn":true,gov:true,gp:true,"com.gp":true,"net.gp":true,"mobi.gp":true,"edu.gp":true,"org.gp":true,"asso.gp":true,gq:true,gr:true,"com.gr":true,"edu.gr":true,"net.gr":true,"org.gr":true,"gov.gr":true,gs:true,"*.gt":true,"www.gt":false,"*.gu":true,gw:true,gy:true,"co.gy":true,"com.gy":true,"net.gy":true,hk:true,"com.hk":true,"edu.hk":true,"gov.hk":true,"idv.hk":true,"net.hk":true,"org.hk":true,"xn--55qx5d.hk":true,"xn--wcvs22d.hk":true,"xn--lcvr32d.hk":true,"xn--mxtq1m.hk":true,"xn--gmqw5a.hk":true,"xn--ciqpn.hk":true,"xn--gmq050i.hk":true,"xn--zf0avx.hk":true,"xn--io0a7i.hk":true,"xn--mk0axi.hk":true,"xn--od0alg.hk":true,"xn--od0aq3b.hk":true,"xn--tn0ag.hk":true,"xn--uc0atv.hk":true,"xn--uc0ay4a.hk":true,hm:true,hn:true,"com.hn":true,"edu.hn":true,"org.hn":true,"net.hn":true,"mil.hn":true,"gob.hn":true,hr:true,"iz.hr":true,"from.hr":true,"name.hr":true,"com.hr":true,ht:true,"com.ht":true,"shop.ht":true,"firm.ht":true,"info.ht":true,"adult.ht":true,"net.ht":true,"pro.ht":true,"org.ht":true,"med.ht":true,"art.ht":true,"coop.ht":true,"pol.ht":true,"asso.ht":true,"edu.ht":true,"rel.ht":true,"gouv.ht":true,"perso.ht":true,hu:true,"co.hu":true,"info.hu":true,"org.hu":true,"priv.hu":true,"sport.hu":true,"tm.hu":true,"2000.hu":true,"agrar.hu":true,"bolt.hu":true,"casino.hu":true,"city.hu":true,"erotica.hu":true,"erotika.hu":true,"film.hu":true,"forum.hu":true,"games.hu":true,"hotel.hu":true,"ingatlan.hu":true,"jogasz.hu":true,"konyvelo.hu":true,"lakas.hu":true,"media.hu":true,"news.hu":true,"reklam.hu":true,"sex.hu":true,"shop.hu":true,"suli.hu":true,"szex.hu":true,"tozsde.hu":true,"utazas.hu":true,"video.hu":true,id:true,"ac.id":true,"co.id":true,"go.id":true,"mil.id":true,"net.id":true,"or.id":true,"sch.id":true,"web.id":true,ie:true,"gov.ie":true,"*.il":true,im:true,"co.im":true,"ltd.co.im":true,"plc.co.im":true,"net.im":true,"gov.im":true,"org.im":true,"nic.im":true,"ac.im":true,"in":true,"co.in":true,"firm.in":true,"net.in":true,"org.in":true,"gen.in":true,"ind.in":true,"nic.in":true,"ac.in":true,"edu.in":true,"res.in":true,"gov.in":true,"mil.in":true,info:true,"int":true,"eu.int":true,io:true,"com.io":true,iq:true,"gov.iq":true,"edu.iq":true,"mil.iq":true,"com.iq":true,"org.iq":true,"net.iq":true,ir:true,"ac.ir":true,"co.ir":true,"gov.ir":true,"id.ir":true,"net.ir":true,"org.ir":true,"sch.ir":true,"xn--mgba3a4f16a.ir":true,"xn--mgba3a4fra.ir":true,is:true,"net.is":true,"com.is":true,"edu.is":true,"gov.is":true,"org.is":true,"int.is":true,it:true,"gov.it":true,"edu.it":true,"agrigento.it":true,"ag.it":true,"alessandria.it":true,"al.it":true,"ancona.it":true,"an.it":true,"aosta.it":true,"aoste.it":true,"ao.it":true,"arezzo.it":true,"ar.it":true,"ascoli-piceno.it":true,"ascolipiceno.it":true,"ap.it":true,"asti.it":true,"at.it":true,"avellino.it":true,"av.it":true,"bari.it":true,"ba.it":true,"andria-barletta-trani.it":true,"andriabarlettatrani.it":true,"trani-barletta-andria.it":true,"tranibarlettaandria.it":true,"barletta-trani-andria.it":true,"barlettatraniandria.it":true,"andria-trani-barletta.it":true,"andriatranibarletta.it":true,"trani-andria-barletta.it":true,"traniandriabarletta.it":true,"bt.it":true,"belluno.it":true,"bl.it":true,"benevento.it":true,"bn.it":true,"bergamo.it":true,"bg.it":true,"biella.it":true,"bi.it":true,"bologna.it":true,"bo.it":true,"bolzano.it":true,"bozen.it":true,"balsan.it":true,"alto-adige.it":true,"altoadige.it":true,"suedtirol.it":true,"bz.it":true,"brescia.it":true,"bs.it":true,"brindisi.it":true,"br.it":true,"cagliari.it":true,"ca.it":true,"caltanissetta.it":true,"cl.it":true,"campobasso.it":true,"cb.it":true,"carboniaiglesias.it":true,"carbonia-iglesias.it":true,"iglesias-carbonia.it":true,"iglesiascarbonia.it":true,"ci.it":true,"caserta.it":true,"ce.it":true,"catania.it":true,"ct.it":true,"catanzaro.it":true,"cz.it":true,"chieti.it":true,"ch.it":true,"como.it":true,"co.it":true,"cosenza.it":true,"cs.it":true,"cremona.it":true,"cr.it":true,"crotone.it":true,"kr.it":true,"cuneo.it":true,"cn.it":true,"dell-ogliastra.it":true,"dellogliastra.it":true,"ogliastra.it":true,"og.it":true,"enna.it":true,"en.it":true,"ferrara.it":true,"fe.it":true,"fermo.it":true,"fm.it":true,"firenze.it":true,"florence.it":true,"fi.it":true,"foggia.it":true,"fg.it":true,"forli-cesena.it":true,"forlicesena.it":true,"cesena-forli.it":true,"cesenaforli.it":true,"fc.it":true,"frosinone.it":true,"fr.it":true,"genova.it":true,"genoa.it":true,"ge.it":true,"gorizia.it":true,"go.it":true,"grosseto.it":true,"gr.it":true,"imperia.it":true,"im.it":true,"isernia.it":true,"is.it":true,"laquila.it":true,"aquila.it":true,"aq.it":true,"la-spezia.it":true,"laspezia.it":true,"sp.it":true,"latina.it":true,"lt.it":true,"lecce.it":true,"le.it":true,"lecco.it":true,"lc.it":true,"livorno.it":true,"li.it":true,"lodi.it":true,"lo.it":true,"lucca.it":true,"lu.it":true,"macerata.it":true,"mc.it":true,"mantova.it":true,"mn.it":true,"massa-carrara.it":true,"massacarrara.it":true,"carrara-massa.it":true,"carraramassa.it":true,"ms.it":true,"matera.it":true,"mt.it":true,"medio-campidano.it":true,"mediocampidano.it":true,"campidano-medio.it":true,"campidanomedio.it":true,"vs.it":true,"messina.it":true,"me.it":true,"milano.it":true,"milan.it":true,"mi.it":true,"modena.it":true,"mo.it":true,"monza.it":true,"monza-brianza.it":true,"monzabrianza.it":true,"monzaebrianza.it":true,"monzaedellabrianza.it":true,"monza-e-della-brianza.it":true,"mb.it":true,"napoli.it":true,"naples.it":true,"na.it":true,"novara.it":true,"no.it":true,"nuoro.it":true,"nu.it":true,"oristano.it":true,"or.it":true,"padova.it":true,"padua.it":true,"pd.it":true,"palermo.it":true,"pa.it":true,"parma.it":true,"pr.it":true,"pavia.it":true,"pv.it":true,"perugia.it":true,"pg.it":true,"pescara.it":true,"pe.it":true,"pesaro-urbino.it":true,"pesarourbino.it":true,"urbino-pesaro.it":true,"urbinopesaro.it":true,"pu.it":true,"piacenza.it":true,"pc.it":true,"pisa.it":true,"pi.it":true,"pistoia.it":true,"pt.it":true,"pordenone.it":true,"pn.it":true,"potenza.it":true,"pz.it":true,"prato.it":true,"po.it":true,"ragusa.it":true,"rg.it":true,"ravenna.it":true,"ra.it":true,"reggio-calabria.it":true,"reggiocalabria.it":true,"rc.it":true,"reggio-emilia.it":true,"reggioemilia.it":true,"re.it":true,"rieti.it":true,"ri.it":true,"rimini.it":true,"rn.it":true,"roma.it":true,"rome.it":true,"rm.it":true,"rovigo.it":true,"ro.it":true,"salerno.it":true,"sa.it":true,"sassari.it":true,"ss.it":true,"savona.it":true,"sv.it":true,"siena.it":true,"si.it":true,"siracusa.it":true,"sr.it":true,"sondrio.it":true,"so.it":true,"taranto.it":true,"ta.it":true,"tempio-olbia.it":true,"tempioolbia.it":true,"olbia-tempio.it":true,"olbiatempio.it":true,"ot.it":true,"teramo.it":true,"te.it":true,"terni.it":true,"tr.it":true,"torino.it":true,"turin.it":true,"to.it":true,"trapani.it":true,"tp.it":true,"trento.it":true,"trentino.it":true,"tn.it":true,"treviso.it":true,"tv.it":true,"trieste.it":true,"ts.it":true,"udine.it":true,"ud.it":true,"varese.it":true,"va.it":true,"venezia.it":true,"venice.it":true,"ve.it":true,"verbania.it":true,"vb.it":true,"vercelli.it":true,"vc.it":true,"verona.it":true,"vr.it":true,"vibo-valentia.it":true,"vibovalentia.it":true,"vv.it":true,"vicenza.it":true,"vi.it":true,"viterbo.it":true,"vt.it":true,je:true,"co.je":true,"org.je":true,"net.je":true,"sch.je":true,"gov.je":true,"*.jm":true,jo:true,"com.jo":true,"org.jo":true,"net.jo":true,"edu.jo":true,"sch.jo":true,"gov.jo":true,"mil.jo":true,"name.jo":true,jobs:true,jp:true,"ac.jp":true,"ad.jp":true,"co.jp":true,"ed.jp":true,"go.jp":true,"gr.jp":true,"lg.jp":true,"ne.jp":true,"or.jp":true,"*.aichi.jp":true,"*.akita.jp":true,"*.aomori.jp":true,"*.chiba.jp":true,"*.ehime.jp":true,"*.fukui.jp":true,"*.fukuoka.jp":true,"*.fukushima.jp":true,"*.gifu.jp":true,"*.gunma.jp":true,"*.hiroshima.jp":true,"*.hokkaido.jp":true,"*.hyogo.jp":true,"*.ibaraki.jp":true,"*.ishikawa.jp":true,"*.iwate.jp":true,"*.kagawa.jp":true,"*.kagoshima.jp":true,"*.kanagawa.jp":true,"*.kawasaki.jp":true,"*.kitakyushu.jp":true,"*.kobe.jp":true,"*.kochi.jp":true,"*.kumamoto.jp":true,"*.kyoto.jp":true,"*.mie.jp":true,"*.miyagi.jp":true,"*.miyazaki.jp":true,"*.nagano.jp":true,"*.nagasaki.jp":true,"*.nagoya.jp":true,"*.nara.jp":true,"*.niigata.jp":true,"*.oita.jp":true,"*.okayama.jp":true,"*.okinawa.jp":true,"*.osaka.jp":true,"*.saga.jp":true,"*.saitama.jp":true,"*.sapporo.jp":true,"*.sendai.jp":true,"*.shiga.jp":true,"*.shimane.jp":true,"*.shizuoka.jp":true,"*.tochigi.jp":true,"*.tokushima.jp":true,"*.tokyo.jp":true,"*.tottori.jp":true,"*.toyama.jp":true,"*.wakayama.jp":true,"*.yamagata.jp":true,"*.yamaguchi.jp":true,"*.yamanashi.jp":true,"*.yokohama.jp":true,"metro.tokyo.jp":false,"pref.aichi.jp":false,"pref.akita.jp":false,"pref.aomori.jp":false,"pref.chiba.jp":false,"pref.ehime.jp":false,"pref.fukui.jp":false,"pref.fukuoka.jp":false,"pref.fukushima.jp":false,"pref.gifu.jp":false,"pref.gunma.jp":false,"pref.hiroshima.jp":false,"pref.hokkaido.jp":false,"pref.hyogo.jp":false,"pref.ibaraki.jp":false,"pref.ishikawa.jp":false,"pref.iwate.jp":false,"pref.kagawa.jp":false,"pref.kagoshima.jp":false,"pref.kanagawa.jp":false,"pref.kochi.jp":false,"pref.kumamoto.jp":false,"pref.kyoto.jp":false,"pref.mie.jp":false,"pref.miyagi.jp":false,"pref.miyazaki.jp":false,"pref.nagano.jp":false,"pref.nagasaki.jp":false,"pref.nara.jp":false,"pref.niigata.jp":false,"pref.oita.jp":false,"pref.okayama.jp":false,"pref.okinawa.jp":false,"pref.osaka.jp":false,"pref.saga.jp":false,"pref.saitama.jp":false,"pref.shiga.jp":false,"pref.shimane.jp":false,"pref.shizuoka.jp":false,"pref.tochigi.jp":false,"pref.tokushima.jp":false,"pref.tottori.jp":false,"pref.toyama.jp":false,"pref.wakayama.jp":false,"pref.yamagata.jp":false,"pref.yamaguchi.jp":false,"pref.yamanashi.jp":false,"city.chiba.jp":false,"city.fukuoka.jp":false,"city.hiroshima.jp":false,"city.kawasaki.jp":false,"city.kitakyushu.jp":false,"city.kobe.jp":false,"city.kyoto.jp":false,"city.nagoya.jp":false,"city.niigata.jp":false,"city.okayama.jp":false,"city.osaka.jp":false,"city.saitama.jp":false,"city.sapporo.jp":false,"city.sendai.jp":false,"city.shizuoka.jp":false,"city.yokohama.jp":false,"*.ke":true,kg:true,"org.kg":true,"net.kg":true,"com.kg":true,"edu.kg":true,"gov.kg":true,"mil.kg":true,"*.kh":true,ki:true,"edu.ki":true,"biz.ki":true,"net.ki":true,"org.ki":true,"gov.ki":true,"info.ki":true,"com.ki":true,km:true,"org.km":true,"nom.km":true,"gov.km":true,"prd.km":true,"tm.km":true,"edu.km":true,"mil.km":true,"ass.km":true,"com.km":true,"coop.km":true,"asso.km":true,"presse.km":true,"medecin.km":true,"notaires.km":true,"pharmaciens.km":true,"veterinaire.km":true,"gouv.km":true,kn:true,"net.kn":true,"org.kn":true,"edu.kn":true,"gov.kn":true,"com.kp":true,"edu.kp":true,"gov.kp":true,"org.kp":true,"rep.kp":true,"tra.kp":true,kr:true,"ac.kr":true,"co.kr":true,"es.kr":true,"go.kr":true,"hs.kr":true,"kg.kr":true,"mil.kr":true,"ms.kr":true,"ne.kr":true,"or.kr":true,"pe.kr":true,"re.kr":true,"sc.kr":true,"busan.kr":true,"chungbuk.kr":true,"chungnam.kr":true,"daegu.kr":true,"daejeon.kr":true,"gangwon.kr":true,"gwangju.kr":true,"gyeongbuk.kr":true,"gyeonggi.kr":true,"gyeongnam.kr":true,"incheon.kr":true,"jeju.kr":true,"jeonbuk.kr":true,"jeonnam.kr":true,"seoul.kr":true,"ulsan.kr":true,"*.kw":true,ky:true,"edu.ky":true,"gov.ky":true,"com.ky":true,"org.ky":true,"net.ky":true,kz:true,"org.kz":true,"edu.kz":true,"net.kz":true,"gov.kz":true,"mil.kz":true,"com.kz":true,la:true,"int.la":true,"net.la":true,"info.la":true,"edu.la":true,"gov.la":true,"per.la":true,"com.la":true,"org.la":true,"com.lb":true,"edu.lb":true,"gov.lb":true,"net.lb":true,"org.lb":true,lc:true,"com.lc":true,"net.lc":true,"co.lc":true,"org.lc":true,"edu.lc":true,"gov.lc":true,li:true,lk:true,"gov.lk":true,"sch.lk":true,"net.lk":true,"int.lk":true,"com.lk":true,"org.lk":true,"edu.lk":true,"ngo.lk":true,"soc.lk":true,"web.lk":true,"ltd.lk":true,"assn.lk":true,"grp.lk":true,"hotel.lk":true,"com.lr":true,"edu.lr":true,"gov.lr":true,"org.lr":true,"net.lr":true,ls:true,"co.ls":true,"org.ls":true,lt:true,"gov.lt":true,lu:true,lv:true,"com.lv":true,"edu.lv":true,"gov.lv":true,"org.lv":true,"mil.lv":true,"id.lv":true,"net.lv":true,"asn.lv":true,"conf.lv":true,ly:true,"com.ly":true,"net.ly":true,"gov.ly":true,"plc.ly":true,"edu.ly":true,"sch.ly":true,"med.ly":true,"org.ly":true,"id.ly":true,ma:true,"co.ma":true,"net.ma":true,"gov.ma":true,"org.ma":true,"ac.ma":true,"press.ma":true,mc:true,"tm.mc":true,"asso.mc":true,md:true,me:true,"co.me":true,"net.me":true,"org.me":true,"edu.me":true,"ac.me":true,"gov.me":true,"its.me":true,"priv.me":true,mg:true,"org.mg":true,"nom.mg":true,"gov.mg":true,"prd.mg":true,"tm.mg":true,"edu.mg":true,"mil.mg":true,"com.mg":true,mh:true,mil:true,mk:true,"com.mk":true,"org.mk":true,"net.mk":true,"edu.mk":true,"gov.mk":true,"inf.mk":true,"name.mk":true,ml:true,"com.ml":true,"edu.ml":true,"gouv.ml":true,"gov.ml":true,"net.ml":true,"org.ml":true,"presse.ml":true,"*.mm":true,mn:true,"gov.mn":true,"edu.mn":true,"org.mn":true,mo:true,"com.mo":true,"net.mo":true,"org.mo":true,"edu.mo":true,"gov.mo":true,mobi:true,mp:true,mq:true,mr:true,"gov.mr":true,ms:true,"*.mt":true,mu:true,"com.mu":true,"net.mu":true,"org.mu":true,"gov.mu":true,"ac.mu":true,"co.mu":true,"or.mu":true,museum:true,"academy.museum":true,"agriculture.museum":true,"air.museum":true,"airguard.museum":true,"alabama.museum":true,"alaska.museum":true,"amber.museum":true,"ambulance.museum":true,"american.museum":true,"americana.museum":true,"americanantiques.museum":true,"americanart.museum":true,"amsterdam.museum":true,"and.museum":true,"annefrank.museum":true,"anthro.museum":true,"anthropology.museum":true,"antiques.museum":true,"aquarium.museum":true,"arboretum.museum":true,"archaeological.museum":true,"archaeology.museum":true,"architecture.museum":true,"art.museum":true,"artanddesign.museum":true,"artcenter.museum":true,"artdeco.museum":true,"arteducation.museum":true,"artgallery.museum":true,"arts.museum":true,"artsandcrafts.museum":true,"asmatart.museum":true,"assassination.museum":true,"assisi.museum":true,"association.museum":true,"astronomy.museum":true,"atlanta.museum":true,"austin.museum":true,"australia.museum":true,"automotive.museum":true,"aviation.museum":true,"axis.museum":true,"badajoz.museum":true,"baghdad.museum":true,"bahn.museum":true,"bale.museum":true,"baltimore.museum":true,"barcelona.museum":true,"baseball.museum":true,"basel.museum":true,"baths.museum":true,"bauern.museum":true,"beauxarts.museum":true,"beeldengeluid.museum":true,"bellevue.museum":true,"bergbau.museum":true,"berkeley.museum":true,"berlin.museum":true,"bern.museum":true,"bible.museum":true,"bilbao.museum":true,"bill.museum":true,"birdart.museum":true,"birthplace.museum":true,"bonn.museum":true,"boston.museum":true,"botanical.museum":true,"botanicalgarden.museum":true,"botanicgarden.museum":true,"botany.museum":true,"brandywinevalley.museum":true,"brasil.museum":true,"bristol.museum":true,"british.museum":true,"britishcolumbia.museum":true,"broadcast.museum":true,"brunel.museum":true,"brussel.museum":true,"brussels.museum":true,"bruxelles.museum":true,"building.museum":true,"burghof.museum":true,"bus.museum":true,"bushey.museum":true,"cadaques.museum":true,"california.museum":true,"cambridge.museum":true,"can.museum":true,"canada.museum":true,"capebreton.museum":true,"carrier.museum":true,"cartoonart.museum":true,"casadelamoneda.museum":true,"castle.museum":true,"castres.museum":true,"celtic.museum":true,"center.museum":true,"chattanooga.museum":true,"cheltenham.museum":true,"chesapeakebay.museum":true,"chicago.museum":true,"children.museum":true,"childrens.museum":true,"childrensgarden.museum":true,"chiropractic.museum":true,"chocolate.museum":true,"christiansburg.museum":true,"cincinnati.museum":true,"cinema.museum":true,"circus.museum":true,"civilisation.museum":true,"civilization.museum":true,"civilwar.museum":true,"clinton.museum":true,"clock.museum":true,"coal.museum":true,"coastaldefence.museum":true,"cody.museum":true,"coldwar.museum":true,"collection.museum":true,"colonialwilliamsburg.museum":true,"coloradoplateau.museum":true,"columbia.museum":true,"columbus.museum":true,"communication.museum":true,"communications.museum":true,"community.museum":true,"computer.museum":true,"computerhistory.museum":true,"xn--comunicaes-v6a2o.museum":true,"contemporary.museum":true,"contemporaryart.museum":true,"convent.museum":true,"copenhagen.museum":true,"corporation.museum":true,"xn--correios-e-telecomunicaes-ghc29a.museum":true,"corvette.museum":true,"costume.museum":true,"countryestate.museum":true,"county.museum":true,"crafts.museum":true,"cranbrook.museum":true,"creation.museum":true,"cultural.museum":true,"culturalcenter.museum":true,"culture.museum":true,"cyber.museum":true,"cymru.museum":true,"dali.museum":true,"dallas.museum":true,"database.museum":true,"ddr.museum":true,"decorativearts.museum":true,"delaware.museum":true,"delmenhorst.museum":true,"denmark.museum":true,"depot.museum":true,"design.museum":true,"detroit.museum":true,"dinosaur.museum":true,"discovery.museum":true,"dolls.museum":true,"donostia.museum":true,"durham.museum":true,"eastafrica.museum":true,"eastcoast.museum":true,"education.museum":true,"educational.museum":true,"egyptian.museum":true,"eisenbahn.museum":true,"elburg.museum":true,"elvendrell.museum":true,"embroidery.museum":true,"encyclopedic.museum":true,"england.museum":true,"entomology.museum":true,"environment.museum":true,"environmentalconservation.museum":true,"epilepsy.museum":true,"essex.museum":true,"estate.museum":true,"ethnology.museum":true,"exeter.museum":true,"exhibition.museum":true,"family.museum":true,"farm.museum":true,"farmequipment.museum":true,"farmers.museum":true,"farmstead.museum":true,"field.museum":true,"figueres.museum":true,"filatelia.museum":true,"film.museum":true,"fineart.museum":true,"finearts.museum":true,"finland.museum":true,"flanders.museum":true,"florida.museum":true,"force.museum":true,"fortmissoula.museum":true,"fortworth.museum":true,"foundation.museum":true,"francaise.museum":true,"frankfurt.museum":true,"franziskaner.museum":true,"freemasonry.museum":true,"freiburg.museum":true,"fribourg.museum":true,"frog.museum":true,"fundacio.museum":true,"furniture.museum":true,"gallery.museum":true,"garden.museum":true,"gateway.museum":true,"geelvinck.museum":true,"gemological.museum":true,"geology.museum":true,"georgia.museum":true,"giessen.museum":true,"glas.museum":true,"glass.museum":true,"gorge.museum":true,"grandrapids.museum":true,"graz.museum":true,"guernsey.museum":true,"halloffame.museum":true,"hamburg.museum":true,"handson.museum":true,"harvestcelebration.museum":true,"hawaii.museum":true,"health.museum":true,"heimatunduhren.museum":true,"hellas.museum":true,"helsinki.museum":true,"hembygdsforbund.museum":true,"heritage.museum":true,"histoire.museum":true,"historical.museum":true,"historicalsociety.museum":true,"historichouses.museum":true,"historisch.museum":true,"historisches.museum":true,"history.museum":true,"historyofscience.museum":true,"horology.museum":true,"house.museum":true,"humanities.museum":true,"illustration.museum":true,"imageandsound.museum":true,"indian.museum":true,"indiana.museum":true,"indianapolis.museum":true,"indianmarket.museum":true,"intelligence.museum":true,"interactive.museum":true,"iraq.museum":true,"iron.museum":true,"isleofman.museum":true,"jamison.museum":true,"jefferson.museum":true,"jerusalem.museum":true,"jewelry.museum":true,"jewish.museum":true,"jewishart.museum":true,"jfk.museum":true,"journalism.museum":true,"judaica.museum":true,"judygarland.museum":true,"juedisches.museum":true,"juif.museum":true,"karate.museum":true,"karikatur.museum":true,"kids.museum":true,"koebenhavn.museum":true,"koeln.museum":true,"kunst.museum":true,"kunstsammlung.museum":true,"kunstunddesign.museum":true,"labor.museum":true,"labour.museum":true,"lajolla.museum":true,"lancashire.museum":true,"landes.museum":true,"lans.museum":true,"xn--lns-qla.museum":true,"larsson.museum":true,"lewismiller.museum":true,"lincoln.museum":true,"linz.museum":true,"living.museum":true,"livinghistory.museum":true,"localhistory.museum":true,"london.museum":true,"losangeles.museum":true,"louvre.museum":true,"loyalist.museum":true,"lucerne.museum":true,"luxembourg.museum":true,"luzern.museum":true,"mad.museum":true,"madrid.museum":true,"mallorca.museum":true,"manchester.museum":true,"mansion.museum":true,"mansions.museum":true,"manx.museum":true,"marburg.museum":true,"maritime.museum":true,"maritimo.museum":true,"maryland.museum":true,"marylhurst.museum":true,"media.museum":true,"medical.museum":true,"medizinhistorisches.museum":true, | |
"meeres.museum":true,"memorial.museum":true,"mesaverde.museum":true,"michigan.museum":true,"midatlantic.museum":true,"military.museum":true,"mill.museum":true,"miners.museum":true,"mining.museum":true,"minnesota.museum":true,"missile.museum":true,"missoula.museum":true,"modern.museum":true,"moma.museum":true,"money.museum":true,"monmouth.museum":true,"monticello.museum":true,"montreal.museum":true,"moscow.museum":true,"motorcycle.museum":true,"muenchen.museum":true,"muenster.museum":true,"mulhouse.museum":true,"muncie.museum":true,"museet.museum":true,"museumcenter.museum":true,"museumvereniging.museum":true,"music.museum":true,"national.museum":true,"nationalfirearms.museum":true,"nationalheritage.museum":true,"nativeamerican.museum":true,"naturalhistory.museum":true,"naturalhistorymuseum.museum":true,"naturalsciences.museum":true,"nature.museum":true,"naturhistorisches.museum":true,"natuurwetenschappen.museum":true,"naumburg.museum":true,"naval.museum":true,"nebraska.museum":true,"neues.museum":true,"newhampshire.museum":true,"newjersey.museum":true,"newmexico.museum":true,"newport.museum":true,"newspaper.museum":true,"newyork.museum":true,"niepce.museum":true,"norfolk.museum":true,"north.museum":true,"nrw.museum":true,"nuernberg.museum":true,"nuremberg.museum":true,"nyc.museum":true,"nyny.museum":true,"oceanographic.museum":true,"oceanographique.museum":true,"omaha.museum":true,"online.museum":true,"ontario.museum":true,"openair.museum":true,"oregon.museum":true,"oregontrail.museum":true,"otago.museum":true,"oxford.museum":true,"pacific.museum":true,"paderborn.museum":true,"palace.museum":true,"paleo.museum":true,"palmsprings.museum":true,"panama.museum":true,"paris.museum":true,"pasadena.museum":true,"pharmacy.museum":true,"philadelphia.museum":true,"philadelphiaarea.museum":true,"philately.museum":true,"phoenix.museum":true,"photography.museum":true,"pilots.museum":true,"pittsburgh.museum":true,"planetarium.museum":true,"plantation.museum":true,"plants.museum":true,"plaza.museum":true,"portal.museum":true,"portland.museum":true,"portlligat.museum":true,"posts-and-telecommunications.museum":true,"preservation.museum":true,"presidio.museum":true,"press.museum":true,"project.museum":true,"public.museum":true,"pubol.museum":true,"quebec.museum":true,"railroad.museum":true,"railway.museum":true,"research.museum":true,"resistance.museum":true,"riodejaneiro.museum":true,"rochester.museum":true,"rockart.museum":true,"roma.museum":true,"russia.museum":true,"saintlouis.museum":true,"salem.museum":true,"salvadordali.museum":true,"salzburg.museum":true,"sandiego.museum":true,"sanfrancisco.museum":true,"santabarbara.museum":true,"santacruz.museum":true,"santafe.museum":true,"saskatchewan.museum":true,"satx.museum":true,"savannahga.museum":true,"schlesisches.museum":true,"schoenbrunn.museum":true,"schokoladen.museum":true,"school.museum":true,"schweiz.museum":true,"science.museum":true,"scienceandhistory.museum":true,"scienceandindustry.museum":true,"sciencecenter.museum":true,"sciencecenters.museum":true,"science-fiction.museum":true,"sciencehistory.museum":true,"sciences.museum":true,"sciencesnaturelles.museum":true,"scotland.museum":true,"seaport.museum":true,"settlement.museum":true,"settlers.museum":true,"shell.museum":true,"sherbrooke.museum":true,"sibenik.museum":true,"silk.museum":true,"ski.museum":true,"skole.museum":true,"society.museum":true,"sologne.museum":true,"soundandvision.museum":true,"southcarolina.museum":true,"southwest.museum":true,"space.museum":true,"spy.museum":true,"square.museum":true,"stadt.museum":true,"stalbans.museum":true,"starnberg.museum":true,"state.museum":true,"stateofdelaware.museum":true,"station.museum":true,"steam.museum":true,"steiermark.museum":true,"stjohn.museum":true,"stockholm.museum":true,"stpetersburg.museum":true,"stuttgart.museum":true,"suisse.museum":true,"surgeonshall.museum":true,"surrey.museum":true,"svizzera.museum":true,"sweden.museum":true,"sydney.museum":true,"tank.museum":true,"tcm.museum":true,"technology.museum":true,"telekommunikation.museum":true,"television.museum":true,"texas.museum":true,"textile.museum":true,"theater.museum":true,"time.museum":true,"timekeeping.museum":true,"topology.museum":true,"torino.museum":true,"touch.museum":true,"town.museum":true,"transport.museum":true,"tree.museum":true,"trolley.museum":true,"trust.museum":true,"trustee.museum":true,"uhren.museum":true,"ulm.museum":true,"undersea.museum":true,"university.museum":true,"usa.museum":true,"usantiques.museum":true,"usarts.museum":true,"uscountryestate.museum":true,"usculture.museum":true,"usdecorativearts.museum":true,"usgarden.museum":true,"ushistory.museum":true,"ushuaia.museum":true,"uslivinghistory.museum":true,"utah.museum":true,"uvic.museum":true,"valley.museum":true,"vantaa.museum":true,"versailles.museum":true,"viking.museum":true,"village.museum":true,"virginia.museum":true,"virtual.museum":true,"virtuel.museum":true,"vlaanderen.museum":true,"volkenkunde.museum":true,"wales.museum":true,"wallonie.museum":true,"war.museum":true,"washingtondc.museum":true,"watchandclock.museum":true,"watch-and-clock.museum":true,"western.museum":true,"westfalen.museum":true,"whaling.museum":true,"wildlife.museum":true,"williamsburg.museum":true,"windmill.museum":true,"workshop.museum":true,"york.museum":true,"yorkshire.museum":true,"yosemite.museum":true,"youth.museum":true,"zoological.museum":true,"zoology.museum":true,"xn--9dbhblg6di.museum":true,"xn--h1aegh.museum":true,mv:true,"aero.mv":true,"biz.mv":true,"com.mv":true,"coop.mv":true,"edu.mv":true,"gov.mv":true,"info.mv":true,"int.mv":true,"mil.mv":true,"museum.mv":true,"name.mv":true,"net.mv":true,"org.mv":true,"pro.mv":true,mw:true,"ac.mw":true,"biz.mw":true,"co.mw":true,"com.mw":true,"coop.mw":true,"edu.mw":true,"gov.mw":true,"int.mw":true,"museum.mw":true,"net.mw":true,"org.mw":true,mx:true,"com.mx":true,"org.mx":true,"gob.mx":true,"edu.mx":true,"net.mx":true,my:true,"com.my":true,"net.my":true,"org.my":true,"gov.my":true,"edu.my":true,"mil.my":true,"name.my":true,"*.mz":true,na:true,"info.na":true,"pro.na":true,"name.na":true,"school.na":true,"or.na":true,"dr.na":true,"us.na":true,"mx.na":true,"ca.na":true,"in.na":true,"cc.na":true,"tv.na":true,"ws.na":true,"mobi.na":true,"co.na":true,"com.na":true,"org.na":true,name:true,nc:true,"asso.nc":true,ne:true,net:true,nf:true,"com.nf":true,"net.nf":true,"per.nf":true,"rec.nf":true,"web.nf":true,"arts.nf":true,"firm.nf":true,"info.nf":true,"other.nf":true,"store.nf":true,"ac.ng":true,"com.ng":true,"edu.ng":true,"gov.ng":true,"net.ng":true,"org.ng":true,"*.ni":true,nl:true,"bv.nl":true,no:true,"fhs.no":true,"vgs.no":true,"fylkesbibl.no":true,"folkebibl.no":true,"museum.no":true,"idrett.no":true,"priv.no":true,"mil.no":true,"stat.no":true,"dep.no":true,"kommune.no":true,"herad.no":true,"aa.no":true,"ah.no":true,"bu.no":true,"fm.no":true,"hl.no":true,"hm.no":true,"jan-mayen.no":true,"mr.no":true,"nl.no":true,"nt.no":true,"of.no":true,"ol.no":true,"oslo.no":true,"rl.no":true,"sf.no":true,"st.no":true,"svalbard.no":true,"tm.no":true,"tr.no":true,"va.no":true,"vf.no":true,"gs.aa.no":true,"gs.ah.no":true,"gs.bu.no":true,"gs.fm.no":true,"gs.hl.no":true,"gs.hm.no":true,"gs.jan-mayen.no":true,"gs.mr.no":true,"gs.nl.no":true,"gs.nt.no":true,"gs.of.no":true,"gs.ol.no":true,"gs.oslo.no":true,"gs.rl.no":true,"gs.sf.no":true,"gs.st.no":true,"gs.svalbard.no":true,"gs.tm.no":true,"gs.tr.no":true,"gs.va.no":true,"gs.vf.no":true,"akrehamn.no":true,"xn--krehamn-dxa.no":true,"algard.no":true,"xn--lgrd-poac.no":true,"arna.no":true,"brumunddal.no":true,"bryne.no":true,"bronnoysund.no":true,"xn--brnnysund-m8ac.no":true,"drobak.no":true,"xn--drbak-wua.no":true,"egersund.no":true,"fetsund.no":true,"floro.no":true,"xn--flor-jra.no":true,"fredrikstad.no":true,"hokksund.no":true,"honefoss.no":true,"xn--hnefoss-q1a.no":true,"jessheim.no":true,"jorpeland.no":true,"xn--jrpeland-54a.no":true,"kirkenes.no":true,"kopervik.no":true,"krokstadelva.no":true,"langevag.no":true,"xn--langevg-jxa.no":true,"leirvik.no":true,"mjondalen.no":true,"xn--mjndalen-64a.no":true,"mo-i-rana.no":true,"mosjoen.no":true,"xn--mosjen-eya.no":true,"nesoddtangen.no":true,"orkanger.no":true,"osoyro.no":true,"xn--osyro-wua.no":true,"raholt.no":true,"xn--rholt-mra.no":true,"sandnessjoen.no":true,"xn--sandnessjen-ogb.no":true,"skedsmokorset.no":true,"slattum.no":true,"spjelkavik.no":true,"stathelle.no":true,"stavern.no":true,"stjordalshalsen.no":true,"xn--stjrdalshalsen-sqb.no":true,"tananger.no":true,"tranby.no":true,"vossevangen.no":true,"afjord.no":true,"xn--fjord-lra.no":true,"agdenes.no":true,"al.no":true,"xn--l-1fa.no":true,"alesund.no":true,"xn--lesund-hua.no":true,"alstahaug.no":true,"alta.no":true,"xn--lt-liac.no":true,"alaheadju.no":true,"xn--laheadju-7ya.no":true,"alvdal.no":true,"amli.no":true,"xn--mli-tla.no":true,"amot.no":true,"xn--mot-tla.no":true,"andebu.no":true,"andoy.no":true,"xn--andy-ira.no":true,"andasuolo.no":true,"ardal.no":true,"xn--rdal-poa.no":true,"aremark.no":true,"arendal.no":true,"xn--s-1fa.no":true,"aseral.no":true,"xn--seral-lra.no":true,"asker.no":true,"askim.no":true,"askvoll.no":true,"askoy.no":true,"xn--asky-ira.no":true,"asnes.no":true,"xn--snes-poa.no":true,"audnedaln.no":true,"aukra.no":true,"aure.no":true,"aurland.no":true,"aurskog-holand.no":true,"xn--aurskog-hland-jnb.no":true,"austevoll.no":true,"austrheim.no":true,"averoy.no":true,"xn--avery-yua.no":true,"balestrand.no":true,"ballangen.no":true,"balat.no":true,"xn--blt-elab.no":true,"balsfjord.no":true,"bahccavuotna.no":true,"xn--bhccavuotna-k7a.no":true,"bamble.no":true,"bardu.no":true,"beardu.no":true,"beiarn.no":true,"bajddar.no":true,"xn--bjddar-pta.no":true,"baidar.no":true,"xn--bidr-5nac.no":true,"berg.no":true,"bergen.no":true,"berlevag.no":true,"xn--berlevg-jxa.no":true,"bearalvahki.no":true,"xn--bearalvhki-y4a.no":true,"bindal.no":true,"birkenes.no":true,"bjarkoy.no":true,"xn--bjarky-fya.no":true,"bjerkreim.no":true,"bjugn.no":true,"bodo.no":true,"xn--bod-2na.no":true,"badaddja.no":true,"xn--bdddj-mrabd.no":true,"budejju.no":true,"bokn.no":true,"bremanger.no":true,"bronnoy.no":true,"xn--brnny-wuac.no":true,"bygland.no":true,"bykle.no":true,"barum.no":true,"xn--brum-voa.no":true,"bo.telemark.no":true,"xn--b-5ga.telemark.no":true,"bo.nordland.no":true,"xn--b-5ga.nordland.no":true,"bievat.no":true,"xn--bievt-0qa.no":true,"bomlo.no":true,"xn--bmlo-gra.no":true,"batsfjord.no":true,"xn--btsfjord-9za.no":true,"bahcavuotna.no":true,"xn--bhcavuotna-s4a.no":true,"dovre.no":true,"drammen.no":true,"drangedal.no":true,"dyroy.no":true,"xn--dyry-ira.no":true,"donna.no":true,"xn--dnna-gra.no":true,"eid.no":true,"eidfjord.no":true,"eidsberg.no":true,"eidskog.no":true,"eidsvoll.no":true,"eigersund.no":true,"elverum.no":true,"enebakk.no":true,"engerdal.no":true,"etne.no":true,"etnedal.no":true,"evenes.no":true,"evenassi.no":true,"xn--eveni-0qa01ga.no":true,"evje-og-hornnes.no":true,"farsund.no":true,"fauske.no":true,"fuossko.no":true,"fuoisku.no":true,"fedje.no":true,"fet.no":true,"finnoy.no":true,"xn--finny-yua.no":true,"fitjar.no":true,"fjaler.no":true,"fjell.no":true,"flakstad.no":true,"flatanger.no":true,"flekkefjord.no":true,"flesberg.no":true,"flora.no":true,"fla.no":true,"xn--fl-zia.no":true,"folldal.no":true,"forsand.no":true,"fosnes.no":true,"frei.no":true,"frogn.no":true,"froland.no":true,"frosta.no":true,"frana.no":true,"xn--frna-woa.no":true,"froya.no":true,"xn--frya-hra.no":true,"fusa.no":true,"fyresdal.no":true,"forde.no":true,"xn--frde-gra.no":true,"gamvik.no":true,"gangaviika.no":true,"xn--ggaviika-8ya47h.no":true,"gaular.no":true,"gausdal.no":true,"gildeskal.no":true,"xn--gildeskl-g0a.no":true,"giske.no":true,"gjemnes.no":true,"gjerdrum.no":true,"gjerstad.no":true,"gjesdal.no":true,"gjovik.no":true,"xn--gjvik-wua.no":true,"gloppen.no":true,"gol.no":true,"gran.no":true,"grane.no":true,"granvin.no":true,"gratangen.no":true,"grimstad.no":true,"grong.no":true,"kraanghke.no":true,"xn--kranghke-b0a.no":true,"grue.no":true,"gulen.no":true,"hadsel.no":true,"halden.no":true,"halsa.no":true,"hamar.no":true,"hamaroy.no":true,"habmer.no":true,"xn--hbmer-xqa.no":true,"hapmir.no":true,"xn--hpmir-xqa.no":true,"hammerfest.no":true,"hammarfeasta.no":true,"xn--hmmrfeasta-s4ac.no":true,"haram.no":true,"hareid.no":true,"harstad.no":true,"hasvik.no":true,"aknoluokta.no":true,"xn--koluokta-7ya57h.no":true,"hattfjelldal.no":true,"aarborte.no":true,"haugesund.no":true,"hemne.no":true,"hemnes.no":true,"hemsedal.no":true,"heroy.more-og-romsdal.no":true,"xn--hery-ira.xn--mre-og-romsdal-qqb.no":true,"heroy.nordland.no":true,"xn--hery-ira.nordland.no":true,"hitra.no":true,"hjartdal.no":true,"hjelmeland.no":true,"hobol.no":true,"xn--hobl-ira.no":true,"hof.no":true,"hol.no":true,"hole.no":true,"holmestrand.no":true,"holtalen.no":true,"xn--holtlen-hxa.no":true,"hornindal.no":true,"horten.no":true,"hurdal.no":true,"hurum.no":true,"hvaler.no":true,"hyllestad.no":true,"hagebostad.no":true,"xn--hgebostad-g3a.no":true,"hoyanger.no":true,"xn--hyanger-q1a.no":true,"hoylandet.no":true,"xn--hylandet-54a.no":true,"ha.no":true,"xn--h-2fa.no":true,"ibestad.no":true,"inderoy.no":true,"xn--indery-fya.no":true,"iveland.no":true,"jevnaker.no":true,"jondal.no":true,"jolster.no":true,"xn--jlster-bya.no":true,"karasjok.no":true,"karasjohka.no":true,"xn--krjohka-hwab49j.no":true,"karlsoy.no":true,"galsa.no":true,"xn--gls-elac.no":true,"karmoy.no":true,"xn--karmy-yua.no":true,"kautokeino.no":true,"guovdageaidnu.no":true,"klepp.no":true,"klabu.no":true,"xn--klbu-woa.no":true,"kongsberg.no":true,"kongsvinger.no":true,"kragero.no":true,"xn--krager-gya.no":true,"kristiansand.no":true,"kristiansund.no":true,"krodsherad.no":true,"xn--krdsherad-m8a.no":true,"kvalsund.no":true,"rahkkeravju.no":true,"xn--rhkkervju-01af.no":true,"kvam.no":true,"kvinesdal.no":true,"kvinnherad.no":true,"kviteseid.no":true,"kvitsoy.no":true,"xn--kvitsy-fya.no":true,"kvafjord.no":true,"xn--kvfjord-nxa.no":true,"giehtavuoatna.no":true,"kvanangen.no":true,"xn--kvnangen-k0a.no":true,"navuotna.no":true,"xn--nvuotna-hwa.no":true,"kafjord.no":true,"xn--kfjord-iua.no":true,"gaivuotna.no":true,"xn--givuotna-8ya.no":true,"larvik.no":true,"lavangen.no":true,"lavagis.no":true,"loabat.no":true,"xn--loabt-0qa.no":true,"lebesby.no":true,"davvesiida.no":true,"leikanger.no":true,"leirfjord.no":true,"leka.no":true,"leksvik.no":true,"lenvik.no":true,"leangaviika.no":true,"xn--leagaviika-52b.no":true,"lesja.no":true,"levanger.no":true,"lier.no":true,"lierne.no":true,"lillehammer.no":true,"lillesand.no":true,"lindesnes.no":true,"lindas.no":true,"xn--linds-pra.no":true,"lom.no":true,"loppa.no":true,"lahppi.no":true,"xn--lhppi-xqa.no":true,"lund.no":true,"lunner.no":true,"luroy.no":true,"xn--lury-ira.no":true,"luster.no":true,"lyngdal.no":true,"lyngen.no":true,"ivgu.no":true,"lardal.no":true,"lerdal.no":true,"xn--lrdal-sra.no":true,"lodingen.no":true,"xn--ldingen-q1a.no":true,"lorenskog.no":true,"xn--lrenskog-54a.no":true,"loten.no":true,"xn--lten-gra.no":true,"malvik.no":true,"masoy.no":true,"xn--msy-ula0h.no":true,"muosat.no":true,"xn--muost-0qa.no":true,"mandal.no":true,"marker.no":true,"marnardal.no":true,"masfjorden.no":true,"meland.no":true,"meldal.no":true,"melhus.no":true,"meloy.no":true,"xn--mely-ira.no":true,"meraker.no":true,"xn--merker-kua.no":true,"moareke.no":true,"xn--moreke-jua.no":true,"midsund.no":true,"midtre-gauldal.no":true,"modalen.no":true,"modum.no":true,"molde.no":true,"moskenes.no":true,"moss.no":true,"mosvik.no":true,"malselv.no":true,"xn--mlselv-iua.no":true,"malatvuopmi.no":true,"xn--mlatvuopmi-s4a.no":true,"namdalseid.no":true,"aejrie.no":true,"namsos.no":true,"namsskogan.no":true,"naamesjevuemie.no":true,"xn--nmesjevuemie-tcba.no":true,"laakesvuemie.no":true,"nannestad.no":true,"narvik.no":true,"narviika.no":true,"naustdal.no":true,"nedre-eiker.no":true,"nes.akershus.no":true,"nes.buskerud.no":true,"nesna.no":true,"nesodden.no":true,"nesseby.no":true,"unjarga.no":true,"xn--unjrga-rta.no":true,"nesset.no":true,"nissedal.no":true,"nittedal.no":true,"nord-aurdal.no":true,"nord-fron.no":true,"nord-odal.no":true,"norddal.no":true,"nordkapp.no":true,"davvenjarga.no":true,"xn--davvenjrga-y4a.no":true,"nordre-land.no":true,"nordreisa.no":true,"raisa.no":true,"xn--risa-5na.no":true,"nore-og-uvdal.no":true,"notodden.no":true,"naroy.no":true,"xn--nry-yla5g.no":true,"notteroy.no":true,"xn--nttery-byae.no":true,"odda.no":true,"oksnes.no":true,"xn--ksnes-uua.no":true,"oppdal.no":true,"oppegard.no":true,"xn--oppegrd-ixa.no":true,"orkdal.no":true,"orland.no":true,"xn--rland-uua.no":true,"orskog.no":true,"xn--rskog-uua.no":true,"orsta.no":true,"xn--rsta-fra.no":true,"os.hedmark.no":true,"os.hordaland.no":true,"osen.no":true,"osteroy.no":true,"xn--ostery-fya.no":true,"ostre-toten.no":true,"xn--stre-toten-zcb.no":true,"overhalla.no":true,"ovre-eiker.no":true,"xn--vre-eiker-k8a.no":true,"oyer.no":true,"xn--yer-zna.no":true,"oygarden.no":true,"xn--ygarden-p1a.no":true,"oystre-slidre.no":true,"xn--ystre-slidre-ujb.no":true,"porsanger.no":true,"porsangu.no":true,"xn--porsgu-sta26f.no":true,"porsgrunn.no":true,"radoy.no":true,"xn--rady-ira.no":true,"rakkestad.no":true,"rana.no":true,"ruovat.no":true,"randaberg.no":true,"rauma.no":true,"rendalen.no":true,"rennebu.no":true,"rennesoy.no":true,"xn--rennesy-v1a.no":true,"rindal.no":true,"ringebu.no":true,"ringerike.no":true,"ringsaker.no":true,"rissa.no":true,"risor.no":true,"xn--risr-ira.no":true,"roan.no":true,"rollag.no":true,"rygge.no":true,"ralingen.no":true,"xn--rlingen-mxa.no":true,"rodoy.no":true,"xn--rdy-0nab.no":true,"romskog.no":true,"xn--rmskog-bya.no":true,"roros.no":true,"xn--rros-gra.no":true,"rost.no":true,"xn--rst-0na.no":true,"royken.no":true,"xn--ryken-vua.no":true,"royrvik.no":true,"xn--ryrvik-bya.no":true,"rade.no":true,"xn--rde-ula.no":true,"salangen.no":true,"siellak.no":true,"saltdal.no":true,"salat.no":true,"xn--slt-elab.no":true,"xn--slat-5na.no":true,"samnanger.no":true,"sande.more-og-romsdal.no":true,"sande.xn--mre-og-romsdal-qqb.no":true,"sande.vestfold.no":true,"sandefjord.no":true,"sandnes.no":true,"sandoy.no":true,"xn--sandy-yua.no":true,"sarpsborg.no":true,"sauda.no":true,"sauherad.no":true,"sel.no":true,"selbu.no":true,"selje.no":true,"seljord.no":true,"sigdal.no":true,"siljan.no":true,"sirdal.no":true,"skaun.no":true,"skedsmo.no":true,"ski.no":true,"skien.no":true,"skiptvet.no":true,"skjervoy.no":true,"xn--skjervy-v1a.no":true,"skierva.no":true,"xn--skierv-uta.no":true,"skjak.no":true,"xn--skjk-soa.no":true,"skodje.no":true,"skanland.no":true,"xn--sknland-fxa.no":true,"skanit.no":true,"xn--sknit-yqa.no":true,"smola.no":true,"xn--smla-hra.no":true,"snillfjord.no":true,"snasa.no":true,"xn--snsa-roa.no":true,"snoasa.no":true,"snaase.no":true,"xn--snase-nra.no":true,"sogndal.no":true,"sokndal.no":true,"sola.no":true,"solund.no":true,"songdalen.no":true,"sortland.no":true,"spydeberg.no":true,"stange.no":true,"stavanger.no":true,"steigen.no":true,"steinkjer.no":true,"stjordal.no":true,"xn--stjrdal-s1a.no":true,"stokke.no":true,"stor-elvdal.no":true,"stord.no":true,"stordal.no":true,"storfjord.no":true,"omasvuotna.no":true,"strand.no":true,"stranda.no":true,"stryn.no":true,"sula.no":true,"suldal.no":true,"sund.no":true,"sunndal.no":true,"surnadal.no":true,"sveio.no":true,"svelvik.no":true,"sykkylven.no":true,"sogne.no":true,"xn--sgne-gra.no":true,"somna.no":true,"xn--smna-gra.no":true,"sondre-land.no":true,"xn--sndre-land-0cb.no":true,"sor-aurdal.no":true,"xn--sr-aurdal-l8a.no":true,"sor-fron.no":true,"xn--sr-fron-q1a.no":true,"sor-odal.no":true,"xn--sr-odal-q1a.no":true,"sor-varanger.no":true,"xn--sr-varanger-ggb.no":true,"matta-varjjat.no":true,"xn--mtta-vrjjat-k7af.no":true,"sorfold.no":true,"xn--srfold-bya.no":true,"sorreisa.no":true,"xn--srreisa-q1a.no":true,"sorum.no":true,"xn--srum-gra.no":true,"tana.no":true,"deatnu.no":true,"time.no":true,"tingvoll.no":true,"tinn.no":true,"tjeldsund.no":true,"dielddanuorri.no":true,"tjome.no":true,"xn--tjme-hra.no":true,"tokke.no":true,"tolga.no":true,"torsken.no":true,"tranoy.no":true,"xn--trany-yua.no":true,"tromso.no":true,"xn--troms-zua.no":true,"tromsa.no":true,"romsa.no":true,"trondheim.no":true,"troandin.no":true,"trysil.no":true,"trana.no":true,"xn--trna-woa.no":true,"trogstad.no":true,"xn--trgstad-r1a.no":true,"tvedestrand.no":true,"tydal.no":true,"tynset.no":true,"tysfjord.no":true,"divtasvuodna.no":true,"divttasvuotna.no":true,"tysnes.no":true,"tysvar.no":true,"xn--tysvr-vra.no":true,"tonsberg.no":true,"xn--tnsberg-q1a.no":true,"ullensaker.no":true,"ullensvang.no":true,"ulvik.no":true,"utsira.no":true,"vadso.no":true,"xn--vads-jra.no":true,"cahcesuolo.no":true,"xn--hcesuolo-7ya35b.no":true,"vaksdal.no":true,"valle.no":true,"vang.no":true,"vanylven.no":true,"vardo.no":true,"xn--vard-jra.no":true,"varggat.no":true,"xn--vrggt-xqad.no":true,"vefsn.no":true,"vaapste.no":true,"vega.no":true,"vegarshei.no":true,"xn--vegrshei-c0a.no":true,"vennesla.no":true,"verdal.no":true,"verran.no":true,"vestby.no":true,"vestnes.no":true,"vestre-slidre.no":true,"vestre-toten.no":true,"vestvagoy.no":true,"xn--vestvgy-ixa6o.no":true,"vevelstad.no":true,"vik.no":true,"vikna.no":true,"vindafjord.no":true,"volda.no":true,"voss.no":true,"varoy.no":true,"xn--vry-yla5g.no":true,"vagan.no":true,"xn--vgan-qoa.no":true,"voagat.no":true,"vagsoy.no":true,"xn--vgsy-qoa0j.no":true,"vaga.no":true,"xn--vg-yiab.no":true,"valer.ostfold.no":true,"xn--vler-qoa.xn--stfold-9xa.no":true,"valer.hedmark.no":true,"xn--vler-qoa.hedmark.no":true,"*.np":true,nr:true,"biz.nr":true,"info.nr":true,"gov.nr":true,"edu.nr":true,"org.nr":true,"net.nr":true,"com.nr":true,nu:true,"*.nz":true,"*.om":true,"mediaphone.om":false,"nawrastelecom.om":false,"nawras.om":false,"omanmobile.om":false,"omanpost.om":false,"omantel.om":false,"rakpetroleum.om":false,"siemens.om":false,"songfest.om":false,"statecouncil.om":false,org:true,pa:true,"ac.pa":true,"gob.pa":true,"com.pa":true,"org.pa":true,"sld.pa":true,"edu.pa":true,"net.pa":true,"ing.pa":true,"abo.pa":true,"med.pa":true,"nom.pa":true,pe:true,"edu.pe":true,"gob.pe":true,"nom.pe":true,"mil.pe":true,"org.pe":true,"com.pe":true,"net.pe":true,pf:true,"com.pf":true,"org.pf":true,"edu.pf":true,"*.pg":true,ph:true,"com.ph":true,"net.ph":true,"org.ph":true,"gov.ph":true,"edu.ph":true,"ngo.ph":true,"mil.ph":true,"i.ph":true,pk:true,"com.pk":true,"net.pk":true,"edu.pk":true,"org.pk":true,"fam.pk":true,"biz.pk":true,"web.pk":true,"gov.pk":true,"gob.pk":true,"gok.pk":true,"gon.pk":true,"gop.pk":true,"gos.pk":true,"info.pk":true,pl:true,"aid.pl":true,"agro.pl":true,"atm.pl":true,"auto.pl":true,"biz.pl":true,"com.pl":true,"edu.pl":true,"gmina.pl":true,"gsm.pl":true,"info.pl":true,"mail.pl":true,"miasta.pl":true,"media.pl":true,"mil.pl":true,"net.pl":true,"nieruchomosci.pl":true,"nom.pl":true,"org.pl":true,"pc.pl":true,"powiat.pl":true,"priv.pl":true,"realestate.pl":true,"rel.pl":true,"sex.pl":true,"shop.pl":true,"sklep.pl":true,"sos.pl":true,"szkola.pl":true,"targi.pl":true,"tm.pl":true,"tourism.pl":true,"travel.pl":true,"turystyka.pl":true,"6bone.pl":true,"art.pl":true,"mbone.pl":true,"gov.pl":true,"uw.gov.pl":true,"um.gov.pl":true,"ug.gov.pl":true,"upow.gov.pl":true,"starostwo.gov.pl":true,"so.gov.pl":true,"sr.gov.pl":true,"po.gov.pl":true,"pa.gov.pl":true,"ngo.pl":true,"irc.pl":true,"usenet.pl":true,"augustow.pl":true,"babia-gora.pl":true,"bedzin.pl":true,"beskidy.pl":true,"bialowieza.pl":true,"bialystok.pl":true,"bielawa.pl":true,"bieszczady.pl":true,"boleslawiec.pl":true,"bydgoszcz.pl":true,"bytom.pl":true,"cieszyn.pl":true,"czeladz.pl":true,"czest.pl":true,"dlugoleka.pl":true,"elblag.pl":true,"elk.pl":true,"glogow.pl":true,"gniezno.pl":true,"gorlice.pl":true,"grajewo.pl":true,"ilawa.pl":true,"jaworzno.pl":true,"jelenia-gora.pl":true,"jgora.pl":true,"kalisz.pl":true,"kazimierz-dolny.pl":true,"karpacz.pl":true,"kartuzy.pl":true,"kaszuby.pl":true,"katowice.pl":true,"kepno.pl":true,"ketrzyn.pl":true,"klodzko.pl":true,"kobierzyce.pl":true,"kolobrzeg.pl":true,"konin.pl":true,"konskowola.pl":true,"kutno.pl":true,"lapy.pl":true,"lebork.pl":true,"legnica.pl":true,"lezajsk.pl":true,"limanowa.pl":true,"lomza.pl":true,"lowicz.pl":true,"lubin.pl":true,"lukow.pl":true,"malbork.pl":true,"malopolska.pl":true,"mazowsze.pl":true,"mazury.pl":true,"mielec.pl":true,"mielno.pl":true,"mragowo.pl":true,"naklo.pl":true,"nowaruda.pl":true,"nysa.pl":true,"olawa.pl":true,"olecko.pl":true,"olkusz.pl":true,"olsztyn.pl":true,"opoczno.pl":true,"opole.pl":true,"ostroda.pl":true,"ostroleka.pl":true,"ostrowiec.pl":true,"ostrowwlkp.pl":true,"pila.pl":true,"pisz.pl":true,"podhale.pl":true,"podlasie.pl":true,"polkowice.pl":true,"pomorze.pl":true,"pomorskie.pl":true,"prochowice.pl":true,"pruszkow.pl":true,"przeworsk.pl":true,"pulawy.pl":true,"radom.pl":true,"rawa-maz.pl":true,"rybnik.pl":true,"rzeszow.pl":true,"sanok.pl":true,"sejny.pl":true,"siedlce.pl":true,"slask.pl":true,"slupsk.pl":true,"sosnowiec.pl":true,"stalowa-wola.pl":true,"skoczow.pl":true,"starachowice.pl":true,"stargard.pl":true,"suwalki.pl":true,"swidnica.pl":true,"swiebodzin.pl":true,"swinoujscie.pl":true,"szczecin.pl":true,"szczytno.pl":true,"tarnobrzeg.pl":true,"tgory.pl":true,"turek.pl":true,"tychy.pl":true,"ustka.pl":true,"walbrzych.pl":true,"warmia.pl":true,"warszawa.pl":true,"waw.pl":true,"wegrow.pl":true,"wielun.pl":true,"wlocl.pl":true,"wloclawek.pl":true,"wodzislaw.pl":true,"wolomin.pl":true,"wroclaw.pl":true,"zachpomor.pl":true,"zagan.pl":true,"zarow.pl":true,"zgora.pl":true,"zgorzelec.pl":true,"gda.pl":true,"gdansk.pl":true,"gdynia.pl":true,"med.pl":true,"sopot.pl":true,"gliwice.pl":true,"krakow.pl":true,"poznan.pl":true,"wroc.pl":true,"zakopane.pl":true,pm:true,pn:true,"gov.pn":true,"co.pn":true,"org.pn":true,"edu.pn":true,"net.pn":true,pr:true,"com.pr":true,"net.pr":true,"org.pr":true,"gov.pr":true,"edu.pr":true,"isla.pr":true,"pro.pr":true,"biz.pr":true,"info.pr":true,"name.pr":true,"est.pr":true,"prof.pr":true,"ac.pr":true,pro:true,"aca.pro":true,"bar.pro":true,"cpa.pro":true,"jur.pro":true,"law.pro":true,"med.pro":true,"eng.pro":true,ps:true,"edu.ps":true,"gov.ps":true,"sec.ps":true,"plo.ps":true,"com.ps":true,"org.ps":true,"net.ps":true,pt:true,"net.pt":true,"gov.pt":true,"org.pt":true,"edu.pt":true,"int.pt":true,"publ.pt":true,"com.pt":true,"nome.pt":true,pw:true,"co.pw":true,"ne.pw":true,"or.pw":true,"ed.pw":true,"go.pw":true,"belau.pw":true,"*.py":true,qa:true,"com.qa":true,"edu.qa":true,"gov.qa":true,"mil.qa":true,"name.qa":true,"net.qa":true,"org.qa":true,"sch.qa":true,re:true,"com.re":true,"asso.re":true,"nom.re":true,ro:true,"com.ro":true,"org.ro":true,"tm.ro":true,"nt.ro":true,"nom.ro":true,"info.ro":true,"rec.ro":true,"arts.ro":true,"firm.ro":true,"store.ro":true,"www.ro":true,rs:true,"co.rs":true,"org.rs":true,"edu.rs":true,"ac.rs":true,"gov.rs":true,"in.rs":true,ru:true,"ac.ru":true,"com.ru":true,"edu.ru":true,"int.ru":true,"net.ru":true,"org.ru":true,"pp.ru":true,"adygeya.ru":true,"altai.ru":true,"amur.ru":true,"arkhangelsk.ru":true,"astrakhan.ru":true,"bashkiria.ru":true,"belgorod.ru":true,"bir.ru":true,"bryansk.ru":true,"buryatia.ru":true,"cbg.ru":true,"chel.ru":true,"chelyabinsk.ru":true,"chita.ru":true,"chukotka.ru":true,"chuvashia.ru":true,"dagestan.ru":true,"dudinka.ru":true,"e-burg.ru":true,"grozny.ru":true,"irkutsk.ru":true,"ivanovo.ru":true,"izhevsk.ru":true,"jar.ru":true,"joshkar-ola.ru":true,"kalmykia.ru":true,"kaluga.ru":true,"kamchatka.ru":true,"karelia.ru":true,"kazan.ru":true,"kchr.ru":true,"kemerovo.ru":true,"khabarovsk.ru":true,"khakassia.ru":true,"khv.ru":true,"kirov.ru":true,"koenig.ru":true,"komi.ru":true,"kostroma.ru":true,"krasnoyarsk.ru":true,"kuban.ru":true,"kurgan.ru":true,"kursk.ru":true,"lipetsk.ru":true,"magadan.ru":true,"mari.ru":true,"mari-el.ru":true,"marine.ru":true,"mordovia.ru":true,"mosreg.ru":true,"msk.ru":true,"murmansk.ru":true,"nalchik.ru":true,"nnov.ru":true,"nov.ru":true,"novosibirsk.ru":true,"nsk.ru":true,"omsk.ru":true,"orenburg.ru":true,"oryol.ru":true,"palana.ru":true,"penza.ru":true,"perm.ru":true,"pskov.ru":true,"ptz.ru":true,"rnd.ru":true,"ryazan.ru":true,"sakhalin.ru":true,"samara.ru":true,"saratov.ru":true,"simbirsk.ru":true,"smolensk.ru":true,"spb.ru":true,"stavropol.ru":true,"stv.ru":true,"surgut.ru":true,"tambov.ru":true,"tatarstan.ru":true,"tom.ru":true,"tomsk.ru":true,"tsaritsyn.ru":true,"tsk.ru":true,"tula.ru":true,"tuva.ru":true,"tver.ru":true,"tyumen.ru":true,"udm.ru":true,"udmurtia.ru":true,"ulan-ude.ru":true,"vladikavkaz.ru":true,"vladimir.ru":true,"vladivostok.ru":true,"volgograd.ru":true,"vologda.ru":true,"voronezh.ru":true,"vrn.ru":true,"vyatka.ru":true,"yakutia.ru":true,"yamal.ru":true,"yaroslavl.ru":true,"yekaterinburg.ru":true,"yuzhno-sakhalinsk.ru":true,"amursk.ru":true,"baikal.ru":true,"cmw.ru":true,"fareast.ru":true,"jamal.ru":true,"kms.ru":true,"k-uralsk.ru":true,"kustanai.ru":true,"kuzbass.ru":true,"magnitka.ru":true,"mytis.ru":true,"nakhodka.ru":true,"nkz.ru":true,"norilsk.ru":true,"oskol.ru":true,"pyatigorsk.ru":true,"rubtsovsk.ru":true,"snz.ru":true,"syzran.ru":true,"vdonsk.ru":true,"zgrad.ru":true,"gov.ru":true,"mil.ru":true,"test.ru":true,rw:true,"gov.rw":true,"net.rw":true,"edu.rw":true,"ac.rw":true,"com.rw":true,"co.rw":true,"int.rw":true,"mil.rw":true,"gouv.rw":true,sa:true,"com.sa":true,"net.sa":true,"org.sa":true,"gov.sa":true,"med.sa":true,"pub.sa":true,"edu.sa":true,"sch.sa":true,sb:true,"com.sb":true,"edu.sb":true,"gov.sb":true,"net.sb":true,"org.sb":true,sc:true,"com.sc":true,"gov.sc":true,"net.sc":true,"org.sc":true,"edu.sc":true,sd:true,"com.sd":true,"net.sd":true,"org.sd":true,"edu.sd":true,"med.sd":true,"gov.sd":true,"info.sd":true,se:true,"a.se":true,"ac.se":true,"b.se":true,"bd.se":true,"brand.se":true,"c.se":true,"d.se":true,"e.se":true,"f.se":true,"fh.se":true,"fhsk.se":true,"fhv.se":true,"g.se":true,"h.se":true,"i.se":true,"k.se":true,"komforb.se":true,"kommunalforbund.se":true,"komvux.se":true,"l.se":true,"lanbib.se":true,"m.se":true,"n.se":true,"naturbruksgymn.se":true,"o.se":true,"org.se":true,"p.se":true,"parti.se":true,"pp.se":true,"press.se":true,"r.se":true,"s.se":true,"sshn.se":true,"t.se":true,"tm.se":true,"u.se":true,"w.se":true,"x.se":true,"y.se":true,"z.se":true,sg:true,"com.sg":true,"net.sg":true,"org.sg":true,"gov.sg":true,"edu.sg":true,"per.sg":true,sh:true,si:true,sk:true,sl:true,"com.sl":true,"net.sl":true,"edu.sl":true,"gov.sl":true,"org.sl":true,sm:true,sn:true,"art.sn":true,"com.sn":true,"edu.sn":true,"gouv.sn":true,"org.sn":true,"perso.sn":true,"univ.sn":true,so:true,"com.so":true,"net.so":true,"org.so":true,sr:true,st:true,"co.st":true,"com.st":true,"consulado.st":true,"edu.st":true,"embaixada.st":true,"gov.st":true,"mil.st":true,"net.st":true,"org.st":true,"principe.st":true,"saotome.st":true,"store.st":true,su:true,"*.sv":true,sy:true,"edu.sy":true,"gov.sy":true,"net.sy":true,"mil.sy":true,"com.sy":true,"org.sy":true,sz:true,"co.sz":true,"ac.sz":true,"org.sz":true,tc:true,td:true,tel:true,tf:true,tg:true,th:true,"ac.th":true,"co.th":true,"go.th":true,"in.th":true,"mi.th":true,"net.th":true,"or.th":true,tj:true,"ac.tj":true,"biz.tj":true,"co.tj":true,"com.tj":true,"edu.tj":true,"go.tj":true,"gov.tj":true,"int.tj":true,"mil.tj":true,"name.tj":true,"net.tj":true,"nic.tj":true,"org.tj":true,"test.tj":true,"web.tj":true,tk:true,tl:true,"gov.tl":true,tm:true,tn:true,"com.tn":true,"ens.tn":true,"fin.tn":true,"gov.tn":true,"ind.tn":true,"intl.tn":true,"nat.tn":true,"net.tn":true,"org.tn":true,"info.tn":true,"perso.tn":true,"tourism.tn":true,"edunet.tn":true,"rnrt.tn":true,"rns.tn":true,"rnu.tn":true,"mincom.tn":true,"agrinet.tn":true,"defense.tn":true,"turen.tn":true,to:true,"com.to":true,"gov.to":true,"net.to":true,"org.to":true,"edu.to":true,"mil.to":true,"*.tr":true,"nic.tr":false,"gov.nc.tr":true,travel:true,tt:true,"co.tt":true,"com.tt":true,"org.tt":true,"net.tt":true,"biz.tt":true,"info.tt":true,"pro.tt":true,"int.tt":true,"coop.tt":true,"jobs.tt":true,"mobi.tt":true,"travel.tt":true,"museum.tt":true,"aero.tt":true,"name.tt":true,"gov.tt":true, | |
"edu.tt":true,tv:true,tw:true,"edu.tw":true,"gov.tw":true,"mil.tw":true,"com.tw":true,"net.tw":true,"org.tw":true,"idv.tw":true,"game.tw":true,"ebiz.tw":true,"club.tw":true,"xn--zf0ao64a.tw":true,"xn--uc0atv.tw":true,"xn--czrw28b.tw":true,"ac.tz":true,"co.tz":true,"go.tz":true,"mil.tz":true,"ne.tz":true,"or.tz":true,"sc.tz":true,ua:true,"com.ua":true,"edu.ua":true,"gov.ua":true,"in.ua":true,"net.ua":true,"org.ua":true,"cherkassy.ua":true,"chernigov.ua":true,"chernovtsy.ua":true,"ck.ua":true,"cn.ua":true,"crimea.ua":true,"cv.ua":true,"dn.ua":true,"dnepropetrovsk.ua":true,"donetsk.ua":true,"dp.ua":true,"if.ua":true,"ivano-frankivsk.ua":true,"kh.ua":true,"kharkov.ua":true,"kherson.ua":true,"khmelnitskiy.ua":true,"kiev.ua":true,"kirovograd.ua":true,"km.ua":true,"kr.ua":true,"ks.ua":true,"kv.ua":true,"lg.ua":true,"lugansk.ua":true,"lutsk.ua":true,"lviv.ua":true,"mk.ua":true,"nikolaev.ua":true,"od.ua":true,"odessa.ua":true,"pl.ua":true,"poltava.ua":true,"rovno.ua":true,"rv.ua":true,"sebastopol.ua":true,"sumy.ua":true,"te.ua":true,"ternopil.ua":true,"uzhgorod.ua":true,"vinnica.ua":true,"vn.ua":true,"zaporizhzhe.ua":true,"zp.ua":true,"zhitomir.ua":true,"zt.ua":true,"co.ua":true,"pp.ua":true,ug:true,"co.ug":true,"ac.ug":true,"sc.ug":true,"go.ug":true,"ne.ug":true,"or.ug":true,"*.uk":true,"*.sch.uk":true,"bl.uk":false,"british-library.uk":false,"icnet.uk":false,"jet.uk":false,"mod.uk":false,"nel.uk":false,"nhs.uk":false,"nic.uk":false,"nls.uk":false,"national-library-scotland.uk":false,"parliament.uk":false,"police.uk":false,us:true,"dni.us":true,"fed.us":true,"isa.us":true,"kids.us":true,"nsn.us":true,"ak.us":true,"al.us":true,"ar.us":true,"as.us":true,"az.us":true,"ca.us":true,"co.us":true,"ct.us":true,"dc.us":true,"de.us":true,"fl.us":true,"ga.us":true,"gu.us":true,"hi.us":true,"ia.us":true,"id.us":true,"il.us":true,"in.us":true,"ks.us":true,"ky.us":true,"la.us":true,"ma.us":true,"md.us":true,"me.us":true,"mi.us":true,"mn.us":true,"mo.us":true,"ms.us":true,"mt.us":true,"nc.us":true,"nd.us":true,"ne.us":true,"nh.us":true,"nj.us":true,"nm.us":true,"nv.us":true,"ny.us":true,"oh.us":true,"ok.us":true,"or.us":true,"pa.us":true,"pr.us":true,"ri.us":true,"sc.us":true,"sd.us":true,"tn.us":true,"tx.us":true,"ut.us":true,"vi.us":true,"vt.us":true,"va.us":true,"wa.us":true,"wi.us":true,"wv.us":true,"wy.us":true,"k12.ak.us":true,"k12.al.us":true,"k12.ar.us":true,"k12.as.us":true,"k12.az.us":true,"k12.ca.us":true,"k12.co.us":true,"k12.ct.us":true,"k12.dc.us":true,"k12.de.us":true,"k12.fl.us":true,"k12.ga.us":true,"k12.gu.us":true,"k12.ia.us":true,"k12.id.us":true,"k12.il.us":true,"k12.in.us":true,"k12.ks.us":true,"k12.ky.us":true,"k12.la.us":true,"k12.ma.us":true,"k12.md.us":true,"k12.me.us":true,"k12.mi.us":true,"k12.mn.us":true,"k12.mo.us":true,"k12.ms.us":true,"k12.mt.us":true,"k12.nc.us":true,"k12.nd.us":true,"k12.ne.us":true,"k12.nh.us":true,"k12.nj.us":true,"k12.nm.us":true,"k12.nv.us":true,"k12.ny.us":true,"k12.oh.us":true,"k12.ok.us":true,"k12.or.us":true,"k12.pa.us":true,"k12.pr.us":true,"k12.ri.us":true,"k12.sc.us":true,"k12.sd.us":true,"k12.tn.us":true,"k12.tx.us":true,"k12.ut.us":true,"k12.vi.us":true,"k12.vt.us":true,"k12.va.us":true,"k12.wa.us":true,"k12.wi.us":true,"k12.wv.us":true,"k12.wy.us":true,"cc.ak.us":true,"cc.al.us":true,"cc.ar.us":true,"cc.as.us":true,"cc.az.us":true,"cc.ca.us":true,"cc.co.us":true,"cc.ct.us":true,"cc.dc.us":true,"cc.de.us":true,"cc.fl.us":true,"cc.ga.us":true,"cc.gu.us":true,"cc.hi.us":true,"cc.ia.us":true,"cc.id.us":true,"cc.il.us":true,"cc.in.us":true,"cc.ks.us":true,"cc.ky.us":true,"cc.la.us":true,"cc.ma.us":true,"cc.md.us":true,"cc.me.us":true,"cc.mi.us":true,"cc.mn.us":true,"cc.mo.us":true,"cc.ms.us":true,"cc.mt.us":true,"cc.nc.us":true,"cc.nd.us":true,"cc.ne.us":true,"cc.nh.us":true,"cc.nj.us":true,"cc.nm.us":true,"cc.nv.us":true,"cc.ny.us":true,"cc.oh.us":true,"cc.ok.us":true,"cc.or.us":true,"cc.pa.us":true,"cc.pr.us":true,"cc.ri.us":true,"cc.sc.us":true,"cc.sd.us":true,"cc.tn.us":true,"cc.tx.us":true,"cc.ut.us":true,"cc.vi.us":true,"cc.vt.us":true,"cc.va.us":true,"cc.wa.us":true,"cc.wi.us":true,"cc.wv.us":true,"cc.wy.us":true,"lib.ak.us":true,"lib.al.us":true,"lib.ar.us":true,"lib.as.us":true,"lib.az.us":true,"lib.ca.us":true,"lib.co.us":true,"lib.ct.us":true,"lib.dc.us":true,"lib.de.us":true,"lib.fl.us":true,"lib.ga.us":true,"lib.gu.us":true,"lib.hi.us":true,"lib.ia.us":true,"lib.id.us":true,"lib.il.us":true,"lib.in.us":true,"lib.ks.us":true,"lib.ky.us":true,"lib.la.us":true,"lib.ma.us":true,"lib.md.us":true,"lib.me.us":true,"lib.mi.us":true,"lib.mn.us":true,"lib.mo.us":true,"lib.ms.us":true,"lib.mt.us":true,"lib.nc.us":true,"lib.nd.us":true,"lib.ne.us":true,"lib.nh.us":true,"lib.nj.us":true,"lib.nm.us":true,"lib.nv.us":true,"lib.ny.us":true,"lib.oh.us":true,"lib.ok.us":true,"lib.or.us":true,"lib.pa.us":true,"lib.pr.us":true,"lib.ri.us":true,"lib.sc.us":true,"lib.sd.us":true,"lib.tn.us":true,"lib.tx.us":true,"lib.ut.us":true,"lib.vi.us":true,"lib.vt.us":true,"lib.va.us":true,"lib.wa.us":true,"lib.wi.us":true,"lib.wv.us":true,"lib.wy.us":true,"pvt.k12.ma.us":true,"chtr.k12.ma.us":true,"paroch.k12.ma.us":true,"*.uy":true,uz:true,"com.uz":true,"co.uz":true,va:true,vc:true,"com.vc":true,"net.vc":true,"org.vc":true,"gov.vc":true,"mil.vc":true,"edu.vc":true,"*.ve":true,vg:true,vi:true,"co.vi":true,"com.vi":true,"k12.vi":true,"net.vi":true,"org.vi":true,vn:true,"com.vn":true,"net.vn":true,"org.vn":true,"edu.vn":true,"gov.vn":true,"int.vn":true,"ac.vn":true,"biz.vn":true,"info.vn":true,"name.vn":true,"pro.vn":true,"health.vn":true,vu:true,wf:true,ws:true,"com.ws":true,"net.ws":true,"org.ws":true,"gov.ws":true,"edu.ws":true,yt:true,"xn--mgbaam7a8h":true,"xn--54b7fta0cc":true,"xn--fiqs8s":true,"xn--fiqz9s":true,"xn--lgbbat1ad8j":true,"xn--wgbh1c":true,"xn--node":true,"xn--j6w193g":true,"xn--h2brj9c":true,"xn--mgbbh1a71e":true,"xn--fpcrj9c3d":true,"xn--gecrj9c":true,"xn--s9brj9c":true,"xn--45brj9c":true,"xn--xkc2dl3a5ee0h":true,"xn--mgba3a4f16a":true,"xn--mgba3a4fra":true,"xn--mgbayh7gpa":true,"xn--3e0b707e":true,"xn--fzc2c9e2c":true,"xn--xkc2al3hye2a":true,"xn--mgbc0a9azcg":true,"xn--mgb9awbf":true,"xn--ygbi2ammx":true,"xn--90a3ac":true,"xn--p1ai":true,"xn--wgbl6a":true,"xn--mgberp4a5d4ar":true,"xn--mgberp4a5d4a87g":true,"xn--mgbqly7c0a67fbc":true,"xn--mgbqly7cvafr":true,"xn--ogbpf8fl":true,"xn--mgbtf8fl":true,"xn--yfro4i67o":true,"xn--clchc0ea0b2g2a9gcd":true,"xn--o3cw4h":true,"xn--pgbs0dh":true,"xn--kpry57d":true,"xn--kprw13d":true,"xn--nnx388a":true,"xn--j1amh":true,"xn--mgb2ddes":true,xxx:true,"*.ye":true,"*.za":true,"*.zm":true,"*.zw":true,"biz.at":true,"info.at":true,"priv.at":true,"co.ca":true,"ar.com":true,"br.com":true,"cn.com":true,"de.com":true,"eu.com":true,"gb.com":true,"gr.com":true,"hu.com":true,"jpn.com":true,"kr.com":true,"no.com":true,"qc.com":true,"ru.com":true,"sa.com":true,"se.com":true,"uk.com":true,"us.com":true,"uy.com":true,"za.com":true,"gb.net":true,"jp.net":true,"se.net":true,"uk.net":true,"ae.org":true,"us.org":true,"com.de":true,"operaunite.com":true,"appspot.com":true,"iki.fi":true,"c.la":true,"za.net":true,"za.org":true,"co.nl":true,"co.no":true,"co.pl":true,"dyndns-at-home.com":true,"dyndns-at-work.com":true,"dyndns-blog.com":true,"dyndns-free.com":true,"dyndns-home.com":true,"dyndns-ip.com":true,"dyndns-mail.com":true,"dyndns-office.com":true,"dyndns-pics.com":true,"dyndns-remote.com":true,"dyndns-server.com":true,"dyndns-web.com":true,"dyndns-wiki.com":true,"dyndns-work.com":true,"dyndns.biz":true,"dyndns.info":true,"dyndns.org":true,"dyndns.tv":true,"at-band-camp.net":true,"ath.cx":true,"barrel-of-knowledge.info":true,"barrell-of-knowledge.info":true,"better-than.tv":true,"blogdns.com":true,"blogdns.net":true,"blogdns.org":true,"blogsite.org":true,"boldlygoingnowhere.org":true,"broke-it.net":true,"buyshouses.net":true,"cechire.com":true,"dnsalias.com":true,"dnsalias.net":true,"dnsalias.org":true,"dnsdojo.com":true,"dnsdojo.net":true,"dnsdojo.org":true,"does-it.net":true,"doesntexist.com":true,"doesntexist.org":true,"dontexist.com":true,"dontexist.net":true,"dontexist.org":true,"doomdns.com":true,"doomdns.org":true,"dvrdns.org":true,"dyn-o-saur.com":true,"dynalias.com":true,"dynalias.net":true,"dynalias.org":true,"dynathome.net":true,"dyndns.ws":true,"endofinternet.net":true,"endofinternet.org":true,"endoftheinternet.org":true,"est-a-la-maison.com":true,"est-a-la-masion.com":true,"est-le-patron.com":true,"est-mon-blogueur.com":true,"for-better.biz":true,"for-more.biz":true,"for-our.info":true,"for-some.biz":true,"for-the.biz":true,"forgot.her.name":true,"forgot.his.name":true,"from-ak.com":true,"from-al.com":true,"from-ar.com":true,"from-az.net":true,"from-ca.com":true,"from-co.net":true,"from-ct.com":true,"from-dc.com":true,"from-de.com":true,"from-fl.com":true,"from-ga.com":true,"from-hi.com":true,"from-ia.com":true,"from-id.com":true,"from-il.com":true,"from-in.com":true,"from-ks.com":true,"from-ky.com":true,"from-la.net":true,"from-ma.com":true,"from-md.com":true,"from-me.org":true,"from-mi.com":true,"from-mn.com":true,"from-mo.com":true,"from-ms.com":true,"from-mt.com":true,"from-nc.com":true,"from-nd.com":true,"from-ne.com":true,"from-nh.com":true,"from-nj.com":true,"from-nm.com":true,"from-nv.com":true,"from-ny.net":true,"from-oh.com":true,"from-ok.com":true,"from-or.com":true,"from-pa.com":true,"from-pr.com":true,"from-ri.com":true,"from-sc.com":true,"from-sd.com":true,"from-tn.com":true,"from-tx.com":true,"from-ut.com":true,"from-va.com":true,"from-vt.com":true,"from-wa.com":true,"from-wi.com":true,"from-wv.com":true,"from-wy.com":true,"ftpaccess.cc":true,"fuettertdasnetz.de":true,"game-host.org":true,"game-server.cc":true,"getmyip.com":true,"gets-it.net":true,"go.dyndns.org":true,"gotdns.com":true,"gotdns.org":true,"groks-the.info":true,"groks-this.info":true,"ham-radio-op.net":true,"here-for-more.info":true,"hobby-site.com":true,"hobby-site.org":true,"home.dyndns.org":true,"homedns.org":true,"homeftp.net":true,"homeftp.org":true,"homeip.net":true,"homelinux.com":true,"homelinux.net":true,"homelinux.org":true,"homeunix.com":true,"homeunix.net":true,"homeunix.org":true,"iamallama.com":true,"in-the-band.net":true,"is-a-anarchist.com":true,"is-a-blogger.com":true,"is-a-bookkeeper.com":true,"is-a-bruinsfan.org":true,"is-a-bulls-fan.com":true,"is-a-candidate.org":true,"is-a-caterer.com":true,"is-a-celticsfan.org":true,"is-a-chef.com":true,"is-a-chef.net":true,"is-a-chef.org":true,"is-a-conservative.com":true,"is-a-cpa.com":true,"is-a-cubicle-slave.com":true,"is-a-democrat.com":true,"is-a-designer.com":true,"is-a-doctor.com":true,"is-a-financialadvisor.com":true,"is-a-geek.com":true,"is-a-geek.net":true,"is-a-geek.org":true,"is-a-green.com":true,"is-a-guru.com":true,"is-a-hard-worker.com":true,"is-a-hunter.com":true,"is-a-knight.org":true,"is-a-landscaper.com":true,"is-a-lawyer.com":true,"is-a-liberal.com":true,"is-a-libertarian.com":true,"is-a-linux-user.org":true,"is-a-llama.com":true,"is-a-musician.com":true,"is-a-nascarfan.com":true,"is-a-nurse.com":true,"is-a-painter.com":true,"is-a-patsfan.org":true,"is-a-personaltrainer.com":true,"is-a-photographer.com":true,"is-a-player.com":true,"is-a-republican.com":true,"is-a-rockstar.com":true,"is-a-socialist.com":true,"is-a-soxfan.org":true,"is-a-student.com":true,"is-a-teacher.com":true,"is-a-techie.com":true,"is-a-therapist.com":true,"is-an-accountant.com":true,"is-an-actor.com":true,"is-an-actress.com":true,"is-an-anarchist.com":true,"is-an-artist.com":true,"is-an-engineer.com":true,"is-an-entertainer.com":true,"is-by.us":true,"is-certified.com":true,"is-found.org":true,"is-gone.com":true,"is-into-anime.com":true,"is-into-cars.com":true,"is-into-cartoons.com":true,"is-into-games.com":true,"is-leet.com":true,"is-lost.org":true,"is-not-certified.com":true,"is-saved.org":true,"is-slick.com":true,"is-uberleet.com":true,"is-very-bad.org":true,"is-very-evil.org":true,"is-very-good.org":true,"is-very-nice.org":true,"is-very-sweet.org":true,"is-with-theband.com":true,"isa-geek.com":true,"isa-geek.net":true,"isa-geek.org":true,"isa-hockeynut.com":true,"issmarterthanyou.com":true,"isteingeek.de":true,"istmein.de":true,"kicks-ass.net":true,"kicks-ass.org":true,"knowsitall.info":true,"land-4-sale.us":true,"lebtimnetz.de":true,"leitungsen.de":true,"likes-pie.com":true,"likescandy.com":true,"merseine.nu":true,"mine.nu":true,"misconfused.org":true,"mypets.ws":true,"myphotos.cc":true,"neat-url.com":true,"office-on-the.net":true,"on-the-web.tv":true,"podzone.net":true,"podzone.org":true,"readmyblog.org":true,"saves-the-whales.com":true,"scrapper-site.net":true,"scrapping.cc":true,"selfip.biz":true,"selfip.com":true,"selfip.info":true,"selfip.net":true,"selfip.org":true,"sells-for-less.com":true,"sells-for-u.com":true,"sells-it.net":true,"sellsyourhome.org":true,"servebbs.com":true,"servebbs.net":true,"servebbs.org":true,"serveftp.net":true,"serveftp.org":true,"servegame.org":true,"shacknet.nu":true,"simple-url.com":true,"space-to-rent.com":true,"stuff-4-sale.org":true,"stuff-4-sale.us":true,"teaches-yoga.com":true,"thruhere.net":true,"traeumtgerade.de":true,"webhop.biz":true,"webhop.info":true,"webhop.net":true,"webhop.org":true,"worse-than.tv":true,"writesthisblog.com":true})},{}],269:[function(require,module,exports){"use strict";function Store(){}exports.Store=Store;Store.prototype.synchronous=false;Store.prototype.findCookie=function(domain,path,key,cb){throw new Error("findCookie is not implemented")};Store.prototype.findCookies=function(domain,path,cb){throw new Error("findCookies is not implemented")};Store.prototype.putCookie=function(cookie,cb){throw new Error("putCookie is not implemented")};Store.prototype.updateCookie=function(oldCookie,newCookie,cb){throw new Error("updateCookie is not implemented")};Store.prototype.removeCookie=function(domain,path,key,cb){throw new Error("removeCookie is not implemented")};Store.prototype.removeCookies=function removeCookies(domain,path,cb){throw new Error("removeCookies is not implemented")}},{}],270:[function(require,module,exports){(function(process,Buffer){"use strict";var net=require("net"),tls=require("tls"),http=require("http"),https=require("https"),events=require("events"),assert=require("assert"),util=require("util");exports.httpOverHttp=httpOverHttp;exports.httpsOverHttp=httpsOverHttp;exports.httpOverHttps=httpOverHttps;exports.httpsOverHttps=httpsOverHttps;function httpOverHttp(options){var agent=new TunnelingAgent(options);agent.request=http.request;return agent}function httpsOverHttp(options){var agent=new TunnelingAgent(options);agent.request=http.request;agent.createSocket=createSecureSocket;return agent}function httpOverHttps(options){var agent=new TunnelingAgent(options);agent.request=https.request;return agent}function httpsOverHttps(options){var agent=new TunnelingAgent(options);agent.request=https.request;agent.createSocket=createSecureSocket;return agent}function TunnelingAgent(options){var self=this;self.options=options||{};self.proxyOptions=self.options.proxy||{};self.maxSockets=self.options.maxSockets||http.Agent.defaultMaxSockets;self.requests=[];self.sockets=[];self.on("free",function onFree(socket,host,port){for(var i=0,len=self.requests.length;i<len;++i){var pending=self.requests[i];if(pending.host===host&&pending.port===port){self.requests.splice(i,1);pending.request.onSocket(socket);return}}socket.destroy();self.removeSocket(socket)})}util.inherits(TunnelingAgent,events.EventEmitter);TunnelingAgent.prototype.addRequest=function addRequest(req,options){var self=this;if(typeof options==="string"){options={host:options,port:arguments[2],path:arguments[3]}}if(self.sockets.length>=this.maxSockets){self.requests.push({host:host,port:port,request:req});return}self.createSocket({host:options.host,port:options.port,request:req},function(socket){socket.on("free",onFree);socket.on("close",onCloseOrRemove);socket.on("agentRemove",onCloseOrRemove);req.onSocket(socket);function onFree(){self.emit("free",socket,options.host,options.port)}function onCloseOrRemove(err){self.removeSocket();socket.removeListener("free",onFree);socket.removeListener("close",onCloseOrRemove);socket.removeListener("agentRemove",onCloseOrRemove)}})};TunnelingAgent.prototype.createSocket=function createSocket(options,cb){var self=this;var placeholder={};self.sockets.push(placeholder);var connectOptions=mergeOptions({},self.proxyOptions,{method:"CONNECT",path:options.host+":"+options.port,agent:false});if(connectOptions.proxyAuth){connectOptions.headers=connectOptions.headers||{};connectOptions.headers["Proxy-Authorization"]="Basic "+new Buffer(connectOptions.proxyAuth).toString("base64")}debug("making CONNECT request");var connectReq=self.request(connectOptions);connectReq.useChunkedEncodingByDefault=false;connectReq.once("response",onResponse);connectReq.once("upgrade",onUpgrade);connectReq.once("connect",onConnect);connectReq.once("error",onError);connectReq.end();function onResponse(res){res.upgrade=true}function onUpgrade(res,socket,head){process.nextTick(function(){onConnect(res,socket,head)})}function onConnect(res,socket,head){connectReq.removeAllListeners();socket.removeAllListeners();if(res.statusCode===200){assert.equal(head.length,0);debug("tunneling connection has established");self.sockets[self.sockets.indexOf(placeholder)]=socket;cb(socket)}else{debug("tunneling socket could not be established, statusCode=%d",res.statusCode);var error=new Error("tunneling socket could not be established, "+"statusCode="+res.statusCode);error.code="ECONNRESET";options.request.emit("error",error);self.removeSocket(placeholder)}}function onError(cause){connectReq.removeAllListeners();debug("tunneling socket could not be established, cause=%s\n",cause.message,cause.stack);var error=new Error("tunneling socket could not be established, "+"cause="+cause.message);error.code="ECONNRESET";options.request.emit("error",error);self.removeSocket(placeholder)}};TunnelingAgent.prototype.removeSocket=function removeSocket(socket){var pos=this.sockets.indexOf(socket);if(pos===-1)return;this.sockets.splice(pos,1);var pending=this.requests.shift();if(pending){this.createSocket(pending,function(socket){pending.request.onSocket(socket)})}};function createSecureSocket(options,cb){var self=this;TunnelingAgent.prototype.createSocket.call(self,options,function(socket){var secureSocket=tls.connect(0,mergeOptions({},self.options,{servername:options.host,socket:socket}));cb(secureSocket)})}function mergeOptions(target){for(var i=1,len=arguments.length;i<len;++i){var overrides=arguments[i];if(typeof overrides==="object"){var keys=Object.keys(overrides);for(var j=0,keyLen=keys.length;j<keyLen;++j){var k=keys[j];if(overrides[k]!==undefined){target[k]=overrides[k]}}}}return target}var debug;if(process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)){debug=function(){var args=Array.prototype.slice.call(arguments);if(typeof args[0]==="string"){args[0]="TUNNEL: "+args[0]}else{args.unshift("TUNNEL:")}console.error.apply(console,args)}}else{debug=function(){}}exports.debug=debug}).call(this,require("_process"),require("buffer").Buffer)},{_process:171,assert:2,buffer:17,events:162,http:163,https:167,net:1,tls:1,util:191}],271:[function(require,module,exports){(function(process,Buffer){"use strict";var http=require("http"),https=require("https"),url=require("url"),util=require("util"),stream=require("stream"),qs=require("qs"),querystring=require("querystring"),zlib=require("zlib"),helpers=require("./lib/helpers"),bl=require("bl"),oauth=require("oauth-sign"),hawk=require("hawk"),aws=require("aws-sign2"),httpSignature=require("http-signature"),uuid=require("node-uuid"),mime=require("mime-types"),tunnel=require("tunnel-agent"),stringstream=require("stringstream"),caseless=require("caseless"),ForeverAgent=require("forever-agent"),FormData=require("form-data"),cookies=require("./lib/cookies"),copy=require("./lib/copy"),debug=require("./lib/debug"),net=require("net"),CombinedStream=require("combined-stream");var safeStringify=helpers.safeStringify,md5=helpers.md5,isReadStream=helpers.isReadStream,toBase64=helpers.toBase64,defer=helpers.defer,globalCookieJar=cookies.jar();var globalPool={},isUrl=/^https?:/;var defaultProxyHeaderWhiteList=["accept","accept-charset","accept-encoding","accept-language","accept-ranges","cache-control","content-encoding","content-language","content-length","content-location","content-md5","content-range","content-type","connection","date","expect","max-forwards","pragma","referer","te","transfer-encoding","user-agent","via"];var defaultProxyHeaderExclusiveList=["proxy-authorization"];function filterForNonReserved(reserved,options){var object={};for(var i in options){var notReserved=reserved.indexOf(i)===-1;if(notReserved){object[i]=options[i]}}return object}function filterOutReservedFunctions(reserved,options){var object={};for(var i in options){var isReserved=!(reserved.indexOf(i)===-1);var isFunction=typeof options[i]==="function";if(!(isReserved&&isFunction)){object[i]=options[i]}}return object}function constructProxyHost(uriObject){var port=uriObject.portA,protocol=uriObject.protocol,proxyHost=uriObject.hostname+":";if(port){proxyHost+=port}else if(protocol==="https:"){proxyHost+="443"}else{proxyHost+="80"}return proxyHost}function constructProxyHeaderWhiteList(headers,proxyHeaderWhiteList){var whiteList=proxyHeaderWhiteList.reduce(function(set,header){set[header.toLowerCase()]=true;return set},{});return Object.keys(headers).filter(function(header){return whiteList[header.toLowerCase()]}).reduce(function(set,header){set[header]=headers[header];return set},{})}function construcTunnelOptions(request){var proxy=request.proxy;var tunnelOptions={proxy:{host:proxy.hostname,port:+proxy.port,proxyAuth:proxy.auth,headers:request.proxyHeaders},rejectUnauthorized:request.rejectUnauthorized,headers:request.headers,ca:request.ca,cert:request.cert,key:request.key};return tunnelOptions}function constructTunnelFnName(uri,proxy){var uriProtocol=uri.protocol==="https:"?"https":"http";var proxyProtocol=proxy.protocol==="https:"?"Https":"Http";return[uriProtocol,proxyProtocol].join("Over")}function getTunnelFn(request){var uri=request.uri;var proxy=request.proxy;var tunnelFnName=constructTunnelFnName(uri,proxy);return tunnel[tunnelFnName]}function getProxyFromURI(uri){var noProxy=process.env.NO_PROXY||process.env.no_proxy||null;if(noProxy==="*"){return null}if(noProxy!==null){var noProxyItem,hostname,port,noProxyItemParts,noProxyHost,noProxyPort,noProxyList;hostname=uri.hostname.replace(/^\.*/,".").toLowerCase();noProxyList=noProxy.split(",");for(var i=0,len=noProxyList.length;i<len;i++){noProxyItem=noProxyList[i].trim().toLowerCase();if(noProxyItem.indexOf(":")>-1){noProxyItemParts=noProxyItem.split(":",2);noProxyHost=noProxyItemParts[0].replace(/^\.*/,".");noProxyPort=noProxyItemParts[1];port=uri.port||(uri.protocol==="https:"?"443":"80");if(port===noProxyPort&&hostname.indexOf(noProxyHost)===hostname.length-noProxyHost.length){return null}}else{noProxyItem=noProxyItem.replace(/^\.*/,".");if(hostname.indexOf(noProxyItem)===hostname.length-noProxyItem.length){return null}}}}if(uri.protocol==="http:"){return process.env.HTTP_PROXY||process.env.http_proxy||null}else if(uri.protocol==="https:"){return process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy||null}return null}function connectionErrorHandler(error){var socket=this;if(socket.res){if(socket.res.request){socket.res.request.emit("error",error)}else{socket.res.emit("error",error)}}else{socket._httpMessage.emit("error",error)}}function requestToJSON(){var self=this;return{uri:self.uri,method:self.method,headers:self.headers}}function responseToJSON(){var self=this;return{statusCode:self.statusCode,body:self.body,headers:self.headers,request:requestToJSON.call(self.request)}}function Request(options){var self=this;stream.Stream.call(self);var reserved=Object.keys(Request.prototype);var nonReserved=filterForNonReserved(reserved,options);stream.Stream.call(self);util._extend(self,nonReserved);options=filterOutReservedFunctions(reserved,options);self.readable=true;self.writable=true;if(typeof options.tunnel==="undefined"){options.tunnel=false}if(options.method){self.explicitMethod=true}self.canTunnel=options.tunnel!==false&&tunnel;self.init(options)}util.inherits(Request,stream.Stream);Request.prototype.setupTunnel=function(){var self=this;if(typeof self.proxy==="string"){self.proxy=url.parse(self.proxy)}if(!self.proxy){return false}if(!self.tunnel&&self.uri.protocol!=="https:"){return false}if(!self.proxyHeaderExclusiveList){self.proxyHeaderExclusiveList=[]}var proxyHeaderExclusiveList=self.proxyHeaderExclusiveList.concat(defaultProxyHeaderExclusiveList);if(!self.proxyHeaderWhiteList){self.proxyHeaderWhiteList=defaultProxyHeaderWhiteList}var proxyHeaderWhiteList=self.proxyHeaderWhiteList.concat(proxyHeaderExclusiveList);var proxyHost=constructProxyHost(self.uri);self.proxyHeaders=constructProxyHeaderWhiteList(self.headers,proxyHeaderWhiteList);self.proxyHeaders.host=proxyHost;proxyHeaderExclusiveList.forEach(self.removeHeader,self);var tunnelFn=getTunnelFn(self);var tunnelOptions=construcTunnelOptions(self);self.agent=tunnelFn(tunnelOptions);self.tunnel=true;return true};Request.prototype.init=function(options){var self=this;if(!options){options={}}self.headers=self.headers?copy(self.headers):{};caseless.httpify(self,self.headers);if(!self.method){self.method=options.method||"GET"}self.localAddress=options.localAddress;if(!self.qsLib){self.qsLib=options.useQuerystring?querystring:qs}debug(options);if(!self.pool&&self.pool!==false){self.pool=globalPool}self.dests=self.dests||[];self.__isRequestRequest=true;if(!self._callback&&self.callback){self._callback=self.callback;self.callback=function(){if(self._callbackCalled){return}self._callbackCalled=true;self._callback.apply(self,arguments)};self.on("error",self.callback.bind());self.on("complete",self.callback.bind(self,null))}if(!self.uri&&self.url){self.uri=self.url;delete self.url}if(!self.uri){return self.emit("error",new Error("options.uri is a required argument"))}if(typeof self.uri==="string"){self.uri=url.parse(self.uri)}if(self.uri.protocol==="unix:"){return self.emit("error",new Error("`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`"))}if(self.uri.host==="unix"){var unixParts=self.uri.path.split(":"),host=unixParts[0],path=unixParts[1];self.socketPath=host;self.uri.pathname=path;self.uri.path=path;self.uri.host=host;self.uri.hostname=host;self.uri.isUnix=true}if(self.strictSSL===false){self.rejectUnauthorized=false}if(!self.hasOwnProperty("proxy")){self.proxy=getProxyFromURI(self.uri)}self.tunnel=!!options.tunnel;if(self.proxy){self.setupTunnel()}if(!self.uri.pathname){self.uri.pathname="/"}if(!(self.uri.host||self.uri.hostname&&self.uri.port)&&!self.uri.isUnix){var faultyUri=url.format(self.uri);var message='Invalid URI "'+faultyUri+'"';if(Object.keys(options).length===0){message+=". This can be caused by a crappy redirection."}return self.emit("error",new Error(message))}self._redirectsFollowed=self._redirectsFollowed||0;self.maxRedirects=self.maxRedirects!==undefined?self.maxRedirects:10;self.allowRedirect=typeof self.followRedirect==="function"?self.followRedirect:function(response){return true};self.followRedirects=self.followRedirect!==undefined?!!self.followRedirect:true;self.followAllRedirects=self.followAllRedirects!==undefined?self.followAllRedirects:false;if(self.followRedirects||self.followAllRedirects){self.redirects=self.redirects||[]}self.setHost=false;if(!self.hasHeader("host")){var hostHeaderName=self.originalHostHeaderName||"host";self.setHeader(hostHeaderName,self.uri.hostname);if(self.uri.port){if(!(self.uri.port===80&&self.uri.protocol==="http:")&&!(self.uri.port===443&&self.uri.protocol==="https:")){self.setHeader(hostHeaderName,self.getHeader("host")+(":"+self.uri.port))}}self.setHost=true}self.jar(self._jar||options.jar);if(!self.uri.port){if(self.uri.protocol==="http:"){self.uri.port=80}else if(self.uri.protocol==="https:"){self.uri.port=443}}if(self.proxy&&!self.tunnel){self.port=self.proxy.port;self.host=self.proxy.hostname}else{self.port=self.uri.port;self.host=self.uri.hostname}if(options.form){self.form(options.form)}if(options.formData){var formData=options.formData;var requestForm=self.form();var appendFormValue=function(key,value){if(value.hasOwnProperty("value")&&value.hasOwnProperty("options")){requestForm.append(key,value.value,value.options)}else{requestForm.append(key,value)}};for(var formKey in formData){if(formData.hasOwnProperty(formKey)){var formValue=formData[formKey];if(formValue instanceof Array){for(var j=0;j<formValue.length;j++){appendFormValue(formKey,formValue[j])}}else{appendFormValue(formKey,formValue)}}}}if(options.qs){self.qs(options.qs)}if(self.uri.path){self.path=self.uri.path}else{self.path=self.uri.pathname+(self.uri.search||"")}if(self.path.length===0){self.path="/"}if(options.oauth){self.oauth(options.oauth)}if(options.aws){self.aws(options.aws)}if(options.hawk){self.hawk(options.hawk)}if(options.httpSignature){self.httpSignature(options.httpSignature)}if(options.auth){if(Object.prototype.hasOwnProperty.call(options.auth,"username")){options.auth.user=options.auth.username}if(Object.prototype.hasOwnProperty.call(options.auth,"password")){options.auth.pass=options.auth.password}self.auth(options.auth.user,options.auth.pass,options.auth.sendImmediately,options.auth.bearer)}if(self.gzip&&!self.hasHeader("accept-encoding")){self.setHeader("accept-encoding","gzip")}if(self.uri.auth&&!self.hasHeader("authorization")){var uriAuthPieces=self.uri.auth.split(":").map(function(item){return querystring.unescape(item)});self.auth(uriAuthPieces[0],uriAuthPieces.slice(1).join(":"),true)}if(!self.tunnel&&self.proxy&&self.proxy.auth&&!self.hasHeader("proxy-authorization")){var proxyAuthPieces=self.proxy.auth.split(":").map(function(item){return querystring.unescape(item)});var authHeader="Basic "+toBase64(proxyAuthPieces.join(":"));self.setHeader("proxy-authorization",authHeader)}if(self.proxy&&!self.tunnel){self.path=self.uri.protocol+"//"+self.uri.host+self.path}if(options.json){self.json(options.json)}if(options.multipart){self.boundary=uuid();self.multipart(options.multipart)}if(self.body){var length=0;if(!Buffer.isBuffer(self.body)){if(Array.isArray(self.body)){for(var i=0;i<self.body.length;i++){length+=self.body[i].length}}else{self.body=new Buffer(self.body);length=self.body.length}}else{length=self.body.length}if(length){if(!self.hasHeader("content-length")){self.setHeader("content-length",length)}}else{throw new Error("Argument error, options.body.")}}var protocol=self.proxy&&!self.tunnel?self.proxy.protocol:self.uri.protocol,defaultModules={"http:":http,"https:":https},httpModules=self.httpModules||{};self.httpModule=httpModules[protocol]||defaultModules[protocol];if(!self.httpModule){return self.emit("error",new Error("Invalid protocol: "+protocol))}if(options.ca){self.ca=options.ca}if(!self.agent){if(options.agentOptions){self.agentOptions=options.agentOptions}if(options.agentClass){self.agentClass=options.agentClass}else if(options.forever){self.agentClass=protocol==="http:"?ForeverAgent:ForeverAgent.SSL}else{self.agentClass=self.httpModule.Agent}}if(self.pool===false){self.agent=false}else{self.agent=self.agent||self.getNewAgent()}self.on("pipe",function(src){if(self.ntick&&self._started){throw new Error("You cannot pipe to this stream after the outbound request has started.")}self.src=src;if(isReadStream(src)){if(!self.hasHeader("content-type")){self.setHeader("content-type",mime.lookup(src.path))}}else{if(src.headers){for(var i in src.headers){if(!self.hasHeader(i)){self.setHeader(i,src.headers[i])}}}if(self._json&&!self.hasHeader("content-type")){self.setHeader("content-type","application/json")}if(src.method&&!self.explicitMethod){self.method=src.method}}});defer(function(){if(self._aborted){return}var end=function(){if(self._form){ | |
self._form.pipe(self)}if(self._multipart){self._multipart.pipe(self)}if(self.body){if(Array.isArray(self.body)){self.body.forEach(function(part){self.write(part)})}else{self.write(self.body)}self.end()}else if(self.requestBodyStream){console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe.");self.requestBodyStream.pipe(self)}else if(!self.src){if(self.method!=="GET"&&typeof self.method!=="undefined"){self.setHeader("content-length",0)}self.end()}};if(self._form&&!self.hasHeader("content-length")){self.setHeader(self._form.getHeaders());self._form.getLength(function(err,length){if(!err){self.setHeader("content-length",length)}end()})}else{end()}self.ntick=true})};Request.prototype._updateProtocol=function(){var self=this;var protocol=self.uri.protocol;if(protocol==="https:"||self.tunnel){if(self.proxy){if(self.setupTunnel()){return}}self.httpModule=https;switch(self.agentClass){case ForeverAgent:self.agentClass=ForeverAgent.SSL;break;case http.Agent:self.agentClass=https.Agent;break;default:return}if(self.agent){self.agent=self.getNewAgent()}}else{self.httpModule=http;switch(self.agentClass){case ForeverAgent.SSL:self.agentClass=ForeverAgent;break;case https.Agent:self.agentClass=http.Agent;break;default:return}if(self.agent){self.agent=null;self.agent=self.getNewAgent()}}};Request.prototype.getNewAgent=function(){var self=this;var Agent=self.agentClass;var options={};if(self.agentOptions){for(var i in self.agentOptions){options[i]=self.agentOptions[i]}}if(self.ca){options.ca=self.ca}if(self.ciphers){options.ciphers=self.ciphers}if(self.secureProtocol){options.secureProtocol=self.secureProtocol}if(self.secureOptions){options.secureOptions=self.secureOptions}if(typeof self.rejectUnauthorized!=="undefined"){options.rejectUnauthorized=self.rejectUnauthorized}if(self.cert&&self.key){options.key=self.key;options.cert=self.cert}var poolKey="";if(Agent!==self.httpModule.Agent){poolKey+=Agent.name}var proxy=self.proxy;if(typeof proxy==="string"){proxy=url.parse(proxy)}var isHttps=proxy&&proxy.protocol==="https:"||this.uri.protocol==="https:";if(isHttps){if(options.ca){if(poolKey){poolKey+=":"}poolKey+=options.ca}if(typeof options.rejectUnauthorized!=="undefined"){if(poolKey){poolKey+=":"}poolKey+=options.rejectUnauthorized}if(options.cert){poolKey+=options.cert.toString("ascii")+options.key.toString("ascii")}if(options.ciphers){if(poolKey){poolKey+=":"}poolKey+=options.ciphers}if(options.secureProtocol){if(poolKey){poolKey+=":"}poolKey+=options.secureProtocol}if(options.secureOptions){if(poolKey){poolKey+=":"}poolKey+=options.secureOptions}}if(self.pool===globalPool&&!poolKey&&Object.keys(options).length===0&&self.httpModule.globalAgent){return self.httpModule.globalAgent}poolKey=self.uri.protocol+poolKey;if(!self.pool[poolKey]){self.pool[poolKey]=new Agent(options);if(self.pool.maxSockets){self.pool[poolKey].maxSockets=self.pool.maxSockets}}return self.pool[poolKey]};Request.prototype.start=function(){var self=this;if(self._aborted){return}self._started=true;self.method=self.method||"GET";self.href=self.uri.href;if(self.src&&self.src.stat&&self.src.stat.size&&!self.hasHeader("content-length")){self.setHeader("content-length",self.src.stat.size)}if(self._aws){self.aws(self._aws,true)}var reqOptions=copy(self);delete reqOptions.auth;debug("make request",self.uri.href);self.req=self.httpModule.request(reqOptions);if(self.timeout&&!self.timeoutTimer){self.timeoutTimer=setTimeout(function(){self.abort();var e=new Error("ETIMEDOUT");e.code="ETIMEDOUT";self.emit("error",e)},self.timeout);if(self.req.setTimeout){self.req.setTimeout(self.timeout,function(){if(self.req){self.req.abort();var e=new Error("ESOCKETTIMEDOUT");e.code="ESOCKETTIMEDOUT";self.emit("error",e)}})}}self.req.on("response",self.onRequestResponse.bind(self));self.req.on("error",self.onRequestError.bind(self));self.req.on("drain",function(){self.emit("drain")});self.req.on("socket",function(socket){self.emit("socket",socket)});self.on("end",function(){if(self.req.connection){self.req.connection.removeListener("error",connectionErrorHandler)}});self.emit("request",self.req)};Request.prototype.onRequestError=function(error){var self=this;if(self._aborted){return}if(self.req&&self.req._reusedSocket&&error.code==="ECONNRESET"&&self.agent.addRequestNoreuse){self.agent={addRequest:self.agent.addRequestNoreuse.bind(self.agent)};self.start();self.req.end();return}if(self.timeout&&self.timeoutTimer){clearTimeout(self.timeoutTimer);self.timeoutTimer=null}self.emit("error",error)};Request.prototype.onRequestResponse=function(response){var self=this;debug("onRequestResponse",self.uri.href,response.statusCode,response.headers);response.on("end",function(){debug("response end",self.uri.href,response.statusCode,response.headers)});if(response.connection&&response.connection.listeners("error").indexOf(connectionErrorHandler)===-1){response.connection.setMaxListeners(0);response.connection.once("error",connectionErrorHandler)}if(self._aborted){debug("aborted",self.uri.href);response.resume();return}if(self._paused){response.pause()}else if(response.resume){response.resume()}self.response=response;response.request=self;response.toJSON=responseToJSON;if(self.httpModule===https&&self.strictSSL&&(!response.hasOwnProperty("client")||!response.client.authorized)){debug("strict ssl error",self.uri.href);var sslErr=response.hasOwnProperty("client")?response.client.authorizationError:self.uri.href+" does not support SSL";self.emit("error",new Error("SSL Error: "+sslErr));return}self.originalHost=self.getHeader("host");if(!self.originalHostHeaderName){self.originalHostHeaderName=self.hasHeader("host")}if(self.setHost){self.removeHeader("host")}if(self.timeout&&self.timeoutTimer){clearTimeout(self.timeoutTimer);self.timeoutTimer=null}var targetCookieJar=self._jar&&self._jar.setCookie?self._jar:globalCookieJar;var addCookie=function(cookie){try{targetCookieJar.setCookie(cookie,self.uri.href,{ignoreError:true})}catch(e){self.emit("error",e)}};response.caseless=caseless(response.headers);if(response.caseless.has("set-cookie")&&!self._disableCookies){var headerName=response.caseless.has("set-cookie");if(Array.isArray(response.headers[headerName])){response.headers[headerName].forEach(addCookie)}else{addCookie(response.headers[headerName])}}var redirectTo=null;if(response.statusCode>=300&&response.statusCode<400&&response.caseless.has("location")){var location=response.caseless.get("location");debug("redirect",location);if(self.followAllRedirects){redirectTo=location}else if(self.followRedirects){switch(self.method){case"PATCH":case"PUT":case"POST":case"DELETE":break;default:redirectTo=location;break}}}else if(response.statusCode===401&&self._hasAuth&&!self._sentAuth){var authHeader=response.caseless.get("www-authenticate");var authVerb=authHeader&&authHeader.split(" ")[0].toLowerCase();debug("reauth",authVerb);switch(authVerb){case"basic":self.auth(self._user,self._pass,true);redirectTo=self.uri;break;case"bearer":self.auth(null,null,true,self._bearer);redirectTo=self.uri;break;case"digest":var challenge={};var re=/([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;for(;;){var match=re.exec(authHeader);if(!match){break}challenge[match[1]]=match[2]||match[3]}var ha1=md5(self._user+":"+challenge.realm+":"+self._pass);var ha2=md5(self.method+":"+self.uri.path);var qop=/(^|,)\s*auth\s*($|,)/.test(challenge.qop)&&"auth";var nc=qop&&"00000001";var cnonce=qop&&uuid().replace(/-/g,"");var digestResponse=qop?md5(ha1+":"+challenge.nonce+":"+nc+":"+cnonce+":"+qop+":"+ha2):md5(ha1+":"+challenge.nonce+":"+ha2);var authValues={username:self._user,realm:challenge.realm,nonce:challenge.nonce,uri:self.uri.path,qop:qop,response:digestResponse,nc:nc,cnonce:cnonce,algorithm:challenge.algorithm,opaque:challenge.opaque};authHeader=[];for(var k in authValues){if(authValues[k]){if(k==="qop"||k==="nc"||k==="algorithm"){authHeader.push(k+"="+authValues[k])}else{authHeader.push(k+'="'+authValues[k]+'"')}}}authHeader="Digest "+authHeader.join(", ");self.setHeader("authorization",authHeader);self._sentAuth=true;redirectTo=self.uri;break}}if(redirectTo&&self.allowRedirect.call(self,response)){debug("redirect to",redirectTo);if(self._paused){response.resume()}if(self._redirectsFollowed>=self.maxRedirects){self.emit("error",new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+self.uri.href));return}self._redirectsFollowed+=1;if(!isUrl.test(redirectTo)){redirectTo=url.resolve(self.uri.href,redirectTo)}var uriPrev=self.uri;self.uri=url.parse(redirectTo);if(self.uri.protocol!==uriPrev.protocol){self._updateProtocol()}self.redirects.push({statusCode:response.statusCode,redirectUri:redirectTo});if(self.followAllRedirects&&response.statusCode!==401&&response.statusCode!==307){self.method="GET"}delete self.src;delete self.req;delete self.agent;delete self._started;if(response.statusCode!==401&&response.statusCode!==307){delete self.body;delete self._form;if(self.headers){self.removeHeader("host");self.removeHeader("content-type");self.removeHeader("content-length");if(self.uri.hostname!==self.originalHost.split(":")[0]){self.removeHeader("authorization")}}}self.emit("redirect");self.init();return}else{self._redirectsFollowed=self._redirectsFollowed||0;response.on("close",function(){if(!self._ended){self.response.emit("end")}});response.on("end",function(){self._ended=true});var dataStream;if(self.gzip){var contentEncoding=response.headers["content-encoding"]||"identity";contentEncoding=contentEncoding.trim().toLowerCase();if(contentEncoding==="gzip"){dataStream=zlib.createGunzip();response.pipe(dataStream)}else{if(contentEncoding!=="identity"){debug("ignoring unrecognized Content-Encoding "+contentEncoding)}dataStream=response}}else{dataStream=response}if(self.encoding){if(self.dests.length!==0){console.error("Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.")}else if(dataStream.setEncoding){dataStream.setEncoding(self.encoding)}else{dataStream=dataStream.pipe(stringstream(self.encoding))}}self.emit("response",response);self.dests.forEach(function(dest){self.pipeDest(dest)});dataStream.on("data",function(chunk){self._destdata=true;self.emit("data",chunk)});dataStream.on("end",function(chunk){self.emit("end",chunk)});dataStream.on("error",function(error){self.emit("error",error)});dataStream.on("close",function(){self.emit("close")});if(self.callback){var buffer=bl(),strings=[];self.on("data",function(chunk){if(Buffer.isBuffer(chunk)){buffer.append(chunk)}else{strings.push(chunk)}});self.on("end",function(){debug("end event",self.uri.href);if(self._aborted){debug("aborted",self.uri.href);return}if(buffer.length){debug("has body",self.uri.href,buffer.length);if(self.encoding===null){response.body=buffer.slice()}else{response.body=buffer.toString(self.encoding)}}else if(strings.length){if(self.encoding==="utf8"&&strings[0].length>0&&strings[0][0]==="\ufeff"){strings[0]=strings[0].substring(1)}response.body=strings.join("")}if(self._json){try{response.body=JSON.parse(response.body)}catch(e){}}debug("emitting complete",self.uri.href);if(typeof response.body==="undefined"&&!self._json){response.body=""}self.emit("complete",response,response.body)})}else{self.on("end",function(){if(self._aborted){debug("aborted",self.uri.href);return}self.emit("complete",response)})}}debug("finish init function",self.uri.href)};Request.prototype.abort=function(){var self=this;self._aborted=true;if(self.req){self.req.abort()}else if(self.response){self.response.abort()}self.emit("abort")};Request.prototype.pipeDest=function(dest){var self=this;var response=self.response;if(dest.headers&&!dest.headersSent){if(response.caseless.has("content-type")){var ctname=response.caseless.has("content-type");if(dest.setHeader){dest.setHeader(ctname,response.headers[ctname])}else{dest.headers[ctname]=response.headers[ctname]}}if(response.caseless.has("content-length")){var clname=response.caseless.has("content-length");if(dest.setHeader){dest.setHeader(clname,response.headers[clname])}else{dest.headers[clname]=response.headers[clname]}}}if(dest.setHeader&&!dest.headersSent){for(var i in response.headers){if(!self.gzip||i!=="content-encoding"){dest.setHeader(i,response.headers[i])}}dest.statusCode=response.statusCode}if(self.pipefilter){self.pipefilter(response,dest)}};Request.prototype.qs=function(q,clobber){var self=this;var base;if(!clobber&&self.uri.query){base=self.qsLib.parse(self.uri.query)}else{base={}}for(var i in q){base[i]=q[i]}if(self.qsLib.stringify(base)===""){return self}self.uri=url.parse(self.uri.href.split("?")[0]+"?"+self.qsLib.stringify(base));self.url=self.uri;self.path=self.uri.path;return self};Request.prototype.form=function(form){var self=this;if(form){self.setHeader("content-type","application/x-www-form-urlencoded");self.body=typeof form==="string"?form.toString("utf8"):self.qsLib.stringify(form).toString("utf8");return self}self._form=new FormData;return self._form};Request.prototype.multipart=function(multipart){var self=this;var chunked=multipart instanceof Array||multipart.chunked===undefined||multipart.chunked;multipart=multipart.data||multipart;var items=chunked?new CombinedStream:[];function add(part){return chunked?items.append(part):items.push(new Buffer(part))}var headerName=self.hasHeader("content-type");if(!headerName||headerName.indexOf("multipart")===-1){self.setHeader("content-type","multipart/related; boundary="+self.boundary)}else{self.setHeader(headerName,self.headers[headerName].split(";")[0]+"; boundary="+self.boundary)}if(!multipart.forEach){throw new Error("Argument error, options.multipart.")}if(self.preambleCRLF){add("\r\n")}multipart.forEach(function(part){var body=part.body;if(typeof body==="undefined"){throw new Error("Body attribute missing in multipart.")}var preamble="--"+self.boundary+"\r\n";Object.keys(part).forEach(function(key){if(key==="body"){return}preamble+=key+": "+part[key]+"\r\n"});preamble+="\r\n";add(preamble);add(body);add("\r\n")});add("--"+self.boundary+"--");if(self.postambleCRLF){add("\r\n")}self[chunked?"_multipart":"body"]=items;return self};Request.prototype.json=function(val){var self=this;if(!self.hasHeader("a |
View raw
(Sorry about that, but we can’t show files that are this big right now.)
View raw
(Sorry about that, but we can’t show files that are this big right now.)
View raw
(Sorry about that, but we can’t show files that are this big right now.)
View raw
(Sorry about that, but we can’t show files that are this big right now.)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment